builtins addUserActionSetPath

Scénario Standard : Utilisation d'un jeu d'actions marketing personnalisé

Scénario de test & Cas d'usage

Contexte Métier

Une équipe d'analystes marketing a développé un jeu d'actions CAS personnalisé pour effectuer une segmentation client avancée. Un data scientist doit utiliser ce jeu d'actions, stocké dans une caslib partagée, pour analyser les données d'une nouvelle campagne.
À propos du Set : builtins

Commandes système fondamentales du serveur CAS.

Découvrir toutes les actions de builtins
Préparation des Données

Création d'une caslib partagée ('mktg_lib') contenant un jeu d'actions personnalisé ('segmentation'), et d'une table de clients ('clients_campagne') dans la caslib de l'utilisateur.

Copié !
1/* Étape 1: Définir les caslibs nécessaires */
2caslib mktg_lib path='/cas/data/mktg_shared' description='Caslib partagée pour les actions marketing' dataSource={srcType='path'} global;
3caslib user path='/cas/users/testuser' description='Caslib personnelle' dataSource={srcType='path'} global;
4 
5/* Étape 2: Définir et sauvegarder un jeu d'actions personnalisé dans la caslib partagée */
6PROC CAS;
7 SOURCE mktg_segmentation;
8 ACTION segmentation.runSegmentation /
9 TABLE={name='string', caslib='string'},
10 OUTPUT={name='string', caslib='string'};
11 
12 /* Logique de segmentation simplifiée */
13 TABLE.fetch RESULT=r / to=1000;
14 create_table(OUTPUT, {'Segment' char(20), 'ClientID' char(10)}, r.Fetch);
15 PRINT 'Jeu d\'actions de segmentation exécuté.';
16 ENDSOURCE;
17 BUILTINS.actionSetToTable actionSet='mktg_segmentation', TABLE={name='segmentation_actions', caslib='mktg_lib', replace=true};
18RUN;
19 
20/* Étape 3: Créer une table de données clients pour le test */
21DATA user.clients_campagne;
22 LENGTH ClientID $ 10;
23 DO i = 1 to 100;
24 ClientID = 'CUST' || put(i, z4.);
25 Age = 20 + floor(rand('uniform')*50);
26 OUTPUT;
27 END;
28RUN;

Étapes de réalisation

1
Tentative d'appel de l'action personnalisée avant d'ajouter la caslib au chemin. Ceci doit échouer.
Copié !
1PROC CAS;
2 /* Cette action échouera car 'segmentation' n'est pas encore connu */
3 ACTION segmentation.runSegmentation /
4 TABLE={name='clients_campagne', caslib='user'},
5 OUTPUT={name='clients_segments', caslib='user'};
6RUN;
7QUIT;
2
Ajout de la caslib 'mktg_lib' au chemin de recherche des jeux d'actions de la session.
Copié !
1PROC CAS;
2 BUILTINS.addUserActionSetPath / caslib='mktg_lib';
3RUN;
4QUIT;
3
Nouvelle tentative d'appel de l'action personnalisée. Ceci doit maintenant réussir.
Copié !
1PROC CAS;
2 /* Cette action doit maintenant réussir */
3 ACTION segmentation.runSegmentation /
4 TABLE={name='clients_campagne', caslib='user'},
5 OUTPUT={name='clients_segments', caslib='user', replace=true};
6RUN;
7 
8 /* Vérification de la création de la table de sortie */
9 TABLE.tableInfo / caslib='user', name='clients_segments';
10RUN;
11QUIT;

Résultat Attendu


L'action 'segmentation.runSegmentation' échoue initialement. Après l'exécution de 'addUserActionSetPath' avec la caslib 'mktg_lib', l'action réussit et crée la table 'clients_segments' dans la caslib 'user', prouvant que le serveur CAS a bien trouvé et chargé le jeu d'actions à partir du chemin spécifié.