on 07-15-2008 10:50 AM
Hi Experts,
I have the following problem:
Source tag:
<A>
<FIELD1>DATUM1</FIELD1>
<STATUS> X</STATUS>
</A>
<A>
<FIELD1>DATUM2</FIELD1>
<STATUS> </STATUS>
</A>
<A>
<FIELD1>DATUM3</FIELD1>
<STATUS> </STATUS>
</A>
Target Tag:
<C>
<FIELD1>DATUM1</FIELD1>
</C>
<D>
<FIELD1>DATUM2</FIELD1>
</D>
<D>
<FIELD1>DATUM3</FIELD1>
</D>
So, In Source Tag A, if Status =X =>Target Tag = C
In Source Tag A, if Status =empty =>Target Tag = D.
My mapping is as following:
Source Tag A->exists AND Status=X => CreateIF=>Tag C
Source Tag A->exists AND Status=empty=> CreateIF=>Tag D.
The problem is that I get in Target only Tag C:
<C>
<FIELD1>DATUM1</FIELD1>
</C>
<C>
<FIELD1>DATUM2</FIELD1>
</C>
<C>
<FIELD1>DATUM3</FIELD1>
</C>.
It looks like it does not check for each tag A.
I have tried with UseOneAsMany but it does not work and read a lot on SDN but nothing helped!
Please, any idea?
Kind Regards,
Danijela
Here is the solution
Source Tag A => SplitByValue(EachValue) => exists AND Status=X => removecontext => CreateIF =>Tag C
Similarly for other tag as well.
BR
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
This is working..
Source Msg
mt_ip
field
status
Target Msg
mt_op
c
field
d
field
Mapping
status->(equals)->constant(X)->createif->c
field--->field
status->(equals)->constant()->createif->d
field--->field
Edited by: malini balasubramaniam on Jul 15, 2008 12:44 PM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
M
In place of "EMPTY" value can you give "Y" ( just for testing purpose ), with this I would like to verify whether it is considering the blank value or not.
Also why you are using the EXISTS function on Tag A?
- Lalit -
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Danijela,
Source tag:
<FIELD1>DATUM1</FIELD1>
<STATUS> X</STATUS>
<FIELD1>DATUM2</FIELD1>
<STATUS> </STATUS>
<FIELD1>DATUM3</FIELD1>
<STATUS> </STATUS>
Target Tag:
<C>
<FIELD1>DATUM1</FIELD1>
</C>
<D>
<FIELD1>DATUM2</FIELD1>
</D>
<D>
<FIELD1>DATUM3</FIELD1>
</D>
Follow these steps -
you have source message type like this
<root>
<Field>
</Field>
<status>
</status>
</root>
In Graphical mapping , first take Status if with else node function and check for 'X' if yes then create target node <C></C> . if else then check for empty with if without else node function and create target node <D></D> node.
It will solve the issue. Pls let us know if you need any further support.
Regards,
kishore
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Simply use ifWithoutElse & EqualS standard function like this.
for target C.
FIELD1---EqualSNOT(Empty)--AND--STATUS--Equals (X) -
for target D.
FIELD1---EqualSNOT(Empty)--AND--STATUS--Equals (empty)--IF-THEN-----D.
Regards,
Sarvesh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
85 | |
10 | |
10 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.