# 13-validation-nodup: Field Validation (No Duplicates) ## 电信业务场景 CDR字段校验。对CDR记录进行字段值校验,检查通话类型代码是否为有效值(01/02/03),有效记录输出到GOOD文件,无效记录输出到BAD文件。 ## Description Reads FILE-IN and validates FIELD1 against an allowed-value list ('A', 'B', 'C', 'D', 'E'). Records with valid FIELD1 values are written to FILE-OUT-GOOD. Invalid records are written to FILE-OUT-BAD with an error code appended. ## Record Layout ### Input / Good Output (31 bytes) | Field | Type | Length | Description | |--------|----------|--------|---------------------------| | FIELD1 | PIC X | 1 | Validation field | | FIELD2 | PIC X | 30 | Description / payload | ### Bad Output (33 bytes) | Field | Type | Length | Description | |----------|----------|--------|---------------------------| | FIELD1 | PIC X | 1 | Original invalid value | | FIELD2 | PIC X | 30 | Original description | | ERR-CODE | PIC X | 2 | Error code ('01') | ## Files | File | Purpose | |---------------------------|----------------------------------| | main-13-validation-nodup.cbl | Main COBOL program | | data-gen.sh | Generate test data | | run.sh | Compile, run, verify | | README.md | This file | ## Tests | Test Case | Description | |----------------------------|-----------------------------------------| | Valid values A-E | All 5 allowed values pass to GOOD | | Invalid values X,Y,Z | Non-allowed alpha values go to BAD | | Invalid values 1,9 | Numeric values go to BAD | | Empty FIELD1 (space) | Treated as invalid, goes to BAD | | Error code in BAD output | '01' appended to each bad record | ## Usage ```bash cd 13-validation-nodup bash data-gen.sh bash run.sh ``` ## Expected Behavior - 5 valid records in FILE-OUT-GOOD (31 bytes each = 155 bytes) - 6 invalid records in FILE-OUT-BAD (33 bytes each = 198 bytes) - Invalid records contain the original data plus '01' error code