В Unix вы можете настроить запуск программ в пакетном режиме с заданием cron.
Один из приемов, который вы могли бы использовать, - настроить основную программу SAS для запуска всего.
Создайте одну программу, которая содержит только глобальные переменные, которые нужно менять каждый месяц, а затем вызовите ваши ежемесячные программы с помощью include.
что-то вроде:
%let globalvar1 = ThisMonth;
%let globalvar2 = LastMonth;
%include '/path/to/sas/program1';
%include '/path/to/sas/program2';
Затем вы запускаете только одну программу в пакетном режиме ... она будет запускать их в правильном порядке и автоматически ждать, пока они завершат выполнение, прежде чем перейти к следующей программе (настройка отдельных заданий cron потребует от вас переоценки продолжительности каждый берет, чтобы они не конфликтовали).
Это сбросит все в один файл журнала ... который может быть хорошим или плохим.
Другой вариант - использовать X
для вызова программы из ОС при каждом запуске.
Я не на 100% по синтаксису, но это должно сработать, если вы используете правильный синтаксис для вашей ОС (это может работать на Unix или Windows, поэтому вам нужно будет запланировать только одну программу).
В конце каждой программы просто добавьте:
X "Path/to/sas.exe" -batch -noterminal nextProgram.sas
Это позволит вам объединить программы в очередь, чтобы они запустили следующую программу после их завершения. Затем вы просто используете планировщик задач / cron для запуска "sas.exe -batch -noterminal firstProgram.sas"
Вот случайное руководство, которое я нашел в планировщике задач Windows:
http://www.iopus.com/guides/winscheduler.htm
Просто укажите на SAS.exe, а затем на шаге 2 измените параметры на что-то вроде -batch -noterminal /path/to/Program.sas
. Я на 95% уверен, что это правильный синтаксис в windows sas (я использую unix, поэтому не могу его проверить).