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

Problem with function module

Former Member
0 Likes
1,376

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,262

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.

9 REPLIES 9
Read only

Former Member
0 Likes
1,262

Hi,

Did u try with GUI_UPLOAD?

Read only

0 Likes
1,262

Hi Vikranth,

I tried it with GUI_UPLOAD itself, but its giving me the same error!!

Read only

Former Member
0 Likes
1,262

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

Read only

Former Member
0 Likes
1,262

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

Read only

Former Member
0 Likes
1,262

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

Read only

Former Member
0 Likes
1,263

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.

Read only

Former Member
0 Likes
1,262

Hi ,

Check this FM ALSM_EXCEL_TO_INTERNAL_TABLE ,

Hope its useful for u .

Regards ,

Shankar GJ

Read only

Former Member
0 Likes
1,262

Hi,

Post the code for the FM you are using. So that you can receive suggestions if any error exists

Regards,

Vikranth

Read only

Former Member
0 Likes
1,262

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.