ABAP 批量复制domain BDC 模式

该ABAP报告用于从指定的数据域中提取名称,并使用特定前缀创建新名称。它涉及多个事务代码,如SAPLSD_ENTRY,SAPLSDYY,SAPLSTRD,用于执行复制操作,并在SE11中进行后续编辑。程序参数包括源数据域名、前缀、包和事务参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*&---------------------------------------------------------------------*
*& Report ZTEST_COPY_DOMAIN
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ztest_copy_domain.

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_domna      TYPE char30."取数
PARAMETERS:p_dom_n      TYPE char30."前缀
PARAMETERS:p_pack       TYPE char30."包
PARAMETERS:p_tr         TYPE trkorr."TR


START-OF-SELECTION.

  DATA:lv_sql TYPE string.
  DATA:lv_domname_new TYPE char30.
  lv_sql = p_domna && '%'.
  SELECT domname
  FROM dd01l
  INTO TABLE @DATA(lt_dd01l)
  WHERE domname LIKE @lv_sql.

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

    lv_domname_new = p_dom_n && <ls_dd01l>-domname.

    CLEAR bdcdata[].
    CLEAR messtab[].

    PERFORM bdc_dynpro      USING 'SAPLSD_ENTRY' '1000'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'RSRD1-DOMA_VAL'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=WB_COPY'.
    PERFORM bdc_field       USING 'RSRD1-DOMA'
                                  abap_true.
    PERFORM bdc_field       USING 'RSRD1-DOMA_VAL'
                                  <ls_dd01l>-domname.
    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>-domname.
    PERFORM bdc_field       USING '*RSEDD0-DDOBJNAME'
                                  lv_domname_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.

 自用小工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值