on 09-12-2006 7:29 AM
Hello all,
I need to make the following scenario to work:
<b>1)Receive a XML request via HTTP</b>
<i>IR/ID</i>
-Out/Async MI (HTTP Adapter)
-Abs/Async MI (BPM)
-no interface and message mapping
<i>IP</i>
-Receive step
<b>2)Pull a XML file from a local folder</b>
<i>IR/ID</i>
-Out/Async MI (FILE Adapter)
-Abs/Async MI (BPM)
-interface and message mapping
<i>IP</i>
-Receive step
<b>3)Compare the <ID> tag in both messages</b>
<i>IP</i>
-Switch step
<u>If they match</u>
<b>4a)Insert the ID of XML request as a record into a Oracle server</b>
<i>IR/ID</i>
-Abs/Async MI (BPM)
-In/Async MI (JDBC Adapter)
-interface and message mapping
<i>IP</i>
-Branch1, Send step
<u>If they don't match</u>
<b>4b)Throw an alert</b>
<i>IP</i>
-BranchOtherwise , Control step
When I had the IP checked, it says <b>"Step does not use any correlations"</b>. Please tell me how I can solve this problem and point out any other mis-designed parts. Thank you.
Regards,
Steve
Steve
You need to select a parameter in order to correlate your message. I guess in your case it should be ID.
In order to create correlation, go to following link
http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
& search for word " Correlating Messages "
Rgds
- lalit -
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Lalit,
Thanks for the pointer. I've looked into the SAP material and found out that correlation is mainly used for grouping messages. Why do I have to set up correlations here? My scenario is to compare 2 messages received from HTTP request and File adapter, not to group them.
Also, anything wrong in my configurations?
Regards,
Steve
Hi Steve,
If a BPM process receives more than one message than you have to use the correlation. The correlation here is used to determine whether the message belongs to the existing BPM process or whether a new process is to be createad.
As you are comparing the ID in your message I believe you can use it for correlation.I assume that ID in both files must have same value.
Best regards
Suneel
Message was edited by: Suneel
Steve,
As pointed by Suneel, Corelation is a must in your scenario as you have multople Recive Steps.
Now, as your requirement is to check for the same ID's and then Insert.
Use the 2 recive steps in a fork. Use the ID as the correlation . If they match only BPM will move out of the fork. Have a send step after the fork to insert into the DB.
In your case, as you need to trigger alerts if ID do not match, use a Deadline Monritoing Branch with TIME ove your Fork. So, if the ID's of the 2 messages do not match in a time interval, then you can send the Alert as needed.
Regards,
Bhavesh
Bhavesh,
I've done the step below.
<i>Use the 2 recive steps in a fork. Use the ID as the correlation . If they match only BPM will move out of the fork. Have a send step after the fork to insert into the DB.</i>
But about the Deadline Monitoring Branch with TIME, how do you set that up? I don't see them in the process editor.
Also, I've just tested the HTTP entry, and I got a error message says "Message is not used by any processes". What do I do with it?
Regards,
Steve
Steve,
For deadline Monitoring, Use a BLOCK and the FORK step inside the block. To add the deadline branch , right click on the BLOCK and add the DEALINE BRACNH and add the time for which you want to wait.
<i>Also, I've just tested the HTTP entry, and I got a error message says "Message is not used by any processes". What do I do with it?</i>
Just check if your have created the receiver determaintion for your HTTP message. Think there is some mistake in the reciver determination.
Regards,
Bhavesh
Bhavesh,
I don't have the access to system now. I'll follow your suggestion as below tomorrow:
<i>For deadline Monitoring, Use a BLOCK and the FORK step inside the block. To add the deadline branch , right click on the BLOCK and add the DEALINE BRACNH and add the time for which you want to wait.</i>
However, before I left, I found out the flow stopped after exiting the FORK, right before performing the DB insert (Send Step;Abs/Async to IN/Async;same message as the message sent via HTTP). The error message that I found in SXMB_MONI was:
<b>An empty container element was specified when
sending</b>
What is the problem?
Regards,
Steve
Hi steve,
good thing to do is to have a look in IR:
Software Component -> SAPBASIS
Here are good examples.
The flightseatavailability shows how to use correlations.
Regards Mario
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
85 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.