コンテンツフレーム起動

GET 文書を SAP ライブラリストラクチャに組み込む

これは、論理データベースを使用する実行可能プログラムで最も重要なイベントです。これは、論理データベースによりノード<table> から行が読み込まれ、命令 NODES <table> を使用して宣言された作業領域のプログラムに利用可能にされたときに発生します。

プログラム中に対応するイベントブロックを定義するとき、論理データベースでこのノードの項目選択がサポートされている場合には、項目一覧を指定することができます。

GET <table> [FIELDS <f1> <f2>...].

このイベントブロックの作業領域でデータを処理することができます。たとえば、データを直接一覧に書き込んだり、あとで処理できるように順次データセット ( 内部テーブルまたは抽出) に保存したりできます。

論理データベースは、論理データベースで項目選択に指定されていないノードで、論理データベースのアクセスパス上の <table> より上位に存在するすべてのノードからすべての列を読み込みますこれは、これらノードに GET イベントブロックを定義しているかいないかとは関係ありません。ただし、アクセスできるのは、NODES 命令で作業領域を宣言したノードのデータのみです。

論理データベースの階層レベルの最後で、作業領域<table> の項目すべての値が 16 00 に設定されます。抽出を使用する場合には、内容が 16 00 の項目に対する特別なソート規則が存在します。追加情報については、抽出データセットのソートを参照してください。

論理データベース内で項目選択が指定されているテーブルの場合は、パフォーマンスがはるかに優れていますこのタイプのノードが論理データベースの階層で <table> より上位にあり、GET イベントブロックがない場合、プログラムに NODES 命令があるノードからのみ、全列のデータが読み込まれます。NODES 命令がないノードからは、キー項目のみが読み込まれます。論理データベースにはアクセスパスを作成するキー項目が必要です。

FIELDS オプションを使用すれば、論理データベースに読み込ませるノードの列を明示的に指定することができます。FIELDS オプションを使用して、論理データベースプログラムは、データベーステーブル <table> から、項目 <f 1> <f 2> ... とキー項目のみを読み込みます。ただし、ノード <table> には論理データベース内で項目選択が指定されている必要があります 

FIELDS の使用により、論理データベースにノードの全列を読み込ませる必要があるときに、はるかに優れた応答時間を実現することができます。 

ノード <table> のキー項目でなく、FIELDS の後に一覧されていない項目はどれも、論理データベースによって読み込まれません。テーブル作業領域 <table> の関連コンポーネントの内容は、16 00 に設定されます。すなわち、階層で <table> の下位にあるノードの GET イベントの際にも、これらは 16 00 に設定されます。したがって、プログラムでこれら項目を使用したり、これら項目を使用するサブルーチンを呼び出したりしないでください。GET イベントブロックを使用して抽出データセットに書き込む場合には、内容が 16 00 の項目に対する特別なソート規則が存在することを忘れないでください。

 例

以下のプログラムは、論理データベース F1S に接続されています。

REPORT EVENT_DEMO.

NODES: SPFLI, SFLIGHT, SBOOK.

START-OF-SELECTION.
   WRITE 'Test Program for GET'.

GET SPFLI.
  SKIP.
   WRITE: / 'From:', SPFLI-CITYFROM,
           'TO  :', SPFLI-CITYTO.

GET SFLIGHT.
   SKIP.
   WRITE: / 'Carrid:', SFLIGHT-CARRID,
           'Connid:', SFLIGHT-CONNID.

   ULINE.

GET SBOOK.
  WRITE: / 'Fldate:',    SFLIGHT-FLDATE,
           'Bookid:',    SBOOK-BOOKID,
           'Luggweight', SBOOK-LUGGWEIGHT.

  ULINE.

テーブル作業領域 SFLIGHT GET SBOOK のイベントブロックで使用されます。選択画面に何を入力するかにもよりますが、一覧表示の最初はたとえば以下のようになります。

このグラフィックは添付のテキストに説明されています

 例

論理データベース F1S において、ノード SFLIGHT および SBOOK が項目選択に指定されています。すなわち、それらの GET イベントブロックにおいて項目一覧を指定することができます。

REPORT EVENT_DEMO.

NODES: SFLIGHT, SBOOK.

GET SFLIGHT FIELDS CARRID CONNID.

 ...

GET SBOOK FIELDS BOOKID.

 ...

GET SFLIGHT LATE FIELDS PLANETYPE.

 ...

この場合、論理データベースでは以下の項目が読み込まれます。

         SFLIGHT から、MANDTCARRIDCONNIDFLDATE 、および PLANETYPE

         SBOOK から、MANDTCARRIDCONNIDFLDATE 、および BOOKID

SFLIGHT からは項目 MANDT および FLDATE が読み込まれます。これらは項目一覧には指定されていませんが、テーブルキーに属しているからです。

SBOOK からはキー項目のみが読み込まれます。

 

 

 

コンテンツフレーム終了