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

error with sorted internal table with unique key in select statement?

Former Member
0 Likes
500

Hi,

I got a Run-Time error when i used sorted internal table with unique key as below coding

TYPES : BEGIN OF ty_download,

ebeln TYPE ekko-ebeln,

bsart TYPE ekko-bsart,

ekorg TYPE ekko-ekorg,

bukrs TYPE ekko-bukrs,

lifnr TYPE lfa1-lifnr,

ekgrp TYPE ekko-ekgrp,

matnr TYPE mara-matnr,

menge TYPE ekpo-menge,

eindt TYPE eket-eindt,

netpr TYPE ekpo-netpr,

werks TYPE ekpo-werks,

lgort type ekpo-lgort,

mwskz type ekpo-mwskz,

submi type ekko-submi,

END OF ty_download.

TYPES : BEGIN OF ty_ekko,

ebeln TYPE ekko-ebeln,

bukrs TYPE ekko-bukrs,

bsart TYPE ekko-bsart,

lifnr TYPE ekko-lifnr,

ekorg TYPE ekko-ekorg,

ekgrp TYPE ekko-ekgrp,

submi type ekko-submi,

END OF ty_ekko.

TYPES : BEGIN OF ty_ekpo,

ebeln TYPE ekpo-ebeln,

ebelp TYPE ekpo-ebelp,

matnr TYPE ekpo-matnr,

werks TYPE ekpo-werks,

lgort TYPE ekpo-lgort,

matkl TYPE ekpo-matkl,

menge TYPE ekpo-menge,

netpr TYPE ekpo-netpr,

mwskz type ekpo-mwskz,

END OF ty_ekpo.

TYPES : BEGIN OF ty_eket,

ebeln TYPE eket-ebeln,

ebelp TYPE eket-ebelp,

eindt TYPE eket-eindt,

END OF ty_eket.

DATA : it_ekko TYPE sorted TABLE OF ty_ekko with unique key ebeln,

it_ekpo TYPE sorted TABLE OF ty_ekpo with unique key ebeln ebelp,

it_eket TYPE sorted TABLE OF ty_eket with unique key ebeln ebelp,

it_download TYPE TABLE OF ty_download,

it_header TYPE TABLE OF ty_header.

DATA : gv_date TYPE ekko-aedat.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE tit_name.

SELECT-OPTIONS : s_date FOR gv_date.

SELECTION-SCREEN END OF BLOCK b1.

INITIALIZATION.

tit_name = text-001.

AT SELECTION-SCREEN.

PERFORM : validate_date.

START-OF-SELECTION.

PERFORM :

read_ekko_data,

read_ekpo_data,

read_eket_data,

prepare_po_data,

prepare_header,

download_data.

&----


*& Form validate_date

&----


  • text

----


FORM validate_date .

DATA : l_date LIKE gv_date.

SELECT SINGLE bedat

FROM ekko

INTO l_date

WHERE aedat IN s_date.

IF sy-subrc <> 0.

MESSAGE e000 WITH 'Date not Found'.

ENDIF.

ENDFORM. " validate_date

&----


*& Form read_ekko_data

&----


  • text

----


FORM read_ekko_data .

IF it_ekko[] IS INITIAL.

SELECT ebeln

bukrs

bsart

lifnr

ekorg

ekgrp

submi

FROM ekko

INTO TABLE it_ekko

WHERE aedat IN s_date.

IF sy-subrc <> 0.

MESSAGE e000 WITH 'No PO Created in Specified Date'.

ENDIF.

ENDIF.

ENDFORM. " read_ekko_data

&----


*& Form read_ekpo_data

&----


  • text

----


FORM read_ekpo_data .

IF it_ekko[] IS NOT INITIAL.

SELECT ebeln

ebelp

matnr

werks

lgort

matkl

menge

netpr

mwskz

FROM ekpo

INTO TABLE it_ekpo

FOR ALL ENTRIES IN it_ekko

WHERE ebeln = it_ekko-ebeln.

ENDIF.

ENDFORM. " read_ekpo_data

&----


*& Form read_eket_data

&----


  • text

----


FORM read_eket_data .

IF it_ekpo[] IS NOT INITIAL.

SELECT ebeln

ebelp

eindt

FROM eket

INTO TABLE it_eket

FOR ALL ENTRIES IN it_ekpo

WHERE ebeln = it_ekpo-ebeln

AND ebelp = it_ekpo-ebelp.

ENDIF.

ENDFORM. " read_eket_data

&----


*& Form prepare_po_data

&----


  • text

----


FORM prepare_po_data .

field-symbols : <fs_ekko> LIKE LINE OF it_ekko,

<fs_ekpo> LIKE LINE OF it_ekpo,

<fs_eket> LIKE LINE OF it_eket.

DATA : ls_download LIKE LINE OF it_download.

LOOP AT it_ekpo assigning <fs_ekpo>.

READ TABLE it_ekko assigning <fs_ekko> WITH table KEY ebeln = <fs_ekpo>-ebeln.

IF sy-subrc = 0.

CLEAR ls_download.

ls_download-ebeln = <fs_ekko>-ebeln.

ls_download-bsart = <fs_ekko>-bsart.

ls_download-ekorg = <fs_ekko>-ekorg.

ls_download-bukrs = <fs_ekko>-bukrs.

ls_download-lifnr = <fs_ekko>-lifnr.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'

EXPORTING

input = ls_download-lifnr

IMPORTING

OUTPUT = ls_download-lifnr.

ls_download-matnr = <fs_ekpo>-matnr.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'

EXPORTING

input = ls_download-matnr

IMPORTING

OUTPUT = ls_download-matnr.

ls_download-werks = <fs_ekpo>-werks.

ls_download-menge = <fs_ekpo>-menge.

ls_download-netpr = <fs_ekpo>-netpr.

ls_download-ekgrp = <fs_ekko>-ekgrp.

ls_download-submi = <fs_ekko>-submi.

ls_download-mwskz = <fs_ekpo>-mwskz.

READ TABLE it_eket assigning <fs_eket> WITH table KEY ebeln = <fs_ekpo>-ebeln

ebelp = <fs_ekpo>-ebelp.

IF sy-subrc = 0.

ls_download-eindt = <fs_eket>-eindt.

ENDIF.

COLLECT ls_download INTO it_download.

CONTINUE.

ENDIF.

ENDLOOP.

ENDFORM. " prepare_po_data

can anyone suggest me how to solve this

2 REPLIES 2
Read only

Former Member
0 Likes
424

can u tell us what was the run time error you got ?

Read only

Former Member
0 Likes
424

Thanks