fiddi hat geschrieben:Wenn diese Fragen geklärt sind, dann kann man nach Lösungen suchen. Das könnte eine Hintergrundsession sein (STARTSESSION), ein geplanter Report, ein Event, oder die Kombination aus mehreren.
Um das ganze mal etwas verständlicher zu machen, hier ein kleiner Ablauf den ich mir vorgestellt habe:
- Benutzer 1 soll aus NAV heraus ein externen Prozess starten, sobald dieser gestartet wurde, wird in NAV eine Sperre gesetzt, dass kein anderer Benutzer diesen Prozess ein zweites mal ausführen kann
- Benutzer 1 will aber in NAV weiterhin arbeiten, auch wenn er den externen Prozess gestartet hat und dieser im Hintergrund weiterhin läuft
- Wenn Benutzer 1 diesen Prozess beendet soll die Sperre in NAV logischerweise wieder rausgenommen werden, damit alle anderen Benutzer den Prozess wieder ausführen können
Mit Rückmeldung meine ich hier in diesem Fall, wenn Benutzer 1 den externen Prozess beendet hat, dass eine Funktion prüft ob dieser beendet wurde und eine Rückmeldung an NAV macht, damt NAV die Sperre wieder entfernen kann.
pjung hat geschrieben:Ich würde mir ein Event schreiben und dieses dann Triggern und in einer anderen CodeUnit würde ich es dieses Event fangen.
Anschließend würde ich es in dieser CodeUnit das Programm startet und dort so lange warten bis das Programm beendet ist.
Das mache ich aktuell genau so wie du es beschrieben hast, und genau das blockiert mir NAV in der Zeit in der ich warte, bis das Programm beendet wurde.
Aber die zweite Variante klingt auch Interessant, ich glaube ich komme um eine externe .NET dll einfach nicht herum.