Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

error insert record in pa0027

Former Member
0 Likes
1,148

I've been stuck with the problem for days, could anyone help. I try to use the function modules in my report to create the record in pa0027, but it won't work! here is the code:

REPORT ZHRADDPA0027 NO STANDARD PAGE HEADING.

TABLES : PA0027, PA0024.

DATA: BEGIN OF IT0027 OCCURS 0,

MANDT LIKE PA0027-MANDT,

PERNR LIKE PA0027-PERNR,

SUBTY LIKE PA0027-SUBTY,

OBJPS LIKE PA0027-OBJPS,

SPRPS LIKE PA0027-SPRPS,

ENDDA LIKE PA0027-ENDDA,

BEGDA LIKE PA0027-BEGDA,

........................

........................

PSP25 LIKE PA0027-PSP25,

END OF IT0027.

DATA: RET LIKE BAPIRETURN1.

DATA: RET2 LIKE BAPIRETURN1.

DATA: RET3 LIKE BAPIRETURN1.

DATA: LOCKING_USER LIKE SY-UNAME.

DATA: MKEY LIKE BAPIPAKEY.

CLEAR IT0027.

SELECT * FROM PA0027 WHERE PERNR = '00000123' AND ENDDA = '99991231'.

MOVE-CORRESPONDING PA0027 TO IT0027.

APPEND IT0027.

ENDSELECT.

LOOP AT IT0027.

IT0027-BEGDA = '19990101'.

IT0027-ENDDA = '19991231'.

MODIFY IT0027.

ENDLOOP.

CLEAR IT0027.

LOOP AT IT0027.

CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'

EXPORTING

NUMBER = IT0027-PERNR

IMPORTING

RETURN = RET

LOCKING_USER = LOCKING_USER.

CALL FUNCTION 'HR_INFOTYPE_OPERATION'

EXPORTING

INFTY = '0027'

NUMBER = IT0027-PERNR

RECORD = IT0027

OPERATION = 'INS'

NOCOMMIT = 'X'

IMPORTING

RETURN = RET2

KEY = MKEY.

CALL FUNCTION 'HR_EMPLOYEE_DEQUEUE'

EXPORTING

NUMBER = IT0027-PERNR

IMPORTING

RETURN = RET3.

ENDLOOP.

I've been stuck with the problem for days, could anyone help. I try to use the function modules in my report to create the record in pa0027, but it won't work! here is the code:

REPORT ZHRADDPA0027 NO STANDARD PAGE HEADING.

TABLES : PA0027, PA0024.

DATA: BEGIN OF IT0027 OCCURS 0,

MANDT LIKE PA0027-MANDT,

PERNR LIKE PA0027-PERNR,

SUBTY LIKE PA0027-SUBTY,

OBJPS LIKE PA0027-OBJPS,

SPRPS LIKE PA0027-SPRPS,

ENDDA LIKE PA0027-ENDDA,

BEGDA LIKE PA0027-BEGDA,

........................

........................

PSP25 LIKE PA0027-PSP25,

END OF IT0027.

DATA: RET LIKE BAPIRETURN1.

DATA: RET2 LIKE BAPIRETURN1.

DATA: RET3 LIKE BAPIRETURN1.

DATA: LOCKING_USER LIKE SY-UNAME.

DATA: MKEY LIKE BAPIPAKEY.

CLEAR IT0027.

SELECT * FROM PA0027 WHERE PERNR = '00000123' AND ENDDA = '99991231'.

MOVE-CORRESPONDING PA0027 TO IT0027.

APPEND IT0027.

ENDSELECT.

LOOP AT IT0027.

IT0027-BEGDA = '19990101'.

IT0027-ENDDA = '19991231'.

MODIFY IT0027.

ENDLOOP.

CLEAR IT0027.

LOOP AT IT0027.

CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'

EXPORTING

NUMBER = IT0027-PERNR

IMPORTING

RETURN = RET

LOCKING_USER = LOCKING_USER.

CALL FUNCTION 'HR_INFOTYPE_OPERATION'

EXPORTING

INFTY = '0027'

NUMBER = IT0027-PERNR

RECORD = IT0027

OPERATION = 'INS'

NOCOMMIT = 'X'

IMPORTING

RETURN = RET2

KEY = MKEY.

CALL FUNCTION 'HR_EMPLOYEE_DEQUEUE'

EXPORTING

NUMBER = IT0027-PERNR

IMPORTING

RETURN = RET3.

ENDLOOP.

5 REPLIES 5
Read only

Former Member
0 Likes
992

Are you getting an error message, a dump or what?

Rob

Read only

0 Likes
992

it's not inserting into the table. the error was "System error in SAPLRHCD, routine INT(2): notify SAP" from running the function HR_INFOTYPE_OPERATION. then when I go to the SAPLRHCD program and put break point on it, the error change to "a complex application error has occurred".

Read only

0 Likes
992

There are some notes for this program; you should have a look at them. If there's nothing that helps, the message is saying to contact SAP, so you can raise an OSS message.

Rob

Read only

Former Member
0 Likes
992

Hi,

see the Function modules <b>'HR_EMPLOYEE_ENQUEUE'</b>, <b>'HR_INFOTYPE_OPERATION'</b> and <b>'HR_EMPLOYEE_DEQUEUE'</b>.... Check the types of each and every field and structure, i think you are not passing same type some where ...

Regards

Sudheer

Read only

0 Likes
992

here is the declaration and getting the data.

DATA: BEGIN OF IT0027 OCCURS 0,

MANDT LIKE PA0027-MANDT,

PERNR LIKE PA0027-PERNR,

SUBTY LIKE PA0027-SUBTY,

OBJPS LIKE PA0027-OBJPS,

SPRPS LIKE PA0027-SPRPS,

ENDDA LIKE PA0027-ENDDA,

BEGDA LIKE PA0027-BEGDA,

........................ ,<- All the field names

........................ <- the list is too long

PSP25 LIKE PA0027-PSP25,

END OF IT0027.

DATA: RET LIKE BAPIRETURN1.

DATA: RET2 LIKE BAPIRETURN1.

DATA: RET3 LIKE BAPIRETURN1.

DATA: LOCKING_USER LIKE SY-UNAME.

DATA: MKEY LIKE BAPIPAKEY.

CLEAR IT0027.

SELECT * FROM PA0027 WHERE PERNR = '00000123' AND ENDDA = '99991231'.

MOVE-CORRESPONDING PA0027 TO IT0027.

APPEND IT0027. <- copy the record and change the date and then inserting it back!

ENDSELECT.

Any help or information will be great!