选中 ABAP 包,右键创建一个新的 Database Table:
维护表名为 ZBOOKING:
表实现的源代码:
@EndUserText.label : 'Jerry''s booking'
@AbapCatalog.enhancementCategory : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #LIMITED
define table zbooking {
key client : abap.clnt not null;
key booking : abap.int4 not null;
customername : abap.char(50);
numberofpassengers : abap.int2;
emailaddress : abap.char(50);
country : abap.char(50);
dateofbooking : timestampl;
dateoftravel : timestampl;
@Semantics.amount.currencyCode : 'zbooking.currencycode'
cost : abap.curr(15,2);
currencycode : abap.cuky;
lastchangedat : timestampl;
}
激活:
下一步,创建一个 ABAP 类,以代码的方式往 Z 表里插入数据。
这个 ABAP 类要实现 if_oo_adt_classrun 接口,类似 Java 里的 console 应用:
完整代码:
CLASS zcl_data_generator DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_data_generator IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
DATA:it_bookings TYPE TABLE OF zbooking.
* read current timestamp
GET TIME STAMP FIELD DATA(zv_tsl).
* fill internal table (itab)
it_bookings = VALUE #(
( booking = '1' customername = 'Jerry' numberofpassengers = '3'
emailaddress = 'jerry@sap.com'
country = 'China' dateofbooking ='20190213125959' dateoftravel ='20190213125959'
cost = '546' currencycode = 'EUR' )
( booking = '2' customername = 'Tom' numberofpassengers = '1'
emailaddress = 'tom@sap.com'
country = 'USA' dateofbooking ='20190313125959' dateoftravel ='20190313125959' cost = '1373' currencycode = 'USD' lastchangedat = zv_tsl )
).
DELETE FROM zbooking.
INSERT zbooking FROM TABLE @it_bookings.
SELECT * FROM zbooking INTO TABLE @it_bookings.
out->write(sy-dbcnt).
out->write('data inserted successfully!').
ENDMETHOD.
ENDCLASS.
执行这个 console 应用:
成功插入两条数据:
选中 Z 表,选择 Open with Data Preview:
看到了成功插入的两条数据:
要获取更多 Jerry 的原创文章,请关注公众号 ” 汪子熙 ”: