?>Array ( [id] => 83 )
Scénario de test & Cas d'usage
Erstellt eine große Format-Kontrolltabelle ('produkt_formate_gross') mit 5000 Einträgen und eine zugehörige Verkaufstransaktionstabelle ('verkaufsdaten_gross').
| 1 | DATA work.produkt_formate_temp (keep=FmtName Type Start Label); |
| 2 | LENGTH FmtName $32 Start $20 Label $50; |
| 3 | FmtName = 'ProduktFmt'; |
| 4 | Type = 'N'; |
| 5 | DO i = 1 to 5000; |
| 6 | Start = cats(i); |
| 7 | Label = cat('Produktname_', i); |
| 8 | OUTPUT; |
| 9 | END; |
| 10 | RUN; |
| 11 | |
| 12 | DATA casuser.verkaufsdaten_gross; |
| 13 | DO i = 1 to 10000; |
| 14 | ProduktCode = floor(rand('UNIFORM') * 5000) + 1; |
| 15 | Umsatz = 100 + floor(rand('UNIFORM') * 500); |
| 16 | OUTPUT; |
| 17 | END; |
| 18 | RUN; |
| 19 | |
| 20 | PROC casutil; |
| 21 | load DATA=work.produkt_formate_temp outcaslib='casuser' casout='produkt_formate_gross' replace; |
| 22 | QUIT; |
| 1 | PROC CAS; |
| 2 | sessionprop.addFmtLib / |
| 3 | caslib='casuser' |
| 4 | name='produkt_formate_gross' |
| 5 | fmtLibName='GlobaleProduktFormate' |
| 6 | promote=true |
| 7 | replace=true; |
| 8 | QUIT; |
| 1 | PROC CAS; |
| 2 | SIMPLE.groupBy / |
| 3 | TABLE={caslib='casuser', name='verkaufsdaten_gross'} |
| 4 | groupBy={{name='ProduktCode', FORMAT='ProduktFmt.'}} |
| 5 | aggregator='SUM' |
| 6 | aggregatorInputs={{name='Umsatz'}}; |
| 7 | QUIT; |
Die große Formatbibliothek wird erfolgreich geladen und global promotet. Die nachfolgende Aggregationsabfrage wird korrekt ausgeführt und zeigt die Produktnamen (z. B. 'Produktname_1234') anstelle der numerischen Codes an. Dies demonstriert die Fähigkeit der Aktion, große, unternehmensweite Formatbibliotheken effizient zu verwalten.