Scénario de test & Cas d'usage
Configuration des propriétés de la session.
Découvrir toutes les actions de sessionPropCré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.
| 1 | LIBNAME mycas cas; |
| 2 | |
| 3 | * Étape 1: Créer une V1 simple de la bibliothèque; |
| 4 | PROC FORMAT cntlout=work.shared_formats_v1; |
| 5 | value status_fmt 1='Actif' 2='Inactif'; |
| 6 | RUN; |
| 7 | PROC 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; |
| 10 | DATA 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; |
| 18 | RUN; |
| 19 | PROC CASUTIL; load DATA=work.shared_formats_v2 casout={name='shared_formats_tbl_v2', caslib='casuser', replace=true}; RUN; |
| 1 | PROC CAS; |
| 2 | sessionprop.addFmtLib / |
| 3 | caslib='casuser' |
| 4 | name='shared_formats_tbl' |
| 5 | fmtLibName='SharedGlobalLib' |
| 6 | replace=true; |
| 7 | RUN; |
| 1 | PROC CAS; |
| 2 | sessionprop.addFmtLib / |
| 3 | caslib='casuser' |
| 4 | name='shared_formats_tbl_v2' |
| 5 | fmtLibName='SharedGlobalLib' |
| 6 | replace=true |
| 7 | promote=true; |
| 8 | RUN; |
| 1 | PROC CAS; |
| 2 | SESSION.listFmtLibs; |
| 3 | RUN; |
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.