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,897

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
apu_das2
Active Contributor
0 Kudos

Hi,

On top of what Vikas replied, here is approach 3 -

1. You can do mapping with segment1 to row putting a logic in Graphical mapping if field2 = AA.

Afterwards, in the sub-parameters it will be one to one mapping for field1, field2 etc..

2. Duplicate row in the target end and put logic to create row as per occurrence of segment1 when field2 is not equals to AA.

In the sub parameter, field1, field2 etc. will be mapped with constant 0 here.

Thanks,

Apu

former_member440449
Participant
0 Kudos

Hi Apu,

Thank you for your input!

On option 1 I'm having same issue as I told to Vikas: if I send segment1 to row then more rows in target side will be created than the expected one (it is 1 source row per 1 target row).

Option 2 was good idea but I assume it should be having the same issue as the others acording to the tests I've done.

Remember that logic is:

  • for each source row, one target row must be created
  • rowfield1 is a map to map and must come always
  • field1, field2, field3 and field4 must have a 0 when there are no "AA" values in field2 and if "AA" value exists then only those values in the same context should be sent

Any comments or help will be really appreciated.

Regards!