The Normalizer transformation creates a generated key when the COBOL source contains a group of multiple-occurring columns. You can pass a group of multiple-occurring columns to a different target than the other columns in the row. You can create a primary-foreign key relationship between the targets with the generated key.
The following figure shows a COBOL source definition that contains a multiple-occurring group of columns:
In this example, the Detail_Suppliers group of columns occurs four times in the Detail_Record.
The Normalizer transformation generates a GK_Detail_Sales key for each source row. The GK_Detail_Sales key represents one Detail_Record source row.
The following figure shows the primary foreign key relationships between the targets:
Multiple-occurring Detail_Supplier rows have a foreign key linking them to the same Detail_Sales row. The Detail_Sales target has a one-to-many relationship to the Detail_Suppliers target.
The following figure shows the GK_Detail_Sales generated key connected to primary and foreign keys in the target:
Pass GK_Detail_Sales to the primary key of Detail_Sales and the foreign key of Detail_Suppliers.
Link the Normalizer output columns to the following objects:
Pass the Detail_Item, Detail_Desc, Detail_Price, and Detail_Qty columns to a Detail_Sales target. Pass the GK_Detail_Sales key to the Detail_Sales primary key.
Pass each Detail_Sales row through an Aggregator transformation to remove duplicate rows. The Normalizer returns duplicate Detail_Sales columns for each occurrence of Detail_Suppliers.
Pass each instance of the Detail_Suppliers columns to a the Detail_Suppliers target. Pass the GK_Detail_Sales key to the Detail_Suppliers foreign key. Each instance of the Detail_Suppliers columns has a foreign key that relates the Detail_Suppliers row to the Detail_Sales row.