on 11-21-2007 11:37 AM
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.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
<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.
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
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.
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
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.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
User | Count |
---|---|
86 | |
10 | |
10 | |
9 | |
7 | |
7 | |
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.