FUNCTION zhrf_0531_create.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(IS_INPUT) TYPE P0531
*" VALUE(IV_ACTIO) TYPE PSPAR-ACTIO
*" EXPORTING
*" VALUE(ES_MESSAGE) TYPE BAPIRETURN1
*"----------------------------------------------------------------------
"----------------------------------------------------------------------
"*"本地接口:
" IMPORTING
" VALUE(IS_INPUT) TYPE P0531
" VALUE(IV_ACTIO) TYPE PSPAR-ACTIO
" EXPORTING
" VALUE(ES_MESSAGE)
" VALUE(ES_MSGTY)
"----------------------------------------------------------------------
/afl/log_init.
DATA:lv_operation TYPE pspar-actio.
DATA:ls_0531 TYPE p0531.
DATA:ls_return TYPE bapireturn1.
DATA:lv_date TYPE sy-datum.
lv_operation = iv_actio.
ls_0531 = is_input.
CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'
EXPORTING
number = ls_0531-pernr
IMPORTING
return = ls_return.
IF ls_return-type EQ 'E'.
es_message-type = 'E'.
es_message-message = ls_return-message.
ELSE.
CALL FUNCTION 'HR_PSBUFFER_INITIALIZE'.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
infty = ls_0531-infty
number = ls_0531-pernr
* subtype =
* OBJECTID =
* LOCKINDICATOR =
validityend = ls_0531-endda
validitybegin = ls_0531-begda
* RECORDNUMBER =
record = ls_0531
operation = lv_operation
tclas = 'A'
dialog_mode = '0'
* NOCOMMIT =
* VIEW_IDENTIFIER = '28'
* SECONDARY_RECORD =
IMPORTING
return = ls_return
" KEY =
.
IF ls_return-type EQ 'E'.
es_message-type = 'E'.
es_message-message = ls_return-message.
ELSE.
COMMIT WORK AND WAIT.
"改变原来那一条的纳税入职日期和结束日期
lv_date = ls_0531-begda - 1.
SELECT SINGLE * FROM pa0531 WHERE pernr EQ @ls_0531-pernr AND endda EQ @lv_date INTO @DATA(ls_mod).
IF sy-subrc EQ 0.
ls_mod-txerd = ls_mod-begda.
ls_mod-txtmd = ls_mod-endda.
CLEAR ls_0531.
MOVE-CORRESPONDING ls_mod TO ls_0531.
ls_0531-infty = '0531'.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
infty = ls_0531-infty
number = ls_0531-pernr
* subtype =
* OBJECTID =
* LOCKINDICATOR =
validityend = ls_0531-endda
validitybegin = ls_0531-begda
* RECORDNUMBER =
record = ls_0531
operation = 'MOD'
tclas = 'A'
dialog_mode = '0'
* NOCOMMIT =
* VIEW_IDENTIFIER = '28'
* SECONDARY_RECORD =
IMPORTING
return = ls_return
" KEY =
.
IF ls_return-type EQ 'E'.
es_message-type = 'E'.
es_message-message = ls_return-message.
ELSE.
CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'
EXPORTING
number = ls_0531-pernr
IMPORTING
return = ls_return.
IF ls_return-type EQ 'E'.
es_message-type = 'E'.
es_message-message = ls_return-message.
ELSE.
es_message-type = 'S'.
es_message-message = ls_return-message.
ENDIF.
ENDIF.
ELSE.
CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'
EXPORTING
number = ls_0531-pernr
IMPORTING
return = ls_return.
IF ls_return-type EQ 'E'.
es_message-type = 'E'.
es_message-message = ls_return-message.
ELSE.
es_message-type = 'S'.
es_message-message = ls_return-message.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
/afl/save 'HR' '0531' lv_operation.
ENDFUNCTION.
HR 更新信息类型的函数
最新推荐文章于 2023-11-18 11:25:58 发布