OBS/Adminhilfe/Pax Konvertierung: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 2: | Zeile 2: | ||
Einleitung | === Einleitung === | ||
Im Zuge der Modernisierung von OBS wird die alte Script-Engine durch eine Neue ersetzt. Durch die Umstellung müssen alle DRUCKE / MACROS / SQL-EXPORTE (=> SCRIPTE) angepasst werden. Ein Großteil der Anpassungen wird automatisch erfolgen. Diese Anleitung dient als Leitfaden für die manuelle Änderung von Scripten die von der automatischen Konvertierung nicht betroffen sind, bzw. die nicht vollständig Konvertiert werden konnten. | Im Zuge der Modernisierung von OBS wird die alte Script-Engine durch eine Neue ersetzt. Durch die Umstellung müssen alle DRUCKE / MACROS / SQL-EXPORTE (=> SCRIPTE) angepasst werden. Ein Großteil der Anpassungen wird automatisch erfolgen. Diese Anleitung dient als Leitfaden für die manuelle Änderung von Scripten die von der automatischen Konvertierung nicht betroffen sind, bzw. die nicht vollständig Konvertiert werden konnten. | ||
OBS-Update | === OBS-Update === | ||
ACHTUNG: Nach dem Update werden sämtliche SQL-Export-Scripte (Tabelle SQLEXPORT Feld sq_macro) ohne Anpassung nicht mehr funktionieren da sich die Struktur des SQL-Exports grundlegend geändert hat. | ACHTUNG: Nach dem Update werden sämtliche SQL-Export-Scripte (Tabelle SQLEXPORT Feld sq_macro) ohne Anpassung nicht mehr funktionieren da sich die Struktur des SQL-Exports grundlegend geändert hat. | ||
| Zeile 23: | Zeile 23: | ||
Aktivierung | === Aktivierung === | ||
Das OBS-Update wird zwar die neue Script-Engine einführen jedoch vorerst deaktiviert lassen (Programmparameter 444) damit erst alle zur Aktivierung nötigen Schritte unternommen werden können. Dazu sind folgende Schritte nötig: | Das OBS-Update wird zwar die neue Script-Engine einführen jedoch vorerst deaktiviert lassen (Programmparameter 444) damit erst alle zur Aktivierung nötigen Schritte unternommen werden können. Dazu sind folgende Schritte nötig: | ||
| Zeile 38: | Zeile 38: | ||
Übergangsphase | === Übergangsphase === | ||
Bevor die alte Script-Engine deaktiviert wird (und damit auch alle alten Scripte) wird es eine Übergangsphase geben in der sowohl die alten als auch die neuen Scripte funktionieren werden. Diese Übergangsphase ist zeitlich vorerst nicht limitiert wird aber genügend Zeit bieten alle nötigen Änderungen durchzuführen und ausgiebig zu testen. | Bevor die alte Script-Engine deaktiviert wird (und damit auch alle alten Scripte) wird es eine Übergangsphase geben in der sowohl die alten als auch die neuen Scripte funktionieren werden. Diese Übergangsphase ist zeitlich vorerst nicht limitiert wird aber genügend Zeit bieten alle nötigen Änderungen durchzuführen und ausgiebig zu testen. | ||
Dateiendungen | === Dateiendungen === | ||
Die Scripte werden anhand ihrer Dateiendung von der entsprechenden Script-Engine ausgeführt. Dabei gilt PAX > DREAM (aber Userdruck > Druck unabhängig der Dateiendung). Ist die neue Script-Engine nicht aktiv (Programmparameter 444) werden ausschließlich DREAM-Scripte ausgeführt (es sei denn es existiert nur das PAX-Script). | Die Scripte werden anhand ihrer Dateiendung von der entsprechenden Script-Engine ausgeführt. Dabei gilt PAX > DREAM (aber Userdruck > Druck unabhängig der Dateiendung). Ist die neue Script-Engine nicht aktiv (Programmparameter 444) werden ausschließlich DREAM-Scripte ausgeführt (es sei denn es existiert nur das PAX-Script). | ||
| Zeile 64: | Zeile 64: | ||
Syntax-Überprüfung | === Syntax-Überprüfung === | ||
In der alten Variante wurden Fehler im Code großzügig 'verziehen', d.h. falsche Zeichen oder fehlerhafte Aufrufe von Methoden wurden dennoch ausgeführt. Dieser Umstand ist in der neuen Variante glücklicherweise behoben und ein Fehlerhaftes Script kann nicht mehr ausgeführt werden. | In der alten Variante wurden Fehler im Code großzügig 'verziehen', d.h. falsche Zeichen oder fehlerhafte Aufrufe von Methoden wurden dennoch ausgeführt. Dieser Umstand ist in der neuen Variante glücklicherweise behoben und ein Fehlerhaftes Script kann nicht mehr ausgeführt werden. | ||
Allerdings haben sich in den vorhandenen Scripten durch die fehlende Syntaxüberprüfung zahlreiche kleine Fehler eingeschlichen die bei einem konvertierten Script zu Fehlern führen und manuell behoben werden müssen. | Allerdings haben sich in den vorhandenen Scripten durch die fehlende Syntaxüberprüfung zahlreiche kleine Fehler eingeschlichen die bei einem konvertierten Script zu Fehlern führen und manuell behoben werden müssen. | ||
| Zeile 76: | Zeile 76: | ||
Struktur des Scripts | === Struktur des Scripts === | ||
Die Grundstruktur eines Scripts hat sich wie folgt geändert: | Die Grundstruktur eines Scripts hat sich wie folgt geändert: | ||
| Zeile 103: | Zeile 103: | ||
Import von Units | === Import von Units === | ||
Um eine Methode oder Klasse innerhalb eines Scripts nutzen zu können muss sie vorher für den Scripter veröffentlicht werden. Das kann auf zwei Arten geschehen: | Um eine Methode oder Klasse innerhalb eines Scripts nutzen zu können muss sie vorher für den Scripter veröffentlicht werden. Das kann auf zwei Arten geschehen: | ||
Version vom 17. Juli 2014, 10:45 Uhr
Die neue PAX Script-Engine in OBS
Einleitung
Im Zuge der Modernisierung von OBS wird die alte Script-Engine durch eine Neue ersetzt. Durch die Umstellung müssen alle DRUCKE / MACROS / SQL-EXPORTE (=> SCRIPTE) angepasst werden. Ein Großteil der Anpassungen wird automatisch erfolgen. Diese Anleitung dient als Leitfaden für die manuelle Änderung von Scripten die von der automatischen Konvertierung nicht betroffen sind, bzw. die nicht vollständig Konvertiert werden konnten.
OBS-Update
ACHTUNG: Nach dem Update werden sämtliche SQL-Export-Scripte (Tabelle SQLEXPORT Feld sq_macro) ohne Anpassung nicht mehr funktionieren da sich die Struktur des SQL-Exports grundlegend geändert hat.
- Überprüfen ob der Kunde SQL-Export-Scripte nutzt
- Update ausführen
nur SQL-Export-Scripte genutzt werden:
- SQL-Export-Scripts konvertieren (Menüpunkt unter Support-Tools)
- SQL-Export-Scripts manuell nachkorrigieren (siehe Konvertierung)
- SQL-Export-Scripts überprüfen (Menüpunkt unter Support-Tools)
Aktivierung
Das OBS-Update wird zwar die neue Script-Engine einführen jedoch vorerst deaktiviert lassen (Programmparameter 444) damit erst alle zur Aktivierung nötigen Schritte unternommen werden können. Dazu sind folgende Schritte nötig:
- CUSTOMIZE-Scripte überprüfen (Menüpunkt unter Support-Tools)
- ARTI_PL_MACRO-Scripte überprüfen (Menüpunkt unter Support-Tools)
danach:
- Programmparameter 444 kann auf 2 (Pax) eingestellt werden.
Alle Drucke und Macros die in Dateiform vorliegen werden anhand ihrer Dateiendung der entsprechenden Script-Engine zugeordnet (siehe Dateiendungen) und müssen daher nicht konvertiert werden.
Übergangsphase
Bevor die alte Script-Engine deaktiviert wird (und damit auch alle alten Scripte) wird es eine Übergangsphase geben in der sowohl die alten als auch die neuen Scripte funktionieren werden. Diese Übergangsphase ist zeitlich vorerst nicht limitiert wird aber genügend Zeit bieten alle nötigen Änderungen durchzuführen und ausgiebig zu testen.
Dateiendungen
Die Scripte werden anhand ihrer Dateiendung von der entsprechenden Script-Engine ausgeführt. Dabei gilt PAX > DREAM (aber Userdruck > Druck unabhängig der Dateiendung). Ist die neue Script-Engine nicht aktiv (Programmparameter 444) werden ausschließlich DREAM-Scripte ausgeführt (es sei denn es existiert nur das PAX-Script).
- .pas -> Druck (DREAM)
- .inc -> Zusatzdatei für Druck (DREAM)
- .mac -> Macro (DREAM)
- .imac -> Macro (DREAM)
- .pax -> Druck (PAX)
- .inx -> Zusatzdatei für Druck (PAX)
- .pmac -> Macro (PAX)
Konvertierung von PAX zu DREAM
Syntax-Überprüfung
In der alten Variante wurden Fehler im Code großzügig 'verziehen', d.h. falsche Zeichen oder fehlerhafte Aufrufe von Methoden wurden dennoch ausgeführt. Dieser Umstand ist in der neuen Variante glücklicherweise behoben und ein Fehlerhaftes Script kann nicht mehr ausgeführt werden. Allerdings haben sich in den vorhandenen Scripten durch die fehlende Syntaxüberprüfung zahlreiche kleine Fehler eingeschlichen die bei einem konvertierten Script zu Fehlern führen und manuell behoben werden müssen.
Beispiele für Dinge die vorher möglich waren:
- Ein String wird ein eine Double-Variable geschrieben.
- Eine Funktion wird ohne Rückgabewert definiert.
- Ein berechneter Gleitkommawert wird ungerundet in eine Integer-Variable geschrieben.
Struktur des Scripts
Die Grundstruktur eines Scripts hat sich wie folgt geändert:
Altes Script | Änderung | Neues Script
-------------------------------------|---------------------------|----------------------------------
| |
program NAME; | --> [entfernt] |
| |
uses dialogs; | --> [entfernt] |
| |
var cVar : String; | | var cVar : String;
| |
implementation | --> [entfernt] |
| |
{$I .\IMPORT.inc } | | {$I .\IMPORT.inc }
| |
function StartProc(...):Boolean; | | function StartProc(...):Boolean;
begin | | begin
[...] | | [...]
end; | | end;
| |
end. | --> [entfernt] |
| |
Import von Units
Um eine Methode oder Klasse innerhalb eines Scripts nutzen zu können muss sie vorher für den Scripter veröffentlicht werden. Das kann auf zwei Arten geschehen:
- durch manuelle Registrierung
- durch automatisch erzeugte Registrierungs-Dateien
Die manuelle Registrierung von Methoden (siehe IMP_UR_MainReport) dient dabei der Veröffentlichung einzelner Methoden einer Unit, z.B. einer gerade neu implementierten Methode die in einem Script genutzt werden soll. Wird hingegen eine ganze Klasse (inkl. Methoden und Eigenschaften, z.B. xQuery) in den Script benötigt oder enthält eine Unit viele zu veröffentlichende Methoden (z.B. G_Tools) bietet sich der automatische Import der Unit über das Program PaxImporter an (zu finden unter /lib/pax/paxImporter/). Im Idealfall existiert eine vorkompilierte und vorkonfigurierte Version des Importers im Unterverzeichnis ../Executable.
- Starten
- Überprüfen dass alle Pfade richtig gesetzt sind
- ist die benötigte Datei als Source-File eingetragen?
- Ausgabeverzeichnis setzen
- Import starten
- neue Importdatei einfügen
Dabei gibt es ein paar Dinge zu beachten:
- Derzeit ist es nicht möglich Event-Eigenschaften von Klassen zu importieren (wohl ein interner D5-Fehler), daher müssen nach dem Import alle Registrierungen für Events innerhalb der Import-Datei auskommentiert werden (OBS mit der neuen Import-Datei starten, bei der Registrierung eines Event wird ein Fehler ausgegeben, kann im Debugger gefunden werden).
- In Sonderfällen können Fehler beim Start von OBS auftreten ('Runtime Error 216' oder 'Einsprungspunkt in dll nicht gefunden'). Die zugehörigen Registrierungen müssen auskommentiert werden.