コンテンツフレーム起動

TYPE オプション 文書を SAP ライブラリストラクチャに組み込む

TYPE オプションをさまざまな ABAP 命令で使用して、データ型を定義し、インタフェースパラメータまたはフィールドシンボルの型を指定します。TYPE オプションの意味は、構文とコンテキストによって異なります。

既知のデータ型の参照

以下のオプションを使用します。

TYPE <type>

これにより、プログラムでこの時点ですでに明らかであるデータ型<type> を参照することができます。TYPE オプションは、以下に列記されているどの命令でも使用することができます。データ型 <type> はデータオブジェクト名、またはデータ型名です。

LINE OF <table-type>

この場合、TYPE オプションでは、プログラムでこの時点で可視状態であるテーブルデータ型<table-type> の行データ型を記述します。

TYPE 参照による ABAP 命令

        以下を使用してローカルプログラムタイプを定義します。

TYPES <t> TYPE <type>.

これにより、新規データ型 <t> の型は <type> と同じになります。

        以下を使用してデータオブジェクトを宣言します。

DATA <f> TYPE <type>.

CLASS-DATA <f> TYPE <type>.

CONSTANTS <f> TYPE <type>.

STATICS <f> TYPE <type>.

PARAMETERS <f> TYPE <type>.

これにより、データオブジェクト <f> のデータ型は型 <type> と一致します。

        以下を使用してデータオブジェクトを動的に作成します。

CREATE DATA <dref> TYPE <type>.

        以下を使用して、サブルーチンで仮パラメータの型を指定します。

FORM <sub> ...USING|CHANGING <p> TYPE <type> ...

仮パラメータ <p> の技術属性は、宣言したデータ型 <type> の技術属性から継承されます。この場合、これらの属性を備えた実パラメータのみを受け渡すことができます。

        以下を使用して、メソッドで仮パラメータの型を指定します。

METHODS <meth> ...IMPORTING|EXPORTING|CHANGING <p> TYPE <type> ...

仮パラメータ <p> の技術属性は、宣言したデータ型 <type> の技術属性から継承されます。この場合、これらの属性を備えた実パラメータのみを受け渡すことができます。

        フィールドシンボルの型を指定します。

FIELD-SYMBOLS <fs> TYPE <type>.

フィールドシンボル <FS> の技術属性は、宣言したデータ型 <type> の技術属性から継承されます。この場合、これらの属性を備えた実パラメータのみを受け渡すことができます。

データ型の可視性

TYPE オプションによって既知のデータ型を参照するときは、データ型の可視性が重要です。

        組込 ABAP (CDFINPTX) は常に可視状態です。プログラムまたは ABAP ディクショナリでは、これらの組込データ型と同じ名称で型を宣言することはできません。

        プログラムのローカルデータ型の可視性については、プロシージャ内のローカルデータ型と、グローバルデータ型とを区別する必要があります。プロシージャで定義されたデータ型は、それと同じ名称でプログラムのグローバル宣言で宣言されている他のオブジェクトを非可視にします。プログラム内のすべてのローカルデータ型は、それと同じ名称で ABAP ディクショナリにあるデータ型を非可視にします。これはデータ型グループのデータ型にも当てはまります。

        ABAP ディクショナリでは、スタンドアロンデータ型と、データ型グループに保存されたデータ型に、それぞれ異なる可視性ルールが適用されます。データ型グループ内のデータ型は、それと同じ名称のスタンドアロンデータ型を非可視にします。ただし、これは 例外的な状況です。ABAP ディクショナリ内のすべてのデータ型は、同じ名称領域に所属する必要があります。スタンドアロンデータ型を作成するとき、その名称が、データ型グループ名の後にアンダースコアが続く書式で始まる場合、警告が表示されます。同様に、データ型グループを作成するとき、それと同じ名称の後にアンダースコアが続くスタンドアロンデータ型がすでにある場合は、そのデータ型グループを作成することはできません。

この図には、ローカルデータ型および ABAP ディクショナリデータ型の可視性が示されています。

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

検索は中から外へ行われます。プログラムで TYPE オプションによって TYPE1 を指定すると、プロシージャとメインプログラムの両方で ABAP ディクショナリ型が使用されます。プロシージャで TYPE2 を指定すると、プロシージャのローカル型が使用されます。ただし、メインプログラムで TYPE2 を指定すると、メインプログラムの型が使用されます。ABAP ディクショナリの TYPE2 は非可視になります。プロシージャまたはメインプログラムのいずれかで TYPE3 を指定すると、メインプログラムの型が使用されます。ABAP ディクショナリの TYPE3 は非可視になります。

新規データ型の作成

TYPE オプションを使用すると、TYPESDATACONSTANTSSTATICS の各命令でデータ型を新たに作成することができます。TYPES 命令では、プログラムのローカルデータ型を作成可能です。その他の命令では、新規データオブジェクトの属性を作成可能です。

TYPE オプションでは、以下の型コンストラクタを使用することができます。

        参照の場合

REF TO <class>|<interface>

        構造の場合

BEGIN OF <struct>.
   ...
END OF <struct>.

        テーブルの場合

<tabkind> OF <linetype> [WITH <key>]

これらのデータ型は、ABAP プログラムの実行時だけ存在します。

型指定時の汎用型の参照

ABAP 構文には、インタフェースパラメータおよびフィールドシンボルの型指定に使用可能な組込汎用型のセットがあります。汎用型は、FORMMETHODS 、および FIELD-SYMBOLS の各命令で、TYPE オプションの後にのみ使用することができます。 

型指定の汎用型

ANY

完全な汎用型

ANY TABLE

あらゆる内部テーブルの汎用テーブル

INDEX TABLE

線形索引のあるテーブルの汎用型

TABLE

STANDARD TABLE

線形索引のある未ソートテーブルの汎用型

SORTED TABLE

線形索引のあるソート済テーブルの汎用型

HASHED TABLE

ハッシュ管理されるテーブルの汎用テーブル

プログラムまたはデータオブジェクトでローカルデータ型を定義するために、これらの汎用型を使用することは できません。汎用型では、プロシージャに受け渡す項目のデータ型とフィールドシンボルのデータ型のみをチェックすることができます。

 

 

 

コンテンツフレーム終了