ACF2 error message ACF00114 is seen while trying to change a multi-value data field in USERLID/USERXLID.
The following example attempts to change a multi-value field called MCLASS.
The original definitions for the MCLASS field is as follows:
@CFDE MCLASS,MCLASS,CHAR,ALTER=SECURITY+ACCOUNT,LIST=ALL, 1
FLAGS=MULTIVAL,MVMAX=16,GROUP=0,VRTN1=ACF00SFP
SPACE
MCLASSF DS 0XL(MCLASSL)
MCLASS AMULTFLD LENGTH=6,MAX=16,TYPE=GEN
MCLASSL EQU *-MCLASS
SPACE
EPRFPASS DS CL1 Reserved
SPACE
The updated field definition for MCLASS is:
@CFDE MCLASS,MCLASS,CHAR,ALTER=SECURITY+ACCOUNT,LIST=ALL, 1
FLAGS=MULTIVAL,MVMAX=7,GROUP=0,VRTN1=ACF00SFP
SPACE
MCLASSF DS 0XL(MCLASSL)
MCLASS AMULTFLD LENGTH=6,MAX=7,TYPE=GEN
MCLASSL EQU *-MCLASS
SPACE
RSVD0002 DS CL2 Reserved
RSVD0052 DS CL52 Reserved
EPRFPASS DS CL1 Reserved
SPACE
The MVMAX on the @CFDE record and MAX on the AMULTFLD statement was decreased from 16 to 7. 54 bytes of reserved space were added following the MCLASS AMULTFLD statement.
After making this change and activating the new ACFFDR, an ACF00114 error message is seen:
ERROR IN LOCATING/PROCESSING FIELD MCLASS - ACF00FLC RETURN/REASON
CODE = 04/16.
Component : ACF2 for z/OS
The ACFFDR contains the logonid record layout(LIDREC DSECT) and the logonid field definitions(@CFDE) for the logonid records that reside in LOGONID database.
If new ACFFDR was activated with @CFDE and LIDREC changes that reuse or redefines portions of the logonid record, there may be issues such as ACF00114 if the fields are not cleared out prior to activating the changes.
For example: if there is a 8 byte character logonid field called TESTFLD defined in the ACFFDR and a logonid has ABCDABCD specified for TESTFLD, the ACFFDR is changed replacing the TESTFLD with two 4 byte binary fields BIN1 and BIN2 and the changed ACFFDR is activated. Next, when the logonid is changed or listed, errors may occur because the BIN1 and BIN2 fields contain invalid data. To address the issue the best approach would be to clear out the logonid TESTFLD for logonids when the old ACFFDR is active prior to activating the new ACFFDR.
You can verify if this is the issue by creating a brand new LID and trying to change the new multi-value field. If the new LID does not produce an error and an older LID does, then that indicates that there is residual data causing the issue.
The following steps need to be followed to get past this error:
More information regarding multi-value fields can be found in ACF2 documentation section Specify Multi-Value Logonid Fields and UID Strings