Sous Unix, vous pouvez configurer les programmes pour qu'ils soient exécutés en mode batch avec une tâche cron.
Une astuce que vous pourriez utiliser serait de mettre en place un programme SAS maître pour tout exécuter. Créez un programme qui contient simplement toutes les variables globales qui doivent être modifiées chaque mois, puis appelez vos programmes mensuels avec des includes. quelque chose comme :
%let globalvar1 = ThisMonth;
%let globalvar2 = LastMonth;
%include '/path/to/sas/program1';
%include '/path/to/sas/program2';
Ensuite, vous n'exécutez que ce seul programme par lots... il les exécutera dans l'ordre correct et attendra automatiquement qu'ils aient fini de s'exécuter avant de passer au programme suivant (la mise en place de tâches cron distinctes vous obligerait à surestimer la durée de chacune d'elles pour éviter tout conflit).
Cela va tout regrouper dans un seul fichier journal... ce qui peut être bon ou mauvais. Une autre option serait d'utiliser X
pour appeler le programme depuis l'OS à chaque exécution.
Je ne suis pas sûr à 100% de la syntaxe, mais cela devrait fonctionner si vous utilisez la bonne syntaxe pour votre système d'exploitation (cela pourrait fonctionner sous unix ou Windows et vous n'auriez à programmer qu'un seul programme).
A la fin de chaque programme, il suffit d'ajouter :
X "Path/to/sas.exe" -batch -noterminal nextProgram.sas
Cela vous permettra d'enchaîner les programmes de manière à ce qu'ils lancent le programme suivant après leur achèvement. Il suffit ensuite d'utiliser le planificateur de tâches/cron pour lancer "sas.exe -batch -noterminal firstProgram.sas".