Projekt

Allgemein

Profil

Aktionen

RunLocal Ablauf

Diese Seite beschreibt die beiden Einstiegspunkte fuer RunLocal und welche Pruefungen bzw. Aktionen auf jeder Seite ausgefuehrt werden.

Remote bedeutet die normale Netzwerkinstallation von ProdatERP.exe.
Lokal bedeutet die kopierte Installation unter C:\ProdatERP\ mit Administration\RunLocal daneben.

«Drawio diagrams are available only in issues and wiki pages»

Kurzfassung

  • Im entfernten ProdatERP.exe gibt es im Login-Dialog den Button RunLocal.
  • Dieser startet ProdatRunLocal.exe aus der Netzwerkinstallation mit SILENT_INSTALL_DEFAULT.
  • ProdatRunLocal.exe prueft zuerst das eigene Update und startet danach entweder das Installations-Batch oder das Shortcut-/Update-Batch.
  • Die Batch-Dateien erzeugen oder aktualisieren die lokale Kopie, die Shortcuts und den geplanten Task.
  • Wenn ProdatERP.exe spaeter direkt aus der lokalen Kopie gestartet wird, prueft der Splash-/Startcode beim ersten echten Start, ob die lokale RunLocal-Kopie noch passt.
  • Diese lokale Pruefung vergleicht Prodat.INSTALL.MARKER und entscheidet dann, ob der lokale Launcher aktualisiert werden muss oder ob der lokale Betrieb weiterlaeuft.

Einstiegspunkte und Verhalten

Seite Startpunkt Was wird geprueft Was wird ausgeloest
Remote Login-Dialog-Button in ProdatERP.exe Der Button ist nur aktiv, wenn die App nicht bereits lokal laeuft, ausser im Dev-/Debug-Modus. Startet ProdatRunLocal.exe mit SILENT_INSTALL_DEFAULT.
Remote oder lokal Startpfad in ProdatERP.exe Prueft, ob RunLocal aktualisiert werden muss und ob die entfernte Quelle erreichbar ist. Vergleicht Marker-Daten und den konfigurierten Remote-Root. Kopiert bei Bedarf die aktuelle ProdatRunLocal.exe in den lokalen RunLocal-Ordner und startet den lokalen Launcher.
Lokal Direkter Start von ProdatERP.exe ohne RunLocal Der Startcode erkennt den lokalen Modus ueber den Programmpfad und ruft beim ersten echten Start die RunLocal-Pruefung auf. Verwendet RunLocal_SetCfgVariables.bat, prueft Prodat.INSTALL.MARKER und aktualisiert bei Bedarf den lokalen Launcher.
Remote oder lokal Start von ProdatRunLocal.exe Verweigert den Start von Netzwerk-/UNC-Pfaden ohne Silent-Install-Parameter. Fuehrt den eigenen Update-Check gegen die entfernte RunLocal-Kopie aus. Startet RunLocal_Setup.bat fuer die Erstinstallation oder RunLocal_ShortcutScript.bat fuer den Normalfall.
Lokal RunLocal_Setup.bat Liest oder schreibt RunLocal_SetCfgVariables.bat, prueft die Verzeichnisse und kontrolliert die Robocopy-Verfuegbarkeit. Erzeugt die lokale Verzeichnisstruktur, synchronisiert Dateien, erzeugt Task- und Shortcut-Skripte.
Lokal RunLocal_UpdateLocal.bat Nutzt Prodat.INSTALL.MARKER und die konfigurierten Pfade zur Entscheidung ueber den Sync-Modus. Spiegelt remote nach lokal, beendet laufende ProdatERP.exe-Instanzen und startet die App optional erneut.

Laufzeit von der Login-Maske

  1. Der Benutzer ist in der entfernten Installation und klickt im Login-Dialog auf RunLocal.
  2. Der Login-Dialog prueft, ob das aktuelle Programm lokal oder remote laeuft.
  3. Wenn das Programm remote laeuft, wird der Button aktiviert und ProdatRunLocal.exe mit SILENT_INSTALL_DEFAULT gestartet.
  4. ProdatRunLocal.exe fuehrt danach das Setup-Batch aus und erzeugt bzw. aktualisiert die lokale Installation.

Lokaler Start ohne RunLocal

  1. ProdatERP.exe startet direkt aus C:\ProdatERP\ oder einer lokalen Kopie darunter.
  2. Beim ersten echten Start ruft der Start-Splash TFormStartLogo.CheckAndUpdateProdatRunLocal auf.
  3. Der Code entscheidet anhand von ParamStr(0), ob der aktuelle Start als lokal oder remote behandelt wird.
  4. Im lokalen Fall wird der lokale Root aus dem Programmverzeichnis abgeleitet.
  5. Der konfigurierte Remote-Root wird aus RunLocal_SetCfgVariables.bat gelesen.
  6. Dann versucht ein Safe-Check-Helper, den entfernten RunLocal-Bereich zu erreichen und den Marker zu lesen.
  7. Anschliessend werden Inhalt und Zeitstempel von Prodat.INSTALL.MARKER lokal und remote verglichen.
  8. Fehlt der Marker lokal oder weicht er ab, gilt die lokale Kopie als veraltet.
  9. Wenn die konfigurierte Remote-Quelle zur erwarteten Umgebung passt, wird die aktuelle ProdatRunLocal.exe in den lokalen RunLocal-Ordner kopiert.
  10. Danach startet ProdatERP.exe den lokalen Launcher und laesst den lokalen Installations-/Updatepfad weiterlaufen.
  11. Wenn der Marker gleich ist, bleibt der Start einfach lokal und der Launcher wird nicht umgeschaltet.

Start- und Updatepfad in ProdatERP.exe

  1. ProdatERP.exe startet entweder von der Netzfreigabe oder aus der lokalen Kopie.
  2. Der relevante Startcode ist TFormStartLogo.FormShow, der beim ersten echten Start TFormStartLogo.CheckAndUpdateProdatRunLocal aufruft.
  3. CheckAndUpdateProdatRunLocal unterscheidet zuerst zwischen Remote- und Lokalstart anhand von ParamStr(0).
  4. Bei einem lokalen Start wird der lokale Root aus dem Programmverzeichnis abgeleitet und der konfigurierte Remote-Root aus RunLocal_SetCfgVariables.bat gelesen.
  5. Danach prueft ein Safe-Check-Helper, ob der Remote-Root erreichbar ist und ob daraus der Marker gelesen werden kann.
  6. Anschliessend wird Prodat.INSTALL.MARKER lokal gegen remote verglichen: Inhalt und Zeitstempel muessen uebereinstimmen.
  7. Wenn der Marker auf der lokalen Kopie fehlt oder abweicht, ist die lokale Kopie aus Sicht des Launchers veraltet.
  8. Ist die lokale Kopie veraltet und die konfigurierte Remote-Quelle passt zur erwarteten Umgebung, wird die aktuelle ProdatRunLocal.exe in den lokalen RunLocal-Ordner kopiert.
  9. Danach wird der lokale ProdatRunLocal.exe gestartet, damit der lokale Ablauf weiterlaeuft.
  10. Wenn die Marker gleich sind, bleibt ProdatERP.exe im lokalen Betrieb und es wird nichts umgeschaltet.
  11. Der Installationsmarker kommt aus dem Setup: Setup\ProdatERP-Setup.iss liefert Prodat.INSTALL.MARKER in die installierte Struktur, und genau dieser Marker wird spaeter fuer die Abgleichentscheidung benutzt.

Was die Batch-Dateien tun

  • RunLocal_Setup.bat
    • Schreibt RunLocal_SetCfgVariables.bat.
    • Erzeugt die lokale Struktur Administration\RunLocal.
    • Erzeugt das Shortcut-Hilfsskript und das Task-Skript.
    • Ruft RunLocal_UpdateLocal.bat SYNC auf, um die Installation zu spiegeln.
    • Erzeugt den Desktop-Shortcut und den lokalen Neustart-/Update-Shortcut.
  • RunLocal_UpdateLocal.bat
    • Liest die Konfigurationsdatei.
    • Prueft Quell- und Zielpfade.
    • Fuehrt Robocopy-Mirroring aus.
    • Nutzt Prodat.INSTALL.MARKER als Inhalts-/Zeitstempel-Markierung.
    • Startet ProdatERP.exe erneut, ausser DONTSTARTPRODAT wurde uebergeben.
  • RunLocal_Setup_Task.bat
    • Erstellt oder loescht den geplanten Task CIMPCS\ProdatERP - Run Lokal - Update.
  • RunLocal_Setup_Shortcut.vbs
    • Erstellt oder loescht die .lnk-Dateien fuer den lokalen Neustart und den Desktop-Eintrag.

Wichtige Dateien

  • PRODAT\Application\ProdatRunLocal\280\ProdatRunLocal.dpr
  • PRODAT\Application\ProdatRunLocal\USelfUpdate.pas
  • PRODAT\Prodat\Prodat-SQL\udbs.pas
  • PRODAT\Prodat\Prodat-SQL\UP2005Start.pas
  • ExternKomponenten\RUNTIME-Dirs\Administration\RunLocal\RunLocal_Setup.bat
  • ExternKomponenten\RUNTIME-Dirs\Administration\RunLocal\RunLocal_UpdateLocal.bat
  • ExternKomponenten\RUNTIME-Dirs\Administration\RunLocal\RunLocal_Setup_Task.bat
  • ExternKomponenten\RUNTIME-Dirs\Administration\RunLocal\RunLocal_Setup_Shortcut.vbs

Von [E] Rocco Kreutz vor 7 Tagen aktualisiert · 9 Revisionen