Running the following JCL:
//STEP010 EXEC PGM=ACFNRULE
//SYSPRINT DD DSN=F111111.DEL.RULES,
// DCB=(LRECL=137,BLKSIZE=13700,RECFM=VBA),
// DISP=(OLD,KEEP),SPACE=(TRK,(1,5),RLSE)
//SYSIN DD DISP=SHR,DSN=F11111.ACFRULCU.CLEANUP.RULES
With the following SYSIN:
ACFNRULE KEY(ABC123) -
CLASS(R) TYPE(ABC) -
DELETE( XYZ UID(ABCA24283) ALLOW)-
LIST NOVERIFY
ACFNRULE KEY(EXAMPLE) -
CLASS(R) TYPE(ABC) -
DELETE( UID(EXAMPLEUID) SERVICE(READ,UPDATE) ALLOW)-
DELETE( LINE222.LONGER.RESOURCE.NAME UID(EXAMPLEUID) SERVICE(REA-
D,UPDATE) ALLOW)-
DELETE( XXXX.LONGER.RESOURCE.NAME UID(EXAMPLEUID) SERVICE(READ,U-
PDATE) ALLOW)-
LIST NOVERIFY
Results: ACF50037 INVALID KEYWORD ACFNRULE - ACFNRULE TERMINATING
Why is this error occurring?
The ACFRPTRU consists of running two jobs, EXEC PGM=ACFRULCU to create the commands to cleanup/delete rule entries and EXEC PGM=IKJEFT01 to execute the ACFNRULE commands generated from the ACFRULCU utility.
The second IKJEFT01 job is easily missed in the documentation:
Review the statements. BATCH TSO needs to be executed with the statements to do the actual removal.
//DELETE EXEC PGM=IKJEFT01
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD DISP=SHR,DSN=ACFRULCU.DSN.ACFNRULE
//* THIS STEP EXECUTES THE ACFRULCU RULE CLEANUP UTILITY
//* TO CREATE STATEMENT FOR RESOURCE RULE CLEANUP.
//*
//ACFRULCU EXEC PGM=ACFRULCU,REGION=256K
//LOGONIDS DD DISP=SHR,ACF2.ALTLIDS
//INFOSTG DD DISP=SHR,ACF2.ALTINFO
//SYSPRINT DD SYSOUT=*
//SYSOUT DD DISP=OLD,ACFRULCU.RSRC.ACFNRULE
//SYSIN *
CLASS(R)
TYPE(CKC)
UIDNXIST
MKEY(-)
NOACF2
LIST