‎2008 Apr 15 11:00 AM
Hi,
How can I modify this Read statement as Read with same
keys is not allowed.
DATA: BEGIN OF itab OCCURS 0,
matnr LIKE marc-matnr,
werks LIKE marc-werks,
steuc LIKE marc-steuc,
END OF itab.
wgc_werk = 'BR10',
wgc_werk1 ='BR20'.
READ TABLE itab WITH KEY matnr = it_mvke-matnr
werks = wgc_werk
werks = wgc_werks1
BINARY SEARCH.
‎2008 Apr 15 11:03 AM
try like this
DATA: BEGIN OF itab OCCURS 0,
matnr LIKE marc-matnr,
werks LIKE marc-werks,
werks1 like marc-werks,
steuc LIKE marc-steuc,
END OF itab.
wgc_werk = 'BR10',
wgc_werk1 ='BR20'.
READ TABLE itab WITH KEY matnr = it_mvke-matnr
werks = wgc_werk
werks1 = wgc_werks1
BINARY SEARCH.
‎2008 Apr 15 11:03 AM
try like this
DATA: BEGIN OF itab OCCURS 0,
matnr LIKE marc-matnr,
werks LIKE marc-werks,
werks1 like marc-werks,
steuc LIKE marc-steuc,
END OF itab.
wgc_werk = 'BR10',
wgc_werk1 ='BR20'.
READ TABLE itab WITH KEY matnr = it_mvke-matnr
werks = wgc_werk
werks1 = wgc_werks1
BINARY SEARCH.
‎2008 Apr 15 11:07 AM
Hi KPN,
Should I move werks value to werks1. likethis below
loop at itab.
move itab-werks to itab-werks1.
read statement.
endloop.
How does the Read statement the different werks vaues.
‎2008 Apr 15 11:08 AM
In these cases I prefer the LOOP statement and declaring the internal table like this:
itab type sorted table of .... with non-unique key MATNR WERKS.
LOOP AT itab INTO wa WHERE matnr = it_mvke-matnr
and werks = ... or werks = ....
‎2008 Apr 15 11:14 AM
Hi,
You are trying to use read statement inorder to fetch a single record isn't it? if you are trying to search for a record having either
WERKS = 'BR10' or WERKS = 'BR20' then you need to modify your code.
i.e. as below
DATA: BEGIN OF itab OCCURS 0,
matnr LIKE marc-matnr,
werks LIKE marc-werks,
steuc LIKE marc-steuc,
END OF itab.
wgc_werk = 'BR10'.
wgc_werk1 ='BR20'.
READ TABLE itab WITH KEY matnr = it_mvke-matnr
werks = wgc_werk.
if sy-subrc ne 0.
READ TABLE itab WITH KEY matnr = it_mvke-matnr
werks = wgc_werk1.
if sy-subrc eq 0.
"your post reading process here
endif.
endif.
BINARY SEARCH.
Reward points if this helps,
Kiran
‎2008 Apr 15 11:17 AM
Hi,
You need to read two times as shown below.
READ TABLE itab WITH KEY matnr = it_mvke-matnr
werks = wgc_werk BINARY SEARCH.
READ TABLE itab WITH KEY matnr = it_mvke-matnr
werks = wgc_werk1 BINARY SEARCH.
or else
loop at itab where matnr = it_mvke-matnr and ( werks = wgc_werk or werks = wgc_werk1 ).
do what ever you want
endloop.
‎2008 Apr 15 11:32 AM
Hi,
sort itab by werks.
READ TABLE itab WITH KEY matnr = it_mvke-matnr
werks = wgc_werk by BINARY SEARCH.
if sy-subrc ne 0.
READ TABLE itab WITH KEY matnr = it_mvke-matnr
werks = wgc_werks1 by BINARY SEARCH.
if sy-subrc eq 0.
...for value in wgc_werks1
endif.
elseif sy-subrc eq 0.
.....for value in wgc_werks
endif.