cancel
Showing results for 
Search instead for 
Did you mean: 

Mapping Issue: Target IDoc structure not getting created properly

arkesh_sharma
Active Participant
0 Kudos

Hi Experts,

I am stuck with a strange problem in my mapping. It is a M:N scenario mapping where we have multiple IDocs in source as well as in target.

For example, in source Queue-1 I am getting values as [SUPPRESS, true, true, true, true] and in the in source Queue-2 I am getting the values as [1,2,3,4,5]. I used MapWithDefault function to match the number of values in both the queues but in the target IDoc the node (say TMPN) is created only 4 times because of the condition put at the target node. So, the target node should have values as [1,2,3,4] but it gets values as [2,3,4,5] because the first target TMPN node is not created in the first target IDoc. I can provide you with the skeleton of the map. Hope this will give you a fair idea. Let me know if you require more details.

1. Target Structure:

IDoc - No TMPN Node

IDoc - 1 TMPN Node

IDoc - 2 TMPN nodes

IDoc - 1 TMPN node

Condition put on target TMPN_Node ---> (created only 4 times due to condition)

2. Mapping Skeleton:

Values coming from Q1 (SUPPRESS, true, true, true, true) --->

\===>FORMATBYEXAMPLE+SPLITBYVALUE==> TMPN-F0 [2]

/ TMPN-F0 [3]

Values coming from Q2 (1,2,3,4,5) -


> TMPN-F0 [4]

TMPN-F0 [5]

Where F0 is the field which is created when TMPN Node is created. So, if TMPN gets created 6 times, the F0 gets created 6 times.

Please let me know if there is an alternative to this problem. How can I have values as [1,2,3,4] in field F0 instead of [2,3,4,5]

Accepted Solutions (1)

Accepted Solutions (1)

rodrigoalejandro_pertierr
Active Contributor
0 Kudos

as i can see as result of previous validation the value 1 is not applaying because the SUPPRESS value is in the queue. just validate your mapping.

arkesh_sharma
Active Participant
0 Kudos

Thank You for Showing interest in my query.

I tried making a skeleton of my map but it didnt turn out well.

The supress value comes because of the validation put on the TMPN node.

The condition on TMPN is: IF T1 field EXISTS THEN create TMPN Node in target IDoc.

I am attaching here a link to the diagram which will be helpful for you to understand.

Please let me know if you require further information.

[https://picasaweb.google.com/lh/photo/kRvoa0phg0pOeoV2z9ygyw?feat=directlink]

Edited by: Arkesh Sharma on Nov 10, 2011 6:15 PM

Former Member
0 Kudos

hi,

In your "IF...THEN", have set the properties "Keep SUPPRESS" ? (contextual menu)

if no, you should be, that will allow you the generate/keep a suppress line, and to keep the sequence in your context

regards.

Mickael

rodrigoalejandro_pertierr
Active Contributor
0 Kudos

hi

sorry, the link provided doesnt work.

I dont know it T1 is a header field o could be in a 0.ounbouded segment. so i assume that T1 field is not comming in the first segment.

Edited by: Rodrigo Alejandro Pertierra on Nov 10, 2011 3:58 PM

arkesh_sharma
Active Participant
0 Kudos

Hi,

The IF--THEN does not have any "Keep SUPPRESS" properties.

The SUPPRESS appears because the condition fails and the node is not generated.

Please let me know how can use "Keep SUPPRESS" option? Will it help in getting the values in order (i.e. 1,2,3,4) at the target?

rodrigoalejandro_pertierr
Active Contributor
0 Kudos

to keep suppress values you have to use ifWithOutElse standard function.

but i think that is not the solution. i keep thinking that you have a logical mapping issue or maybe the result is perfect.

The SUPPRESS appears because the condition fails and the node is not generated.

do you have idea why is failling?

arkesh_sharma
Active Participant
0 Kudos

Hello Rodrigo,

I have sent you an email at hotmail id. Pls chk the snapshot.

rodrigoalejandro_pertierr
Active Contributor
0 Kudos

Nothing reach yet. i'll let you know.

could you resend?

Edited by: Rodrigo Alejandro Pertierra on Nov 10, 2011 5:02 PM

arkesh_sharma
Active Participant
0 Kudos

Hi Rodrigo,

I sent the email once more. Pls chk and confirm.

rodrigoalejandro_pertierr
Active Contributor
0 Kudos

hi,

i got the email.

as i can see your mapping seams to be rigth, but there is sometrhing i dont get. in a previuos post you said:

I am stuck with a strange problem in my mapping. It is a M:N scenario mapping where we have multiple IDocs in source as well as in target.

For example, in source Queue-1 I am getting values as SUPPRESS, true, true, true, true and in the in source Queue-2 I am getting the values as 1,2,3,4,5. I used MapWithDefault function to match the number of values in both the queues but in the target IDoc the node (say TMPN) is created only 4 times because of the condition put at the target node. So, the target node should have values as 1,2,3,4 but it gets values as 2,3,4,5 because the first target TMPN node is not created in the first target IDoc. I can provide you with the skeleton of the map. Hope this will give you a fair idea. Let me know if you require more details.

1. Target Structure:

IDoc - No TMPN Node

IDoc - 1 TMPN Node

IDoc - 2 TMPN nodes

IDoc - 1 TMPN node

lets asume you define as default value "1"

now, the result of the formatByExample taking the example you sent to me is:

1,T1,T2,T3,T4 without context change. and the result of the function splitByValue should be what you are specting.

but its something that is not clear still,

could you post the result of the mapWithDefault? i think your problem is there.

Rgds

RP-.

arkesh_sharma
Active Participant
0 Kudos

Hi Rodrigo,

Thank You for your patience and I apologize for the delayed response. There is a change in the requirements and the new requirements are not clear to any of my team members. Once I get the complete picture from the Functional Author/ Designer, I will drop you an email and provide you the complete picture with all the details.

I guarantee you that the problem will still be there and I will get back to you as soon as I get the details from the Designer.

Thanks,

Arkesh

Answers (1)

Answers (1)

arkesh_sharma
Active Participant
0 Kudos

New requirements came in and the issue was resolved as per the new requirements. The problem is solved now.