‎2010 Mar 07 6:59 AM
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
‎2010 Mar 07 7:09 AM
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
‎2010 Mar 07 1:24 PM
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.