cancel
Showing results for 
Search instead for 
Did you mean: 

Receiver Determination for differnet recordsets

Former Member
0 Kudos

hi

i 'm reading some files into the xi with the file adapter and content conversion. the result is a incoming message with some recordsets looking like this:


MY_MT
  Record
    Row
      FieldA
      FieldB
    /Row
    Row
      FieldA
      FieldB
    /Row
    ...
  /Record
/MY_MT

my data is in fieldA and a flag for the receiver in fieldB (fieldB = 1 then send row to receiver 1, fieldB = 2 -> receiver 2).

at configuration i created a receiver determination where i setup 2 different receiver services and then created a condition:

MY_MT/Record/Row/fieldB = 1 for receiver 1

MY_MT/Record/Row/fieldB = 2 for receiver 2

a message like below is send to both receivers, but i just want to send all Rows with fieldB = 1 to receiver 1.


MY_MT
  Record
    Row
      DATA
      1
    /Row
    Row
      DATA
      2
    /Row
  /Record
MY_MT

Is this possible?

greets

J.

Accepted Solutions (0)

Answers (5)

Answers (5)

Former Member
0 Kudos

thanks to all,

the solution with the different mapping programs works and with bpm too.

but i think it is possible without bpm but when i creat a splitmapping

(http://help.sap.com/saphelp_nw04/helpdata/en/42/f3b31d48fb1bc8e10000000a11466f/content.htm)

i can test the mapping in message mapping and interface mapping but i cannot activate the interface mapping.

it says, that it needs an async and abstract interface but i just have a async. can i use abstract interfaces without bpm?

greets

J.

stefan_grube
Active Contributor
0 Kudos

In your case you need a non-abstract interface.

Are you already in SP14? If not do it with BPM now. After patching to SP14 you can remove the BPM and use the split-Mapping alone.

Regards

Stefan

Former Member
0 Kudos

Hi,

i am on SP 14 and did everthink like it ist explaind in this doc :

http://help.sap.com/saphelp_nw04/helpdata/en/42/f3b31d48fb1bc8e10000000a11466f/content.htm

(http://help.sap.com/saphelp_nw04/helpdata/de/42/f3b31d48fb1bc8e10000000a11466f/content.htm)

i can activate the Mapping programm and testing the program works fine to.

but at step 6, when i create a interface mapping, the xi tells me during activation of the interface mapping: "mulit mapings are only for use with async abstract interfaces"

the are both async but one is inbound and the other outbound.

Regards J.

Former Member
0 Kudos

Hi,

Instead of using condition in reciever determination , in interface determination on the basis of condition have one mapping each and get the desired output in your target system.

Like map only those fields from source Message Interface as required in reciever 1 target message interface and so on.

I think BPM is not required here.

SP14 and onwards, i am not sure if there is any better and easy solution.

Hope it helps

Regards,

Satish

Former Member
0 Kudos

Hi,

Whenever the condition in receiver determination returns true, the entire message is sent to the configured receiver. In your case, as both condition returns true it is being sent to two receivers. To achive your desired result, you need to split the message into two messages, one for all the rows with FieldB = 1 and the other for with FieldB = 2. You can achieve this splitting using the multimapping in BPM. I heard about multimapping w/o BPM also, I've not tried it though.

thx

praveen

Former Member
0 Kudos

Hi

As par current configuration settings, your choosing a reciver on the basis of flag.

But same input is given to both recivers.

What you want is hust separate the content based on flag.

Two options:

Conditional reciver:-

Use two different mapping program for the same.

In first mapping choose all DAta whose flag is one,

and in another mapping

Choose all the data whose flag is two.

and wonder you will get two different outputs depending on your flag.

Use multimapping:

Instead of going for two mapping programs, just go for single mapping program, and just go through the blog

/people/narendra.jain/blog/2005/12/30/various-multi-mappings-and-optimizing-their-implementation-in-integration-processes-bpm-in-xi

Go for message instance level mapping, It is easy and one time work.....

and wonder you will get output as

MY_MT

Record

Row

DATA

1

/Row

/RecordMY_MT

MY_MT

Record

Row

DATA

2

/Row

/RecordMY_MT

Cheers

Regards

Piyush

Former Member
0 Kudos

Hi,

if your scenario is asychronous you can do this at reciever determination, based on a condition you can either send the message to one reciever or to all recievers.

but if your scenario is synchronous, you have to do a BPM.

cheers,

naveen