OBS/Adminhilfe/Pax Konvertierung
Dies ist eine zugriffsgeschützte Seite.
- System Überwachung
- DEP deaktivieren
- Darstellung unter Windows 7
- Einwahl auf Windows 2000 Server
- Preislisten
- Datenbank Sicherung
- Customize
- Zentrale
- Support Macro
- Service Debug
- Historienprotokoll (Datenänderung OBS)
- Fernwartungsprobleme
- Startparameter
- Fehler beim Kassenabschluss
- Diverse Informationen
- A ras.pbk
- B Command Line Interpreter
- C File Zilla Benutzer XML erzeugen
- D1 OBS_UPDATE.EXE zum OBS Update Server hochladen
- D2 SUPPORT_MACRO zum OBS Update Server hochladen
- H1 Remote Service Protokoll-Übersicht (Alles)
- H Remote ServiceProtokoll-Übersicht
- I Remote Service Commands
- I1 (Admin) Globaler Hinweis für Updates
- J Liste der OBS Updates
- K Angemeldete Service Firmen
- L Systeminformationen einlesen
- M Kundendaten anzeigen
- M1 Kundendatenbankinformationen anzeigen
- N Kundendaten einlesen
- O Kunden-Update Informationen anzeigen
- P Modul Registrierung OBS
- Q App Verwaltung
- S1 Firmen Statistik Protokolle OBS
- S2 Statistik Notfallkassen
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 / CUSTOMIZE-SCRIPTE / PREISLISTEN-SCRIPTE (=> 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)
- .pimac -> Macro (PAX)
Konvertierung von DREAM zu PAX
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 | neues Script |
|---|---|
program Macro1;
uses Dialogs
var cName : String;
implementation
{$I .\qImport.inc }
function StartProc(cPara: String): Boolean;
begin
[...]
end;
end. |
var cName : String;
{$I .\Import.inx }
function StartProc(cPara: String): Boolean;
begin
[...]
end;
|
Grundlagen
Um ein Druck-Script
Grundlagen und Sonderfälle die bei einer Konvertierung zu beachten sind:
- EZ gibt es in Pax nicht mehr!
- Alle Include-Dateien haben die Endung .inx.
- Include-Dateien haben kein vorstehendes q mehr im Namen.
- y ist jetzt Double statt Integer, und damit auch alle Variablen die einen Wert von y annehmen.
- Sehr viele Variablen sind in die .inx ausgelagert, bitte bei dem Fehler 'Redeclared Identifier' beachten.
- MyIsRtf gibt es in Pax nicht, dort wird IsRtf benutzt.
- GetSuli muss vorerst mit einem dritten Parameter NIL aufgerufen werden, sonst gibt es eine Schutzverletzung.
- GetSuli hat einen Rückgabewert vom Typ String der statt des ReturnValues der Suli benutzt werden muss.
- Ein Suli-Create (z.B. SuliCreateMitarb()) hat keine Parameter mehr.
- In vielen Drucken werden nach dem Öffnen des Mainquerys die drei Zeilen 'A_Query.First;', 'EZ.ToPage := 100;' und 'EZ.UseMetaFiles := True;' ausgeführt. Diese drei Zeilen sind mit Quickreport überflüssig und können entfernt werden.
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.