Advertisement
ignatov

Untitled

Feb 8th, 2022
10,197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 2.32 KB | None | 0 0
  1. FUNCTION zfm_idoc_it0021.
  2.   INCLUDE mbdconwf.
  3.   DATA:
  4.  
  5.     ls_data      TYPE edidd,
  6.     ls_control   TYPE edidc,
  7.     ls_idoc_body TYPE z1i0021,
  8.     ls_recrod    TYPE p0021,
  9.     ls_msg       TYPE bapireturn1.
  10.  
  11.   READ TABLE idoc_contrl INTO ls_control INDEX 1.
  12.  
  13.   LOOP AT idoc_data INTO ls_data WHERE docnum = ls_control-docnum.
  14.     IF ls_data-segnam = 'Z1I0021'.
  15.       ls_idoc_body = ls_data-sdata.
  16.       ls_recrod-begda = ls_idoc_body-begda.
  17.       ls_recrod-endda = ls_idoc_body-endda.
  18.       ls_recrod-subty = ls_idoc_body-rel_type.
  19.       ls_recrod-fanam = ls_idoc_body-last_name.
  20.       ls_recrod-favor = ls_idoc_body-first_name.
  21.       ls_recrod-fgbdt = ls_idoc_body-dob.
  22.       ls_recrod-fasex = ls_idoc_body-gender_key.
  23.  
  24.       CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'
  25.         EXPORTING
  26.           NUMBER = CONV bapip0001-pernr( ls_idoc_body-pernr )
  27.         IMPORTING
  28.           RETURN = ls_msg.
  29.       IF sy-subrc EQ 0.
  30.  
  31.         CALL FUNCTION 'HR_INFOTYPE_OPERATION'
  32.           EXPORTING
  33.             infty     = '0021'
  34.             NUMBER    = CONV p0001-pernr( ls_idoc_body-pernr )
  35.             record    = ls_recrod
  36.             operation = 'INS'
  37.             tclas     = 'A'
  38.           IMPORTING
  39.             RETURN    = ls_msg.
  40.  
  41.         IF ls_msg-TYPE EQ 'E'.
  42.           idoc_status-status = c_idoc_status_error.
  43.           idoc_status-msgty  = sy-msgty.
  44.           idoc_status-msgid  = ls_msg-ID.
  45.           idoc_status-msgno  = ls_msg-NUMBER.
  46.           idoc_status-msgv1  = ls_msg-MESSAGE.
  47.           idoc_status-msgv2  = ls_msg-log_msg_no.
  48.           idoc_status-msgv3  = ls_msg-message_v1.
  49.           idoc_status-msgv4  = ls_msg-message_v2.
  50.           workflow_result    = c_wf_result_error.
  51.           return_variables-wf_param   = c_wf_par_error_idocs.
  52.         ELSE.
  53.           idoc_status-status = c_idoc_status_ok.
  54.           idoc_status-msgty  = 'S'.
  55.           idoc_status-msgid  = 'Delightfull!'(001).
  56.           idoc_status-msgno  = 001.
  57.           workflow_result    = c_wf_result_ok.
  58.           return_variables-wf_param   = c_wf_par_processed_idocs.
  59.         ENDIF.
  60.       ENDIF.
  61.       idoc_status-docnum = ls_control-docnum.
  62.       idoc_status-repid  = sy-repid.
  63.       APPEND idoc_status.
  64.       return_variables-doc_number   = ls_control-docnum.
  65.       APPEND return_variables.
  66.     ENDIF.
  67.   ENDLOOP.
  68.  
  69. ENDFUNCTION.
  70.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement