Using hash tables for fast lookup
If you have an internal table in a program used solely for lookup, it's good programming practice to use a hash table.
If you have an internal table in your program which is used solely for lookup, it is good programming practice...
Continue Reading This Article
Enjoy this article as well as all of our content, including E-Guides, news, tips and more.
to use a hash table. The example below shows this, in combination with a method for buffering SELECT SINGLE results.
*&---------------------------------------------------------------------* *& 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