on 02-08-2008 7:48 PM
Scenario:
File to XI to BPM to SOAP to RFC
In order to trigger the webservice , I use a dummy file which will be polled at a certain frequency- once in 30 minutes in Test mode - this will call the Webservice. The answer of webservice is sent to RFC Async.
so these are the Repository objects I created :
1. File Outbound Async Message Interface- Output Message (File_Request_MT)
2.File Abstract Message Interface-Output Message (File_Request_MT)
3.Async/ sync bridge Abstract interface to call the Webservice
4 Webservice Inbound Sync Message interface- with both input and output message
5.RFC Inbound Async message interface- input message (RFC_Request)
6 RFC Abstract Async Message interface-input message (RFC_Request)
BPM
a) Receive step which uses the the object 2.
b) Sync send which uses object 3
c) Send step which uses Object 5
I am using a BPM to Receive the file data/ "request " by using the File abstract message interface
Then use the the object 3 to call the webservice in BPM .
My question is on this step
Can I have for the abstract Interface(Object 3) the Request message as File_Request_MT and
response message as (RFC_Request) ?
I use a message mapping to map Input and Ouput message of Object 3 with Object 4.
Thanks for your insight
HI,
You do not need a sync async bridge here, since you are entering the BPM and finally calling the RFC in async mode.
Simply receive the message in BPM async, call the web service sync, use transformation after this sync call if at all the response from Web Service is different from the RFC expected message. Call Send step to call the RFC async.
VJ
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
First off , thanks VJ for the quick repsonse. I have couple of questions based on your response.
You do not need a sync async bridge here, since you are entering the BPM and finally calling the RFC in async mode
.- File to BPM is Async, then BPM to Web service is SYNc , then BPM to RFC is ASync. so, shouldn't we have a ASync/Sync bridge?
This is similar to what has been described in weblog https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1926- [original link is broken] [original link is broken] [original link is broken] but, Webservice replacing RFC.
Simply receive the message in BPM async
, - this is done using Object 2. Do you agree with my thought?
call the web service sync
- This is done using Object 3. Here is where I had a question - the Request/input message for the Abstract Interface is what is in the File(File_request_MT) , the response from Webservice has to be Sent as the Request for Async RFC(RFC_Request)-
use transformation after this sync call if at all the response from Web Service is different from the RFC expected message
. Are you suggesting that I use Transformation to Transfer the Webservice Repsonse to RFC request? Let me know.
Call Send step to call the RFC async
- This is what is done by Object 6.Do you agree with my thought?
Thanks once again!
Edited by: h r on Feb 8, 2008 10:54 PM
Edited by: h r on Feb 8, 2008 10:56 PM
Raj,
Thanks for the quick response.Please see my repsonse. Correct, me if I am wrong. As far as why :
{
One more thing why u created two interfaces for Webservice and RFC like inbound and abstract?"
Ans) Are you talking about MI_RFC_REQUEST_sync_abs and MI_RFC_REQUEST_async?-
The reason for using MI_RFC_REQUEST_ABS is for
a)The definition of container element will be:
Cont. element Category Type
RFC_REQUEST Abstract MI_RFC_REQ._ABS
_CONTAINER
As for Interface MI_FILE_REQUEST_ABS,
It is used for:
a) Container type "File_Request_container"
Cont. element Category Type
File_REQUEST Abstract MI_FILE_REQ._ABS
_CONTAINER
b) Also, for the Receiver determination for BPM service .
As for Webservice interfaces:
MI_webservice_sync_in.
a) This is used to make the call to Webservice.
b) Receiver determination for Webservice call
Abstract Interface MI_webservice_sync_abs-
Input message - MT_soapresponse
Output message- MT_fierequest
Used:
a) used for BPM sync send step ,
b)Interface mapping between MI_Webservice_sync_in and MI_webservice_sync_abs.
The reason for the mapping is that element names of messages are different, eventhough types are the same .
c)Container element-SOAP_response
And again u did mapping btw inbound and abstract! why is it needed? U can directly use the abstract interface isn't it?
Ans : are you talking about Interface mapping between MI_Webservice_sync_in and MI_webservice_sync_abs.?
The reason for the mapping is that element names of messages are different, eventhough types are the same .
The abstract interface MI_webservice_sync_abs uses FILE_REQUEST_MT as Output message and SOAP_RESPONSE as INPUT. This is different from elements of interface MI_Webservice_sync_in
U said that u are going to send the Message received by file directly to the webservice isn't it? Then why u r doing mapping btw File Request and Soap Request? The messages between File request and Soap request are different?
Ans: If you look at the flow of MT_file_request,it goes like this
MI_FILE_REQUEST
V
Receive step of BPM( Filerequest_container)
V
Sync Send step (represented by Message interface
MI_Webservice_sync_ABS - uses container element
File_request_container for Output and
uses
SOAP_Response_container as Input .These elements are different from element in the Web service interface created from External defintion namely MI_Webservice_sync_in. Hence, the need for Message mapping and Interface mapping)
V
MI_Webservice_sync_in
V
Transform step in BPM maps container element
SOAP_response container TO RFC_Request_container
V
Send Async step in BPM sends the
RFC_request_container (which is defined by "category" Abstract Interface and "Type" = MI_RFC_REQUEST_ASYNC_ABS
V
MI_RFC_REQUEST_ASYNC_IN
Edited by: h r on Feb 10, 2008 10:05 PM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Raj,
Thanks for the feedback , but I have a question regarding your reply
Interface Objects
Object 1: File_Request_Abs
Object 2: Soap_Response_Abs
Object 3:Soap_Abs_Synch
Output Message:File_Request_Abs
Input Message:Soap_Response_Abs
Object 4:Rfc_Request_Abs
The question is about
a)SOAP_RESPONSE_ABS : could you please tell me why do we need an abstract interface -SOAP_RESPONSE_ABS?
I created a message type MT_SOAP_RESPONSE and used that in the BPM sync Send step as the Input message.
b)Soap_Abs_Synch- I am using message types
MT_File_request and MT_SOAP_Response From your reponse, it looks like you are suggesting to use
Abstract Interfaces as Output message and Input Message, am I correct? Could you please tell me whether this has advantages over using message types MT_file_request and MT_soap_reponse? I haven't used Abstract interfaces before as Input message and output message; infact, I wasn't even aware that it can be. Please confirm that it is possible. Thank you for increasing my knowledge !!!
These are the Objects I created
Message Type :
a) MT_Filerequest
b) MT_SOAPresponse
Message Interface
a)MI_Filerequest_out_async -
Output message
Mess. type MT_filerequst
b)MI_filerequest_async_abs-
Mess. type MT_filerequst
Used
i) used for BPM receiver step- container definition
ii) receiver determination
c)MI_webservice_sync_in - This is created from External definition
d)MI_webservice_sync_abs-
Input message - MT_soapresponse
Output message- MT_fierequest
Used:
i) used for BPM sync send step ,
ii)Interface mapping between MI_Webservice_sync_in and MI_webservice_sync_abs
iii)Container element-SOAP_response
e) MI_RFC_async_out
Input message
RFC_Request(This is imported from RFC definition)
g) MI_RFC_async_abs
Input message
RFC_Request(This is imported from RFC definition)
Mapping
Message mapping
i)Filerequest_TO_SOAPrequest
Source: MT_Filerequest
Target: SOAPrequest(Got from External definition)
ii)SOAPresponse_TO_BPM_response
Source : SOAPresponse(got from External definition)
Target : MT_SOAPresponse
Interface Mapping
i)IM_BPM_TO_SOAP
Source Interface : MI_webservice_sync_abs
Target :MI_webservice_sync_in
uses following message mapping
Request : filerequest_TO_SOAPrequest
Response:SOAPresponse_TO_BPM_response
BPM container element
i)Receiver_container TYPE MI_Filerequest_out_async
ii)SOAP Responsecontainer TYPE MI_webservice_sync_abs
iii)RFC_Request_container TYPE MI_RFC_async_abs
BPM flow
Receive---->Send Synch-->Transformation----->Send Asynch
Receive -
> receiver_container
Send Synch -
> receiver_container(Request Message), Soap_response_container(Response Message)
Transformation -
> Source(Soap_response_container), Target(RFC_request_container)
Send Asynch -
> RFC_request_container
Thanks for your help!!!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Ooops! I'm sorry, actually it's mistyped it. U can't assign Message Interface again to Message Interface.
Actually it has to be
Object 3:Soap_Abs_Synch
Output Message:File_Request_MT
Input Message:Soap_Response_MT
it's my mistake, I apologize. One more thing why u created two interfaces for Webservice and RFC like inbound and abstract? And again u did mapping btw inbound and abstract! why is it needed? U can directly use the abstract interface isn't it?
U said that u are going to send the Message received by file directly to the webservice isn't it? Then why u r doing mapping btw File Request and Soap Request? The messages between File request and Soap request are different?
As far as my understanding and from ur inputs u need only one mapping. From Webservice response to RFC request.
raj.
Raj,
As for your question on what is being used for SOAP request:
1)File - Message type - FILE_REQUEST_MT
V
2) This is Received in the BPM Receive step , and then, onto Synchronous Send Step.
V
3){ Synchronous send Step in BPMhas output Message - FiLe_request_MT and
here is my question
Can the input message be
RFC_Request
V ^
SOAP }
V
4) Send Step which has RFC_REQUEST
I have a message mapping and Interface mapping for
the step to Map :
File_Request -> SOAP_request
&
SOAP_Response ->RFC_REquest
Hope this helps in understanding my question.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
I got the flow. Could you please confirm whether u've created the objects as I mentioned below.
Interface Objects
Object 1: File_Request_Abs
Object 2: Soap_Response_Abs
Object 3:Soap_Abs_Synch
Output Message:File_Request_Abs
Input Message:Soap_Response_Abs
Object 4:Rfc_Request_Abs
Mapping Objects
Soap_Response_to_RFC_Request
Source: Object2
Target: Object4
BPM Container Elements
recv_container----
Object1
Soap_response_container-------Object2
RFC_request_container----
Object4
BPM Flow
Receive---->Send Synch-->Transformation----->Send Asynch
Receive -
> recv_container
Send Synch -
> recv_container(Request Message), Soap_response_container(Response Message)
Transformation -
> Source(Soap_response_container), Target(RFC_request_container)
Send Asynch -
> RFC_request_container
I hope the above design helps a bit!!
raj.
Hello,
As far as my understanding u don't need any bridge.It's very simple scenario. I have couple of question, you said that u r triggering ur BPM with dummy file, it's fine. While calling the SOAP request which message are u using? Does the file contains the message for SOAP request?
raj.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
89 | |
10 | |
10 | |
9 | |
6 | |
6 | |
6 | |
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.