Toolmaker Produkt-Dokumentation

Quellen und Objekte

Inhaltsübersicht

Bibliotheken

Alle zur Erstellung von RPGWX-Programmen benötigten Quellen, d.h. Prototypen, Referenz-Felder und Referenz-Datenstrukturen sind in der Bibliothek RPGWX hinterlegt und werden somit ausgeliefert. Außerdem befinden sich in dieser Bibliothek alle Service-Programme, in denen alle RPGWX-Funktionen enthalten sind, die der RPGWX-Programmierer aufrufen kann.

Da RPGWX 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 RPGWX-Programmen sollten die beiden Objekt-Bibliotheken in der folgenden Reihenfolge in der Bibliotheksliste hinterlegt sein:

  1. QTEMP
  2. <ihre eigenen Bibliotheken>
  3. WOPIX
  4. DIRWEB

Die Bibliothekslisten, die den Anwendungen zugeordnet sind, werden zur Laufzeit von der RPGWX-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 RPGWX-Programme hinterlegt, werden sie zur Laufzeit (der RPGWX-Programme) automatisch in die Bibliotheksliste aufgenommen.

Binderverzeichnisse

Alle RPGWX- und Directweb-Prozeduren sind in Service-Programmen hinterlegt.

Um die Auflistung der Service-Programme beim Erstellen der individuellen RPGWX-Programme zu vermeiden, wurden die Service-Programme in Binder-Verzeichnissen zusammengefasst.

Alle Service-Programme, in denen RPGWX-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 RPGWX-Programme angegeben werden.

Toolmaker stellt die Copystrecke WX_HSPECS in Datei QCPYLESRC in Bibliothek WOPIX zur Verfügung. Wird diese Copystrecke in die individuellen RPGWX-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.

H-Bestimmungen - Binderverzeichnisse - Auszug aus der Copy-Strecke WX_HSPECS
* Binding Directories 
  /IF NOT DEFINED(HBndDir)                       
 H BndDir('WXBNDDIR': 'DWBNDDIR': 'QC2LE')       
  /ENDIF


Aktivierungsgruppen

Da es sich sowohl bei den RPGWX- als auch bei den Dirweb-Prozeduren um echte ILE Prozeduren handelt, können die individuellen RPGWX-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 RPGWX-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 RPGWX-Programme mit Option 14 im PDM bzw. dem CL-Befehl CRTBNDRPG die Aktivierungsgruppe auf *CALLER (bzw. QILE) gesetzt.

H-Bestimmungen - Binderverzeichnisse - Weiterer Auszug aus der Copy-Strecke WX_HSPECS
* 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 RPGWX 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 RPGWX-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 RPGWX-Programmen.

Der Source Code in den Copystrecken sollte jedoch vom Programmierer nicht verändert werden. Toolmaker übernimmt keine Verantwortung für Fehler, die durch Manipulation der zur Verfügung gestellten Quellen auftreten könnten.

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 RPGWX-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 RPGWX-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 RPGWX-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 RPGWX 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.

Nach einem Upgrade sollten die individuellen RPGWX-Programme erneut kompiliert werden, um sicherzustellen, dass die Parameter- und Variablen-Definitionen übereinstimmen.

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 RPGWX-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 RPGWX sinnvoll sind.

WX_HSPECS (Version 2.40)
    ‚ **********************************************************************************************                    
    ˆ * H - S P E C I F I C A T I O N S                                                                                 
    ‚ **********************************************************************************************                    
    ‚ * Binding Directory                                                                                               
     H/IF NOT DEFINED(HBndDir)                                                                                          
     H BndDir('WXBNDDIR': 'DWBNDDIR': 'QC2LE')                                                                          
     H/ENDIF                                                                                                            
    ‚ *                                                                                                                 
     H/If Not Defined(HCopyRight)                                                                                       
     H/Include QCPYLESRC,WX_HCOPYR                                                                                      
     H/EndIf                                                                                                            
    ‚ *                                                                                                                 
    ‚ * H-Specs DirectWeb                                                                                               
     H/Include QCPYLESRC,DW_HSpecs                                                                                                        

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 RPGWX-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 RPGWX-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 RPGWX-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 sollte ACTGRP(*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 Binderverzeichnis WXBNDDIR angegeben werden. Sofern auch Directweb-Prozeduren aufgerufen werden sollten, sollte zusätzlich das Binderverzeichnis DWBNDDIR 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 RPGWX-Prozeduren sind in der Copystrecke WOPIX/QPROLESRC(WX_PROTO) zusammengefasst.

Damit stehen alle Prozeduren zur Verfügung, unabhängig davon, ob sie originär RPGWX- oder directweb- Prozeduren sind. Im Detail sähe das so aus:

  • Die Prototypen für die RPGWX-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 RPGWX-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.html - Default-Dokument für Change Tables (Einzel-Anzeige)
  • Wx_WrkDefault.html - Default-Dokument für Work Tables (List-Anzeige)

Die Default-HTML-Dokumente werden beim Einrichten der 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%