понедельник, 17 сентября 2018 г.

BAPI_EXCHANGERATE_CREATE/BAPI_EXCHRATE_CREATEMULTIPLE. Ошибка E! 005

Однако, со старыми ФМниками нужно осторожнее работать.

Курсы валют хотели загружать, через PI\PO, так как централизованно ведутся в MDM, а ERP на общем типе валют ведёт свои z-пересчёты.

Стандартное решение - BAPI_EXCHANGERATE_CREATE/BAPI_EXCHRATE_CREATEMULTIPLE. Особенность в том, что руками эти ФМ не протестировать, так как нужен commit после вызова.


Пример кода, чтобы не забыть:

DATAexch_rate LIKE bapi1093_0   OCCURS WITH HEADER LINE,
      rettab    LIKE bapiret2   OCCURS WITH HEADER LINE.

exch_rate-rate_type   'M'.
exch_rate-from_curr   'USD'.
exch_rate-to_currncy  'RUB'.
exch_rate-valid_from  '20180918'.
exch_rate-exch_rate   '66'.
exch_rate-from_factor 1.
exch_rate-to_factor   1.

CALL FUNCTION 'BAPI_EXCHANGERATE_CREATE'
  EXPORTING
    exch_rate exch_rate
*   UPD_ALLOW = ' '
*   CHG_FIXED = ' '
*   DEV_ALLOW = '000'
  IMPORTING
    return    rettab
*   RATE_TYPE =
*   FROM_CURR =
*   TO_CURRNCY       =
  .

READ TABLE rettab INTO DATA(ls_returnWITH KEY type 'E'.
IF sy-subrc 0.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ENDIF.

cl_demo_output=>displayrettab ).

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

Отправить комментарий