Однако, со старыми ФМниками нужно осторожнее работать.
Курсы валют хотели загружать, через PI\PO, так как централизованно ведутся в MDM, а ERP на общем типе валют ведёт свои z-пересчёты.
Стандартное решение - BAPI_EXCHANGERATE_CREATE/BAPI_EXCHRATE_CREATEMULTIPLE. Особенность в том, что руками эти ФМ не протестировать, так как нужен commit после вызова.
Пример кода, чтобы не забыть:
DATA: exch_rate LIKE bapi1093_0 OCCURS 1 WITH HEADER LINE,
rettab LIKE bapiret2 OCCURS 1 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_return) WITH KEY type = 'E'.
IF sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ENDIF.
cl_demo_output=>display( rettab ).
Курсы валют хотели загружать, через PI\PO, так как централизованно ведутся в MDM, а ERP на общем типе валют ведёт свои z-пересчёты.
Стандартное решение - BAPI_EXCHANGERATE_CREATE/BAPI_EXCHRATE_CREATEMULTIPLE. Особенность в том, что руками эти ФМ не протестировать, так как нужен commit после вызова.
Пример кода, чтобы не забыть:
DATA: exch_rate LIKE bapi1093_0 OCCURS 1 WITH HEADER LINE,
rettab LIKE bapiret2 OCCURS 1 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_return) WITH KEY type = 'E'.
IF sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ENDIF.
cl_demo_output=>display( rettab ).
Комментариев нет:
Отправить комментарий