コンテンツフレーム起動

コンテキストインスタンスからのデータの照会 文書を SAP ライブラリストラクチャに組み込む

コンテキストインスタンスにキー値を割り当てると、その従属値を照会することができます。その場合、 DEMAND 命令を使用します。

構文

DEMAND <val 1> = <f 1> ... <val n> = <f n> FROM CONTEXT <inst>
[MESSAGES INTO <itab>].

この命令では、項目 <f n> にコンテキストインスタンス <inst> からの導出値 <val n> が割り当てられます。コンテキストの項目は 項目テーブルに格納されます。

この場合、以下のステップが実行されます。

  1. コンテキストインスタンスにすでに有効な導出値が含まれているかどうかのチェックが実行されます。有効な導出値がすでに含まれているのは、値がすでに前の DEMAND 命令で計算されていて、そのインスタンスにそれ以降 SUPPLY 命令を使用して新しいキー値が割り当てられていない場合です。その場合、これらの値が項目 <f n> に割り当てられます。
  2. コンテキストインスタンスに有効な値が含まれていないときは、新しい値が計算されます。まず最初に、現在のコンテキストインスタンスに対して正しいキー項目値を持つデータレコードがないかどうか、コンテキストバッファの検索が行われます( コンテキストのバッファリングを参照してください)。該当する値が見つかると、その値が有効値としてコンテキストインスタンスにコピーされ、それが項目 <f n> に割り当てられます。
  3. コンテキストバッファに該当する値が見つからない場合、コンテキストの定義にしたがって値が導出されます。中間結果の導出中にコンテキストバッファが検索され、中間値が有効であればそれが使用されます。値を導出すると、すべての結果がコンテキストバッファに保存され、値がコンテキストインスタンスにコピーされ、それが項目 <f n> に割り当てられます。
  4. 従属値を設定でいないときは、プロセスが打ち切られ、項目 <f n> が初期値に設定され、 モジュールテーブルに格納されているユーザメッセージが出力されます。 MESSAGES オプションを使用すると、これらのメッセージをプログラムで取り扱うことができます( コンテキストでのメッセージ処理を参照してください)。

例

REPORT RSGCON01.

DATA: C_FROM LIKE SPFLI-CITYFROM,
      C_TO   LIKE SPFLI-CITYTO,
      C_TIME LIKE SPFLI-FLTIME.

CONTEXTS DEMO_TRAVEL.

DATA: DEMO_TRAVEL_INST1 TYPE CONTEXT_DEMO_TRAVEL,
      DEMO_TRAVEL_INST2 TYPE CONTEXT_DEMO_TRAVEL.

SUPPLY CARRID = 'LH'
       CONNID = '400'
       TO CONTEXT DEMO_TRAVEL_INST1.

SUPPLY CARRID = 'AA'
       CONNID = '017'
       TO CONTEXT DEMO_TRAVEL_INST2.

DEMAND CITYFROM = C_FROM
       CITYTO   = C_TO
       FLTIME   = C_TIME
       FROM CONTEXT DEMO_TRAVEL_INST1.

WRITE: / C_FROM, C_TO, C_TIME.

DEMAND CITYFROM = C_FROM
       CITYTO   = C_TO
       FLTIME   = C_TIME
       FROM CONTEXT DEMO_TRAVEL_INST2.

WRITE: / C_FROM, C_TO, C_TIME.

このプログラムでは、コンテキスト DEMO_TRAVEL のインスタンスが2つ生成され、両方にキー値が割り当てられ、3つの従属値がそれぞれから読み込まれます。

 

 

 

 

コンテンツフレーム終了