BPM: RFC (SYNC) - BPM- HTTP client
All XI Experts
My scenario is RFC synchonous to XI (BPM) to HTTP Client.
I correctly configured all my messages interfaces and mapping programs.
I have defined the following:-
Sync Abstract message interface for the RFC structure
Async Abstract MI for RFC sent data
Async Abstrcat MI for the RFC response data.
At this stage I have NOT set up the full scenario. My BPM consists of the following steps:
Receive- Opens an Sync/Async brige
Send - Closes the S/A brigde
I have also set up all the sender agreements and RFC destinations, so there is no issues with that side of things.
When I execute the RFC (se37) and stipulate the RFC Destination, the message is logged in XI but has the following error:
<SAP:Category>XIAdapter</SAP:Category>
<SAP:Code Area="BPE_ADAPTER">SYNCHONOUS_MESSAGE</SAP:Code>
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack>This process does not support the specified synchronous interface or does not support any synchronous messages The exception occurred (program: SAPMHTTP, include , line: 0)</SAP:Stack>
Has anyone come across this issue?
Interestingly, when I execute the RFC in the background, then XI processes it fine?
Is this how XI works? Is RFC Sync communication with BMP not supported?
Any help would be greatly appreciated.
Yackeen
Hi Yackeen,
Have you resolved this problem? I have working on the similar design. Need your input on this one.
My scenario is RFC>bpm>HTTP (asynch)
I have one Receive and one send step with one block, deadline branch and a control step in dead line branch.
Thanks
Kalyan
Similar Messages
-
Call sync BPM from Async BPM - issue
Hi,
Outline: I'm trying to call a synchronous BPM from an asynchronous BPM in a PI 7.0 SP 14 system.
When doing so i get the following error: Object CL_SWF_XI_MSG_BROKER method SEND_SYNCHRON cannot be executed.
Now this is an oldie when searching the forums for this error message. I do however fail to see a solution to the problem.
Note that the following notes (referred to in similar posts)
- 710445
- 718734
- 830803
are implemented since theese refer to older versions of PI.
My scenario is very simple at present since i've startet from scratch again after getting the error. So what i do is:
1) send async message to async BPM
2) async BPM receives request
3) async bpm transform request til sync_request.
4) async BPM calls synchronous BPM
5) sync BPM receives request and opens a async/sync bridge
6) sync BPM maps request to response
7) sync BPM sends response and closes async/sync bridge
8) async BPM reveices sync_response
9) async BPM sends sync_response to some application
Now step 8 i never succesfully executed. Instead the error earlier described is triggered.
For simplicity i use 1 and only 1 message type in all message interfaces. I have mapping between my synchronous interfaces outside of BPM.
The synchronus BPM is executed just fine. The only issue is getting the reponse back to the asynchronous BPM.
I am familiar with the following similar posts:
- Object CL_SWF_XI_MSG_BROKER method SEND_SYNCHRON cannot be executed
- Problem in posting the data in the syncronous mode
but find them to be of no use.
Hope someone can help.
Best Regards,
DanielDaniel Hans Engsig-Karup wrote:First you do not need any bridges if it is asyn/sync kind of a scenario in the second BPM. You need a bridge when the bpm has to wait with a sync call coming in and response in an async call. Essentially your BPMs (I donno why you need 2.. but let us go with 2)
>
>
> 1) send async message to async BPM
> 2) async BPM receives request
> 3) async bpm transform request til sync_request.
> 4) async BPM calls synchronous BPM
> 5) sync BPM receives request
(Remove this if you are calling a sync system here) and opens a async/sync bridge
> 6) sync BPM maps request to response
> 7) sync BPM sends response
Remove this and closes async/sync bridge
> 8) async BPM reveices sync_response
> 9) async BPM sends sync_response to some application
>
VJ -
Need help with scenario BPM Http-RFC Sync/async bridge
hi all!
i've got the following scenario: HTTP-BPM(XI)-RFC synchronous both of them. for that, i'm using S/A bridge in the BPM, but i'm getting the error 'Timeout condition of pipeline reached'. i think the problem is that the process gets lost in the sync/async communication, because in the trace level shows CL_XMS_PLSRV_CALL_BPE-ENTER_PLSRV" and after that every message are 'wait time starting'.
don't know the reason of the error. Maybe I missed something to configure?
the BPM is like this:
Receiver(Open Sync/Async bridge) -> Transformation (mapping from http request to RFC request) -> SyncSend (RFC request and response) -> Transformation (mapping from rfc response to http response) -> Send (Close S/A Bridge)
the IR is configured like this:
Message Types u2013 External Definitions u2013 Imported Objects
mt_cxml_request -> contains xsd of xcml request template.
mt_cxml_response -> contains xsd of xcml response template.
zintegracion_pedidos -> imported RFC from R/3
zintegracion_pedidos.response -> imported RFC from R/3
Message Interfaces
mi_cxml_request_async_abs
mi_cxml_request_sync_abs
mi_cxml_request_sync_out
mi_xcml_response_async
mi_rfc_request_asyn_abs
mi_rfc_request_sync_abs
mi_rfc_request_sync_in
mi_rfc_response_async_abs
Message Mappings
mm_cxml_request_to_rfc_request -> mapping from http request (cxml) to rfc request.
mm_rfc_response_to_cxml_response -> mapping from rfc response to http response (cxml).
Interface Mappings
im_cxml_request_async_abs_to_rfc_request_async_abs
im_rfc_response_async_abs_to_cxml_response_async_abs
and the ID is configured like this:
Business system DES -> created business system for RFC adapter with interface mi_rfc_request_sync_in as receiver. Comunication channel u2018RFC Receiveru2019
Businnes service VW -> created businnes service for HTTP adapter with interface mi_cxml_request_sync_out as sender. Comunication channel u2018HTTP Senderu2019
Receiver Determination
two receiver determinations. One for BPM and the other one for RFC(R/3):
|VW| mi_cxml_request_sync_out:
|BPM_PO| mi_rfc_request_sync_abs:
Interface Determination
two interface determinations:
|VW| mi_cxml_request_sync_out | | BPM_PO:
|BPM_PO| mi_rfc_request_sync_abs | * | * :
Sender Agreement
VW
mi_cxml_request_sync_out
Receiver Agreement
|BPM_PO| |DES| mi_rfc_request_sync_inhi all,
i've removed the transformations from the BPM, and i've created:
in IR:
- interface mapping: im_xcml_request_to_rfc_request_sync_abs
source interface: mi_cxml_request-sync_abs
target interface: mi_rfc_request_sync_abs
in ID:
- receiver determination: |VW| mi_cxml_request_sync_abs
sender service: VW
interface: mi_cxml_request_sync_abs
receiver: DES
interface mapping:im_xcml_request_to_rfc_request_sync_abs
- interface determination: |VW| mi_cxml_erquest_sync_abs ||
sender service: VW
interface: mi_cxml_request_sync_abs
inbound interface: mi_rfc_request_sync_abs
interface mapping: im_xcml_request_to_rfc_request_sync_abs
- receiver agreement: |VW| |DES| mi_rfc_request_sync_abs
sender service: VW
receiver service: DES
receiver interface: mi_rfc_request_sync_abs
not sure these are the steps i had to do for mapping xml to rfc. but the result is the same error as before, the timeout.
i couldn't test with RTW because i'm getting an error 401 unauthorized.
i'd do it without BPM but the issue is that i wanted to add another step that would be to send the response from rfc to mail too once i got this BPM running. i mean, the response from RFC would be sent to http response and mail both.
the only way i can imagine to do it is with BPM but i'm really fed up with it.
thank u very much folks -
Hi Experts,
How to do Sync to Sync BPM scenario without using Sync/Async bridge?
Could you please give the BPM steps for SOAP to JDBC scenario?
Regards
Sara
Edited by: Sara D on Jan 17, 2008 7:59 AMHi,
Check below links for BPM scenarios.
/people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
/people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers
/people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
/people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
/people/michal.krawczyk2/blog/2005/09/04/xi-do-you-realy-enjoy-clicking-and-waiting-while-tracing-bpm-steps
/people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/daea5871-0701-0010-12aa-c3a0c6d54e02
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/e8515171-0701-0010-be98-e37bec4706cc
Regards,
Phani -
I'm trying to implement the scenario in this blog -
http://www.riyaz.net/blog/a-step-by-step-guide-to-bpm-asynch-sync-bridge/technology/sap/170/
It involves a File - RFC - File scenario using BPM .
File Async Receive -> Sync Send to RFC -> Transformation -> File Async Send
I am tryign to replace the sync RFC with a server proxy .
In the blog , 1 Abstract Sync Message Interface is created , but I am not able to see the Abstract interfaces in SPROXY when I go to code the server proxy .
Can anyone throw some light on this? What are the differences in the interface objects when using RFC and Proxy ?
Thanks guys!hi,
You need to create Inbound Service interface with same message types as you had created Abstract Sync Interface, then in Interface determination you need to set, sender interface as Abstract Sync Interface and receiver interface as Inbound Service interface.
Thanks. -
Problem in BPM where Sync Intrf has to send same response to 2 Async intrf
Hi Experts,
I am facing a complicated case.
I have the following scenario:
Input File data -> Validate file data against SAP table using RFC FM -> insert the response of RFC FM into custom table using another RFC call -> Send the same response of RFC validation FM as Email using email adapter.
If you see above, the response of validation FM has to be sent to two receivers.
My BPM setup is like this:
Recv Step -> Send Step for validation RFC FM (Sync) -> Send Step for inserting response of validation RFC FM to custom table using another RFC call(Async) -> Send Step for sending email(Async)
Is my above BPM design correct? the last send step is not able to get the response of validation RFC FM. If I put this email step immediately after Send Step for validation RFC FM (Sync) then I get receiver cannot be determined error even though may email adapter/channel setups are correct. However, my receiver determination has two receievers one for email and another for inserting response of validation RFC FM to custom table using another RFC call(Async). Is here some problem?
Is there some better way to handle this situation.
My problem is that I have to insert response data first and then send email.
please help me!
I will be greateful to you!
Thanks
GopalHi,
How are you getting the Response back from First RFC call ?
Are you mapping this RFC response to some structure ? If not , it is easier way to do.
So your BPM will be
1) Recieve the File message type
2) Send the File Message Sync (Assumption Mapping is done outside the BPM
3) Send the Target Structure (some structure of similar of RFC repsonse )ie. Mapped RFC response structure to SAP System
4) Send to mail system.
So you need to have 4 reciever determinations
1) File to BPM
2) BPM to First RFC
3) BPM to second RFC
4) BPM to Mailing system
To check the error , you can go to SXMB_MONI->PE->Technical Workflow log and check what are steps/containers are correct in the BPM
Hope this helps,
Regards,
Moorthy -
Hello,
I've got another problem and hope someone could give me a hint, because reading some blogs concerning BPM and trying to adapt the things to my problem did not really help me.
The last days I created a sync process that gets information via http adapter, does some mappings and sends a soap message to a receiver, then gets the response and evaluates it. Everything ok...
Then I tried to implement the same with a sync BPM and it drives me mad...
message interfaces I created (status quo):
outbound async "message" that is sent via http adapter
abstract async "message" for integration process
abstract asynch "soap" for integration process
inbound synch "soap" to send via soap adapter
I also built an interface mapping between abstract async "message" and abstract async "soap", but there I could not enter a response mapping, of course.
Maybe I should use an outbound synch "message" and change the message interfaces in the mapping to synch types?
My process contains a receive step (async) that receives the abstract async "message", after that the message is transformed via transformation step to abstract async "soap".
At last there is a send step (sync) to send the soap and get the response.
Leaving the transformation step out and putting the mapping into the interface determination did not work either.
I always have problems with creating sender/receiver agreement and interface determination:
There is one sender and receiver agreement, two sender determinations and also two interface determinations.
What do I have to change?
Thanks a lot for your help,
Julia
Message was edited by:
Julia PoplawskiThis is a standard requirement . This is what you need,
<b>Message Interfaces</b>
1. Outbound Synch ( for HTTP )
2. Abstract Synch ( for HTTP)
3. Inbound Synch ( for SOAP )
4. Abstract Synch (for SOAP)
5. Abstract Asynch ( one each for HTTP request and HTTP response)
6. Abstract Asynch ( one each for SOAP request and SOAP response).
<b>BPM Design</b>
1. Receive --> Mode --> Open Synch Asynch Bridge
2. Transform --> Map HTTP request to SOAP request
3. Send --> Mode --> Synchronous
4. Transform --> SOAP response to HTTP response
5. . Send --> Mode Closes Synch Asynch Bridge.
<b>InterfaceMapping</b>
1. Between Abs HTTP request and Abs Asynch SOAP request
2. Between Asynch Abs SOAP response and Asynch ABs HTTP response
<b>
Receiver Determination</b>
1. Between Outbound Synch HTTP and Abstract Synch HTTP
2. Between Abstract Synch SOAP and Inbound SOAP
Regards
Bhavesh -
Hi, In a IDOC --- XI(BPM)--- SOAP Sync Scenario failrure.
Hi, In an IDOC ->XI(BPM)->SOAP Sync Scenario I observed recently messages are failing in SXMB_MONI with an error as:
com.sap.aii.af.ra.ms.api.DeliveryException: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: System.Web.Services.Protocols.SoapException: Server did not recognize the value of HTTP Header SOAPAction: http://172.16.209.162/esdryrun/ContractData_Push. at System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest() at System.Web.Services.Protocols.SoapServerProtocol.Initialize() at System.Web.Services.Protocols.ServerProtocol.SetContext(Type type, HttpContext context, HttpRequest request, HttpResponse response) at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)
friends, could u plz help on this.
Thanks,
satya.Hello,
This indicates a configuration issue with this SOAP receiver adapter. Please check the on line help for the configuration of the SOAP adapter (the link is below). Please set the indicator in the "SOAP Action" field.
Configuring the Receiver SOAP Adapter
http://help.sap.com/saphelp_nw70/helpdata/EN/29/5bd93f130f9215e10000000a155106/frameset.htm
(Below is the extract from the link)
SOAP Action
Specify the SOAP action. The action specifies the value for the
SOAPAction in Web service messages; set the indicator.
Regards,
Sarah -
Hi,
Please find details of my scenario.
Oracle(VIEW)
Sender JDBC--> PI--
> RFC request
and RFC response I need to update some other table in Oracle using storeprocedure.
and have one more storeprocesdure to update the View so that I will not get duplicate entry.
I am not using UPDATE statement in JDBC sender communication channel, insted of that to update VIEW I am using storeprocedure.
Please let me know how I can achive it with BPM.
Thanks,
BhupeshHi,
1) If the structure send by JDBC is not acceptable by the BPM then you need one Mapping in JDBC ---> BPM flow.
2) If the structure send by JDBC is same as the receiving structure of BPM then no need of Mapping.
3) You will need one Mapping to map JDBC req message to the RFC req message; one mapping program to convert RFC response to the JDBC stored-procedure message....
So your scenario with mappings will be:
JDBC --> Interface Determination (Mapping Optional as per pt.1) -
> BPM
BPM <-> Interface Determination (Request-Response Mapping) <--> RFC
In the above mapping program your ABS MI of BPM should have below MTs
Req Message -
> Original Message Received from JDBC
Response Message ---> Message which needs to be send to the JDBC stored-procedure.
Now your IN SYNC MI at the RFC end should have below MTs
Req Message ---> RFC request message
Resp Message ---> RFC response massage.
Then in the Interface Detremination of BPM <----> RFC flow develop a IM with below mapping programs:
Request Mapping between ---> MessageFromJDBC_to_RFCRequest
ResponseMapping between ---> RFCResponse_to_JDBCStoredProcedure
BPM -
> JDBCStoredProcedure
For this flow there is no need of Mapping program...
using the above mappings programs you can ensure that there is no Transformation step in your BPM...this is to help you in achieving a good performance out of your BPM...
You need a Syns ABS and Sync IN message Interface for BPM <---> RFC communication.
Regards,
Abhishek. -
Rfc(Syn)- BPM- JDBC connection breaks for job in 2Hrs
Hi All,
I have a scenario Rfc(Syn)->BPM->JDBC.
Problem i am facing is after 2Hr of execution of scenario. SAP & XI connectivity breaks down.
But to process full data it requires 5-6Hr connectivity because store procedures taking time(for 500 records).
Is there any solution for above problem?
Can we use ABAp Proxy instead of Rfc(i.e. ABAP Proxy->BPM->JDBC), If possible How?
Thanks & Regardshi,
>>>>I have a scenario Rfc(Syn)->BPM->JDBC.
sync??? you can/should only use sync
if the response time is around 30 seconds
so change the interface to async
>>>>Can we use ABAp Proxy instead of Rfc(i.e. ABAP Proxy->BPM->JDBC), If possible How?
yes but you still have to do it in an async way
Regards,
michal
<a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a> -
Hi,
I have a sync BPM scenario with post a PO using webservices and then respond back to soap client and also a text file to ther receiver server. My problem is there was only a queue for the BPM but there will be many user will use this services to post PO. How can i increase the queue? Is that by select multiple queue? How can i solve this waiting queue problem?
Thanks
Edited by: fcgan on Dec 15, 2008 8:15 AMHi,
As explianed in the link by Prateek ,you can try with the option u201CMultiple Queues (Content-Specific)u201D.
What you mean correlation not work properly?
correlation will not work properly because messages handled by different queues(Multiple Queues) might start new process instances instead of being correlated to a running instance. and hence correlation will be affected.
Thanks! -
Hi all,
I have the same type scenario that is file initiates the bpm that invokes the Webservice.the file data goes into bpm as the input data of the webservice and webservice gives the response and then the web-service response is mapped to
idoc and finally posted to R/3.
The interface sI created:
1.outbound Async -
>for file
2. Abstract async----
>bpm reciever step.
3.Abstract sync----
>bpm sync send step.
4.inbound sync -
>for the webservice to recieve the reqst and to send the response to Abstract sync
5.Abstract async----
>to send the data out of BPM
6.inbound async----
for idoc
created 3 communication channel.
1.file adapter: sender
2.SOAP adapter: Recv
3.IDOC adapter: Recv
created 3 reciever determination
Business process instance in ID
reciever agreement(2)
interface determaination
But getting a problem in BPM.
I think the scenario is logically correct as I have seen previous
SDN suggestions.
But getting the problem in BPM's sync step.and the SOAP rec channel is also inactive.in BPM workflow I can see the recv step is getting file req data but after that in the sync send step
its stuck up.getting error.
Please sir suggest me.Remove the interface you created for Idoc that is inbound async one. use the imported Idoc itself as the interface and also as the message type. Everything else looks good though i did not really evaluate ur ID configuration..
VJ -
Alerts and Error handling in BPM Async/Sync Bridge
Hello All,
I am developing an Async/Sync Bridge in BPM for sending a request from ECC webservice asychronously to a front end application synchronously using BPM Async/Sync Bridge. I get a response from the front end to PI and stays there.
It wont be send back to ECC. What are the possibilities of error handling required in this type of scenario.
Thanks
Deno. I get a response from the front end to PI and stays there.
Then it should mean that the BPM design is faulty...did you have a send step at the end which closes the Async-Sync Bridge by sending the message to original sender?
In SXMB_MONI --> For BPM message processing there will be a link called PE...click it...check the graphic workflow...see till where the message has processed.
error handling
include your Sync send step whithin a Block....this block will have an Exception Branch....in this exception branch you can have your Exception handling logic...like raise alert, cancel process etc.
Regards,
Abhishek. -
Async/Sync BPM passing a ID from the Req msg to Rsp MSg
Hi,
I have a File to SAP Standard proxy scenario. The file go though a Async/Sync BPM which sends a SAP standard message post a document to SAP and SAP sends a success or error response back. I then send this response back as a mail message. The problem is that in the response message there is nothing that ties it to the request message. What I need to do is to pass an ID in the request message to the Response message when the Response message comes back from the SAP Proxy.
This will enable us to determine which file was successful and which not.
Your assistance in this matter will be greatly appreciated.
Regards
Willie Hugo>
Hugo Willie wrote:
> Thank you Shabarish, but the Id I refer to is a uniue id in the request message payload that I would like to pass to response message payload.
there are two ways;
1. Pass the id into sap and let sap pass it back to you
2. do a transformation in your BPM once you get the response from SAP - in this transformation you can add the request message also as source (i.e response from SAP and request message). thus you can map the required value to the final response. In BPM, the data is always persisted so the id will be available always until the BPM execution is ended
my preference will be option 1 -
Hi ,
My requirement is to create a background Job in XI using a set of function modules
BAPI_XMI_LOGON
BAPI_XBP_JOB_OPEN
BAPI_XBP_JOB_ADD_ABAP_STEP
BAPI_XBP_JOB_CLOSE
BAPI_XBP_JOB_START_IMMEDIATELY
BAPI_XMI_LOGOFF
I am calling these function modules in BPM
the problem I am facing when I call RFC in BPM it is creating new session, the second RFC reads the global data that is created by first RFC, since each RFC is creating a new session, for second RFC the data created(Global table updated in the function pool) by first RFC is not available.
Is there any way to solve the problem
With Regards
K.VaradharajanHi Vardharajan,
see your RFCs are related to eachother....by BPM it will be difficult because you will have a RFC conn made for each RFC call - so creating a new session in each call..........
i suggest a workaround for your problem......create a single RFC which will have all your above RFCs......then you can get the data of second RFC in first RFC as all rfcs will then be in a single RFC............call this RFC from BPM.......
Thanks,
Rajeev Gupta
Maybe you are looking for
-
How to get request_ Id in control file?
Hi, I am using "fnd_global.conc_request_id" in control file to get request_Id but always getting request_id value as '-1' while running the SQL *Loader program. Any setup is missing here or is there any other way to get request_id in control file. Th
-
Set up roaming profiles for mac and windows
So I have a a few macs and some windows pcs. I am using windows server 2008 for the server and I was able to bind the macs to the server. I also did set up the romeing profiles on the server. The thing I am having a issue with is I will like it so wh
-
How to call Web URL's as values of an BW InfoObject via BEx Web
Hi experts, I want to call Web URL´s as values of an BW InfoObject via BEx Web. Is there any option to convert the character into a direct URL link to call the Web adress directly? Example: no direct URL (e.g. http://help.sap.com) to call the Web add
-
How to install a parallel Server in a linux cluster
Hi, I'm from O'Porto University and we are trying to install a Oracle 8.1.5 Parallel Server on a Linux Beowulf Cluster. Do any body have some ideas or documentation that can be useful. Thanks.
-
I have a multitude of files that will not delete for any reason whatsoever. When I try and open them the message "can't be opened because the original item can't be found" and the following options occur "Delete Allias", "Fix Allias", and "OK". I've