Au-delà des Macros : La Programmation Pilotée par les Données avec CAS dans SAS Viya
Simon 20 views
Difficulty Level
Débutant
Published on :
Expert Advice
Michael
Le plus grand changement mental avec Viya est d'accepter que le processeur Macro ne "touche" jamais le serveur CAS : il ne fait que préparer le texte en amont sur le Compute Server. Pour gagner en performance, arrêtez de forcer la logique macro dans le calcul distribué. Adoptez les types natifs du CASL (Dictionnaires, Result Tables) : ils remplacent avantageusement les call symput et les macro-arrays pour piloter vos flux dynamiques.
Cet article démystifie ces interactions et explore comment utiliser les variables CASL pour une programmation dynamique et pilotée par les données, souvent plus efficace que les macros traditionnelles.
1. Comprendre l'Architecture : Où s'exécute votre code ?
2. Les Variables CASL : Plus puissantes que les macro-variables
Contrairement aux macro-variables qui ne sont que du texte, le CASL utilise des variables typées dynamiquement (le type est défini lors de l'assignation)5. La véritable puissance du CASL réside dans ses types de données composites.
3. Programmation Pilotée par les Données : La Boucle DO OVER
L'équivalent moderne et performant des boucles macro (%DO %WHILE ou boucles sur call execute) est la boucle DO OVER en CASL. Elle permet d'itérer facilement sur des tableaux, des dictionnaires ou des tables de résultats.
Syntaxe de la boucle DO OVER
Pour un Dictionnaire :DO , OVER ;
Pour un Tableau (Array) :DO OVER ;
Pour une Table : On itère sur les lignes comme s'il s'agissait d'un tableau.
Tableau 3 : Comparaison Macro vs CASL pour le pilotage par les données
Exemple de logique UDF :Vous pouvez créer une fonction loadAllFiles(caslib) qui récupère la liste des fichiers d'une librairie et boucle dessus pour les charger automatiquement en mémoire, remplaçant ainsi des dizaines de lignes de code macro complexe.
The codes and examples provided on WeAreCAS.eu are for educational purposes. It is imperative not to blindly copy-paste them into your production environments. The best approach is to understand the logic before applying it. We strongly recommend testing these scripts in a test environment (Sandbox/Dev). WeAreCAS accepts no responsibility for any impact or data loss on your systems.
SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration. WeAreCAS is an independent community site and is not affiliated with SAS Institute Inc.
This site uses technical and analytical cookies to improve your experience.
Read more.