差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

96:16:46:06 [2017/02/09 21:00] (現在)
ライン 1: ライン 1:
 +======テーブルデータ型======
 +{{page>​adsense:​ads_content_header&​nouser&​nodate&​nomdate&​noeditbtn}}
  
 +テーブルデータ型は、ABAP における内部テーブルの構造と機能属性を示します。このトピックでは、テーブルデータ型を取り上げて、その構成や種類などを説明します。
 +
 +
 +=====構成=====
 +テーブルデータ型は、行データ型、キー、およびアクセス方法によって完全指定されます。
 +{{ :​96:​16:​46:​abap_tbldatatyp_001.gif |}}
 +<​html><​table style="​width:​100%"><​tr><​td align="​center">​(source:​SAP Help Portal) </​td></​tr></​table>​ </​html>​
 +
 +==== 行データ型 ====
 +通常、内部テーブルのデータ型は構造であり、その構造の各コンポーネントは、それぞれ内部テーブル内の1つの列になります。
 +ただし、内部テーブルのデータ型の仕様としては、構造以外の任意のデータ型を使用することも可能です。
 +
 +==== キー ====
 +テーブル行データはキーによって識別されます。キーは、システムからデフォルトで生成されるは標準キーのほかに、ユーザから定義することもできます。ユーザ定義キーはUNIQUE または NON-UNIQUE として指定することができます。
 +
 +==== アクセス方法 ====
 +内部テーブルのアクセス方法は以下三つの種類から指定できます。
 +  * 標準テーブル \\ 標準テーブルは内部的な線型索引を持ちます。 \\ 索引を使用して個別のテーブルエントリをアドレス指定する予定がある場合には、これが最適なデータ型です。
 +  * ソートテーブル \\ ソートテーブルは常にキー別にソートされ、保存されます。ソートテーブルも内部索引を持ちます。 \\ バイナリ検索が求められる場合には、これが最適なデータ型です。
 +  * ハッシュテーブル \\ ハッシュテーブルは線型索引を持ちません。キーを使用した場合にのみハッシュテーブルにアクセスすることができます。 \\ ハッシュ検索が求められる場合には、これが最適なデータ型です。
 +
 +===== 分類 =====
 +テーブルデータ型は以下の階層図で示されたように、内部テーブルのアクセス方法により分類することができます。
 +{{ :​96:​16:​46:​abap_tbldatatyp_002.gif |}}
 +<​html><​table style="​width:​100%"><​tr><​td align="​center">​(source:​SAP Help Portal) </​td></​tr></​table>​ </​html>​
 +
 +==== 完全指定のテーブルデータ型 ====
 +内部テーブルのアクセス方法が明示されたテーブルデータ型です。
 +  * STANDARD TABLE または TABLE \\ 標準テーブルを登録します。
 +  * SORTED TABLE \\ ソートテーブルを登録します。
 +  * HASHED TABLE \\ ハッシュテーブルを登録します。
 +
 +
 +==== ジェネリックテーブルデータ型 ====
 +内部テーブルのアクセス方法が明示されたテーブルデータ型です。
 +  * INDEX TABLE \\ 索引アクセスを使用するジェネリックテーブルデータ型を登録します。
 +  * ANY TABLE \\ 完全なジェネリックテーブルデータ型を登録します。
 +
 +ジェネリックテーブルデータ型は動的なプログラミングでよく使用されます。
 +
 +===== 定義 =====
 +テーブルデータ型は、ローカルまたはグローバルに定義することができます。
 +
 +==== ローカル定義 ====
 +プログラムの中でTYPE命令を使用してテーブルデータ型をローカルに定義することができます。
 +構文:
 +<​code>​
 +TYPES type TYPE|LIKE tabkind OF linetype [WITH key]
 + ​[INITIAL SIZE n].
 +</​code>​
 +
 +==== グローバル定義 ====
 +ABAP ディクショナリのデータ型としてテーブルデータ型をグローバルに定義することもできます。
 +例として、標準のMMPUR_REQUISITION_ITEMSを取り上げてそのイメージを示します。
 +{{ :​96:​16:​46:​abap_tbldatatyp_003.jpg |}}
 +{{ :​96:​16:​46:​abap_tbldatatyp_004.jpg |}}
 +{{ :​96:​16:​46:​abap_tbldatatyp_005.jpg |}}
 +
 +
 +===== 参考 =====
 +[[https://​help.sap.com/​saphelp_nw70/​helpdata/​ja/​fb/​f14736a1f0ad1fe10000009b38f839/​content.htm|テーブルデータ型-SAP Help Portal]]