sessionProp addFmtLib

Scénario Performance : Gestion d'une Bibliothèque de Formats Globale et Volumineuse

Scénario de test & Cas d'usage

Contexte Métier

Un laboratoire de recherche doit gérer une bibliothèque de formats très volumineuse contenant des milliers de références croisées. Cette bibliothèque doit être mise à jour régulièrement et être accessible par toutes les équipes (toutes les sessions CAS). Le test vise à remplacer une bibliothèque existante par une nouvelle version et à la promouvoir à une portée globale.
À propos du Set : sessionProp

Configuration des propriétés de la session.

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

Création d'une bibliothèque de formats de petite taille (V1), puis d'une seconde très volumineuse (V2) via une macro pour simuler une mise à jour majeure. Les deux sont chargées dans CAS.

Copié !
1LIBNAME mycas cas;
2 
3* Étape 1: Créer une V1 simple de la bibliothèque;
4PROC FORMAT cntlout=work.shared_formats_v1;
5 value status_fmt 1='Actif' 2='Inactif';
6RUN;
7PROC CASUTIL; load DATA=work.shared_formats_v1 casout={name='shared_formats_tbl', caslib='casuser', replace=true}; RUN;
8 
9* Étape 2: Simuler une V2 très volumineuse;
10DATA work.shared_formats_v2;
11 LENGTH FmtName $32 Start $16 Label $40;
12 FmtName = 'CODE_DESC';
13 DO i = 1 to 5000;
14 Start = 'CODE' || left(put(i, 8.));
15 Label = 'Description détaillée pour le code ' || left(put(i, 8.));
16 OUTPUT;
17 END;
18RUN;
19PROC CASUTIL; load DATA=work.shared_formats_v2 casout={name='shared_formats_tbl_v2', caslib='casuser', replace=true}; RUN;

Étapes de réalisation

1
Ajout de la V1 de la bibliothèque de formats 'SharedGlobalLib' pour simuler un état existant.
Copié !
1PROC CAS;
2 sessionprop.addFmtLib /
3 caslib='casuser'
4 name='shared_formats_tbl'
5 fmtLibName='SharedGlobalLib'
6 replace=true;
7RUN;
2
Remplacement de la bibliothèque 'SharedGlobalLib' par la V2 (volumineuse) et promotion à une portée globale pour la rendre accessible à toutes les sessions. L'option `replace=true` est cruciale ici.
Copié !
1PROC CAS;
2 sessionprop.addFmtLib /
3 caslib='casuser'
4 name='shared_formats_tbl_v2'
5 fmtLibName='SharedGlobalLib'
6 replace=true
7 promote=true;
8RUN;
3
Vérification que la bibliothèque a bien été promue et est visible dans la liste des bibliothèques de formats de la session.
Copié !
1PROC CAS;
2 SESSION.listFmtLibs;
3RUN;

Résultat Attendu


L'action doit s'exécuter sans erreur, remplaçant la V1 par la V2. Le log ne doit indiquer aucun problème de performance notable. L'action `listFmtLibs` doit lister 'SharedGlobalLib' et indiquer qu'elle a une portée globale ('Global'). Cela prouve que le remplacement et la promotion d'une bibliothèque volumineuse sont fonctionnels.