このドキュメントでは、次のトピックについて説明します。
PROCESS PAGE
ステートメントは、外部レンダリングエンジン(Natural for Ajax など)に一般的なインターフェイスの説明を提供し、Natural 内部データ表現と外部データ表現をリンクします。このリンクを介して、データおよびイベントがブラウザベースの外部アプリケーションとやりとりされます。ただし、レンダリング情報はやりとりされません。
詳細については、『Natural for Ajax』ドキュメントを参照してください。最新の Natural for Ajax ドキュメントは、https://empower.softwareag.com/ でいつでも入手できます。
PROCESS PAGE [(parameter)] operand1 |
||||||||||
[WITH PARAMETERS |
||||||||||
{[NAME ] operand3 [VALUE ] operand4 [(parameters)]} ...
|
||||||||||
END-PARAMETERS ]
|
||||||||||
[GIVING operand11]
|
構文図で使用されている記号については、「構文記号」を参照してください。
関連機能グループ:対話型処理用の画面生成
PROCESS PAGE
ステートメントの構文 1 は、通常 Natural アダプタ内でのみ使用されます。アダプタとは、Natural アプリケーションと Web ページ間のインターフェイスを形成する Natural オブジェクトです。アダプタは、レイアウトの保存時に Natural for Ajax によって自動的に作成/更新されます。
注意:
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | オペランド参照 | ダイナミック定義 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 |
C | S | A | U | ○ | × | ||||||||||||||
operand2 |
S | A | C | × | × | |||||||||||||||
operand3 |
C | S | A | U | ○ | × | ||||||||||||||
operand4 |
C | S | A | A | U | N | P | I | F | B | D | T | L | ○ | ○ | |||||
operand5 |
S | A | C | × | × | |||||||||||||||
operand11 |
S | I4 | ○ | ○ |
構文要素の説明:
構文要素 | 説明 | ||||||
---|---|---|---|---|---|---|---|
parameter |
属性制御変数: カッコで囲んだ CV パラメータを指定することで、operand2 で指定されている 1 つ以上の属性制御変数を参照できます。(
『プログラミングガイド』の「論理条件基準」、「MODIFIED オプション - フィールドの内容が変更されているかどうかのチェック」も参照してください。 |
||||||
operand1 |
外部ページレイアウト名: operand1 には外部ページレイアウトの名前が入ります。
|
||||||
operand2 |
属性制御変数の名前:
|
||||||
operand3 |
外部データフィールドの名前: operand3 には operand4 の相互転送に使用される外部データフィールドの名前が入ります。
|
||||||
operand4 |
Natural データフィールドの名前: operand4 には転送される Natural データフィールドの名前が入ります。
|
||||||
parameters |
|
||||||
operand5 |
属性制御変数の名前: operand5 には属性制御変数の名前が入ります。変数はフォーマット C である必要があります。
|
||||||
GIVING
operand11
|
GIVING 節:
要求を実行できなかった場合は、 |
Natural for Ajax によって作成されたアダプタの例:
* 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] |
構文図で使用されている記号については、「構文記号」を参照してください。
関連機能グループ:対話型処理用の画面生成
この構文は、ページレイアウト(Natural for Ajax または類似のツールで作成)から生成されたアダプタタイプのオブジェクトを使用してリッチ GUI 入力/出力処理を実行するために使用します。
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | オペランド参照 | ダイナミック定義 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand6 |
C | S | A | ○ | × | |||||||||||||||
operand7 |
S | A | G | A | U | N | P | I | F | B | D | T | L | ○ | ○ | |||||
operand11 |
S | I4 | ○ | ○ |
構文要素の説明:
構文要素 | 説明 |
---|---|
USING
operand6 |
アダプタ名:
Natural システムファイルに事前に保存されているアダプタ定義を呼び出します。『プログラミングガイド』の「リッチ GUI ページの処理 - アダプタ」も参照してください。 アダプタ名( アダプタ名にはアンパサンド(&)を含めることができます。この文字は実行時に Natural システム変数 注意: |
operand7 |
フィールド指定:
データベースフィールドまたはユーザー定義変数(すべて事前の定義が必要)のリストを指定します。フィールドは、番号、シーケンス、フォーマット、長さ、オカレンス数(配列の場合)について、参照されているアダプタに準拠している必要があります。そうでない場合、エラーが発生します。 データベースフィールドの内容が 「プログラムで定義されたフィールドに基づく PROCESS PAGE USING」を参照してください。 |
NO PARAMETER |
NO PARAMETER オプション:
「パラメータリストなしの PROCESS PAGE USING」を参照してください。 |
GIVING
operand11 |
GIVING 節:
要求を実行できなかった場合は、 注意: |
パラメータリストのない PROCESS PAGE
USING
を使用する場合は、次の要件を満たす必要があります。
アダプタ名(operand6
)は、英数字定数(最大 8 文字)として指定する必要があります。
この方法で使用されるアダプタは、そのアダプタを参照するプログラムのコンパイル前に事前に作成されている必要があります。
処理対象のフィールドの名前は、コンパイル時にアダプタソース定義からダイナミックに取得される必要があります。プログラムとアダプタの両方で使用されるフィールド名が同一である必要があります。
PROCESS
PAGE
ステートメントで参照されるすべてのフィールドは、その時点でアクセス可能である必要があります。
ストラクチャードモードでは、フィールドが事前に定義されている必要があります(処理ループまたはビューでデータベースフィールドが適切に参照されている必要があります)。
ページレイアウトが変更されたとき、アダプタを使用しているプログラムの再カタログは不要です。ただし、配列構造や名前、フィールドのフォーマット/長さが変更されたとき、またはアダプタでフィールドが追加/削除されたときは、アダプタを使用しているプログラムの再カタログが必要になります。
プログラムのコンパイル時にアダプタソースを利用できる必要があります。利用できない場合、PROCESS PAGE USING
ステートメントはコンパイルできません。
注意:
アダプタを利用できない場合でもプログラムをコンパイルする必要がある場合は、NO PARAMETER
を指定してください。これにより、アダプタを利用できない場合でも PROCESS PAGE
USING
ステートメントのコンパイルが可能になります。
プログラム(operand7
)内で処理するフィールドの名前を指定することで、プログラム内のフィールドとアダプタ内のフィールドに異なる名前を使用できます。
プログラム内のフィールドのシーケンスは、アダプタ内のフィールドのシーケンスと一致している必要があります。Natural マップをアダプタオブジェクトとして使用する場合は、マップエディタによって、マップで指定されたフィールドがフィールド名でアルファベット順にソートされることに留意してください。詳細については、『エディタ』ドキュメントのマップエディタの説明を参照してください。
プログラムエディタの行コマンド .I(adaptername)
を使用して、指定されたアダプタで定義されているフィールドから派生したパラメータリストとともに完全な PROCESS PAGE USING
ステートメントを取得できます。
アダプタのレイアウトが変更されたとき、アダプタを使用しているプログラムの再カタログは不要です。ただし、アダプタ内のフィールド名、フィールドのフォーマット/長さ、または配列構造が変更されたとき、またはアダプタでフィールドが追加/削除されたときは、プログラムの再カタログが必要になります。
実行時に、プログラムで指定されたフィールドのフォーマットと長さがアダプタで指定されたフィールドと一致しているかどうかがチェックされます。両方のレイアウトが一致しない場合は、エラーメッセージが生成されます。
PROCESS PAGE UPDATE |
||||
[event-option] [GIVING operand11]
|
構文図で使用されている記号については、「構文記号」を参照してください。
関連機能グループ:対話型処理用の画面生成
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
ステートメントを実行することはできません。このエラー条件が検出されると、エラーメッセージが生成され、プログラムの実行が終了します。
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | オペランド参照 | ダイナミック定義 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand11 |
S | I4 | ○ | ○ |
構文要素の説明:
構文要素 | 説明 |
---|---|
FULL |
FULL オプション:
|
DATA |
DATA オプション:
|
event-option |
EVENT オプション:
下記の「EVENT オプション」を参照してください。 |
GIVING
(operand11) |
GIVING 節:
要求を実行できなかった場合は、 |
ユーザープログラムフラグメントの例:
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 ]
|
このオプションでは、外部 I/O システムに特定の機能を実行するように指示できます。これらの機能は、外部 I/O システムの一部であるか、またはフォーカスの設定、メッセージボックスの表示などの出力処理に関する特別な機能を実装します。
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | オペランド参照 | ダイナミック定義 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand8 |
C | S | A | U | ○ | × | ||||||||||||||
operand9 |
C | S | A | U | ○ | × | ||||||||||||||
operand10 |
C | S | A | A | U | N | P | I | F | B | D | T | L | ○ | ○ |
構文要素の説明:
構文要素 | 説明 |
---|---|
AND
SEND EVENT operand8 |
外部 I/O システムから要求されるイベント:
外部 I/O システムの実装に応じて、イベントを使用できます。『Natural for Ajax』ドキュメントの「Sending Events to the User Interface」を参照してください。 |
WITH PARAMETERS |
WITH PARAMETERS 節:
この節を使用する場合、次のオプションを指定できます。 |
NAME
operand9 |
外部データフィールド名:
operand9 には、 |
VALUE
operand10 |
Natural データフィールド:
|
編集マスク:
データ転送時に使用される編集マスク。 編集マスクの詳細については、『パラメータリファレンス』でセッションパラメータ Unicode 編集マスクの詳細については、『パラメータリファレンス』でセッションパラメータ |
|
END-PARAMETERS |
WITH PARAMETERS 節の終了:
|
PROCESS PAGE
MODAL |
|
statement ... | |
END-PROCESS |
構文図で使用されている記号については、「構文記号」を参照してください。
関連ステートメント: PROCESS PAGE
関連機能グループ:
PROCESS PAGE MODAL
ステートメントは、処理ブロックを開始し、モーダルリッチ GUI ウィンドウの存続期間を制御するために使用します。
PROCESS PAGE MODAL
ステートメントブロックに入ると、次のアクションが実行されます。
まだ表示されていない、レポート 0 のデータが最初に表示されます。
システム変数 *PAGE-LEVEL
が増えます。
モーダルページを開く準備ができました。モーダルページは、次の PROCESS PAGE USING
operand6 WITH
ステートメントで物理的に開きます。ここで、operand6
は使用するアダプタの名前です。
PROCESS PAGE MODAL
ステートメントブロックを抜けると、次のアクションが実行されます。
モーダルページがこのレベルでオープンされている場合、モーダルページのクローズが準備されます。モーダルページの実際のクローズは次の PROCESS PAGE UPDATE [FULL]
ステートメントで実行されます。
システム変数 *PAGE-LEVEL
が減少し、システム変数 *PAGE-EVENT
が、ステートメントブロックに入る前の値に戻されます。
モーダルページを開いたプログラムで nat:page.default
イベントが発生します。
注意:PROCESS PAGE MODAL
ステートメントとそれに対応する END-PROCESS
ステートメントの間に、レポート 0 を参照する PRINT
、WRITE
、INPUT
または DISPLAY
ステートメントを実行することはできません。
PROCESS PAGE MODAL
ステートメントをバッチモードで使用することはできません。
構文要素の説明:
構文要素 | 説明 |
---|---|
statement |
実行するステートメント:
状況に応じて、statement の代わりに、1 つ以上の適切なステートメントを指定する必要があります。不要なステートメントがある場合は、 |
END-PROCESS |
PROCESS PAGE MODAL ステートメントの終了:
|
例:
* 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
PROCESS PAGE
ステートメントのその他の使用例については、ライブラリ SYSEXNJX
にも記載されています。