2008 Feb 04 3:20 PM
I am been using DB2 Direct Update to Maintain Records and my User wants things to be logged so I'm trying to Use HR_INFOTYPE_OPERATION, but the problem is I can't get it to delete.
Here is my code:
It finds the record ok using GETDETAIL, but when it tries to delete it says 'No Data stored for 0381 in the selected period'. Am I doing something wrong or what?
***************************************
DELETE RECORD_P0381
***************************************
FORM DELETE_RECORD_P0381.
CALL FUNCTION 'HR_INFOTYPE_GETDETAIL'
EXPORTING
INFTY = '0381'
SUBTYPE = 'MERS'
NUMBER = P_PERNR
LOCKINDICATOR = ' '
VALIDITYEND = P_ENDDA
VALIDITYBEGIN = P_BEGDA
TCLAS = 'A'
IMPORTING
RETURN = ZRETURN
RECORD = P0381
EXCEPTIONS
OTHERS = 0.
IF ZRETURN-TYPE = ' ' OR
ZRETURN-TYPE = 'I'.
ELSE.
WRITE: / 'ERROR SELECTING P0381 PERNR', P0381-PERNR.
WRITE: / ZRETURN-ID, ZRETURN-NUMBER, ZRETURN-MESSAGE.
ENDIF.
CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'
EXPORTING NUMBER = P0381-PERNR.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
INFTY = '0381'
NUMBER = P0380-PERNR
LOCKINDICATOR = ' '
VALIDITYEND = P0381-ENDDA
VALIDITYBEGIN = P0381-BEGDA
RECORD = p0381
OPERATION = 'DEL'
NOCOMMIT = ' '
DIALOG_MODE = '0'
TCLAS = 'A'
IMPORTING
RETURN = ZRETURN
EXCEPTIONS
OTHERS = 0.
IF ZRETURN-TYPE = ' ' OR
ZRETURN-TYPE = 'I'.
ELSE.
WRITE: / 'ERROR DELETING P0381 PERNR', P0381-PERNR.
WRITE: / ZRETURN-ID, ZRETURN-NUMBER, ZRETURN-MESSAGE.
ENDIF.
CALL FUNCTION 'HR_EMPLOYEE_DEQUEUE'
EXPORTING NUMBER = P0381-PERNR.
CLEAR P0381.
ENDFORM.
I am been using DB2 Direct Update to Maintain Records and my User wants things to be logged so I'm trying to Use HR_INFOTYPE_OPERATION, but the problem is I can't get it to delete.
Here is my code:
It finds the record ok using GETDETAIL, but when it tries to delete it says 'No Data stored for 0381 in the selected period'. Am I doing something wrong or what?
***************************************
DELETE RECORD_P0381
***************************************
FORM DELETE_RECORD_P0381.
CALL FUNCTION 'HR_INFOTYPE_GETDETAIL'
EXPORTING
INFTY = '0381'
SUBTYPE = 'MERS'
NUMBER = P_PERNR
LOCKINDICATOR = ' '
VALIDITYEND = P_ENDDA
VALIDITYBEGIN = P_BEGDA
TCLAS = 'A'
IMPORTING
RETURN = ZRETURN
RECORD = P0381
EXCEPTIONS
OTHERS = 0.
IF ZRETURN-TYPE = ' ' OR
ZRETURN-TYPE = 'I'.
ELSE.
WRITE: / 'ERROR SELECTING P0381 PERNR', P0381-PERNR.
WRITE: / ZRETURN-ID, ZRETURN-NUMBER, ZRETURN-MESSAGE.
ENDIF.
CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'
EXPORTING NUMBER = P0381-PERNR.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
INFTY = '0381'
NUMBER = P0380-PERNR
LOCKINDICATOR = ' '
VALIDITYEND = P0381-ENDDA
VALIDITYBEGIN = P0381-BEGDA
RECORD = p0381
OPERATION = 'DEL'
NOCOMMIT = ' '
DIALOG_MODE = '0'
TCLAS = 'A'
IMPORTING
RETURN = ZRETURN
EXCEPTIONS
OTHERS = 0.
IF ZRETURN-TYPE = ' ' OR
ZRETURN-TYPE = 'I'.
ELSE.
WRITE: / 'ERROR DELETING P0381 PERNR', P0381-PERNR.
WRITE: / ZRETURN-ID, ZRETURN-NUMBER, ZRETURN-MESSAGE.
ENDIF.
CALL FUNCTION 'HR_EMPLOYEE_DEQUEUE'
EXPORTING NUMBER = P0381-PERNR.
CLEAR P0381.
ENDFORM.
2008 Feb 04 3:28 PM
In the call to FM 'HR_INFOTYPE_OPERATION'
I think the Pernr value UR passing is from P0380-PERNR ..
instead of P0381-PERNR
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
INFTY = '0381'
NUMBER = P0380-PERNR <----
LOCKINDICATOR = ' '
VALIDITYEND = P0381-ENDDA
VALIDITYBEGIN = P0381-BEGDA
RECORD = p0381
OPERATION = 'DEL'
NOCOMMIT = ' '
DIALOG_MODE = '0'
TCLAS = 'A'
IMPORTING
RETURN = ZRETURN
EXCEPTIONS
OTHERS = 0.
2008 Feb 04 3:34 PM
That was a good catch, I had missed that type, unfortunately it didn't correct the problem. I still get the same message.
2008 Feb 04 3:52 PM
quite possible, the following dates are initial..
VALIDITYEND = P0381-ENDDA
VALIDITYBEGIN = P0381-BEGDA
Verify in debug & make sure you populate the dates before the function call..
~Suresh
2008 Feb 04 4:17 PM
Suresh,
I have verified using Debug that the date fields are populated.
2008 Feb 04 5:19 PM
I was missing some of the key fields in my EXPORT statement and that was causing it to get a NOT FOUND.
2008 Feb 04 5:19 PM