Application Development 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: 

Problem in uploading records

Former Member
0 Kudos

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..

6 REPLIES 6

Former Member
0 Kudos

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.

0 Kudos

Hi ,

I havent used occurs 0,

First i declared types. Later created work area and internal table refering to type.

0 Kudos

can u pls paste ur code

Former Member
0 Kudos

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.

0 Kudos

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..

Former Member
0 Kudos

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