%macro post_process_promo_fact_f1mi42(part_table=); %local iter parts_count didm_path curr_wk_start_dt; proc sql noprint; select path into :didm_path from sashelp.vlibnam where upcase(libname) = "DI_DM" and level in (0,1); quit; %let didm_path = &didm_path; %put didm_path = &didm_path; proc sql noprint; select put(fiscal_start_dt,best.) into :curr_wk_start_dt from di_dm.date_dm where date_sk = (select distinct input(spec_value, best.) from di_dm.global_setting where spec_nm = 'CURRENT_DATE_SK'); quit; proc datasets lib = work nolist nowarn memtype = (data view); delete promo_fact_contents promo_fact_futr_contents; quit; proc contents nodetails noprint data=di_dm.promotion_fact out2=promo_fact_contents; run; proc contents nodetails noprint data=di_dm.promotion_fact_future out2=promo_fact_futr_contents; run; libname PFACT "&didm_path/promotion_fact"; libname PFACTFTR "&didm_path/promotion_fact_future"; %put Partition table = &part_table; data PFACTFTR.&part_table; set PFACT.&part_table; where end_dt >= &curr_wk_start_dt; run; *create index and Pk on Promotion_fact; %etl_drop(PFACT.&part_table, ic); %etl_drop(PFACT.&part_table, index); data _null_; set promo_fact_contents end=eof; if _n_ eq 1 then call execute("proc datasets lib=PFACT nolist; modify &part_table;"); call execute(" " || recreate); if eof then call execute("quit;"); run; *create index and Pk on Promotion_fact_future; data _null_; set promo_fact_futr_contents end=eof; if _n_ eq 1 then call execute("proc datasets lib=PFACTFTR nolist; modify &part_table;"); call execute(" " || recreate); if eof then call execute("quit;"); run; %mend;