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

Data Object does not have a component called MATNR

Former Member
0 Likes
5,948

Hi Everyone,

I am battling with a small program for 2 days as to why any output is not getting on to the list.

On CHECK, the error being shown is the

'THE DATA OBJECT "WA_ITAB" DOES NOT HAVE A COMPONENT CALLED "MATNR".

Report ZTR_REP1.

tables:mara.

select-options:s_matnr for mara-matnr.

types:begin of itab,

matnr like mara-matnr,

ersda like mara-ersda,

ernam like mara-ernam,

  • ekgrp like marc-ekgrp,

end of itab.

data: wa_itab like itab,

itab1 like itab occurs 0 .

select matnr ersda ernam

from mara

into wa_itab

where matnr in s_matnr.

append wa_itab to itab1.

loop at itab1 into wa_itab.

write:/ wa_itab-matnr,

endloop.

Edited by: Alvaro Tejada Galindo on Apr 21, 2008 5:34 PM

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
2,289

Hi,

u have to use TYPE instead of using LIKE.


tables:mara.

select-options:s_matnr for mara-matnr.

types:begin of itab,
matnr like mara-matnr,
ersda like mara-ersda,
ernam like mara-ernam,

* ekgrp like marc-ekgrp,

end of itab.

data: wa_itab type itab,
itab1 like itab occurs 0 .

select matnr ersda ernam
from mara
into wa_itab
where matnr in s_matnr.
append wa_itab to itab1.
ENDSELECT.
loop at itab1 into wa_itab.
write:/ wa_itab-matnr.
endloop.

rgds,

bharat.

13 REPLIES 13
Read only

Former Member
0 Likes
2,290

Hi,

u have to use TYPE instead of using LIKE.


tables:mara.

select-options:s_matnr for mara-matnr.

types:begin of itab,
matnr like mara-matnr,
ersda like mara-ersda,
ernam like mara-ernam,

* ekgrp like marc-ekgrp,

end of itab.

data: wa_itab type itab,
itab1 like itab occurs 0 .

select matnr ersda ernam
from mara
into wa_itab
where matnr in s_matnr.
append wa_itab to itab1.
ENDSELECT.
loop at itab1 into wa_itab.
write:/ wa_itab-matnr.
endloop.

rgds,

bharat.

Read only

0 Likes
2,289

Hi Bharat,

The error shown after i gave TYPE instead of LIKE is

FIELD "END LOOP" IS UNKNOWN. IT IS NEITHER IN ONE OF THE SPECIFIED TABLES NOR DEFINED BY A "DATA" STATEMENT..

Thanks in Advance

-


Ranjith.T

Read only

0 Likes
2,289

Hi Ranjith,

Use this code it will work fine:

tables: mara.

select-options : s_matnr for mara-matnr.

types: begin of itab,

matnr like mara-matnr,

ersda like mara-ersda,

ernam like mara-ernam,

ekgrp like marc-ekgrp,

end of itab.

data: wa_itab type itab,

itab1 like itab occurs 0 .

select matnr ersda ernam

from mara

into corresponding fields of wa_itab

where matnr in s_matnr.

append wa_itab to itab1.

Endselect.

loop at itab1 into wa_itab.

write:/ wa_itab-matnr.

endloop.

<REMOVED BY MODERATOR>

Regards

Hemant Khemani

Edited by: Alvaro Tejada Galindo on Apr 21, 2008 5:35 PM

Read only

0 Likes
2,289

Hi,

Please refer the code below:


REPORT ztr_rep1.

TABLES:mara.

SELECT-OPTIONS:s_matnr FOR mara-matnr.

TYPES:BEGIN OF itab,
matnr LIKE mara-matnr,
ersda LIKE mara-ersda,
ernam LIKE mara-ernam,
*ekgrp like marc-ekgrp,
END OF itab.

DATA: wa_itab TYPE itab,
itab1 LIKE itab OCCURS 0 .

SELECT matnr ersda ernam
FROM mara
INTO wa_itab
WHERE matnr IN s_matnr.
  APPEND wa_itab TO itab1.
ENDSELECT.

LOOP AT itab1 INTO wa_itab.
  WRITE:/ wa_itab.
ENDLOOP.

Thanks,

Sriram Ponna,.

Read only

0 Likes
2,289

Hi Ranjith,

I think you had given a coma after the following statement

write:/ wa_itab-matnr,

Correct it with a fullstop. Then it will work correctly.

write:/ wa_itab-matnr.

Regards,

Suresh.

Read only

0 Likes
2,289

Hi Ranjith,

try with this one,

tables:mara.

select-options:s_matnr for mara-matnr.

types:begin of itab,

matnr like mara-matnr,

ersda like mara-ersda,

ernam like mara-ernam,

ekgrp like marc-ekgrp,

end of itab.

data: wa_itab type itab,

itab1 type itab occurs 0 .

*

*select matnr ersda ernam

*from mara

*into wa_itab

*where matnr in s_matnr.

*append wa_itab to itab1.

*endselect.

select matnr ersda ernam

from mara

into corresponding fields of table itab1

where matnr in s_matnr.

loop at itab1 into wa_itab.

write:/ wa_itab-matnr.

endloop.

Read only

0 Likes
2,289

Hi Hemanth,

Phrase endselect had solved my problem...But is why endselect needed there.

Thanks

Ranjith

Read only

Former Member
0 Likes
2,289

Hi Ranjith,

you are referring WA_ITAB to itab type structure. but system is pointing to standard itab structure. so you rename itab as different structure and declare wa_itab of that structure. then it will work.

Read only

Former Member
0 Likes
2,289

try to execute this code:

tables:mara.

select-options:s_matnr for mara-matnr.

types:begin of itab,

matnr like mara-matnr,

ersda like mara-ersda,

ernam like mara-ernam,

ekgrp like marc-ekgrp,

end of itab.

data: wa_itab like itab,

itab1 like itab occurs 0 .

select matnr ersda ernam

from mara

into itab1

where matnr in s_matnr.

loop at itab1 into wa_itab.

write:/ wa_itab-matnr.

endloop.

<REMOVED BY MODERATOR>

Dara.

Edited by: Alvaro Tejada Galindo on Apr 21, 2008 5:34 PM

Read only

Former Member
0 Likes
2,289

Hi Ranjith,

TYPES statement are used to define user defined data types.

TYPE refer to the data types,

LIKE refers to the data objects,

So, in ur program change

data : WA_ITAB type itab.

Thanks,

S.Gangi reddy

Read only

prasanth_kasturi
Active Contributor
0 Likes
2,289

hi,

use select single while working with wa_itab as it is a work area.

but as you are using select options try the below code

select matnr ersda ernam

from mara

into table itab1

where matnr in s_matnr.

and also when you are using types for defining a structure you cant use like

use type

ex data wa_itab type itab.

regards

prasanth

Read only

Former Member
0 Likes
2,289

hI,

Just define wa_itab with TYPE but not LIKE.

DATA: wa_itab TYPE itab,

itab1 LIKE itab OCCURS 0 .

<REMOVED BY MODERATOR>

sekhar

Edited by: Alvaro Tejada Galindo on Apr 21, 2008 5:35 PM

Read only

Former Member
0 Likes
2,289

Hi,

This code will work. Check this out.

tables:mara.

select-options:s_matnr for mara-matnr.

types:

begin of itab,

matnr like mara-matnr,

ersda like mara-ersda,

ernam like mara-ernam,

end of itab.

data: wa_itab type itab,

itab1 like table of wa_itab .

select matnr ersda ernam

from mara

into table itab1

where matnr in s_matnr.

loop at itab1 into wa_itab.

write:/ wa_itab-matnr.

endloop.

<REMOVED BY MODERATOR>

Edited by: Alvaro Tejada Galindo on Apr 21, 2008 5:36 PM