‎2009 Aug 31 6:13 AM
Hi All,
I order to convert a file, i m using function module TEXT_CONVERT_XLS_TO_SAP, but its not working. Its giving me an information message " error generating the test frame". I have also tried other function modules of this function group TRUX,but same problem is there.
Is there any alternative to this module which is working perfectly? Any Pointers to this will be highly appreciated.
Thanks,
Nidhi Kothiyal
‎2009 Aug 31 6:29 AM
hi i think this use full to you
DATA IT_EXCEL LIKE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
DATA : IT_COL LIKE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE,
WA_COL LIKE ALSMEX_TABLINE.
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-100.
PARAMETERS : FILENAME TYPE LOCALFILE DEFAULT 'C:\CLICK F4'.
SELECTION-SCREEN : END OF BLOCK B1.
INCLUDE BDCRECX1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILENAME.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
STATIC = 'X'
CHANGING
FILE_NAME = FILENAME.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = FILENAME
I_BEGIN_COL = 1
I_BEGIN_ROW = 3
I_END_COL = 25
I_END_ROW = 10000
TABLES
INTERN = IT_EXCEL
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE I000(ABAPINFO) WITH 'FILE NOT FOUND'.
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT IT_EXCEL.
WA_COL-ROW = IT_EXCEL-ROW.
APPEND WA_COL TO IT_COL.
CLEAR : WA_COL,
IT_EXCEL-ROW.
ENDLOOP.
SORT IT_COL BY ROW ASCENDING.
DELETE ADJACENT DUPLICATES FROM IT_COL.
SORT IT_EXCEL BY ROW ASCENDING.
START-OF-SELECTION.
LOOP AT IT_COL INTO WA_COL.
LOOP AT IT_EXCEL WHERE ROW = WA_COL-ROW .
CASE IT_EXCEL-COL.
WHEN '0001'.
IT_RECORD-BLDAT_001 = IT_EXCEL-VALUE.
WHEN '0002'.
IT_RECORD-BLART_002 = IT_EXCEL-VALUE.
WHEN '0003'.
IT_RECORD-BUKRS_003 = IT_EXCEL-VALUE.
WHEN '0004'.
IT_RECORD-BUDAT_004 = IT_EXCEL-VALUE.
WHEN '0005'.
IT_RECORD-MONAT_005 = IT_EXCEL-VALUE.
WHEN '0006'.
IT_RECORD-WAERS_006 = IT_EXCEL-VALUE.
WHEN '0007'.
IT_RECORD-XBLNR_007 = IT_EXCEL-VALUE.
WHEN '0008'.
IT_RECORD-BKTXT_008 = IT_EXCEL-VALUE.
WHEN '0009'.
IT_RECORD-NEWBS_010 = IT_EXCEL-VALUE.
WHEN '0010'.
IT_RECORD-NEWKO_011 = IT_EXCEL-VALUE.
WHEN '0011'.
IT_RECORD-WRBTR_012 = IT_EXCEL-VALUE.
WHEN '0012'.
IT_RECORD-GSBER_013 = IT_EXCEL-VALUE.
WHEN '0013'.
IT_RECORD-ZFBDT_014 = IT_EXCEL-VALUE.
WHEN '0014'.
IT_RECORD-SGTXT_015 = IT_EXCEL-VALUE.
WHEN '0015'.
IT_RECORD-NEWBS_016 = IT_EXCEL-VALUE.
WHEN '0016'.
IT_RECORD-NEWKO_017 = IT_EXCEL-VALUE.
WHEN '0017'.
IT_RECORD-WRBTR_018 = IT_EXCEL-VALUE.
WHEN '0018'.
IT_RECORD-VALUT_019 = IT_EXCEL-VALUE.
WHEN '0019'.
IT_RECORD-SGTXT_020 = IT_EXCEL-VALUE.
WHEN '0020'.
IT_RECORD-GSBER_021 = IT_EXCEL-VALUE.
WHEN '0021'.
IT_RECORD-KOSTL_022 = IT_EXCEL-VALUE.
ENDCASE.
ENDLOOP.
APPEND IT_RECORD.
CLEAR : IT_RECORD.
ENDLOOP.
‎2009 Aug 31 6:20 AM
‎2009 Aug 31 6:23 AM
Hi Vikranth,
I tried it with GUI_UPLOAD itself, but its giving me the same error!!
‎2009 Aug 31 6:23 AM
Hi Nidhi,
try this FM
ALSM_EXCEL_TO_INTERNAL_TABLE
[link|https://wiki.sdn.sap.com/wiki/display/Snippets/Excel%20Upload%20Alternative%20function%20module%20KCD_EXCEL_OLE_TO_INT_CONVERT]see the sample link,
regards,
Archana
‎2009 Aug 31 6:25 AM
hello Nidhi,
This error is caused by the complex typing of the parameter of the function module.The test environment of the function builder cannot represent these parameters in the input template (for eg strings, object references).
U can use where used list for the function module, and check how it has been called in other programs and implement directly in the program , then it will work and give u result.
regards,
Shweta
‎2009 Aug 31 6:26 AM
Hi,
check FM ALSM_EXCEL_TO_INTERNAL_TABLE
Also check the following code for FM usage
PARAMETER:pr_file LIKE rlgrap-filename OBLIGATORY.
DATA: w_filenm LIKE rlgrap-filename.
DATA: rawdata(4096) TYPE c OCCURS 0.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pr_file.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = pr_file
mask = ',*.xls.'
mode = 'O'
title = 'Upload File'(i03)
IMPORTING
filename = pr_file
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
START-OF-SELECTION.
WRITE pr_file TO w_filenm.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
I_FIELD_SEPERATOR =
I_LINE_HEADER =
i_tab_raw_data = rawdata
i_filename = w_filenm
TABLES
i_tab_converted_data = itab
EXCEPTIONS
conversion_failed = 1
OTHERS = 2
Regards,
Amit
‎2009 Aug 31 6:29 AM
hi i think this use full to you
DATA IT_EXCEL LIKE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
DATA : IT_COL LIKE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE,
WA_COL LIKE ALSMEX_TABLINE.
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-100.
PARAMETERS : FILENAME TYPE LOCALFILE DEFAULT 'C:\CLICK F4'.
SELECTION-SCREEN : END OF BLOCK B1.
INCLUDE BDCRECX1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILENAME.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
STATIC = 'X'
CHANGING
FILE_NAME = FILENAME.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = FILENAME
I_BEGIN_COL = 1
I_BEGIN_ROW = 3
I_END_COL = 25
I_END_ROW = 10000
TABLES
INTERN = IT_EXCEL
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE I000(ABAPINFO) WITH 'FILE NOT FOUND'.
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT IT_EXCEL.
WA_COL-ROW = IT_EXCEL-ROW.
APPEND WA_COL TO IT_COL.
CLEAR : WA_COL,
IT_EXCEL-ROW.
ENDLOOP.
SORT IT_COL BY ROW ASCENDING.
DELETE ADJACENT DUPLICATES FROM IT_COL.
SORT IT_EXCEL BY ROW ASCENDING.
START-OF-SELECTION.
LOOP AT IT_COL INTO WA_COL.
LOOP AT IT_EXCEL WHERE ROW = WA_COL-ROW .
CASE IT_EXCEL-COL.
WHEN '0001'.
IT_RECORD-BLDAT_001 = IT_EXCEL-VALUE.
WHEN '0002'.
IT_RECORD-BLART_002 = IT_EXCEL-VALUE.
WHEN '0003'.
IT_RECORD-BUKRS_003 = IT_EXCEL-VALUE.
WHEN '0004'.
IT_RECORD-BUDAT_004 = IT_EXCEL-VALUE.
WHEN '0005'.
IT_RECORD-MONAT_005 = IT_EXCEL-VALUE.
WHEN '0006'.
IT_RECORD-WAERS_006 = IT_EXCEL-VALUE.
WHEN '0007'.
IT_RECORD-XBLNR_007 = IT_EXCEL-VALUE.
WHEN '0008'.
IT_RECORD-BKTXT_008 = IT_EXCEL-VALUE.
WHEN '0009'.
IT_RECORD-NEWBS_010 = IT_EXCEL-VALUE.
WHEN '0010'.
IT_RECORD-NEWKO_011 = IT_EXCEL-VALUE.
WHEN '0011'.
IT_RECORD-WRBTR_012 = IT_EXCEL-VALUE.
WHEN '0012'.
IT_RECORD-GSBER_013 = IT_EXCEL-VALUE.
WHEN '0013'.
IT_RECORD-ZFBDT_014 = IT_EXCEL-VALUE.
WHEN '0014'.
IT_RECORD-SGTXT_015 = IT_EXCEL-VALUE.
WHEN '0015'.
IT_RECORD-NEWBS_016 = IT_EXCEL-VALUE.
WHEN '0016'.
IT_RECORD-NEWKO_017 = IT_EXCEL-VALUE.
WHEN '0017'.
IT_RECORD-WRBTR_018 = IT_EXCEL-VALUE.
WHEN '0018'.
IT_RECORD-VALUT_019 = IT_EXCEL-VALUE.
WHEN '0019'.
IT_RECORD-SGTXT_020 = IT_EXCEL-VALUE.
WHEN '0020'.
IT_RECORD-GSBER_021 = IT_EXCEL-VALUE.
WHEN '0021'.
IT_RECORD-KOSTL_022 = IT_EXCEL-VALUE.
ENDCASE.
ENDLOOP.
APPEND IT_RECORD.
CLEAR : IT_RECORD.
ENDLOOP.
‎2009 Aug 31 6:41 AM
Hi ,
Check this FM ALSM_EXCEL_TO_INTERNAL_TABLE ,
Hope its useful for u .
Regards ,
Shankar GJ
‎2009 Aug 31 6:48 AM
Hi,
Post the code for the FM you are using. So that you can receive suggestions if any error exists
Regards,
Vikranth
‎2009 Aug 31 6:53 AM
Hello Nidhi,
It looks like there is some problem with your SAP installation. Check ABAP dump details from ST22. That may give you some pointers using that you can search SAP notes. Because problem should occure for one function module but not for all that's what I feel.
Hope this helps!
Thanks,
Augustin.