Performance Lieferterminzusagen

8. November 2022 17:13

Hallo zusammen,

ich hab mal ein Anliegen bzgl. der Lieferterminzusagen. Wir sind ein mittelständisches Produktionsunternehmen und nutzen das Fertigungsmodul in NAV ziemlich ausgiebig. Wir haben einen Variantenkonfigurator als AddOn integriert um die extreme Variantenvielfalt unserer Fertigerzeugnisse abbilden zu können. Ein wichtiger Part ist hier natürlich auch die Lieferterminzusage, die uns den frühestmöglichen Liefertermin für unsere Verkaufsaufträge berechnet.

Nun ist es so, dass wir ziemlich komplexe Stücklisten mit vielen verschiedenen Stücklistenebenen inkl. Phantomstücklisten u. Verformelung über den Variantenkonfigurator besitzen. Die Berechnung der Lieferterminzusage war schon immer ein Problem in unseren Augen und wird mit der Zeit natürlich nicht besser. Die Performance ist unter aller Kanone, wir benötigen für einen einzigen Auftrag tlw. 1 1/2 h+ zum berechnen eines Liefertermins. Während der Berechnung sperren wir damit automatisch sämtliche Benutzer, die irgendwas im Verkaufsbereich machen wollen (Angebote / Aufträge bearbeiten).

Hat hier jemand Erfahrung mit dieser Problematik und ggf. einen Ansatz, wie man das Problem umgehen kann? Ich gewinne langsam den Eindruck, dass wir an gewisse Grenzen stoßen die mit NAV nicht zu überwinden sind.

Re: Performance Lieferterminzusagen

8. November 2022 18:21

Ich würde mir mal den Code anschauen der die Liefertermine berechnet. Vermutlich kann man da einiges optimieren, evtl. werden Filter ohne passenden Schlüssel gesetzt oder ähnliches, auch bzgl. der Sperrungen würde ich mal schauen, das Berechnen eines Liefertermins sollte m. E. keine Tabellen sperren.

Re: Performance Lieferterminzusagen

8. November 2022 18:26

Hallo,

ich denke mal, das du da mit einer Standard-Lösung nicht klar kommst.
Entweder du machst das manuell mit einer Plantafel z.B. hier, oder du setzt auf eine optimierte Planungslösung, die u.U. einige Dinge voraussetzt, die bei euch immer zutreffen, und dadurch den Planungslauf vereinfacht.

Gruß Fiddi

Re: Performance Lieferterminzusagen

9. November 2022 09:13

Gerade bei ziemlich komplexen und umfangreichen Prozessen, sowie erst recht in Kombination mit Add-Ons, kann es zu Performance-Problemen kommen.
So blöd es klingt, aber es gibt leider keine Universal-Lösung, um seitens Microsoft und/oder des Add-On-Anbieters eine für alle Kunden performance-optimierte Programmierung liefern zu können, da gerade im Mittelstand die Prozesse der einzelnen Unternehmen völlig unterschiedlich ablaufen.

Wir hatten in der Vergangenheit aus diesem Grund in regelmäßigen Abständen unsere NAV-Datenbank durch Jörg Stryk und seiner SQL-Performance-Toolbox analysieren und optimieren lassen, was zu signifikanten Performance-Gewinnen führte.
Aus diesem Grund kann ich den Service von Jörg nur wärmstens empfehlen.

Re: Performance Lieferterminzusagen

9. November 2022 10:00

enh hat geschrieben:das Berechnen eines Liefertermins sollte m. E. keine Tabellen sperren.

Auch wenn man u.U. an manchen Stellen temporäre Tabellen statt physische in Simulationen verwenden kann, um unnötige Sperren zu verhindern, ist das leider nur der technische Aspekt. Wenn bei der Berechnung "Ruhe im System" benötigt wird, kann das schon notwendig sein. Wenn ein anderer Auftrag gerade die letzten Komponenten im Lager verbraucht, die von verschiedenen Lieferanten mit unterschiedlich langen Lieferzeiten geliefert werden, wie sollte man dann eine zuverlässige Aussage für den eigenen Auftrag treffen können? Die muss man ja dann selber im Lager im Nachgang reservieren können, also wenn der eigene Kunde dem Liefertermin zustimmt.

Re: Performance Lieferterminzusagen

14. November 2022 12:25

Servus,

Danke erstmal an alle für die zahlreichen Antworten!

enh hat geschrieben:Ich würde mir mal den Code anschauen der die Liefertermine berechnet. Vermutlich kann man da einiges optimieren, evtl. werden Filter ohne passenden Schlüssel gesetzt oder ähnliches, auch bzgl. der Sperrungen würde ich mal schauen, das Berechnen eines Liefertermins sollte m. E. keine Tabellen sperren.


Ich bin leider kein Entwickler, gibt es ggf. irgendwo Ressourcen worauf man achten sollte, damit Funktionen so performant wie möglich ausgeführt werden? Dann würde ich mich da vielleicht mal mit auseinandersetzen.

fiddi hat geschrieben:Entweder du machst das manuell mit einer Plantafel z.B. hier, oder du setzt auf eine optimierte Planungslösung, die u.U. einige Dinge voraussetzt, die bei euch immer zutreffen, und dadurch den Planungslauf vereinfacht.


Das Problem ist die Lieferterminzusage, nicht die Planungsvorschläge. Für die letztendliche Fertigungsplanung haben wir eine grafische Plantafel, die zeigt aber nur aktuelle Lagerbestände plus geplante Zu- und Abgänge in der Materialverfügbarkeit an. Die Lieferterminzusage gibt mir ja erstmal ein ungefähres Zeitfenster, zu wann ich den Auftrag frühestens bedienen kann.

Spannend finde ich in dem Zusammenhang, dass die Microsoft-Hilfe dazu einfach falsche Informationen liefert. Laut dem Hilfeartikel: https://learn.microsoft.com/de-de/dynamics-nav-app/sales-how-to-calculate-order-promising-dates gibt die Beschaffungszusage einen Termin an, wenn alles neu bestellt bzw. gefertigt werden müsste. In Wirklichkeit erfolgt das aber nur bei Teilen, die wirklich nicht verfügbar sind.

Timo Lässer hat geschrieben:Gerade bei ziemlich komplexen und umfangreichen Prozessen, sowie erst recht in Kombination mit Add-Ons, kann es zu Performance-Problemen kommen.
So blöd es klingt, aber es gibt leider keine Universal-Lösung, um seitens Microsoft und/oder des Add-On-Anbieters eine für alle Kunden performance-optimierte Programmierung liefern zu können, da gerade im Mittelstand die Prozesse der einzelnen Unternehmen völlig unterschiedlich ablaufen.


Das hatte ich auch so wahrgenommen. Mit jedem AddOn wird das Konstrukt fragiler. Und wir sind mittlerweile bei 18 angelangt :oops: Danke an dieser Stelle für den Hinweis auf den Service von Jörg! Habe ihn direkt mal kontaktiert, deine Erfahrungen scheinen ja sehr positiv gewesen zu sein. Vielleicht hilft uns das schon mal weiter.

Kowa hat geschrieben:Wenn ein anderer Auftrag gerade die letzten Komponenten im Lager verbraucht, die von verschiedenen Lieferanten mit unterschiedlich langen Lieferzeiten geliefert werden, wie sollte man dann eine zuverlässige Aussage für den eigenen Auftrag treffen können? Die muss man ja dann selber im Lager im Nachgang reservieren können, also wenn der eigene Kunde dem Liefertermin zustimmt.


Genau das ist der Punkt. Ich sehe da auch gar keine andere Möglichkeit, das anders abzubilden. Außer man hätte ggf. die Möglichkeit die Lieferterminzusagen via Job Queue über Nacht berechnen zu lassen. Wie wird sowas bspw. in SAP ausgeführt?

Der Knackpunkt wird aber am Ende sicher der Prozess sein.