Files

17-matching-2stage-N-1: Two-Stage N:1 Matching

电信业务场景

线路→请求书二级汇集。两段式N:1汇集。第一段:多条线路CDR→中间汇总;第二段:中间汇总→请求书。

Description

Two-stage N:1 matching process. Stage 1 performs N:1 matching from multiple master records through detail records to an intermediate file. Stage 2 performs another N:1 match from the intermediate file to a final reference file.

This tests the ability to chain N:1 matching operations across two stages, where the intermediate result of one N:1 match feeds into a second N:1 match. The final output contains only records that successfully matched in both stages.

Record Layout

Standard record (45 bytes, copybook STD-REC.cpy):

Field Type Length Description
STD-KEY PIC X 10 Record key
STD-DATA-1 PIC X 20 Text data
STD-DATA-2 PIC 9 10 Numeric data
STD-DATA-3 PIC S9(7)V99 COMP-3 5 Packed decimal

Files

File Purpose
main-17-matching-2stage-N-1.cbl Main COBOL program (fixed format)
data-gen.sh Generate test data for all files
run.sh Compile, run, verify
README.md This file

Data Design

  • master.dat: 5 records -- 3 with KEY00001, 2 with KEY00002
  • detail.dat: 2 records -- KEY00001, KEY00002 (one per master group)
  • final-ref.dat: 1 record -- KEY00001 only

Stage 1: 5 masters -> 2 intermediate records (N:1, one per matching group) Stage 2: 2 intermediate -> 1 final output (only KEY00001 matches final-ref)

Expected Behavior

  • Stage 1 matches each master group to one detail record (N:1), writing one temp record per group that has a matching detail.
  • Stage 2 matches each temp record against the final reference, writing one output per matching temp group.
  • Final output: 1 record (only KEY00001 group matches final-ref).