Convert single row from source to three rows in target
Scenario1:
We have a source table containing 3 columns : Col1, Col2 and Col3. There is only 1 row in the table as follows:
Col1
Col2
Col3
There is target table containg only 1 column Col. Design a mapping so that the target table contains 3 rows as
follows:
Col
a
b
c
Without using normaliser transformation.
Solution:
Create 3 expression transformations exp_1,exp_2 and exp_3 with 1 port each. Connect col1 from Source Qualifier to
port in exp_1.Connect col2 from Source Qualifier to port in exp_2.Connect col3 from source qualifier to port in exp_3.
Make 3 instances of the target. Connect port from exp_1 to target_1. Connect port from exp_2 to target_2 and
connect port from exp_3 to target_3.
Split the non-key columns to separate tables with key
column in both
Scenario 2:
Split the non-key columns to separate tables with key column in both / How to split the data of source table columnwise with respect to primary key. See the source and target tables below.
source table: ID is the key column, Name and Phone No are non-key columns
ID
Name
Phone No
10
AAA
123
20
BBB
234
30
CCC
434
40
DDD
343
50
EEE
442
Target Table 1
ID
Name
10
AAA
20
BBB
30
CCC
40
DDD
50
EEE
Target Table 2
ID
Phone No
10
123
20
234
30
434
40
343
50
442
Solution:
Step 1: Source qualifier: get the source table to the mapping area. See image below.
Step 2: Drag all the port from (from the previous step) to the Aggregator transformation and group by the key
column. Since we have to split the columns to two different tables with the key column in each, so we are going use
two expression transformation, each will take the key column and one non-key column. Connect aggregator
transformation with each of the expression transformation as follows.
Step 3: We need another set of aggregator to be associated with each of the expression tranformation from the
previous step.
Step 4: In the final step connect the aggregators with the two target tables as follows.
Here is the iconic view of the entire mapping.
Separating duplicate and non-duplicate rows to separate
tables
Scenario 3:
How to segregate the duplicate and distinct rows from source table to separate target tables?
source table:
COL1
COL2
COL3
Target Table 1: Table containing all the unique rows
COL1
COL2
COL3
Target Table 2: Table containing all the duplicate rows
COL1
COL2
COL3
Solution:
Step 1: Drag the source to mapping and connect it to an aggregator transformation.
Step 2: In aggregator transformation, group by the key column and add a new port call it count_rec to count the key
column.
Step 3: connect a router to the aggregator from the previous step.In router make two groups one named "original"
and
another
as
"duplicate"
In original write count_rec=1 and in duplicate write count_rec>1.
The picture below depicting group name and the filter conditions
Step 4: Connect two group to corresponding target table.
See Scenario 10 as a different approach for similar situation.
Retrieving first and last record from a table/file
Scenario 4:
How to get first and last record from a table/file?
Solution:
Step 1: Drag and drop ports from source
transformations.
qualifier
to
two
rank
Step 2: Create a reusable sequence generator having start value 1 and
connect the next value to both rank transformations.
Step 3: Set rank properties as follows
In Rank1
In Rank2
Step 4: Make two instances of the target.
Step 5: Connect the output port to target.
Remove footer from your file
Scenario 5: How to remove footer from your file ?
For example the file content looks like as below:some
col1
data1
data5
data1
data1
footer
Header
col2
data2
data6
data2
data2
Just we have to remove footer from the file.
Solution:
Step1: Drag the source to mapping area.
Step2: After that connect a filter or router transformation.
Step3: In filter write the condition like in the picture
col3
data3
data7
data3
data3
here
col4
data4
data8
data4
data4
Step 4:Finally pass it over to target.
Remove header from your file
Scenario 6: How to remove header from a file ?
Solution
Step1:
After
mapping
go
to
workflow
Step2: Just double click on the session and go to mapping option.
Step3: Select the source and go to the set file properties.
and
scheduled
it.
FLAT FILE PROPERTIES
Step4:Chose the advance option. Set number of initial rows skip: 1 ( it can be more as per requirement )
ADV PROPERTIES
It will skip the header.
Sending first half record to target
Scenario 6: How to send first half record to target?
Solution:
1.
Drag
and
drop
the
source
2.
Step:2 In source-Qualifier , go to property and write the SQL query like
to
select* fromemp whererownum <= ( selectcount(*)/2 fromemp)
mapping.
3.
Then connect to target.Now you are ready to run the mapping to see it in action.
Sending second half record to target
Scenario 8: How to send second half record to target?
Solution
Step 1: Drag and drop the source to mapping.
Step 2: In source-Qualifier , go to propery and write the SQL query like
select * from emp minus select * from emp where rownum <= ( select count(*)/2 from
emp))
Step:3 Then connect to target, and run mapping to see the results.
Sending alternate record to target
Scenario
9:
How
to
send
alternate
record
Or
Sending Odd numbered records to one target and even numbered records to another target.
to
target?
Solution:
Step
Step2:
1:
Add
Drag
the
source
the next value of a
and
connect
to
sequence generator to
an
expression
transformation.
expression transformation.
SCR TO SEQ MAPPING
Step 3: In expression transformation make two port, one is "odd" and another
"even".
And Write the expression like below
EXPRESSION PROPERTY
Step 4: Connect a router transformation to expression.
Make two group in router.
And give condition Like below
RTR PROPERTY
Step 5: Then send the two group to different targets.
The entire mapping is as below
Separate the original records in target
Scenario 10: How to separate the original records from source table to separate target table by using rank
transformation ?
Source Table
col1
col2
col3
Target Table
Col1
Col2
Col3
Solution:
Step 1: Bring the source to mapping.
SRC TO RANK MAPPING
Step 2: Connect the rank to source.
Step 3: In rank, set the property like this.
RANK PROPERTY
Step 4: Then send it to target.
Run the session to see the result.
Separate rows on group basis
Scenario 11: In Dept table there are four departments (dept no 40,30,20,10). Separate the record to different target
department wise.
Solution:
Step 1: Drag the source to mapping.
Step 2: Connect the router transformation to source and in router make 4 groups and give condition like below.
ROUTER TRANSFORMATION
Step 3: Based on the group map it to different target.
The final mapping looks like below.
ROUTER TO TARGET
Get top 5 records to target without using rank
Scenario 12: How to get top 5 records to target without using rank ?
Solution:
1.
Drag the source to mapping and connect it to sorter transformation.
2.
Arrange the salary in descending order in sorter as follows and send the record to expression.
3.
Add the next value of sequence generator to expression.(start the value from 1 in sequence generator).
4.
Connect the expression transformation to a filter or router. In the property set the condition as follows-
5.
Finally connect to the target.
Segregating rows on group count basis
Scenario 13: There are 4 departments in Emp table. The first one with 100,2nd with 5, 3rd with 30 and 4th dept has
12 employees. Extract those dept numbers which has more than 5 employees in it, to a target table.
Solution:
1.
Put
the
source
to
mapping
and
connect
the
ports
to
aggregator
transformation.
2.
Make 4 output ports in aggregator as in the picture above : count_d10, count_d20, count_d30, count_d40.
For
3.
each
Then
port
send
write
expression
it
like
to
in
the
expression
picture
below.
transformation.
4.
In expression make four output ports (dept10, dept20, dept30, dept40) to validate dept no
And
5.
Then
provide
connect
the
to
router
expression
transformation.
like
And
create
in
group
the
and
picture
fill
condition
below.
like
below.
6.
Finally
connect
to
target
table
having
one
column
that
is
dept
no.
Extracting every nth row
Scenario: How to load every nth row from a Flat file/ relational DB to the target? Suppose n=3, then in above
condition the row numbered 3,6,9,12,....so on, This example takes every 3 row to target table.
Solution:
1.
Connect
Add
the
an
next
expression
value
port
of
transformation
sequence
generator
after
to
source
expression
qualifier.
transformation.
2.
In expression create a new port (validate) and write the expression like in the picture below.
3.
Connect a filter transformation to expression and write the condition in property like in the picture below.
4.
Finally
connect
to
target.
15.Sending records to target tables in cyclic order
Scenario: There is a source table and 3 destination table T1,T2, T3. How to insert first 1 to 10 record in T1, records
from 11 to 20 in T2 and 21 to 30 in T3.Then again from 31 to 40 into T1, 41 to 50 in T2 and 51 to 60 in T3 and so on
i.e in cyclic order.
Solution:
1.
Drag the source and connect to an expression.Connect the next value port of sequence generator to
expression.
2.
Send the all ports to a router and make three groups as bellow
Group1
mod(NEXTVAL,30) >= 1 and mod(NEXTVAL,30) <= 10
Group2
mod(NEXTVAL,30) >= 11 and mod(NEXTVAL,30) <= 20
Group3
mod(NEXTVAL,30) >= 21and mod(NEXTVAL,30) <= 29 or mod(NEXTVAL,30) = 0
3.
Finally
connect
Group1
to
T1,
Group2
to
T2
and
Group3
to
T3.
< Prev
Next >
16.Concatenation of duplicate value by comma separation
Scenario: You have two columns in source table T1, in which the col2 may contain duplicate values.All the duplicate
values in col2 of will be transformed as comma separated in the column col2 of target table T2.
Source Table: T1
Col1
Col2
b
col1
n
col2
x,m
y,n
Target Table: T2
Solution:
1.
We
have
to
use
the
following
transformation
as
below.
First connect a sorter transformation to source and make col1 as key and its order is ascending. After that
connect
it
to
an
expression
transformation.
2.
In
Expression
3.
In
concat_val
make
write
four
new
expression
like
port
as
and
give
describe
them
bellow
name
and
as
send
in
it
to
picture
an
below.
aggregator
4.
In
aggregator
5.
Finally run the session.
group
it
by
col1
and
send
it
to
target
17.Target table rows , with each row as sum of all previous
rows from source table.
Scenario: How to produce rows in target table with every row as sum of all previous rows in source table ? See the
source and target table to understand the scenario.
SOURCE TABLE
id
Sal
200
300
500
560
TARGET TABLE
Id
Sal
200
500
1000
1560
1.
Pull
2.
In
the
expression
source
add
one
to
mapping
column
and
and
make
then
it
connect
output(sal1)
and
it
sal
to
port
as
expression.
input
only.
We will make use of a function named cume() to solve our problem, rather using any complex mapping. Write
the
expression
in
sal1
as
cume(sal)
and
send
the
output
rows
to
target.
18. Produce files as target with dynamic names
Scenario:How to generate file name dynamically with name of sys date ?
Solution:
1.
Drag your target file to target designer and add a column as show on the picture. Its not a normal column
.click
2.
on
the
add
file
name
to
the
table
property.
(I
have
given
red
mark
there)
Then drag your source to mapping area and connect it to an expression transformation.
3.
In expression transformation add a new port as string data type and make it output port.
4.
In that output port write the condition like describe as bellow and then map it in to filename port of target.
Also send other ports to target. Finally run the session. You will find two file one with sys date and other one is
.out file which one you can delete.
5.
19. Validating all mapping in repository
Scenario:How validate all mapping in repository ?
Solution:
1.
In repository go to menu tool then queries. Query Browser dialog box will
appear.Then
click
on
new
button.
2.
In Query Editor, choose folder name and object type as I have shown in the picture.
3.
After that, execute it (by clicking the blue arrow button).
4.
Query results window will appear. You select single mapping (by selecting single one) or
whole mapping (by pressing Ctrl + A) and go to "tools" then "validate" option to validate it.
< Prev
Next >
0 Comments.
Tell us what do you think
20. Using mapping parameter and variable in mapping
Scenario:How to use mapping parameter and variable in mapping ?
Solution:
1.
Go to mapping then parameter and variable tab in the Informatica designer.Give name as $$v1, type choose
parameter (You can also choose variable), data type as integer and give initial value as 20.
2.
Create a mapping as shown in the figure( I have considered a simple scenario where a particular
department
id
will
be
filtered
to
the
target).
3.
In
filter
set
deptno=$$v1
(that
means
only
dept
no
20
record
will
go
to
the
4.
Mapping parameter value cant change throughout the session but variable can be changed. We can
change variable value by using text file. Ill show it in next scenario.
21. Removing '$' symbol from salary column
Q21: Reading a source file with salary prefix $ , in the target the Sal column must store in number .
Source
EMPNO ENAME
JOB
MGR HIREDATE
SAL
DEPTNO
7369 SMITH
CLERK
7902 17-DEC-80
$800
20
7499 ALLEN
SALESMAN
7698 20-FEB-81
$1600
30
Target
EMPNO ENAME
JOB
MGR HIREDATE
SAL
DEPTNO
7369 SMITH
CLERK
7902 17-DEC-80
800
20
7499 ALLEN
SALESMAN
7698 20-FEB-81
1600
30
target.)
1.
Drag the source to mapping area and connect each port to an expression transformation.
2.
In expression transformation add a new col sal1 and make it as out put and sal as in put only as shown in
picture.
3.
In expression write the condition like this.
4.
connect the required port to target.
22. Currency convertor
Q22 Suppose that a source contains a column which holds the salary information prefixed with the currency
code , for example
EMPNO ENAME
JOB
MGR HIREDATE
SAL
DEPTNO
7369 SMITH
CLERK
7902 17-DEC-80
$300
20
7499 ALLEN
SALESMAN
7698 20-FEB-81
1600
30
7521 WARD
SALESMAN
7698 22-FEB-81
8500
30
In the target different currency will evaluate to a single currency value, for example covert all to Rupees.
1.
First thing we should consider that there are different types of currency like pound, dollar, yen etc.So its a
good idea to use mapping parameter or variable.Go to mapping=> mapping parameter and variables then
create three parameters (for this example) and set its initial value as bellow
2.
Then drag the source to mapping area and connect to an expression transformation.
3.
In expression create a output port as sal1 and make sal as input only as bellow.
4.
In sal1 port write the condition as below
iif(instr(SAL,'$')!=0,TO_integer(SUBSTR(SAL,INSTR(SAL,'$')+1,LENGTH(SAL)-1))*$$DOLAR,
iif(instr(SAL,'')!=0,TO_integer(SUBSTR(SAL,INSTR(SAL,'')+1,LENGTH(SAL)-1))*$$POUND,
iif(instr(SAL,'')!=0,TO_integer(SUBSTR(SAL,INSTR(SAL,'')+1,LENGTH(SAL)-1))*$$YEN
)
)
)
$$DOLAR,$$POUND,$$YEN these are mapping parameter . you can multiply price in rupee directly for
example dollar price in rupees i.e 48 .
5.
Connect required output port from expression to target directly. And run the session.
23. sending data one after another to three tables in cyclic
order
Q23 In source there are some record. Suppose I want to send three targets. First record will go to first target,
Second one will go to second target and third record will go to third target and then 4th to 1st,5th to 2nd , 6th
to 3rd and so on.
1.
Put the source to mapping and connect it to an expression transformation.
2.
Drag an sequence generator transformation and set properties like this And connect the next value port to
expression.
3.
Drag all output port of expression to router. In router make three groups and gve the conditions Like
this
4.
connect desire group to desire target .
24. Converting '$' symbol to 'RS." in sal column
Q24 The Emp table contains the salary and commission in USD, in the target the com and sal will converted
to a given currency prefix ex: Rs.
Source
EMPNO ENAME
JOB
MGR HIREDATE
SAL
DEPTNO
7369 SMITH
7499 ALLEN
CLERK
SALESMAN
7902 17-DEC-80
7698 20-FEB-81
$800
20
$1600
30
Target
EMPNO ENAME
JOB
MGR HIREDATE
SAL
7369 SMITH
CLERK
7902 17-DEC-80
Rs.800
7499 ALLEN
SALESMAN
7698 20-FEB-81
RS.1600
DEPTNO
20
30
1.
Drag the source and connect it to expression transformation
2.
In expression make a output port sal1 and make sal as input port only.
3.
In sal1 write the condition as like bellow
4.
Then send it to target.
25. Insert and reject records using update strategy
Scenario:There is a emp table and from that table insert the data to targt where sal<3000 and reject other rows.
Following are the steps for achieving it
1.
connect out-puts from SQF to Update Strategy transformation.
2.
In properties of Update Strategy write the condition like this
3.
Connectthe Update Strategy to target
If you have any better way to solve this, don't forget to comment
1.
26. Count the no of vowel present in emp_name column
Scenario:Count the no of vowels present in emp_name column of EMP table as shown bellow.
emp_name
total_vowels_count
Allen
2
Scott
1
Ward
1
These are the steps to achieve it
1.
Connect required columns from SQF to an expression transformation.
2.
In Expression add 6 columns like in the picture as bellow. But You can make it two columns( One for all the
vowels and one for the vowel counts). For better understanding I have added 6 columns,5 for each of the
vowels
and
one
for
the
vowel
count.
The way I achieved is for each of the vowels in ename , I replaced it with null and in port total vowel count , I
substract the vowel port from the ename length which gives me the individual count of vowels, after adding up
for
all
vowels
For
For
For
For
found
all
A
E
the
write
write
I
present.
Here
are
all
the
variable
ports.
REPLACECHR(0,ENAME,'a',NULL)
REPLACECHR(0,ENAME,'e',NULL)
write
O
vowels
REPLACECHR(0,ENAME,'i',NULL)
write
REPLACECHR(0,ENAME,'o',NULL)
For
And
for
o/p
write
column
REPLACECHR(0,ENAME,'u',NULL)
total_vowels_count
write
expression
like
(length(ENAME)-length(A))
+
(length(ENAME)-length(E))
+
(length(ENAME)-length(I))
+
(length(ENAME)-length(O))
+
(length(ENAME)-length(U))
3.
Finally send to target.
27. Remove special characters from empno
Senario:Suppose in flat_file some special symbols like @,%,$,#,& has added in empno column along with the
actual data. How to remove those special charcters ? ( see article , on how to remove $ from salary )
example
empno in source
empno(in string format)
7@3%$,21
432#@1
324&*,$2
this
In target
empno
7321
4321
3242
Following are the steps for achieving this mapping
1.
Connect 0/p columns of SQF to an expression transformation.
2.
In expression make empno as input and create another port empno1 as output port with date datatype. And
in empno1 write condition like this. and finally send it to target
You comments and suggests keeps me going, don't forget to do so.
28.
Convert Numeric Value to Date Format
Senario:Suppose you are importing a flat file emp.csv and hire_date colummn is in numeric format, like 20101111
.Our objective is convert it to date,with a format 'YYYYMMDD'.
source
EMPNO
------1
2
target
EMPNO
------
HIRE_DATE(numeric)
----------20101111
20090909
HIRE_DATE (date)
-----------
1
2
11/11/2010
09/09/2009
1.
Connect SQF to an expression.
2.
In expression make hire_date as input only and make another port hire_date1 as o/p port with date data
type.
3.
In o/p port of hire_date write condition like as below
4.
Finally send to target
Don't forget to comment.
29.
Check the Hire-Date is Date or Not
Scenario:Suppose we have a table with records like this
EMPNO
HIRE_DATE
------ -------------1
12-11-87
2
02-04-88;
3
02-2323
empno is number and hire_date is in string format. We have to check the hire_date column, if it is in date format like
'dd-mm-yy', then convert it to date , in the format mm/dd/yy and send it to target else send null.
output
EMPNO
HIRE_DATE
---------------1
11-DEC-87
2
null
3
null
These are the steps for achieving this scenaio
1.
Connect the ports from SQF to an expression transformation.
2.
In expression create another oupput port hire_date1 and make it to date data-type, shown in picture.
3.
In Hire_date1 write the condition like this.
4.
Send ports to target.
30.
Date Difference in Hours
Scenario:There is a order_delivery table having record like this
ORDER_NO
ORDER_DATE
DELIVERY_DATE
-----------------------2
11-JAN-83
13-JAN-83
3
04-FEB-83
07-FEB-83
1
08-DEC-81
09-DEC-81
We have to calculate difference between order_date and delivery date in hours and send it to target.
o/p will be
ORDER_NO ORDER_DATE DELIVERY_ DATE
DIFF_IN_HH
--------------------------------2
11-JAN-83
13-JAN-83
48
3
04-FEB-83
07-FEB-83
72
1
08-DEC-81
09-DEC-81
24
These are the steps for achieving this scenario
Don't forget to comment
1.
Connect one expression transformation next to SQF.
2.
In expression create one out/put port diff and make it integer type.
3.
In that port write the condition like this and sent to target.
31.
Sending to target with days difference more than 2
days
Scenario: From the order_delivery table insert the records to target where , day difference between order_date
and delivery_date is greater than 2 days. ( Note: see last article , where we discussed finding the time in hour
between two dates)
Source
ORDER_NO ORDER_DATE
DELIVERY_DATE
------------------------2
11-JAN-83
13-JAN-83
3
04-FEB-83
07-FEB-83
1
08-DEC-81
09-DEC-81
Target
ORDER_NO ORDER_DATE DELIVERY_ DATE
---------------- ------ --- ---------2
11-JAN-83
13-JAN-83
3
04-FEB-83
07-FEB-83
These are the steps for achieving this scenario
1.
Connect all the rows from SQF to update strategy transformation.
2.
In update strategy properties write the expression like this
3.
Finally send to target.
I appreciate your comments.
32
Convert Day No. to corresponding month and
date of year
Scenario: Suppose you have a source is like this
Source
E_NO YEAR
DAYNO
------ --------- --------1
01-JAN-07 301
2
01-JAN-08 200
Year column is a date and dayno is numeric that represents a day ( as in 365 for 31-Dec-Year). Convert the Dayno
to corresponding year's month and date and then send to targer.
Target
E_NO
YEAR_MONTH_DAY
-------------- ---------1
29-OCT-07
2
19-JUL-08
These are the basic steps for this scenario
1.
Connect SQF with an expression transformation.
2.
In expression create one o/p port c_year_mm_dd, make it to date type and in that port write the condition
like this.
3.
Finally send to target
33.Targeting records of employees who joined in current
month.
scenario: Insert the records of those employees who have joined in current month and Reject other rows.
Source
E_NO
JOIN_DATE
--------------1
07-JUL-11
2
05-JUL-11
3
05-MAY-11
If the current month is july ,2011 then target will be like this.
Target
E_NO
JOIN_DATE
--------------1
07-JUL-11
2
05-JUL-11
To insert current month records we have to follow these steps
1.
Connect one update strategy transformation next to SQF.
2.
In update strategy properties write the condition like this
3.
Send required ports update strategy to target.
34.Extracting first and last name
Suppose In Ename column there is first name and last name like this
empno ename
1
Amit Rao
Chitra Dash
In target we have to separate ename column to firstnane and lastname like this
empno
firstname
Lastname
Amit
Rao
Chitra
Dash
Steps for solving this scenario
1.
Drag the source to mapping area and connect with an expression trans formation as shown bellow.
2.
In expression transformation create two output port one is f_name and other is l_name.
3.
In f_name write the condition like this
4.
In l_name write the condition like this
Then connect the target.
These are the basic steps for achieving this scenario
35.Extracting Middle Name From Ename
Suppose in e_name column is like this
empno
ename
Sudhansu Sekher Dash
Amiya Prasad Mishra
In target we have to send middle name like this
empno
ename
Sekher
Prasad
These are the steps for achieving this
1.
Drag the source and connect to an expression transformation
2.
In Expression create two ports one is name1(as variable port) and Middle_Name (o/p port)
3.
In Name1 write the condition like this
4.
In Middle_Name write the condition like this
5.
Then send to target.
SCD TYPE1
SCD TYPE1 MAPPING
The SCD Type 1 methodology overwrites old data with new data, and therefore does no need to track historical data .
1.
Here is the source
2.
We will compare the historical data based on key column CUSTOMER_ID.
3.
This is the entire mapping
4.
Connect lookup to source. In Lookup fetch the data from target table and send only CUSTOMER_ID port
from source to lookup
5.
Give the lookup condition like this
6.
Then rest of the columns from source send to one router transformation
7.
In router create two groups and give condition like this
8.
For new records we have to generate new customer_id. For that take a sequence generator and connect
the next column to expression .New_rec group from router connect to target1(Bring two instances of target to
mapping, one for new rec and other for old rec) .Then connect next_val from expression to customer_id column
of target
9.
Change_rec group of router bring to one update strategy. and give the condition like this
10.
Instead of 1 you can give dd_update in update-stratgy. Then connect to target.
SCD Type2
In Type 2 Slowly Changing Dimension, if one new record is added to the existing table with a new
information then both the original and the new record will be presented having new records with its own
primary key.
1.
To identifying new_rec we should and one new_pm and one vesion_no.
2.
This is the source.
3.
This is the entire mapping
4.
All the procedure same as described in SCD TYPE1 mapping. The Only difference is , From router new_rec
will come to one update_strategy and condition will be given dd_insert and one new_pm and version_no will be
added before sending to target.
5.
Old_rec also will come to update_strategy condition will given dd_insert then will send to target.
SCD Type3
In SCD Type3 ,there should be added two column to identifying a single attribute. It stores one time
historical data with current data
1.
This is the source
2.
This is the entire mapping
3.
Up to rouer transformation ,all the procedure is same as described in Scenario_36 SCD type1.
4.
The only difference is after router bring the new_rec to router and give condition dd_insert send to target.
Create one new primary key send to target.
5.
For old_rec send to update_strategy and set condition dd_insert and send to target.
6.
You can create one effective_date column in old_rec table
Unit Testing
Unit Testing
In unit testing what we need do is something like below
1.
Validate source and target
- Analyze & validate your transformation business rules.
- We need review field by field from source to target and ensure that the required
transformation logic is applied.
- We generally check the source and target counts for each mapping.
2.
Analyze the success and reject rows
-
In this stage we generally customized sql queries to check source and target.
Analyze the rejected rows and build the process to handle this rejection.
3.
Calculate the load time
-
Run the session and view the statistics
We observe how much time is taken by reader and writer .
We should look at lesion log and workflow log to view the load statistics
4.
Testing performance
-
Source performance
Target performance
Session performance
Network performance
Database performance
After unit testing we generally prepare one document as described below
5.
UNIT TEST CASE FOR LOAN_MASRER
ACTU
FUNCTIONALI
TY_ID
FIELD_NAME
DETAIL
VALUE
EXPECTE
AL
PASS/FAIL
PASSED
D RESULT
RESU
RESULT
REMARK
LT
_TYPE_ID
SHOULD BE NOT
NULL ,FIRST
CHARACHER
STG_SCHM_D
TLS_001
LOAN
_ID
ALPHABET(INSCH
) AND LAST 10
CHARACTER
RECO
INSCH0000
ACCEPT
RD
0000002
RECORD
ACCE
PASS
PTED
NUMERIC
VALUES AND
ALSO ITS
LENGTH IS 16
RECORD
REJECT WHEN ,
INSERTED
NOT NULL ,FIRST
INTO
5 CHARACHER
REJECTED
REJECT
NOT (INSCH) OR
STG_SCHM_D
LOAN_TYPE_I
LAST 10
INSCP0010
TLS_002
CHARACTER NON
00000002
NUMERIC
FILE WITH
RECORDR
ECORD
PASS
REJECTE
ERROR_ID
&ERROR_
VALUES AND
AN
DETAILS
ALSO ITS
INTO
LENGTH <>16
ERROR_T
ABLE
LOAN_COMPANY
_ID MUST BE
NOT NULL,FIRST
4 CHRACTER
STG_SCHM_D
LOAN_COMPA
TLS_003
NY_ID
ALPHABET(INCO)
AND LAST 11
CHRACTER
RECO
INCO00000
ACCEPT
RD
000003
RECORD
ACCE
PASS
PTED
NUMERIC
VALUES AND
ALSO LENGTH IS
15
RECORD
REJECT WHEN ,
INSERTED
NOT NULL ,FIRST
INTO
4 CHARACHER
REJECTED
NOT (INCO) OR
RECO
STG_SCHM_D
LOAN_COMPA
LAST 11
INSO00000
REJECT
RD
TLS_004
NY_ID
CHARACTER NON
060003
RECORD
REJE
NUMERIC
FILE WITH
PASS
CTED
AN
ERROR_ID
&ERROR_
VALUES AND
DETAILS
ALSO ITS
INTO
LENGTH <>15
ERROR_T
ABLE
STG_SCHM_D
TLS_005
RECO
START DATE
START_DATE
SHOULD BE A
12/9/1988
VALID DATE
ACCEPT
RD
RECORD
ACCE
PASS
PTED
RECORD
INSERTED
INTO
REJECTED
START DATE
STG_SCHM_D
RECO
SHOULD NOT BE
START_DATE
LOADED WHEN IT
33FeB/88
REJECT
RD
FILE WITH
PASS
AN