Die Aktion `fmtLibCntlIn` erstellt eine Formatbibliothek in einer CAS-Sitzung, indem sie Formatdefinitionen aus einer Kontrolltabelle liest. Dies ist funktional analog zur Option `CNTLIN=` in der `PROC FORMAT`-Anweisung von SAS 9. Die Eingabetabelle muss eine spezifische Struktur (Spalten wie `FMTNAME`, `START`, `LABEL`, etc.) aufweisen, die die Formatbereiche und -werte definiert. Diese Aktion ist entscheidend für die Migration bestehender SAS-Formate in die Cloud Analytic Services (CAS) Umgebung oder für das datengesteuerte Erstellen von Formaten. Beachten Sie, dass PICTURE-Formate derzeit nicht vollständig unterstützt werden.
| Parameter | Beschreibung |
|---|---|
| fmtLibName | Gibt den Namen der Formatbibliothek an, die in der aktuellen Sitzung erstellt oder aktualisiert werden soll. |
| table | Gibt die Quell-Tabelle (CAS-Tabelle) an, die die Format-Kontrolldaten enthält. Diese Tabelle sollte die Struktur einer mit `PROC FORMAT CNTLOUT=` erzeugten Tabelle haben. Unterstützt Parameter wie `name`, `caslib` und `where`. |
Wir erstellen zunächst lokale SAS-Formate, exportieren diese in eine SAS-Datei (Kontrolltabelle) und laden diese anschließend in die CAS-Bibliothek `casuser`.
| 1 | PROC FORMAT; |
| 2 | value $gender 'M'='Male' 'F'='Female'; |
| 3 | value agegrp low-30='Young' 31-high='Mature'; |
| 4 | RUN; |
| 5 | |
| 6 | /* Exportieren in eine Kontrolltabelle */ |
| 7 | PROC FORMAT cntlout=work.myfmtcntl; |
| 8 | RUN; |
| 9 | |
| 10 | /* Hochladen der Tabelle nach CAS */ |
| 11 | cas mySession sessopts=(caslib="casuser"); |
| 12 | LIBNAME casuser cas caslib="casuser"; |
| 13 | |
| 14 | DATA casuser.fmt_cntl_table; |
| 15 | SET work.myfmtcntl; |
| 16 | RUN; |
Die Aktion liest die Tabelle `fmt_cntl_table` und erstellt daraus die Formatbibliothek `myFmtLib` in der aktuellen Sitzung.
| 1 | PROC CAS; |
| 2 | sessionProp.fmtLibCntlIn / |
| 3 | fmtLibName="myFmtLib", |
| 4 | TABLE={name="fmt_cntl_table", caslib="casuser"}; |
| 5 | RUN; |
In diesem erweiterten Beispiel wird die Bibliothek importiert und anschließend ihr Inhalt detailliert aufgelistet, um die Korrektheit der Formatbereiche (Ranges) zu verifizieren.
| 1 | PROC CAS; |
| 2 | /* Importieren der Formate */ |
| 3 | sessionProp.fmtLibCntlIn RESULT=r STATUS=rc / |
| 4 | fmtLibName="myFmtLib", |
| 5 | TABLE={name="fmt_cntl_table", caslib="casuser"}; |
| 6 | |
| 7 | IF rc.statusCode != 0 THEN DO; |
| 8 | PRINT "Fehler beim Importieren der Formate: " rc.statusMsg; |
| 9 | END; |
| 10 | ELSE DO; |
| 11 | /* Auflisten der importierten Formate und ihrer Bereiche */ |
| 12 | sessionProp.listFmtLibs / |
| 13 | fmtLibName="myFmtLib", |
| 14 | showRanges=TRUE; |
| 15 | END; |
| 16 | RUN; |