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

80次阅读

共计 1673 个字符,预计需要花费 5 分钟才能阅读完成。

选中 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 的原创文章,请关注公众号 ” 汪子熙 ”:

正文完
 0