Voraussetzungen und Phasen für die Inbetriebnahme

Bevor mit Servermode gearbeitet werden kann, müssen innerhalb der OpaccERP-Installation diverse Grundvoraussetzungen erfüllt sein. Dieses Kapitel ist als Leitfaden für die Erfüllung dieser Grundvoraussetzungen zu verstehen. In Abhängigkeit des Kundenprojektes können u.U. weitere Punkte auftauchen, welche in dieses Kapitel gehören, hier jedoch nicht explizit aufgeführt sind.

Ein Servermode-ServiceBus arbeitet ohne "Laufwerksmapping". Das bedeutet, dass die OpaccERP-Installation nicht über das gewohnte Schema "[Laufwerk]:\insyde" erreichbar ist. Stattdessen ergeben sich Zugriffspfade wie "D:\Daten\OpaccERP\insyde" oder "\\Server-1\OpaccERP\insyde".
Das ist für den reinen Betrieb kein Problem. In F-Scripts, Druckersteuerungen, Auswertungen, etc. muss dieser Umstand jedoch unbedingt berücksichtigt werden. Das führt dazu, dass bei bestehenden Installationen welche (auch nur teilweise) auf Servermode umgestellt werden sollen, viel Anpassungsarbeit notwendig ist. Diese Anpassungen sind im übrigen vor der Inbetriebnahme eines Servermode-ServiceBus durchzuführen, abzuschliessen und zu testen. Erst danach darf mit der Konfiguration, Installation und Nutzung eines Servermode-ServiceBus begonnen werden.

Lizenzen

  • Lizenzierte Serverprozessoren: Es ist sicherzustellen, dass genügend Serverprozessoren lizenziert sind. Ansonsten ist das Starten des Servermode-ServiceBus nicht möglich.
  • Für die Nutzung der WebService-Schnittstelle ist zusätzlich die Option WebService-Schnittstelle zu lizenzieren.

Applikationsserver - Technische Vorgaben

In der Regel wird der Servermode-ServiceBus als Dienst auf dem OpaccOXAS-Primary installiert. Es gelten somit die Voraussetzungen/Vorgaben gemäss unseren TechNotes > Technische Vorgaben > Systemvorgaben > OpaccOXAS.

Phase I - Vorbereitungen

F-Script Statistik aktivieren

Wird im Servermode gearbeitet, können aus F-Script heraus keine Dialoge oder Abfragen angezeigt werden. Sämtliche Dialoge sind aus den F-Scripts zu entfernen. Um eine verlässliche Aussage über die Verwendung von Dialogen und HARRAY(POPUP... treffen zu können, muss die F-Script Statistik aktiviert werden.

               
Einstellungen BC 98216 Vorgaben Installation
Um die F-Script Statistik zu aktivieren muss lediglich im BC 98216 die zwei untenstehenden Einstellungen vorgenommen werden. Diese Änderungen sind sofort wirksam.
Phase1_01.jpg
F-Script Interaktion: 2 - Aktiviert mit Protokoll
Mit dieser Einstellung sind Scriptdialoge erlaubt, werden aber in der Statistik aufgeführt. Dabei werden Script-Dialoge explizit gezählt.

               
F-Script Statistik aktiv: Checkbox aktiv
Mit dieser Einstellung wird bei jedem Scriptaufruf ein entsprechender Eintrag protokolliert.
Achtung
Achtung
Die F-Script Statistik ist eine Momentaufnahme während der aktiven Protokollierung! Bitte nehmen Sie dazu mit Ihrem OpaccERP Projektleiter Kontakt auf.
Hinweis
Hinweis
Wird bei ausgeschalteten Script-Dialogen (F-Script Interaktion: 0 - Deaktiviert) ein F-Script gestartet welches einen Dialog enthält, wird eine entsprechende Fehlermeldung angezeigt. Der eigentliche F-Script Dialog wird unterdrückt, das F-Script wird aber trotzdem ausgeführt.
F-Script_Dialog_Error.jpg

DIY-BC für BO ScriptStatistik erstellen

Erstellen Sie ein DIY-BC (List-OK-BC) um die einzelnen Einträge später kontrollieren zu können.
Phase1_02.jpg

Drucker

Wenn im Servermode gearbeitet wird und PDF-Dokumente ausgedruckt werden sollen ist zu beachten, dass alle verwendeten Drucker auf dem Applikationsserver installiert sein müssen. Das ist notwendig, weil für das Drucken von PDF-Dokumenten die entsprechenden Druckertreiber benötigt werden. Der Benutzer, unter dessen Account der Servermode-ServiceBus läuft, muss Zugriff auf diese Drucker haben.
Um die vorhandenen Möglichkeiten (z.B. Schachtsteuerung) nutzen zu können, sollte dieser Benutzer zudem über die Berechtigung Druck-Operaroren verfügen. (Das ist vor allem dann notwendig, wenn Sie mit Applikationen wie PdfPrint.exe arbeiten.)

Druckereinstellungen - Device und Spooler

Device
Umstellen des Device/Dateiname. OpaccOXAS Studio BC 98400 > Grundeinstellungen (pro OpaccERP Drucker)
Das Device muss in der Form \\Servername\Druckername eingetragen werden. Ein Device wie LPT2: oder LPT3: kann im Servermode nicht genutzt werden, da ein Applikationsserver in aller Regel nicht über direkt angeschlossene Drucker verfügt.
Beispiel:
98400_1.jpg
Wichtig
Wichtig
Stellen Sie sicher, dass der hier erfasste Device-Name dem Windows-Druckernamen entspricht. Beachten Sie in diesem Zusammenhang auch den Domänen-Namen.
Ohne Domäne: \\Print_Server\Drucker_Name
Mit Domäne: \\Print_Server.intra.local\Drucker_Name
Das korrekte Erfassen der Device-Namen ist wichtig! Wenn der Drucker aufgrund eines falsch hinterlegten Device-Namens nicht direkt gefunden wird, kann ein Druckvorgang bis zu drei Minuten dauern.
Spooler
Wird trotz der Umstellung des Device noch ein "Spooler Batch" benötigt, z.B. um Softfonts oder Makros auf den Drucker zu kopieren, so ist der Pfad zur Batch-Datei als "relativer Pfad" zu erfassen. BC 98400 > Grundeinstellungen (pro OpaccERP Drucker) > Button Drucker-Eigenschaften -> BC 98410 > Register Steuerung-1.
Beispiel:
98400_2.jpg

Druckereinstellungen - Vorgabe Pfad zu Textdateien

Der Pfad zu Textdateien ist als "relativer Pfad" zu erfassen. BC 98400 > Diverses.
Beispiel:
98400_3.jpg

Vorgabe Pfad für Artikelbilder und Artikeltextblock

Der Pfad zu Artikelbildern und Artikeltextblöcken ist als "relativer Pfad" zu erfassen. BCs 91900 und 92900 (Diverses einrichten).
Beispiel BC 91900:
Phase1_03.jpg
Beispiel BC 92900:
Phase1_04.jpg

Accounting - Pfad für Transferdateien umstellen

Im BC 98300 müssen die Pfadangaben für die Transferdateien (Debi und Kredi) auf relative Pfadangabe oder vollen UNC-Pfad umgestellt werden. Nachstehend ein Beispiel für relative Pfadangabe:
Phase1_05.jpg

Auswertungen - Pfade für Scripts / Templates

Hinweis
Hinweis
Wird die Umstellung auf Servermode vor OpaccERP Version 16.10 durchgeführt müssen sämtliche Auswertungen via BC 84100 bereinigt werden. Die Pfade sind gemäss untenstehendem Muster anzupassen.
Der Pfad zu der Vorlage einer Auswertung ist Designtime (BC 84110) als "relativer Pfad" zu erfassen.
Beispiel für Auswertung Typ «F-Script»:
Phase1_06.jpg
Beispiel für Auswertungen Typ «Serien-Dokumente» / «Tabellen-Blatt» / «Windows Report»
Phase1_07.jpg
Beispiel für generelle Pfade wie "Hintergrundlogo" etc.:
Phase1_08.jpg
Erinnerung
Erinnerung
Falls nicht anders zu lösen, z.B. wenn die Vorlage ausserhalb der OpaccERP Installation liegt, ist der volle UNC-Pfad einzutragen. Beispiel: \\Datenserver\Vorlagen\Excel\KD-AD100.xlt
Hinweis
Hinweis
Mit Version 16.10 werden Auswertungen automatisch in BO-Tabellen überführt. Im hierbei werden alle Varianten von Pfaden (Templates, Scripts usw.) bereinigt, da sich diese alle in einem logischen Verzeichnis unterhalb der Insyde Verzeichnis-Struktur befinden müssen. Das manuelle Bereinigen – welches ohne den Update auf 16.10 nötig wäre – entfällt somit grösstenteils. Die Migrations-Tauglichkeit der Auswertungen eines Kunden kann mittels Opacc.Update.ReportsXml.Test.App vorab überprüft werden. Bitte nehmen Sie für weitere Informationen mit Ihrem OpaccERP Projektleiter Kontakt auf.

Pfade in Applikationspool-Einträgen

Passen Sie im BC 98260 sämtliche Argumente der jeweiligen Applikationspool-Schritte an, welche einen statischen resp. nicht relativen Pfad aufweisen.
Phase1_09.jpg

Verwendung von SYS(SESSION)

Der Befehl «SYS(SESSION)» liefert die eindeutige BIZ-Session-Nr. innerhalb eines BIZ-Prozesses. Diese Session-Nr. wird innerhalb eines BIZ-Prozesses u.a. für das Erstellen von Files (Druckvorschau) verwendet. Beachten Sie, dass diese Session-Nr. im Servermode nicht für die eindeutige Identifikation einer OpaccERP-Anmeldung verwendet werden kann.
Gefahr
Gefahr
Für das Erstellen von eindeutigen File- und/oder Verzeichnisnamen ist dieser Befehl nicht geeignet und darf deshalb auch nicht verwendet werden.
Unter Umständen sind jedoch noch F-Scripts vorhanden, in denen der Befehl «SYS(SESSION)» verwendet wird. Entfernen Sie den Befehl «SYS(SESSION)» aus diesen F-Scripts und ersetzen Sie Ihn durch eine auf Ihre Anforderungen passende Logik. Beispielsweise indem Sie den Befehl «SYS(START_SESSION)» oder «SYS(GUID CREATE)» verwenden.

F-Script - Pfadangaben / Programmaufrufe - SYS(RUN... / Zugriffe auf Dateien und Verzeichnisse

Erinnerung
Erinnerung
In F-Script steht der Befehl «SYS(FULLPATH)» zur Verfügung. Dieser liefert den vollen Pfad auf die OpaccERP-Installation und kann in jedem Fall verwendet werden.
Beispiele für die Rückgabe von «SYS(FULLPATH)»: \\SrvOO-DB\OpaccERP\insyde\ oder O:\Insyde\
In den F-Scripts sind die Pfadangaben auf relative Pfade oder FULLPATH umzustellen.
Beispiel
# Nicht mehr verwenden!
«WRITE(1:DIRECT \insyde\tx\art-mrtab.txt)»
#
# Write mit relativem Pfad
«WRITE(1:DIRECT ..\tx\art-mrtab.txt)»
#
# Write mit vollem Pfad auf die Installation (Empfohlene Variante)
«WRITE(1:DIRECT «SYS(FULLPATH)»tx\sch-mrtab.txt)»
Das Aufrufen von externen Programmen oder das Ausführen von Konsolen-Befehlen ist auf FULLPATH umzustellen. Weitere Informationen finden Sie in den Manuals: F-Script > Befehle > Systembefehle > SYS (Systeminfo) > SYS(RUN program)
Beispiel
# Verschieben von Dateien über den Konsolenbefehl "move"
#
«SYS(RUN cmd /c move «SYS(FULLPATH)»tx\Textdatei.txt «SYS(FULLPATH)»\tx\test)»
#
# Starten einer Verarbeitung durch Aufrufen einer Batch-Datei über die Konsole.
«SYS(RUN start /b «SYS(FULLPATH)»IP\Tages_Endverarbeitung.bat)»
Oft werden Dateien in Verzeichnissen ausserhalb der OpaccERP Installation abgelegt. Beispielsweise Schnittstellenfiles für Lager-Subsysteme. In diesen Fällen ist für lesenden und schreibenden Zugriff auf UNC-Pfad umzustellen. (UNC-Pfad zu den entsprechenden Verzeichnissen.)
Beispiel
# Insyde Installation liegt auf O:\Insyde\
# Schnittstellenfiles liegen auf S:\Lager\Out\
#
# Nicht mehr verwenden!
«WRITE(1:DIRECT S:\Lager\Out\Ausgang.txt)»
#
# Write mit vollem UNC-Pfad!
«WRITE(1:DIRECT \\Server-Name\Freigabename\Lager\Out\Ausgang.txt)»

Phase II - Bereinigung von Pfaden in F-Scripts

Die Bereinigung von Pfaden in F-Scripts kann bereits vor der eigentlichen Umstellung auf Servermode erledigt werden.
Das Tool RegularExpressionScripts.exe vereinfacht die gezielte Suche nach spezifischen Mustern in F-Script Dateien. Es verfügt über eine Benutzeroberfläche mittels welcher man den Pfad zu Verzeichnis FF sowie die gewünschte Regex Option wählen kann.
Bitte nehmen Sie für weitere Informationen Kontakt mit Ihrem OpaccERP Projektleiter auf.
Hinweis
Hinweis
In den nachfolgenden Kapiteln wird lediglich auf die Optionen INSYDEPATH und INDIVPATH eingegangen.

F-Scripts: Ersetzen von absoluten Pfaden zu Insyde

Suchen Sie mit RegularExpressionScripts.exe nach Regex Option «INSYDEPATH».
Klicken Sie den ersten Treffer – Dies müsste Textpad öffnen.
Sie können nun Schrittweise alle Dateien entsprechend untenstehendem Beispiel umstellen:
# -----------------------------------------------
# Varianten welche anzupassen sind:
# Beispiel InsydePath mit Laufwerksangabe
O:\INSYDE\TMP\Datei.txt
# Beispiel statischer Pfad ohne Laufwerksangabe
\INSYDE\TMP\Datei.txt

# Nach der Anpassung:
«SYS(FULLPATH)»TMP\BODY.HTM
# -----------------------------------------------
Am Schluss sollten sämtliche Pfade, welche relativ zu Insyde sind mittels «SYS(FULLPATH)» umgestellt worden sein.

F-Scripts: Ersetzen von individuellen Pfaden

Dieser Schritt ist nur sinvoll, wenn "Absolute Pfade" bereits bereinigt wurden, da sonst diese Treffer auch gefunden werden. Ändern Sie die die individuellen Pfade alle auf UNC-Pfade.
Achtung
Achtung
Der OXAS Server muss auf diesen UNC-Pfad natürlich auch Zugriff haben. Eingeschränkte Freigaben sind zu vermeiden!
Hinweis
Hinweis
Legen Sie individuelle Pfade welche sich nicht relativ zu Insyde befinden immer in einer Endusertabelle ab. Dies hat den Vorteil, dass Pfade - wenn diese jemals ändern sollten – nur an einer Stelle geändert werden müssen.
Phase2_01.jpg
Vorgehen wie oben jedoch mit Regex Option «INDIVPATH». Klicken Sie den ersten Treffer – Dies müsste Textpad öffnen. Sie können nun Schrittweise alle Dateien entsprechend untenstehendem Beispiel umstellen:
# -----------------------------------------------
# Beispiel indiv Pfad (Netzlaufwerk)
Z:\EDI\Protokolle\
X:\TRANSFER\XMLEXPORT\Processing
X:\TRANSFER\XMLEXPORT\Done
# Nach der Anpassung:
«SCRIPTING.PATH(PATH.EDI)»\Protokolle
«SCRIPTING.PATH(PATH.XMLEXPORT)»\Processing
«SCRIPTING.PATH(PATH.XMLEXPORT)»\Done
# oder wenn nciht in einer Endusertabelle:
\\SERVER001\EDI\Protokolle
\\SERVER002\Transfer\XMLExport\Processing
\\SERVER002\Transfer\XMLExport\Done
# -----------------------------------------------

F-Scripts: Pfade auf lokale Verzeichnisse am Client

Scripts welche "lokale" Pfade, also Verzeichnisse auf der Arbeitsstation des Clients verwenden sind umzubauen.
Hinweis
Hinweis
Idealerweise verschieben Sie den Pfad einfach relativ zu Insyde (am Server). Ist dies nicht möglich müsste dieses Script mit einem BOFScript gekappselt werden.

OpaccERP auf UNC-Pfad umstellen

Eine Umstellung auf UNC-Pfad via Konfiguration ist ab v23.02 nicht mehr notwendig. Ab v17.10 ist der Workstation-Mode nicht mehr unterstützt und somit ist eine separate Umstellung auf UNC-Pfad via Konfiguration obsolet.

Phase III - Planung/Konzept Umbau Prozesse

In dieser Phase wird festgelegt welche Fälle umgebaut werden müssen und wie das zu erfolgen hat. In dieser Phase müssen auch die Aufwände (und gegebenenfalls die Kosten) geschätzt sowie die weiteren Schritte geplant werden.
Um mit dieser Phase beginnen zu können, ist das Aktivieren der F-Script Statistik (siehe Phase I) unerlässlich.
Mit dem in Phase I erstellten DIY-BC (siehe Phase I) kann nun geprüft werden, welche F-Scripts Dialoge enthalten.

Analyse F-Script Statistik

Grundsätzlich ist das BO (mittels DIY-BC) ziemlich selbsterklärend. Die wichtigsten Informationen:
Phase3_01.jpg
Hinweis
Hinweis
Exportieren Sie die Datensätze ins Excel. In Excel können die einzelnen Einträge dann einfacher beurteilt und nach Themen gruppiert werden.
Alle Scripts bei welchen die Anzahl der "unterdrückten" Script-Interaktionen > 0 ist sind zu kontrollieren.
Achtung
Achtung
Denken Sie daran, dass Kunden z.T. Scripts oder Verarbeitungen nur 1x im Monat oder Jahr verwenden könnten! Diese Scripts sollten auch in die Analyse miteinbezogen werden!

Bereinigung FF-Verzeichnis

Dieser Punkt ist nicht zwingend notwendig, spart jedoch Aufwand/Zeit.
Wird diese Bereinigung vorgenommen, müssen jedoch während der Phase IV (Umbau Scripts/Prozesse) keine unnötigen (mit entsprechndem Aufwand verbundenen) Scriptanpassungen vorgenommen werden.
Hinweis
Hinweis
Mittels F-Script Statistik lassen sich Rückschlüsse über die Verwendung von F-Scripts ziehen.
Wird ein F-Script in der Statistik nicht aufgeführt, kann davon ausgegangen werden, dass dieses potentiell nicht mehr benötigt wird oder es sich um eine Kopie/Sicherung handelt.
Verschieben Sie Dateien welche offensichtlich nicht mehr benötigt werden in ein Unterverzeichnis.
Achtung
Achtung
Löschen Sie diese Dateien nicht!
Sollte ein Script nach ein paar Monaten dann doch noch von jemand benötigt werden, kann dieses einfach wieder aus dem Unterverzeichnis kopiert werden.

Gruppierung nach Dialog-Typ

Zusätzlich zur Gruppierung nach Anwendungsbereich macht eine zusätzliche Gruppierung nach Dialog-Typ Sinn.
  • Dialoge Typ «Meldungen / Infos» (keine User-Interaktion)
  • Dialoge Typ «Script-Eingabe» (klassicher Script-Dialog z.B. "Startdatum eingeben")
  • Dialoge Typ «HARRAY(POPUP)» Selektionen (Select/MultiSelect)

Gruppierung nach Anwendungsbereich

Damit bei eigentlichen Umsetzung der Script-Anpassungen möglichst optimiert vorgegangen werden kann empfiehlt sich eine Gruppierung der einzelnen Scripts/Prozesse in 3 Anwendungsbereiche:
  • Dialoge bei «Auswertungen»
  • Dialoge von F-Scripts welche ab «DeskItem» usw. gestartet werden (OnClick)
  • Dialoge in «Logik-Scripts» (VEVV,VERPSAVE, ARTSAVE usw.)

Phase IV - Umbau Scripts/Prozesse

Wurden die zu ändernden F-Scripts / Prozesse identifiziert und in die drei Themenblöcke aufgeteilt, kann nun mit dem eigentlichen Umbau begonnen werden.
Hinweis
Hinweis
Führen Sie die Scriptanpassungen zuerst auf einer Testumgebung durch.
Werden die Anpassungen direkt auf der produktiven Umgebung vorgenommen, kann dies zu unerwünschten Problemen führen. Beispielsweise dann, wenn Anwender während der von Ihnen vorgenommenen Anpassungen den entsprechenden Prozess abarbeiten oder das entsprechende F-Script ausführen.

Dialog Typ: «Meldungen / Infos»

Die Meldungen stellen eigentlich Informationen und/oder Fehlermeldungen dar.
Generelle Empfehlung
Meldungen welche informativen Charakter haben (z.B. "Verarbeitung fertig") oder Fehlermeldungen sind mit «SYS(MSG <Message Typ> <Text>)» zu ersetzen. Weitere Informationen dazu finden Sie unter SYS(MSG...).

Dialog Typ: «Script-Eingabe»

Diese Dialoge dienten primär der Eingabe von Startwerten welche zu Laufzeit durch den Anwender eingegeben werden sollten. Dies wurde sehr oft gemacht mangels Alternativen bei z.B. Auswertungen (Vorgabewerte nur beschränkt möglich).
Diese wurden in allen Anwendungsbereichen (siehe nachfolgend) eingesetzt.

               
Anwendungsbereich «Auswertungen»
Dialoge welche bei Auswertungen verwendet wurden um den Benutzer Startparameter eingeben zu lassen (z.B. Startdatum) können heute ausnahmslos über die mittels GetInfoScriptArg geschaffenen Möglichkeiten abgebildet werden.
Die neuen Möglichkeiten lassen keinen Wunsch mehr offen und stellen klar einen Vorteil gegenüber Dialogen dar, da diese auch "kontextspezifisch" definiert werden können.
Für diese Dialoge ist kein BOF-Script nötig.

               
Anwendungsbereich «DeskItem»
Diese Dialoge sind analog den Auswertungen zu ändern, da die Mechaniken von GetInfoScript explizit so gebaut wurden, dass diese sowohl für Auswertungen wie auch für "normale" Scripts gleich funktionieren.
Für diese Dialoge ist kein BOF-Script nötig.

               
Anwendungsbereich «Logik-Scripts»
Diese Prozesse sind im Detail zu analysieren und stellen meistens eine grössere Herausforderung dar, da hier in den eigentlichen logischen Abläufen auf User-Interaktion gesetzt wurde.
Eine 1:1 Ablösung dieser Funktionalität wäre meistens nicht ideal und sollte nur im Spezialfall angestrebt werden. Oftmals lässt sich der eigentliche Prozess inzwischen im Standard abbilden.
Für diese Prozesse ist ggf. ein BOF-Script notwendig.

Dialog Typ: «HARRAY(POPUP)»

Mittels «HARRAY(POPUP)» wurden früher komplexere Prozesse abgebildet welche dem Anwender eine Auswahl von Optionen und weiterführende Prozesse zur Verfügung stellt.

               
Anwendungsbereich «Auswertungen»
Diese Auswertungen sind im Detail zu analysieren.
Wurde bei Auswertungen mit HARRAY(POPUP) gearbeitet geht es oftmals um die Auswahl von Datensätzen wie z.B. Positionen oder Artikeln aus einem Pool welche keinen direkten Bezug auf die Haupt-/Vorselektion haben.
Handelt es sich um eine "Einzel-Auswahl" (SingleSelection) kann die Auswertung mittels GetInfoScript einfach umgestellt werden. Für diese Auswertungen ist kein BOF-Script notwendig.
Auswertungen mit Mehrfachauswahl (MutliSelect) oder mehreren Auswahlen welche in Abhängigkeit der vorhergehenden Usereingabe stehen ist die Erstellung eines BOF-Scripts nötig.

               
Anwendungsbereich «DeskItem»
Diese Scripts sind im Detail zu analysieren.
Grundsätzlich gilt die gleiche Vorgehensweise wie bei Auswertungen mit «HARRAY(POPUP)».

               
Anwendungsbereich «Logik-Scripts»
Diese Prozesse sind im Detail zu analysieren und stellen meistens eine grössere Herausforderung dar, da hier in den eigentlichen logischen Abläufen auf User-Interaktion gesetzt wurde.
Eine 1:1 Ablösung dieser Funktionalität wäre meistens nicht ideal und sollte nur im Spezialfall angestrebt werden. Oftmals lässt sich der eigentliche Prozess inzwischen im Standard abbilden.
Für diese Prozesse ist ggf. ein BOF-Script notwendig.

Phase V - Installation und Konfiguration des ServiceBus

Installieren und Konfigurieren des Servermode-ServiceBus

Abhängig von der Grösse der OpaccERP-Installation (Anzahl User, Applikationspools, etc.) sowie der vorhandenen Server-Hardware (Anzahl verfügbare CPU-Cores, etc.) muss eine detaillierte Planung vorgenommen werden.
Es muss u.a. festgelegt werden wie viele Servermode-ServiceBus Instanzen eingerichtet werden, welche Plugins aktiv sein sollen und wie die Zugriffsrechte auszusehen haben. Dazu kommt das Festlegen der Prozessor-Affinität über welche die Skalierung der CPU-Auslastung erfolgt.
Aufgrund der vielfältigen Anforderungen und der grossen Anzahl möglicher Konfigurationen, wird hier nicht im Detail auf Installation und Konfiguration eingegangen. Bitte planen Sie den Einsatz eines Servermode-ServiceBus mit unserer Systemtechnik.
Die Anleitung für die Installation des Windows-Dienstes finden Sie im Kapitel Installation.

Tools zur Unterstützung

Nachfolgend aufgeführte Tools dienen der Unterstützung zwecks Umstellung auf Servermode.

Tool: Opacc.Update.ReportsXml.Test.App.exe

Mit diesem Tool können Auswertungen von Installationen welche noch nicht auf V. 16.10.00 (oder höher) aktualisiert wurden auf deren Update-Fähigkeit überprüft werden.
Das Programm prüft sämtliche unterhalb des angegebenen Pfades verfügbaren "Report.xml" Dateien auf deren Konsistenz und Korrektheit.

               
Verwendung
Idealerweise gehen Sie folgendermassen vor um die Auswertungen einer Installation zu überprüfen:
1. Laden Sie das Tool auf Ihren Arbeitsplatz herunter.
2. Verbinden Sie die Installation über den bei diesem Kunden gebräuchlichen Netzwerk-Buchstaben.
→ z.B.: O:\insyde
3. Starten sie das Tool und geben den Pfad zu Insyde ein (gem. Punkt 2).
4. Klicken Sie auf «Do Migrate.
→ dieser Button ändert keine Daten es handelt sich lediglich um eine Überprüfung.

               
Das Tool liest die Datei OpaccOneInstallation.xml welche sich in der jeweiligen Installation befindet. Sämtliche Pfade welche als "<RootPath>" oder <AlternateRootPath> eingegebenen Pfade werden als "gültiger Pfad zu Insyde" angenommen.
Datenbank-Verbindung erstellen...
...ok
'OpaccOneInstallation.xml' für 'L:\Insyde' einlesen...
- Configured-Root-Path: '\\lab-db-03\OpaccLab1510\Insyde'
Pfade in Auswertungen welche den Mustern dieser Pfad-Varianten entsprechen würden beim Update automatisch bereinigt und werden somit nicht als Fehler ausgegeben.
Es wird nun eine Zusammenfassung der einzelnen Reports.xml Dateien angezeigt. Hierbei wird angezeigt, wie viele Reports Ok oder fehlerhaft sind.
Hinweis
Hinweis
"Discarded" bedeutet, dass diese Reports beim Update gelöscht würden!
Reports mit "Error" müssen vor dem Update bereinigt werden.
Alle Reports.xml migrieren (nur Simulation)...
Zusammenfassung --------------------
- Mandant 1: -> 302 Reports (218 Ok / 8 Discarded / 76 ERROR)
- Mandant 67: -> 96 Reports (89 Ok / 5 Discarded / 2 ERROR)

               
Häufige Fehler und Korrektur von Reports.xml
Nachfolgende werden die häufigsten Fehler und deren Korrektur beschrieben:
  • Invalid Template-Path
    '\\LABV14DB.lab.intra.local\OpaccOneV1420\Insyde\Reports\Templates\Adressetikette.dot': Invalid Path/Name given: Path '\\LABV14DB.lab.intra.local\OpaccOneV1420\Insyde\Reports\Templates\Adressetikette.dot' outside of 'l:\Insyde'
    Die Auswertung verwendet ein Pfad-Muster welches gem. OpaccOneInstallation.xml nicht gültig ist.. Pfade egal ob Scripts oder Vorlagen etc. müssen sich innerhalb der Insyde-Struktur befinden.
    Lösung:
    Pfad bereinigen wenn Auswertung noch benötigt wird.
    Report löschen, wenn es sich um einen Test handelt.
  • Unexpected Criterion Rows Value detected
    Concat Operator is 'ZZZZZZ'
    Die Auswertung enthält ein ungültiges Filter-Kriterium im XML-Element <CriterionRows> Erwartet wäre "and" oder "or".
    <CriterionRows>Addr.Number;null;;;;8;Ein;;&gt;=;1;99999;;and;0;Addr.CountrySc;null;;;;8;Ein;;&gt;=;;ZZZ;;and;0;Addr.Zip;null;;;;8;Ein;;&gt;=;;ZZZZZZ;;ZZZZZZ;0;</CriterionRows>
    Hier trat beim Ändern der Selektionskriterien mal ein Fehler auf. Das UI korrigierte (ignorierte) diese Fehler bei der Ausführung oftmals.
    Lösung:
    Erneutes Speichern der Auswahlkriterien im BC 84110 Auswertung Eigenschaft en löst das Problem
    <CriterionRows>Addr.Number;null;;;;8;UI.84120.Inner;;&gt;=;1;99999;;and;0;Addr.CountrySc;null;;;;8;UI.84120.Inner;;&gt;=;;ZZZ;;and;0;Addr.Zip;null;;;;8;UI.84120.Inner;;&gt;=;;ZZZZZZ;;;0;</CriterionRows>
  • Error: Unexpected Result Value detected
    Type is 'Addr.Email(AddrPoolItem.AddrNo)'
    In dieser Auswertung sind ungültige Ausgabe-Attribute enthalten. Diese wurde vom UI oftmals ignoriert oder führten vor dem Update schon zu Fehlern.
    Mail=if(Contact.Email(AddrPoolItem.ContactBoId)="";Addr.Email(AddrPoolItem.AddrNo);Contact.Email(AddrPoolItem.ContactBoId))
    Lösung:
    In diesem Fall hier: Die If-Expresison erlaubt kein Semikolon sondern nur Kommas als Delimiter Es liegt hierbei eigentlich immer an der falschen Defintion eines virtuellen Attributes.
  • Discarded: Reports without Main-Selection
    Reports without Main-Selection ('content/BoSelection/Selection') not support
    Diese Auswertung besitzt keine Selektion und funktioniert so vor der Migration schon nicht. Oft handelt es sich um Tests.
    Da das BC 84100 vor V. 16.10.00 keine Suchmöglchkeit besass, wurden teils Begriffe als Auswertungen erfasst um geziehlt an diese Stelle zu "springen". Diese hätten jeweils gelöscht werden müssen – daran scheinen sich aber viele Personen nicht gestört zu haben.
    Lösung:
    Diese Auswertung wird automatisch gelöscht beim Update.
  • Discarded: 'E-Mail KP, mit Anhang' / 'E-Mail mit Anhang, einzeln'
    Standard-Reports with fixed Email-Attachements do not make any sense
    Diese beiden Standard-Auswertung waren früher mal als "Beispiel" gedacht. Diese besitzen ein fixes Attachment und können nicht durch Kunden reell verwendet werden.
    Standardauswertungen sollten eigentlich "Fullfeatured" sein und somit durch einen Kunden verwendbar sein. Hier handelte es sich um ein "Beispiel".
    Lösung:
    Diese Auswertungen werden automatisch gelöscht beim Update.

            

Tool: RegularExpressionScripts.exe

Mit diesem Tool können Sie ein F-Script-Verzeichniss nach spezifischen Fällen durchsuchen. Die definierten Fälle stellen Wartungs-Arbeiten und auch Korrekturen wie z.B. das Bereinigen von statischen Pfaden in F-Scripts.

               
Verwendung
1. Laden Sie das Tool auf Ihren Arbeitsplatz herunter.
2. Starten Sie das Programm und wählen unter "Browse…" das gewünschte Verzeichnis.
3. Wählen Sie die gewünschte Option und klicken auf Scan.
4. Es werden nun die gefundenen Codestellen angezeigt, welche diesem Muster entsprechen.
5. Klicken Sie den ersten Eintrag an.
6. Wenn installiert müsste sich nun Textpad (getestet mit V. 4.7.3 von Textpad) öffnen und auf diese Zeile im Script springen.
7. Korrigieren Sie diese Codestelle und wiederholen dies mit jeder Zeile im Tool.
Wenn Sie zwischendurch neu suchen, sollte die Liste immer kleiner werden und somit die "todos" abnehmen.
Hinweis
Hinweis
Beachten Sie, dass nicht jeder Treffer zwingend auch "falsch" sein muss, da auch Regex (Suchmechanik) seine Grenzen hat. Dieses Tool soll lediglich die Suche der potentiell anzupassenden Codestellen vereinfachen.

Enthaltene Such-Optionen

Die Regex-Optionen stellen das "Pattern" (Muster) nach welchen gesucht werden soll dar. Da die Suche mittels Regex-Patterns nicht jedermanns Sache ist wurden diese Patterns mit Begriffen vereinfacht. Hinter diesen Begriffen versteckt sich demnach das zu suchende Muster.

Regex-Option: DATAFLEX

Diese Option sucht nach Codestellen welche dem Muster «PROPJN# 3 74» oder z.B. «FIFE#132 1» usw. entsprechen.
Diese Art der "Direktadressierung" von Dataflex-Feldern ist heikel, da die Nummern der Felder jederzeit auch ändern könnten.
Diese wären durch F-Script Felder oder BO-Attribute zu ersetzten (GetBo). Bis heute wurde das mit V. 14.20 "angedrohte" entfernen dieser Mechanik jedoch nicht vollzogen.
Das erneute Anwenden dieser Mechanik in Scripts (neu) ist jedoch zu unterlassen!

Regex-Option: CHAIN

Suche nach so genannten Chain Programmen, welche offiziell nicht mehr funktionieren / verwendet werden dürfen.
Chain-Programme sind Programme welche eine spezfische Funktion enthalten. Bekannte – und weiterhin erlaubte(!) – Chain-Programme sind z.B. IO5DPA oder IOWAIT.

Regex-Option: INSYDEPATH / INDIVPATH

Suche nach Codestellen welche fixen Pfade (z.B. mit Laufwerksbuchstaben) enthalten.
Diese sollen mittels «SYS(FULLPATH)» oder UNC-Pfade ersetzt werden.

Regex-Option: SESSION

Suche nach F-Script Befehl «SYS(SESSION)».
Dieser wurde oft verwendet um Dateien "eindeutig" zu benennen. Im Servermode (und teils auch vorher…) ist dies jedoch NICHT eindeutig!
Diese sollen mittels «SYS(START_SESSION)» oder noch besser «SYS(GUID CREATE)» ersetzt werden.

Regex-Option: HARRAY

Suche nach F-Script Befehl «HARRAY(<Typ>)».
Diese Option kann z.B. für die Suche nach HARRAY(POPUP) verwendet werden.
Regex_HARRAY.jpg
«HARRAY(POPUP)» wurde früher verwendet um dem Anwender eine Liste zur Auswahl zur Verfügung zu stellen. Diese werden wie alle anderen Script-Dialoge nicht mehr angezeigt.
Diese sind durch aktuelle Möglichkeiten in F-Script resp. BOF-Script zu ersetzen.

Regex-Option: FORMAT-NUMBER

Suche nach F-Script Codestellen welche "nur Längenangaben enthalten:
Beispiel:
«F+»«EDK-LADR-NR\6» «8»«NAME»[, «sZEILE1»]«F-»
Früher wurden sämtliche Befehle in F-Script auch innerhalb der Feld-Tabelle (Dataflex) geführt. Wurde die "Formatierung" wie \A, \D, \N usw. weggelassen wurde diese Formatierung angewandt.
Diese sollen durch die entsprechende Formatierung \A (alphanummerisch), \N (nummerisch) usw. ersetzt werden.
Beispiel:
«F+»«EDK-LADR-NR\N6» «8»«NAME»[, «sZEILE1»]«F-»
Wenn Sie nicht sicher sind welches Format das Attribut hat ist \A empfohlen. Bei \N wirft der Interpreter einen Fehler wenn der Wert länger als die angegebene Formatierung wird.

Regex-Option: WRONGCOMMENT

Suche nach F-Script Zeilen welche einen Kommentar "hinter" dem Code steht.
Beispiel:
«SYS(MSG CRIT hallo welt)»# Zeigt eine Meldung
Dies ist so nicht möglich – Das Zeichen # welche in F-Scripts einen Kommentar representiert muss am Anfang einer Scriptzeile stehen.
Falsche Kommentare sind zu entfernen oder auf eine eigene Zeile zu schreiben

Regex-Option: PARENTHESIS

Prüft ob Klammerpaare immer abgeschlossen sind (Parenthesis).
Hierbei kann nach «/», (/) und [/] geprüft werden.
Beispiel:
«F+»  FETT  «F-»
Hier kann es natürlich sein, dass dies innerhalb eines Scripts ist, die Klammern müssen aber im Normalfall geschlossen sein, da der Interpreter sonst zu Laufzeit einen entsprechenden Fehler.
Unvollständige Parenthesis korrigieren – wenn nicht innerhalb eines "replaces" oder ähnlichem.