Сохранение данных таблицы в запрос настройки

добавлено: 10 авг 18
понравилось:0
просмотров: 651
комментов: 0

теги:

Автор: Изя Шниперсон

Друзья, хочу опубликовать код, позволяющий сохранять записи таблицы словаря в транспортный запрос настройки для переноса в другие системы на примере небольшой подпрограммы:
FORM PUT_TO_TRANSPORT TABLES lt_wanid TYPE tty_wanid.

  DATA: l_order LIKE e070-trkorr,
            l_task  LIKE e070-trkorr.

 "Внутренние таблицы с ключами строк таблицы словаря, помещаемыми в запрос
  DATA: lt_e071  TYPE e071  OCCURS 4  WITH HEADER LINE,
            lt_e071k TYPE e071k OCCURS 25 WITH HEADER LINE.
  DATA: lv_wanid type wanid,
            ls_tvwa type tvwa.
  ranges: lr_wanid for tvwa-wanid.
* >>> Формирование данных для включения записей в транспортный запрос -&
  DEFINE mac__add_table. "Макрос для заполнения 
    clear lt_e071.
    lt_e071-pgmid    = 'R3TR'.
    lt_e071-object   = 'TABU'.
    lt_e071-obj_name = &1.
    lt_e071-objfunc  = 'K'.
    append lt_e071.
    lt_e071k-pgmid      = 'R3TR'.
    lt_e071k-object     = 'TABU'.
    lt_e071k-objname    = &1.
    lt_e071k-mastertype = 'TABU'.
    lt_e071k-mastername = &1.
    lt_e071k-tabkey    = sy-mandt. "Первая часть ключа у таблиц - мандант
    case &1.
      when 'TVWA'.  " В запрос помещается содержимое 2х таблиц TVWA и TVWAТ
        lt_e071k-tabkey+3  = lv_wanid. "Вторая часть ключа для таблицы  TVWA
     when 'TVWAT'.
        lt_e071k-tabkey+3 =  sy-langu. "Вторая часть ключа для таблицы  TVWAT - язык
        lt_e071k-tabkey+4  = lv_wanid. "Третья часть ключа для таблицы  TVWAT 
    endcase.
    append lt_e071k.
  END-OF-DEFINITION.
* <<< -----------------------------------------------------------------*
  loop at lt_wanid into lv_wanid.
    select SINGLE * from tvwa into ls_tvwa WHERE wanid = lv_wanid.
    
* Формирование данных присвоения
    mac__add_table: 'TVWA',
                    'TVWAT'.

  endloop.
  if lt_e071[] is NOT INITIAL and lt_e071k[] is NOT INITIAL.
* Выбор запроса на перенос (запрос инструментальных средств)
    CALL FUNCTION 'TR_ORDER_CHOICE_CORRECTION'
      EXPORTING
        iv_category = 'SYST'                                "#EC NOTEXT
      IMPORTING
        ev_order    = l_order
        ev_task     = l_task
      EXCEPTIONS
        OTHERS      = 1.
    IF sy-subrc <> 0.
      exit.
    ENDIF.
* Присвоение данных запросу
    CALL FUNCTION 'TR_APPEND_TO_COMM_OBJS_KEYS'
      EXPORTING
        wi_trkorr = l_task
      TABLES
        wt_e071   = lt_e071
        wt_e071k  = lt_e071k
      EXCEPTIONS
        OTHERS    = 1.
    IF sy-subrc <> 0.
*   MSG: ошибка присвоения данных запросу
    ENDIF.
  endif.

ENDFORM.                    " PUT_TO_TRANSPORT

Комментарии




Необходимо войти на сайт, чтобы оставлять комментарии