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

getting sort Dump on select Query

ashish_gupta11
Explorer
0 Likes
502

Hi expert,

I m new in abap i m getting short dump on

&----


*& Report ZREAD_ITAB *

*& *

&----


*& *

*& *

&----


REPORT ZREAD_ITAB .

TABLES : MARC,MARA,MAKT.

SELECT-OPTIONS S_MATNR FOR MARC-MATNR .

PARAMETER P_WERKS LIKE MARC-WERKS.

DATA T_MARC LIKE MARC OCCURS 0 WITH HEADER LINE.

DATA T_MARA LIKE MARA OCCURS 0 WITH HEADER LINE.

DATA T_MAKT LIKE MAKT OCCURS 0 WITH HEADER LINE.

DATA : BEGIN OF ITAB OCCURS 0,

MATNR LIKE MARC-MATNR,

WERKS LIKE MARC-WERKS,

MBRSH LIKE MARA-MBRSH,

MEINS LIKE MARA-MEINS,

MATKL LIKE MARA-MATKL,

MAKTX LIKE MAKT-MAKTX,

SPRAS LIKE MAKT-SPRAS,

END OF ITAB.

SELECT MATNR WERKS LVORM FROM MARC INTO CORRESPONDING FIELDS OF TABLE

T_MARC WHERE MATNR IN

S_MATNR AND WERKS = P_WERKS.

IF T_MARC[] IS NOT INITIAL.

*this line)- SELECT MATNR MBRSH MEINS MATKL FROM MARA INTO T_MARA

FOR ALL ENTRIES IN T_MARC WHERE MATNR = T_MARC-MATNR.

endselect.

SELECT MATNR MAKTX SPRAS FROM MAKT INTO CORRESPONDING FIELDS OF

T_MAKT FOR ALL ENTRIES IN T_MARC WHERE MATNR =

T_MARC-MATNR.

endselect.

LOOP AT T_MARC.

READ TABLE T_MARA WITH KEY MATNR = T_MARC-MATNR.

MOVE :

T_MARC-MATNR TO ITAB-MATNR,

T_MARC-WERKS TO ITAB-WERKS.

READ TABLE T_MAKT WITH KEY MATNR = T_MARC-MATNR.

MOVE :

T_MARA-MBRSH TO ITAB-MBRSH,

T_MARA-MEINS TO ITAB-MEINS,

T_MARA-MATKL TO ITAB-MATKL,

T_MAKT-MAKTX TO ITAB-MAKTX,

T_MAKT-SPRAS TO ITAB-SPRAS.

ENDLOOP.

ELSE .

WRITE:/ 'NO DATA FOUND'.

ENDIF.

Please solve.

Regards ,

Ashish

2 REPLIES 2
Read only

RaymondGiuseppi
Active Contributor
0 Likes
415

Use an INTO TABLE (like in your first SELECT statement which is correct)

SELECT MATNR MBRSH MEINS MATKL FROM MARA INTO CORRESPONDING FIELDS OF TABLE T_MARA
  FOR ALL ENTRIES IN T_MARC WHERE MATNR = T_MARC-MATNR.

SELECT MATNR MAKTX SPRAS FROM MAKT INTO CORRESPONDING FIELDS OF TABLE T_MAKT 
  FOR ALL ENTRIES IN T_MARC WHERE MATNR = T_MARC-MATNR AND SPRAS = SY-LANGU. 

Regards,

Raymond

Read only

0 Likes
415

Hi,

In addition to above code, you need to place the mandatory check when using for all entries for checking the driver table is initial or not. If T_MARC[] IS INITIAL, all the entries from MARA will be selected.

IF NOT T_MARC[] IS INITIAL.  "Mandatory check
SELECT MATNR MBRSH MEINS MATKL FROM MARA INTO CORRESPONDING FIELDS OF TABLE T_MARA
  FOR ALL ENTRIES IN T_MARC WHERE MATNR = T_MARC-MATNR.
 
SELECT MATNR MAKTX SPRAS FROM MAKT INTO CORRESPONDING FIELDS OF TABLE T_MAKT 
  FOR ALL ENTRIES IN T_MARC WHERE MATNR = T_MARC-MATNR AND SPRAS = SY-LANGU. 

ENDIF.

Thanks,

Vinod.