Inhaltsübersicht
Bibliotheken
Alle zur Erstellung von WOPiXX-Programmen benötigten Quellen, d.h. Prototypen, Referenz-Felder und Referenz-Datenstrukturen sind in der Bibliothek WOPIX hinterlegt und werden somit ausgeliefert. Außerdem befinden sich in dieser Bibliothek alle Service-Programme, in denen alle WOPiXX-Funktionen enthalten sind, die der WOPiXX-Programmierer aufrufen kann.
Da WOPiXX auf Directweb basiert wird auch die Bibliothek DIRWEB ausgeliefert. In dieser Bibliothek befinden sich alle zur Laufzeit von directweb benötigten Programm- und Service-Programm-Objekte, sowie Prototypen und Referenz-Felder und Referenz-Datenstrukturen, die zur Erstellung von Directweb (Service)-Programmen erforderlich sind.
Für die Umwandlung von WOPiXX-Programmen sollten die beiden Objekt-Bibliotheken in der folgenden Reihenfolge in der Bibliotheksliste hinterlegt sein:
QTEMP
<ihre eigenen Bibliotheken>
WOPIX
DIRWEB
Die Bibliothekslisten, die den Anwendungen zugeordnet sind, werden zur Laufzeit von der WOPiXX-Engine gesetzt. Wartungsprogramme über die die Bibliothekslisten vordefiniert und zugeordnet werden können, werden zur Verfügung gestellt.
Werden die Bibliotheken WOPIX und DIRWEB nicht in der Bibliotheksliste für die individuellen WOPiXX-Programme hinterlegt, werden sie zur Laufzeit (der WOPiXX-Programme) automatisch in die Bibliotheksliste aufgenommen.
Binderverzeichnisse
Alle WOPiXX- und Directweb-Prozeduren sind in Service-Programmen hinterlegt.
Um die Auflistung der Service-Programme beim Erstellen der individuellen WOPiXX-Programme zu vermeiden, wurden die Service-Programme in Binder-Verzeichnissen zusammengefasst.
Alle Service-Programme, in denen WOPiXX-Prozeduren enthalten sind, sind in Binderverzeichnis WXBNDDIR in Bibliothek WOPIX hinterlegt. Die Service-Programme mit den Dirweb-Prozeduren sind in Binderverzeichnis DWBNDDIR in Bibliothek DIRWEB hinterlegt.
Die Binder-Verzeichnisse müssen beim Erstellen der individuellen WOPiXX-Programme angegeben werden.
Toolmaker stellt die Copystrecke WX_HSPECS
in Datei QCPYLESRC in Bibliothek WOPIX zur Verfügung. Wird diese Copystrecke in die individuellen WOPiXX-Programme integriert, werden die Binder-Verzeichnisse beim Erstellen der Programme mit Option 14 in PDM bzw. dem CL-Befehl CRTBNDRPG
(CRPG-Binderprogramm erstellen) automatisch integriert.
* Binding Directories /IF NOT DEFINED(HBndDir) H BndDir('WXBNDDIR': 'DWBNDDIR': 'QC2LE') /ENDIF
Aktivierungsgruppen
Da es sich sowohl bei den WOPiXX- als auch bei den Dirweb-Prozeduren um echte ILE Prozeduren handelt, können die individuellen WOPiXX-Programme nicht in der Default-Aktivierungsgruppe (= Default-Wert in Befehl CRTBNDPRG) erstellt werden, d.h. die Option DFTACTGRP=*NO
ist nicht zulässig.
Da in dem steuernden Dirweb-Programm intensiv mit Pointern gearbeitet wird und Pointer bzw. die zugeordneten Speicherbereiche nicht in unterschiedlichen Aktivierungsgruppen verwaltet werden können, müssen die individuellen WOPiXX-Programme in der gleichen Aktivierungsgruppe wie das steuernde Dirweb-Programm ausgeführt werden, d.h. die Option ACTGRP = '*CALLER'
oder ACTGRP = 'QILE'
muss im Compile-Befehl oder den H-Bestimmungen angegeben werden.
Bei Einbindung der Copystrecke WX_HSPECS (H-Bestimmungen in HX_HSPECS), wird beim Erstellen der individuellen WOPiXX-Programme mit Option 14 im PDM bzw. dem CL-Befehl CRTBNDRPG die Aktivierungsgruppe auf *CALLER (bzw. QILE) gesetzt.
* Activation Group /IF NOT DEFINED(HActGrp) /DEFINE HActGrp /IF Defined (*CRTBNDRPG) H DftActGrp(*No) ActGrp('QILE') /ENDIF /ENDIF
Copystrecken
Für die Entwicklung von Web-Anwendungen mit WOPIXX werden die folgenden Copystrecken zur Verfügung gestellt.
- WX_HSPECS - H-Bestimmungen- Alle wichtigen Schlüssel-Worte
- WX_HCOPYR - H-Bestimmung- Schlüsselwort Copyright
- WX_FLDREF - D-Bestimmungen – Referenz-Felder und -Datenstrukturen
- WX_PROTO - D-Bestimmungen – Alle WOPiXX-Prototypen
Die in den Bibliotheken WOPIX und DIRWEB zur Verfügung gestellten Copystrecken können vom Programmierer in die Programme eingebunden werden. Weitere Informationen dazu finden Sie auf der Seite Erstellen von WOPiXX-Programmen.
Copystrecken zur Referenzierung von Variablen
Die Copystrecken, die zur Definition von Parameter-Feldern verwendet werden, sind jeweils direkt in den Copystrecken für die Prototypen integriert. Da die Prototypen in die individuellen WOPiXX-Programme eingebunden werden müssen, werden die Referenz-Felder und Datenstrukturen ebenfalls eingebunden. Eine separate Einbindung der Copystrecken mit den Referenz-Informationen ist somit in den individuellen WOPiXX-Programmen nicht erforderlich.
Da alle Referenz-Datenstrukturen durch Compiler-Direktiven bedingt sind, treten bei mehrfacher Einbindung der gleichen Copystrecke bzw. bei mehrfacher Definition der gleichen Datenstruktur keine Probleme auf. Die erste Definition wird verwendet, die folgenden Definitionen werden ignoriert.
Bei WOPiXX-Programmen mit embedded SQL muss ggf. die Copystrecke D_FLDREF angegeben werden, da der SQL Precompiler verschachtelte Copystrecken abhängig vom Release u.U. nicht auflösen kann.
Upgrade und Änderung von Copystrecken
Diese Copystrecken werden jeweils bei einem Upgrade von WOPiXX ausgetauscht.
Referenz-Felder und –Datenstrukturen, die in den Copystrecken hinterlegt sind werden von Toolmaker nur in Ausnahmefällen geändert.
Alle Parameter-Felder, die in Prototypen definiert sind, basieren auf diesen Referenz-Definitionen.
Vorhandene Prozeduren bzw. deren Prototypen werden von Toolmaker allenfalls dahingehend erweitert, dass optionale Parameter ans Ende der Parameter-Liste hinzugefügt werden.
Referenzierung und Prototypen
Alle in den Prototypen hinterlegten Parameter-Felder wurden basierend auf den Feldern in der Feld-Referenz-Datei oder anderen in den Copystrecken WX_FLDREF und D_FLDREF definiert.
Variablen oder Datenstruktur-Unterfelder, über die Daten mit den WOPiXX-Funktionen ausgetauscht werden, können genau wie die Parameter-Felder in den Prototypen definiert werden.
H-Bestimmungen in HX_HSPECS
Die Copystrecke WX_HSPECS enthält Compilerdirektiven, die für WOPiXX sinnvoll sind.
Individuelle Anpassung der H-Bestimmungen
Alle Schlüssel-Worte in der Copystrecke WX_HSPECS sind durch Compiler-Direktiven bedingt und können beliebig aktiviert oder deaktiviert werden.
Im folgenden Beispiel wird die Option BNDDIR um das individuelle Binderverzeichnis MYBNDDIR erweitert. Anschließend wird die Copystrecke WX_HSPECS eingebunden. Durch das Setzen der Compiler-Direktive /Define HBNDDIR werden die in der Copystrecke WX_HSPECS angegebenen Binder-Verzeichnis-Einträge übergangen.
/Define HBndDir
H BndDir('WXBNDDIR': 'DWBNDDIR': 'QC2LE', 'MYBNDDIR')
/INCLUDE WX_HSPECS
Deaktivieren / Ändern Aktivierungsgruppe in Copystrecke
Bei der Verwendung von individuellen H-Bestimmungen muss folgendes beachtet werden:
Umwandlung mit CRTBNDRPG (RPG-Binderprogramm erstellen)
- Da aus WOPiXX-Programmen ILE-Prozeduren aufgerufen werden, dürfen die Programme nicht in der Default-Aktivierungsgruppe ausgeführt werden. → Aus diesem Grund muss die Option DFTACTGRP (Standardaktivierungsgruppe) in dem Compile-Befehl
CRTBNDRPG auf *NO
gestellt werden. - Individuelle WOPiXX-Programme müssen in der gleichen Aktivierungsgruppe wie das steuernde Dirweb-Programm laufen. → Deshalb muss die Option ACTGRP (Aktivierungsgruppe) im Compile-Befehl mit
*CALLER
angegeben werden. - Die Service-Programme, in denen die WOPiXX-Funktionen hinterlegt sind, sind in Binderverzeichnis
WXBNDDIR
hinterlegt. → Aus diesem Grund muss bei Kompilierung mit CRTBNDRPG zumindest das Binderverzeichnis WXBNDDIR in der Option BNDDIR (Binderverzeichnis) angegeben werden.
Falls zusätzlich auch Directweb-Prozeduren in den individuellen CGI-Programmen verwendet werden sollen, muss auch das Binderverzeichnis DWBNDDIR in der Option BNDDIR angegeben werden.
Anstatt den Compile-Befehl anzupassen, können die notwendigen Informationen auch in den H-Bestimmungen hinterlegt werden. Die Kompilierung kann anschließend über CRTBNDRPG ohne Anpassung erfolgen.
Bei Programmen, die embedded SQL beinhalten erfolgt die Kompilierung über den Befehl CRTSQLRPGI
(SQL ILE RPG-Objekt erstellen). Dieser Befehl hat keine Optionen um die Aktivierungsgruppe oder Binderverzeichnisse vorzugeben. Deshalb müssen bei Programmen mit embedded SQL die benötigten Informationen in den H-Bestimmungen hinterlegt werden.
H-Bestimmungen
- Das Schlüssel-Wort DFTACTGRP in den H-Bestimmungen überschreibt zur Compile-Zeit den Eintrag in Option DFTACTGRP im Compile-Befehl CRTBNDRPG.
Werden H-Bestimmungen verwendet, sollte DFTACTGRP(*NO) angegeben werden.
- Das Schlüssel-Wort ACTGRP in den H-Bestimmungen überschreibt zur Compile-Zeit den Eintrag in Option ACTGRP im Compile-Befehl CRTBNDRPG.
Werden H-Bestimmungen verwendet sollteACTGRP(*CALLER)
angegeben werden.
- Werden im Schlüssel-Wort BNDDIR in den H-Bestimmungen Binderverzeichnisse angegeben, wird die Option im BNDDIR im Compile-Command nicht überschrieben, sondern die in den H-Bestimmungen hinterlegten Binderverzeichnisse werden zusätzlich zu den im Compile-Befehl hinterlegten Binderverzeichnisse verwendet.
Werden H-Bestimmungen verwendet, dann sollte zumindest das BinderverzeichnisWXBNDDIR
angegeben werden. Sofern auch Directweb-Prozeduren aufgerufen werden sollten, sollte zusätzlich das BinderverzeichnisDWBNDDIR
angegeben werden.
Die Binderverzeichnisse müssen im Schlüssel-Wort BNDDIR in Hochkommata und in Großbuchstaben und durch Kommata getrennt angegeben werden.
Deklarationen in der Copystrecke WX_PROTO
Alle Prototypen (incl. Referenz-Datenstrukturen) für die WOPiXX-Prozeduren sind in der Copystrecke WOPIX/QPROLESRC(WX_PROTO)
zusammengefasst.
Damit stehen alle Prozeduren zur Verfügung, unabhängig davon, ob sie originär WOPiXX- oder directweb- Prozeduren sind. Im Detail sähe das so aus:
- Die Prototypen für die WOPiXX-Prozeduren sind in Teildateien mit dem gleichen Namen wie die Quelle, in der die Prozedur codiert wurde, in der Datei QPROLESRC in der Bibliothek
WOPIX
hinterlegt. - Die Prototypen für Directweb-Prozeduren sind in Teildateien mit dem gleichen Namen wie die Quelle, in der die Prozedur codiert wurde, in der Datei QPROLESRC in der Bibliothek
DIRWEB
hinterlegt.
In allen Teildateien, in denen Prototypen definiert werden, werden die Copystrecken mit den Feld-Referenzen, die zur Definition der Parameter-Felder verwendet wurden, integriert. Damit ist eine zusätzliche Einbindung der Feld-Referenzen im WOPiXX-Programm nicht erforderlich.
Alle Prototypen und Referenz-Datenstrukturen sind durch Compiler-Direktiven bedingt, so dass eine (versehentliche) Mehrfacheinbindung der gleichen Copystrecke bzw. Datenstruktur nicht zu Problemen führt.
Default-HTML-Dokumente
Für Work- und Change-Programme werden Default-HTML-Dokumente zur Verfügung gestellt.
- Wx_ChgDefault.htmlDefault-Dokument für Change Tables (Einzel-Anzeige)
- Wx_WrkDefault.htmlDefault-Dokument für Work Tables (List-Anzeige)
Die Default-HTML-Dokumente werden beim Einrichten der Anwendung (6.1 Anwendung) in das Verzeichnis für HTML-Vorlagen übertragen.
Zur Laufzeit wird der HTML und JavaScript-Code aufbereitet. Der aufbereitete HTML- und Javascript Code wird in die Default-Dokumente übertragen und an Stelle der Platzhalter ausgegeben.
Die Default-Dokumente können durch individuelle HTML-Dokumente mit individuellem HTML und Java-Script-Code ersetzt werden. Die individuellen HTML-Dokumente müssen jedoch die gleichen Platzhalter wie die Default-Dokumente beinhalten.
Die Platzhalter sind durch ein führendes und folgendes Prozent-Zeichen gekennzeichnet, z.B. %ERRTXT%