%macro Update();
%global Updated MaxDate;
%include 'Y:\Marketing\mi_analysis\Reports\04.Digital\Revised Digital Reporting\01 Code\Tidied\02a - Data Load.sas';
%if &NewFiles.=0 %then %do;
%do %until(&LastRun.=1);
data _null_;
x = sleep(900);
run;
data now;
format now hhmm.;
now=time();
if now>='09:15't then LastRun=1; else LastRun=0;
call symput('now',now);
call symput('LastRun',LastRun);
run;
%put &now;
%put &LastRun;
%include 'Y:\Marketing\mi_analysis\Reports\04.Digital\Revised Digital Reporting\01 Code\Tidied\02a - Data Load.sas';
%if &NewFiles.>0 %then %do;
%let LastRun=1;
%end;
%else %do;
%end;
%end;
%end;
%else %do;
%end;
%if &NewFiles.=0 %then %do;
%email("my email address","Files not arrived");
%end;
%else %do;
%end;
%mend;
%Update(); I have some code here which is meant to load in a series of CSV files each morning from an SFTP folder. I've written a macro so that it runs once, and if the files haven't yet arrived then it will wait 15 minutes and try again, and repeats this as such until a specified time (9:15) when it stops and sends out an email notifying the files haven't arrived. This seems to work fine when I run it in from a session, but run from the scheduler it keeps failing on the 'do until' loop - I get the following message: WARNING: Physical file does not exist, Y:\Marketing\mi_analysis\Reports\04.Digital\Revised Digital Reporting\01 Code\Tidied\02a - Data Load.sas. This is quite frustrating as it recognises the file and runs on the initial %include statement, and the second include statement is a copy and paste of the first so it's definitely not a typo or anything. I'm guessing it might be something to do with the fact it's in that conditional part of the macro which is causing a problem. Does anyone have any ideas?? As mentioned before it's only when run from the scheduler that this occurs (I don't know much about the technical details of this scheduler but if it's relevant I can ask). Thanks!
... View more