02-03-2007 10:12 AM
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
02-04-2007 11:40 AM
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.
02-04-2007 11:40 AM
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.