Hi Experts,
while I am updating the infotype 0170 with the hr_infotype_operation. i was given an error stating 'EPG 009No data stored for 0170 in the selected period'. How to resolve this. Please help me.
My code is as follows
ls_0170 like p0170.
CALL FUNCTION 'HR_READ_INFOTYPE'
EXPORTING
pernr = ls_pernr-pernr
infty = '0170'
begda = '20070101'
endda = '20071130'
IMPORTING
subrc = l_subrc
TABLES
infty_tab = p0170
EXCEPTIONS
infty_not_found = 1
OTHERS = 2.
IF l_subrc = 0.
IF p0170-endda = '20071130' AND p0170-begda = '20070101'.
locking the pernr ********************
CALL FUNCTION 'BAPI_EMPLOYEET_ENQUEUE'
EXPORTING
number = p0170-pernr
validitybegin = p0170-begda
IMPORTING
return = l_return.
change the end date to 12/31/2007*************
IF l_return IS INITIAL.
p0170-endda = '20071231'.
MODIFY p0170 INDEX 1 TRANSPORTING endda.
ls_p0170 = p0170.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
infty = '0170'
number = p0170-pernr
record = ls_p0170
operation = 'MOD'
IMPORTING
return = l_return.
ENDIF.
unlocking the pernr ********************
IF l_return IS INITIAL.
CALL FUNCTION 'BAPI_EMPLOYEET_DEQUEUE'
EXPORTING
number = p0170-pernr
validitybegin = p0170-begda
IMPORTING
return = l_return.
ENDIF.
ENDIF.
IF p0170-endda = '99991231' AND p0170-begda = '20071201'.
locking the pernr ********************
CALL FUNCTION 'BAPI_EMPLOYEET_ENQUEUE'
EXPORTING
number = p0170-pernr
validitybegin = p0170-begda
IMPORTING
return = l_return.
***modify a record with begin date 1/01/2008 and end date
***12/31/9999
IF l_return IS INITIAL.
p0170-begda = '20080101'.
MODIFY p0170 INDEX 1 TRANSPORTING begda.
ls_p0170 = p0170.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
infty = '0170'
number = p0170-pernr
record = ls_p0170
operation = 'MOD'
IMPORTING
return = l_return.
ENDIF.
unlocking the pernr ********************
IF l_return IS INITIAL.
CALL FUNCTION 'BAPI_EMPLOYEET_DEQUEUE'
EXPORTING
number = p0170-pernr
validitybegin = p0170-begda
IMPORTING
return = l_return.
ENDIF.
ENDIF.
ENDIF.