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

BDC for Transaction IA01 including recording from excel (sample Code)

Former Member
0 Likes
595

Dear Experts,

Can anyone give me a sample BDC code for transaction IA01 from excel

Thanks in advance

Regards

Sayandeep

Dear Experts,

Can anyone give me a sample BDC code for transaction IA01 from excel

Thanks in advance

Regards

Sayandeep

1 REPLY 1
Read only

Former Member
0 Likes
472

Hi,

Try This Code

report Y_P_GB01

no standard page heading line-size 255.

************************************************************************

  • R O H M A N D H A A S C O M P A N Y *

======================================================================

  • Development ID : mqhpkl *

  • Creation Date : 24-11-2008 *

  • Developer Name : Paramesh Kalluri *

----


  • Program Title : Upload the Special Ledger data from Excel to SAP *

  • Description : *

----


----


  • Constants *

----


CONSTANTS: c_begcol TYPE i VALUE 1,

c_begrow TYPE i VALUE 1,

c_endcol TYPE i VALUE 10,

c_endrow TYPE i VALUE 10.

----


  • Types Declaration *

----


TYPES : begin of d_itab,

  • data element: BUKRS

BUKRS_001(004),

  • data element: DOCTY

DOCTY_002(002),

  • data element: RVERS

RVERS_003(003),

  • data element: BUDAT

DATE_004(010),

  • data element: RTCUR

RTCUR_005(005),

  • data element: GCURR_A

GCURR_006(005),

  • data element:

GD_USE_TARGET_LEDGER_007(001),

  • data element:

TARGET_LEDGER_008(002),

  • data element: UTAB_D

UTAB_009(030),

  • data element: VTCUR12

TSL_010(019),

end of d_itab.

----


  • Data Declarations *

----


DATA: it_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE,

it_bdcmsgcoll LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE,

XL_itab type alsmex_tabline occurs 0 with header line,

msg_disp TYPE string.

data : it_itab type standard table of d_itab,

wa_itab type d_itab.

----


  • Selection Screen *

----


SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

PARAMETERS: p_file LIKE rlgrap-filename.

SELECTION-SCREEN: END OF BLOCK b1.

----


  • At Selection Screen for File *

----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

perform f4_filename.

----


  • Start-of-selection *

----


start-of-selection.

*Uploading the data from excel to internal table

perform excel_upload.

*Uploading to SAP

perform chek_data.

if sy-subrc ne 0.

perform format_message.

endif.

end-of-selection.

&----


*& Form F4_FILENAME

&----


  • Find the file

----


  • --> p1 text

  • <-- p2 text

----


FORM F4_FILENAME .

CALL FUNCTION 'F4_FILENAME'

IMPORTING

FILE_NAME = p_file.

ENDFORM. " F4_FILENAME

&----


*& Form CHEK_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CHEK_DATA .

loop at it_itab into wa_itab.

perform bdc_dynpro using 'SAPMGBUK' '0102'.

perform bdc_field using 'BDC_CURSOR'

'GLU1-BUKRS'.

perform bdc_field using 'BDC_OKCODE'

'=ERF'.

perform bdc_field using 'GLU1-BUKRS'

wa_itab-bukrs_001.

perform bdc_field using 'GLU1-DOCTY'

wa_itab-docty_002.

perform bdc_field using 'GLU1-RVERS'

wa_itab-RVERS_003.

perform bdc_field using 'RGBUK-DATE'

wa_itab-DATE_004.

perform bdc_field using 'GLU1-RTCUR'

wa_itab-RTCUR_005.

perform bdc_field using 'RGBUK-GCURR'

wa_itab-GCURR_006.

perform bdc_field using 'GD_USE_TARGET_LEDGER'

wa_itab-GD_USE_TARGET_LEDGER_007.

perform bdc_field using 'TARGET_LEDGER'

wa_itab-TARGET_LEDGER_008.

perform bdc_field using 'T883S-UTAB'

wa_itab-UTAB_009.

perform bdc_dynpro using 'SAPMGBUK' '0110'.

perform bdc_field using 'BDC_CURSOR'

'GLU1-TSL'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'GLU1-TSL'

wa_itab-TSL_010.

perform bdc_dynpro using 'SAPMGBUK' '0110'.

perform bdc_field using 'BDC_OKCODE'

'/EBACK'.

perform bdc_field using 'BDC_CURSOR'

'GLU1-TSL'.

perform bdc_dynpro using 'SAPLSPO1' '0200'.

perform bdc_field using 'BDC_OKCODE'

'=YES'.

perform bdc_dynpro using 'SAPMGBUK' '0102'.

perform bdc_field using 'BDC_OKCODE'

'/EBACK'.

perform bdc_field using 'BDC_CURSOR'

'GLU1-BUKRS'.

CALL TRANSACTION 'GB01' USING IT_BDCDATA MODE 'A' UPDATE 'A' MESSAGES

INTO IT_BDCMSGCOLL.

CLEAR WA_ITAB.

refresh it_bdcdata.

ENDLOOP.

ENDFORM. " CHEK_DATA

&----


*& Form EXCEL_UPLOAD

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM EXCEL_UPLOAD .

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

EXPORTING

FILENAME = p_file

I_BEGIN_COL = c_begcol

I_BEGIN_ROW = c_begrow

I_END_COL = c_endcol

I_END_ROW = c_endrow

TABLES

INTERN = xl_itab.

  • EXCEPTIONS

  • INCONSISTENT_PARAMETERS = 1

  • UPLOAD_OLE = 2

  • OTHERS = 3

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

loop at xl_itab.

case xl_itab-col.

when '1'.

wa_itab-bukrs_001 = xl_itab-value.

when '2'.

wa_itab-docty_002 = xl_itab-value.

when '3'.

wa_itab-RVERS_003 = xl_itab-value.

when '4'.

wa_itab-DATE_004 = xl_itab-value.

when '5'.

wa_itab-RTCUR_005 = xl_itab-value.

when '6'.

wa_itab-GCURR_006 = xl_itab-value.

when '7'.

wa_itab-GD_USE_TARGET_LEDGER_007 = xl_itab-value.

when '8'.

wa_itab-TARGET_LEDGER_008 = xl_itab-value.

when '9'.

wa_itab-UTAB_009 = xl_itab-value.

when '10'.

wa_itab-TSL_010 = xl_itab-value.

*at end of row.

  • append wa_itab to it_itab.

*endat.

endcase.

at end of row.

append wa_itab to it_itab.

endat.

endloop.

ENDFORM. " EXCEL_UPLOAD

&----


*& Form BDC_DYNPRO

&----


  • text

----


  • -->P_0169 text

  • -->P_0170 text

----


FORM BDC_DYNPRO USING A B.

clear it_bdcdata.

it_bdcdata-PROGRAM = A.

it_bdcdata-DYNPRO = B.

it_bdcdata-DYNBEGIN = 'X'.

APPEND it_bdcdata.

ENDFORM. " BDC_DYNPRO

&----


*& Form BDC_FIELD

&----


  • text

----


  • -->P_0174 text

  • -->P_0175 text

----


FORM BDC_FIELD USING C D.

clear

it_bdcdata.

it_bdcdata-FNAM = C.

it_bdcdata-FVAL = D.

APPEND it_bdcdata.

ENDFORM. " BDC_FIELD

&----


*& Form FORMAT_MESSAGE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FORMAT_MESSAGE .

LOOP AT IT_BDCMSGCOLL.

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

ID = IT_BDCMSGCOLL-MSGID

LANG = '-D'

NO = it_bdcmsgcoll-msgnr

V1 = IT_BDCMSGCOLL-MSGV1

V2 = IT_BDCMSGCOLL-MSGV2

V3 = IT_BDCMSGCOLL-MSGV3

V4 = IT_BDCMSGCOLL-MSGV4

IMPORTING

MSG = MSG_DISP

  • EXCEPTIONS

  • NOT_FOUND = 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.

WRITE:/ MSG_DISP.

ENDLOOP.

ENDFORM. " FORMAT_MESSAGE

******************End of the Program**********

All the best