Advertisement
ignatov

Untitled

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