Friday 23 January 2009

Normalizer transformation (Working with VSAM source)

Normalizer transformation :
Normalizer transformation is used with COBOL sources, which are often stored in a denormalized format. The OCCURS statement in a COBOL file nests multiple records of information in a single record. We can use Normalizer transformation, to break out repeated data within a record into separate records. For each new record it creates, the Normalizer transformation generates a unique identifier.
Step 1: Create the Copybook for COBOL source
First Step is to get the copybook from Mainframe Team and convert that Informatica Compliant format
It will look like


Normally Highlighted section is provided by Mainframe team convert it into format required by format by adding line above that code (From identification to fd FNAME) and below that code (starting from working storage division). After changes save the file as .cbl file
Point to be taken care while editing .cbl File
You might get following error

identification division.
program-id. mead.
environment division.
select Error at line 6 : parse error
Things to be taken care of

1.Line Select FNAME should not start before column position 12
2.Other line which have been added above and below should not start before column 9
3.All the line in structure (Highlighted above) should end with Dot.
Once Cobol Source is imported successfully you can drag Normalizer source into mapping
Step 2: Set Workflow Properties Properly for VSAM Source
One you have successfully imported the COBOL copybook then you can create your mapping using VSAM Source. After creating mapping you can create your workflow
Please take care of following properties in session containing VSAM source
In Source Advance File properties set the following options (Highlighted one)

Imp: Always ask for COBOL source file to be in Binary Format, Otherwise you will face lot of problems with COMP-3 Fields
Once you have set these properties you can run your workflow.
COMP3 FIELDS:
COBOL Comp-3 is a binary field type that puts ("packs") two digits into each byte, using a notation called Binary Coded Decimal, or BCD. This halves the storage requirements compared to a character, or COBOL "display", field. Comp-3 is a common data type, even outside of COBOL
Common issues faced while working with Comp-3 Fields :
If you have created your created cobol source definition with comp-3 fields (Packed Data) but actual data in source file is not packed .So Make sure that in both the definition and source file date is in same format
Check whether COMP-3 fields are signed or unsigned My Profile

6 comments:

  1. Nice article. Let's assume we have a phone number field with 2 occurs in COBOL file. 1st one to store Home Phone and 2nd one to store Cell Phone. IN target we have 2 different fields for that as well. How can I map these two target fiels from source. The Normalizer created 2 records which I do not want as I have to have one record in Target.

    ReplyDelete
  2. Hi,
    could you please give me an example for normalizer transformatin for txt(flat file)& relational table as a source file.

    ReplyDelete
  3. @Anynymous
    May be its late reply. But helps somebody....
    Goto source analyzer --> Edit the VSAM Source --> Ports tab
    Where ever you find OCCURS as more than zero, duplicate the columns with the number mentioned in occurs.

    Suppose my field10 is occuring 3 times. I can duplicate it as field10_1, field10_2, field10_3.

    These three fields holds occuring values.

    So, now you can get the values in a single record.

    ReplyDelete
  4. Thank you. This was extremely useful.

    ReplyDelete
  5. How can i preview data of VSAM file from Informatica as we do for flat files through source definition of flat file. I am changing a established mapping where it is throwing up errors while running the workflow.... I want to see the file through normalizer used a source definition to pull VSAM files...

    ReplyDelete