Dieser Abschnitt 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 | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| operand1 | C | S | A | U | ja | nein | ||||||||||||||
| operand2 | S | A | C | nein | nein | |||||||||||||||
| operand3 | C | S | A | U | ja | nein | ||||||||||||||
| operand4 | C | S | A | A | U | N | P | I | F | B | D | T | L | ja | ja | |||||
| operand5 | S | A | C | nein | nein | |||||||||||||||
| operand11 | S | I4 | ja | ja | ||||||||||||||||
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 oder 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 muss 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 | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| operand6 | C | S | A | ja | nein | |||||||||||||||
| operand7 | S | A | G | A | U | N | P | I | F | B | D | T | L | ja | ja | |||||
| operand11 | S | I4 | ja | ja | ||||||||||||||||
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 (Datensichten) 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 | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| operand11 | S | I4 | ja | ja | ||||||||||||||||
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 | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| operand8 | C | S | A | U | ja | nein | ||||||||||||||
| operand9 | C | S | A | U | ja | nein | ||||||||||||||
| operand10 | C | S | A | A | U | N | P | I | F | B | D | T | L | ja | ja | |||||
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-Klausel:
Mit dieser Klausel können Sie Folgendes festlegen: |
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:
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.