@ SCEPTRE AMENDMENT UCS_P550_005/3 @ @ EXECUTE THIS FILE UNDER :SCEP0550 TO CREATE THE NEW SOURCE FILE @ ICLRSISOURCE.ICL8UCS0DAILY @ IT WILL THEN BE COMPILED INTO THE ICLRSIOMF LIBRARY, AND THE OMF @ MODULE MODAMENDED TO PREVENT CASCADE LOADING. BEGIN UCS_ASSIGN_CODE ENTER XF(ICLRSISOURCE.ICL8UCS0DAILY(5501),RES=IGNORE) ENTER XF(ICLRSIOMF.ICL8UCS0DAILY(5502),RES=IGNORE) ENTER XF(ICLRSIOMF.ICL8UCS0DAILY(5501),RES=IGNORE) INF(ICLRSISOURCE.ICL8UCS0DAILY) ---- PROC ICL8_UCS_0_DAILY (UCS_DAILY_JOBS) IS ( @ ---------------------------------------------------------------- @ @ Copyright (c) Ultracomp Limited 1992-1997 @ @ ---------------------------------------------------------------- @ @ $Workfile: ICL8UCS0DAILY $ @ @ $Archive: Q:/PVCSPROJ/Sceptre/Source/SCL/ICL8UCS0DAILY.__v $ @ @ $Revision: 1.1 $ @ @ $Date: 26 Mar 1998 10:38:22 $ @ @ $Author: MRQ.MAN_1 $ @ @ ---------------------------------------------------------------- @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ This procedure is used to run the daily updates , reports and@ @ the weekly reports and grpahs. @ @ @ @ @ @ ****** I M P O R T A N T N O T I C E ! ! ! ****** @ @ @ @ If this SCL procedure is edited and recompiled, you MUST @ @ after recompilation apply the following module amendment @ @ to the compiled module: @ @ @ @ CHA(MODULE, NOCASCADE = YES) @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ LITERAL JR_UPDATE_REQD := "NO" , LITERAL JR_REPORT_TYPE := "G" , INT JR_SPLIT_TIME := 1440 , INT JR_PRORATE_INTERVAL := 60 , LITERAL JR_GROUPS_FILE := "UCS_GROUP_NAMES", LITERAL JR_DEFAULT_GROUP := "P" , INT JR_KEEP := 7 , LITERAL JR_ALLOCATION := "L" , BOOL JR_IGNORE_FAIL := FALSE , LITERAL TR_UPDATE_REQD := "NO" , INT TR_DAYS_BEHIND := 1 , BOOL TR_IGNORE_FAIL := FALSE , LITERAL (DR_REQD) DAILY_REPORTS := "YES" , LITERAL (WR_REQD) WEEKLY_REPORTS := "TUE" , LITERAL (WG_REQD) WEEKLY_GRAPHS := "TUE" , LITERAL (MR_REQD) MONTHLY_REPORTS := "NO" , LITERAL (MG_REQD) MONTHLY_GRAPHS := "NO" , INT (DR_OLD_DAYS) DR_OLD_DAYS := 7, BOOL R_IGNORE_FAIL := TRUE , LITERAL R_SAVELIST := "*STDLP" , LITERAL G_SAVELIST := "*STDLP" , LITERAL STPOV := "YES" , INT TREND_LIMIT := -1, LITERAL MODE := "NORMAL", REF INT (RESPONSE) RES := RESULT ) PROCBEGIN BEGIN EXT PROC GIVE_CIVIL_TIME IS ( REF STRING DATE, REF STRING TIME, INT MICROSECONDS := 0, RESPONSE RESPONSE := RESULT) INT IG, ACR, TL UCS_SCL_NAME ( UCS_DAILY_JOBS ); IF TREND_LIMIT < 1 THEN TL := 0 ELSF TREND_LIMIT > 9999 THEN TL := 9999 ELSE TL := TREND_LIMIT FI UCS_LOAD_LIMIT ( TL, IG) UCS_GIVE_ACR ( ACR ) IF ACR LT 15 THEN ACR = ACR + 1 ELSE SMSG("ERROR - UCS_DAILY_JOBS CANNOT RUN AT ACR 15") RES = 999999 RETURN FI UCSJOBSPACE( ACR, JSE = 620 , MSE = 280, JSH = 4096, RES = IG) IF IG NE 0 THEN SMSG(" RC = " + NUMERIC(IG) + " FROM DECLARE_JOB_SPACE") FI; UCS_STORE_RES ( 0 ); RES := 0; @======================================================================@ @ @ @ Raise ACR level and start main processing @ @ @ @======================================================================@ BEGIN+1 INT RES := 0, IGNORE, TODAY_LAST, IGNORED_FAILS := 0 RESET_COBOL (IGNORE); RUN_DEFAULTS (DUM = 1,DIA = 3, RES = IGNORE); STRING (4) TODAY_TYPE = FILL(4),LAST_DAY STRING (8) PRODUCT_CODE , CHECKSUM , EXPIRE_DATE STRING (50) IN1_FILE, IN2_FILE, IN3_FILE, IN4_FILE STRING (8) U_SDATE , U_FDATE , T_SDATE , T_FDATE , TM_SDATE , TM_FDATE STRING (4) U_TIME STRING (1) TREND_ID , TM_ID STRING (2) T_TOTALS , TM_TOTALS STRING (3) T_DAY , TM_DAY INT TODAYS_BIN_DATE, OLD_BIN_DATE, U_SUM_INT, JULEAN_DATE, LAST_MONTHLY_BIN, UCS_PRINT, UCS_G_PRINT STRING (3) DAY_OF_WEEK STRING DAYS := "SUNMONTUEWEDTHUFRISAT" SUPERSTRING VALID_DT := "1"&"2"&"3"&"4"&"5"&"L"&"D" STRING LRC_DATE := FILL(10) , NRC_DATE := FILL(10) INT LRB_DATE, NRB_DATE STRING (10) TODAYS_DATE := FILL(10), THIS_YEAR := FILL(10), @ 4.05 @ LAST_DATE := FILL(10) STRING (8) CURRENT_TIME = FILL(8) , TEMP_DATE STRING (80) R_MESS STRING (1) COLUMN := "0" STRING (2048) RECORD := FILL(2048) @ used for steering file reading@ @ and restart information @ @ The restart file UCS_DAILY_JOBS_REST contains a single record @ | @ bytes | contents @ | @ 1 to 8 | "UCSDAILY" @ 9 to 18 | yyyy/mm/dd date last run @ 19 to 26 | hh:mm:ss time last run @ 27 to 36 | yyyy/mm/dd date job resource update last run @ 37 to 46 | yyyy/mm/dd date trend update last run @ 47 to 52 | ddmmyy last finish date for usage reports @ 53 to 58 | ddmmyy " " " " trend " @ 59 to 68 | yyyy/mm/dd last daily reports run @ 69 to 78 | yyyy/mm/dd last weekly reports run @ 79 to 88 | yyyy/mm/dd last monthly reports run STRING (4) KEY INT READ_RESULT, RECORD_COUNT INT I,J,K SUPERSTRING (12) PARAMETERS PARAMETERS(0) := FILL(16) PARAMETERS(1) := FILL(16) PARAMETERS(2) := FILL(40) PARAMETERS(3) := FILL(40) PARAMETERS(4) := FILL(40) PARAMETERS(5) := FILL(40) PARAMETERS(6) := FILL(40) PARAMETERS(7) := FILL(3) PARAMETERS(8) := FILL(2) PARAMETERS(9) := FILL(40) PARAMETERS(10) := FILL(14) PARAMETERS(11) := FILL(1) STRING (16) NAME SUPERSTRING VALID_PARAMS := "REP=" & "SAV=" & "GNA=" & "GXD=" & "GYD=" & "GCD=" & "GDD=" & "DAY=" & "SHI=" & "TIT=" & "TYP=" & "TID=" SUPERSTRING STEERING_FILES := "UCS_DAILY_REPORTS" & "UCS_WEEKLY_REPORTS" & "UCS_WEEKLY_GRAPHS" & "UCS_MONTHLY_REPORTS" & "UCS_MONTHLY_GRAPHS" INT ST_FILE = -1 INT SF_LNA STRING (10) OLD_DATE; STRING (16) REPORT_TYPE = "UCSTAB" @ UCS_TREND_REPORT @ BOOL DR_REQD , WR_REQD , WG_REQD , MR_REQD , MG_REQD , UC_DIAG BOOL CREATED_RESTART_FILE = FALSE; EXT PROC ICL9LGGDAYS IS (SPDRIW) EXT PROC ICL9LGGDATEC2B IS (STRING,SPDRIW) EXT PROC ICL9LGGDATEB2C IS (SPDRIW,STRING) EXT PROC CTM_DATE_TIME IS (INT, REF STRING, REF STRING, RESPONSE) IF MODE = "DIAG" THEN UC_DIAG = TRUE ELSE UC_DIAG = FALSE FI RES = 0 SEVERITY := 0 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ Open log file and log start of procedure message @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ R_MESS = "ERROR OPENING LOG FILE" UCS_LOG_OPEN ( IDE = S, RES = RES); UCS_LOG_MESS ( TYP = "SD", MES = "UCS_DAILY_JOBS Starting", BOX = ".", RES = RES ); IF RES > 0 THEN GOTO FAILED FI; @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ Calculate day of week and obtain the default filenames etc @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ R_MESS = "ERROR OBTAINING CURRENT DATE" CTM_DATE_TIME ( 0, TODAYS_DATE, CURRENT_TIME, RESP) TEMP_DATE = SUBSTR(TODAYS_DATE,0,4) + SUBSTR(TODAYS_DATE,5,2) + SUBSTR(TODAYS_DATE,8,2) ICL9LGGDATE_C2B (TEMP_DATE, JULEAN_DATE) I = JULEAN_DATE / 7 I = JULEAN_DATE - ( I * 7 ) DAY_OF_WEEK := SUBSTR(DAYS, I*3, 3) ICL9LGGDAYS ( TODAYS_BIN_DATE ); R_MESS = "ERROR OBTAINING DAY OF MONTH TYPE" UCS_GET_DATE_TYPE(TODAYS_DATE,TODAY_TYPE,TODAY_LAST,RES=RES) IF RES NE 0 THEN GOTO FAILED; FI; IF TODAY_LAST NE 0 THEN LAST := "LAST" ELSE LAST := FILL(4) FI UCS_MSG("UCS_DAILY_JOBS - " + DAY_OF_WEEK + " " + TODAYS_DATE + " " + CURRENT_TIME + " ..... " + TODAY_TYPE + " " + LAST_DAY , BOX = "*" , SID = "*" , RES = RES ) @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ Here we read read the restart data file - to override the start @ @ dates for the reports @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ R_MESS = "ERROR ASSIGNING/OPENING RESTART DATA FILE" ASSIGN_FILE( NAM = UCS_DAILY_JOBS_REST , LNA = RDLNA , ACC = W , RES = IGNORE ) IF IGNORE = 50144 THEN R_MESS = "ERROR CREATING RESTART DATA FILE" CRF( NAM = UCS_DAILY_JOBS_REST , LNA = RDLNA , INI = 1 , RES = RES ) IF RES NE 0 THEN GOTO FAILED; FI; SVF ( *RDLNA , RES = RES) IF RES NE 0 THEN GOTO FAILED; FI; CREATED_RESTART_FILE := TRUE; FI IF ( IGNORE NE 50144 ) AND ( IGNORE NE 0 ) THEN RES = IGNORE @ PICKS UP ANY OUTSTANDING ERRORS @ GOTO FAILED; FI UNLESS CREATED_RESTART_FILE THEN R_MESS = "DISPLAYING RESTART DATA"; UCS_DAILY_CHECK (RES = IGNORE ); FI; R_MESS = "OPENING RESTART FILE"; UC_OPEN_FILE ( FIL = RDLNA , ACC = RDACC , BUF = RECORD , RES = RES ) IF RES NE 0 THEN GOTO FAILED; FI; SUBSTR(RECORD,0,2048) = "UCSDAILY" + FILL(2040,"0") IF IGNORE = 50144 THEN R_MESS := "ERROR INITIALISING RESTART DATA" CT := 100 THIS_YEAR := SUBSTR( TODAYS_DATE , 0 , 4) + @ 4.05 @ "/01/01"; @ 4.05 @ SUBSTR (RECORD, 27, 10 ) := THIS_YEAR; @ 4.05 @ SUBSTR (RECORD, 37, 10 ) := THIS_YEAR; @ 4.05 @ SUBSTR (RECORD, 69, 10 ) := THIS_YEAR; @ 4.05 @ SUBSTR (RECORD, 79, 10 ) := THIS_YEAR; @ 4.05 @ UC_ACCESS_FILE( APD = 202, ACC = RDACC , RES = RES) IF RES NE 0 THEN GOTO FAILED; FI; UC_ACCESS_FILE( APD = 1301, ACC = RDACC, RES = RES) IF RES NE 0 THEN GOTO FAILED; FI; UC_ACCESS_FILE( APD = 021 , ACC = RDACC, RES = IGNORE) IF IGNORE NE -9015 THEN RES := IGNORE GOTO FAILED; FI FI R_MESS = "ERROR READING RESTART DATA" UC_ACCESS_FILE ( APD = 102 , ACC = RDACC , RES = RES) IF RES NE 0 THEN GOTO FAILED; FI; @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ Here we override the defaults parameters with restart data if @ @ required. @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ R_MESS := "ERROR OPENING DEFINITIONS FILE"; UCS_DEFS_FH ( "OPE" , R_MESS , R_MESS, CT , RES ); IF RES NE 0 THEN GOTO FAILED; FI; R_MESS = "ERROR OBTAINING FILENAME DEFAULTS" LAST_DATE := SUBSTR( RECORD, 59, 10) @----------------------------------------------------------------------@ @ The LAST_DATE is the date of the last daily reports run or all "0" @ @ for the first run. This is the date we must reset the input files @ @ to if the user wants to catch up with the daily reports when daily @ @ jobs has not been run for a two or more days. We must compare the @ @ LAST_DATE with todays date and if the difference is more than the @ @ value of DR_OLD_DAYS then LAST_DATE must be adjusted. We must end @ @ up with OLD_DATE = the date we wish the processing to start from. @ @ This is given to UCSRSETUP (UCS026) when the stored defaults are @ @ retrieved so that the file generations & start and end dates can be @ @ ajusted. @ @----------------------------------------------------------------------@ IF LAST_DATE NE "0000000000" THEN ICL9LGGDATEC2B ( LAST_DATE, LAST_BIN_DATE ); ELSE LAST_BIN_DATE = 0 FI; OLD_DATE := LAST_DATE; IF DR_OLD_DAYS > -1 THEN IF ( TODAYS_BIN_DATE - LAST_BIN_DATE ) > DR_OLD_DAYS THEN LAST_BIN_DATE := TODAYS_BIN_DATE - DR_OLD_DAYS; OLD_DATE = FILL(10); ICL9LGGDATEB2C ( LAST_BIN_DATE, OLD_DATE); FI; FI; UCS_MSG( MES = "LAST DAILY RUN COMPLETED ON " + LAST_DATE , SID = "" , RES = RES ) UCS_R_SETUP ( RSD , LAS = VAL OLD_DATE , MOD = VAL MODE , RES = RES ); IF RES NE 0 THEN GOTO FAILED; FI; TEMP_DATE := SUBSTR( U_SDATE, 4, 4) + @ YYYY @ SUBSTR( U_SDATE, 2, 2) + @ MM @ SUBSTR( U_SDATE, 0, 2) @ DD @ NAME := SUBSTR( RECORD ,51, 2) + SUBSTR( RECORD ,49, 2) + SUBSTR( RECORD ,47, 2) @5.10 @ INT YY = CHARTOINT(SUBSTR( RECORD ,51, 2)); @ | @ STRING TEST_DATE = SUBSTR( RECORD ,47, 6); @ | @ IF ( ( TEST_DATE NE FILL(6) ) AND ( TEST_DATE NE "000000" ) ) @ | @ THEN @ | @ IF YY > 80 @ | @ THEN @ | @ NAME = "19" + NAME @ | @ ELSE @ | @ NAME = "20" + NAME @ | @ FI; @5.10 @ FI; SMSG("TEMP = " + TEMP_DATE + ".") SMSG("NAME = " + NAME + ".") IF ( CHARTOINT(TEMP_DATE) > CHARTOINT(NAME) ) THEN U_SDATE := SUBSTR( RECORD, 47, 6) UCS_MSG( MES = "USAGE REPORTS START DATE ADJUSTED", SID = "", RES = RES ); FI TEMP_DATE := SUBSTR( T_SDATE, 4, 4) + @ YYYY @ SUBSTR( T_SDATE, 2, 2) + @ MM @ SUBSTR( T_SDATE, 0, 2) @ DD @ NAME := SUBSTR( RECORD ,57, 2) + SUBSTR( RECORD ,55, 2) + SUBSTR( RECORD ,53, 2) @5.10 @ YY = CHARTOINT(SUBSTR( RECORD ,57, 2)); @ | @ TEST_DATE = SUBSTR( RECORD ,53, 6); @ | @ IF ( ( TEST_DATE NE FILL(6) ) AND ( TEST_DATE NE "000000" ) ) @ | @ THEN @ | @ IF YY > 80 @ | @ THEN @ | @ NAME = "19" + NAME @ | @ ELSE @ | @ NAME = "20" + NAME @ | @ FI; @5.10 @ FI; IF ( CHARTOINT(TEMP_DATE) > CHARTOINT(NAME) ) THEN T_SDATE := SUBSTR( RECORD, 53, 6) UCS_MSG(MES="TREND REPORTS START DATE ADJUSTED",SID="",RES=RES) FI IF USDATE = "000000" THEN USDATE = FILL(8) FI IF TSDATE = "000000" THEN TSDATE = "ddmmmyy" FI IF TSDATE = " " THEN TSDATE = "ddmmmyy" FI IF TFDATE = " " THEN TFDATE = "ddmmmyy" FI IF TMSDATE = " " THEN TMSDATE = "ddmmmyy" FI IF TMFDATE = " " THEN TMFDATE = "ddmmmyy" FI UCS_MSG(" USAGE REPORTING DEFAULTS", RES = RES) SMSG("INPUT FILE 1 : " + IN1_FILE ,RES = RES) SMSG("INPUT FILE 2 : " + IN2_FILE ,RES = RES) SMSG("INPUT FILE 3 : " + IN3_FILE ,RES = RES) SMSG("INPUT FILE 4 : " + IN4_FILE ,RES = RES) SMSG("INPUT FILE 5 : " + IN5_FILE ,RES = RES) SMSG("INPUT FILE 6 : " + IN6_FILE ,RES = RES) SMSG("INPUT FILE 7 : " + IN7_FILE ,RES = RES) SMSG("INPUT FILE 8 : " + IN8_FILE ,RES = RES) SMSG("START DATE : " + U_SDATE ,RES = RES) SMSG("FINISH DATE : " + U_FDATE ,RES = RES) SMSG("TIME : " + U_TIME ,RES = RES) SMSG("SUMMARY INT. : " + NUMERIC( U_SUM_INT ) ,RES = RES) UCS_MSG(" TREND WEEKLY REPORTING DEFAULTS", RES = RES) SMSG("TOTALS TYPE : " + T_TOTALS ,RES = RES) SMSG("DAY OF WEEK : " + T_DAY ,RES = RES) SMSG("START DATE : " + T_SDATE ,RES = RES) SMSG("FINISH DATE : " + T_FDATE ,RES = RES) UCS_MSG(" TREND MONTHLY REPORTING DEFAULTS", RES = RES) SMSG("TOTALS TYPE : " + TM_TOTALS ,RES = RES) SMSG("DAY OF WEEK : " + TM_DAY ,RES = RES) SMSG("START DATE : " + TM_SDATE ,RES = RES) SMSG("FINISH DATE : " + TM_FDATE ,RES = RES) @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ Obtain file permissions if required @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IF STPOV STARTSWITH "Y" THEN ALB(*SYSTEMOWNER.SYSTEM.ICLCTM,,E,RES=IGNORE) R_MESS = "ERROR OBTAINING PERMISSIONS TO FILES" SET_PERMISSION_OVERRIDES ( OBJ = F, ACC = R, RES = RES ) IF RES NE 0 THEN GOTO FAILED; FI; FI @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ Call UCSJR to update the job resource data @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 4.08 SEVERITY := 0; IF JR_UPDATE_REQD STARTSWITH "Y" THEN UCS_LOG_MESS ( TYP = "SD", MES = "UCS_JR Job Resource Update", RES = RES ); IF TODAYS_DATE EQ SUBSTR( RECORD, 27, 10) THEN UCS_LOG_MESS ( TYP = "SD", MES = " Already run today", RES = RES ); ELSE UCS_MSG (MES = "RUNNING JOB RESOURCE UPDATE ", BOX = ".", SID = ".", RES = RES) R_MESS = "ERROR RUNNING UCS_JR - JOB RESOURCE UPDATE" UCS_JR (RUN = DAILY , EXT = *STDLP , REP = VAL JR_REPORT_TYPE , GRP = *STDLP , JOB = *STDLP , SPL = JR_SPLIT_TIME , PRO = JR_PRORATE_INTERVAL , GRO = VAL JR_GROUPS_FILE , DEF = VAL JR_DEFAULT_GROUP , ALL = VAL JR_ALLOCATION , MOD = LOGSD , RES = RES) IF ( RES = 0 ) AND ( SEVERITY > 3 ) THEN RES := 80998; FI; IF RES NE 0 THEN IF NOT JR_IGNORE_FAIL THEN GOTO FAILED; ELSE IGNORED_FAILS := IGNORED_FAILS + 1; UCS_MSG (MES = "FAILURE RUNNING JOB RESOURCE " + "UPDATE - CONTINUING PROCESSING", BOX = "!", SID = "!", RES = IGNORE); UCS_LOG_MESS ( TYP = "SD", MES = "The following error has been ignored", RES = IGNORE ); UCS_LOG_ERROR_MESS ( ERR = RES, TYP = "SD", BOX = "", RES = IGNORE ); GOTO JR_DATE_LOG; FI; FI; R_MESS = "ERROR UPDATING DAILY JOBS RESTART DATA - AFTER UCS_JR" UC_ACCESS_FILE ( APD = 021 , ACC = RDACC , RES = IGNORE ) IF IGNORE NE -9015 THEN RES := IGNORE GOTO FAILED; FI UC_ACCESS_FILE ( APD = 102 , ACC = RDACC , RES = RES ) IF RES NE 0 THEN GOTO FAILED; FI; SUBSTR(RECORD, 27, 10) := TODAYS_DATE CT := 100 UC_ACCESS_FILE ( APD = 801 , ACC = RDACC , RES = RES ) IF RES NE 0 THEN GOTO FAILED; FI; UC_ACCESS_FILE ( APD = 1301, ACC = RDACC, RES = RES) IF RES NE 0 THEN GOTO FAILED; FI; XFGEN( UCS_JR_DAILY , OLD = JR_KEEP, RES = IGNORE ) FI; ELSE UCS_MSG ( MES = "JOB RESOURCE UPDATE NOT REQUIRED", SID = "" , RES = RES) FI JR_DATE_LOG: IF JR_UPDATE_REQD STARTSWITH "Y" THEN @ display how far the UCS_JR processing has go to @ INT MS_EXT, MS_PRO; STRING D_EXT := FILL(10), D_PRO := FILL(10), T_EXT := FILL(8), T_PRO := FILL(8); R_MESS := "ERROR OBTAINING UCS_JR TIMESTAMPS"; UCS129SCL (MS_EXT, MS_PRO, RES = RES); IF RES > 0 THEN GOTO FAILED; FI; GIVE_CIVIL_TIME ( DAT = D_EXT, TIM = T_EXT, MIC = MS_EXT, RES = IGNORE); UCS_LOG_MESS ( TYP = "SD", MES = VAL ( " Extracted to " + D_EXT + " " + T_EXT ), RES = IGNORE); GIVE_CIVIL_TIME ( DAT = D_PRO, TIM = T_PRO, MIC = MS_PRO, RES = IGNORE); UCS_LOG_MESS ( TYP = "SD", MES = VAL ( " Prorated to " + D_PRO + " " + T_PRO ), RES = IGNORE); FI; END_JR_UPDATE: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ Call UCS_TREND_UPDATE if required @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ SEVERITY := 0; IF TR_UPDATE_REQD STARTSWITH "Y" THEN UCS_LOG_MESS ( TYP = "SD", MES = VAL ("UCS_TREND_UPDATE for trend id " + TREND_ID ), RES = RES); IF TODAYS_DATE EQ SUBSTR( RECORD, 37, 10) THEN UCS_LOG_MESS ( TYP = "SD", MES = " Already run today", RES = RES); ELSE UCS_MSG( MES = "RUNNING TREND UPDATE FOR TREND ID " + TREND_ID, BOX = "." , SID = "." , RES = RES) R_MESS = "ERROR RUNNING TREND UPDATE FOR TREND ID " + TREND_ID; UCS_TREND_UPDATE_PATCH_002( TRE = VAL TREND_ID, DAY = TR_DAYS_BEHIND, TID = YES , RES = RES ) IF ( RES = 0 ) AND ( SEVERITY > 3 ) THEN RES := 80998; FI; IF RES = 84030 THEN UCS_MSG( MES = "TREND FILE ALREADY UP-TO DATE" , BOX = ".", SID = ".", RES = RES ); UCS_LOG_MESS (TYP = "SD", MES = "Trend already upto date", RES = IGNORE); ELSF RES NE 0 THEN IF NOT TR_IGNORE_FAIL THEN GOTO FAILED; ELSE IGNORED_FAILS := IGNORED_FAILS + 1; UCS_MSG (MES = "FAILURE RUNNING TREND " + "UPDATE - CONTINUING PROCESSING", BOX = "!", SID = "!", RES = IGNORE ); UCS_LOG_MESS ( TYP = "SD", MES = "The following error has been ignored", RES = IGNORE ); UCS_LOG_ERROR_MESS ( ERR = RES, TYP = "SD", BOX = "", RES = IGNORE ); GOTO END_TREND_UPDATE; FI; FI; UC_ACCESS_FILE ( APD = 021 , ACC = RDACC , RES = IGNORE ) R_MESS = "ERROR UPDATING RESTART DATA - AFTER UCS_TREND_UPDATE" IF IGNORE NE -9015 THEN RES := IGNORE FI UC_ACCESS_FILE ( APD = 102 , ACC = RDACC , RES = RES ) IF RES NE 0 THEN GOTO FAILED; FI; CT := 100 SUBSTR( RECORD, 37, 10) := TODAYS_DATE UC_ACCESS_FILE( APD = 801, ACC = RDACC , RES = RES ) IF RES NE 0 THEN GOTO FAILED; FI; UC_ACCESS_FILE( APD = 1301, ACC = RDACC , RES = RES ) IF RES NE 0 THEN GOTO FAILED; FI; FI; ELSE UCS_MSG( MES = "TREND UPDATE NOT REQUIRED", SID = "" , RES = RES ) FI END_TREND_UPDATE: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ Create spool files for output @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IF ( DAILY_REPORTS STARTSWITH "Y" ) OR ( DAILY_REPORTS = DAY_OF_WEEK ) THEN DR_REQD := TRUE ELSE DR_REQD := FALSE FI IF ( WEEKLY_REPORTS = DAY_OF_WEEK ) OR ( WEEKLY_REPORTS STARTSWITH "Y" ) THEN WR_REQD := TRUE ELSE WR_REQD := FALSE FI IF ( WEEKLY_GRAPHS STARTSWITH "Y" ) OR ( WEEKLY_GRAPHS = DAY_OF_WEEK ) THEN WG_REQD := TRUE ELSE WG_REQD := FALSE FI ICL9LGGDATEC2B(SUBSTR(RECORD,79,10),LAST_MONTHLY_BIN) IF FIND(VALID_DT,SUBSTR(MONTHLY_REPORTS,0,1)) NE -1 THEN UCS_GET_RUN_DATES(MONTHLY_REPORTS , LRC_DATE , LRB_DATE , NRC_DATE , NRB_DATE , RES = IGNORE) IF IGNORE GT 0 THEN R_MESS := "INVALID MONTHLY_REPORTS PARAMETER" RES := IGNORE GOTO FAILED; ELSF (LRB_DATE GT LAST_MONTHLY_BIN) OR ( (NRB_DATE EQ JULEAN_DATE) AND (NRB_DATE NE LAST_MONTHLY_BIN)) THEN MR_REQD := TRUE ELSE MR_REQD := FALSE FI ELSF MONTHLY_REPORTS STARTSWITH "Y" THEN MR_REQD := TRUE ELSF MONTHLY_REPORTS STARTSWITH "N" THEN MR_REQD := FALSE ELSE R_MESS = "INVALID MONTHLY REPORTS PARAMETER" RES = 9999 GOTO FAILED; FI IF FIND(VALID_DT,SUBSTR(MONTHLY_GRAPHS,0,1)) NE -1 THEN UCS_GET_RUN_DATES(MONTHLY_GRAPHS , LRC_DATE , LRB_DATE , NRC_DATE , NRB_DATE , RES = IGNORE) IF IGNORE GT 0 THEN R_MESS := "INVALID MONTHLY_GRAPHS PARAMETER" RES := IGNORE GOTO FAILED; ELSF (LRB_DATE GT LAST_MONTHLY_BIN) OR ( (NRB_DATE EQ JULEAN_DATE) AND (NRB_DATE NE LAST_MONTHLY_BIN)) THEN MG_REQD := TRUE ELSE MG_REQD := FALSE FI ELSF MONTHLY_GRAPHS STARTSWITH "Y" THEN MG_REQD := TRUE ELSF MONTHLY_GRAPHS STARTSWITH "N" THEN MG_REQD := FALSE ELSE R_MESS = "INVALID MONTHLY GRAPHS PARAMETER" RES = 9999 GOTO FAILED; FI IF LAST_MONTHLY_BIN LT 2 THEN LAST_MONTHLY_BIN := JULEAN_DATE FI IF ( DR_REQD OR ( WR_REQD OR WG_REQD ) ) OR ( MR_REQD OR MG_REQD ) THEN UCS_LOG_MESS (TYP = "SD", MES = "Reports and graph production", RES = RES ); R_MESS = "ERROR CREATING SPOOL FILES/ASSIGNING REPORT FILES" IF R_SAVELIST = "*STDLP" THEN CREATE_SPOOL_FILE ( LNA = UCSPRINT, DES = *STDLP , MAX = 10240 , RES = RES ) ELSE ASSIGN_FILE(NAM = VAL R_SAVELIST , LNA = UCSPRINT , ACC = W , RES = RES ) FI IF RES NE 0 THEN GOTO FAILED; FI; IF G_SAVELIST = "*STDLP" THEN CREATE_SPOOL_FILE ( LNA = UCSGPRINT, DES = *STDLP , MAX = 10240 , RES = RES ) ELSE ASSIGN_FILE( NAM = VAL G_SAVELIST , LNA = UCSGPRINT , ACC = W , RES = RES); FI IF RES NE 0 THEN GOTO FAILED; FI; ELSE UCS_MSG( MES = "NO REPORTS OR GRAPHS REQUIRED", SID = "-", RES = RES) GOTO EXIT FI @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ Here we assign the next steering file to be used @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ NEXT: READ_RESULT := 0 ST_FILE := ST_FILE + 1 IF ST_FILE > COUNT STEERING_FILES THEN GOTO EXIT FI IF ST_FILE > 2 THEN TREND_ID := TM_ID T_TOTALS := TM_TOTALS T_DAY := TM_DAY T_SDATE := TM_SDATE T_FDATE := TM_FDATE FI IF ( ST_FILE = 0 ) AND ( DR_REQD ) THEN REPORT_TYPE := "UCSTAB" GOTO NEXT_100 FI IF ( ST_FILE = 1 ) AND ( WR_REQD ) THEN REPORT_TYPE = "UCSTRENDREPORT" GOTO NEXT_100 FI IF ( ST_FILE = 2 ) AND ( WG_REQD ) THEN REPORT_TYPE = "UCSTRENDREPORT" GOTO NEXT_100 FI IF ( ST_FILE = 3 ) AND ( MR_REQD ) THEN REPORT_TYPE = "UCSTRENDREPORT" GOTO NEXT_100 FI IF ( ST_FILE = 4 ) AND ( MG_REQD ) THEN REPORT_TYPE = "UCSTRENDREPORT" GOTO NEXT_100 FI GOTO NEXT @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ Assign next steering file to be used and UC_OPEN it @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ NEXT_100: R_MESS = "ERROR ASSIGNING STEERING FILE '" + STEERING_FILES(ST_FILE) +"'" ASSIGN_FILE ( NAM = VAL STEERING_FILES (ST_FILE) , LNA = SF_LNA , ACC = R , LOC = N , RES = RES ) IF RES NE 0 THEN GOTO FAILED; FI; R_MESS = FILL(80); GIVE_NAME (LNA = SF_LNA, BUF = R_MESS, RES = IGNORE); UCS_LOG_MESS ( TYP = "SD" , MES = VAL ( " " + R_MESS ), RES = IGNORE ); R_MESS = "ERROR OPENING STEERING FILE '" + STEERING_FILES(ST_FILE) +"'" UC_OPEN_FILE ( FIL = SF_LNA , BUF = RECORD , RES = RES ) IF RES NE 0 THEN GOTO FAILED; FI; RECORD_COUNT := 0 REPORT_FOUND := FALSE J = ST_FILE + 1 UCS_MSG( MES = " PRODUCING REPORTS/GRAPHS FROM " + STEERING_FILES (ST_FILE) , BOX = NUMERIC( J ) , SID = NUMERIC( J ) , RES = RES ) @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ Here we read the next record from the steering file @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ READ: R_MESS := "ERROR READING THE STEERING FILE" IF READ_RESULT = 9034 THEN GOTO NEXT FI SUBSTR(RECORD, 0, 2048) := FILL (2048) UC_ACCESS_FILE ( 102 , RES = READ_RESULT ) IF READ_RESULT = 0 THEN RECORD_COUNT := RECORD_COUNT + 1 KEY := SUBSTR(RECORD, 0, 4) ELSE IF READ_RESULT = 9034 THEN GOTO PRODUCE ELSE R_MESS := "ERROR READING STEERING FILE - RECORD " + NUMERIC(RECORD_COUNT) RES := READ_RESULT GOTO FAILED; FI FI @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ KEY contains the record id. It must be validated and the details @ @ stored. @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IF KEY STARTSWITH "@" @ COMMENT @ THEN GOTO READ FI I := FIND( VALID_PARAMS , KEY) IF I < 0 THEN UCS_MSG( MES = "INVALID PARAMETER '" + KEY + "' RECORD " + NUMERIC (RECORD_COUNT) , BOX = "!", SID = "!", RES = RES ) GOTO READ FI IF KEY = "REP=" @ start of new report/graph @ THEN GOTO PRODUCE FI PARAMETERS (I) := SUBSTR( RECORD, 4, CT - 4 ) GOTO READ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ Here we have either hit end of file or read a new report header @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ PRODUCE: SEVERITY := 0; IF ( REPORT_FOUND ) AND ( MODE = "DIAG" ) THEN SMSG(FILL(80,"DIAG ") ) SMSG("TYP = " + PARAMETERS(10) ) SMSG("REP = " + PARAMETERS(0) ) SMSG("SAV = " + PARAMETERS(1) ) SMSG("GNA = " + PARAMETERS(2) ) SMSG("GXD = " + PARAMETERS(3) ) SMSG("GYD = " + PARAMETERS(4) ) SMSG("GCD = " + PARAMETERS(5) ) SMSG("GDD = " + PARAMETERS(6) ) SMSG("TIT = " + PARAMETERS(9) ) SMSG("SHI = " + PARAMETERS(8) ) SMSG("DAY = " + PARAMETERS(7) ) SMSG("TID = " + PARAMETERS(11) ) FI IF ( REPORT_FOUND ) AND ( PARAMETERS(10) = "UCSTAB" ) THEN GOTO RUN_UCSTAB FI IF REPORT_FOUND THEN GOTO RUN_UCSTRENDREPORT FI @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ Here we produced the report required - paramters must be deleted @ @ The report name must be setup - it has already been read @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ PRODUCE_END: IF SEVERITY > 3 THEN IF R_IGNORE_FAIL THEN IGNORED_FAILS := IGNORED_FAILS + 1 ELSE R_MESS = "SEVERITY ERROR - " + NUMERIC(SEVERITY) RES = 80998; GOTO FAILED; FI FI; SEVERITY := 0; IF READ_RESULT = 9034 THEN R_MESS := "ERROR CLOSING STEERING FILE" UC_ACCESS_FILE( APD = 1201 , RES = RES ) IF RES NE 0 THEN GOTO FAILED; FI; SMSG("PROCESSED " + NUMERIC(RECORD_COUNT) + " RECORDS") GOTO NEXT FI NAME = SUBSTR(RECORD, 4, 16) IF NAME NE FILL(16) THEN PARAMETERS (0) = NAME ELSE PARAMETERS (0) = "" FI IF REPORT_TYPE = "UCSTAB" THEN COLUMN = "0" ELSE COLUMN = "" FI PARAMETERS (1) := "*UCSPRINT" PARAMETERS (2) := "" PARAMETERS (3) := COLUMN + "/0/0/./Default x name" PARAMETERS (4) := COLUMN + "/0/0/./Default y name" PARAMETERS (5) := COLUMN + "/0/0/./Default c name" PARAMETERS (6) := COLUMN + "/0/0/./Default d name" PARAMETERS (7) := T_DAY PARAMETERS (8) := T_TOTALS PARAMETERS (9) := "Default Graph Title" PARAMETERS (10) := REPORT_TYPE PARAMETERS (11) := TREND_ID REPORT_FOUND := TRUE GOTO READ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ Here we must produce a tabular usage report @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ RUN_UCSTAB: R_MESS = "ERROR PRODUCING USAGE REPORT " + PARAMETERS(0) UCS_MSG( MES = "PRODUCING USAGE REPORT " + PARAMETERS(0) , BOX = "@" , SID = "@" , RES = RES ) UCSTAB(PRI = VAL PARAMETERS(0), SAV = VAL PARAMETERS(1), IN1 = VAL IN1_FILE & VAL IN2_FILE , IN2 = VAL IN3_FILE & VAL IN4_FILE , IN3 = VAL IN5_FILE & VAL IN6_FILE , IN4 = VAL IN7_FILE & VAL IN8_FILE , SDA = VAL U_SDATE , STI = VAL U_TIME , FDA = VAL U_FDATE , FTI = VAL U_TIME , SUM = U_SUM_INT , GSA = *UCSGPRINT , GNA = VAL PARAMETERS(2), GXD = VAL PARAMETERS(3), GYD = VAL PARAMETERS(4), GCD = VAL PARAMETERS(5), GDD = VAL PARAMETERS(6), RES = RES ) @T@ SMSG (NUMERIC (RES) + " FROM UCSTAB") IF ( RES = 0 ) AND ( SEVERITY > 3 ) THEN RES := 80998; FI; IF RES NE 0 THEN UCS_LOG_MESS ( TYP = "SD", MES = VAL ( "Usage Report " + PARAMETERS(0) ), RES = IGNORE); IF NOT R_IGNORE_FAIL THEN GOTO FAILED; ELSE IGNORED_FAILS := IGNORED_FAILS + 1; UCS_LOG_MESS ( TYP = "SD", MES = VAL ("The following error occured for usage report " + PARAMETERS(0) ) , RES = IGNORE ); UCS_LOG_ERROR_MESS ( RES, TYP = "SD", BOX = "", RES = RES); UCS_MSG (MES = "FAILED TO PRODUCE USAGE " + "REPORT " + PARAMETERS(0) , BOX = "!", SID = "!", RES = RES) FI; FI; GOTO PRODUCE_END @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ Here we produce the trend reports and graphs @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ RUN_UCS_TREND_REPORT: R_MESS = "ERROR RUNNING UCS_TREND_REPORT" IF PARAMETERS(0) = "" THEN UCS_MSG( MES = "PRODUCING TREND GRAPH " + PARAMETERS(2) , BOX = "@" , SID = "@" , RES = RES) ELSE UCS_MSG( MES = "PRODUCING TREND REPORT/GRAPH " + PARAMETERS(0), BOX = "@" , SID = "@" , RES = RES ) FI UCS_TREND_REPORT ( TRE = VAL PARAMETERS(11), REP = VAL PARAMETERS(0) , SAV = VAL PARAMETERS(1) , GRA = VAL PARAMETERS(2) , GSA = *UCSG_PRINT , TIT = VAL PARAMETERS(9) , SHI = VAL PARAMETERS(8) , DAY = VAL PARAMETERS(7) , STA = VAL T_SDATE , FIN = VAL T_FDATE , ADE = VAL PARAMETERS(3) , BDE = VAL PARAMETERS(4) , CDE = VAL PARAMETERS(5) , DDE = VAL PARAMETERS(6) , RES = RES ) IF ( RES = 0 ) AND ( SEVERITY > 3 ) THEN RES := 80998; FI; IF RES NE 0 THEN UCS_LOG_MESS ( TYP = "SD", MES = VAL ("Trend Report/Graph" + PARAMETERS(0) + " " + PARAMETERS(2) ), RES = IGNORE); IF NOT R_IGNORE_FAIL THEN GOTO FAILED; ELSE IGNORED_FAILS := IGNORED_FAILS + 1; UCS_LOG_MESS ( TYP = "SD", MES = VAL ("The following error occured for trend report/graph " + PARAMETERS(0) + " " + PARAMETERS(2) ), RES = IGNORE ); UCS_LOG_ERROR_MESS ( RES, TYP = "SD", BOX = "", RES = RES); IF PARAMETERS(0) = "" THEN UCS_MSG ( MES = "FAILED TO PRODUCE TREND " + "GRAPH " + PARAMETERS(2) , BOX = "!", SID = "!", RES = RES) ELSE UCS_MSG ( MES = "FAILED TO PRODUCE TREND " + "REPORT/GRAPH " + PARAMETERS(0) , BOX = "!", SID = "!", RES = RES) FI; FI; FI; GOTO PRODUCE_END EXIT: R_MESS := "ERROR UPDATING RESTART DATA" UC_ACCESS_FILE ( APD = 021 , ACC = RDACC , RES = IGNORE ) IF IGNORE NE -9015 THEN RES := IGNORE; GOTO FAILED; FI UC_ACCESS_FILE ( APD = 102 , ACC = RDACC , RES = RES ) IF RES NE 0 THEN GOTO FAILED; FI; IF DAILY_REPORTS STARTSWITH "UPD" THEN SUBSTR( RECORD, 59, 10) := TODAYS_DATE; SUBSTR( RECORD, 47, 6) := SUBSTR( TODAYS_DATE, 8, 2) + SUBSTR( TODAYS_DATE, 5, 2) + SUBSTR( TODAYS_DATE, 2, 2) FI IF DR_REQD THEN SUBSTR( RECORD, 47, 6) := SUBSTR(U_FDATE,0,4) + SUBSTR(U_FDATE,6,2) SUBSTR( RECORD, 59, 10) := TODAYS_DATE FI IF ( WR_REQD OR WG_REQD ) AND ( T_FDATE NE "ddmmmyy") THEN SUBSTR( RECORD, 53, 6) := SUBSTR(T_FDATE,0,4) + SUBSTR(T_FDATE,6,2) SUBSTR( RECORD, 69, 10) := TODAYS_DATE FI IF ( MR_REQD OR MG_REQD ) THEN SUBSTR( RECORD, 79, 10) := TODAYS_DATE FI SUBSTR( RECORD,9,18 ) := TODAYS_DATE + CURRENT_TIME UC_ACCESS_FILE ( APD = 801 , ACC = RDACC, RES = RES ) IF RES NE 0 THEN GOTO FAILED; FI; UC_ACCESS_FILE ( APD = 1201, ACC = RDACC, RES = RES ) IF RES NE 0 THEN GOTO FAILED; FI; R_MESS = "DISPLAYING RESTART FILE"; UCS_DAILY_CHECK ( RES = IGNORE ); IF IGNORED_FAILS NE 0 THEN UCS_LOG_MESS ( TYP = "SD", MES = VAL( "UCS_DAILY_JOBS - " + NUMERIC(IGNORED_FAILS) + " FAILURES IGNORED "), RES = IGNORE) FI; UCS_LOG_MESS ( TYP = "SD", MES = "UCS_DAILY_JOBS Completed", BOX = ".OK.", RES = RES ); UCS_LOG_CLOSE ( RES = RES ); UCS_MSG( MES = " UCS_DAILY_JOBS COMPLETED" , BOX = ".OK." , SID = ".OK.", LIN = 5 , RES = RES ) R_MESS := "CLOSING DEFINITIONS FILE"; UCS_DEFS_FH ( "CLO" , R_MESS , R_MESS, CT , IGNORE ); UCS_STORE_RES (0); IF IGNORED_FAILS = 0 THEN RES = 0; ELSE RES = -80999 FI; GOTO THE_END; FAILED: UCS_LOG_MESS ( TYP = "SD", MES = VAL ( "UCS_DAILY_JOBS - " + R_MESS ), RES = IGNORE ); UCS_MSG(MES = R_MESS, SID = "", RES = IGNORE) UCS_LOG_ERROR_MESS ( ERR = RES, TYP = "SD", BOX = "!!!!", RES = IGNORE ); UCS_MSG(" UCS_DAILY_JOBS FAILED - RC = " + NUMERIC(RES) , BOX = "!" , SID = "!" , LIN = 5 , RES = IGNORE) UCS_STORE_RES (RES); UCS_LOG_CLOSE (RES = IGNORE); THE_END: END EXT PROC UCS_DISPLAY_MESS IS (SPDI) UCS_READ_RES ( RES ); IF RES > 79999 THEN UCS_DISPLAY_MESS ( RES ); FI; END PROCEND ++++ CSCL(ICLRSISOURCE.ICL8UCS0DAILY,ICLRSIOMF) AMENDMODULE(ICLRSIOMF.ICL8UCS0DAILY) ---- CHA(MODULE,NOCAS=Y) ++++ IF RESULT = 0 THEN ENTER XF(ICLRSIOMF.ICL8UCS0DAILY(5501)) FI END