There are 2 files, Master and User. We need to compare 2
files and prepare a output log file which lists out missing
Rolename for each UserName between Master and User file.
Please find the sample data-
MASTER.csv
----------
Org|Tmp_UsrID|ShortMark|Rolename
---|---------|----------|------------
AUS|0_ABC_PW |ABC PW |ABC Admin PW
AUS|0_ABC_PW |ABC PW |MT Deny all
GBR|0_EDT_SEC|CR Edit |Editor
GBR|0_EDT_SEC|CR Edit |SEC MT103
GBR|0_EDT_SEC|CR Edit |AB User
USER.csv
--------
Org|UserName|ShortMark|Rolename
---|--------|---------|------------
AUS|charls |ABC PW |ABC Admin PW
AUS|amudha |ABC PW |MT Deny all
GBR|sandya |CR Edit |Editor
GBR|sandya |CR Edit |SEC MT103
GBR|sandya |CR Edit |AB User
GBR|sarkar |CR Edit |Editor
GBR|sarkar |CR Edit |SEC MT103
Required Output file:
---------------------
Org|Tmp_UsrID|UserName|Rolename |Code
---|---------|--------|------------|--------
AUS|0_ABC_PW |charls |ABC Admin PW|MATCH
AUS|0_ABC_PW |charls |MT Deny all |MISSING
AUS|0_ABC_PW |amudha |ABC Admin PW|MISSING
AUS|0_ABC_PW |amudha |MT Deny all |MATCH
GBR|0_EDT_SEC|sandya |Editor |MATCH
GBR|0_EDT_SEC|sandya |SEC MT103 |MATCH
GBR|0_EDT_SEC|sandya |AB User |MATCH
GBR|0_EDT_SEC|sarkar |Editor |MATCH
GBR|0_EDT_SEC|sarkar |SEC MT103 |MATCH
GBR|0_EDT_SEC|sarkar |AB User |MISSING
Both the files are mapped through Organization, Shor_mark.
So, based on each Organization, Short_Mark, for each
UserName from User.csv, we need to find the Matching and
Missing Rolename. I am able to bring Matching records in
the output. But really I don't find any concept or logic to
achieve "MISSING" records which are present in Master and
not in User.csv for each UserName. Please help out guys.
Let me know if you need any more information.
Note:- In User.csv file, there are n number of
Organization, under which n number Shortmark comes which
has n number of UserName.
Answer / zer0
Create the mapping as below:
LKPTRANS
Master_SQ /\
\ / \
/JNRTRANS ---> EXP1 ---> AGG ---> EXP2 ----> EXP3 ---> Targ
User_SQ
In Joiner, use the join as per requirement. For the
scenario given a normal join is enough. Take all the ports
from Master_SQ and User_SQ into an expression after joiner.
From Expression pass it on to an aggregator. In aggregator,
group by based on the ports Master.ShortMark,
Master.Rolename and Master.Username .
From aggregator take the following ports - Master.Org,
Master.Tmp_UsrID, Master.ShortMark, Master.Rolename and
User.UserName
Make a lookup on the User.csv file and from Expression take
Master.ShortMark, Master.Rolename and User.UserName as
input into the lookup trans. Join on the basis of the input
ports and output LKP_UserName from the lookup
transformation.
Also, from EXP2 take all the ports as input into EXP3. Make
a CODE column in EXP3 with the condition IIF(ISNULL
(LKP_UserName),'MISSING','MATCHING')
From EXP3 pass all the ports into target. You will have
your desired answer.
| Is This Answer Correct ? | 0 Yes | 0 No |
What are the rank caches?
What is the difference between SOURCE and TARGET BASED COMMITS? What are the deliverables?in your project?
What is union transformation in informatica?
wat s mapping parameter and mapping variable? how do you set that in a mapping?
How to import oracle sequence into Informatica?
What is Test load plan? Let us assume 10 records in source, how many rows will be loaded into target?
Could you explain what is enterprise data warehouse?
i have one source 52 million records i want target only 7 records ?how wil you do what logic to implement?
please let me know which type of question arise in interview on project manager round on insurance project with answer pls reply asap.
There are 4 flat files with number of records as indicated below. Which files should be picked first for joining using joiners so as to get best performance. File A - 1000 records File B - 100 records File c - 10000 records File D - 10 records Please explain. Thanks and Regards,
how to get flatfile containg 10 records half records one target another half another target
I have 5 sessions s1,s2,s3,s4 & s5 and i want execute s1,s2,s3,s5 after s4. How?