J'ai plusieurs programmes dans un projet SAS, par exemple le programme A -> programme B -> .... Je veux créer une dépendance entre les programmes en utilisant des variables macro.SYSERR Automatique Macro Variable
Le programme A traitera peu de pas de données et de processus. Si toute procédure dans le programme A exécute avec des erreurs, je voudrais exécuter le programme C. programme B. Sinon, l'exécution
Cela semble être délicat, car syserr
remet à zéro à chaque limite pas. Si le premier pas de données dans le programme A s'exécute avec erreur et le reste pas, alors à la fin du programme A, syserr
est toujours 0
. J'ai besoin que la valeur de la variable macro soit autre chose que 0 une fois qu'une erreur se produit et que la valeur peut rester jusqu'à la fin du programme.
Si la dépendance du programme est basée sur d'autres critères (par exemple des valeurs), les variables de macro définies par l'utilisateur peuvent gérer cela. Pour quelque chose en rapport avec les erreurs du système, je pense que SAS a déjà quelque chose qui peut faire l'affaire.Mais je ne peux pas trouver autre chose sauf syserr
, ce qui ne semble pas aider.
Note: Je trouve ceci SAS stop on first error. Mais fondamentalement, il s'agit de vérifier le statut de l'erreur après chaque étape de données. Cela semble fou si le programme A contient plus de 50 étapes de données.
Ceci ne répond pas à la question (comme la question mentionne explicitement cette possibilité et demande une meilleure option). – Joe
Je pense que la question est: comment ne pas continuer à exécuter le programme A s'il y a une erreur. S'il y a une erreur, allez directement exécuter le programme C et n'exécutez pas le programme A jusqu'à la fin. –
Lisez le dernier paragraphe de la question. – Joe