IMS masking - '00170W Record no too short to contain field [xx] masking rule ignored’ error
search cancel

IMS masking - '00170W Record no too short to contain field [xx] masking rule ignored’ error

book

Article ID: 123204

calendar_today

Updated On:

Products

CA Test Data Manager (Data Finder / Grid Tools)

Issue/Introduction

While masking IMS segments, we see '00170W Record no [n] too short to contain field ZMIMSNAM_EXTRACT_RECORD.INT_PARTY_NUMBER_NAM, masking rule ignored’ error.

We're able to mask the majority of the IMS segments without issue, and trying to understand what's causing this error.  

Environment

TDM Mainframe Add-on

Cause

This was caused by the way the FMI extract copybook, which was processed from the File Definition Manager, to generate the corresponding AFL. The AFL is missing some required information.

Resolution

When generating the AFL, there must be a segment name for each of the segments extracted through FMI+.

For example:

Extracted FMI copybook
01 SE1339P-EXTRACT-RECORD.
02 SE1339P-EXT-CNTL-INFO.
05 SE1339P-ACTION-CODE PIC X(01).
05 FILLER PIC X(01).
05 SE1339P-SEGMENT-NAME PIC X(08).
05 SE1339P-DBDNAME PIC X(08).
05 FILLER PIC X(02).
05 SE1339P-FORMAT-CKEY-LEN PIC 9(09) COMP.
05 SE1339P-SEG-LEN PIC 9(09) COMP.
05 SE1339P-VAR-AREA-LEN PIC 9(09) COMP.
05 SE1339P-ROOT-LOCATION PIC X(08).
02 SE1339P-FORMATTED-CKEY.
05 SE1339P-LEVEL-1-SEG-NUM PIC 9(03).
05 SE1339P-LEVEL-1-SE1339P-KEY PIC X(05).
05 FILLER PIC X(33). 02 CATDM-RECORD.
03 SE1339P-REDEF-V01.



Once you generate the output file, there should be an entry similar to the following in the generated AFL files:

0,LOGICALFILE=SampleIMS,0.01,2018.12.13 07:57:28,HEADER=N,TRAILER=N,,,,,,,
1,RECNAME=SE1339P_EXTRACT_RECORD,,,,,,,,,,,
2,SE1339P_SEGMENT_NAME,8,2,3,String,,EQ,SE1339P,,,, 3,SE1339P_EXTRACT_RECORD,901,0,1,Structure,,,,,,,
3,SE1339P_EXT_CNTL_INFO,40,0,2,Structure,,,,,,,
3,SE1339P_ACTION_CODE,1,0,3,String,,,,,,,
3,FILLER,1,1,3,String,,,,,,,
3,SE1339P_SEGMENT_NAME,8,2,3,String,,,,,,,
3,SE1339P_DBDNAME,8,10,3,String,,,,,,,
3,FILLER1,2,18,3,String,,,,,,,
3,SE1339P_FORMAT_CKEY_LEN,4,20,3,"BinaryUnsigned:10,0",,,,,,,
3,SE1339P_SEG_LEN,4,24,3,"BinaryUnsigned:10,0",,,,,,,
3,SE1339P_VAR_AREA_LEN,4,28,3,"BinaryUnsigned:10,0",,,,,,,
3,SE1339P_ROOT_LOCATION,8,32,3,String,,,,,,,
3,SE1339P_FORMATTED_CKEY,41,40,2,Structure,,,,,,,
3,SE1339P_LEVEL_1_SEG_NUM,3,40,3,"Numeric:999",,,,,,,
3,SE1339P_LEVEL_1_SE1339P_KEY,5,43,3,String,,,,,,,
3,FILLER2,33,48,3,String,,,,,,,
3,CATDM_RECORD,205,81,2,Structure,,,,,,,
3,SE1339P_REDEF_V01,205,81,3,Structure,,,,,,,
3,EL00299_SE1339P_REDEF_V01,2,81,4,"BinarySigned:5,0",,,,,,,
3,GR06066_SE1339P_REDEF_V01,140,83,4,Structure,,,,,,,
3,EL13859_SE1339P_REDEF_V01,5,83,5,"PackedSigned:9,0",,,,,,,
3,EL04247_SE1339P_REDEF_V01,1,88,5,String,,,,,,,
3,EL09672_SE1339P_REDEF_V01,1,89,5,"Numeric:9",,,,,,,

The key field in question is “02”, since this field will allow you to control the masking based off the segment specified, in this example that will be SE1339P.