2010 Mar 10 12:15 PM
Hi All,
If the file is open when we are uploading the data into SAP, it shoud show the error message ' cant read the file'. I am using ALSM_EXCEL_TO_INTERNAL_TABLE FM to upload the data.
Please let me know if there's any sample code which i can make use of.
Thanks and Regards,
Sireesha
2010 Mar 10 12:26 PM
Hi ,
Here is the sample code :
&----
*& Report Y_TEST_ZEXCELUP
*&
&----
*&
*&
&----
REPORT y_test_zexcelup.
*REPORT ZEXCELUP.
TABLES: alsmex_tabline.
DATA: BEGIN OF iexcel OCCURS 0.
INCLUDE STRUCTURE alsmex_tabline.
DATA: END OF iexcel.
No of columns
DATA: BEGIN OF data_tab OCCURS 0,
value_0001(10),
value_0002(10),
value_0003(10),
value_0004(10),
value_0005(10),
value_0006(10),
value_0007(10),
value_0008(10),
value_0009(10),
value_0010(10),
value_0011(10),
value_0012(10),
value_0013(10),
value_0014(10),
value_0015(10),
value_0016(10),
value_0017(10),
value_0018(10),
value_0019(10),
value_0020(10),
value_0021(10),
value_0022(10),
value_0023(10),
value_0024(10),
value_0025(10),
value_0026(10),
value_0027(10),
value_0028(10),
value_0029(10),
value_0030(10),
value_0031(10),
value_0032(10),
value_0033(10),
value_0034(10),
value_0035(10),
value_0036(10),
value_0037(10),
value_0038(10),
value_0039(10),
value_0040(10),
value_0041(10),
value_0042(10),
value_0043(10),
value_0044(10),
value_0045(10),
value_0046(10),
value_0047(10),
value_0048(10),
value_0049(10),
value_0050(10),
value_0051(10),
value_0052(10),
value_0053(10),
value_0054(10),
value_0055(10),
value_0056(10),
value_0057(10),
value_0058(10),
value_0059(10),
value_0060(10),
value_0061(10),
value_0062(10),
value_0063(10),
value_0064(10),
value_0065(10),
value_0066(10),
value_0067(10),
value_0068(10),
value_0069(10),
value_0070(10),
value_0071(10),
value_0072(10),
value_0073(10),
value_0074(10),
value_0075(10),
value_0076(10),
value_0077(10),
value_0078(10),
value_0079(10),
value_0080(10),
value_0081(10),
value_0082(10),
value_0083(10),
value_0084(10),
value_0085(10),
value_0086(10),
value_0087(10),
value_0088(10),
value_0089(10),
value_0090(10),
value_0091(10),
value_0092(10),
value_0093(10),
value_0094(10),
value_0095(10),
value_0096(10),
value_0097(10),
value_0098(10),
value_0099(10),
value_0100(10).
DATA: END OF data_tab.
DATA: tind(4) TYPE n.
DATA: zwfeld(19).
FIELD-SYMBOLS: <fs1>.
PARAMETERS: filenm LIKE rlgrap-filename MEMORY ID m01,
noheader AS CHECKBOX.
At selection screen
AT SELECTION-SCREEN ON VALUE-REQUEST FOR filenm.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'FILENM'
IMPORTING
file_name = filenm.
start of selection
START-OF-SELECTION.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = filenm
i_begin_col = 1
i_begin_row = 1
i_end_col = 10
i_end_row = 2
TABLES
intern = iexcel
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
WRITE: / 'EXCEL UPLOAD FAILED ', filenm, sy-subrc.
ELSE.
SORT iexcel BY row col.
LOOP AT iexcel.
IF noheader = 'X'
AND iexcel-row = 1.
CONTINUE.
ENDIF.
tind = iexcel-col.
CONCATENATE 'DATA_TAB-VALUE_' tind INTO zwfeld.
ASSIGN (zwfeld) TO <fs1>.
<fs1> = iexcel-value.
AT END OF row.
APPEND data_tab.
WRITE:/ 'data_tab ', data_tab-value_0001, data_tab-value_0002,
data_tab-value_0003, data_tab-value_0004.
CLEAR data_tab.
ENDAT.
ENDLOOP.
ENDIF.
Regards
2010 Mar 10 12:18 PM
ALSM_EXCEL_TO_INTERNAL_TABLE---function module uses OLE technic to read the EXCEL file data. So we should close the file before reading the file content. Other wise OLE errors will raise while using that function module.
2010 Mar 10 12:26 PM
Hi ,
Here is the sample code :
&----
*& Report Y_TEST_ZEXCELUP
*&
&----
*&
*&
&----
REPORT y_test_zexcelup.
*REPORT ZEXCELUP.
TABLES: alsmex_tabline.
DATA: BEGIN OF iexcel OCCURS 0.
INCLUDE STRUCTURE alsmex_tabline.
DATA: END OF iexcel.
No of columns
DATA: BEGIN OF data_tab OCCURS 0,
value_0001(10),
value_0002(10),
value_0003(10),
value_0004(10),
value_0005(10),
value_0006(10),
value_0007(10),
value_0008(10),
value_0009(10),
value_0010(10),
value_0011(10),
value_0012(10),
value_0013(10),
value_0014(10),
value_0015(10),
value_0016(10),
value_0017(10),
value_0018(10),
value_0019(10),
value_0020(10),
value_0021(10),
value_0022(10),
value_0023(10),
value_0024(10),
value_0025(10),
value_0026(10),
value_0027(10),
value_0028(10),
value_0029(10),
value_0030(10),
value_0031(10),
value_0032(10),
value_0033(10),
value_0034(10),
value_0035(10),
value_0036(10),
value_0037(10),
value_0038(10),
value_0039(10),
value_0040(10),
value_0041(10),
value_0042(10),
value_0043(10),
value_0044(10),
value_0045(10),
value_0046(10),
value_0047(10),
value_0048(10),
value_0049(10),
value_0050(10),
value_0051(10),
value_0052(10),
value_0053(10),
value_0054(10),
value_0055(10),
value_0056(10),
value_0057(10),
value_0058(10),
value_0059(10),
value_0060(10),
value_0061(10),
value_0062(10),
value_0063(10),
value_0064(10),
value_0065(10),
value_0066(10),
value_0067(10),
value_0068(10),
value_0069(10),
value_0070(10),
value_0071(10),
value_0072(10),
value_0073(10),
value_0074(10),
value_0075(10),
value_0076(10),
value_0077(10),
value_0078(10),
value_0079(10),
value_0080(10),
value_0081(10),
value_0082(10),
value_0083(10),
value_0084(10),
value_0085(10),
value_0086(10),
value_0087(10),
value_0088(10),
value_0089(10),
value_0090(10),
value_0091(10),
value_0092(10),
value_0093(10),
value_0094(10),
value_0095(10),
value_0096(10),
value_0097(10),
value_0098(10),
value_0099(10),
value_0100(10).
DATA: END OF data_tab.
DATA: tind(4) TYPE n.
DATA: zwfeld(19).
FIELD-SYMBOLS: <fs1>.
PARAMETERS: filenm LIKE rlgrap-filename MEMORY ID m01,
noheader AS CHECKBOX.
At selection screen
AT SELECTION-SCREEN ON VALUE-REQUEST FOR filenm.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'FILENM'
IMPORTING
file_name = filenm.
start of selection
START-OF-SELECTION.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = filenm
i_begin_col = 1
i_begin_row = 1
i_end_col = 10
i_end_row = 2
TABLES
intern = iexcel
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
WRITE: / 'EXCEL UPLOAD FAILED ', filenm, sy-subrc.
ELSE.
SORT iexcel BY row col.
LOOP AT iexcel.
IF noheader = 'X'
AND iexcel-row = 1.
CONTINUE.
ENDIF.
tind = iexcel-col.
CONCATENATE 'DATA_TAB-VALUE_' tind INTO zwfeld.
ASSIGN (zwfeld) TO <fs1>.
<fs1> = iexcel-value.
AT END OF row.
APPEND data_tab.
WRITE:/ 'data_tab ', data_tab-value_0001, data_tab-value_0002,
data_tab-value_0003, data_tab-value_0004.
CLEAR data_tab.
ENDAT.
ENDLOOP.
ENDIF.
Regards