addRoutines
Description
L'action 'addRoutines' compile et ajoute des routines personnalisées (fonctions et sous-routines) FCMPProcédure de création de fonctions et sous-programmes personnalisés réutilisables. Elle permet d'étendre le langage SAS et de partager des logiques métier complexes entre différentes étapes DATA. (SAS Function Compiler) pour les stocker dans une table CAS. C'est l'outil parfait pour créer votre propre bibliothèque de fonctions métier et les exécuter massivement en parallèle sur tous les nœuds de votre cluster Viya. Parce que réécrire dix fois la même formule complexe, c'est fatiguant : autant la coder une bonne fois pour toutes ! Sources :
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| appendTable | Indique s'il faut ajouter les nouvelles fonctions à une table FCMP existante (TRUE) ou l'écraser purement et simplement (FALSE). La valeur par défaut est FALSE. |
| funcTable | Spécifie la table de sortie CAS (nom, caslib, paramètres de promotion, etc.) où la fonction FCMP compilée sera sauvegardée. C'est la nouvelle maison de votre code. |
| library | Spécifie le nom d'une bibliothèque FCMP pré-existante à charger en amont. |
| package | Définit le nom du package (une sorte de répertoire virtuel ou d'espace de noms interne) utilisé pour organiser et stocker ces fonctions FCMP spécifiques. |
| routineCode | Paramètre obligatoire. Il s'agit du code source brut (sous forme de chaîne ou tableau de chaînes) de la routine FCMP. C'est ici que la magie opère ! |
| saveTable | Spécifie si la table FCMP générée en mémoire doit également être sauvegardée physiquement sur le disque pour survivre à la fin de votre session. |
Préparation des données
Initialisation d'une session CAS
Démarrage d'une session CAS et assignation d'une librairie (casuser) pour accueillir notre future table de fonctions.
| 1 | cas mysess; LIBNAME casuser cas caslib="casuser"; |
Exemples d'utilisation
Création et stockage d'une fonction mathématique simple
Nous allons créer une fonction FCMP très simple qui calcule le carré d'un nombre, et la sauvegarder dans une table CAS nommée 'my_funcs'.
| 1 | PROC CAS; fcmpact.addRoutines / routineCode="function my_square(x); return(x**2); endsub;" funcTable={name="my_funcs", caslib="casuser"} package="math_pkg"; RUN; QUIT; |
Résultat Attendu :
Ajout de multiples routines, promotion et sauvegarde physique
Cet exemple compile deux fonctions en même temps (un calcul de cube et une fonction texte), les ajoute (append) à la table précédente, promeut la table en mémoire globale, et l'écrit physiquement sur le disque pour ne jamais la perdre.
| 1 | PROC CAS; fcmpact.addRoutines / routineCode={"function my_cube(x); return(x**3); endsub;", "function my_greet(n $) $; return('Bonjour ' || n); endsub;"} funcTable={name="my_funcs", caslib="casuser", promote=TRUE} package="utils_pkg" appendTable=TRUE saveTable=TRUE; RUN; QUIT; |
Résultat Attendu :