sessionProp addFmtLib

Scénario Cas Limite : Gestion des Conflits de Noms et Erreurs Attendues

Scénario de test & Cas d'usage

Contexte Métier

Dans une grande organisation, plusieurs départements peuvent définir des logiques métier différentes pour les mêmes codes. Ce scénario teste la robustesse de l'action `addFmtLib` face à des conflits : tentative de remplacement sans autorisation, gestion de l'ordre de recherche, et violation des contraintes de nommage.
À 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 de deux tables de contrôle de formats concurrentes, 'risk_formats' et 'compliance_formats', qui définissent le même nom de format ('$alert_level') mais avec des libellés différents.

Copié !
1LIBNAME mycas cas;
2 
3* Format du département Risque;
4PROC FORMAT cntlout=work.risk_formats;
5 value $alert_level 'H'='Risque Élevé' 'M'='Risque Modéré';
6RUN;
7PROC CASUTIL; load DATA=work.risk_formats casout={name='risk_formats_tbl', caslib='casuser', replace=true}; RUN;
8 
9* Format du département Conformité;
10PROC FORMAT cntlout=work.compliance_formats;
11 value $alert_level 'H'='Action Immédiate Requise' 'M'='À Surveiller';
12RUN;
13PROC CASUTIL; load DATA=work.compliance_formats casout={name='compliance_formats_tbl', caslib='casuser', replace=true}; RUN;

Étapes de réalisation

1
Ajout de la bibliothèque de formats du département Risque.
Copié !
1 
2PROC CAS;
3sessionprop.addFmtLib / caslib='casuser' name='risk_formats_tbl' fmtLibName='AppFormats';
4RUN;
5 
2
Tentative d'ajout de la bibliothèque Conformité avec le même nom ('AppFormats') SANS l'option `replace=true`. Cette action doit échouer.
Copié !
1 
2PROC CAS;
3sessionprop.addFmtLib / caslib='casuser' name='compliance_formats_tbl' fmtLibName='AppFormats';
4RUN;
5 
3
Ajout de la bibliothèque Conformité sous un autre nom ('ComplianceFmt') en utilisant l'option `fmtSearch='APPEND'` (comportement par défaut).
Copié !
1 
2PROC CAS;
3sessionprop.addFmtLib / caslib='casuser' name='compliance_formats_tbl' fmtLibName='ComplianceFmt';
4RUN;
5 
4
Tentative de création d'une bibliothèque avec un nom dépassant la limite de 63 caractères. Cette action doit échouer.
Copié !
1 
2PROC CAS;
3sessionprop.addFmtLib / fmtLibName='CeciEstUnNomDeBibliothequeDeFormatsBeaucoupTropLongPourEtreValideParLeSystemeCAS';
4RUN;
5 

Résultat Attendu


L'étape 2 doit générer une erreur dans le journal SAS, indiquant que la bibliothèque 'AppFormats' existe déjà. L'étape 3 doit réussir. L'étape 4 doit générer une erreur indiquant que le nom de la bibliothèque est trop long. Ce scénario valide que les gardes-fous de l'action (gestion des conflits de noms et validation des contraintes de longueur) fonctionnent comme documenté.