cancel
Showing results for 
Search instead for 
Did you mean: 

Mapping logic - send one value from multiple segments to single field

former_member440449
Participant
0 Kudos
1,864

Hi,

I am trying to find out an error regarding some logic in my map. Please find below next source and target structures:

The logic required is next one: each field is a map to map, excepts on the ones named "field".

Segment is 0..1 so it is possible that no fields should come here, and if exists then the segment1 may come 1 or more times. If there are segments (at least 1 to unbounded) then I need to search for value "AA" in field2 (on the source request). If the value exists then I need to send all those context values to the target (field1 to field1, field2 to field2, etc). If the value "AA" doesn't exist in field2 or if there is no segment then I need to send a 0 to all field target.

I am able to search for the AA value in field2 using an UDF:

field1 & field2 are the input parameters to the searchAA UDF and their context are at row level.

This is working for any test cases I've done:

But this is not working as expected when more than 1 row exist:

I might be missing something, or probable I need to avoid UDF and use only standard node functions but I can't understand the queue context error.

Is anyone able to let me know must I do this mapping logic so all test cases are good?

Thanks!!!!!!

View Entire Topic
vicky20691
Active Contributor
0 Kudos

Hi,

This because of context handling.

1. Map source row to target row one to one

2. Map rowfield1,2,3 to Target rowfield1,2,3 one to one

3. Now apply the field1 logic as per my previous answer but always right click on field1 and go to context and select context from segment 1 to row.

You need to do.this context change for field 1, field2, 3 and 4 while mapping them

Regards,

Vikas

former_member440449
Participant
0 Kudos

Hi Vikas,

Thanks again for your response.

I did what you said and it wasn't working but the "map with default" option at the end of the IF was the thing remaining.

Thank you very much for everything!