ABAP 批量Copy Table Type

*&---------------------------------------------------------------------*
*& Report ZTEST_COPY_TABLE_TYPE
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ztest_copy_table_type.

DATA:   bdcdata LIKE bdcdata    OCCURS 0 WITH HEADER LINE.
*       messages of call transaction
DATA:   messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
*       error session opened (' ' or 'X')
DATA:   e_group_opened.


PARAMETERS:p_stru       TYPE char30."取数
PARAMETERS:p_stru_n     TYPE char30."前缀
PARAMETERS:p_pack       TYPE char30."包
PARAMETERS:p_tr         TYPE trkorr."TR


START-OF-SELECTION.

  DATA:lv_sql TYPE string.
  DATA:lv_tabname_new TYPE char30.
  lv_sql = p_stru && '%'.
  SELECT typename
  FROM dd40l "Table Type
  INTO TABLE @DATA(lt_dd01l)
  WHERE typename LIKE @lv_sql
  AND   as4local EQ 'A'.

  LOOP AT lt_dd01l  ASSIGNING FIELD-SYMBOL(<ls_dd01l>).

    lv_tabname_new = p_stru_n && <ls_dd01l>-typename.

    CLEAR bdcdata[].
    CLEAR messtab[].

    PERFORM bdc_dynpro      USING 'SAPLSD_ENTRY' '1000'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'RSRD1-DDTYPE_VAL'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=WB_COPY'.
    PERFORM bdc_field       USING 'RSRD1-DDTYPE'
                                  abap_true.
    PERFORM bdc_field       USING 'RSRD1-DDTYPE_VAL'
                                  <ls_dd01l>-typename.
    PERFORM bdc_dynpro      USING 'SAPLSDYY' '0120'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  '*RSEDD0-DDOBJNAME'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=GOON'.
    PERFORM bdc_field       USING 'RSEDD0-DDOBJNAME'
                                  <ls_dd01l>-typename.
    PERFORM bdc_field       USING '*RSEDD0-DDOBJNAME'
                                  lv_tabname_new.
    PERFORM bdc_dynpro      USING 'SAPLSTRD' '0100'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'KO007-L_DEVCLASS'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=ADD'.
    PERFORM bdc_field       USING 'KO007-L_DEVCLASS'
                                  p_pack.
    PERFORM bdc_field       USING 'KO007-L_AUTHOR'
                                  sy-uname.
    PERFORM bdc_dynpro      USING 'SAPLSTRD' '0300'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'KO008-TRKORR'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=LOCK'.
    PERFORM bdc_field       USING 'KO008-TRKORR'
                                  p_tr.
    BREAK-POINT.
    CALL TRANSACTION 'SE11'
             USING bdcdata[] MODE 'N' MESSAGES INTO messtab.

  ENDLOOP.



  COMMIT WORK AND WAIT.



FORM bdc_field USING fnam fval.
  IF fval <> ''.
    CLEAR bdcdata.
    bdcdata-fnam = fnam.
    bdcdata-fval = fval.
    APPEND bdcdata.
  ENDIF.
ENDFORM.

FORM bdc_dynpro USING program dynpro.
  CLEAR bdcdata.
  bdcdata-program  = program.
  bdcdata-dynpro   = dynpro.
  bdcdata-dynbegin = 'X'.
  APPEND bdcdata.
ENDFORM.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值