ABAP/CREATE DATA
Last-modified: 2016-01-29 (金) 12:46:38 (3003d)
データ型を作るABAP命令。
概要 †
データ型を作る。
ここに価値を見出すとしたら、汎用性しかない。
つまり、データ型には依存するものの同じような処理を行う場合に「ソースをコピペして一部だけ手直しする」という知性のかけらもない行為をしたくない場合に利用する。
つまり、コピペしまくって「5kのプログラム書いたよ!大変だったよ!」なんていう手合いには縁のない命令である。
オプション †
CREATE DATA xxx (データ型) †
用法 †
サンプル †
TYPES : T_TABLE_ORFER TYPE TABLE OF VBAK. DATA : REF_ORDER TYPE REF TO T_TABLE_ORDER. CREATE DATA REF_ORDER. LOOP AT REF_ORDER->*. WRITE / REF_ORDER->*. ENDLOOP.
CREATE DATA xxx TYPE (ABAPデータ型) †
用法 †
DESCRIBEを併用するとええかも。
サンプル †
DATA : L_DATA TYPE REF TO DATA. CREATE DATA L_DATA TYPE C LENGTH L_FIELD_LENGTH. CREATE DATA L_DATA TYPE P LENGTH L_FIELD_LENGTH DECIMALS L_DECIMAL_LENGTH.
CREATE DATA xxx TYPE (テーブル項目)、CREATE DATA xxx LIKE (データオブジェクト) †
用法 †
下記は、レンジテーブルへの動的セット例。
サンプル †
FORM F_FUNC_SET_RANGE_TABLE TABLES E_RANGE USING I_SIGN TYPE ANY I_OPTION TYPE ANY I_LOW TYPE ANY I_HIGH TYPE ANY. DATA : L_DATA TYPE REF TO DATA, L_COUNTER TYPE I. FIELD-SYMBOLS : <F_RANGE> TYPE ANY, <F_FIELD> TYPE ANY. * レンジテーブルの型を取得し、構造へアサイン CREATE DATA L_DATA LIKE LINE OF E_RANGE. ASSIGN L_DATA->* TO <F_RANGE>. * 失敗時は抜ける IF ( SY-SUBRC <> 0 ). EXIT. ENDIF. * 構造の終わりまでループ DO. * カウンタのインクリメント L_COUNTER = L_COUNTER + 1. * 構造の項目を順次アサイン ASSIGN COMPONENT L_COUNTER OF STRUCTURE <F_RANGE> TO <F_FIELD>. * 項目の順序ごとに引数を転記 CASE L_COUNTER. WHEN 1. <F_FIELD> = I_SIGN. WHEN 2. <F_FIELD> = I_OPTION. WHEN 3. <F_FIELD> = I_LOW. WHEN 4. <F_FIELD> = I_HIGH. * ※レンジテーブル以外が引数の場合も抜ける WHEN OTHERS. EXIT. ENDCASE. ENDDO. ENDFORM.
CREATE DATA TYPE HANDLE (Handler) †
用法 †
サンプル †
CREATE DATA xxx TYPE REF TO yyy †
用法 †
サンプル †
CREATE DATA xxx TYPE TABLE OF (Table), LIKE TABLE OF (Data Object) †
用法 †
内部テーブルを動的に作るとき。
SE16みたいなこともできて、汎用モジュールGUI_DOWNLOADと併用すれば落とせる。
サンプル †
PARAMETERS : P_TABNAME TYPE DD02L-TABNAME. DATA : L_DATA TYPE REF TO DATA. FIELD-SYMBOLS : <F_INTERNAL_TABLE> TYPE ANY TABLE. CREATE DATA L_DATA TYPE STANDARD TABLE OF (P_TABNAME). ASSIGN L_DATA->* TO <F_INTERNAL_TABNAME>. SELECT * FROM P_TABNAME INTO TABLE <F_INTERNAL_TABNAME>.
CREATE DATA xxx AREA HANDLE yyy †
用法 †
サンプル †
【スポンサードリンク】
コメントはありません。 Comments/ABAP/CREATE DATA?