If you have an internal table in your program which is used solely for lookup, it is good programming practice to use a hash table. The example below shows this, in combination with a method for buffering SELECT SINGLE results.
Requires Free Membership to View
When you register, you will start receiving targeted emails from my award-winning team of editorial writers. Our goal is to keep you informed on the hottest topics and biggest challenges faced by SAP professionals today.
Hannah Smalltree, Editorial Director
*&---------------------------------------------------------------------*
*& Form select_dispo
*&---------------------------------------------------------------------*
* Get MRP controller and in-house production time from material
* and plant
*----------------------------------------------------------------------*
* --> MATNR Material
* --> RESWK Plant
* <-- DISPO MRP controller
* <-- DZEIT In-house production time
*----------------------------------------------------------------------*
form select_from_marc using matnr werks dispo dzeit.
types: begin of mrp_lookup_type,
matnr like marc-matnr,
werks like marc-werks,
dispo like marc-dispo,
dzeit like marc-dzeit,
end of mrp_lookup_type.
* Define static hashed table to hold results
statics: st_mrp type hashed table of mrp_lookup_type
with unique key matnr werks.
data: l_wa_mrp type mrp_lookup_type.
clear dzeit.
* See if data is in the table
read table st_mrp into l_wa_mrp with table key matnr = matnr
werks = werks.
* If not in table, get it from the database
if not sy-subrc is initial.
select single dispo dzeit from marc
into corresponding fields of l_wa_mrp-dispo
where matnr eq matnr
and werks eq werks.
* Insert into table
l_wa_mrp-matnr = matnr.
l_wa_mrp-werks = werks.
insert l_wa_mrp into table st_mrp.
endif.
dispo = l_wa_mrp-dispo. " MRP Controller
dzeit = l_wa_mrp-dzeit. " Inhouse production time
endform. " select_from_marc
This was first published in June 2001
Join the conversationComment
Share
Comments
Results
Contribute to the conversation