У меня есть код для запроса транспорта, и проблема в том, что он создает новый объект (насколько я понимаю) каждый раз, когда я нажимаю кнопку добавления к транзакции.
Код:
data lt_variable_changed type table of ztr_req .
data:
lf_e071 type e071,
lf_e071k type e071k,
lt_e071 type table of e071,
lt_e071k type table of e071k.
"before adding to transort request check for transport query
if var_query is not initial.
clear lt_variable_changed.
call method grid->get_selected_rows " get index of row
importing
et_index_rows = lt_rows.
if lt_rows is not initial.
loop at lt_rows into ls_row.
read table lt_variable index ls_row into ls_variable.
append ls_variable to lt_variable_changed.
endloop.
lf_ev_order = 'EASK900417'. " Selected request
lf_ev_task = var_query. " Selected Task
call function 'TR_ORDER_CHOICE_CORRECTION'
exporting
iv_category = 'SYST'
importing
ev_order = lf_ev_order " Selected request EASK900415
ev_task = lf_ev_task " Selected Task EASK900416
exceptions
invalid_category = 1
no_correction_selected = 2
others = 3.
if sy-subrc <> 0.
exit.
endif.
lf_e071-pgmid = 'R3TR'.
lf_e071-object = 'TABU'.
lf_e071-obj_name = 'ZTR_REQ'.
lf_e071-objfunc = 'K'.
lf_e071-lang = sy-langu.
append lf_e071 to lt_e071.
"add all table entries in table zxa_header that need to be transported to lt_e071k
loop at lt_variable_changed into ls_variable.
lf_e071k-pgmid = 'R3TR'.
lf_e071k-object = 'TABU'.
lf_e071k-objname = 'ZTR_REQ'.
lf_e071k-mastertype = 'TABU'.
lf_e071k-mastername = 'ZTR_REQ'.
lf_e071k-lang = sy-langu.
lf_e071k-tabkey = |{ sy-mandt }{ ls_variable-num }|.
append lf_e071k to lt_e071k.
clear lf_e071k.
endloop.
call function 'TR_APPEND_TO_COMM_OBJS_KEYS'
exporting
wi_trkorr = lf_ev_task
tables
wt_e071 = lt_e071
wt_e071k = lt_e071k
exceptions
others = 68.
endif.
endif.
в итоге 1 раз показывает (я выбрал 2 строчку добавить в задачу):
в результате 2 раза мне показывает(выбрал 3 строчку добавить в задачу):
Как вы можете видеть, он создает второй объект + добавляет 3 строки, которые я хочу добавить к задаче в первом объекте.
Пожалуйста, объясните мне, как я могу сделать это в 1 объекте программным способом (я знаю о сортировке и сжатии в se01).
Большое спасибо за любую информацию и удачи!