ACFRULCU Second job gets ACF50037 INVALID KEYWORD ACFNRULE - ACFNRULE TERMINATING
search cancel

ACFRULCU Second job gets ACF50037 INVALID KEYWORD ACFNRULE - ACFNRULE TERMINATING

book

Article ID: 266325

calendar_today

Updated On:

Products

ACF2 - z/OS ACF2 ACF2 - MISC

Issue/Introduction

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?

Resolution

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