//BRXXXLOD JOB (BRXXX,,,1),'CREATE SPA LOAD',TIME=(1),REGION=0M //*************************************************************/ //**** PROGRAM TO CONVERT LEGACY SPA FILE LAYOUT ***/ //**** TO NEW DATABASE LAYOUTS. ***/ //*************************************************************/ //**** *** MAINTENANCE *** ***/ //**** CHANGE THE JOB CARD TO REFLECT YOUR ENVIRONMENT ***/ //**** ***/ //**** CHANGE THE INPUT FILE NAME TO YOUR INPUT FILE NAME ***/ //**** ***/ //**** CHANGE THE FOUR OUTPUT FILE NAMES AND THE FILE NAMES ***/ //**** IN THE HOUSEKEEPING STEP TO YOUR FILE NAMES ***/ //**** PROGRAM IS SET UP TO CREATE 20072008 FILE DUE 7/9/08 ***/ //*************************************************************/ //************ HOUSEKEEPING ********************************/ //DELETE EXEC PGM=IDCAMS,REGION=512K //SYSPRINT DD SYSOUT=A //SYSIN DD * DELETE (YOUR.OUTPUT.CAMPUS.FILE) DELETE (YOUR.OUTPUT.SITE.FILE) DELETE (YOUR.OUTPUT.BLDG.FILE) DELETE (YOUR.OUTPUT.ROOM.FILE) SET MAXCC = 0 //SELECT EXEC SAS WORK='20000,10000' //SPAIN DD DSN=YOUR.INPUT.FILE,DISP=SHR //CAMPOUT DD DSN=YOUR.OUTPUT.CAMPUS.FILE, // DISP=(NEW,CATLG,DELETE),UNIT=SYSDA, // DCB=(LRECL=3000,RECFM=VB,BLKSIZE=), // SPACE=(CYL,(10,5),RLSE) //SITEOUT DD DSN=YOUR.OUTPUT.SITE.FILE, // DISP=(NEW,CATLG,DELETE),UNIT=SYSDA, // DCB=(LRECL=3000,RECFM=VB,BLKSIZE=), // SPACE=(CYL,(10,5),RLSE) //BLDGOUT DD DSN=YOUR.OUTPUT.BLDG.FILE, // DISP=(NEW,CATLG,DELETE),UNIT=SYSDA, // DCB=(LRECL=3000,RECFM=VB,BLKSIZE=), // SPACE=(CYL,(10,5),RLSE) //ROOMOUT DD DSN=YOUR.OUTPUT.ROOM.FILE, // DISP=(NEW,CATLG,DELETE),UNIT=SYSDA, // DCB=(LRECL=3000,RECFM=VB,BLKSIZE=), // SPACE=(CYL,(10,5),RLSE) //SYSIN DD * OPTIONS ERRORS=1 NODATE NOSOURCE SYMBOLGEN MSTORED MISSING=' ' SASMSTORE=AUTOLIB; DATA CAMPUS; INFILE SPAIN TRUNCOVER; INPUT @001 TERMID $CHAR06. @007 UNIV $CHAR04. @011 SITENO $CHAR04. @029 RECTYPE $CHAR01. @040 SITENAME $CHAR15. @055 SITEADDR $CHAR20. @075 SITECITY $CHAR15. @090 CAMPUS $CHAR02. @092 SITEZIP $CHAR09.; IF RECTYPE EQ '1'; KEY = UNIV||CAMPUS; PROC SORT DATA=CAMPUS NODUPKEYS; BY KEY UNIV CAMPUS SITENO; DATA CAMPTBL; SET CAMPUS; BY KEY UNIV CAMPUS SITENO; RETAIN CMPNAM CAMPUS2 ROWID; FORMAT CMPNAM $200.; SITENAME=UPCASE(SITENAME); SITEADDR=UPCASE(SITEADDR); SITECITY=UPCASE(SITECITY); ROWID = '20080000'||PUT(_N_,Z8.); IF CAMPUS='01' THEN CMPNAM='MAIN CAMPUS'; IF CAMPUS='02' THEN CMPNAM='FT. MYERS BRANCH CAMPUS'; IF CAMPUS='03' THEN CMPNAM='SARASOTA BRANCH CAMPUS '; IF CAMPUS='04' THEN CMPNAM='ST. PETERSBURG BRANCH CAMPUS'; IF CAMPUS='05' THEN CMPNAM='FLORENCE CENTER'; IF CAMPUS='06' THEN CMPNAM='LONDON CENTER'; IF CAMPUS='07' THEN CMPNAM='NEW COLLEGE CENTER'; IF CAMPUS='08' THEN CMPNAM='PANAMA CITY BRANCH CAMPUS'; IF CAMPUS='09' THEN CMPNAM='FT. WALTON BEACH CENTER'; IF CAMPUS='10' THEN CMPNAM='NORTH MIAMI BRANCH CAMPUS'; IF CAMPUS='11' THEN CMPNAM='EGLIN AFB CENTER'; IF CAMPUS='12' THEN CMPNAM='LAKELAND CENTER'; IF CAMPUS='13' THEN CMPNAM='DAYTONA BEACH BRANCH CAMPUS'; IF CAMPUS='14' THEN CMPNAM='SOUTH ORLANDO CENTER'; IF CAMPUS='15' THEN CMPNAM='BREVARD BRANCH CAMPUS'; IF CAMPUS='16' THEN CMPNAM='DAVIE BRANCH CAMPUS'; IF CAMPUS='17' THEN CMPNAM='FORT LAUDERDALE CAMPUS (TOWER)'; IF CAMPUS='18' THEN CMPNAM='NORTH PALM BEACH BRANCH CAMPUS AT PBG'; IF CAMPUS='19' THEN CMPNAM='COMMERCIAL BOULEVARD CENTER'; IF TERMID='200608' THEN BASEYR='20052006'; IF TERMID='200608' THEN SPATERM='200600'; IF TERMID='200708' THEN BASEYR='20062007'; IF TERMID='200708' THEN SPATERM='200700'; IF TERMID='200808' THEN BASEYR='20072008'; IF TERMID='200808' THEN SPATERM='200800'; IF TERMID='200908' THEN BASEYR='20082009'; IF TERMID='200908' THEN SPATERM='200900'; FORMAT CAMPUS2 $CHAR04.; CAMPUS2 = '00'||CAMPUS; **** CREATES A CAMPUS NAME BY CONCATENATING SITE NAMES ****; IF CAMPUS GT '19' THEN DO; IF SITENAME='UNF' THEN DO; IF SITEADDR NE '' THEN SITENAME=SITEADDR; ELSE SITENAME=SITECITY; END; END; IF FIRST.KEY THEN DO; CMPNAM=SITENAME; END; IF NOT FIRST.KEY THEN DO; LEN = LENGTH(TRIM(CMPNAM)) + 1 + LENGTH(TRIM(SITENAME)); IF LEN LE 200 THEN CMPNAM = TRIM(CMPNAM) || '/' || TRIM(SITENAME); ELSE DO; CMPNAM = TRIM(CMPNAM) || '/...'; END; END; **** CHANGES ANY '|' CHARACTERS THAT MAY BE IN SITENAME AND ***; **** TRUNCATES THE CAMPUS NAME TO 50 CHARACTERS ***; CMPNAM = TRANSLATE(CMPNAM,'-','|'); FORMAT CAMPNAME $CHAR50.; IF SUBSTR(CMPNAM,51,4) NE ' ' THEN CAMPNAME = SUBSTR(CMPNAM,1,47)||'/..'; ELSE DO; CAMPNAME = SUBSTR(CMPNAM,1,50); END; IF LAST.KEY THEN OUTPUT; DATA CAMPTBL; SET CAMPTBL; IF UNIV = ' ' THEN UNIV = '.'; IF CAMPUS2 = ' ' THEN CAMPUS2 = '.'; IF BASEYR = ' ' THEN BASEYR = '.'; IF CAMPNAME = ' ' THEN CAMPNAME = '.'; IF SITEZIP = ' ' THEN SITEZIP = '.'; **** OUTPUT CAMPUS TABLE ****; DATA CAMPOUT; SET CAMPTBL; FILE CAMPOUT DLM='|' LRECL=3000; PUT _N_ UNIV CAMPUS2 BASEYR SPATERM CAMPNAME SITEZIP; DATA SITE(KEEP=UNIV CAMPUS CAMPUS2 BASEYR TERMID SITENO SITENAME SITEADDR SITECITY SITEZIP SITEACRE SITEOWN SITETYP YEARACQ PARK U_RESV_1 U_RESV_2 SPATERM) BLDG(KEEP=UNIV CAMPUS CAMPUS2 BASEYR TERMID SITENO BLDGNO BLDGNAME BLDGOWN BLDGSTAT BLDGSTR BLDGEXT BLDGCOND BLDGHFLG BLDGJUSE BLDGYEAR BLDGOCC BLDGALT BLDGSUR BLDGGSF BLDGBE BLENCOND BLRFCOND BLMECOND BLELCOND BLPLCOND U_RESV_3 SPATERM) ROOM(KEEP=UNIV CAMPUS CAMPUS2 BASEYR TERMID SITENO BLDGNO RMPREFIX RMDIGITS RMSUFFIX RMFLVL RMPROR ROOMNAME RMUSECDE RMCATG RMCAPACT RMCAPDES ROOMCOND ROOMPROG RMJTUSE RMEXEMP ROOMAREA RMBDENTY RMBDUSER U_RESV_4 SPATERM); INFILE SPAIN TRUNCOVER; INPUT @001 SPAKEY $CHAR29. @001 TERMID $CHAR06. @007 UNIV $CHAR04. @011 SITENO $CHAR04. @029 RECTYPE $CHAR01. @; ****------------ SITE RECORDS ----------------------***; IF RECTYPE EQ '1' THEN INPUT @040 SITENAME $CHAR15. @055 SITEADDR $CHAR20. @075 SITECITY $CHAR15. @090 CAMPUS $CHAR02. @092 SITEZIP $CHAR09. @102 U_RESV_1 $CHAR10. @112 SITEACRE ZD6.1 @118 SITEOWNB ZD4. @122 BLDGGSF ZD8. @130 SITEOWN $CHAR01. @131 SITETYP $CHAR02. @133 YEARACQ $CHAR04. @137 PARK 5. @137 PARK2 $CHAR05. @142 U_RESV_2 $CHAR14.; ****--------------- BUILDING RECORDS ---------------***; IF RECTYPE = '2' THEN INPUT @15 BLDGNO $CHAR04. @40 BLDGNAME $CHAR30. @70 BLDGOWN $CHAR01. @71 BLDGSTAT $CHAR01. @72 BLDGTYPE $CHAR02. @72 BLDGSTR $CHAR01. @73 BLDGEXT $CHAR01. @74 BLDGCOND $CHAR01. @75 BLDGHFLG $CHAR01. @76 BLDGJUSE $CHAR01. @77 BLDGYEAR $CHAR04. @81 BLDGOCC $CHAR06. @87 BLDGALT $CHAR04. @91 BLDGSUR $CHAR04. @095 BLDGGSF ZD7. @102 BLDGBE $CHAR01. @103 BLDGFACT $CHAR28. @131 U_RESV_3 $CHAR20. @151 BLENCOND $CHAR01. @152 BLRFCOND $CHAR01. @153 BLMECOND $CHAR01. @154 BLELCOND $CHAR01. @155 BLPLCOND $CHAR01.; ****--------------- ROOM RECORDS ---------------------***; IF RECTYPE = '3' THEN INPUT @001 TERMYR $CHAR04. @005 TERMON $CHAR02. @007 UNIV $CHAR04. @011 SITENO $CHAR04. @015 BLDGNO $CHAR04. @019 RMPREFIX $CHAR02. @021 RMDIGITS $CHAR04. @025 RMSUFFIX $CHAR01. @026 RMFLVL $CHAR02. @028 RMPROR $CHAR01. @040 ROOMNAME $CHAR50. @090 RMUSECDE $CHAR03. @093 RMCATG $CHAR06. @099 RMCAPACT 5. @104 RMCAPDES 5. @109 ROOMCOND $CHAR01. @110 ROOMPROG $CHAR02. @112 RMJTUSE $CHAR01. @113 RMEXEMP $CHAR01. @114 ROOMAREA ZD7. @121 RMBDENTY $CHAR01. @122 RMBDUSER $CHAR01. @123 U_RESV_4 $CHAR24.; RETAIN UNIV CAMPUS CAMPUS2 BASEYR TERMID CAMPNAME SITENO SITENAME SITEADDR SITECITY SITEZIP SITEACRE SITEOWN SITETYP YEARACQ PARK U_RESV_1 U_RESV_2 U_RESV_3 U_RESV_4 BLDGNO BLDGNAME BLDGOWN BLDGSTAT BLDGSTR BLDGEXT BLDGCOND BLDGHFLG BLDGJUSE BLDGYEAR BLDGOCC BLDGALT BLDGSUR BLDGGSF BLDGBE BLENCOND BLRFCOND BLMECOND BLELCOND BLPLCOND RMPREFIX RMDIGITS RMSUFFIX RMFLVL RMPROR ROOMNAME RMUSECDE RMCATG RMCAPACT RMCAPDES ROOMCOND ROOMPROG RMJTUSE RMEXEMP ROOMAREA RMBDENTY RMBDUSER SPATERM; IF TERMID='200608' THEN BASEYR='20052006'; IF TERMID='200708' THEN BASEYR='20062007'; IF TERMID='200808' THEN BASEYR='20072008'; IF TERMID='200908' THEN BASEYR='20082009'; IF TERMID='200608' THEN SPATERM='200600'; IF TERMID='200708' THEN SPATERM='200700'; IF TERMID='200808' THEN SPATERM='200800'; IF TERMID='200908' THEN SPATERM='200900'; FORMAT CAMPUS2 $CHAR04.; CAMPUS2 = '00'||CAMPUS; IF RECTYPE = '1' THEN DO; OUTPUT SITE; END; IF RECTYPE = '2' THEN DO; OUTPUT BLDG; END; IF RECTYPE='3' THEN DO; OUTPUT ROOM; END; DATA SITE; SET SITE; IF UNIV = ' ' THEN UNIV = '.'; IF CAMPUS2 = ' ' THEN CAMPUS2 = '.'; IF BASEYR = ' ' THEN BASEYR = '.'; IF SPATERM = ' ' THEN SPATERM = '.'; IF SITENO = ' ' THEN SITENO = '.'; IF SITENAME = ' ' THEN SITENAME = '.'; IF SITEADDR = ' ' THEN SITEADDR = '.'; IF SITECITY = ' ' THEN SITECITY = '.'; IF SITEZIP = ' ' THEN SITEZIP = '.'; IF SITEACRE = ' ' THEN SITEACRE = '.'; IF SITEOWN = ' ' THEN SITEOWN = '.'; IF SITETYP = ' ' THEN SITETYPE = '.'; IF YEARACQ = ' ' THEN YEARACQ = '.'; IF PARK = ' ' THEN PARK = '.'; IF U_RESV_1 = ' ' THEN U_RESV_1 = '.'; IF U_RESV_2 = ' ' THEN U_RESV_2 = '.'; **** OUTPUT SITES TABLE ****; DATA SITEOUT; SET SITE; FILE SITEOUT DLM='|' LRECL=3000; PUT _N_ UNIV CAMPUS2 BASEYR SPATERM SITENO SITENAME SITEADDR SITECITY SITEZIP SITEACRE SITEOWN SITETYP YEARACQ PARK U_RESV_1 U_RESV_2; DATA BLDG; SET BLDG; IF UNIV = ' ' THEN UNIV = '.'; IF CAMPUS2 = ' ' THEN CAMPUS2 = '.'; IF BASEYR = ' ' THEN BASEYR = '.'; IF SPATERM = ' ' THEN SPATERM = '.'; IF SITENO = ' ' THEN SITENO = '.'; IF BLDGNO = ' ' THEN BLDGNO = '.'; IF BLDGNAME = ' ' THEN BLDGNAME = '.'; IF BLDGOWN = ' ' THEN BLDGOWN = '.'; IF BLDGSTAT = ' ' THEN BLDGSTAT = '.'; IF BLDGSTR = ' ' THEN BLDGSTR = '.'; IF BLDGEXT = ' ' THEN BLDGEXT = '.'; IF BLDGCOND = ' ' THEN BLDGCOND = '.'; IF BLDGHFLG = ' ' THEN BLDGHFLG = '.'; IF BLDGJUSE = ' ' THEN BLDGJUSE = '.'; IF BLDGYEAR = ' ' THEN BLDGYEAR = '.'; IF BLDGOCC = ' ' THEN BLDGOCC = '.'; IF BLDGALT = ' ' THEN BLDGALT = '.'; IF BLDGSUR = ' ' THEN BLDGSUR = '.'; IF BLDGGSF = ' ' THEN BLDGGSF = '.'; IF BLDGBE = ' ' THEN BLDGBE = '.'; IF BLENCOND = ' ' THEN BLENCOND = '.'; IF BLRFCOND = ' ' THEN BLRFCOND = '.'; IF BLMECOND = ' ' THEN BLMECOND = '.'; IF BLELCOND = ' ' THEN BLELCOND = '.'; IF BLPLCOND = ' ' THEN BLPLCOND = '.'; IF U_RESV_3 = ' ' THEN U_RESV_3 = '.'; **** OUTPUT BUILDINGS TABLE ****; DATA BLDGOUT; SET BLDG; FILE BLDGOUT DLM='|' LRECL=3000; PUT _N_ UNIV CAMPUS2 BASEYR SPATERM SITENO BLDGNO BLDGNAME BLDGOWN BLDGSTAT BLDGSTR BLDGEXT BLDGCOND BLDGHFLG BLDGJUSE BLDGYEAR BLDGOCC BLDGALT BLDGSUR BLDGGSF BLDGBE BLENCOND BLRFCOND BLMECOND BLELCOND BLPLCOND U_RESV_3; DATA ROOM; SET ROOM; IF UNIV = ' ' THEN UNIV = '.'; IF CAMPUS2 = ' ' THEN CAMPUS2 = '.'; IF BASEYR = ' ' THEN BASEYR = '.'; IF SPATERM = ' ' THEN SPATERM = '.'; IF SITENO = ' ' THEN SITENO = '.'; IF BLDGNO = ' ' THEN BLDGNO = '.'; IF RMPREFIX = ' ' THEN RMPREFIX = '.'; IF RMDIGITS = ' ' THEN RMDIGITS = '.'; IF RMSUFFIX = ' ' THEN RMSUFFIX = '.'; IF RMFLVL = ' ' THEN RMFLVL = '.'; IF RMPROR = ' ' THEN RMPROR = '.'; IF ROOMNAME = ' ' THEN ROOMNAME = '.'; IF RMUSECDE = ' ' THEN RMUSECDE = '.'; IF RMCATG = ' ' THEN RMCATG = '.'; IF RMCAPACT = ' ' THEN RMCAPACT = '.'; IF RMCAPDES = ' ' THEN RMCAPDES = '.'; IF ROOMCOND = ' ' THEN ROOMCOND = '.'; IF ROOMPROG = ' ' THEN ROOMPROG = '.'; IF RMJTUSE = ' ' THEN RMJTUSE = '.'; IF RMEXEMP = ' ' THEN RMEXEMP = '.'; IF ROOMAREA = ' ' THEN ROOMAREA = '.'; IF RMBDENTY = ' ' THEN RMBDENTY = '.'; IF RMBDUSER = ' ' THEN RMBDUSER = '.'; IF U_RESV_4 = ' ' THEN U_RESV_4 = '.'; **** OUTPUT ROOMS TABLE ****; DATA ROOMOUT; SET ROOM; FILE ROOMOUT DLM='|' LRECL=3000; PUT _N_ UNIV CAMPUS2 BASEYR SPATERM SITENO BLDGNO RMPREFIX RMDIGITS RMSUFFIX RMFLVL RMPROR ROOMNAME RMUSECDE RMCATG RMCAPACT RMCAPDES ROOMCOND ROOMPROG RMJTUSE RMEXEMP ROOMAREA RMBDENTY RMBDUSER U_RESV_4; RUN;