cancel
Showing results for 
Search instead for 
Did you mean: 

BPM starting question

AntonioSanz
Active Participant
0 Kudos

Hi all,

I have developed a BPM which basically reads 2 files (INVOICES and BILLING) makes some transformation and send it to a SAP R/3 system.

Both files have a data field which it is used to correlate them.

So when sender system send INVOICES file or BILLING file, SAP XI read it, begin the BPM which waits for the other to come. When the other file come the BPM continue in their next steps.

But we have experienced the next situation:

- Sender systems send 2 INVOICES files (duplicate files) and some time later send a BILLING file (only one).

The process:

1.- SAP XI reads the first INVOICE file and starts a BPM process.

2.- SAP XI reads the other INVOICE file and starts another BPM process.

3.- SAP XI reads the BILLING file and enroute it to the 2 BPM process

Is there any configuration in my BPM or configuration scenario which doesn`t allow this situation. I only want one BPM for one pair of files.

Thanks.

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

HI,

can you try like this:

use 1 BPM , apply corelation for 3 (invoice1,invoice2 ,billing)in corelation editor.

may this will suit your scenario.

hope this will help

regards

HONEY

AntonioSanz
Active Participant
0 Kudos

<p>Thanks to all for your comments.

<p>I think I'm not explaining quite well what actually happens. So I try again.

<p>I have a BPM Collect pattern for 2 files: INVOICE and BILLING. These interfaces are correlated by a DATE field.

<p>When the sender system send <b>one</b> INVOICE file (invoice.txt) and <b>one</b> BILLING file (billing.txt) with the same value for DATE field, the BPM collect them and process them. (There is only one BPM instance on my monitoring).

<p>But when the sender sends <b>two</b> INVOICE file (invoice.txt and invoice1.txt) with the same DATE field value at the same time, in monitoring I have 2 BPM instances waiting for the billing file.

<p>If after a while the sender sends <b>one</b> BILLING file (billing.txt) with the same DATE field it goes to the 2 BPM instances <b>but I only want to go to one of them<b>.

<p>Is there any posibility for doing that?

<p>Regards.

<p>Antonio.

udo_martens
Active Contributor
0 Kudos

Hi Antonio,

as i told before delete the correlation. Correlation can only work with unique number which determine that 2 msgs belongs together.

Put 2 receive steps in sequence (without correlation) instead.

I dont understand business concept of your process. How can you be shure that the right messages come together? You wrote: "..but i only want to go to one of themf". You dont care which of them?

Regards,

Udo

AntonioSanz
Active Participant
0 Kudos

Thanks for your comments Udo.

I need the correlation because there are days in which I receive several invoices and billing files (specially the first days of the month due to the bussiness process in sender system).

But the source of the problem is on the sender system. Some times the generation of the files is done manually, and there are situations in which operator makes mistakes and generate multiple files for one day.

The onwer of receiver systems wants that SAP PI can control this kind of situations. One situation is what I have described before: the BPM collecting pattern should work with two files.

The normal behaviour is:

INVOICE1 --> BPM (instance #1)

BILLING1 --> BPM (instance #1)

INVOICE2 --> BPM (instance #2)

BILLING2 --> BPM (instance #2)

INVOICE3 --> BPM (instance #3)

BILLING3 --> BPM (instance #3)

INVOICE4 --> BPM (instance #4)

BILLING4 --> BPM (instance #4)

......

But my situation is:

INVOICE1 --> BPM (instance #1)

INVOICE1 --> BPM (instance #2)

BILLING1 --> BPM (instance #1) BPM (instance #2)

Regards.

udo_martens
Active Contributor
0 Kudos

Hi Antonio,

yes, you should be able to correlate, but as i understood you dont have a unique identifier. PI is software, no miracle. What do you expect? If you dont have criteria for combining msgs, how should PI know which to merge together?

Your error is normal behavior in view of PI. First design your process by requirements and possibilities, then implement it.

Regards,

Udo

Former Member
0 Kudos

Hi Udo,

Antonio does not want a miracle, Antonio wants to be receiving files as consumable resources, ie pairs invoice / billing so that in the case that says there would be a single BPM, and a invoice was left waiting for the corresponding billing.

The sequential process is not possible, the process can be: billing - invoice.

Best Regards.

prabhu_s2
Active Contributor
0 Kudos

correct my understanding of ur issue:

invoice1 sent by the sender system and in wait status. another invoice2 sent by the sender and again in wait status. when the sender sends the billing file the second invoce2 and billing gets processed.

is this ur problem stmt.....can u brief on the issue? maybe some issue with the correlation

AntonioSanz
Active Participant
0 Kudos

Thanks. Prabhu:

The BPM:

........----- Receive Invoice (corr. date) ---

Fork...................................................End Fork

........----- Receive Billing (corr. date) -


The secuence of files are:

The input to SAP XI : Invoice (1) --> Invoice (2) --> Billing (1)

Correlation: (20071111) (20071111) (20071111)

SAP XI: BPM (1) Starts&wait --> BPM (2) Starts&wait --> BPM (1) finish, BPM (2) finish

I excepted that BPM (2) will wait forever (or until the deadline time). But the Billing data goes to the 2 BPMs.

Hope this help you.

prabhu_s2
Active Contributor
0 Kudos

u have a invoice1 with correlation id 20071111 and again another invoice instance with the same correlation id 20071111. In this case the correlation condition are satisfied and hence u can see the status completed. But when billing1 comes in with the correlation id 20071111 it be in wait state until it recevies a message satisyfing the correlation condition.

maybe what u can do is u can have a collect pattern inserted to colleect the messages and then process

Message was edited by:

Prabhu S

udo_martens
Active Contributor
0 Kudos

Hi Antonio,

i m not shure i understood you right, but what you ask for is standard. If you correlate the file by a individual number, the BILLING file will be enrouted just to the corresponding process. Of coz you need at least one correlation attribute in both files which determines the membership.

Regards, Udo

AntonioSanz
Active Participant
0 Kudos

Thanks Udo.

The "photo" is:

- I have two instances of BPM started by 2 identical INVOICE files (data field Date is used for correlation. Value 20071121).

- Then comes only one BILLING file (data field Date is used for correlation. Value 20071121)

- SAP XI routes to the BILLING to the 2 BPMs previusly started.

But I only want to is only to route to one BPM, because if i don't I have duplicate the information when 2 BPMs finish.

Regards.

udo_martens
Active Contributor
0 Kudos

Hi Antonio,

the correlation works as it should, so you must change your design. Avoid using a correlation and finish receiving after receiving on BILLING document.

Regards,

Udo