Criando Request via ABAP
📘 Introdução
Em ambientes SAP, as Requests de Transporte (ou Ordens de Transporte) são essenciais para gerenciar alterações e transportar objetos entre sistemas (ex: DEV → QAS → PRD).
Embora normalmente as requests sejam criadas manualmente pela SE10 ou SE09, é possível automatizar esse processo via ABAP, usando funções padrão do sistema.
Neste artigo, veremos como:
- Criar uma Request de Transporte com tarefa associada.
- Adicionar objetos manualmente à request criada.
⚙️ 1. Criando uma Request com Tarefas — Função TR_INSERT_REQUEST_WITH_TASKS
A função TR_INSERT_REQUEST_WITH_TASKS é responsável por criar uma nova request no sistema, com uma ou mais tarefas associadas automaticamente.
DATA: lv_request TYPE trkorr,
lv_text TYPE as4text VALUE 'Criação automática via ABAP',
lv_owner TYPE sy-uname.
DATA: ls_header TYPE trwbo_request_header.
CALL FUNCTION 'TR_INSERT_REQUEST_WITH_TASKS'
EXPORTING
iv_type = 'T' " T - Copia | K - Workbench | W - Customizing
iv_text = lv_text
iv_owner = sy-uname
iv_target = 'S4T'
IMPORTING
es_request_header = ls_header
EXCEPTIONS
insert_failed = 1
enqueue_failed = 2
OTHERS = 3.
IF ls_header IS NOT INITIAL.
WRITE: / 'Request criada com sucesso:', ls_header-trkorr.
ELSE.
WRITE: / 'Erro ao criar request. Código:', sy-subrc.
ENDIF.🧱 2. Adicionando Objetos à Request — Função TR_REQUEST_CHOICE
Depois de criada, podemos adicionar objetos ABAP (programas, tabelas, views, etc.) manualmente à request, utilizando a função TR_REQUEST_CHOICE.
"--- Chama a função para associar os objetos à request
CALL FUNCTION 'TR_REQUEST_CHOICE'
EXPORTING
wi_order = lv_request
TABLES
wt_e071 = lt_e071
it_e071k = lt_e071k
EXCEPTIONS
cancel = 1
OTHERS = 2. 