builtins addUserActionSetPath

Cas Limite : Gestion de la priorité dans le chemin de recherche avec des actions homonymes

Scénario de test & Cas d'usage

Contexte Métier

Dans une grande entreprise, les équipes Finance et Risque ont toutes deux développé un jeu d'actions nommé 'utils', mais avec des implémentations différentes pour une action 'dataCheck'. Un auditeur doit s'assurer qu'il exécute la version 'Risque' en priorité en configurant correctement son chemin de recherche.
À 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 de deux caslibs ('risk_lib', 'finance_lib'), chacune contenant un jeu d'actions 'utils' avec une action 'dataCheck' qui se comporte différemment.

Copié !
1/* Étape 1: Définir les caslibs pour chaque équipe */
2caslib risk_lib path='/cas/data/risk_shared' dataSource={srcType='path'} global;
3caslib finance_lib path='/cas/data/finance_shared' dataSource={srcType='path'} global;
4 
5/* Étape 2: Définir et sauvegarder l'action 'dataCheck' version RISQUE */
6PROC CAS;
7 SOURCE risk_utils;
8 ACTION utils.dataCheck;
9 PRINT '*** Vérification des données version RISQUE exécutée. ***';
10 ENDSOURCE;
11 BUILTINS.actionSetToTable actionSet='risk_utils', TABLE={name='utils_actions', caslib='risk_lib', replace=true};
12RUN;
13 
14/* Étape 3: Définir et sauvegarder l'action 'dataCheck' version FINANCE */
15PROC CAS;
16 SOURCE finance_utils;
17 ACTION utils.dataCheck;
18 PRINT '--- Vérification des données version FINANCE exécutée. ---';
19 ENDSOURCE;
20 BUILTINS.actionSetToTable actionSet='finance_utils', TABLE={name='utils_actions', caslib='finance_lib', replace=true};
21RUN;

Étapes de réalisation

1
Ajouter d'abord 'finance_lib' puis 'risk_lib'. Le premier trouvé ('finance_lib') devrait être utilisé.
Copié !
1PROC CAS;
2 BUILTINS.addUserActionSetPath / caslib='finance_lib';
3 BUILTINS.addUserActionSetPath / caslib='risk_lib';
4 utils.dataCheck; /* Doit afficher le message de la version FINANCE */
5RUN;
6QUIT;
2
Démarrer une nouvelle session CAS pour réinitialiser le chemin de recherche.
Copié !
1cas mySession clean;
2/* Simule une nouvelle
3session */
3
Ajouter d'abord 'risk_lib' puis 'finance_lib'. Le premier trouvé ('risk_lib') devrait maintenant être utilisé.
Copié !
1PROC CAS;
2 BUILTINS.addUserActionSetPath / caslib='risk_lib';
3 BUILTINS.addUserActionSetPath / caslib='finance_lib';
4 utils.dataCheck; /* Doit afficher le message de la version RISQUE */
5RUN;
6QUIT;

Résultat Attendu


Le scénario démontre que l'ordre d'exécution de 'addUserActionSetPath' est primordial. La première caslib ajoutée au chemin qui contient le jeu d'actions demandé est celle qui est utilisée. Le log SAS affichera 'version FINANCE' dans la première étape et 'version RISQUE' dans la troisième, validant le comportement de recherche séquentielle.