Dieses Dokument behandelt folgende Themen:
Das PROCESS PAGE
-Statement bildet eine allgemeine
Schnittstellen-Beschreibung zu einer externen Rendering-Maschine, wie z.B.
Natural for Ajax, wobei somit die interne Natural-Datendarstellung mit einer
externen Datendarstellung verknüpft wird. Über diese Verknüpfung werden Daten
und Ereignisse, aber keine Rendering-Informationen an und von eine/r externen
browser-basierte/n Anwendung versandt.
Weitere Informationen entnehmen Sie der Natural for Ajax-Dokumentation.
PROCESS PAGE [(parameter)]
operand1 |
||||||||||
[WITH PARAMETERS |
||||||||||
{[NAME ]
operand3
[VALUE ] operand4 [(parameters)]}
...
|
||||||||||
END-PARAMETERS ]
|
||||||||||
[GIVING operand11]
|
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Gehört zur Funktionsgruppe: Bildschirmgenerierung für interaktive Verarbeitung
Die Syntax 1 des PROCESS PAGE
-Statements wird
normalerweise nur in einem Natural-Adapter benutzt. Ein
Adapter ist
ein Natural-Objekt, das die Schnittstelle zwischen dem Natural-Anwendungscode
und der Webseite bildet. Er wird automatisch von Natural for Ajax
erstellt/aktualisiert, wenn das Layout gespeichert wird.
Operanden-Definitionstabelle:
Operand | Possible Structure | Possible Formats | Referencing Permitted | Dynamic Definition | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | C | S | A | U | yes | no | ||||||||||||||
operand2 | S | A | C | no | no | |||||||||||||||
operand3 | C | S | A | U | yes | no | ||||||||||||||
operand4 | C | S | A | A | U | N | P | I | F | B | D | T | L | yes | yes | |||||
operand5 | S | A | C | no | no | |||||||||||||||
operand11 | S | I4 | yes | yes |
Syntax-Element-Beschreibung:
parameter | Den Parameter
CV können
Sie in Klammern angeben, um eine oder mehrere der in
operand2 angebenenen Kontrollvariablen
zu referenzieren:
(
Siehe auch Logische Bedingungen, MODIFIED-Option im Leitfaden zur Programmierung. |
|
---|---|---|
operand1 | Enthält den Namen des externen Seiten-Layouts. | |
operand2 | operand2 enthält den
Namen der Kontrollvariablen, muss Format C haben und entweder ein Skalar oder
eine einzelne Array-Ausprägung sein.
|
|
operand3 | Enthält den/die Namen des bzw. der
externen Datenfelder, in die oder aus denen
operand4 übertragen wird.
|
|
operand4 | Enthält den/die Namen des bzw. der externen Natural-Datenfelder, die übertragen werden. | |
parameters | Unmittelbar nach
operand4 können Sie einen oder mehrere
Parameter in Klammern angeben:
|
|
EM
|
Während des Datentransfers verwendete Editiermaske. Weitere Informationen siehe Session-Parameter
|
|
CV |
Den Parameter CV , können Sie
angeben, um eine oder mehrere in
operand5 angegebene Kontrollvariable zu
referenzieren:
(
Siehe auch Logische Bedingungen, MODIFIED-Option im Leitfaden zur Programmierung. |
|
operand5 | operand5 enthält den
Namen der Kontrollvariablen. Die Variable must Format C haben.
Falls operand4 ein Skalar-Ausdruck oder
eine einzelne Array-Ausprägung ist, muss
Falls es sich bei
Falls es sich bei
|
|
GIVING operand11 |
GIVING-Klausel:
|
Beispiel eines Adapters, der vom Natural for Ajax erstellt wurde:
* PAGE1: PROTOTYPE --- CREATED BY Natural for Ajax --- * PROCESS PAGE USING 'XXXXXXXX' WITH * INFOPAGENAME RESULT YOURNAME DEFINE DATA PARAMETER 1 INFOPAGENAME (U) DYNAMIC 1 RESULT (U) DYNAMIC 1 YOURNAME (U) DYNAMIC END-DEFINE * PROCESS PAGE U'/njxdemos/helloworld' WITH PARAMETERS NAME U'infopagename' VALUE INFOPAGENAME NAME U'result' VALUE RESULT NAME U'yourname' VALUE YOURNAME END-PARAMETERS * * TODO: Copy to your calling program and implement. /*/*( DEFINE EVENT HANDLER * DECIDE ON FIRST *PAGE-EVENT * VALUE U'nat:page.end' * /* Page closed. * IGNORE * VALUE U'onHelloWorld' * /* TODO: Implement event code. * PROCESS PAGE UPDATE FULL * NONE VALUE * /* Unhandled events. * PROCESS PAGE UPDATE * END-DECIDE /*/*) END-HANDLER * END
PROCESS PAGE USING
operand6
|
||||
[ | { |
|
} | ] |
[GIVING operand11] |
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Gehört zur Funktionsgruppe: Bildschirmgenerierung für interaktive Verarbeitung
Diese Syntax wird benutzt, um eine Rich-GUI-Eingabe/Ausgabeverarbeitung mittels eines Objekts des Typs Adapter auszuführen, das aus einem Seiten-Layout angelegt wurde, welches mit Natural for Ajax oder einem ähnlichen Tool erstellt wurde.
Operanden-Definitionstabelle:
Operand | Possible Structure | Possible Formats | Referencing Permitted | Dynamic Definition | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand6 | C | S | A | yes | no | |||||||||||||||
operand7 | S | A | G | A | U | N | P | I | F | B | D | T | L | C | yes | yes | ||||
operand11 | S | I4 | yes | yes |
Syntax-Element-Beschreibung:
USING operand6 |
Adapter-Name:
Ruft eine Adapter-Definition auf, die vorher in einer Natural-Systemdatei gespeichert wurde. Siehe auch Verarbeitung einer Rich GUI Page - Adapter im Leitfaden zur Programmierung. Der Adapter-Name
( Der Adapter-Name kann ein Kaufmännisches Und (&) enthalten;
zur Ausführungszeit wird dieses Zeichen durch den aktuellen Wert der
Natural-Systemvariablen Anmerkung: |
---|---|
operand7 |
Feld-Spezifikation:
Eine Liste der Datenbank-Felder und/oder Benutzervariablen, die alle vorher definiert sein müssen. Die Felder müssen in Anzahl, Reihenfolge, Format, Länge und (für Arrays) der Anzahl der Ausprägungen mit den Feldern im referenzierten Adapter übereinstimmen; sonst tritt ein Fehler auf. Wenn der Inhalt eines Datenbank-Feldes als Ergebnis der
Siehe PROCESS PAGE USING mit im Programm definierten Feldern. |
NO PARAMETER | Siehe PROCESS PAGE USING ohne Parameter-Liste. |
GIVING operand11 |
GIVING-Klausel:
operand11 enthält den Natural-Fehler, wenn die Anfrage nicht ausgeführt werden konnte. Anmerkung: |
Die folgenden Anforderungen müssen erfüllt sein, wenn PROCESS
PAGE USING
ohne Parameter-Liste benutzt wird:
Der Adapter-Name (operand7
)
muss als eine alphanumerische Konstante (bis zu 8 Zeichen) angegeben
werden.
Der auf diese Art benutzte Adapter muss vor der Kompilierung des Programms erstellt worden sein, welches den Adapter referenziert.
Die Namen der zu verarbeitenden Felder werden dynamisch aus der Adapter-Quelldefinition zur Kompilierungszeit übernommen. Die sowohl im Programm als auch im Adapter verwendeten Feldnamen müssen identisch sein.
Alle im PROCESS
PAGE
-Statement zu referenzierenden Felder müssen an diesem
Punkt aufrufbar sein.
Im Structured Mode müssen die Felder vorher definiert worden sein (Datenbank-Felder müssen für Verarbeitungsschleifen oder Views ordnungsgemäß referenziert werden).
Wenn das Seiten-Layout geändert wird, müssen die den Adapter verwendenden Programme nicht neu katalogisiert werden. Wenn aber die Array-Strukturen oder Namen, Formate/Längen der Felder geändert werden, oder wenn Felder zum Adapter hinzugefügt oder aus ihm gelöscht werden, müssen die den Adapter benutzenden Programme neu katalogisiert werden.
Der Adapter-Quellcode muss zur Programm-Kompilierung zur Verfügung
stehen; sonst kann das PROCESS PAGE USING
-Statement nicht
kompiliert werden.
Anmerkung:
Wenn Sie das Programm kompilieren möchten, auch wenn der Adapter
noch nicht zur Verfügung steht, geben Sie NO PARAMETER
an. Das
PROCESS PAGE USING
-Statement kann dann kompiliert werden, auch
wenn der Adapter noch nicht verfügbar ist.
Wenn Sie die Namen der Felder angeben, die innerhalb des Programms (operand7) verarbeitet werden sollen, ist es möglich, dass Sie es so einrichten können, dass die Namen der Felder im Programm sich von den Namen der Felder im Adapter unterscheiden.
Die Reihenfolge der Felder im Programm muss mit der Reihenfolge im Adapter übereinstimmen. Wenn Sie Natural-Maps als Adapter-Objekte benutzen, beachten Sie, dass der Map-Editor die Felder so sortiert, wie in der Map angegeben, und zwar in alphabetischer Reihenfolge nach Feldnamen. Weitere Informationen siehe die Beschreibung des Map Editor in der Editors-Dokumentation.
Das Programmeditorzeilenkommando .I(adaptername)
kann benutzt werden, um ein vollständiges PROCESS PAGE
USING
-Statement mit einer Parameter-Liste zu erhalten, die aus den im
angegebenen Adapter definierten Feldern abstammt.
Wenn das Layout des Adapters geändert wird, braucht das den Adapter verwendende Programm nicht neu katalogisiert zu werden. Wenn aber Feldnamen, Feldformate/längen oder Array-Strukturen im Adapter geändert werden, oder wenn Felder zum Adapter hinzugefügt oder aus ihm gelöscht werden, dann muss das Programm neu katalogisiert werden.
Zur Ausführungszeit findet eine Überprüfung statt, um sicherzustellen, dass das im Programm angegebene Format und die im Programm angegebene Länge der Felder mit den Feldern übereinstimmt, die im Adapter spezifiziert sind. Falls die beiden Layouts nicht miteinander übereinstimmen, wird eine Fehlermeldung erzeugt.
PROCESS PAGE UPDATE [FULL ] [event-option]
|
||||||
[GIVING operand11]
|
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Gehört zur Funktionsgruppe: Bildschirmgenerierung für interaktive Verarbeitung
Das PROCESS PAGE UPDATE
-Statement wird benutzt, um zu
einem vorangegangenen PROCESS
PAGE
-Statement zurückzukehren und es neu auszuführen. Es wird
im Allgemeinen benutzt, um von der Ereignisverarbeitung zurückzukehren, da die
Dateneingabe-Verarbeitung des vorangegangenen PROCESS
PAGE
-Statements unvollständig war.
Anmerkung:
Es kann kein INPUT
-, WRITE
-,
PRINT
- oder DISPLAY
-Statement zwischen einem
PROCESS PAGE
- und seinem entsprechenden PROCESS PAGE
UPDATE
-Statement ausgeführt werden.
Wenn es erst einmal ausgeführt ist, repositioniert das PROCESS
PAGE UPDATE
-Statement den Programm-Status bezüglich Subroutine,
Sonderbedingungen und die Schleifenverarbeitung, wie sie existierten, als das
PROCESS PAGE
-Statement ausgeführt wurde (solange der Status des
PROCESS
PAGE
-Statements noch aktiv ist). Wenn die Schleife nach der
Ausführung des PROCESS PAGE
-Statements initialisiert wurde und
sich das PROCESS PAGE UPDATE
-Statement innerhalb dieser Schleife
befindet, wird die Schleife unterbrochen und dann neu gestartet, nachdem das
PROCESS PAGE
-Statement als infolge eines PROCESS PAGE
UPDATE
-Statements neu verarbeitet worden ist.
Wenn eine Hierarchie von Subroutinen nach der Ausführung des
PROCESS
PAGE
-Statements aufgerufen wurde und wenn das PROCESS
PAGE UPDATE
-Statement innerhalb einer Subroutine ausgeführt wird,
verfolgt Natural automatisch alle Subroutinen zurück und setzt den
Programm-Status auf den des PROCESS PAGE
-Statements zurück.
Es ist aber nicht möglich, es so einzurichten, dass ein
PROCESS
PAGE
-Statement in einer Schleife, einer Subroutine oder einem
speziellen Bedingungsblock positioniert wird, und dann das PROCESS PAGE
UPDATE
-Statement auszuführen, wenn der Status, unter dem das
PROCESS PAGE
-Statement ausgeführt wurde, bereits beendet worden
ist. Eine Fehlermeldung wird erzeugt und die Programmausführung beendet, wenn
eine solche Fehlerbedingung festgestellt wird.
Operanden-Definitionstabelle:
Operand | Possible Structure | Possible Formats | Referencing Permitted | Dynamic Definition | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand11 | S | I4 | yes | yes |
Syntax-Element-Beschreibung:
FULL |
Wenn Sie die
|
---|---|
event-option |
EVENT-Option:
Siehe EVENT-Option weiter unten. |
GIVING (operand11) |
GIVING-Klausel:
operand11 enthält den Natural-Fehler, wenn die Anfrage nicht durchgeführt werden konnte. |
Beispiel eines Benutzerprogrammfragments:
PROCESS PAGE USING "HELLOW-A" * /*( DEFINE EVENT HANDLER DECIDE ON FIRST *PAGE-EVENT VALUE U'nat:page.end' /* Page closed. IGNORE VALUE U'onHelloWorld' COMPRESS "HELLO WORLD" YOURNAME INTO RESULT PROCESS PAGE UPDATE FULL NONE VALUE /* Unhandled events. PROCESS PAGE UPDATE END-DECIDE /*) END-HANDLER
AND SEND EVENT operand8 |
||||
[WITH PARAMETERS |
||||
{[NAME ] operand9 [VALUE ] operand10 [
|
{ |
( |
} | ]}... |
END-PARAMETERS ]
|
Mit dieser Option können Sie das externe E/A-System veranlassen, Sonderfunktionen zu starten. Diese Funktionen sind Bestandteil des externen E/A-Systems, oder implementieren Sonderfunktionen im Hinblick auf die Ausgabeverarbeitung, wie z.B. Fokus setzen, Meldungsfelder anzeigen usw.
Operanden-Definitionstabelle:
Operand | Possible Structure | Possible Formats | Referencing Permitted | Dynamic Definition | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand8 | C | S | A | U | yes | no | ||||||||||||||
operand9 | C | S | A | U | yes | no | ||||||||||||||
operand10 | C | S | A | A | U | N | P | I | F | B | D | T | L | yes | yes |
Syntax-Element-Beschreibung:
operand8 |
Vom externen E/A-System angefordertes
Ereignis:
Abhängig von der Implementierung des externen E/A-Systems sind Ereignisse verfügbar, siehe Sending Events to the User Interface in der Natural for Ajax-Dokumentation. |
---|---|
operand9 |
Externer Datenfeld-Name:
operand9 enthält den externen Namen der Datenfelder, in die/aus denen operand10 übertragen wird. |
operand10 |
Natural-Datenfelder:
operand10 enthält die Natural-Datenfelder, die übertragen werden. |
Editiermaske:
Bei der Datenübertragung verwendete Editiermaske. Einzelheiten zu Editiermasken siehe Session-Parameter
|
PROCESS PAGE
MODAL
|
|
statement ... | |
END-PROCESS
|
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Verwandte Statements: ESCAPE
|
PROCESS
PAGE
Gehört zur Funktionsgruppe:
Das PROCESS PAGE MODAL
-Statement wird benutzt, um einen
Verarbeitungsblock zu initialisieren und die Anzeigedauer eines modalen
Rich-GUI-Fensters zu steuern.
Anmerkung:
Das PROCESS PAGE MODAL
-Statement ist im Stapelbetrieb
nicht gültig.
Wenn gerade der PROCESS PAGE MODAL
-Statementblock
abgearbeitet wird, erscheinen zuerst Daten vom Report 0, die noch nicht
angezeigt worden sind.
Die Systemvariable *PAGE-LEVEL
wird inkrementiert, und das Öffnen einer modalen Seite wird vorbereitet. Das
physische Öffnen der modalen Seite wird mit dem nächsten Statement
PROCESS PAGE USING 'adapter' WITH
ausgeführt.
Anmerkung:
Zwischen einem PROCESS PAGE MODAL
-Statement und seinem
entsprechenden END-PROCESS
-Statement kann kein sich auf Report 0
beziehendes PRINT
-,
WRITE
-,
INPUT
- oder
DISPLAY
-Statement
ausgeführt werden.
Beim Verlassen des PROCESS PAGE MODAL
-Statementblocks
werden folgende Aktionen ausgeführt:
Wurde eine modale Seite für diese Ebene geöffnet, wird die modale Seite geschlossen;
die Systemvariable *PAGE-LEVEL
wird
dekrementiert, und die Systemvariable
*PAGE-EVENT
wird auf den Wert zurückgesetzt, den sie hatte, bevor mit der Abarbeitung des
Statement-Block begonnen wurde.
Syntax-Element-Beschreibung:
statement | Anstelle eines Statements müssen Sie in Abhängigkeit von der
Situation eines oder mehrere passende Statements angeben. Wenn Sie kein
spezifisches Statement angeben möchten, können Sie das
IGNORE -Statement angeben.
|
---|---|
END-PROCESS | Das für Natural reservierte Wort END-PROCESS muss
benutzt werden, um das PROCESS PAGE MODAL -Statement zu
beenden.
|
Beispiel:
* Name: First Demo/Open modal! * PROCESS PAGE USING "EMPTY-A" * /*( DEFINE EVENT HANDLER DECIDE ON FIRST *PAGE-EVENT VALUE U'nat:page.end', U'onClose' /* Page closed. IGNORE VALUE U'onNextLevel' PROCESS PAGE MODAL FETCH RETURN "EMPTY-P" END-PROCESS PROCESS PAGE UPDATE NONE VALUE PROCESS PAGE UPDATE END-DECIDE /*) END-HANDLER END
Weitere Beispiele zur Verwendung des PROCESS
PAGE
-Statements sind in der Library SYSEXNJX
enthalten.