среда, 8 октября 2014 г.

Ручная delta

Возникла ситуация. Был жуткий Z на стороне ERP работа которого никак не отражалась на дельте. Качать же фулом не вариант, делать z-table с изменениями - тоже моветон, их и так много.

Нашел модуль  RSC1_TRFC_QUEUE_WRITE и даже how to к нему.

Не стал так жестко всё делать как в how to. Так, написал маленькую тестовую программу.
Сначала она не взлетела... но после добавления COMMIT WORK дельта заработала на ура.
В общем тема рабочая, можно пользовать. Работает и с стандартными экстраторами и Z. Но вся ответственность за заполнение данными на Вас :)

DATA:
      l_subrc TYPE sy-subrc,
      i_t_data TYPE STANDARD TABLE OF MC11VA0HDR.

FIELD-SYMBOLS:
     TYPE STANDARD TABLE.

SELECT *
  INTO CORRESPONDING FIELDS OF TABLE i_t_data
  from VBAK
  where VBELN '0000000007'.

ASSIGN i_t_data to .

IF i_t_data IS NOT INITIAL.

CALL FUNCTION 'RSC1_TRFC_QUEUE_WRITE'
  EXPORTING
    I_ISOURCE           '2LIS_11_VAHDR'
    I_STRUCTURE         'MC11VA0HDR'

    I_NO_FLUSH          'X' "SBIW_C_FALSE
 IMPORTING
   E_SUBRC             l_subrc
 TABLES
   I_T_DATA            
*   E_T_CALLID          =
 EXCEPTIONS
   NAME_TOO_LONG       1
   OTHERS              2
          .

IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDIF.

COMMIT WORK


p.s. не в данную тему, но тоже полезно для изучения - дельта мастер-данных

Комментариев нет: