Le comportement du langage de programmation peut être ajusté via le serveur. Les options telles que DATASTEPFMTERROption système contrôlant le comportement de l'étape DATA lorsqu'un format est introuvable. Activée, elle génère une erreur et arrête l'exécution ; désactivée, elle émet un simple avertissement. déterminent si une erreur est générée en cas de format manquant, tandis que DATASTEPVARLENCHK contrôle les alertes sur la longueur des variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. lors des jointures. Interroger ces options permet de comprendre pourquoi certains programmes SAS se comportent différemment entre l'environnement client et l'exécution distribuée dans le cloud.
Quelles options contrôlent le comportement du DATA Step au sein de CAS ?
Options de Session CAS pour le DATA Step
Exemple de Code Additionnel
| 1 | <pre>/* CASL Script : Configuration et Exécution Sécurisée d'un DATA Step CAS |
| 2 | (c) Nicolas Housset 2026 - Code SAS pour VIYA 4 - testé et validé en version 2024.09 */ |
| 3 | /* 1. Démarrage de session avec protection des comportements du DATA Step */ |
| 4 | cas casauto sessopts=( |
| 5 | dataStepFmtErr=false |
| 6 | dataStepVarLenChk="WARN" |
| 7 | metrics="TRUE" |
| 8 | ); |
| 9 | PROC CAS; |
| 10 | /* 2. Audit des options de session courantes pour vérification */ |
| 11 | sessionProp.listSessOpts RESULT=SessOpts; |
| 12 | PRINT "--- Vérification de l'option DATASTEPFMTERR ---"; |
| 13 | print SessOpts.SessionOptions[where=(Name='DATASTEPFMTERR')]; |
| 14 | /* 3. Exécution d'un DATA Step in-memory hautement contrôlé */ |
| 15 | dataStep.runCode / |
| 16 | code=" |
| 17 | data casuser.analyse_distribuee; |
| 18 | set sashelp.cars; |
| 19 | /* Application d'un FORMAT - ne plantera pas le thread si $custom n'est pas chargé */ |
| 20 | format Model $custom50.; |
| 21 | length Vehicle_Segment $ 20; |
| 22 | if MSRP > 50000 then Vehicle_Segment = 'Premium'; |
| 23 | else Vehicle_Segment = 'Standard'; |
| 24 | run; |
| 25 | " |
| 26 | single='NO' /* Explicite : force le multi-threading sur tous les Workers */ |
| 27 | msgLevel='WARNING'; /* Limite la verbosité du log retourné au client */ |
| 28 | RUN; |
| 29 | QUIT;</pre> |
Exemples pour l'action getServOpt
Vérifier la Locale du serveur
Un exemple rapide pour savoir si votre serveur parle français ou anglais.
Récupérer et stocker la limite de mémoire
Cet exemple montre comment récupérer la valeur de l'option MAXTABLEMEM dans une variable CASL pour une utilisation ultérieure dans votre logique de programmation.