adesso business consulting Stellenangebote
Software Engineer Trainee · Senior
| (Senior) Cloud Software Engineer BTP | Senior Frontend Software Engineer SAP BTP
| (Senior) Consultant Technologie
Werkstudent Softwareentwicklung · Consulting
Muster für ZIDoc EingangsverarbeitungsFuBa: Unterschied zwischen den Versionen
Aus SAP Wiki ツ
Die Seite wurde neu angelegt: „Kategorie:IDoc_im_Z-Umfeld == Kopie eines Standard FuBas == Kopie von "idoc_input_fidcc2" und dann Anpassung wie unten beschrieben. == Parameters == "…“ |
Keine Bearbeitungszusammenfassung |
||
| Zeile 66: | Zeile 66: | ||
ENDIF. | ENDIF. | ||
ENDIF. | ENDIF. | ||
*************************************************** | |||
CLEAR in_update_task. | CLEAR in_update_task. | ||
CLEAR call_transaction_done. | CLEAR call_transaction_done. | ||
Version vom 23. Juli 2021, 15:27 Uhr
Kopie eines Standard FuBas
Kopie von "idoc_input_fidcc2" und dann Anpassung wie unten beschrieben.
Parameters
"Globale Schnittstelle: " IMPORTING " VALUE(INPUT_METHOD) LIKE BDWFAP_PAR-INPUTMETHD " VALUE(MASS_PROCESSING) LIKE BDWFAP_PAR-MASS_PROC " EXPORTING " VALUE(WORKFLOW_RESULT) LIKE BDWFAP_PAR-RESULT " VALUE(APPLICATION_VARIABLE) LIKE BDWFAP_PAR-APPL_VAR " VALUE(IN_UPDATE_TASK) LIKE BDWFAP_PAR-UPDATETASK " VALUE(CALL_TRANSACTION_DONE) LIKE BDWFAP_PAR-CALLTRANS " TABLES " IDOC_CONTRL STRUCTURE EDIDC " IDOC_DATA STRUCTURE EDIDD " IDOC_STATUS STRUCTURE BDIDOCSTAT " RETURN_VARIABLES STRUCTURE BDWFRETVAR " SERIALIZATION_INFO STRUCTURE BDI_SER " EXCEPTIONS " WRONG_FUNCTION_CALLED " OTHERS
Codeschnipsel
INCLUDE mbdconwf.
DATA:
cv_mestyp TYPE edidc-mestyp VALUE 'ZGGL_PAYMENTS',
cv_wf_par_error_idocs TYPE bdwfretvar-wf_param VALUE 'Error_IDOCs',
cv_wf_result_ok TYPE bdwf_param-result VALUE '0 ' ##NEEDED,
cv_wf_result_error TYPE bdwf_param-result VALUE '99999',
ls_data TYPE zgglpay,
lv_error TYPE char01,
ls_lmess TYPE lmess,
lt_xreturn TYPE TABLE OF bdwfretvar.
lt_return TYPE bapiret2_t.
FIELD-SYMBOLS: <ls_xreturn> TYPE bdwfretvar.
READ TABLE idoc_contrl INDEX 1.
IF idoc_contrl-mestyp NE 'ZGGL_PAYMENTS'.
RAISE wrong_function_called.
ENDIF.
LOOP AT idoc_contrl.
LOOP AT idoc_data WHERE docnum = idoc_contrl-docnum. "#EC CI_NESTED
ls_data = idoc_data-sdata.
lv_compcode = ls_data-header_company.
lv_refdoc = ls_data-ref_doc_number.
ENDLOOP.
ENDLOOP.
IF lt_return IS NOT INITIAL.
READ TABLE lt_return INTO DATA(ls_return) INDEX 1.
IF ls_return-type = 'E'.
ls_lmess-msgid = ls_return-id.
ls_lmess-msgno = ls_return-number.
ls_lmess-msgty = ls_return-type.
ls_lmess-msgv1 = ls_return-message_v1.
ls_lmess-msgv2 = ls_return-message_v2.
ls_lmess-msgv3 = ls_return-message_v3.
ls_lmess-msgv4 = ls_return-message_v4.
lv_error = abap_true.
ENDIF.
ENDIF.
***************************************************
CLEAR in_update_task.
CLEAR call_transaction_done.
IF lv_error EQ abap_true.
CALL FUNCTION 'L_IDOC_ERROR_SAVE'
EXPORTING
i_docnum = idoc_contrl-docnum
i_mestyp = cv_mestyp
i_lmess = ls_lmess
i_categorie = cv_wf_par_error_idocs
i_result = cv_wf_result_error
EXCEPTIONS
OTHERS = 1. "#EC CI_SUBRC
MOVE cv_wf_result_error TO workflow_result.
ELSE. "lDoc processed successfully
CALL FUNCTION 'L_IDOC_OK_SAVE'
EXPORTING
i_docnum = idoc_contrl-docnum
i_mestyp = cv_mestyp
EXCEPTIONS
OTHERS = 1. "#EC CI_SUBRC
MOVE c_wf_result_ok TO workflow_result.
ENDIF.
"Write status of IDOC
LOOP AT idoc_contrl.
CLEAR idoc_status.
"Determine and create status of IDOC
CALL FUNCTION 'L_IDOC_STATUS_CREATE'
EXPORTING
i_iheader = idoc_contrl
i_mass_processing = mass_processing
IMPORTING
o_istatus = idoc_status
EXCEPTIONS
OTHERS = 1. "#EC CI_SUBRC
IF idoc_status-status IS INITIAL.
MESSAGE e010(lk) WITH idoc_contrl-docnum RAISING others.
ENDIF.
APPEND idoc_status.
ENDLOOP.
"Define table for further workflow process.
LOOP AT idoc_contrl.
"Determine and create status of IDOC
CLEAR lt_xreturn. REFRESH lt_xreturn.
CALL FUNCTION 'L_IDOC_RETURN_CREATE'
EXPORTING
i_iheader = idoc_contrl
i_mass_processing = mass_processing
TABLES
treturn = lt_xreturn
EXCEPTIONS
OTHERS = 1. "#EC CI_SUBRC
LOOP AT lt_xreturn ASSIGNING <ls_xreturn>.
MOVE-CORRESPONDING <ls_xreturn> TO return_variables.
APPEND return_variables.
ENDLOOP.
IF sy-subrc NE 0.
MESSAGE e011(lk) WITH idoc_contrl-docnum RAISING others.
ENDIF.
ENDLOOP.
COMMIT WORK.