記事ディレクトリ
概要
- ABAPパッケージの作成
- カスタマイズされたベーステーブル
- テストデータを下のテーブルに書き込む
- テストデータの表示
[0]規定
BTP Trail ユーザーアカウントを作成していない場合は、まずアカウントを申請し、Eclipse 経由で BTP に接続する必要があります。詳細については、「00 - RAP 開発環境の設定」を参照してください。
ブースター - Abap 環境 - 開始
- 資格が見つからないというエラーが表示された場合は、クリックしてサブアカウントを入力し、左側の「資格」をクリックします
- 「資格の構成」ボタンをクリックし、「サービスプランの追加」をクリックします。
- ABAP環境を追加する
- 次に、メインコンソールに戻って試してください
Eclipse のサービス キーをダウンロードして BTP に接続する
[1] 新パッケージ
プロジェクト - 新規 - ABAP パッケージ
ここに名前を付けたZTRAVEL_APP_10001
パッケージを作成します
PS パッケージをお気に入りパッケージに追加すると、簡単に検索できます
[2]テーブルの作成
パッケージ - 新規 - その他の ABAP リポジトリ オブジェクト
ここに名前を付けたZTRAVEL_10001
テーブルを作成します
テーブルの定義は次のとおりです。
@EndUserText.label : 'Database table for travel data 10001'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #RESTRICTED
define table ztravel_10001 {
key client : abap.clnt not null;
key mykey : sysuuid_x16 not null;
travel_id : /dmo/travel_id;
agency_id : /dmo/agency_id;
customer_id : /dmo/customer_id;
begin_date : /dmo/begin_date;
end_date : /dmo/end_date;
@Semantics.amount.currencyCode : 'ztravel_10001.currency_code'
booking_fee : /dmo/booking_fee;
@Semantics.amount.currencyCode : 'ztravel_10001.currency_code'
total_price : /dmo/total_price;
currency_code : /dmo/currency_code;
description : /dmo/description;
overall_status : /dmo/overall_status;
created_by : syuname;
created_at : timestampl;
last_changed_by : syuname;
last_changed_at : timestampl;
}
保存して有効化(ショートカットキーはGUI側と同じ「Ctrl+S、Ctrl+F3」)
[3] モックデータの挿入
Tableを作成したら、次はテストデータをいくつか書きますが、ここではクラスを構築して書きます。
パッケージ - 新規 - ABAP クラス
zcl_generate_travel_data_10001
次のコードを使用して、ここに名前を付けたクラスを作成します。
CLASS zcl_generate_travel_data_10001 DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_generate_travel_data_10001 IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
DATA itab TYPE TABLE OF ztravel_10001.
* fill internal travel table (itab)
itab = VALUE #(
( mykey = '02D5290E594C1EDA93815057FD946624' travel_id = '00000022' agency_id = '070001' customer_id = '000077' begin_date = '20190624' end_date = '20190628' booking_fee = '60.00' total_price = '750.00' currency_code = 'USD'
description = 'mv' overall_status = 'A' created_by = 'MUSTERMANN' created_at = '20190612133945.5960060' last_changed_by = 'MUSTERFRAU' last_changed_at = '20190702105400.3647680' )
( mykey = '02D5290E594C1EDA93815C50CD7AE62A' travel_id = '00000106' agency_id = '070005' customer_id = '000005' begin_date = '20190613' end_date = '20190716' booking_fee = '17.00' total_price = '650.00' currency_code = 'AFN'
description = 'Enter your comments here' overall_status = 'A' created_by = 'MUSTERMANN' created_at = '20190613111129.2391370' last_changed_by = 'MUSTERMANN' last_changed_at = '20190711140753.1472620' )
( mykey = '02D5290E594C1EDA93858EED2DA2EB0B' travel_id = '00000103' agency_id = '070010' customer_id = '000011' begin_date = '20190610' end_date = '20190714' booking_fee = '17.00' total_price = '800.00' currency_code = 'AFN'
description = 'Enter your comments here' overall_status = 'X' created_by = 'MUSTERFRAU' created_at = '20190613105654.4296640' last_changed_by = 'MUSTERFRAU' last_changed_at = '20190613111041.2251330' )
).
* delete existing entries in the database table
DELETE FROM ztravel_10001.
* insert the new table entries
INSERT ztravel_10001 FROM TABLE @itab.
* output the result as a console message
out->write( |{ sy-dbcnt } travel entries inserted successfully!| ).
ENDMETHOD.
ENDCLASS.
Ctrl + F3 で起動、F9 でデータ書き込みを実行
[4] データの確認
[テーブル] タブに切り替えて F8 を実行すると、一番下のテーブル データが表示されます。
この時点で、カスタマイズされたベーステーブルが完成します。