­

如何在SAP云平台ABAP编程环境里创建自己的Z表

  • 2019 年 10 月 8 日
  • 筆記

选中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:

看到了成功插入的两条数据: