Organization elements maintained at Domain level ( Fixed Values)
Class Name: ZCACL_PG_ORG
Scenario – 1 IF condition with one Org element value – Hardcoded
Exiting Logic
New Logic
DATA : gv_run_bukrs TYPE char15.
CLEAR : gv_run_bukrs. gv_run_bukrs = i_rbkpv-bukrs. IF i_rbkpv-bukrs EQ 'IN01' OR zcacl_pg_org=>select_single( org_ele = 'BUKRS' old_value = 'IN01' new_value = gv_run_bukrs ) EQ abap_true. Scenario - 2 IF condition with more than one Org element value - Hardcoded
Existing Logic
New Logic
DATA :lt_r_old TYPE zca_org_range.
DATA :lt_r_new TYPE zca_org_range. CLEAR :lt_r_old,lt_r_new. lt_r_old = VALUE #( sign = 'I' option = 'EQ' ( low = 'TH01' ) ( low = 'PH01' ) ). lt_r_new = VALUE #( sign = 'I' option = 'EQ' ( low = gt_postab-vkorg ) ). IF gt_postab-vkorg = 'TH01' OR gt_postab-vkorg = 'PH01' OR zcacl_pg_org=>select_multi( org_ele = 'VKORG' old_value = lt_r_old new_value = lt_r_new ) EQ abap_true. Scenario - 3 Select statement with one Org element value – Hardcoded
Existing Logic
New Logic
DATA :r_range TYPE zca_org_range.
CLEAR:r_range. zcacl_pg_org=>select_single( EXPORTING org_ele = 'WERKS' option = 'EQ' old_value = 'IN01' IMPORTING er_range = r_range ). IF r_range[] IS INITIAL. select single usrid from t526 into lv_so_sap_nam where sachx = lv_pa0001-sachp and werks = 'IN01'. ELSE. select single usrid from t526 into lv_so_sap_nam where sachx = lv_pa0001-sachp and werks IN r_range. ENDIF. Scenario - 4 Select statement with more than one Org element value – Hardcoded
Existing Logic
New Logic
DATA :lt_r_old TYPE zca_org_range.
DATA :lt_r_range TYPE zca_org_range. CLEAR :lt_r_old,lt_r_range. lt_r_old = VALUE #( sign = 'I' option = 'EQ' ( low = 'IN01' ) ( low = 'IN02' ) ( low = 'IN03' ) ( low = 'IN04' ) ( low = 'IN05' ) ( low = 'IN06' ) ( low = 'IN07' ) ). zcacl_pg_org=>select_multi( EXPORTING org_ele = 'BUKRS' old_value = lt_r_old IMPORTING er_range = lt_r_range ). IF lt_r_range IS NOT INITIAL. SELECT bukrs butxt land1 FROM t001 INTO TABLE lt_help_bdg WHERE ( bukrs EQ 'IN01' OR bukrs EQ 'IN02' OR bukrs EQ 'IN03'
OR bukrs EQ 'IN04' OR bukrs EQ 'IN05' OR bukrs EQ
'IN06' OR bukrs EQ 'IN07' ) . ELSE. SELECT bukrs butxt land1 FROM t001 INTO TABLE lt_help_bdg WHERE bukrs IN lt_r_range. ENDIF.