Download - As08 Revised
![Page 1: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/1.jpg)
1
Using a SAS Catalog to Develop and
Managea SAS® Project
David D. ChapmanUS Census Bureau
![Page 2: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/2.jpg)
2
What I Will Talk About
Catalogs / Types of EntriesBasic SAS statementsControlling Program flowManaging CatalogsTesting New CodeCreating and Using Catalog EntriesDocumenting the Catalog Code
![Page 3: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/3.jpg)
3
Advantages of Catalogs
All Code One PlaceEasy to MoveManage Using SAS ProceduresEasy to Test Code Before UseInteractive or BatchAutomated Documentation
![Page 4: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/4.jpg)
4
SAS CATALOG
Four Level NameLIBNAME.CATALOG.ELEMENT.TYPE SUGI28.PAPER110.PROGRAM1.LOG
LIBNAMECATALOGELEMENT NAMEENTRY TYPE
![Page 5: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/5.jpg)
5
KEY SAS STATEMENTS
FILENAME statement with catalog option
%INCLUDE STATEMENT/ SOURCE2
![Page 6: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/6.jpg)
6
FILENAME STATEMENT
Associates an alias with either a specific catalog entry or a complete catalog
FILENAME DATA_READ CATALOG "SUGI28.PAPER110.READ.SOURCE";
FILENAME CODE CATALOG "SUGI28.PAPER110”;
![Page 7: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/7.jpg)
7
%INCLUDE STATEMENT
Inserts and executes SAS statements and data lines in the file associated with the statement.
The “/SOURCE2” option displays the contents of the file.
Works with files, specific entries of catalog, or entire catalog
![Page 8: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/8.jpg)
8
%INCLUDE STATEMENT- File
%INCLUDE “C:\MY_CODE.SAS”/SOURCE2
![Page 9: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/9.jpg)
9
%INCLUDE STATEMENT-Entry
LIBNAME SUGI28 “C:\SUGI28”;FILENAME PGM1 CATALOG
SUGI28.PAPER110.PGM_1.SOURCE”;%INCLUDE PGM1 / SOURCE2
![Page 10: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/10.jpg)
10
%INCLUDE STATEMENT-Catalog
LIBNAME SUGI28 “C:\SUGI28”;FILENAME CODE CATALOG “SUGI28.PAPER110”;%INCLUDE CODE(PGM_1) /
SOURCE2%INCLUDE CODE(PGM_2) /
SOURCE2
![Page 11: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/11.jpg)
11
CONTROLING PROGRAM FLOW
Source Entry: SUGI28.PAPER110.CONTROL.SOURCE
LIBNAME SUGI28 “C:\SUGI28”; FILENAME MY_APP CATALOG “SUGI28.PAPER110”; %INCLUDE MY_APP(START) /SOURCE2; %INCLUDE MY_APP(PGM_1) /SOURCE2; %INCLUDE MY_APP(PGM_2) /SOURCE2; %INCLUDE MY_APP(STOP) /SOURCE2; RUN;
![Page 12: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/12.jpg)
12
MANAGING THE CATALOG
Contents of the CatalogMoving Catalog on same
computerMoving Catalog to different
computer
![Page 13: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/13.jpg)
13
PROC CATALOG
List Contents of CatalogCopy all or part of entriesRename or Delete EntriesChange Description of Catalog
![Page 14: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/14.jpg)
14
Contents of the CATALOG-Output
Contents of Catalog SUGI28.PAPER110
# Name Type Create Date Modified Date ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ
1 COMPANY CATAMS 06MAR2003:13:21:03 06MAR2003:13:21:03 2 RGN FORMAT 06MAR2003:13:52:11 06MAR2003:13:52:11 3 REGION FORMATC 06MAR2003:13:47:17 06MAR2003:13:47:17 4 PROGRAM LOG 06MAR2003:14:34:40 06MAR2003:14:34:40 5 PROGRAM OUTPUT 06MAR2003:14:34:40 06MAR2003:14:34:40 6 READ SOURCE 06MAR2003:12:42:44 06MAR2003:12:42:44
![Page 15: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/15.jpg)
15
Copy All Entries to New Catalog
PROC CATALOG CAT=SUGI28.PAPER110;COPY OUT=NESUG2003.PAPER254;RUN;
![Page 16: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/16.jpg)
16
MOVE CATALOG
Move Catalog to different computer
PROC UPLOAD INCAT = SUGI28.PAPER110 OUTCAT= EPBA51.PAPER110;RUN;
![Page 17: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/17.jpg)
17
TESTING NEW CODE
CATNAME StatementLogically concatenates multiple
catalogsUsed to insert test or revised code
without touching the productioncode
CATNAME LIB.CAT (LIB1.CAT1 LIB2.CAT2);
![Page 18: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/18.jpg)
18
CATNAME STATEMENT
CATNAME SUGI.PAPER110A (SUGI.TEST SUGI.PAPER110);
FILENAME CONTROL CATALOG "SUGI.PAPER110A";RUN;
%INCLUDE CONTROL(PROGRAM_1) / SOURCE2;RUN;
![Page 19: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/19.jpg)
19
DOCUMENTING THE CATALOG
AUTOMATING THE PROCESSCapture contents of PROC
CATALO G using ODSUse ODS captured data to
create macro variablesUse macro variables to write
the contents of source elements to a PDF file
![Page 20: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/20.jpg)
20
CAPTURE PROC CATALOG OUTPUT USING ODS
ODS OUTPUT CATALOG_RANDOM =NESUG_2009_LIST ;
PROC CATALOG CAT=NESUG.NESUG_2009 ;
CONTENTS;QUIT;
![Page 21: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/21.jpg)
21
ASSIGN CATALOG ELEMENT NAMES TO MACRO
VARIABLESDATA _NULL_;SET NESUG_2009_LIST END=LAST;IF TYPE=“SOURCE” THEN DO;
CNT+1; CNT_C=“L”||LEFT(PUT,CNT,2.)); CALL SYMPUT(CNT_C,OBJNAME);END;IF LAST=1 THEN DO;
CALL SYMPUT (“CAT_COUNT”,CNT);END; RUN;
![Page 22: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/22.jpg)
22
PRINT CATALOG TO PDF FILE
%MACRO PRINT; PROC PRINT; RUN; %DO ELEMENT=1 %TO &CAT_COUNT; FILENAME CODELIB CAT “NESUG.NESUG_2009.&&L..&ELEMENT..SOURCE”; DATA PRINT; INFILE CODELIB; INPUT CODE $ 1-50; RUN; PROC PRINT DATA=PRINT;RUN; %END; %MEND;
![Page 23: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/23.jpg)
PRINT OUTPUT to PDF File
ODS FILE=“C:\DOCUMENT.PDF”
%PRINT;
ODS PDF CLOSE;
23
![Page 24: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/24.jpg)
24
CATALOG ENTRY TYPES
SOURCECATAMS (DATA)FORMATMACRO (SOURCE)LOG & OUTPUTPROCEDURE SPECIFIC
![Page 25: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/25.jpg)
25
SOURCE ELEMENT
Similar to SAS program files, ASCII, or Text files
Used for ordinary SAS codeProcedures
![Page 26: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/26.jpg)
26
Creating a Source Entry
InteractivePROGRAM EDITORFile MenuSave as ObjectOpen as Object
BatchData _NULL_Procedure
![Page 27: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/27.jpg)
27
CATAMS ELEMENT
Element holds dataUsed to store information in SAS
data sets and Program Parameters
![Page 28: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/28.jpg)
28
Writing Format to Catalog-pgm
proc format library=NESUG.NESUG_2009;value $region
'1'='NorthEast' '2'='NorthEast' '3'='MidWest' . . . '8'='West' '9'='West';run;
![Page 29: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/29.jpg)
29
Using Format in Catalog-PGM
options fmtsearch = (NESUG.NESUG_2009);
proc print data=test;format division $region12. ;run;
![Page 30: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/30.jpg)
30
Macro(Source)
Macro code can be stored in catalog SOURCE entries an accessed from the catalog through the autocall facility
Name of the macro and source entry containing code must be the same name.
![Page 31: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/31.jpg)
31
WRITING THE LOG AND OUTPUT FILES TO CATALOG
PROC PRINTTO NEWLOG=SUGI28.PAPER110.PROGRAM.LOGPRINT=SUGI28.PAPER110.PROGRAM.OUTPUT;RUN;-----------------------------------%INCLUDE PAPER110(PGM_1)/SOURCE2;RUN;PROC PRINTTO;RUN;----------------------------------
![Page 32: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/32.jpg)
32
PROCEDURE SPECIFIC
PROC REPORTSQL QUERY/WINDOWSAS/GRAPHOthers
![Page 33: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/33.jpg)
33
CONCLUSION-1
SAS Catalogs allow the data step programmer to ;
Keep all code in one placeWork both interactively and in
batchEasily move code to another
directory or computerSimplify testing of new code
![Page 34: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/34.jpg)
34
CONCLUSION-2
Automate documentaionFlexible and easy to use
![Page 35: As08 Revised](https://reader033.vdocuments.site/reader033/viewer/2022061119/546b310baf795995648b47d1/html5/thumbnails/35.jpg)
35
About the Speaker
Speaker David D. ChapmanCompany Economic Planning and
Coordination Division U.S. Census BureauLocation Washington, DC 20233Telephone (301) 763-6535Email