Correlation BPM

My scenario is different.
1. We are getting XML file from the vendor which would have the PO details in it.
2. XI needs to read that XML and populate the ORDERS05 Idoc and send it to R/3 
    system to create the Sales order.
3. Once Sales order get created in R/3, R/3 sends ORDERS05 Idoc as outbound (With sales order data)
4. Once XI receives ORDERS05 Idoc from R/3 we need to send an XML file to my vendor, which includes some data from ORDERS05 and some of the data from XML file which we already received XML file from the vendor in the first step.
Can any one explain me that how one PBM is fine to implement this scenario and what are steps needs to taken care of..
I know I should use Correlation here but how?
Thanks
M

hi,
if you pass all the data to the SO in the SAP
you don't need to use a BPM with correlation
you can fill the reponse XML with data from order05 only (if possible)
if not you need to use a BPM and create a correlation
(you can use PO reference number for example)
which is very often stored in the SO data
Regards,
michal
<a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

Similar Messages

  • Problem with Correlations/BPM

    Hello,
    we have a problem with our PI 7.1.
    We have created a ccBPM-Process with one correlation. The process is activated and runs quite good.
    The Problem is in the last step (its a receive-step) which uses a correlation.
    If we send the message, with the correlation into the process, we get an error of type (permanent error in inbound processing).
    Now, when we look into the queue-item (which contains the error) (smq2) we can see, that the generated proxy contains elements of an old data-type, which is already deleted.
    Thanks for your help.
    Edited by: Thorsten Gawantka on Oct 2, 2008 3:26 PM

    Hi Thorsten,
    Run RSWF_CRL_MAINTAIN to check active correlations.
    Then, run SWWL leaving blank all the fields (ID, Type, status ....)
    Check if there is any work item stuck. Delete all the items.
    Refresh all the caches.
    Go to SXI_CACHE and check That your Integration Process has the active version that you wish.
    Check return code is 0.
    Carlos

  • Correlations - Usage and performance

    Hello forum users,
    I would like to know until where I can go with BPM using correlation.
    My need is to initiate a BPM with a first message and finish it at the arrival of a second one (different message) using a correlation Identifier. Such a standard case.
    My question is : It is a problem if the second message is able to arrive many weeks after the first. and during this time many and many other instance of the same BPM will be initiate....
    Must I care with performance issue ?
    How ?
    BPM steps in detail :
    Flat file representing a customer sales order is received  => Init BPM
    Syncrhonous BAPI call on R/3. Response give sd document number => Activation of correlation
    BPM send a first (technical) acknowledgement file to original sender.
    Now a second acknowledgement file (more business one) must be send when all the items are ok (It may have been errors in automatic integration...). In order to be in this configuration, user actions may be required and this can take a long time (many days, week)
    When user decide sd documents is full and ok, SAP R/3 send the second message that close the correlation and trigger the end of BPM (generating ack flat file N°2)
    (I imagine the second message as an ORDRSP trigger by an output SAP Control)
    Thanks for your advices.
    JC.

    hi,
    To explain you the correlation in simple terms...take a simple example of BPM with a send step(async request) and receive step(async response). I am sending a PO request using the send step and waiting for a PO response using the recieve step. Assume that i have two instances of this BPM running i.e two PO request's going simultaneously. when i get the response back for these two requests , there will be two recieve steps waiting for the response since there are two instances of BPM running. the response need to be assigned the corresponding requests. This is where correlation comes into picture. I can use PO number as my correlation field. i.e I activate my correlation in the send step and use this correlation in receive step (this is configurable in BPM).
    Example: PO number needs to be part both request and the response message structure.
    BPM instance1:
    send step -> activate correlation -> send message with PO Number1
    Receive step -> use correlation -> receive response message with PO Number 1.
    BPM instance1:
    send step -> activate correlation -> send message with PO Number2
    Receive step -> use correlation -> receive response message with PO Number 2.
    There are many different scenario's whre you can use the correlation..this is one of them...The weblog shows another way of using correlation.
    Also Refer SAP help...
    Correlating Messages
    Use
    You use a correlation to assign messages that belong together to the same process instance. A correlation joins messages that have the same value for one or more XML elements. A correlation is therefore a loose coupling of messages: at design time, it enables you to define which message a receive step must wait for, without knowing the message ID.
    For example, in a process, receivestep_1receives the message purchaseorder, while receivestep_2receives the message salesorder. Receivestep_1creates a correlation that defines that the corresponding sales order must have the same purchase order number. Receivestep_2uses this correlation. This means that an instance of the process processes a purchase order and the corresponding sales order, which has the same purchase order number.
    If it satisfies the relevant correlations, a message can be processed in multiple processes. However, a message is only delivered once per process.
    For more details.. visit the blog by sravya
    /people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
    Thanks,
    Vijaya

  • Correlation or container step in BPM

    we had scenario where 3 files will come in batch in sequence 
    and after validation check in message mapping they had to transfered
    to same RFC in that sequence.
    File -> Xi-> RFC
    Files will come in one shot/batch
    batch by batch..
    Now my concern is..
    With BPM we want to correlate 3 files and then post it to RFC.
    3 files will have some comman field/Filename extension...
    why we want correlate is that:
    - XI should not process any incomplete batch ( like 1-2 files have  come)
    - XI should differentiate between files of Next coming batch..correlation will help or only container variable ..
    Regards
    Ashutosh

    Hi,
    Why do u want to go for BPM is there any specific reason.
    Did the functionality of BPM work only for batch files.
    If it work for single file then make necessary changes in file adapter mention below.
    3 files will come in batch in sequence
    We can understand that they will come in batch (group) within that  batch they are in sequence.
    Correct me if I am wrong.
    If so make necessary changes in sender file adapter.
    Mention file name as .txt or .xml (depending your format)
    Processing mode as Delete.
    Processing sequence By Date.
    Hope this changes is necessary with out using BPM.
    If using BPM is mandatory 
    With BPM we want to correlate 3 files and then post it to RFC.
    3 files will have some comman field/Filename extension...
    if u want to use correlation then three files should have common Field.
    reward points if helpful.
    regards,
    pradeep A.

  • Constant Correlation in BPM

    Hi All,
    I have a requirement to collect 3 different formatted text files (using FCC to XML) which do not relate in any way except that they all need to be collected and need to be sent in a sequence while delivering to the other side.
    Since there were no common fields available to correlate, I have used constant values in the correlation editor and also while activating the correlation in the receive steps (in all 3).
    The BPM works fine only when I send files having each one line. When I send files with multiple lines (the XMLs would have multiple recordset elements) the BPM fails in the Outbound Queue and the BPM does not even get initiated. Surprisingly in the SMQ2 logs, the correlation is being created based on ID field in the received XML (which was not intended). Similar is the case when I send any of the other type of files with multiple lines.
    My assumption is the BPM should disregard the content in the files and should create a constant correlation when the first message arrives. Then it should collect until the block times out and complete the sending steps. Any guess what is going wrong?
    Thanks for your time.
    VJ

    The problem was, one of the developers used some unidentical key fields to define the correaltion long back and they are dangling in the system with error status. After I have deleted the erroneous workflows the BPM works flawless..!!
    Apparently the problem was when ever the file containg the same values the previous correlation was referring to, the BPM was failing.
    VJ

  • Correlation issue in JMS adapter - SYNC/ASYNC scenario without BPM

    Hi,
    I am working on a SYNC/ASYNC scenario with JMS adapter without using BPM. My scenario is SOAP<>PI>JMS. I configured the interface as below:
    1. SOAP Sender channel
    2. JMS Receiver Channel writing to Queue A.
         Module used:      a. RequestOneWayBean
                   b. WaitResponseBean
         Correlation Settings:
                   a. Set JMS Correlation ID to "XI Message ID"
                   b. Store JMS CorrelationID of request (Checked)
                   c. Set JMS Property to "JMS Correlation Id"
                   d. Value = "XI MEssage ID"
    3. JMS Sender channel reading from queue B ( I am exporting the message from queue A and importing into queue B)
         Module used:      a. NotifyResponseBean
         Correlation Settings:
                   a. Set XI MEssage Id to "GUID"
                   b. Set XI Conversation ID to "Stored JMS COrrelationID of Request"
    I can see the cid in the message from queue A. But I observed thhat the header format of the message in Queue A is "MQSTR".
    ISSUE:
    1. While writing the message to queue A, below adapter log details(part b) concerned me:
         a. Message '8747a7c2-2b06-11df-8055-005056a70ed6' successfully processed by channel
         b. Could not create acknowledgements for message '8747a7c2-2b06-11df-8055-005056a70ed6'
    I am not sure why I am receiving the message that "  could not create acknowledgements"
    2. While reading the message from the sender channel,I consistently get the error message as below:
         a. XI message ID corresponding to JMS message with ID 'ID:414d51205341504449442e514d202020c67b954b20005602'
              will be created as a new GUID with value '21bca916-424f-41f6-3347-c71090392b58'
         b. Error while processing message '21bca916-424f-41f6-3347-c71090392b58';  detailed error description:
              com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: found no correlation ID: RecoverableException:
              found no correlation ID at com.sap.aii.adapter.jms.core.channel.filter.SendToModuleProcessorFilter.filter(SendToModuleProcessorFilter.java:105) ...
    Below are the blogs which I have already gone through:
    1. JMS Synchronous Scenario without BPM - Correlation Settings and Transactional JMS Session
    http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/b028f6f6-7da5-2a10-19bd-cf322cf5ae7b
    2. Note: 1086303
    3. Sync / Async Bridge without BPM
    In the note, they mentioned something about header being "MQRFH2". BUt in our case, the header is "MSSTR". Not sure whether it makes any difference.
    Please help.
    Edited by: GP on Mar 9, 2010 4:24 AM

    Hi,
    detailed error description:
    com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: found no correlation ID: RecoverableException:
    found no correlation ID at com.sap.aii.adapter.jms.core.channel.filter.SendToModuleProcessorFilter.filter(SendToModuleProcessorFilter.java:105) ...
    This error would generally arose when there are multiple messages, got stuck in the outbound queue. Try to stop both the sender and receiver JMS comunication channels and clear both the inbound and outbound queues.
    Once all the messages in the queue are cleraed, try posting the message again.
    Regards,
    Swetha.

  • BPM processes,receiving signals (events) & correlation to existing instance

    Hi,
    BPM 11g/SOA Suite 11g (R1 PS2)
    I am wondering whether it is possible to receive signals (EDN events) into a running process instance. The documentation describes how a process can be started by an event. I would like to be able to feed an event (signal) into a running process (just like we do with correlation in BPEL processes). Is that possible - and if so, how?
    Along the same lines, can BPM processes receive messages through externally exposed WebService operations - into correlated process instances? For example: I have started the process to create a new employee in the organization and I want to inform the process instances taking care of this employee that she will start on a later date than originally assumed (or not at all because she has accepted another job). I know the unique employee id for this new hire. How can I configure the BPM process such that this incoming call after the instance has started is fed into a Receive activity in the process instance working on this employee?
    Maybe a similar is question would be: can a message catch event be used without a corresponding message throw event - to catch incoming messages asynchronously and not related to a message sent by the process instance.
    thanks very much for your insights,
    Lucas

    I also tried DB Adapters and it is not working for my scenario. Needed help/pointers from a BPM Guru \.
    As per my business scenario, If there any update in the database (offline approval. not using worklist) then i should complete the running BPM process for approval.
    1. To achieve this, I created a adapter to poll and it is working in polling. What is not working is picking the update in process and mark is closed/complete.
    2. I tried using Catch Event with continuation mode (but it needs throw event to begin with).
    3. I also tried ‘Receive event’, which also needs start event for continuation.
    4. If i use Initiate mode for catch event then it initiate a new process and mark it close and does not do anything with original process (having this catch event). This catch event is still waiting.
    5. If i use “receive” event with Initiate mode then jdeveloper is giving compilation time error saying that some service is not referenced in composite.
    6. I have also tried other options of using “Sub-process” or another process and invoking it but nothing seems to work.
    Any help/pointers? Thanks a lot.

  • BPM Correlation from Dynamic Configuration not being filled

    Hey guys,
    I'm having the following problem with BPM correlation.
    In my correlation definition, I have 2 fields: one which is filled with information from the message payload, and another one which is filled with a context object (which was created with adapter metadata and filled with dynamic configuration, as refered here: /people/michal.krawczyk2/blog/2006/10/09/xi-dynamic-configuration-in-adapter-modules--one-step-further).
    All instances of BPM are with error status. And when I go into the workflow log for these processes, if I check the correlation object, it is like this:
    <?xml version="1.0" encoding="utf-8" ?>
    <CorrelationKey Version="001">
    <Field1 />
    <Field2>123456789</Field2>
    </CorrelationKey>
    Field1 is the one read from context object, and is not being filled (thus I think the error comes from here). Field2 is from payload and is being normally filled.
    Any ideas on this matter?
    Maybe the problem is not from the correlation. If not, what else could be the case? The BPM crashes on the very first step (one more reason to think that the correlation is the issue).
    Thanks in advance,
    Henrique.

    HI,
    In general Correlation , concept, whatever we configured in Correlation editor , i mean in runtime which xml element should filled with which element of which interface ..as you said you have configured the local correlation to block, in block it is the first receive step, while receiving the first message which is relevent to first recieve step , i mean if it receives the one message which is related to first receive step inteface .. the respective element data will be filled in correlation id and it will assign on giud for processing , so while assign the runtime data to correlation element ( imean filling stage) check you said two elements in correlation does the first message contains these two elements ??
    if so ok , no then check , and try to use the IM before calling the IP to fill the payload.
    Regards
    Chilla
    Oh closed!!
    Message was edited by:
            Chandra Sekhar Chilla
    Message was edited by:
            Chandra Sekhar Chilla

  • Implementing Correlation in BPM 11gR1

    Hi,
    Need urgent help for implementing correlation in Oracle BPM 11gR1.
    Scenario: A busines process has various steps.When the request for the Step 1 comes, the BPMN process is instantiated which in-turn calls a sub-process that completes that step. After its completion, need to keep that thread waiting till the request for Step2 is received. When the request for Step 2 is received, need to re-start the waiting thread by corelating these two requests (Based on a unique ID).
    Now the ques are:
    1. Can we implement correlation in BPM 11gR1?
    2. If yes, how?
    3. If no, what is the alternate approach? (Think,can use BPEL corelation sets. Can anyone provide the steps for the same?)
    Any inputs around this would be really very helpful,thanks.

    Hi,
    You can achieve this behavior using BPMN, BPEL and Mediator components within a composite. We use this approach in a recent project. I wrote a new post in my blog explaining how to do that: http://blog.andrade.inf.br/2011/01/implementing-correlation-in-bpm-11gr1.html
    I hope this can help.
    Regards,
    Rafael Andrade

  • Xpath in BPM correlation. Have to pass only few characters of a field in co

    Hi All,
    Header file:
    MDk-111;1728;175;02.09.11;781961.09;0.00;0.00;781961.09;;;;;;;;;0
    MDk-112;8574;175;02.09.11;4462;1112;104098800;104102150;;;;;;;;;2
    MDk-113;1729;175;02.09.11;781962.09;0.00;0.00;781961.09;;;;;;;;;0
    MDk-114;8575;175;02.09.11;781963.09;0.00;0.00;781961.09;;;;;;;;;0
    Detail file:
    MDk-112;8574;175;02.09.11;;DEBIT;;;;;-1112;;0;02.09.11;;;;20555;;;037;
    MDk-112;8574;175;02.09.11;;CREDIT;;;;;104098800;;0;02.09.11;;;;;;;099;
    - I have to merge header and detail records into one target structure..
    - For the records which doesn't consists of detail records should pass only header record. ex: MDk-113
    - To merge the both the files, im using BPM with correlation.
    The correlation which i need to use in BPM is the first record in both the files "MDk-XXX" where XXX is the number which may or may not match in both the files.. So i need to pass only first four characters of the first filed in the correlation ie. "MDK-".
    After file content conversion, the input xml payload will be as below
    <Code>MDK-112</bankCode>
    How can I pass only first four characters of this field ("MDK-") in Xpath in the correlation tab?
    Kindly suggest.
    Thanks
    Deepthi

    Hi Deepthi,
    You can send the substring of the Code value. This is explained in the following WIKI, have a look at this.
    http://wiki.sdn.sap.com/wiki/display/XI/XpathConditioninReceiverDetermination
    regards
    Ramesh

  • 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,
    Ashish

    Hi 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

  • File split and correlation in BPM

    Hi,
    I have a large file from the sender FTP which I am splitting by using 'recordsets per message' in the file adapter.
    Now I want all the split files to enter the same BPM.
    I have designed the BPM logic by using the correlation in the receive step. Still I am seeing that the each split message from the same file is entering into a separate BPM.
    How can we monitor whether the correlation is actibve? What could be the other options to check?
    KIndly help.
    Thanks,
    John.

    Hi ciochinah,
    The value is same in all the batches.
    But there is one aspect. Each batch has got many line items (no headers). I am assigning an element in the line items for correlation.
    All the line items in all the batches has got the same value for the field element used in correlation.
    I have one important question here. Where can we check for the active correlation at runtime? Is there a transaction which will tell you whether the correlations are active and which one was taken at runtime?
    Thanks,
    John

  • Correlation used with synchronous steps in BPM

    Hello,
    we have a problem with a correlation.
    A receiver step synchronous activates a correlation.
    The step is completed by receiving a response.
    The receiver step connects via sRFC to an R/3 system to trigger there an IDOC.
    Next step of the BPM is to receive the IDOC from the R/3 system (async).
    This system uses the correlation (time stamp field from RFC).
    But: This doesn not work.
    We only had success when using an asynchronous RFC.
    Does anybody have experience with such issues?
    What is possibly wrong with our correlation ?
    (Corr. is local within a block where both steps are included, RFC and IDOC step)
    regards
    Dirk

    Here is a little twist to the correlation issue...
    I had the following problem. I have a very simple Sync/Async bridge, including a sync. reveiver (sr) at the beginning, as closing S/A bridge sender (ss) at the end, and a async. sender (as) and an async. receiver (ar) in the middle. My messages have an orderId that I use for my correlation.
    The first receiver (sr) activates the correclation (using the orderId in the request message).
    I then attempted to "use correlation" in my async. receiver (ar) step. The correlation shows up in the drop down options in the properties window of the step, but my selection would not "stick" (it would show it and revert to the red question mark).
    After checking my correlation and unsuccessfully trying a few permutations of where to "activate" the correlation, I tried this:
    I temporarily turned my synchronous steps into asynchronous steps (sr and ss). Then I selected my correlation in the async. receive step and it "stuck". After my selection was accepted in the "use correlation" property of the async. receiver step, I turned my first and last step (sr and ss) back in to synchronous steps and had the desired result.
    ... and it worked! I guess it is just a little bug in the tool (which may not be an issue in later releases?!)
    Marc
    (FYI, I am using XI 3.0 SP 16)

  • Correlation for multiple fields in messages inside BPM

    Hi All,
    We have a requirement to collect multiple IDOCs based on combination of field1,field2,field3 and field4.
    Could you please tel me possible ways to implement this solution:
    I have tried the below options:
    Multiple fields in one correlation
    Correlation name is given and then in Correlation editor,we have given all four fields in correlation container and 1 involved message and properties are given for all fields
    Using this solution.IDOCSa re not collected even if all the IDOCs coming with same value for (field1field2field3+field4)
    for example even if combination of (field1field2field3+field4) is same still its not collecting and sending each IDOC sepearately outside BPM.
    Could you please suggest where the problem is?
    Please suggest if there is any other way to implement this in BPM.
    Thanks in advance
    Best Regards,
    Harleen Kaur Chadha

    Hi Harleen Kaur Chadha,
    Open your Integration Process (ccBPM), go menu bar u201CViewu201D, select u201CCorrelation Editoru201D. Then you can see the Correlation variables you have declared. Go the third tab u201CPropertiesu201D, and then try to edit u201CValueu201D. Expression Editor window pops up, select u201CInterface Variableu201D, then select XPath. Now edit u201CXPath Expressionu201D. Pay attention to Prefix u201Cp1u201D, it should be present in XPath expression. Check SAP help [Link|http://help.sap.com/saphelp_nwpi711/helpdata/en/3c/831620a4f1044dba38b370f77835cc/frameset.htm]
    Regards,
    Raghu_Vamsee

  • Correlation error in BPM

    Hi All,
    I have configured scenario - Multiple IDoc to File using BPM.
    I have given the Correlation name, Involved messages, Correlation Container and properties in Correlation editor.
    While setting the properties of the receive step, I am unable to select the Use correlation and Activate correlation.
    Can someone suggest me how to resolve this issue?
    Cheers,
    Neethu Chordia

    Hi Neethu
    Create another correlation with a different name in the correlation list with similar settings & involved messages.Then try to select the Use Correlation  & Activate Correlation in the receive step.
    Regards
    sabyasachi

Maybe you are looking for