|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Jean-François MarchandAnalyste d'exploitation Inscription : octobre 2008 Messages : 30 ![]() |
Bonjour,
je cherche des exemples de gestion des codes d'erreur en SAS afin de forcer l'arrêt du traitement au besoin. Je suis pas mal perdu à essayer de trapper les codes d'erreur. Quel est la meilleure façon de fonctionner pour arrêter le traitement s'il y a erreur... Exemple : Erreur de password dans la fonction SIGNON... Merci d'avance pour votre aide. J-F. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Bonjour Jean-François.
Je ne sais pas si c'est vraiment ta question, mais il y a 3 macro-variables qui contiennent des codes d'erreurs dans SAS : * SYSERR qui contient le code de la dernière proc ou étape Data exécutée (4=warning, >4=erreur) * SQLRC qui contient l'équivalent pour la proc SQL (mis à jour à chaque requête) * SYSRC qui contient le code erreur pour les commandes externes (X, SYSTASK COMMAND, CALL SYSTEM) Si tu veux récupérer d'autres codes il faudra ruser (c'était peut-être l'objet de ta question). En v9.2 tu as des SYSWARNINGTEXT et SYSERRORTEXT en plus avec le libellé du message (attention à la langue de la session quand tu les traites). Attention, ces macro-variables ne sont réinitialisées que quand leur valeur est évaluée à nouveau : ainsi on traîne des SYSERR à 4 tant qu'on ne fait pas de nouvelle proc / Data ; et on traîne des SYSERRORTEXT tant qu'on n'a pas un nouveau message d'erreur (ne pas en avoir ne remet pas la macro-variable à vide). Comment s'en servir pour arrêter un traitement ? 1) dans un macro-programme, tu fais et tu arrêtes le macro-programme 2) hors d'un macro-programme, tu peux écrire Code :
OPTION OBS=%SYSFUNC(IFC(¯oVariable > 4, 0, MAX)) ; Olivier |
|
|
00
|
|
|
#3 | ||
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
pour la connexion client serveur tu peux utiliser l'option CMACVAR=value, dont le détail est ici.
-autre alternative au statement ABORT qui est utilisé dans une étape ou %ABORT dans un macro programme comme l'a très bien expliqué Olivier. Tu peux utiliser le Statement %GOTO dans un macro programme. exemple de code : Code :
|
||
|
|
00
|
|
|
#4 |
|
Membre à l'essai
![]() Jean-François MarchandAnalyste d'exploitation Inscription : octobre 2008 Messages : 30 ![]() |
Bonjour à vous deux,
je vous remercie pour vos réponses, c'est très apprécié. Je vais faire un bout de chemin à partir de celles-ci quand j'aurai 2 minutes à y consacrer. Je vous reviens bientôt pour vous informer si je m'en suis sorti... Merci encore, J-F. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com