cancel
Showing results for 
Search instead for 
Did you mean: 

Help with mapping

Former Member
0 Kudos

Hi,

I have the following condition :

Orders IDOC :

E1EDP01 ( standard node with 0....999999 occurnaces)

+ZORDERS ( custom segment ) 0 .... 999

++Qty

+E1EDP19 ( standard segment ) 0 .... 5

++QUALF (can hav 001,002,003,004,005 once in each occurance)

++IDTNR

Conditon : If E1EDP19-QUALF == 002 and ZORDERS-Qty > 0, then populate IDTNR

I have tried many ways, not getting proper output ( considering n occurances of E1EDP01 with Qty = 0.

help

regards,

nikhil.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi nikhil,

you have to change the context of the nodes

QUALF

Qty

by using right mouse to IDOC.

Regards Mario

Former Member
0 Kudos

Oh yeah,

tried keeping the condition Rohit said, then tried using split by value, changed contexts, then to maintain same queue contexts, tried with UseOneAsMany. Its working if all E1EDP01 has Qty > 0

but If i have 6 E1EDP01 and only last 4 hav Qty > 0, then IDTNR of first 2 segments is shown with the target field, implies not working

Nikhil.

Former Member
0 Kudos

Here the complexity is ...

ZORDERS segment can have multiple number of occurances

E1EDP19 can have max of 5 occurances, of which, we have to pick up the QUALF value 002 ( which can be only once in one of 4 occurances ) and corresponding IDTNR must be populated accordingly to no of occurances of ZORDERS.

like eg of E1EDP01 Segment :

ZORDERS

+ Qty = 1

ZORDERS

+ Qty = 0

ZORDERS

+ Qty = 0

ZORDERS

+ Qty = 9

E1EDP19

+QUALF = 001

+IDTNR = abcd

E1EDP19

+QUALF = 002

+IDTNR = xyz

E1EDP19

+QUALF = 003

+IDTNR = pqr

E1EDP19

+QUALF = 004

+IDTNR = kjh

Like wise, there can be many E1EDP01 segement occurances

---

It should populate XYZ ( whose QUALF = 002 ) for ZORDERS in 2 cases, where Qty = 1 and Qty = 9.

Former Member
0 Kudos

The Queue of IF condition is shown below :

QUEUE : IN . . . >QUEUE : IN2

SUPPRESS. . . > SUPPRESS

idtnr1. . . . . . . . > SUPPRESS

Contextchange. > true

idtnr2. . . . . . . . > Contextchange

Contextchange. > true

idtnr3. . . . . . . . > Contextchange

=> The final output is coming as idtnr1 and idtnr3

I want to make it as idtnr2 and idtnr3.

Basically i wanna remove the SUPPRESS ( which is coming because of the False condition )

how do I do it?

regards,

Nikhil.

Former Member
0 Kudos

Hi Nikhil,

send input to IF function By using RemoveContext.

Your problem is because of Context. send output of RemoveContext To IF function

Regards,

Rohit

Reward points if helpful

Former Member
0 Kudos

Im using UseOneAsMany and its throwing me Queues unequal exception if I use remove contexts.

Former Member
0 Kudos

Hi,

For IF function use removeContext after that use SplitByValue(Each Value). so your UseOneAsMany function detect the contextChange.

Try this,

Regards,

Rohit

Reward points if helpful.

Former Member
0 Kudos

QUEUE: IN is from IF

so, if i do removeContext and SplityByValue, it wont make any change coz 3 idtnr values remain same

n if I place Remove contexts splitby value for the second queue, useoneasmany is generating error message coz, the second queue can have multiple values in the same context, if i use removcontx and splitbyvalue, each value is given a seperate context

thanks for ur reply

nikhil.

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi,

This is context problem only,

1) try removeContext for E1EDP01 node as parent node

2) try SplitByValue for all other remaining nodes as child node of E1EDP01.

3) Did u make Keeps property from IfWithOutElse function True

4) This will also consider suppressed node other wise mismatch the data.

Regards,

Rohit.

Reward points if helpful.

Former Member
0 Kudos

Hi,

1) By using Equals function(Text Category) check the condition for E1EDP19-QUALF == 002

2) ZORDERS-Qty > 0 for this Use EXISTS Function from Node category.

3) then use AND function then use IfWithOutElse Function (with right click Keeps True).

4) Then use SplitByValue.

This will help u.

Regards,

Rohit

Reward points if helpful