步骤1.右键包New > Other ABAP Repository Object,在搜索字段中输入database,在列表中选择Database table,然后选择Next。
在弹出的对话框中保留ZRAP_ATRAV_####作为名称,并填写Description,然后选择下一步
分配一个传输请求并选择完成,表格已创建,默认代码显示在新编辑器中。
将默认源代码替换为下方提供的代码片段,并将所有出现的####替换为你选择的后缀(编辑器会出现红色提示)
@EndUserText.label : 'Travel data' @AbapCatalog.enhancementCategory : #NOT_EXTENSIBLE @AbapCatalog.tableCategory : #TRANSPARENT @AbapCatalog.deliveryClass : #A @AbapCatalog.dataMaintenance : #RESTRICTED define table zrap_atrav_#### { key client : mandt not null; key travel_uuid : 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 : 'zrap_atrav_####.currency_code' booking_fee : /dmo/booking_fee; @Semantics.amount.currencyCode : 'zrap_atrav_####.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; local_last_changed_at : timestampl; }SQL语法简短说明:
- 使用了 ABAP 飞行参考场景中的一些数据元素(命名空间
/DMO/)。 - 表键由
CLIENT字段和TRAVEL_UUID字段组成,后者是一个技术键(16字节通用唯一识别码)。 - 一个人类可读的行程标识符:
TRAVEL_ID - 字段 CURRENCY_CODE 借助语义注释
@Semantics.amount.currencyCode被指定为金额字段BOOKING_FEE和TOTAL_PRICE的货币键 - 已定义一些标准管理字段:
CREATED_BY、CREATED_AT、LAST_CHANGED_BY、LAST_CHANGED_AT和LOCAL_LAST_CHANGED_AT
激活后按F8预览(没有的话右键->OPEN WITH ->Data Preview),目前数据库表是空的,所以没有显示任何数据。
根据上述同样的步骤创建一张数据库表ZRAP_ABOOK_KJ(其中####为你选择的后缀),用于存储预订数据SQL语句代码如下:
@EndUserText.label : 'TEST' @AbapCatalog.enhancement.category : #NOT_EXTENSIBLE @AbapCatalog.tableCategory : #TRANSPARENT @AbapCatalog.deliveryClass : #A @AbapCatalog.dataMaintenance : #RESTRICTED define table zrap_abook_kj { key client : mandt not null; key booking_uuid : sysuuid_x16 not null; travel_uuid : sysuuid_x16 not null; booking_id : /dmo/booking_id; booking_date : /dmo/booking_date; customer_id : /dmo/customer_id; carrier_id : /dmo/carrier_id; connection_id : /dmo/connection_id; flight_date : /dmo/flight_date; @Semantics.amount.currencyCode : 'zrap_abook_kj.currency_code' flight_price : /dmo/flight_price; currency_code : /dmo/currency_code; created_by : syuname; last_changed_by : syuname; local_last_changed_at : timestampl; }步骤2.用演示数据填充数据库表
创建一个类,核心代码如下:
METHOD if_oo_adt_classrun~main. " delete existing entries in the database table DELETE FROM zrap_atrav_####. DELETE FROM zrap_abook_####. " insert travel demo data INSERT zrap_atrav_#### FROM ( SELECT FROM /dmo/travel FIELDS uuid( ) AS travel_uuid , travel_id AS travel_id , agency_id AS agency_id , customer_id AS customer_id , begin_date AS begin_date , end_date AS end_date , booking_fee AS booking_fee , total_price AS total_price , currency_code AS currency_code , description AS description , CASE status WHEN 'B' THEN 'A' " accepted WHEN 'X' THEN 'X' " cancelled ELSE 'O' " open END AS overall_status , createdby AS created_by , createdat AS created_at , lastchangedby AS last_changed_by , lastchangedat AS last_changed_at , lastchangedat AS local_last_changed_at ORDER BY travel_id UP TO 200 ROWS ). COMMIT WORK. " insert booking demo data INSERT zrap_abook_#### FROM ( SELECT FROM /dmo/booking AS booking JOIN zrap_atrav_#### AS z ON booking~travel_id = z~travel_id FIELDS uuid( ) AS booking_uuid , z~travel_uuid AS travel_uuid , booking~booking_id AS booking_id , booking~booking_date AS booking_date , booking~customer_id AS customer_id , booking~carrier_id AS carrier_id , booking~connection_id AS connection_id , booking~flight_date AS flight_date , booking~flight_price AS flight_price , booking~currency_code AS currency_code , z~created_by AS created_by , z~last_changed_by AS last_changed_by , z~last_changed_at AS local_last_changed_by ). COMMIT WORK. out->write( 'Travel and booking demo data inserted.'). ENDMETHOD.保存激活后运行类程序
查看数据库表
本文讲了 ABAP 开发工具(ADT)应用程序创建数据库表。