39 %MACRO _checkScenario(i_scnfile =
46 %local d_pgm l_scnfile ll_scnid l_lastrun l_pgmcount i l_pgmchanged;
55 %let l_scnfile = %_stdPath (&g_root, &i_scnfile);
61 select scn_id, compress(put(scn_start,best32.)) into :ll_scnid, :l_lastrun
63 where upcase(scn_path) = "%upcase(&l_scnfile)";
67 %if &l_lastrun<&i_changed %then %do;
68 %put &g_note.(SASUNIT): _checkScenario <1>;
69 %let &r_scnid = &ll_scnid;
77 select count(*) into :l_pgmcount
80 on upcase(cas.cas_pgm) = upcase(scan(dir.filename,-1,'/'))
81 and cas.cas_auton = dir.auton
82 where cas.cas_scnid = &ll_scnid
83 and (&l_lastrun<dir.changed or dir.changed=.)
84 and cas.cas_auton ne .
89 %if &l_pgmcount %then %do;
90 %put &g_note.(SASUNIT): _checkScenario <2>;
91 %let &r_scnid = &ll_scnid;
98 create table &d_pgm as
101 where cas.cas_scnid = &ll_scnid
107 %if %_nobs(&d_pgm) = 0 %then %do;
108 %put &g_note.(SASUNIT): _checkScenario <3>;
109 %let &r_scnid = &ll_scnid;
115 %do i=1 %to %_nobs(&d_pgm);
120 call symput ('l_pgm' !! compress(put(_n_,8.)), trim(cas_pgm));
121 call symput ('l_pgmcount', compress(put(_n_,8.)));
124 %do i=1 %to &l_pgmcount;
125 %let l_pgm&i = %_absPath(&g_root,&&l_pgm&i);
126 %_dir(i_path=&&l_pgm&i, o_out=&d_pgm)
130 select compress(put(changed,best32.)) into :l_pgmchanged
136 %if &l_lastrun < &l_pgmchanged or &l_pgmchanged=0 %then %do;
137 %put &g_note.(SASUNIT): _checkScenario <4>;
138 %let &r_scnid = &ll_scnid;
146 %put &g_note.(SASUNIT): _checkScenario <5>;
147 %let &r_scnid = &ll_scnid;
152 proc datasets nolist nowarn;
153 delete %scan(&d_pgm,2,.);
156 %MEND _checkScenario;