cancel
Showing results for 
Search instead for 
Did you mean: 

Receiver Condition cannot split data

yoppy_santoso
Participant
0 Kudos

Hi all,

I have data from MySQL like this :

And I have Receiver Condition like this :

But, if I execute this scenario, all of the data from MySQL will be inserted on both of Communication.

So, in ZTABLE 320 have some data from CLIENT 325.
My expectation is if CLIENT = 320 will be inserted in BS_MPD320_D, so is the 325 CLIENT.
Why the condition is not working?

Accepted Solutions (0)

Answers (4)

Answers (4)

sugata_bagchi2
Active Contributor
0 Kudos

Hi Yoppy,

The best option will be to create only one mapping and parameterized the receivers for mapping. This is useful if you are having similar structure and similar kind of mapping for all receiver.

But if you have different structure for each receiver, then you have to create multiple mappings, one for each receiver.

https://sapintegrationhub.com/pi-po/mapping/parametarized-mapping-example-in-sap-pi-po/

https://blogs.sap.com/2008/02/14/sap-pi-71-mapping-enhancements-series-parameterized-message-mapping...

Thanks

Sugata

yoppy_santoso
Participant
0 Kudos

Hi Sugata,

have u ever had the same case?

Because I change my condition like below picture, and still not working.

former_member190624
Active Contributor
0 Kudos

Hi Yoppy,

Is it possible to post sample payload, you are using for this interface ?

Regards

Hari.

yoppy_santoso
Participant
0 Kudos

Yes I am,

And this is sample xml from payload :

sugata_bagchi2
Active Contributor
0 Kudos

you have to create 2 separate mappings for both receivers. in mapping you will filter the records for each receiver.

in ICO, use the conditions for mapping as that.

Thanks

yoppy_santoso
Participant
0 Kudos

So, if I have 3 receivers, do I have to create 3 mappings?

sugata_bagchi2
Active Contributor
0 Kudos

Hi Yoppy,

If you see your incoming data it contains both values 325 and 320 that is why both receiver conditions are satisfied.

What you have to do is to create conditions for mapping. you have to create 2 mappings with conditional operator EX. And in the mapping you have to filter the records based on the client.

Thanks

Sugata

yoppy_santoso
Participant
0 Kudos

Hi Sugata,

How to do it with EX operator?

I am using like this, but its not working.

Thanks
Yoppy

JayChan
Active Participant
0 Kudos

Hi, yoppy.santoso
I agreed with sugata.bagchi2 .

According to him: "

If you see your incoming data it contains both values 325 and 320 that is why both receiver conditions are satisfied."

Since your incoming data payload have "MULTIPLE" MT_WDP_GET/row/CLIENT, it cannot exclusively chose one of conditions you mentioned. In other words, if your payload have only 1 MT_WDP_GET/row/CLIENT node. PI could work as you expected.