42 %MACRO _sasunit_checkScenario(
51 %_sasunit_tempFileName(d_pgm)
59 %let l_scnfile = %_sasunit_stdPath (&g_root, &i_scnfile);
62 %local ll_scnid l_lastrun;
66 select scn_id, compress(put(scn_start,best32.)) into :ll_scnid, :l_lastrun
68 where upcase(scn_path) = "%upcase(&l_scnfile)";
72 %if &l_lastrun<&i_changed %then %do;
73 %put _sasunit_checkScenario <1>;
74 %let &r_scnid = &ll_scnid;
83 select count(*) into :l_pgmcount
86 on upcase(cas.cas_pgm) = upcase(scan(dir.filename,-1,'/'))
87 and cas.cas_auton = dir.auton
88 where cas.cas_scnid = &ll_scnid
89 and (&l_lastrun<dir.changed or dir.changed=.)
90 and cas.cas_auton ne .
95 %if &l_pgmcount %then %do;
96 %put _sasunit_checkScenario <2>;
97 %let &r_scnid = &ll_scnid;
104 create table &d_pgm as
107 where cas.cas_scnid = &ll_scnid
113 %if %_sasunit_nobs(&d_pgm) = 0 %then %do;
114 %put _sasunit_checkScenario <3>;
115 %let &r_scnid = &ll_scnid;
122 %do i=1 %to %_sasunit_nobs(&d_pgm);
127 call symput ('l_pgm' !! compress(put(_n_,8.)), trim(cas_pgm));
128 call symput ('l_pgmcount', compress(put(_n_,8.)));
131 %do i=1 %to &l_pgmcount;
132 %let l_pgm&i = %_sasunit_absPath(&g_root,&&l_pgm&i);
133 %_sasunit_dir(i_path=&&l_pgm&i, o_out=&d_pgm)
138 select compress(put(changed,best32.)) into :l_pgmchanged
144 %if &l_lastrun < &l_pgmchanged or &l_pgmchanged=0 %then %do;
145 %put _sasunit_checkScenario <4>;
146 %let &r_scnid = &ll_scnid;
154 %put _sasunit_checkScenario <5>;
155 %let &r_scnid = &ll_scnid;
160 proc datasets nolist nowarn;
161 delete %scan(&d_pgm,2,.);
164 %MEND _sasunit_checkScenario;