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 Copy-Strecke WX_HSPECS
in Datei QCPYLESRC in Bibliothek WOPIX zur Verfügung. Wird diese Copy-Strecke 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 Copy-Strecke 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
Copy-Strecken
Für die Entwicklung von Web-Anwendungen mit WOPIXX werden die folgenden Copy-Strecken 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 Copy-Strecken können vom Programmierer in die Programme eingebunden werden. Weitere Informationen dazu finden Sie auf der Seite Erstellen von WOPiXX-Programmen.
Copy-Strecken zur Referenzierung von Variablen
Die Copy-Strecken, die zur Definition von Parameter-Feldern verwendet werden, sind jeweils direkt in den Copy-Strecken 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 Copy-Strecken 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 Copy-Strecke 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 Copy-Strecke D_FLDREF angegeben werden, da der SQL Precompiler verschachtelte Copy-Strecken abhängig vom Release u.U. nicht auflösen kann.
Upgrade und Änderung von Copy-Strecken
Diese Copy-Strecken werden jeweils bei einem Upgrade von WOPiXX ausgetauscht.
Referenz-Felder und –Datenstrukturen, die in den Copy-Strecken 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 Copy-Strecken 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 Copy-Strecke WX_HSPECS enthält Compilerdirektiven, die für WOPiXX sinnvoll sind.
Individuelle Anpassung der H-Bestimmungen
Alle Schlüssel-Worte in der Copy-Strecke 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 Copy-Strecke WX_HSPECS eingebunden. Durch das Setzen der Compiler-Direktive /Define HBNDDIR werden die in der Copy-Strecke WX_HSPECS angegebenen Binder-Verzeichnis-Einträge übergangen.
/Define HBndDir
H BndDir('WXBNDDIR': 'DWBNDDIR': 'QC2LE', 'MYBNDDIR')
/INCLUDE WX_HSPECS
Deaktivieren / Ändern Aktivierungsgruppe in Copy-Strecke
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.
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%