Execute rules to process accounts.
The SCAN statement provides a way of making mass changes to accounts or processing accounts for reporting. The SCAN statement executes the SCC-DLimit rules for each account selected. If the rules specify that values in the account, such as the space limits, are to be changed, and the UPDATE keyword is present, then the account is updated. The rules may also execute ISSUE WRITEMSG or ISSUE WRITESMF statements that will write selected data (account name, the contents of account fields) to log files or SMF files.
This function requires ALTER authority to the DSL.$CONTROL facility class resource.
SCAN LIST
UPDATE
LIST
Function: This is an optional parameter. The LIST operand indicates that a mes- sage is to be issued for each account processed by SCAN.
Default: None
Format: LIST
UPDATE
Function: This is an optional parameter. If the DLimit rules called during SCAN processing modify values in the account such as the space limits, and the UPDATE keyword is present, then the account is updated with the new values.
Default: None
Format: UPDATE
Example: In the following example, the PROD* accounts in the SCC-DLimit database are scanned, and a new maximum limit value (double the current value) is set for the MAX space value in each account. The rules shown are contained in member NEWMAX of the SCC-DLimit rule library pointed to by the PARMLIB DD statement. The SET ENVIRONMENT state- ment is used to set the value of the &ENV variable so that the SCC-DLimit rules can iden- tify the fact that the this job is a SCAN job which is used to modify accounts currently in the database.
//DSLSCAN JOB ...
//DLMAINT EXEC PGM=DLMAINT,REGION=4M
//STEPLIB DD DISP=SHR,DSN=DTS.R71.LOADLIB
//PARMLIB DD DISP=SHR,DSN=DTS.R71.RULELIB
//SYSPRINT DD SYSOUT=*
//SYSABEND DD SYSOUT=*
//SYSIN DD *
SET DATABASE(SYSTEM)
SET RULES(NAME(NEWMAX) DDNAME(PARMLIB)) INCLUDE ACCOUNTS(PROD*)
SET ENVIRONMENT(NEWMAX) SCAN UPDATE LIST
Contents of ’DTS.R71.RULELIB(NEWMAX)’:
DEFVAR ACCTMAX "&USRFLDN1.T" LITERAL DEFRULE SCANRULE CONTINUE(NEXTIF)
IF &ENV = NEWMAX &DACCT = PROD*
THEN SET &USRFLDN1 = 'EVAL(&ACCT_MAX-T * 2)' SET &ACCT_MAX = &ACCTMAX