11-26-2007 9:01 AM
Hi abapers,
Am uploading records from excel file to my z transaction.
If there is 25 records in my flatfile its uploading without any problem..But if it exceeds more than 25 am getting error as
- <b>Runtime error LIST_TOO_MANY_LPROS has occurred</b>
Can u plz help me to sort out this problem..
Regards,
Ramya..
11-26-2007 9:03 AM
u can not used occurs 0.
used work area.
exam;
types: begin of typ_str,
define download struct.
end of typ_str.
data: it type standard table of typ_str,
wa type db.
11-26-2007 9:12 AM
Hi ,
I havent used occurs 0,
First i declared types. Later created work area and internal table refering to type.
11-26-2007 9:20 AM
11-26-2007 9:27 AM
Check ur code with the below.
data: begin of excel_tab occurs 0.
include structure alsmex_tabline.
data: end of excel_tab .
data: begin of itab occurs 0,
bldat like bkpf-bldat,
blart like bkpf-blart,
bukrs like bkpf-bukrs,
budat like bkpf-budat,
waers like bkpf-waers,
bschl like bseg-bschl,
hkont like bseg-hkont,
sgtxt like bseg-sgtxt,
end of itab.
data: process_tab_struct_tmp like itab.
field-symbols: <fs1>.
selection-screen: begin of block blk.
parameters: fname type rlgrap-filename.
selection-screen: end of block blk.
at selection-screen on value-request for fname.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = 'ZFI_EXCEL'
DYNPRO_NUMBER = '1000'
FIELD_NAME = 'FNAME'
IMPORTING
FILE_NAME = FNAME.
START-OF-SELECTION.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = FNAME
i_begin_col = 1
i_begin_row = 1
i_end_col = 24
i_end_row = 60000
tables
intern = EXCEL_TAB
LOOP AT EXCEL_TAB.
assign component excel_tab-col of structure
process_tab_struct_tmp to <fs1>.
<fs1> = excel_tab-value.
at end of row.
move-corresponding: process_tab_struct_tmp to itab. Move values to itab
append itab.
endat.
ENDLOOP.
LOOP AT ITAB.
WRITE:/2 ITAB-BLDAT,14(8) ITAB-BLART,20(10) ITAB-BUDAT.
ENDLOOP.
11-26-2007 9:50 AM
Hi ,
In my excel file am having 200 records and am able to pass it to the internal table..
But not able to pass the 26 record in my ztcode..its updating upto 25 records in ztcode but when it comes for 26th record throwing error as mentioned above..
11-26-2007 9:28 AM
TYPE-POOLS: truxs.
DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA: ctumode LIKE ctu_params-dismode.
TYPES : BEGIN OF ty_details,
z_salesorg LIKE vbak-vkorg,
z_depot LIKE vbak-kunnr,
z_trxdate(8) TYPE c,
z_day(2) TYPE c,
z_material(18) TYPE c,
z_qty(7) TYPE c,
z_salesman(20) TYPE c,
END OF ty_details.
*TYPES : BEGIN OF ty_details,
z_salesorg LIKE vbak-vkorg,
z_depot LIKE vbak-kunnr,
z_material(18) TYPE c,
z_salesman(20) TYPE c,
z_trxdate(10) TYPE c,
z_day(2) TYPE c,
z_qty(7) TYPE c,
END OF ty_details.
DATA: file_name TYPE rlgrap-filename.
DATA: it_excel TYPE TABLE OF alsmex_tabline,
wa_excel LIKE LINE OF it_excel.
DATA: it_details TYPE TABLE OF ty_details,
wa_details TYPE ty_details.
DATA: it_header TYPE TABLE OF ty_details,
wa_header TYPE ty_details.
DATA: i_text_data TYPE truxs_t_text_data.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
program_name = syst-repid
dynpro_number = syst-dynnr
FIELD_NAME = ' '
STATIC = ' '
MASK = ' '
CHANGING
file_name = file_name
EXCEPTIONS
mask_too_long = 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.
IF file_name IS INITIAL.
MESSAGE 'Please Select a file to Upload' TYPE 'E'.
ELSE.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = file_name
i_begin_col = 1
i_begin_row = 1
i_end_col = 7
i_end_row = 30000
TABLES
intern = it_excel
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.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_field_seperator = 'X'
i_line_header = 'X'
i_tab_raw_data = i_text_data
i_filename = file_name
TABLES
i_tab_converted_data = it_details
EXCEPTIONS
conversion_failed = 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.
ENDIF.
LOOP AT it_excel INTO wa_excel.
*AT NEW ROW.
CASE wa_excel-col.
WHEN '0001'.
wa_details-z_salesorg = wa_excel-value.
WHEN '0002'.
wa_details-z_depot = wa_excel-value.
WHEN '0003'.
wa_details-z_material = wa_excel-value.
WHEN '0004'.
wa_details-z_salesman = wa_excel-value.
WHEN '0005'.
wa_details-z_trxdate = wa_excel-value.
WHEN '0006'.
wa_details-z_day = wa_excel-value.
WHEN '0007'.
wa_details-z_qty = wa_excel-value.
APPEND wa_details TO it_details.
ENDCASE.
*ENDAT.
ENDLOOP.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = 'C:\bdcdata.txt'
filetype = 'ASC'
TABLES
data_tab = it_data
EXCEPTIONS
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
it_header[] = it_details[].
LOOP AT it_header INTO wa_header.
PERFORM bdc_dynpro USING 'ZSD_SECSALES_INFO' '9000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ME_CREATE'.
PERFORM bdc_field USING 'BDC_CURSOR'
'ZSDSECSALES-VKORG'.
PERFORM bdc_dynpro USING 'ZSD_SECSALES_INFO' '9001'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'ZSDSECSALES-SALEBY'.
PERFORM bdc_field USING 'ZSDSECSALES-VKORG'
wa_header-z_salesorg.
PERFORM bdc_field USING 'ZSDSECSALES-KUNNR'
wa_header-z_depot.
PERFORM bdc_field USING 'ZSDSECSALES-BLDAT'
wa_header-z_trxdate.
PERFORM bdc_field USING 'ZSDSECSALES-ZDAY'
wa_header-z_day.
PERFORM bdc_field USING 'ZSDSECSALES-MATNR'
wa_header-z_material.
PERFORM bdc_field USING 'ZSDSECSALES-MENGE'
wa_header-z_qty.
PERFORM bdc_field USING 'ZSDSECSALES-SALEBY'
wa_header-z_salesman.
PERFORM bdc_dynpro USING 'ZSD_SECSALES_INFO' '9001'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=PB_SAVE'.
PERFORM bdc_field USING 'BDC_CURSOR'
'ZSDSECSALES-SALEBY'.
PERFORM bdc_field USING 'ZSDSECSALES-VKORG'
wa_header-z_salesorg.
PERFORM bdc_field USING 'ZSDSECSALES-KUNNR'
wa_header-z_depot.
PERFORM bdc_field USING 'ZSDSECSALES-BLDAT'
wa_header-z_trxdate.
PERFORM bdc_field USING 'ZSDSECSALES-ZDAY'
wa_header-z_day.
PERFORM bdc_field USING 'ZSDSECSALES-MATNR'
wa_header-z_material.
PERFORM bdc_field USING 'ZSDSECSALES-MENGE'
wa_header-z_qty.
PERFORM bdc_field USING 'ZSDSECSALES-SALEBY'
wa_header-z_salesman.
PERFORM bdc_dynpro USING 'ZSD_SECSALES_INFO' '9001'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/EPB_EXIT'.
PERFORM bdc_field USING 'BDC_CURSOR'
'ZSDSECSALES-VKORG'.
ENDLOOP.
PERFORM bdc_dynpro USING 'ZSD_SECSALES_INFO' '9000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ME_EXIT'.
PERFORM bdc_field USING 'BDC_CURSOR'
'ZSDSECSALES-VKORG'.
ctumode = 'N'.
CALL TRANSACTION 'ZSDSS'
USING bdcdata
MODE ctumode
.
----
Start new screen *
----
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM. "BDC_DYNPRO
----
Insert field *
----
FORM bdc_field USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM. "BDC_FIELD