cancel
Showing results for 
Search instead for 
Did you mean: 

BPM Problem

Former Member
0 Kudos

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

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

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 -

Former Member
0 Kudos

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

former_member605561
Participant
0 Kudos

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

bhavesh_kantilal
Active Contributor
0 Kudos

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

Former Member
0 Kudos

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

bhavesh_kantilal
Active Contributor
0 Kudos

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

Former Member
0 Kudos

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

bhavesh_kantilal
Active Contributor
0 Kudos

Steve,

This SEND step ( for insertion ) has to be populated with data right. Do a mapping in the BPM to populate the data for the SEND ( inserting data )step and then use the SEND step.

Regards,

Bhavesh

Former Member
0 Kudos

Bhavesh,

1)What did you mean by

<i>SEND step ( for insertion ) has to be populated with data <b>right</b></i>

2)Send step can't reuse the content of original message received by the Receive step? What if I really need to reuse it?

Regards,

Steve

Former Member
0 Kudos

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

Former Member
0 Kudos

Hi Mario,

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, not to group them.

Regards,

Steve