on 02-16-2007 5:03 AM
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
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..
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
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
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
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
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..
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
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
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.
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
83 | |
10 | |
10 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.