SAP Knowledge Wiki
ABAP/CREATE DATA
の編集
Top
/
ABAP
/
CREATE DATA
-- 雛形とするページ --
(no template pages)
データ型を作る[[ABAP]]命令。 * 概要 [#pd54c689] データ型を作る。 ここに価値を見出すとしたら、汎用性しかない。 つまり、データ型には依存するものの同じような処理を行う場合に「ソースをコピペして一部だけ手直しする」という知性のかけらもない行為をしたくない場合に利用する。 つまり、コピペしまくって「5kのプログラム書いたよ!大変だったよ!」なんていう手合いには縁のない命令である。 * オプション [#i7295b2b] ** CREATE DATA xxx (データ型) [#lae1bbc1] *** 用法 [#a992fa7a] *** サンプル [#a9eb593d] 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データ型) [#r130bdc8] *** 用法 [#p06d280f] [[DESCRIBE>ABAP/DESCRIBE]]を併用するとええかも。 *** サンプル [#da760729] 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 (データオブジェクト) [#udd660d2] *** 用法 [#q721d551] 下記は、[[レンジテーブル>ABAP/レンジテーブル]]への動的セット例。 *** サンプル [#x42ed186] 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) [#fcbb0538] *** 用法 [#y010c877] *** サンプル [#p78472c4] ** CREATE DATA xxx TYPE REF TO yyy [#k51d551b] *** 用法 [#lff76242] *** サンプル [#f2d6b953] ** CREATE DATA xxx TYPE TABLE OF (Table), LIKE TABLE OF (Data Object) [#d81df9d2] *** 用法 [#u486fded] [[内部テーブル>ABAP/内部テーブル]]を動的に作るとき。 [[SE16>SAPの共通用語/データブラウザ]]みたいなこともできて、[[汎用モジュール>SAPのオブジェクト/汎用モジュール]]GUI_DOWNLOADと併用すれば落とせる。 *** サンプル [#e53a80f8] 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 [#dce5545d] *** 用法 [#vc97a2d0] *** サンプル [#rf118e84] ~ ~ CENTER:【スポンサードリンク】 #htmlinsert(amazon_book_sap_system_implement) ~ ~ ---- #pcomment(reply)
タイムスタンプを変更しない
データ型を作る[[ABAP]]命令。 * 概要 [#pd54c689] データ型を作る。 ここに価値を見出すとしたら、汎用性しかない。 つまり、データ型には依存するものの同じような処理を行う場合に「ソースをコピペして一部だけ手直しする」という知性のかけらもない行為をしたくない場合に利用する。 つまり、コピペしまくって「5kのプログラム書いたよ!大変だったよ!」なんていう手合いには縁のない命令である。 * オプション [#i7295b2b] ** CREATE DATA xxx (データ型) [#lae1bbc1] *** 用法 [#a992fa7a] *** サンプル [#a9eb593d] 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データ型) [#r130bdc8] *** 用法 [#p06d280f] [[DESCRIBE>ABAP/DESCRIBE]]を併用するとええかも。 *** サンプル [#da760729] 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 (データオブジェクト) [#udd660d2] *** 用法 [#q721d551] 下記は、[[レンジテーブル>ABAP/レンジテーブル]]への動的セット例。 *** サンプル [#x42ed186] 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) [#fcbb0538] *** 用法 [#y010c877] *** サンプル [#p78472c4] ** CREATE DATA xxx TYPE REF TO yyy [#k51d551b] *** 用法 [#lff76242] *** サンプル [#f2d6b953] ** CREATE DATA xxx TYPE TABLE OF (Table), LIKE TABLE OF (Data Object) [#d81df9d2] *** 用法 [#u486fded] [[内部テーブル>ABAP/内部テーブル]]を動的に作るとき。 [[SE16>SAPの共通用語/データブラウザ]]みたいなこともできて、[[汎用モジュール>SAPのオブジェクト/汎用モジュール]]GUI_DOWNLOADと併用すれば落とせる。 *** サンプル [#e53a80f8] 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 [#dce5545d] *** 用法 [#vc97a2d0] *** サンプル [#rf118e84] ~ ~ CENTER:【スポンサードリンク】 #htmlinsert(amazon_book_sap_system_implement) ~ ~ ---- #pcomment(reply)
テキスト整形のルールを表示する