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:
Syntax-Element | Beschreibung | |
---|---|---|
parameter |
Attribut-Kontrollvariable(n):
Den Parameter (
Siehe auch Logische Bedingungen, MODIFIED-Option im Leitfaden zur Programmierung. |
|
operand1 |
Name des externen
Seiten-Layouts:
|
|
operand2 |
Name der
Attribut-Kontrollvariable(n):
|
|
operand3 |
Namen der externen
Datenfelder:
|
|
operand4 |
Namen der
Natural-Datenfelder:
|
|
parameters |
Parameter:
Unmittelbar nach
|
|
EM or
EMU |
Während des Datentransfers verwendete Editiermaske. Weitere Informationen siehe Session-Parameter
Weitere Informationen zu Unicode-Editiermasken 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 |
Name der
Attribut-Kontrollvariable(n): 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 | yes | yes | |||||
operand11 | S | I4 | yes | yes |
Syntax-Element-Beschreibung:
Syntax-Element | Beschreibung |
---|---|
USING
operand6 |
Adapter-Name:
Ruft eine Adapter-Definition auf, die vorher in einer Natural-Systemdatei gespeichert wurde. Siehe auch 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 |
NO PARAMETER-Option:
|
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
(operand6
) 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 (Datenbanksichten) 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 Masken-Editor (Map Editor) in der Editoren-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 |
||||
[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:
Syntax-Element | Beschreibung |
---|---|
FULL |
FULL-Option:
Wenn Sie die
Kennzeichnend für das |
DATA |
DATA-Option:
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:
Syntax-Element | Beschreibung |
---|---|
AND SEND EVENT
operand8 |
Vom externen E/A-System angefordertes
Ereignis:
Abhängig von der Implementierung des externen Ein-/Ausgabesystems sind Ereignisse verfügbar, siehe Sending Events to the User Interface in der Natural for Ajax-Dokumentation. |
WITH PARAMETERS |
WITH PARAMETERS Clause:
With this clause, you can specify the following: |
NAME
operand9 |
Externer Datenfeld-Name:
operand9 enthält den externen Namen der Datenfelder, in die/aus denen operand10 übertragen wird. |
VALUE
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
Einzelheiten zu Unicode-Editiermasken siehe
Session-Parameter |
|
END-PARAMETERS |
Ende der WITH
PARAMETERS-Klausel:
The Natural reserved word Das für Natural reservierte Wort
|
PROCESS PAGE MODAL
|
|
statement ... | |
END-PROCESS
|
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Verwandtes Statement: PROCESS PAGE
Gehört zur Funktionsgruppe Bildschirmgenerierung für interaktive Verarbeitung.
Das PROCESS PAGE MODAL
-Statement wird benutzt, um
einen Verarbeitungsblock zu initialisieren und die Anzeigedauer eines modalen
Rich-GUI-Fensters zu steuern.
Mit der Verarbeitung des PROCESS PAGE
MODAL
-Statementblocks werden folgende Aktionen ausgeführt:
Zuerst werden Daten vom Report 0, die noch nicht angezeigt worden sind, angezeigt;
die Systemvariable *PAGE-LEVEL
wird inkrementiert;
das Öffnen einer modalen Seite wird vorbereitet. Das physische
Öffnen der modalen Seite wird mit dem nächsten Statement PROCESS PAGE
USING operand6 WITH
ausgeführt, wobei
operand6
der Name des zu verwendenden
Adapters ist.
Beim Verlassen des PROCESS PAGE MODAL
-Statementblocks
werden folgende Aktionen ausgeführt:
Falls eine modale Seite für diese Ebene geöffnet wurde, wird
das Schließen der modalen Seite vorbereitet. Das physische Schließen der
modalen Seite erfolgt mit dem nächsten PROCESS PAGE UPDATE
[FULL]
-Statement;
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-Blocks begonnen wurde;
ein nat:page.default
-Ereignis wird in dem
Programm ausgelöst, das die modale Seite geöffnet hat.
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.
Das PROCESS PAGE MODAL
-Statement ist im Batch-Betrieb
nicht gültig.
Syntax-Element-Beschreibung:
Syntax-Element | Beschreibung |
---|---|
statement |
Auszuführende Statements:
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
|
END-PROCESS |
Ende des PROCESS PAGE
MODAL-Statements:
Das für Natural reservierte Wort
|
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.