Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Inhaltsübersicht

Table of Contents
maxLevel3

Bibliotheken

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

Da WOPiXX 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 WOPiXXRPGWX-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 WOPiXXRPGWX-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 WOPiXXRPGWX-Programme hinterlegt, werden sie zur Laufzeit (der WOPiXXRPGWX-Programme) automatisch in die Bibliotheksliste aufgenommen.

Binderverzeichnisse

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

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

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

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


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

Code Block
languagetext
titleH-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 WOPIXX 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 WOPiXXRPGWX-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 WOPiXXRPGWX-Programmen.

Note
iconfalse

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


Note
iconfalse

Nach einem Upgrade sollten die individuellen WOPiXXRPGWX-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 WOPiXXRPGWX-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 RPGWX sinnvoll sind.

Code Block
titleWX_HSPECS (Version 2.40)
collapsetrue
    ‚ **********************************************************************************************                    
    ˆ * 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 WOPiXXRPGWX-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 WOPiXXRPGWX-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 WOPiXXRPGWX-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 WOPiXXRPGWX-Prozeduren sind in der Copystrecke WOPIX/QPROLESRC(WX_PROTO) zusammengefasst.

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

  • Die Prototypen für die WOPiXX 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 WOPiXXRPGWX-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%