sessionProp addFmtLib

Testen von Konflikten, Fehlern und Suchreihenfolgen mit mehreren Formatbibliotheken

Scénario de test & Cas d'usage

Geschäftskontext

Ein Data-Governance-Team muss die Regeln für die Formatverwaltung definieren. Es muss verstehen, wie das System auf Konflikte reagiert, wenn mehrere Formatbibliotheken mit überlappenden Definitionen geladen werden. Außerdem sollen Fehlerbedingungen getestet werden, z. B. das Laden aus einem nicht existierenden Pfad. Dieses Szenario testet die `fmtSearch`-Logik und die Fehlerbehandlung.
Über das Set : sessionProp

Konfiguration von Sitzungseigenschaften.

Entdecken Sie alle Aktionen von sessionProp
Datenaufbereitung

Erstellt eine Tabelle mit Sensordaten ('sensordaten') und zwei konkurrierende Formatbibliotheken ('basis_formate', 'override_formate') mit unterschiedlichen Definitionen für denselben Code.

Kopiert!
1PROC FORMAT;
2 value StatusBasis 1='OK' 2='WARNUNG' 9='UNBEKANNT';
3 value StatusOverride 2='KRITISCH' 3='FEHLER';
4RUN;
5 
6DATA casuser.sensordaten;
7 INPUT StatusCode;
8 DATALINES;
91
102
113
129
13;
14RUN;
15 
16PROC CASUTIL;
17 save casdata='work.formats' outcaslib='casuser' casout='basis_formate' options={FORMAT='StatusBasis'} replace;
18 save casdata='work.formats' outcaslib='casuser' casout='override_formate' options={FORMAT='StatusOverride'} replace;
19QUIT;

Étapes de réalisation

1
Laden der Basis-Formatbibliothek. Diese wird standardmäßig an die Suchliste angehängt ('APPEND').
Kopiert!
1 
2PROC CAS;
3sessionprop.addFmtLib / caslib='casuser' name='basis_formate' fmtLibName='BasisLib';
4QUIT;
5 
2
Laden der Override-Formatbibliothek mit `fmtSearch='INSERT'`, wodurch sie am Anfang der Suchliste platziert wird.
Kopiert!
1 
2PROC CAS;
3sessionprop.addFmtLib / caslib='casuser' name='override_formate' fmtLibName='OverrideLib' fmtSearch='INSERT';
4QUIT;
5 
3
Anwenden beider Formate. Da 'OverrideLib' zuerst durchsucht wird, sollte der Code 2 als 'KRITISCH' und nicht als 'WARNUNG' formatiert werden.
Kopiert!
1 
2PROC CAS;
3SIMPLE.freq / TABLE={caslib='casuser', name='sensordaten'} inputs={{name='StatusCode', FORMAT='StatusBasis.'}, {name='StatusCode', FORMAT='StatusOverride.'}};
4QUIT;
5 
4
Versuch, eine Formatbibliothek von einem ungültigen Pfad zu laden. Ein Fehler im Protokoll wird erwartet.
Kopiert!
1 
2PROC CAS;
3sessionprop.addFmtLib / path='/ungueltiger/pfad/formate.sashdat' fmtLibName='FehlerTest';
4QUIT;
5 

Erwartetes Ergebnis


Die Frequenzergebnisse für Schritt 3 zeigen, dass der StatusCode 2 als 'KRITISCH' interpretiert wird, was beweist, dass die mit `fmtSearch='INSERT'` geladene Bibliothek Vorrang hat. Der Code 1 wird als 'OK' und 9 als 'UNBEKANNT' aus der Basisbibliothek formatiert. Schritt 4 erzeugt einen erwarteten Fehler im SAS-Protokoll, der anzeigt, dass der Pfad nicht gefunden wurde. Dies bestätigt die korrekte Funktionsweise der Suchhierarchie und der Fehlerbehandlung.