[gelöst] Ext. Programm über Aufgabenwarteschlagen ausführen

Bild Microsoft Dynamics NAV 2016

[gelöst] Ext. Programm über Aufgabenwarteschlagen ausführen

Beitragvon luninaut » 30. Juli 2018 12:14

Hallo,
wir haben vor kurzem auf NAV 2016 gewechselt. Ich suche gerade ein Möglichkeit, ein externes Programm (Zip Programm mit Kennwortverschlüsselung) auszuführen.
Folgende Rahmenbedingungen:
- Ãœbergabe von Parametern bei Programmaufruf
- Programm soll durch eine Aufgabenwarteschlage ausgeführt werden
- Verarbeitung des externen Programms soll abgewartet werden, bevor weiterer NAV Code ausgeführt wird
- Programm sollte grundsätzlich auf dem Server laufen (damit man den Aufgabenwarteschlangenposten auch manuell nachstarten kann, keine Installation des Programms auf allen Clients)

Ich habe es bisher mit dem DotNet Typ System.Diagnostics.Process.System versucht, aber bei Ausführung auf der Aufgabenwarteschlage kommt es zur Fehlermeldung, dass ein Clientrückruf der Funktion nicht unterstützt wird (ProcessShell := ProcessShell.Process;).
Und bei einem 'Windows Script Host Object Model'.WshShell scheint das Programm nur auf dem Client Rechner ausgeführt zu werden.

Vielleicht hat jemand noch einen Idee, wie man so etwas unter der 3-Tier-Architektur am besten umsetzten kann. Ich bin für jeden Tipp dankbar.
Zuletzt geändert von luninaut am 30. Juli 2018 15:52, insgesamt 2-mal geändert.
luninaut
 
Beiträge: 15
Registriert: 19. Januar 2015 12:15
Realer Name: Dirk
Arbeitsort: Hamm
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.x,3.x,4.x,5.x,6.x,7.x,9.x

Re: Externes Programm über Aufgabenwarteschlagen ausführen

Beitragvon rwendler » 30. Juli 2018 13:57

Der Ansatz über .NET ist schon korrekt. In Summe sollte das so oder so ähnlich aussehen.

Im folgenden Code würde dieser Command an die Eingabeaufforderung geschickt werden, wobei %1 und %2 durch Parameter in der NAV Funktion definiert werden: "C:\Temp\Program.exe" output="%1" input=%2

Code: Alles auswählen
Program_l := 'C:\Temp\Program.exe';
Parameter_l := STRSUBSTNO('output="%1" input=%2', Output_p, Input_p);

SystemDiagnosticsProcessStartInfo_l := SystemDiagnosticsProcessStartInfo_l.ProcessStartInfo(STRSUBSTNO('"%1"', Program_l ), Parameter_l );
SystemDiagnosticsProcessStartInfo_l.WindowStyle(SystemDiagnosticsProcessWindowsStyle_l.Hidden);
SystemDiagnosticsProcess_l := SystemDiagnosticsProcess_l.Process;
SystemDiagnosticsProcess_l.Start(SystemDiagnosticsProcessStartInfo_l);


Code: Alles auswählen
Name   DataType   Subtype   Length
SystemDiagnosticsProcess_l   DotNet   System.Diagnostics.Process.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'   
SystemDiagnosticsProcessStartInfo_l   DotNet   System.Diagnostics.ProcessStartInfo.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'   
SystemDiagnosticsProcessWindowsStyle_l   DotNet   System.Diagnostics.ProcessWindowStyle.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'


Wenn der Code auf der Service Tier per Aufgabenwarteschlange ausgeführt werden soll, so achte auf das "RunOnClient" bei allen beteiligten .NET Variablen auf No steht (siehe Anhang). Dann werden diese auch auf dem Server und mit dem NAS ausgeführt.
Dateianhänge
RunOnClient.png
Benutzeravatar
rwendler
 
Beiträge: 86
Registriert: 5. Februar 2013 17:51
Wohnort: Berlin
Realer Name: Robert Wendler
Arbeitsort: Berlin
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.60 bis 2017

Re: [gelöst] Ext. Programm über Aufgabenwarteschlagen ausfüh

Beitragvon luninaut » 30. Juli 2018 15:53

Die Änderung der Eigenschaft RunOnClient=No war der entscheidende Hinweis. Danke. :-P
luninaut
 
Beiträge: 15
Registriert: 19. Januar 2015 12:15
Realer Name: Dirk
Arbeitsort: Hamm
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.x,3.x,4.x,5.x,6.x,7.x,9.x


Zurück zu NAV 2016

Wer ist online?

Mitglieder in diesem Forum: Unbekannter Robot und 1 Gast

cron