Version 4.2.6
 —  Statements  —

PROCESS PAGE

Dieses Dokument behandelt folgende Themen:


Funktion

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.

Seitenanfang

Syntax 1 — PROCESS PAGE

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

Syntax-Beschreibung — Syntax 1

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:
(CV=operand2)

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 EM in der Parameter-Referenz.

CV Den Parameter CV, können Sie angeben, um eine oder mehrere in operand5 angegebene Kontrollvariable zu referenzieren:
(CV=operand5)

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 operand5 folgendes sein:

  • ein Skalar-Ausdruck

  • oder eine einzelne Array-Ausprägung.

Falls es sich bei operand4 um den vollen Bereich eines Array der Dimension 1 handelt, muss operand5 folgendes sein:

  • ein Skalar-Ausdruck

  • oder eine einzelne Array-Ausprägung

  • oder der volle Bereich eines Array der Dimension 1 mit der gleichen Größe.

Falls es sich bei operand4 um den vollen Bereich eines Array der Dimension 2 handelt, muss operand5 folgendes sein:

  • ein Skalar-Ausdruck

  • oder eine einzelne Array-Ausprägung

  • oder der volle Bereich eines Array der Dimension 2 mit der gleichen Größe in beiden Dimensionen

  • oder der volle Bereich eines Array der Dimension 1 mit der gleichen Größe, die operand4 in Dimension 2 hat.

GIVING operand11
GIVING-Klausel:

operand11 enthält den Natural-Fehler, wenn die Anfrage nicht ausgeführt werden konnte.

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

Seitenanfang

Syntax 2 — PROCESS PAGE USING

PROCESS PAGE USING operand6
  [ {

WITH {operand7} ...
NO PARAMETER

} ]
  [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

Syntax-Beschreibung — Syntax 2

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 (operand6) kann eine 1 bis 8 Zeichen umfassende, alphanumerische Konstante oder Benutzervariable sein. Wenn eine Variable benutzt wird, muss sie vorher definiert worden sein.

Der Adapter-Name kann ein Kaufmännisches Und (&) enthalten; zur Ausführungszeit wird dieses Zeichen durch den aktuellen Wert der Natural-Systemvariablen *LANGUAGE ersetzt. Diese Funktion gibt es aus historischen Gründen. Wenn Sie mehrsprachige Adapter benötigen, machen Sie sich die Funktionalität des externen Rendering-Systems (zum Beispiel: Natural for Ajax) zunutze.

Anmerkung:
Bei neuen Anwendungen muss die &-Funktion nicht mehrsprachig sein. Seiten, die zum Beispiel mit Natural for Ajax gestaltet wurden, können mehrsprachige Informationen als Bestandteil des Layout-Designs aufnehmen. Siehe Multi Language Management in der Natural for Ajax-Dokumentation.

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 PROCESS PAGE-Verarbeitung geändert wird, wird nur der Wert geändert, wie er in der Data Area abgelegt ist. Um den Inhalt der Datenbank zu ändern, müssen die passenden UPDATE-/STORE-Statements für die Datenbank benutzt werden.

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 GIVING-Klausel unterbricht die allgemeine Natural-Fehlerbehandlung, wenn ein Fehler auftritt, während das Adapter-Objekt aktiviert oder ausgeführt wird. Anstatt die Natural-Module zurückzuverfolgen, um eine ON ERROR-Klausel zu finden, wird der Natural-Fehlercode an eine Variable (operand11) übergeben, und die Ausführung wird mit dem nächsten Statement fortgesetzt.

PROCESS PAGE USING ohne Parameter-Liste

Die folgenden Anforderungen müssen erfüllt sein, wenn PROCESS PAGE USING ohne Parameter-Liste benutzt wird:

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.

PROCESS PAGE USING mit im Programm definierten Feldern

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.

Seitenanfang

Syntax 3 — PROCESS PAGE UPDATE

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

Syntax-Beschreibung - Syntax 3

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 FULL-Option in einem PROCESS PAGE UPDATE-Statement angeben, wird das entsprechende PROCESS PAGE-Statement vollständig neu ausgeführt:

  • Mit einem normalen PROCESS PAGE UPDATE-Statement (ohne FULL-Option) wird der Inhalt von Variablen, die zwischen dem PROCESS PAGE- und dem PROCESS PAGE UPDATE-Statement geändert wurden, nicht angezeigt; das heisst, alle Variablen auf dem Bildschirm zeigen den Inhalt an, den sie hatten, als das PROCESS PAGE-Statement ursprünglich ausgeführt wurde.

  • Mit einem PROCESS PAGE UPDATE FULL-Statement werden alle Änderungen, die nach der anfänglichen Ausführung des PROCESS PAGE-Statements erfolgt sind, auf das PROCESS PAGE-Statement angewandt, wenn es neu ausgeführt wird; das heisst, alle Variablen auf dem Bildschirm enthalten die Werte, die sie hatten, als das PROCESS PAGE UPDATE-Statement ausgeführt wurde.

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

EVENT-Option

AND SEND EVENT operand8
  [WITH PARAMETERS
   {[NAME] operand9 [VALUE] operand10 [ {

(EM=value)

} ]}...
  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.

EM=

Editiermaske:

Bei der Datenübertragung verwendete Editiermaske.

Einzelheiten zu Editiermasken siehe Session-Parameter EM in der Parameter-Referenz.

Seitenanfang

Syntax 4 — PROCESS PAGE MODAL

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:

Syntax-Beschreibung — Syntax 4

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:

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  

Seitenanfang

Beispiele

Weitere Beispiele zur Verwendung des PROCESS PAGE-Statements sind in der Library SYSEXNJX enthalten.

Seitenanfang