Seite 1 von 1

[gelöst] Erstellung neue RTC Instanz

Verfasst: 3. Dezember 2018 15:33
von luninaut
Wir verwenden NAV 2016 und möchten eine größere Verarbeitung von Daten auf mehreren RTCs laufen lassen.
Mein konkretes Problem ist, dass ich aus einem NAV Code heraus einen neuen RTC öffnen möchte. Dabei soll auf dem neu geöffneten RTC sofort Code ausgeführt werden. Ich versuche es über den Parameter "runpage" der Microsoft.Dynamics.Nav.Client.exe.
Wenn ich den runpage Parameter weglasse, wird eine neue Instanz des RTC gestartet (was ich auch als zwei Tasks im Taskmanager sehen kann).
Sobald ich aber den runpage Parameter nutze, öffnet mir NAV die Page immer in meiner aktuellen Instanz (es wird also kein zweiter RTC geöffnet).

Vielleicht kann mir jemand einen Tipp geben?

Der Aufruf des RTC erfolgt über folgenden Code.
Code:
ServerInstance.RESET;
ServerInstance.SETRANGE("Server Instance ID",SERVICEINSTANCEID);
IF ServerInstance.FINDFIRST THEN BEGIN
  CLEAR(Registry);
  FileName := Registry.GetValue('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Microsoft.Dynamics.Nav.Client.exe','','');

  //Page öffnen bei Start RTC, aber keine neue Instanz
  Argument := '"dynamicsnav://'+ServerInstance."Server Computer Name"+':'+FORMAT(ServerInstance."Server Port")+'/'+ServerInstance."Service Name"+'/'
    +COMPANYNAME+'/runpage?page=67028"';
  //Start einer neuen RTC Instanz
  //Argument := '"dynamicsnav://'+ServerInstance."Server Computer Name"+':'+FORMAT(ServerInstance."Server Port")+'/'+ServerInstance."Service Name"+'/'
  //  +COMPANYNAME+'/"';

  CLEAR(Process);
  Process := Process.Process();
  Process.StartInfo.UseShellExecute := FALSE;
  Process.StartInfo.FileName := FileName; // path to program
  Process.StartInfo.Arguments := Argument;
  Process.Start();
END;

Verwendete Variablen
    ServerInstance Record Server Instance
    Process DotNet System.Diagnostics.Process.'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
    Registry DotNet Microsoft.Win32.Registry.'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
    FileName Text
    Argument Text

Re: Erstellung neue RTC Instanz

Verfasst: 3. Dezember 2018 16:07
von fiddi
Hallo,

warum möchtest du mehrere RTC's starten?

Du könntest per Jobqueue einen Hintergrundprozess starten, der dir zum Abschluss das Ergebnis mitteilt.

Gruß Fiddi

Re: Erstellung neue RTC Instanz

Verfasst: 3. Dezember 2018 16:26
von m_schneider
Hier werden sie geholfen

Re: Erstellung neue RTC Instanz

Verfasst: 4. Dezember 2018 09:30
von luninaut
Vielen Dank für die Hinweise.
Zur Frage, warum einer neuer Client mit UI: Vor Start der Verarbeitung (Report) sind noch einige Einstellungen vom User vorzunehmen. Bei der Verarbeitung kommen manchmal auch Bestätigungsfenster (Confirm) hoch. Außerdem gibt es ein Infofenster für den Verarbeitungsfortschritt, damit ein Mitarbeiter die Berechnungen über die Wochen mitverfolgen kann. Auch auftretende Fehler müssen dem Anwender sichtbar gemacht werden.
Natürlich lässt sich mit einigem Aufwand die vorhandene Verarbeitung auf eine Hintergrundverarbeitung umstellen (z.B. durch Schreiben einer Logdatei für Fehler). Einfacher wäre es aber, wenn ich die Verarbeitung unverändert lassen und eine Instanz mit einem UI öffnen könnte.

Re: Erstellung neue RTC Instanz

Verfasst: 4. Dezember 2018 10:06
von m_schneider
Als Hinweis vielleicht noch, wenn ein offener RTC Modal gesperrt ist, dann wird ein neuer geöffnet.

Nur für mich zur Info: Um was für eine Verarbeitung handelt es sich denn?

Re: Erstellung neue RTC Instanz

Verfasst: 4. Dezember 2018 12:46
von luninaut
Michael, deine Hinweis war Gold wert. Danke. :-D
Wenn ich das Starten der neuen Clients aus einer Page heraus vornehme, die mit RunModal geöffnet ist, dann werden jeweils neue Clients geöffnet. Genauso soll es sein.

Re: [gelöst] Erstellung neue RTC Instanz

Verfasst: 4. Dezember 2018 12:57
von fiddi
Interessant 8-)

Wieviele Millionen Datensätze verarbeitest du da?

Gruß Fiddi

Re: [gelöst] Erstellung neue RTC Instanz

Verfasst: 4. Dezember 2018 13:08
von luninaut
..........