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

Postagens mais visitadas deste blog

Incluir arquivo em DMS já existente

Esconder elementos de Tela