*&---------------------------------------------------------------------*
*& Report ZTEST_COPY_DOMAIN
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ztest_copy_structure.
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 tabname
FROM dd02l "结构表
INTO TABLE @DATA(lt_dd01l)
WHERE tabname LIKE @lv_sql
AND as4local EQ 'A'
AND tabclass EQ 'INTTAB'.
LOOP AT lt_dd01l ASSIGNING FIELD-SYMBOL(<ls_dd01l>).
lv_tabname_new = p_stru_n && <ls_dd01l>-tabname.
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>-tabname.
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>-tabname.
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.
ABAP 批量COPY 结构
于 2023-07-14 13:52:59 首次发布