How can the following be achieved in 1 single Informatica
Mapping.
* If the Header table record has error value(NULL) then
those records and the corresponding child records in the
SUBHEAD and DETAIL tables should also not be loaded into
the target(TARGET1,TARGET 2 or TARGET3).
* If the HEADER table record is valid, but the SUBHEAD or
DETAIL table record has an error value (NULL) then the no
data should be loaded into the target TARGET1,TARGET 2 or
TARGET3.
* If the HEADER table record is valid and the SUBHEAD or
DETAIL table record also has valid records only then the
data should be loaded into the target TARGET1,TARGET 2 and
TARGET3.
===================================================
HEADER
COL1 COL2 COL3 COL5 COL6
1 ABC NULL NULL CITY1
2 XYZ 456 TUBE CITY2
3 GTD 564 PIN CITY3
SUBHEAD
COL1 COL2 COL3 COL5 COL6
1 1001 VAL3 748 543
1 1002 VAL4 33 22
1 1003 VAL6 23 11
2 2001 AAP1 334 443
2 2002 AAP2 44 22
3 3001 RAD2 NULL 33
3 3002 RAD3 NULL 234
3 3003 RAD4 83 31
DETAIL
COL1 COL2 COL3 COL5 COL6
1 D001 TXX2 748 543
1 D002 TXX3 33 22
1 D003 TXX4 23 11
2 D001 PXX2 56 224
2 D002 PXX3 666 332
========================================================
TARGET1
2 XYZ 456 TUBE CITY2
TARGET2
2 2001 AAP1 334 443
2 2002 AAP2 44 22
TARGET3
2 D001 PXX2 56 224
2 D002 PXX3 666 332
Answers were Sorted based on User's Feedback
Hi,
This could be implemented in many ways.One such way is :
Assumption : All the 3 tables namely HEADER,SUBHEAD and
DETAIL belong to the same Database
Solution : In the Source Qualifier for HEADER , wrie a
query which will select COL1 from all HEADER table which
has valid values in all 3 tables.The query would look like :
SELECT H.COL1
FROM
HEADER H
INNER JOIN
SUBHEAD S
ON
H.COL1=S.COL1
AND
H.COL2 IS NOT NULL AND H.COL3 IS NOT NULL AND H.COL5 IS NOT
NULL AND H.COL6 IS NOT NULL AND
S.COL2 IS NOT NULL AND S.COL3 IS NOT NULL AND S.COL5 IS NOT
NULL AND S.COL6 IS NOT NULL
INNER JOIN
DETAIL D
ON
H.COL1=D.COL1
AND
D.COL2 IS NOT NULL AND D.COL3 IS NOT NULL AND D.COL5 IS NOT
NULL AND D.COL6 IS NOT NULL
i.e the above query will fetch the value 2 .Insert this to
a flat file.
Then in the same mapping , DO the following:
HEADER Source Qualifier -> Lookup on the flat File such
that HEADER.COL1=FlatFile.COL1->Insert the valid records in
Target (records which do not return NULL from the lookup)
Here only record with COL1=2 will be inserted into the
Target
Repeat the same for SUBHEAD->Target2 and DETAIL->Target3 in
the same mapping.
Please let me know if i am wrong.
Thanks Vinithra.
| Is This Answer Correct ? | 5 Yes | 0 No |
Answer / anu
1)In the mapping join all the 3 flat files on the common
column(Col1).(2joiners are needed)
2)Create a expression drag all the columns from the end
Joiner to Exp.In the expression create a 3 ports
H_flag,S_Flag,D_flag.
H_Flag =iff(isnull(col2),'x',iff(isnull(col3),'x',iff(isnull
(col5),'x',iff(isnull(col6),'x','y'))
the result of this is if you have null in any header column
this flag value will be 'X'.
Repeat this with Detail and subhead as well.
Declare these flag ports as last ports of expression.
3)Create a router with a group in it for
H_Flag!='x'
S_flag!='x'
D_Flag!='x'
This will get you not null columns from all the three and
accordingly u can load the target.
But if you have any other conditions ,still you can use
these flags in filters and control the data flow.
| Is This Answer Correct ? | 4 Yes | 0 No |
Answer / ahmed
Hi Vinithra,
I dont think while using Flaat file as source we can edit
SQL over ride option and write the above mention query.
Ahmed
| Is This Answer Correct ? | 1 Yes | 2 No |
if i have 10 records in my source,if we use router t/r and given the condition as i>2,i=5 and i<2in the different groups what is the o/p in the target
Where are the source flat files kept before running the session?
How can a transformation be made reusable?
i having source, router transformation, two targets in my mapping... i given two conditions in router 1)sal >500 2)sal < 5000 --------------- my source is havig two sal records (1)1000 (2)2000 then which target will load first? will both targets are get load or single target only get load...... why?
There are n numbers of flatfile of exactly same format are placed in a folder .Can we load these flatfile's data one by one to a single relational table by a single session??
Without source how to insert record to target?
Hi i am new to Informatica. I have few question's in Informatica. Can any one respond, it will be appricaited. Q.Is Flat File Contains the Dynamic Cache?
What is a poling?
in informatica,if i have some no.of records,if i want 1st and 10th records..what will be the method to use?
Define joiner transformation?
How to extract sap data using informatica? What is abap? What are idocs?
What is meant by a domain?