Iam facing a problem while inserting a record to the infotype 416 for a personnel no using the FM 'HR_INFOTYPE_OPERATION'.I have created a FM to insert a record to the infotype 416.In that FM iam using the FM 'HR_INFOTYPE_OPERATION' to create a record for infotype 416.while executing my FM the FM 'HR_INFOTYPE_OPERATION' is returning the return value 0.But when i check in PA30 for the infotype 416,there is no record created for that personnel no.Also in the table PA0416 the record is not get created.SO what might be the problem.can anyone please provide me help on this.
I have attached the code of my FM for ur reference.
FUNCTION Y_ESS_FL_ENCASH.
DATA: G_COMPENSATION_AMOUNT LIKE PA0416-AMONT,
G_RETURN TYPE BAPIRETURN1.
DATA T_PA0416 LIKE P0416 OCCURS 0 WITH HEADER LINE.
CALL FUNCTION 'HR_READ_INFOTYPE'
EXPORTING
TCLAS = 'A'
PERNR = '00000014'
INFTY = '0416'
BEGDA = sy-datum
ENDDA = sy-datum
BYPASS_BUFFER = 'X'
LEGACY_MODE = ' '
IMPORTING
SUBRC =
TABLES
INFTY_TAB = T_PA0416
EXCEPTIONS
INFTY_NOT_FOUND = 1
OTHERS = 2
.
LOOP AT T_PA0416
WHERE SUBTY = '1002'.
ENDLOOP.
IF SY-SUBRC <> 0.
CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'
EXPORTING
NUMBER = '00000014'
IMPORTING
RETURN = G_RETURN.
IF SY-SUBRC <> 0.
MESSAGE I016(RP) WITH ' RECORD IS ALREADY LOCKED'.
ENDIF.
T_PA0416-PERNR = '00000014'.
T_PA0416-SUBTY = '1002'.
T_PA0416-INFTY = '0416'.
T_PA0416-OBJPS = ''.
T_PA0416-SPRPS = ''.
T_PA0416-SEQNR = ''.
T_PA0416-AEDTM = SY-DATUM.
T_PA0416-UNAME = SY-UNAME.
T_PA0416-ENDDA = SY-DATUM.
T_PA0416-BEGDA = SY-DATUM.
T_PA0416-NUMBR = '10'.
T_PA0416-WGTYP = '1530'.
T_PA0416-AMONT = '15000'.
T_PA0416-WAERS = 'INR'.
T_PA0416-QUONR = '1'.
APPEND T_PA0416.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
INFTY = '0416'
NUMBER = '00000014'
SUBTYPE = '1002'
OBJECTID =
LOCKINDICATOR =
VALIDITYEND = '31129999'
VALIDITYBEGIN = SY-DATUM
RECORDNUMBER = ''
RECORD = T_PA0416
OPERATION = 'INS'
TCLAS = 'A'
DIALOG_MODE = '0'
NOCOMMIT = 'X'
VIEW_IDENTIFIER =
SECONDARY_RECORD =
IMPORTING
RETURN = G_RETURN.
KEY =
IF G_RETURN+0(1) EQ 'E'.
MESSAGE I086(ZHR) WITH 'Record is not inserted in IT416'.
ELSE.
COMMIT WORK.
ENDIF.
CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'
EXPORTING
NUMBER = '00000014'
IMPORTING
RETURN = G_RETURN.
ENDIF.
ENDFUNCTION.