cancel
Showing results for 
Search instead for 
Did you mean: 

Using one Message Interface for all mappings

former_member184619
Active Contributor
0 Kudos

Hi Folks,

I am using a BPM in which i m getting a file from file system which have system ID in it.

I am having three send Synchronous step following that.

What i need is to use the Message interface for file to be used for receiver determination based on system id in case of Synchronous interfaces.

DO i need to include this File msg. interface in each mapping, if i do so will it be possible to send req. and get response for synchronous call.

OR is there any way to to use the file msg. interface for each mapping.

we are on SP17,I also tried Extended mapping but i am having SYNCHRONOUS send steps.

Plz help me out

Sachin

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

See below..

I hope try.

File recv msg by recv step-- (if you have the interface mapping to transfer the recvmsg into another USE Transformation Step)--Fork with three branches each is having the switch with system ID condition / OR/ Recev Determination Step / Each send step (As you said three send steps) should have the send context.. -this send context should be configured in Recv Determination with send context conditions..you can achieve these ways.

Is it clear / let me know..

Regards

Chilla..

Answers (4)

Answers (4)

former_member184619
Active Contributor
0 Kudos

Hi Folks,

I haven't solved my query yet...

But thanx a lot guys.for your inputs and time..and Sorry Jai for that harsh words

Sachin

Former Member
0 Kudos

Sachin,

No issues..

>>RecFile->sync send->transformation1->transformation2->sync send2->transformation3->BLOCK

in BLOCK

Sync Send3->transformation4 and so on

Why do design your BPM this way? If you are designing your BPM this way, all synch send steps will be called. But you need only one synch send step be called based on the source right?

If I am correct, use switch as suggested by Bhavesh. It will solve your issue.

Regards,

Jai Shankar

former_member184619
Active Contributor
0 Kudos

Jai,

Yes, i need to call all of them. It's working as under:

1) First Sync Send is getting Date_Time from SAP R/3 based upon System ID in File MI ( so it will get the date time from required r/3 )

2) Second step is fetching all the Material documents (MBLNR) between file time and R/3 Time got in previous step using RFC_READ_TABLE.

3) Third Sync is Fetching the data from BAPI_GOODSMVT_DETAIL for each material document got in last step. ( as it is in loop )

Now i am able to do the receiver determination for First call as i m having File MI as source.

<b>But for Second and third Sync. steps i can't determine the receiver i.e. from which SAP R/3 system it should fetch ths data as i am not having File MI having systemID as source in this step.</b>

I hope it is clear now, or some more input is required

Sachin

Former Member
0 Kudos

Sachin,

I got that. In your transformation steps you will be using the the response from R/3 as source msg. Correct. Now change that. Do <b>multi mapping N:1</b>. Add the msg from file here. Your problem will be solved.

P.S: In message mapping go to messages tab and click the + button and add the msg type for file here....:-)

Regards,

Jai Shankar

former_member184619
Active Contributor
0 Kudos

Thanx Jai..

Multimapping is fine... I know that

But it doesn't work in case of Sysnchronous Interface

I tried it also, got this message

Synchronous message interfaces are not permitted in multi-mappings. Remove the synchronous source message interfaces

Do u have any other idea of doing it.

Sachin

Former Member
0 Kudos

Yes, you can not use synch interfaces in multi mappin, coz it will have a response too. Just go ahead and create another asynch abstract interface with the correct message type.

Regards,

Jai Shankar

Former Member
0 Kudos

Hi Sachin,

You need to create one Synchronous message interface with file message type.

If you have same response types for all three send synchronous step then this single sync interface will do. Otherwise you need three sync message interface with file message type as input and required response type as output.

Then you need to create 3 interface mappings, selecting the file sync interface as source and required sync target interface as target.

You will specify these three interface mapping in the send synchronous step.

To sum up:

If response to file message type is same :

1 file sync message interface.

3 interface mappings.

else

3 file sync interfaces.

3 interface mappings.

Regards,

P.Venkat

bhavesh_kantilal
Active Contributor
0 Kudos

Sachin,

Not sure if it is possivble to use multiple Inbound Interfaces in case of Synchronous Calls.

Reason is you have only one sender, but multiple receivers and so you will have multiple responses coming for one Synch request message. Doesn't make sense and so you might evavluate the condition inside the BPM using a Switch and then send the Synch call to the correct receiver.

Regards

Bhavesh

former_member184619
Active Contributor
0 Kudos

Thanx for prompt replies...

Bhavesh,

I m not having all the Synchronous steps just after receive step..

<i>Not sure if it is possivble to use multiple Inbound Interfaces in case of Synchronous Calls.</i>

this is my concern.. can i use multiple inbound interfaces in case of synchronous call. as i am using a sync. BAPI call, so is it possible that R/3 will understand the request with two message 1) File MI 2) Bapi Request. not sure

Chandra..

It will be availabe in Context object if it is available in source message interface.

As i m having BAPI request Sync. interface which is not having system ID as stored in FIle MI

So, can i use the context object if i m not having the reuired field in soure MI.

Sachin

bhavesh_kantilal
Active Contributor
0 Kudos

Sachin,

><i>this is my concern.. can i use multiple inbound interfaces in case of synchronous call. as i am using a sync. BAPI call, so is it possible that R/3 will understand the request with two message 1) File MI 2) Bapi Request. not sure</i>

Am lost. Can you exlain a bit more please?

Regards

Bhavesh

Former Member
0 Kudos

Bhavesh,

Even if he has a switch step and 3 synch steps of which one is called based on the switch condition, is it possible to create 3 Receiver determinations with same sender? Or am I missing some thing here???

P.S: Sorry Sachin for the interruption...

Regards,

Jai Shankar

former_member184619
Active Contributor
0 Kudos

Bhavesh,

I m having one external Defination having same structure as of BAPI_GOODSMVT_DETAIL.

I m maaping BAPI_GOODSMVT_DETAIL.input to RFC message BAPI_GOODSMVT_DETAIL.Request and RFC response to BAPI_GOODSMVT_DETAIL.output

Not want i want to know if i use the two messages in my mapping say

BAPI_GOODSMVT_DETAIL.input and MT_FIle as source and RFC message BAPI_GOODSMVT_DETAIL.request as target.

can i do it like that. and if do it this way will i be able to use System ID in FILE MI for Recevier determination in XPath.

In other way i want to use this system ID in File MI for Receiver determination for all Sync. calls.

Tell me if more input is required,

Sachin

Message was edited by:

Sachin Dhingra

Former Member
0 Kudos

Hi,

<i>can i do it like that. and if do it this way will i be able to use System ID in FILE MI for Recevier determination in XPath.

In other way i want to use this system ID in File MI for Receiver determination for all Sync. calls</i>

-->

You can use , System ID as Context Object / Xpath..

Regards

Chilla..

bhavesh_kantilal
Active Contributor
0 Kudos

Jai,

One cannot have multiple Receiver Determinations for the same message interface.

A problem which I think we have a discusion on earlier as well.

Regards

Bhavesh

Former Member
0 Kudos

Bhavesh,

Thanks for your input.

>>Doesn't make sense and so you might evavluate the condition inside the BPM using a Switch and then <b>send the Synch call to the correct receiver</b>.

Can you pls let me know what you meant here...

Regards,

Jai Shankar

bhavesh_kantilal
Active Contributor
0 Kudos

Sachin,

Let me try to put your requirement once again the way I have understood it,

1. You receiver a file in your BPM . This has a field called SYSTEM ID?

2. On the basis of the System ID field you need to determine the Receiver to which the Synchronous Request message has to be sent?

The issue with this would be that you will need to have 3 Different Synch ABS Interfaces for sending the Request as you will need to have 3 separate Reciever Determinations ( look into the question pointed by Jai Shankar ) .

You can use a Switch inside the BPM and use the SYSTEM ID to route the message to the correct branch and then further decide to make the correct Synch Request by providing the Message Interface - Abstract in the Send Synch Step and this would lead to the request being sent to the correct Receiver.

Regards

Bhavesh

former_member184619
Active Contributor
0 Kudos

Hey Jai..

Plz stop interrupting... you can have a new post for this.

Folks.... just to clarify more...

If i m doing receiver determination and having a Sync. MI as sender / not the File MI in which system ID is there. can i use system ID in XPath or context objects.

becasue i have to determine recevier based on system ID in File MI.

Sachin

bhavesh_kantilal
Active Contributor
0 Kudos

Jai,

What I meant was that use a separate Abstract Messafe Interface for every Send Synch Step --> and a Separate Receiver Determination as well for each of the Send Synch Steps in each branch of the Switch Step.

Regards

Bhavesh

PS : I think this might be the correct solution . But, again I can always be wrong. Dont have acess to a XI box to give confirmations at the moment.

Former Member
0 Kudos

Hi,

Here if you are suing Send Sync, ..

I hope this type of situations .. In Send step Correlation is used , the corresponding response to that ID only..

Did you used correlation..??

Regards

Chilla..

bhavesh_kantilal
Active Contributor
0 Kudos

> Hey Jai..

> Plz stop interrupting... you can have a new post for

> this.

>

Sachin,

I dont find anything wrong in what JaiShankar is doing. He is actually asking the correct questions out here. I wouldnt ask someone who is trying to help me to <i>stop interupting!</i>

Regards

Bhavesh

former_member184619
Active Contributor
0 Kudos

Bhavesh

<i>1. You receiver a file in your BPM . This has a field called SYSTEM ID?

2. On the basis of the System ID field you need to determine the Receiver to which the Synchronous Request message has to be sent?</i>

Sorry for that...because I was confused with jai's ans.. that's why said like that

<b>You are absolutely correct</b>

This is what i want to do.

i can't use switch step here. my BPM looks like this

RecFile->sync send->transformation1->transformation2->sync send2->transformation3->BLOCK

in BLOCK

Sync Send3->transformation4 and so on...

I am using three different Sync ABS Interface for each Sync send steps.

In receiver determination i want to get the data from respective R/3 system based on system ID i.e. logical system in File MI.

Say if it T90CLNT90 then get data from BS_SAPR3_4.6 else from BS_4.7

Sachin

Message was edited by:

Sachin Dhingra

prabhu_s2
Active Contributor
0 Kudos

sachin

just try with this...after the recv step have a fork with 3 branches ...each having a send sync. use the mi from the recv and in response have the interface as u prefer. this could work. if the mapping is diff then u may need to us e a transformation before each send sync step