- FUNÇÃO
FUNCTION ZFM_TESTE_INVOICE_CREATE
IMPORTING
VALUE(is_header) TYPE bapi_incinv_create_header
VALUE(it_tm) TYPE tb_bapi_incinv_create_tm_item
VALUE(it_item) TYPE tab_bapi_incinv_create_item
EXPORTING
VALUE(ev_invoicenumber) TYPE rbkp-belnr
VALUE(ev_fiscalyear) TYPE rbkp-gjahr
VALUE(et_return) TYPE bapiret2_t.
CLEAR: ev_invoicenumber, ev_fiscalyear.
CLEAR et_return.
CALL FUNCTION 'BAPI_INCOMINGINVOICE_CREATE1'
EXPORTING
headerdata = is_header
IMPORTING
invoicedocnumber = ev_invoicenumber
fiscalyear = ev_fiscalyear
TABLES
itemdata = it_item
return = et_return
tm_itemdata = it_tm.
IF ev_invoicenumber IS NOT INITIAL.
et_return = VALUE #( ( type = 'S' id = 'ZMM_DRC' number = '000' message_v1 = 'Faturamento criado com sucesso.' ) ).
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = abap_true.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.
ENDFUNCTION.
==== Chamada da função
CALL FUNCTION 'ZFM_TESTE_INVOICE_CREATE' STARTING NEW TASK 'Z_TESTE_INV'
CALLING zcl_teste_inv=>get_bapi_return ON END OF TASK
EXPORTING
is_header = ls_header
it_tm = lt_tm
it_item = lt_item.
WAIT FOR ASYNCHRONOUS TASKS UNTIL gt_return[] is not initial.
==== Método CALL BACK
CLASS-METHOD: get_bapi_return IMPORTING VALUE(p_task) TYPE clike,
METHOD get_bapi_return.
RECEIVE RESULTS FROM FUNCTION 'ZFM_TESTE_INVOICE_CREATE'
IMPORTING
et_return = gt_return
ev_invoicenumber = gs_bapi_miro_ret-invoicedocnumber
ev_fiscalyear = gs_bapi_miro_ret-fiscalyear
EXCEPTIONS
communication_failure = 1
system_failure = 2.
ENDMETHOD.
Nenhum comentário:
Postar um comentário