cancel
Showing results for 
Search instead for 
Did you mean: 

Mapping problem

Former Member
0 Kudos

Hi,

Source data :

Item ( 0....unbounded )

+ItemID (0...1)

+str1 ( 0....unbounded )

++ID1

+str2 ( 0....unbounded )

++ID2

+str3 ( 0....unbounded )

++ID3

Target structure : ( Multi mapping )

Messages

+Message1

++TargetSTR1 ( will be generated if str1 on source exists )

+++ID ( ItemID of Item if str1 exists )

++TargetSTR2 ( will be generated if str2 on source exists )

+++ID ( ItemID of Item if str2 exists )

++TargetSTR3 ( will be generated if str3 on source exists )

+++ID ( ItemID of Item if str3 exists )

there can be many line Items in source structure ( Item )

I am facing problem in generating ID on the targetstructures.

I used UseOneAsMany with following condition.

ID-collapsecontexts-exists- if -

ItemID-CollapseContexts-then -

output : useoneasmany's 1st input

I am sending ID as 2 inputs to UseOneAsMany. ( i set context )

Its working perfectly for one item.

If the Items are repeating, Its throwing error message that queue contexs are not same.

Can someone suggest me a perfect solution to this?

Frankly, I want to avoid UseOneAsMany and map here.

if I have the following situation where....

Item1

+ItemID1 (0...1)

+str1 ( 0....unbounded )

++ID1

+str3 ( 0....unbounded )

++ID3

Item2

+ItemID2 (0...1)

+str2 ( 0....unbounded )

++ID2

+str3 ( 0....unbounded )

++ID3

Item3 ( 0....unbounded )

+ItemID3

+str1 ( 0....unbounded )

++ID1

+str2 ( 0....unbounded )

++ID2

+str3 ( 0....unbounded )

++ID3

In the above, Item1, do not have str2 so ItemID1 is put in str2 in targetSTR2 instead of ItemID2.

The same is the problem for all rest str as well

Every useful reply will be rewarded.

regards

Venkat

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Try this:

str1(Context=Messages)==>TargetSTR1

str1(Context=Item)-->Exist--\
.............................|-->IF-->RemoveContext-->SplitByValue-->ID
.....ItemID(Context=Item)---/
str2(Context=Messages)==>TargetSTR2

str2(Context=Item)-->Exist--\
.............................|-->IF-->RemoveContext-->SplitByValue-->ID
.....ItemID(Context=Item)---/

str3(Context=Messages)==>TargetSTR3

str3(Context=Item)-->Exist--\
.............................|-->IF-->RemoveContext-->SplitByValue-->ID
.....ItemID(Context=Item)---/

Former Member
0 Kudos

Hi KNS,

I have tried this earlier.

It is working in all the cases, except one... where

Item ( 0....unbounded )

+ItemID (0...1)

+str1 ( 0....unbounded )

++ID1

+str2 ( 0....unbounded )

++ID2

+str3 ( 0....unbounded )

++ID3

there are 3 items.

each item has a different ItemID, assuming First item and third item will have str3 ( Item2 do not have it )

same time

in Item 2, str2 is present ( str3 is missing in item 2 )

It would fail in this case.

regards,

Venkat

Answers (0)