You are on page 1of 4

Code listing for: ZPY_UPLOAD_585

Description: BDC for it 0585


*&---------------------------------------------------------------------*
*& Project ANAND-SAP HR IMPLEMENTATION *
*& *
*& BDC FOR INFOTYPE 0585 . *
*& *
*& Developed by :Manish Srivastava *
*& *
*&---------------------------------------------------------------------*
*& Started on : 22-feb-2006 *
*& *
*&---------------------------------------------------------------------*

report ZPY_UPLOAD_585 no standard page heading .

INCLUDE BDCRECX1.

PARAMETERS: P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.


DATA: IT_EXCEL LIKE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF IT_MAIN OCCURS 0 ,


PERNR(8),
ACNTR(12),
PCNTR(12),
END OF IT_MAIN.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.


PERFORM GET_FILE_NAME.

START-OF-SELECTION.
PERFORM EXCEL_TO_INTERNAL_TABLE.
PERFORM FINAL_TRANS_IT_TAB.

PERFORM OPEN_GROUP.
LOOP AT IT_MAIN.

perform bdc_dynpro using 'SAPMP50A' '1000'.


perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RP50G-PERNR'
it_main-pernr.
perform bdc_field using 'RP50G-TIMR6'
'X'.
perform bdc_field using 'BDC_CURSOR'
'RP50G-CHOIC'.
perform bdc_field using 'RP50G-CHOIC'
'585'.
perform bdc_dynpro using 'SAPMP50A' '1000'.
perform bdc_field using 'BDC_CURSOR'
'RP50G-PERNR'.
perform bdc_field using 'BDC_OKCODE'
'=INS'.
***perform bdc_field using 'RP50G-PERNR'
*** '14563'.
***perform bdc_field using 'RP50G-TIMR6'
*** 'X'.
***perform bdc_field using 'RP50G-CHOIC'
*** 'Section 80 Deductions'.
perform bdc_dynpro using 'MP058500' '2000'.
perform bdc_field using 'BDC_CURSOR'
'Q0585-ACNTR(02)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'Q0585-PCNTR(02)'
it_main-PCNTR.
perform bdc_field using 'Q0585-ACNTR(02)'
it_main-ACNTR.
perform bdc_dynpro using 'MP058500' '2000'.
perform bdc_field using 'BDC_OKCODE'
'=UPD'.
perform bdc_transaction using 'PA30'.

ENDLOOP.
PERFORM CLOSE_GROUP.
*&---------------------------------------------------------------------*
*& Form GET_FILE_NAME
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_FILE_NAME .
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
PROGRAM_NAME = SYST-REPID
DYNPRO_NUMBER = SYST-DYNNR
CHANGING
FILE_NAME = P_FILE.

IF SY-SUBRC <> 0.
ENDIF.

ENDFORM. " GET_FILE_NAME


*&---------------------------------------------------------------------*
*& Form EXCEL_TO_INTERNAL_TABLE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM EXCEL_TO_INTERNAL_TABLE .
DATA: L_BEGIN_COL TYPE I VALUE '1',
L_BEGIN_ROW TYPE I VALUE '1',
L_END_COL TYPE I VALUE '50',
L_END_ROW TYPE I VALUE '2000'.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FILE
I_BEGIN_COL = L_BEGIN_COL
I_BEGIN_ROW = L_BEGIN_ROW
I_END_COL = L_END_COL
I_END_ROW = L_END_ROW
TABLES
INTERN = IT_EXCEL.
IF SY-SUBRC <> 0.
ENDIF.

ENDFORM. " EXCEL_TO_INTERNAL_TABLE


*&---------------------------------------------------------------------*
*& Form FINAL_TRANS_IT_TAB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FINAL_TRANS_IT_TAB .
LOOP AT IT_EXCEL WHERE ROW GT 1.
CASE IT_EXCEL-COL.
WHEN '1'.
MOVE IT_EXCEL-VALUE TO IT_MAIN-PERNR.
WHEN '2'.
MOVE IT_EXCEL-VALUE TO IT_MAIN-PCNTR.
WHEN '3'.
MOVE IT_EXCEL-VALUE TO IT_MAIN-ACNTR.
ENDCASE.

AT END OF ROW.
APPEND IT_MAIN.
CLEAR IT_MAIN.
ENDAT.
ENDLOOP.
endform.

*Text elements
*----------------------------------------------------------
* S09 Error sessn
* S08 Call transaction
* S07 Generate session
* S06 Update Mode
* S05 Processing Mode
* S10 Nodata indicator
* S04 Lock date
* I04 Close Session
* I03 Insert transaction
* I02 Open session
* I01 Session name
* E00 Error opening dataset, return code:
* S03 Keep session
* S02 User
* S01 Session name
* I06 Error session created
* I05 Return code =

*Messages
*----------------------------------------------------------
*
* Message class: MS
*613 Please enter a session name and user name
Extracted by Direct Download Enterprise version 1.2 - E.G.Mellodew. 1998-2004 UK.

You might also like