Hi Ibrahim,
The record does not update, i think like ENDDA is a key field it just does not update, i am kind of lost here, in first place i dont get how this happen, SAP forbid that ENDDA < BEGDA but it happens.
The FM does not return error but the record is not been updated. I even include a COMMIT WORK instruction. I modify your code cause the F return error saying that there was not any recrd in that periord.
If you have any idea please i will be very grateful. Thanks in advice.
DATA ls_pa0001 TYPE pa0001.
DATA ls_return TYPE bapireturn1.
DATA ls_key TYPE bapipakey.
DATA endda TYPE endda.
endda = '20151231'.
SELECT SINGLE * FROM pa0001
INTO CORRESPONDING FIELDS OF ls_pa0001
WHERE pernr = '24329396'. " number of employee
ls_pa0001-endda = endda. " or as you want.
ls_pa0001-werks = 'K201'.
CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'
EXPORTING
number = ls_pa0001-pernr
IMPORTING
return = ls_return.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
infty = '0001'
number = ls_pa0001-pernr
* SUBTYPE =
* OBJECTID =
* LOCKINDICATOR =
validityend = '99991231'"ls_pa0001-endda'
validitybegin = ls_pa0001-begda
* RECORDNUMBER =
record = ls_pa0001
operation = 'MOD'
* TCLAS = 'A'
* DIALOG_MODE = '0'
* NOCOMMIT =
* VIEW_IDENTIFIER =
* SECONDARY_RECORD =
IMPORTING
return = ls_return
key = ls_key.
IF ls_return-type <> 'E'.
COMMIT WORK.
MESSAGE 'the record has been successfully modified' TYPE 'I'.
ENDIF.
CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'
EXPORTING
number = ls_pa0001-pernr
IMPORTING
return = ls_return.