バージョン 4.2.5
 —  ステートメント  —

PROCESS PAGE

このドキュメントでは、次のトピックについて説明します。


機能

PROCESS PAGE ステートメントは、外部レンダリングエンジン(Application Designer など)に一般的なインターフェイスの説明を提供し、Natural 内部データ表現と外部データ表現をリンクします。 このリンクを介して、データおよびイベントがブラウザベースの外部アプリケーションとやりとりされます。ただし、レンダリング情報はやりとりされません。

詳細については、『Natural for Ajax』ドキュメントを参照してください。

Top of page

構文 1 - PROCESS PAGE

PROCESS PAGE operand1
  [WITH PARAMETERS
    {[NAME] operand2 [VALUE] operand3 [  

(EM=emvalue)

  ]}...
  END-PARAMETERS]
  [GIVINGoperand9]

構文図で使用されている記号については、「構文記号」を参照してください。

関連機能グループ:「対話型処理用の画面生成

構文説明 - 構文 1

PROCESS PAGE ステートメントの構文 1 は、通常 Natural アダプタ内でのみ使用されます。 アダプタとは、Natural アプリケーションと Web ページ間のインターフェイスを形成する Natural オブジェクトです。 アダプタは、レイアウトの保存時に Application Designer によって自動的に作成/更新されます。

注意:

オペランド定義テーブル:

オペランド 構文要素 フォーマット ステートメント参照 ダイナミック定義
operand1 C S       A U                       不可
operand2 C S       A U                       不可
operand3 C S A     A U N P I F B D T L      
operand9   S               I4                

構文要素の説明:

operand1 外部ページレイアウトの名前です。
operand2 operand3 の相互転送に使用される外部データフィールドの名前が入ります。
operand3 転送される Natural データフィールドの名前が入ります。
GIVING operand9
GIVING 節:

要求を実行できなかった場合は、operand9 に Natural エラーが含まれます。

EM=

データ転送時に使用される編集マスク。

詳細については、『パラメータリファレンス』のセッションパラメータ EM を参照してください。

Application Designer によって作成されたアダプタの例:

* PAGE1: PROTOTYPE       --- CREATED BY Application Designer --- 
* 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

Top of page

構文 2 - PROCESS PAGE USING

PROCESS PAGE USING operand4
  [ {

WITH {operand5} ...
NO PARAMETER

} ]
  [GIVINGoperand9]

構文図で使用されている記号については、「構文記号」を参照してください。

関連機能グループ:「対話型処理用の画面生成

構文説明 - 構文 2

この構文は、ページレイアウト(Application Designer または類似のツールで作成)から生成されたアダプタタイプのオブジェクトを使用してリッチ GUI 入力/出力処理を実行するために使用します。

オペランド定義テーブル:

オペランド 構文要素 フォーマット ステートメント参照 ダイナミック定義
operand4 C S       A                         不可
operand5   S A  G   A U N P I F B D T L      
operand9   S               I4                

構文要素の説明:

USING operand4
アダプタ名:

Natural システムファイルに事前に保存されているアダプタ定義を呼び出します。 『プログラミングガイド』の「リッチ GUI ページの処理 - アダプタ」も参照してください。

アダプタ名(operand4)には、1~8 文字の英数字定数またはユーザー定義変数を使用できます。 変数を使用する場合、事前の定義が必要です。

アダプタ名にはアンパサンド(&)を含めることができます。この文字は実行時に Natural システム変数 *LANGUAGE の現在の値で置き換えられます。 この機能は履歴上の理由で用意されています。 複数言語のアダプタが必要な場合、外部レンダリングシステム(例えば、Application Designer)の機能を使用してください。

注意:
新しいアプリケーションでは、複数言語にするためのアンパサンド機能は必要ありません。 Application Designer などを使用して設計されたページでは、レイアウト設計の一部として複数言語の情報を保持できます。 『Natural for Ajax』ドキュメントの「Multi Language Management」を参照してください。

operand5
フィールド指定:

データベースフィールドまたはユーザー定義変数(すべて事前の定義が必要)のリストを指定します。 フィールドは、番号、シーケンス、フォーマット、長さ、オカレンス数(配列の場合)について、参照されているアダプタに準拠している必要があります。そうでない場合、エラーが発生します。

データベースフィールドの内容が PROCESS PAGE 処理の結果として変更される場合は、データエリアにある値のみが変更されます。 データベースの内容を変更するためには、適切なデータベース UPDATE/STORE ステートメントを使用する必要があります。

プログラムで定義されたフィールドに基づく PROCESS PAGE USING」を参照してください。

NO PARAMETER パラメータリストなしの PROCESS PAGE USING」を参照してください。
GIVING operand9
GIVING 節:

要求を実行できなかった場合は、operand9 に Natural エラーが含まれます。

注意:
GIVING 節では、アダプタオブジェクトの起動中または実行中にエラーが発生した場合に共通 Natural エラー処理を中断します。 Natural モジュールを後方追跡して ON ERROR 節を見つける代わりに、Natural エラーコードが変数(operand9)に渡され、次のステートメントの実行が続行されます。

パラメータリストなしの PROCESS PAGE USING

PROCESS PAGE USING をパラメータリストなしで使用する場合、次の要件を満たす必要があります。

注意:
アダプタを利用できない場合でもプログラムをコンパイルする必要がある場合は、NO PARAMETER を指定してください。 これにより、アダプタを利用できない場合でも PROCESS PAGE USING ステートメントのコンパイルが可能になります。

プログラムで定義されたフィールドに基づく PROCESS PAGE USING

プログラム(operand5)内で処理するフィールドの名前を指定することで、プログラム内のフィールドとアダプタ内のフィールドに異なる名前を使用できます。

プログラム内のフィールドのシーケンスは、アダプタ内のフィールドのシーケンスと一致している必要があります。 Natural マップをアダプタオブジェクトとして使用する場合は、マップエディタによって、マップで指定されたフィールドがフィールド名でアルファベット順にソートされることに留意してください。 詳細については、『エディタ』ドキュメントのマップエディタの説明を参照してください。

プログラムエディタの行コマンド .I(adaptername) を使用して、指定したアダプタで定義されたフィールドに基づくパラメータリスト付きの完全な PROCESS PAGE USING ステートメントを取得できます。

アダプタのレイアウトが変更されたとき、アダプタを使用しているプログラムの再カタログは不要です。 ただし、アダプタ内のフィールド名、フィールドのフォーマット/長さ、または配列構造が変更されたとき、またはアダプタでフィールドが追加/削除されたときは、プログラムの再カタログが必要になります。

実行時に、プログラムで指定されたフィールドのフォーマットと長さがアダプタで指定されたフィールドと一致しているかどうかがチェックされます。 両方のレイアウトが一致しない場合は、エラーメッセージが生成されます。

Top of page

構文 3 - PROCESS PAGE UPDATE

PROCESS PAGE UPDATE [FULL] [event-option]
  [GIVINGoperand9]

構文図で使用されている記号については、「構文記号」を参照してください。

関連機能グループ:「対話型処理用の画面生成

構文説明 - 構文 3

PROCESS PAGE UPDATE ステートメントは、PROCESS PAGE ステートメントに戻って再実行するために使用します。 通常、前の PROCESS PAGE ステートメントのデータ入力処理が不完全だったイベント処理から戻るために使用します。

注意:
PROCESS PAGE ステートメントとそれに対応する PROCESS PAGE UPDATE ステートメントの間に、INPUTWRITEPRINT、または DISPLAY ステートメントを実行することはできません。

PROCESS PAGE UPDATE ステートメントが実行されると、PROCESS PAGE ステートメントが実行されたときに存在していたサブルーチン、特殊条件、およびループ処理を考慮してプログラムステータスが再位置づけされます(PROCESS PAGE ステートメントのステータスがまだ有効な場合)。 PROCESS PAGE ステートメントの実行後にループが開始され、PROCESS PAGE UPDATE ステートメントがそのループ内にある場合、ループは中断され、PROCESS PAGE UPDATE の結果として再処理された PROCESS PAGE ステートメントの後で再開されます。

PROCESS PAGE ステートメントの実行後にサブルーチン階層が呼び出され、サブルーチン内で PROCESS PAGE UPDATE が実行された場合、Natural は自動的に全サブルーチンをさかのぼり、PROCESS PAGE ステートメントの位置にプログラムステータスを再位置づけします。

PROCESS PAGE ステートメントが実行されたステータスがすでに終了してしまった時点では、PROCESS PAGE ステートメントをループ、サブルーチン、または特殊条件ブロック内に位置づけ、PROCESS PAGE UPDATE ステートメントを実行することはできません。 このエラー条件が検出されると、エラーメッセージが生成され、プログラムの実行が終了します。

オペランド定義テーブル:

オペランド 構文要素 フォーマット ステートメント参照 ダイナミック定義
operand9   S               I4                

構文要素の説明:

FULL

PROCESS PAGE UPDATE ステートメントに FULL オプションを指定すると、対応する PROCESS PAGE ステートメントが完全に再実行されます。

  • 通常の PROCESS PAGE UPDATE ステートメント(FULL オプションなし)では、PROCESS PAGE ステートメントと PROCESS PAGE UPDATE ステートメントの間で変更された変数の内容は表示されません。つまり、画面上の変数の内容はすべて PROCESS PAGE ステートメントが実行された時点のものになります。

  • PROCESS PAGE UPDATE FULL ステートメントでは、最初の PROCESS PAGE ステートメントの実行後に行われたすべての変更は、PROCESS PAGE ステートメントが再実行されたときに適用されます。つまり、画面上の変数の値はすべて PROCESS PAGE UPDATE ステートメントが実行された時点のものになります。

event-option
EVENT オプション:

下記の「EVENT オプション」を参照してください。

GIVING (operand9)
GIVING 節:

要求を実行できなかった場合は、operand9 に Natural エラーが含まれます。

ユーザープログラムフラグメントの例:

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 オプション

AND SEND EVENToperand6
  [WITH PARAMETERS
   {[NAME] operand7 [VALUE] operand8 [ {

(EM=value)

} ]}...
  END-PARAMETERS]

このオプションでは、外部 I/O システムに特定の機能を実行するように指示できます。 これらの機能は、外部 I/O システムの一部であるか、またはフォーカスの設定、メッセージボックスの表示などの出力処理に関する特別な機能を実装します。

オペランド定義テーブル:

オペランド 構文要素 フォーマット ステートメント参照 ダイナミック定義
operand6 C S       A U                       不可
operand7 C S       A U                       不可
operand8 C S A     A U N P I F B D T L      

構文要素の説明:

operand6
外部 I/O システムから要求されるイベント:

外部 I/O システムの実装に応じて、イベントを使用できます。『Natural for Ajax』ドキュメントの「Sending Events to the User Interface」を参照してください。

operand7
外部データフィールド名:

operand7 には、operand8 の相互転送に使用される外部データフィールドの名前が入ります。

operand8
Natural データフィールド:

operand8 には、転送される Natural データフィールドが入ります。

EM=

編集マスク:

データ転送時に使用される編集マスク。

編集マスクの詳細については、『パラメータリファレンス』でセッションパラメータ EM を参照してください。

Top of page

構文 4 - PROCESS PAGE MODAL

PROCESS PAGE MODAL
   statement ...
END-PROCESS

構文図で使用されている記号については、「構文記号」を参照してください。

関連ステートメント:ESCAPE | PROCESS PAGE

関連機能グループ:

構文説明 - 構文 4

PROCESS PAGE MODAL ステートメントは、処理ブロックを開始し、モーダルリッチ GUI ウィンドウの存続期間を制御するために使用します。

注意:
PROCESS PAGE MODAL ステートメントはバッチモードでは使用できません。

PROCESS PAGE MODAL ステートメントブロックに入ると、まだ表示されていないレポート 0 のデータが最初に表示されます。

システム変数 *PAGE-LEVEL が増加し、モーダルページのオープン準備が行われます。 モーダルページの実際のオープンは次の PROCESS PAGE USING 'adapter' WITH ステートメントで実行されます。

注意:
PROCESS PAGE MODAL ステートメントとそれに対応する END-PROCESS ステートメントの間に、レポート 0 を参照する PRINTWRITEINPUT、または DISPLAY ステートメントを実行することはできません。

PROCESS PAGE MODAL ステートメントブロックを抜けると、次のアクションが実行されます。

構文要素の説明:

statement 状況に応じて、statement の代わりに、1 つ以上の適切なステートメントを指定する必要があります。 不要なステートメントがある場合は、IGNORE ステートメントを挿入します。
END-PROCESS PROCESS PAGE MODAL ステートメントを終了するには、Natural 予約語 END-PROCESS を使用する必要があります。

例:

* 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  

Top of page