builtins

CAS ACTION : Restaurer des Action Sets via actionSetFromTable

actionSetFromTable

L'essentiel
L'essentiel
Pour industrialiser le déploiement de vos extensions personnalisées dans SAS Viya, l'action actionSetFromTable est incontournable. Elle assure la phase de restauration dans le cycle de vie du code, en permettant de réinstancier dynamiquement un jeu d'actions complet depuis une simple table CAS archivée. Ce mécanisme est crucial pour les équipes souhaitant partager des bibliothèques de fonctions standardisées sans redéfinir manuellement la logique à chaque nouvelle session. Vous trouverez ci-dessous une série de questions-réponses techniques pour vous aider à maîtriser ce processus de rechargement et garantir la disponibilité de vos outils analytiques sur l'ensemble de votre environnement.

Description

Restaure un jeu d'actions défini par l'utilisateur à partir d'une table CAS préalablement sauvegardée. Cette action est l'inverse de `actionSetToTable` et permet de recharger dynamiquement des fonctionnalités personnalisées dans une session CAS, facilitant ainsi la réutilisation et le partage de code.

BUILTINS.ACTIONSETFROMTABLE< result=results status=rc > / NAME="string", TABLE={<castable>};
Paramètres
ParamètreDescription
name Spécifie le nom à attribuer au jeu d'actions défini par l'utilisateur qui sera restauré.
table Spécifie la table en mémoire à partir de laquelle le jeu d'actions défini par l'utilisateur sera construit. Cette table doit avoir été créée précédemment par l'action `actionSetToTable`.
Préparation des Données Voir la fiche de ce code dataprep
Création et Sauvegarde d'un Jeu d'Actions Personnalisé

Avant de pouvoir restaurer un jeu d'actions, nous devons d'abord en définir un, puis le sauvegarder dans une table CAS à l'aide de l'action `actionSetToTable`. Cet exemple crée un jeu d'actions simple nommé `myActionSet` avec une action `myEcho` qui renvoie simplement les paramètres fournis.

Copié !
1PROC CAS;
2 BUILTINS.defineActionSet
3 name="myActionSet",
4 actions={
5 {
6 name="myEcho",
7 parms={ {name="...", type="any"} },
8 script="print(params)"
9 }
10 };
11 
12 BUILTINS.actionSetToTable
13 name="myActionSet",
14 TABLE={name="myActionSetTable", caslib="CASUSER", replace=true};
15QUIT;

Exemples

Cet exemple montre comment restaurer le jeu d'actions `myActionSet` à partir de la table `myActionSetTable` sauvegardée précédemment. Nous le restaurons sous un nouveau nom, `restoredActionSet`, pour éviter les conflits si l'original existe toujours.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1 
2PROC CAS;
3BUILTINS.actionSetFromTable name='restoredActionSet' TABLE={caslib='CASUSER', name='myActionSetTable'};
4 
5RUN;
6restoredActionSet.myEcho p1='Hello' p2='World';
7 
8RUN;
9 
10QUIT;
11 
Résultat :
L'action `myEcho` du jeu d'actions restauré s'exécute et affiche les paramètres `p1` et `p2` dans le journal SAS, confirmant que la restauration a réussi.

Cet exemple restaure le jeu d'actions et utilise ensuite l'action `actionSetInfo` pour vérifier que le nouveau jeu d'actions (`restoredSetVerify`) est bien chargé sur le serveur CAS. Cela permet de confirmer programmatiquement le succès de l'opération.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1 
2PROC CAS;
3BUILTINS.actionSetFromTable name='restoredSetVerify' TABLE={caslib='CASUSER', name='myActionSetTable'};
4 
5RUN;
6BUILTINS.actionSetInfo actionSet='restoredSetVerify';
7 
8RUN;
9 
10QUIT;
11 
Résultat :
Le journal affichera les informations détaillées sur le jeu d'actions `restoredSetVerify`, y compris la liste des actions qu'il contient (dans ce cas, `myEcho`). Cela prouve que le jeu d'actions a été correctement restauré à partir de la table CAS.

Si vous essayez de restaurer un jeu d'actions avec un nom qui existe déjà, l'opération échouera. Cet exemple illustre ce cas en restaurant une première fois, puis en tentant de le restaurer à nouveau avec le même nom, ce qui génère une erreur.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1 
2PROC CAS;
3BUILTINS.actionSetFromTable name='conflictTest' TABLE={caslib='CASUSER', name='myActionSetTable'};
4 
5RUN;
6BUILTINS.actionSetFromTable name='conflictTest' TABLE={caslib='CASUSER', name='myActionSetTable'};
7 
8RUN;
9 
10QUIT;
11 
Résultat :
La première action `actionSetFromTable` réussit. La seconde échoue et une erreur est consignée dans le journal SAS, indiquant que le jeu d'actions `conflictTest` est déjà chargé. Pour remplacer un jeu d'actions, il faut d'abord le supprimer avec `dropActionSet`.

FAQ

Quel est l'objectif de l'action `actionSetFromTable` ?
Quels sont les paramètres requis pour utiliser cette action ?
Que spécifie le paramètre `name` dans cette action ?
Comment peut-on spécifier la table source pour la restauration ?

Scénarios associés

Cas d'usage
Scénario Standard : Déploiement d'un Modèle de Scoring Client

Une équipe de Data Science a développé un modèle de scoring simple pour évaluer le risque client. Ce modèle est encapsulé dans une action CAS personnalisée. L'objectif est de sa...

Cas d'usage
Scénario Performance : Restauration d'une Bibliothèque d'Actions Financières Complexes

Un département d'analyse quantitative a créé une bibliothèque de fonctions financières personnalisées (calcul de volatilité, Black-Scholes, etc.). Cette bibliothèque, contenant ...

Cas d'usage
Scénario Cas Limite : Gestion des Erreurs de Restauration

Un utilisateur tente de restaurer un jeu d'actions mais rencontre plusieurs problèmes : la table source est introuvable, ou elle a un format incorrect, ou le nom du jeu d'action...