I'm trying to play around with reseting syntax check more, so that SAS will continue normal processing.
Why?
It's related to a hierachical set of processes.
One program uses remote submittal to run other processes on a remote SAS server, there's not a problem here.
That remote process determines day's of missing data, and attempts to fill in these days. This generally works when something stupid happens, the process doesn't run for a day or two, and then when it does, as long as the underlying data is still available, it fills in the days its missed, bringing itself up to date.
The problem is if the underlying data for a day is missing, and can not be provided. SAS picks up the error that the underlying datafile is missing and sets itself into SYNTAX CHECK MODE:
[pre]
ERROR: Physical file does not exist, extract_all_best1_data.May-03-2008/file_system_statistics.txt.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: SAS set option OBS=0 and will continue to check statements. This may cause NOTE: No observations in data set.
[/pre]
The middle process is simply a loop that creates an include file that calls a macro and then uses "call execute" to bring in the include file(s).
[pre]
file dummy filevar=file_name;
macro_call = cats('%get_',"&metric_group(" , "BACK," , source_path , ');' );
put 'options nosyntaxcheck obs=max replace;';
put 'data _dummy; dummy=1; run; proc delete data=dummy;';
put 'options syntaxcheck;';
put macro_call $;
file log;
call execute('%include "' || trim(file_name) || '";');
[/pre]
The options and data step "put" statements are part of my playing with trying to turn off SYNTAX CHECK MODE.
Let's say we have underlying data for 4/29, 4/30, 5/1, 5/2; missing data for 5/3, 5/4; have a partial day for 5/5; and then pick up again with full data sets for 5/6 onwards.
A problem that occurred on 4/30 caused the data processing program to not run until 5/6, so it recognizes that it has missed 5/1 through 5/5. It backfills 5/1 and 5/2 ok, but then it errors on 5/3 and essentially stops processing. On 5/7, it finds it is missing 5/3 through 5/6, but doesn't fill in the gap for 5/5 and 5/6 because SAS errors on 5/3's missing data.
What I want to happen is for the error to be detected and noted, for SAS to continue in its syntax check mode through the end of the included section for that day. But, then I want to reset SAS back to normal, as if it didn't detect an error, and normally process the next day (5/4) error out, skip along, get reset and pick up again processing 5/5 and 5/6 normally.
Message was edited by: Chuck