このドキュメントでは、次のトピックについて説明します。
PROCESS PAGE
ステートメントは、外部レンダリングエンジン(Application Designer など)に一般的なインターフェイスの説明を提供し、Natural 内部データ表現と外部データ表現をリンクします。 このリンクを介して、データおよびイベントがブラウザベースの外部アプリケーションとやりとりされます。ただし、レンダリング情報はやりとりされません。
詳細については、『Natural for Ajax』ドキュメントを参照してください。
PROCESS PAGE operand1 |
||||||||
[WITH PARAMETERS |
||||||||
{[NAME ] operand2 [VALUE ] operand3 [
|
( |
]}... | ||||||
END-PARAMETERS ]
|
||||||||
[GIVING operand9]
|
構文図で使用されている記号については、「構文記号」を参照してください。
関連機能グループ:「対話型処理用の画面生成」
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 エラーが含まれます。 |
データ転送時に使用される編集マスク。 詳細については、『パラメータリファレンス』のセッションパラメータ |
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
PROCESS PAGE USING operand4
|
||||
[ | { |
|
} | ] |
[GIVING operand9] |
構文図で使用されている記号については、「構文記号」を参照してください。
関連機能グループ:「対話型処理用の画面生成」
この構文は、ページレイアウト(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 システム変数 注意: |
---|---|
operand5 |
フィールド指定:
データベースフィールドまたはユーザー定義変数(すべて事前の定義が必要)のリストを指定します。 フィールドは、番号、シーケンス、フォーマット、長さ、オカレンス数(配列の場合)について、参照されているアダプタに準拠している必要があります。そうでない場合、エラーが発生します。 データベースフィールドの内容が 「プログラムで定義されたフィールドに基づく PROCESS PAGE USING」を参照してください。 |
NO PARAMETER | 「パラメータリストなしの PROCESS PAGE USING」を参照してください。 |
GIVING operand9 |
GIVING 節:
要求を実行できなかった場合は、operand9 に Natural エラーが含まれます。 注意: |
PROCESS PAGE USING
をパラメータリストなしで使用する場合、次の要件を満たす必要があります。
アダプタ名(operand5)は、英数字定数(最大 8 文字)として指定する必要があります。
この方法で使用されるアダプタは、そのアダプタを参照するプログラムのコンパイル前に事前に作成されている必要があります。
処理対象のフィールドの名前は、コンパイル時にアダプタソース定義からダイナミックに取得される必要があります。 プログラムとアダプタの両方で使用されるフィールド名が同一である必要があります。
PROCESS PAGE
ステートメントで参照されるすべてのフィールドにその時点でアクセスできる必要があります。
ストラクチャードモードでは、フィールドが事前に定義されている必要があります(処理ループまたはビューでデータベースフィールドが適切に参照されている必要があります)。
ページレイアウトが変更されたとき、アダプタを使用しているプログラムの再カタログは不要です。 ただし、配列構造や名前、フィールドのフォーマット/長さが変更されたとき、またはアダプタでフィールドが追加/削除されたときは、アダプタを使用しているプログラムの再カタログが必要になります。
プログラムのコンパイル時にアダプタソースを利用できる必要があります。利用できない場合、PROCESS PAGE USING
ステートメントはコンパイルできません。
注意:
アダプタを利用できない場合でもプログラムをコンパイルする必要がある場合は、NO PARAMETER
を指定してください。 これにより、アダプタを利用できない場合でも PROCESS PAGE USING
ステートメントのコンパイルが可能になります。
プログラム(operand5)内で処理するフィールドの名前を指定することで、プログラム内のフィールドとアダプタ内のフィールドに異なる名前を使用できます。
プログラム内のフィールドのシーケンスは、アダプタ内のフィールドのシーケンスと一致している必要があります。 Natural マップをアダプタオブジェクトとして使用する場合は、マップエディタによって、マップで指定されたフィールドがフィールド名でアルファベット順にソートされることに留意してください。 詳細については、『エディタ』ドキュメントのマップエディタの説明を参照してください。
プログラムエディタの行コマンド .I(adaptername)
を使用して、指定したアダプタで定義されたフィールドに基づくパラメータリスト付きの完全な PROCESS PAGE USING
ステートメントを取得できます。
アダプタのレイアウトが変更されたとき、アダプタを使用しているプログラムの再カタログは不要です。 ただし、アダプタ内のフィールド名、フィールドのフォーマット/長さ、または配列構造が変更されたとき、またはアダプタでフィールドが追加/削除されたときは、プログラムの再カタログが必要になります。
実行時に、プログラムで指定されたフィールドのフォーマットと長さがアダプタで指定されたフィールドと一致しているかどうかがチェックされます。 両方のレイアウトが一致しない場合は、エラーメッセージが生成されます。
PROCESS PAGE UPDATE [FULL ] [event-option]
|
||||||
[GIVING operand9]
|
構文図で使用されている記号については、「構文記号」を参照してください。
関連機能グループ:「対話型処理用の画面生成」
PROCESS PAGE UPDATE
ステートメントは、PROCESS PAGE
ステートメントに戻って再実行するために使用します。 通常、前の PROCESS PAGE
ステートメントのデータ入力処理が不完全だったイベント処理から戻るために使用します。
注意:PROCESS PAGE
ステートメントとそれに対応する PROCESS PAGE UPDATE
ステートメントの間に、INPUT
、WRITE
、PRINT
、または 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 |
|
---|---|
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
AND SEND EVENT operand6 |
||||
[WITH PARAMETERS |
||||
{[NAME ] operand7 [VALUE ] operand8 [
|
{ |
( |
} | ]}... |
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 データフィールドが入ります。 |
編集マスク:
データ転送時に使用される編集マスク。 編集マスクの詳細については、『パラメータリファレンス』でセッションパラメータ |
PROCESS PAGE MODAL |
|
statement ... | |
END-PROCESS
|
構文図で使用されている記号については、「構文記号」を参照してください。
関連ステートメント:ESCAPE | PROCESS PAGE
関連機能グループ:
PROCESS PAGE MODAL
ステートメントは、処理ブロックを開始し、モーダルリッチ GUI ウィンドウの存続期間を制御するために使用します。
注意:PROCESS PAGE MODAL
ステートメントはバッチモードでは使用できません。
PROCESS PAGE MODAL
ステートメントブロックに入ると、まだ表示されていないレポート 0 のデータが最初に表示されます。
システム変数 *PAGE-LEVEL
が増加し、モーダルページのオープン準備が行われます。 モーダルページの実際のオープンは次の PROCESS PAGE USING 'adapter' WITH
ステートメントで実行されます。
注意:PROCESS PAGE MODAL
ステートメントとそれに対応する END-PROCESS
ステートメントの間に、レポート 0 を参照する PRINT
、WRITE
、INPUT
、または DISPLAY
ステートメントを実行することはできません。
PROCESS PAGE MODAL
ステートメントブロックを抜けると、次のアクションが実行されます。
モーダルページがこのレベルでオープンされている場合、モーダルページがクローズされます。
システム変数 *PAGE-LEVEL
が減少し、システム変数 *PAGE-EVENT
が、ステートメントブロックに入る前の値に戻されます。
構文要素の説明:
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