If you want a select on each record in an internal table in SAP you can avoid programming a loop with a single select using the following statment. This solution will increase performance radically.
Remember: database access is time consuming.
The code has been tested and edited by user Ben Meijs to ensure accuracy.
Report zzatip.
Data: begin of data_package occurs 0,
Matnr like mara-matnr,
end of data_package.
types: begin of ty_mara,
matnr like mara-matnr,
matkl like mara-matkl,
end of ty_mara.
data: wa_mara type ty_mara.
data: ta_mara type sorted table of ty_mara
with non-unique key matnr.
* First, data must be available in the table DATA_PACKAGE
* Then the corresponding materialdata from MARA must be read
SELECT MATNR MATKL INTO TABLE TA_MARA
FROM MARA
FOR ALL ENTRIES IN DATA_PACKAGE
WHERE MATNR = DATA_PACKAGE-MATNR.
* With the following loop you can combine the records.
LOOP AT DATA_PACKAGE.
LOOP AT TA_MARA into wa_mara
WHERE MATNR = DATA_PACKAGE-MATNR.
.
.....
ENDLOOP.
ENDLOOP.
Requires Free Membership to View
-

This was first published in August 2002
Join the conversationComment
Share
Comments
Results
Contribute to the conversation