Como inserir objetos em request via programa
Neste post trago um exemplo de como salvar linhas de tabelas em uma request via programa. Apesar do código estar salvando linhas da RBKP o código pode ser útil para gravar registros de configuração customizadas que devem ser ser transportados ao invés de configurados diretamente no ambiente produtivo.
Observação: a função TR_ORDER_CHOICE_CORRECTION abre um popup pedindo ao usuário que informe a request. Neste caso deve ser indicada uma request de workbench.
DATA: wl_rbkp TYPE rbkp,
vl_position TYPE ddposition,
tl_e071 TYPE tr_objects,
tl_e071k TYPE TABLE OF e071k,
el_e071 TYPE e071.
FIELD-SYMBOLS: <fl_e071k> TYPE e071k.
LOOP AT tg_rbkp INTO wl_rbkp.
APPEND INITIAL LINE TO tl_e071k ASSIGNING <fl_e071k>.
ADD 1 TO vl_position.
<fl_e071k>-pgmid = 'R3TR'.
<fl_e071k>-object = 'TABU'.
<fl_e071k>-objname = 'RBKP'.
<fl_e071k>-as4pos = vl_position.
<fl_e071k>-mastertype = 'TABU'.
<fl_e071k>-mastername = 'RBKP'.
CONCATENATE sy-mandt
wl_rbkp-belnr
wl_rbkp-gjahr
INTO <fl_e071k>-tabkey RESPECTING BLANKS.
ENDLOOP.
REFRESH: tl_e071.
el_e071-pgmid = 'R3TR'.
el_e071-object = 'TABU'.
el_e071-obj_name = 'RBKP'.
el_e071-objfunc = 'K'.
APPEND el_e071 TO tl_e071.
CLEAR el_e071.
CALL FUNCTION 'TR_ORDER_CHOICE_CORRECTION'
EXPORTING
iv_category = 'SYST'
IMPORTING
ev_order = vg_request
ev_task = vg_task
EXCEPTIONS
OTHERS = 3.
IF sy-subrc IS NOT INITIAL.
EXIT.
ENDIF.
CALL FUNCTION 'TR_APPEND_TO_COMM_OBJS_KEYS'
EXPORTING
wi_simulation = ' '
wi_suppress_key_check = ' '
wi_trkorr = vg_task
TABLES
wt_e071 = tl_e071
wt_e071k = tl_e071k
EXCEPTIONS
OTHERS = 68.
IF sy-subrc IS NOT INITIAL.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Comentários
Postar um comentário