sessionProp

combineFmtLibs

##backup ##set_sessionprop

Description

L'action combineFmtLibs %https://go.documentation.sas.com/doc/en/pgmsascdc/v_069/caspg/cas-sessionprop-combinefmtlibs.htm% est l'outil ultime pour faire le ménage dans vos formatsInstructions de présentation appliquées aux valeurs des variables pour modifier leur apparence (dates, monnaies, libellés) sans altérer la donnée stockée dans les tables SAS Viya.. Elle permet de fusionner plusieurs bibliothèquesPointeurs logiques (Libref) reliant SAS Viya à des sources de données physiques (dossiers, bases de données, CAS) pour lire, écrire et organiser les tables de manière structurée. de formatsInstructions de présentation appliquées aux valeurs des variables pour modifier leur apparence (dates, monnaies, libellés) sans altérer la donnée stockée dans les tables SAS Viya. CAS existantes en une seule et unique bibliothèque toute neuve. C'est un peu comme ranger toutes vos chaussettes dépareillées dans un seul tiroir bien organisé, sauf qu'ici, on parle de formatsInstructions de présentation appliquées aux valeurs des variables pour modifier leur apparence (dates, monnaies, libellés) sans altérer la donnée stockée dans les tables SAS Viya. techniques pour vos données SAS Viya. Cette action est particulièrement utile avant de sauvegarder vos formatsInstructions de présentation appliquées aux valeurs des variables pour modifier leur apparence (dates, monnaies, libellés) sans altérer la donnée stockée dans les tables SAS Viya. sur le disque ou de les promouvoir pour les rendre accessibles à d'autres utilisateurs.

Syntaxe Officielle
sessionProp.combineFmtLibs /
fmtLibOut="nom-bibliotheque-cible",
fmtLibsIn={"bibliotheque-1", "bibliotheque-2"},
formatNames={"format-A", "format-B"},
ignoreNameNotFound=True | False;

Paramètres Clés

Nom du paramètre Description
fmtLibOut Désigne le nom de la nouvelle bibliothèque de formats qui résultera de la fusion. Attention : si une bibliothèque porte déjà ce nom, elle sera écrasée sans le moindre remords ! Le nom est limité à 63 caractères.
fmtLibsIn Une liste (tableau) contenant les noms de toutes les bibliothèques de formats que vous souhaitez aspirer et combiner. C'est ici que vous désignez vos sources.
formatNames Optionnel. Si vous ne voulez pas tout fusionner, vous pouvez lister ici uniquement les formats spécifiques qui ont le droit de rejoindre la nouvelle bibliothèque. Les formats intrinsèques (système) sont automatiquement ignorés.
ignoreNameNotFound Un paramètre booléen pour les perfectionnistes. Si défini à True, l'action ne générera pas d'erreur si l'un des formats listés dans 'formatNames' est introuvable dans les bibliothèques sources.

Préparation des données

Préparation de l'environnement de test

Nous créons ici deux bibliothèques de formats distinctes pour illustrer la fusion par la suite.

1PROC CAS; sessionProp.addFmtLib / fmtLibName="LibSourceA"; sessionProp.addFormat / fmtLibName="LibSourceA", name="statut", ranges={"0='Inactif'", "1='Actif'"}; sessionProp.addFmtLib / fmtLibName="LibSourceB"; sessionProp.addFormat / fmtLibName="LibSourceB", name="region", ranges={"1='Nord'", "2='Sud'"}; RUN;

Exemples d'utilisation

Fusion basique de deux bibliothèques

On prend tout ce qu'il y a dans LibSourceA et LibSourceB pour le mettre dans LibFinale.

1PROC CAS; sessionProp.combineFmtLibs / fmtLibsIn={"LibSourceA", "LibSourceB"}, fmtLibOut="LibFinale"; RUN;
Résultat Attendu :
Une nouvelle bibliothèque de formats nommée 'LibFinale' est créée dans la session CAS, contenant les formats 'statut' et 'region'.
Fusion sélective avec gestion des erreurs

Dans cet exemple, on ne récupère que le format 'statut', et on demande à CAS de rester zen si on demande un format imaginaire.

1PROC CAS; sessionProp.combineFmtLibs / fmtLibsIn={"LibSourceA", "LibSourceB"}, fmtLibOut="LibSelective", formatNames={"statut", "format_imaginaire"}, ignoreNameNotFound=true; RUN;
Résultat Attendu :
La bibliothèque 'LibSelective' est créée avec uniquement le format 'statut'. Malgré l'absence de 'format_imaginaire', l'action se termine avec succès grâce à ignoreNameNotFound.