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

Create a record in INFTY 2010

marcelo_dudzin2
Explorer
0 Likes
907

I'm using the User Exit EXIT_SAPFP50M_002 to capture a specific abscence on infty 2001 and create a recod in infty 2010.

I'm using HR_INFOTYPE_OPERATION and it is giving me an error that has nothing to do with what I'm doing.

Here is a copy of the code.

FORM f_create2010 USING p_pernr

p_begda

p_endda

p_value

p_wt.

DATA: header_assob LIKE assob.

DATA: l_asshr LIKE asshr.

DATA: ls_pdsnr LIKE pdsnr.

DATA: w_pdsnr LIKE asshr-pdsnr,

w_bukrs LIKE csks-bukrs,

w_kokrs LIKE csks-kokrs,

w_gsber LIKE csks-gsber,

w_seqnr LIKE *pa2010-seqnr.

DATA: return TYPE bapireturn1.

DATA: pv_viekn LIKE pa0003-viekn.

DATA: BEGIN OF p2010 OCCURS 5.

INCLUDE STRUCTURE p2010.

DATA: END OF p2010.

DATA: BEGIN OF wa_infty OCCURS 1.

INCLUDE STRUCTURE p2010.

DATA: END OF wa_infty.

BREAK-POINT.

SELECT SINGLE viekn FROM pa0003

INTO pv_viekn

WHERE pernr = p_pernr

AND begda <= p_begda.

CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'

EXPORTING

number = p_pernr

IMPORTING

return = return.

IF return IS INITIAL.

CALL FUNCTION 'HR_READ_INFOTYPE'

EXPORTING

  • TCLAS = 'A'

pernr = p_pernr

infty = '2010'

  • BEGDA = '18000101'

  • ENDDA = '99991231'

  • BYPASS_BUFFER = ' '

  • LEGACY_MODE = ' '

  • IMPORTING

  • SUBRC = SUBRC

TABLES

infty_tab = p2010.

LOOP AT p2010 WHERE subty = p_wt.

MOVE p2010 TO wa_infty.

EXIT.

ENDLOOP.

wa_infty-pernr = p_pernr.

wa_infty-infty = '2010'.

wa_infty-lgart = p_wt.

wa_infty-subty = p_wt.

wa_infty-stdaz = p_value.

wa_infty-begda = p_begda.

wa_infty-endda = p_endda.

wa_infty-AEDTM = sy-datum.

wa_infty-UNAME = sy-uname.

CALL FUNCTION 'HR_INFOTYPE_OPERATION'

EXPORTING

infty = '2010'

number = p_pernr

subtype = p_wt

validitybegin = p_begda

record = wa_infty

operation = 'INS'

view_identifier = pv_viekn

tclas = 'A'

dialog_mode = '1'

IMPORTING

return = return.

IF NOT return IS INITIAL AND

return-type EQ 'E'.

MESSAGE e000(38) WITH return-message.

ENDIF.

CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'

EXPORTING

number = p_pernr

IMPORTING

return = return.

ENDIF.

ENDFORM. " F_CREATE2010

Any ideas why this is not working for this infotype?

Edited by: Marcelo Dudzin on Dec 3, 2009 6:10 PM

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
848

Create an RFC and inside that put your logic which includes the HR_INFOTYPE_OPERATION.

Place this RFC in User exit. It should work

Regards,

Chandrashkhar

I'm using the User Exit EXIT_SAPFP50M_002 to capture a specific abscence on infty 2001 and create a recod in infty 2010.

I'm using HR_INFOTYPE_OPERATION and it is giving me an error that has nothing to do with what I'm doing.

Here is a copy of the code.

FORM f_create2010 USING p_pernr

p_begda

p_endda

p_value

p_wt.

DATA: header_assob LIKE assob.

DATA: l_asshr LIKE asshr.

DATA: ls_pdsnr LIKE pdsnr.

DATA: w_pdsnr LIKE asshr-pdsnr,

w_bukrs LIKE csks-bukrs,

w_kokrs LIKE csks-kokrs,

w_gsber LIKE csks-gsber,

w_seqnr LIKE *pa2010-seqnr.

DATA: return TYPE bapireturn1.

DATA: pv_viekn LIKE pa0003-viekn.

DATA: BEGIN OF p2010 OCCURS 5.

INCLUDE STRUCTURE p2010.

DATA: END OF p2010.

DATA: BEGIN OF wa_infty OCCURS 1.

INCLUDE STRUCTURE p2010.

DATA: END OF wa_infty.

BREAK-POINT.

SELECT SINGLE viekn FROM pa0003

INTO pv_viekn

WHERE pernr = p_pernr

AND begda <= p_begda.

CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'

EXPORTING

number = p_pernr

IMPORTING

return = return.

IF return IS INITIAL.

CALL FUNCTION 'HR_READ_INFOTYPE'

EXPORTING

  • TCLAS = 'A'

pernr = p_pernr

infty = '2010'

  • BEGDA = '18000101'

  • ENDDA = '99991231'

  • BYPASS_BUFFER = ' '

  • LEGACY_MODE = ' '

  • IMPORTING

  • SUBRC = SUBRC

TABLES

infty_tab = p2010.

LOOP AT p2010 WHERE subty = p_wt.

MOVE p2010 TO wa_infty.

EXIT.

ENDLOOP.

wa_infty-pernr = p_pernr.

wa_infty-infty = '2010'.

wa_infty-lgart = p_wt.

wa_infty-subty = p_wt.

wa_infty-stdaz = p_value.

wa_infty-begda = p_begda.

wa_infty-endda = p_endda.

wa_infty-AEDTM = sy-datum.

wa_infty-UNAME = sy-uname.

CALL FUNCTION 'HR_INFOTYPE_OPERATION'

EXPORTING

infty = '2010'

number = p_pernr

subtype = p_wt

validitybegin = p_begda

record = wa_infty

operation = 'INS'

view_identifier = pv_viekn

tclas = 'A'

dialog_mode = '1'

IMPORTING

return = return.

IF NOT return IS INITIAL AND

return-type EQ 'E'.

MESSAGE e000(38) WITH return-message.

ENDIF.

CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'

EXPORTING

number = p_pernr

IMPORTING

return = return.

ENDIF.

ENDFORM. " F_CREATE2010

Any ideas why this is not working for this infotype?

Edited by: Marcelo Dudzin on Dec 3, 2009 6:10 PM

4 REPLIES 4
Read only

Shafiq_Rehman1
Active Contributor
0 Likes
848

You cannot use HR_INFOTYPE_OPERATION in user exit, it violates the Logical Unit of Work.

Read only

0 Likes
848

Do you mean this specific User exit?

Read only

Former Member
0 Likes
849

Create an RFC and inside that put your logic which includes the HR_INFOTYPE_OPERATION.

Place this RFC in User exit. It should work

Regards,

Chandrashkhar

Read only

0 Likes
848

I will try that one.

Many thanks