2008 Dec 03 12:38 PM
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
2008 Dec 03 1:17 PM
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