[BPM] Multiple receiving steps
Hey,
found this demo for multiple receive steps.
http://help.sap.com/saphelp_nw04s/helpdata/en/cb/15163ff8519a06e10000000a114084/content.htm
I tried to create a BPM with multiple receive steps, where one step could start
the process. The example needs to receive ALL steps before it starts.
How to define a BPM where ANY receive step can start the BPM?
Would like to receive different Message-Types and transform them to
a generic structure.
thanks
chris
Hi,
Use standard pattern multiple Trigger which you can find under BASIS software component under patterns namespace.
Let me brief.
First step would be fork with necessary branches(depends on how many systems are participating in requirement). Under each branch insert receive step and for each receive step you it as a start process if required.
thanks
Gujjeti
Similar Messages
-
Problem with BPM: no receive step found for message ....
Hello,
I have the follwing problem with a BPM ina PI 7.3 system.
I created a BPM for the following 'process':
We will receive an IDOC from SAP ECC, then call a synchronous webservice and finally send the result back to ECC.
I created my BPM.
Now when I send the IDOC, the interface is triggered but it gets stuck in the queue with message 'No receive step found for message ...'. I get this message when I go to Tx SMQ2 and try to simulate the message
I have already refreshed the CPA cache without result however.
in SXI_CACHE I can find my IP* and the status = '0' ( So i guess this is OK )
I do not use correlations in my BPM.
In my configuration I can find my sender agreement and interface determination towards the service (abstract) which is defined in the receive step of the BPM.
Does anybody have any ideas what can be wrong ?
Thanks,
Erwin
Edited by: Erwin Van Lysebetten on Oct 27, 2011 10:37 AMHi Erwin, delete Integration Process in the Directory Integration and import it again.
-
How to put another Receive step in middle of BPM
Hi Experts,
i built a BPM in PI 7.0, in this i used a Receive step to start the BPM. in the subsequent steps this message has sent to the extrnal business sytem through the Send step. there it processes. then after some time this business system will send another message to the PI ( same BPM). so that i put a Receive step after the Send step and followed by remaining BPM steps for further processing.(My intention is this Receive step should receive the responce messageg from the same Business system). i did all the configuration steps.
but while execution the following error occured.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Receiver Identification
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
<SAP:Category>XIServer</SAP:Category>
<SAP:Code area="RCVR_DETERMINATION">NO_RECEIVER_CASE_ASYNC</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack>No receiver could be determined</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
though i configured the proper recever detrmination.
can anybody tell me, how to resolve this?
Thanks in advance.
Kumarhi Udo,
i am explaining about message flow:
first the message comes from the http client to PI,then go to BPM as Receive step, then a Trasfermation step. then a Send step to send this message to the SAP R/3 ECC 6.0 (Async Receiver proxy). there this message will be processed (say some Application). after some time this Application sends a processed message back to the PI (BPM) as sender proxy message (Async). To receive this message i used a Receive step after the Send step. and also the remaining BPM steps are continued....
here the problem is, a Business system BS_HE6 is defined in the SLD to the corresponding ECC 6.0.
but while execution, (SXMB_MONI)
message from http client to the PI (BPM) is success full.
message send to the ECC 6.0 is successful, (receiver proxy)
message from the ECC 6.0 to PI (BPM) (Sender proxy) is showing error as follows.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Receiver Identification
-->
- <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SAP="http://sap.com/xi/XI/Message/30">
- <SOAP:Header>
- <SAP:Main xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" versionMajor="003" versionMinor="000" SOAP:mustUnderstand="1" wsu:Id="wsuid-main-92ABE13F5C59AB7FE10000000A1551F7">
<SAP:MessageClass>ApplicationMessage</SAP:MessageClass>
<SAP:ProcessingMode>asynchronous</SAP:ProcessingMode>
<SAP:MessageId>88B06F57-9673-DB45-9B71-BE954EC23A3A</SAP:MessageId>
<SAP:TimeSent>2009-01-21T12:27:17Z</SAP:TimeSent>
- <SAP:Sender>
<SAP:Service>BSHE6_LS</SAP:Service>
<SAP:Interface namespace="urn://LPOC">wf_resp_mi</SAP:Interface>
</SAP:Sender>
<SAP:Interface namespace="urn://LPOC">wf_resp_mi</SAP:Interface>
</SAP:Main>
- <SAP:ReliableMessaging xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:QualityOfService>ExactlyOnce</SAP:QualityOfService>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Receiver Identification
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
<SAP:Category>XIServer</SAP:Category>
<SAP:Code area="RCVR_DETERMINATION">NO_RECEIVER_CASE_ASYNC</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack>No receiver could be determined</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
if you observe above, you can find "<SAP:Sender>
<SAP:Service>BSHE6_LS</SAP:Service> ", but the actual business system is BS_HE6.
i cant configure receiver determination with BSHE6_LS, because there is no Business Sytem configured as such in SLD.
my question is , can we change the Business service name in the ECC 6.0 sytem from BSHE6_LS to BS_HE6? (because this message is comming from the ECC 6.0 as Proxy message)
Thanks,
kumar -
In BPM sync/async Step , can you have different message schema?
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 insightRaj,
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!!! -
Is it possible to have multiple recive step in a <b>switch,block,loop</b> with all starting the process,??
I know its possible for a fork.since in a fork all the brances are independent of each other and..if there are 3 recieve steps for eg...in 3 brances. we cant say..which will first receive a message.So all the 3 receive step can start the process.
But i am not clear in case of SWITCH, BLOCK and LOOP.
Can anyone explain me please.Sam,
In a block/loop u can have the multiple receive steps arranged one after other.
The first message that arrives is assigned to the first receive step, the second message is assigned to the second receive step, and so on. Therefore, the first message is not assigned to all receive steps that are waiting for a message from the message interface.
Also have a look at the help document.
http://help.sap.com/saphelp_srm40/helpdata/fr/75/cc283f2bbad036e10000000a114084/content.htm
Regards
San -
Hy all,
I have a strage Problem with a BPM Definition into a receive step. I receive from SAP System IDoc and (per dynamic receive determination) I receive it into BPM.
But the Block that contains the receive Step can't be executed. I get following error message from XI :
Error when executing work item '000000177354'
Error when starting work item 000000177354
Work item 000000177345: Object FLOWITEM method EXECUTE cannot be executed
Error when executing work item '000000177354'
Runtime handle of object type could not be created
Exception 'ex_EDIFactOrder_received' caught and transferred to the exception handler
Error when executing work item '000000177354'
Could anyone help me please.
Thank's a lot.
MatI have following scenario :
Block 1
1) Infinite Loop with receive step
2) exception creation (2 minutes) (parallel to 1))
3) exception handler (parallel to 1))
Block 2
1) Mapping steps + send Steps + container Operation steps (set of flag)
2) Exception handler (paralle to 1))
Block 3
1) receive steps (where I get the error message)
I hope it's OK
Cheers
Mat -
Unable to see correlation in receiver step of BPM.
Hi,
I am designing a BPM in XI. In a receiver step I need a correlation. I am able to select a correlation from the drop down of the field "Activate Correlations" but when it is activated, the correlation is not displayed.
I am using SAP XI 7.4 and Service Pack 9.
I need your help. Please reply.
Regards,
AshishHi Ashish,
... seems to be an error of the GUI.
Delete your step & correlation. Design correlation. Save & activate. Than use your correlation. Save & activate.
Regards Mario
Edited by: Mario Müller on Dec 28, 2007 5:10 AM -
BPM debugging correlation in receive steps
HI Friends,
In my collect messages BPM scenario pattern, correlation is not working, its appending the all the messages inspite of correlation field.
I want to debug the correlation in receive steps or any trace file if generated after processing that gives the full flow that will be great...
Regards
VenkateshHi Venkatesh,
just check your correlation condition again.....BPM will be collecting all those messages satisfying your correlation condition......
may be you have to modify your correlation condition to get your desired output...............................
if your correlation condition is correct and BPM is collecting those msgs which are not satisfying this correlation condition, then just edit your BPM description, save it and again activate it..............run SXI_CACHE to do a complete cache refresh........
re-run your scenario.........then i think your this correlation error should be resolved.
Regards,
Rajeev Gupta -
Issue with Receive step of BPM
Hi all,
I have an BPM scenario in which I send a file to the target system and then receive an acknowledgement from the system. I have used correlation in the BPM for the send and the next receive step .
When a wrong acknowledgement is placed , the message goes to the queue with the error message "Active correlation Not Found".
But when an right acknowledgement is placed then also the message goes to the queue with the message "Error in delivery of message to receive step of BPM ".
The acknowledgement is received and then interface mapping is used which sends the Filename to the Integration Process which is used for the correlation.
Please give your suggestions .
Regards,
Srivatsan MWhen a wrong acknowledgement is placed , the message goes to the queue with the error
message "Active correlation Not Found".
when there is wrong ack then there seems to be no value coming in the field which you have used for correlation....or it seems that the field itself is not coming in the wrong ack message
But when an right acknowledgement is placed then also the message goes to the queue with the
message "Error in delivery of message to receive step of BPM ".
Now in right correlation the value that is coming in the correlation field is not matching with the field for correlation of the send step...
So the reason for both the errors is wrong correlation configuration. -
Hi folks,
I want to create a BPM which can be used for 2 different IDOCS - they are both being mapped towards the same XML flavour and then send out ...
I created a "ForEach" step with 2 branches , put necessary branches to "1" and defined a receive step in each branch representing the receival of a particular IDOC.
This all works but for some reason the receive steps demands me to "Use a correlation" and to "Activate a correlation" ... Both options have a red question mark and there is no way I can get ridd of those question marks ...
I am not interested at all in correlation ... I just want to kick off the bpm for any of the 2 idocs and map them accordingly ...
I was thinking about creating a correlation on SAP IDOC number just to have it its way but I am not sure whether it is intended like this ...
Regards,
Steven
Message was edited by: Steven De Saegera correlation is required. try to give the correlation based on a unique field in the IDoc.
Ref checklist - http://help.sap.com/saphelp_nw04/helpdata/en/6d/94364296f1b26be10000000a155106/content.htm
More on correlation - /people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi -
I have an input from a File1 and this will be received in the BPM and then the input will be sent Synchronously to get a Response Back. Only after I receive the First HTTP response, I need to Receive another File say File2 in BPM.
How to achieve the above scenarioHi,
Basically add a second Receive step to the BPM after the synchronous send step. However, you must create a correlation so the engine knows exactly which File2 is to be routed to a particular process instance. You activate the correlation in the first Receive step (for File1) and use the correlation in the second Receive step.
Regards,
Thorsten -
Integrtion Scenario using BPM with two sender and multiple receiver
integrtion Scenario using BPM with two sender and multiple receiver
How many Application Components are required?Hi Vinod,
1) In integration repository you can have one or many software components it depends on your landscape orchestration
2) In integration direcory you need at least one service for bpm and one or many for each system in your bpm
also each connection between systems and bpm must have receiver determination and so on.
Advice: Please treat BPM as a separate system.
best,
Wojciech -
BPM: 2 synchronou receive step
Hi everyone,
Hi have to design a BPM which has 2 synchonous receive steps. The first I open a asynch/synch bridge. In the second one I use correlation but the receive says asynchronous receive step. This has to be synchronous. I have to sent back a message to the request.
How can I achieve this?
Thanks.Hi have to design a BPM which has 2 synchonous receive steps. The first I open a asynch/synch bridge. In the second one
I use correlation but the receive says asynchronous receive step. This has to be synchronous.
The Sync-Async communication means that there is a source system which operates in SYNC mode and there is one target system which cannot operate in SYNC mode....now in your scenario I cannot find a System which works in Async mode....all your communication is SYNC....so the SYNC-Async bridge concept does not apply here.
We cannot change the process.
Bad.....one workaround would be change the mode of first Receive step to Async....i.e. receive only the request from the sender....then in the last Send step (where you now intend to close the bridge) send the response asynchronously.
Keep updated if the S/A bridge works without Async communication.
Regards,
Abhishek. -
Mapping in BPM: how to merge results of receive steps into send steps
Hello,
we need the following BP:
1. async. Receive Step: receive an IDoc
2. sync. Send Step: WebService request using the content of an IDoc field.
The WebService returns some data we need for the destination structure.
3. Transformation???
4. async. Send Step: we have to <b>merge</b> and map the Idoc fields and the
resulting fields of the WebService into the destination structure.
What are the basic steps and objects therefore?
IDoc-message X --> |
WebService-message Y --> | --> Z dest-message
Out problem is, how an where to get access to both Source Messages to merge them for the destiniation message?
Regards
Gunnar<i>1. async. Receive Step: receive an IDoc
2. sync. Send Step: WebService request using the content of an IDoc field.
The WebService returns some data we need for the destination structure.
3. Transformation???
4. async. Send Step: we have to merge and map the Idoc fields and the
resulting fields of the WebService into the destination structure.</i>
>>>>
1. async. Receive Step: receive an IDoc - OK
2. sync. Send Step: WebService request using the content of an IDoc field.
The WebService returns some data we need for the destination structure. - OK
3. Transformation - this transformation step will have 2:1 mapping. source would be IDOC and response of WS mapped to result.
4. async. Send Step: Send the result -
Hi,
I came across this question in one of the site. Can you please tell me which option is correct?
Question: A message can be received by...
1) Only a receive Step
2) By receive, fork or loop step.
3) By receive and block step.
4) By send, block and fork.
Regards,
Vivek LR> I came across this question in one of the site. Can you please tell me which option is correct?
>
> Question: A message can be received by...
>
> 1) Only a receive Step
> 2) By receive, fork or loop step.
> 3) By receive and block step.
> 4) By send, block and fork.
>
It can be only reciver step to receive the message, message can also be received by fork or loop but receive step inside the fork or loop must be the first step.
Maybe you are looking for
-
The battery compartment door on my Magic Mouse appears to be jammed shut and will not open, the device is only 5 months old and this is the first time I have needed to open it to change the batteries. Are there any suggestions?
-
Hi all, I am getting this error from adclone.pl when trying to clone a database. Total System Global Area 444149652 bytes Fixed Size 73620 bytes Variable Size 361099264 bytes Database Buffers 81920000 bytes R
-
Error during repeat run depreciation via tcode AFAB
hi, I have removed year-end closing for assets to year 1999 via tcode OAAQ . However, once i want to run repeat depreciation via tcode AFAB, I received error messages as follows:- 1. Field Cost Ctr is a required field for G/L account 4300000 2. Accou
-
I hace a mac os x and doesnt let me install itunes because there's a message that tells me that i need 10.5 or more please help...and tell me what i need to buy or download so i can have itunes asap thanks
-
Draw Line With Arrow between containers in flex
I need to connect multiple containers by drawing arrow . can any one provide me the idea how to do? Thanks in Advance, senthil [email protected]