Application Development 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: 

populating additional payments-p0015 infotype

Former Member
0 Kudos

hi experts,

i am trying to populate the infotype p0015 -additional payments infotype .i know the program for uploading only one wage-type (subtype) in main screen of pa30.

what if i want to upload data for 5 wage type for every pernr ..in one program . how should be the format of the internal table . and one more things .. there is no input field for endda. but i have it in the program ..

the program for upload that i know is give below ..

DATA : P0015 LIKE P0015.

DATA : RETURN LIKE BAPIRETURN1.

DATA : KEY LIKE BAPIPAKEY.

DATA : RETURNE LIKE BAPIRETURN1 .

*----


Values (Change as per Requirement)

P0015-PERNR = '1'.

P0015-BEGDA = '2061101'.

P0015-ENDDA = '2061101'.

P0015-LGART = '3075'.

P0015-PREAS = '01'.

P0015-WAERS = 'INR'.

P0015-BETRG = '2500'.

*----- First Enqu

CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'

EXPORTING

NUMBER = p0015-pernr

IMPORTING

RETURN = RETURNE.

*----


Update

CALL FUNCTION 'HR_INFOTYPE_OPERATION'

EXPORTING

INFTY = '0015'

NUMBER = P0015-PERNR

SUBTYPE = P0015-SUBTY

OBJECTID = P0015-OBJPS

LOCKINDICATOR = P0015-SPRPS

VALIDITYEND = P0015-ENDDA

VALIDITYBEGIN = P0015-BEGDA

RECORDNUMBER = P0015-SEQNR

RECORD = P0015

OPERATION = 'INS'

TCLAS = 'A'

DIALOG_MODE = '0'

IMPORTING

RETURN = RETURN

KEY = KEY.

IF RETURN IS NOT INITIAL.

WRITE 😕 'Error Occurred'.

ENDIF.

*----


Dequeue

CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'

EXPORTING

NUMBER = P0015-PERNR

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

Check the program once. Here you can upload the data from an excel sheet. You can give any number of wagetypes at a time.

----


  • TYPE POOLS *

----


TYPE-POOLS: TRUXS.

INCLUDE BDCRECX1.

----


  • INTERNAL TABLES *

----


DATA : BEGIN OF IT_PA0015 OCCURS 0,

PERNR TYPE PA0015-PERNR,

SUBTY TYPE RP50G-SUBTY,

BEGDA TYPE CHAR10,

BETRG TYPE CHAR16,

END OF IT_PA0015.

DATA: IT_RAW TYPE TRUXS_T_TEXT_DATA.

DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

DATA : IT_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

----


  • SELECTION SCREEN *

----


SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETER P_FILE TYPE RLGRAP-FILENAME OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B1.

----


  • AT SELECTION SCREEN *

----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

PERFORM HELP_FILE USING P_FILE.

----


  • START OF SELECTION *

----


START-OF-SELECTION.

*UPLOADING THE FILE FROM WORKSTATION

PERFORM UPLOAD_FILE USING P_FILE.

*POPULATING DATA.

PERFORM POPULATE_FILE.

&----


*& Form HELP_FILE

&----


  • text

----


  • -->P_P_FILE text

----


FORM HELP_FILE USING P_P_FILE.

DATA: L_FILE TYPE IBIPPARMS-PATH.

CALL FUNCTION 'F4_FILENAME'

  • EXPORTING

  • PROGRAM_NAME = SYST-CPROG

  • DYNPRO_NUMBER = SYST-DYNNR

  • FIELD_NAME = ' '

IMPORTING

FILE_NAME = L_FILE.

P_P_FILE = L_FILE.

ENDFORM. " HELP_FILE

&----


*& Form UPLOAD_FILE

&----


  • text

----


  • -->P_P_FILE text

----


FORM UPLOAD_FILE USING P_P_FILE.

CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'

EXPORTING

  • I_FIELD_SEPERATOR =

I_LINE_HEADER = 'X'

I_TAB_RAW_DATA = IT_RAW

I_FILENAME = P_FILE

TABLES

I_TAB_CONVERTED_DATA = IT_PA0015[]

EXCEPTIONS

CONVERSION_FAILED = 1

OTHERS = 2

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " UPLOAD_FILE

&----


*& Form POPULATE_FILE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM POPULATE_FILE .

CLEAR NODATA.

PERFORM OPEN_GROUP.

LOOP AT IT_PA0015.

REPLACE ALL OCCURRENCES OF '/' IN IT_PA0015-BEGDA WITH '.'.

PERFORM BDC_DYNPRO USING 'SAPMP50A' '1000'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=INS'.

PERFORM BDC_FIELD USING 'RP50G-PERNR'

IT_PA0015-PERNR.

PERFORM BDC_FIELD USING 'RP50G-TIMR6'

'X'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RP50G-CHOIC'.

PERFORM BDC_FIELD USING 'RP50G-CHOIC'

'0015'.

PERFORM BDC_FIELD USING 'RP50G-SUBTY'

IT_PA0015-SUBTY.

PERFORM BDC_DYNPRO USING 'MP001500' '2040'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'Q0015-BETRG'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=UPD'.

PERFORM BDC_FIELD USING 'P0015-BEGDA'

IT_PA0015-BEGDA.

PERFORM BDC_FIELD USING 'Q0015-BETRG'

IT_PA0015-BETRG.

PERFORM BDC_FIELD USING 'P0015-WAERS'

'INR'.

PERFORM BDC_TRANSACTION USING 'PA30'.

ENDLOOP.

PERFORM CLOSE_GROUP.

ENDFORM. " POPULATE_FILE

Regards,

Ramu N.

1 REPLY 1

Former Member
0 Kudos

Hi,

Check the program once. Here you can upload the data from an excel sheet. You can give any number of wagetypes at a time.

----


  • TYPE POOLS *

----


TYPE-POOLS: TRUXS.

INCLUDE BDCRECX1.

----


  • INTERNAL TABLES *

----


DATA : BEGIN OF IT_PA0015 OCCURS 0,

PERNR TYPE PA0015-PERNR,

SUBTY TYPE RP50G-SUBTY,

BEGDA TYPE CHAR10,

BETRG TYPE CHAR16,

END OF IT_PA0015.

DATA: IT_RAW TYPE TRUXS_T_TEXT_DATA.

DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

DATA : IT_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

----


  • SELECTION SCREEN *

----


SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETER P_FILE TYPE RLGRAP-FILENAME OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B1.

----


  • AT SELECTION SCREEN *

----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

PERFORM HELP_FILE USING P_FILE.

----


  • START OF SELECTION *

----


START-OF-SELECTION.

*UPLOADING THE FILE FROM WORKSTATION

PERFORM UPLOAD_FILE USING P_FILE.

*POPULATING DATA.

PERFORM POPULATE_FILE.

&----


*& Form HELP_FILE

&----


  • text

----


  • -->P_P_FILE text

----


FORM HELP_FILE USING P_P_FILE.

DATA: L_FILE TYPE IBIPPARMS-PATH.

CALL FUNCTION 'F4_FILENAME'

  • EXPORTING

  • PROGRAM_NAME = SYST-CPROG

  • DYNPRO_NUMBER = SYST-DYNNR

  • FIELD_NAME = ' '

IMPORTING

FILE_NAME = L_FILE.

P_P_FILE = L_FILE.

ENDFORM. " HELP_FILE

&----


*& Form UPLOAD_FILE

&----


  • text

----


  • -->P_P_FILE text

----


FORM UPLOAD_FILE USING P_P_FILE.

CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'

EXPORTING

  • I_FIELD_SEPERATOR =

I_LINE_HEADER = 'X'

I_TAB_RAW_DATA = IT_RAW

I_FILENAME = P_FILE

TABLES

I_TAB_CONVERTED_DATA = IT_PA0015[]

EXCEPTIONS

CONVERSION_FAILED = 1

OTHERS = 2

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " UPLOAD_FILE

&----


*& Form POPULATE_FILE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM POPULATE_FILE .

CLEAR NODATA.

PERFORM OPEN_GROUP.

LOOP AT IT_PA0015.

REPLACE ALL OCCURRENCES OF '/' IN IT_PA0015-BEGDA WITH '.'.

PERFORM BDC_DYNPRO USING 'SAPMP50A' '1000'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=INS'.

PERFORM BDC_FIELD USING 'RP50G-PERNR'

IT_PA0015-PERNR.

PERFORM BDC_FIELD USING 'RP50G-TIMR6'

'X'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RP50G-CHOIC'.

PERFORM BDC_FIELD USING 'RP50G-CHOIC'

'0015'.

PERFORM BDC_FIELD USING 'RP50G-SUBTY'

IT_PA0015-SUBTY.

PERFORM BDC_DYNPRO USING 'MP001500' '2040'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'Q0015-BETRG'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=UPD'.

PERFORM BDC_FIELD USING 'P0015-BEGDA'

IT_PA0015-BEGDA.

PERFORM BDC_FIELD USING 'Q0015-BETRG'

IT_PA0015-BETRG.

PERFORM BDC_FIELD USING 'P0015-WAERS'

'INR'.

PERFORM BDC_TRANSACTION USING 'PA30'.

ENDLOOP.

PERFORM CLOSE_GROUP.

ENDFORM. " POPULATE_FILE

Regards,

Ramu N.