Skip to Content

Are you fiddling with SAP help to find out what exactly term correlation mean in ccBPM? I will depict the usage of correlation in real time and explain the runtime behaviour here.

Scenario

I have to collect PO6 Idocs(Custom Metering Idoc) and push the Idocs which contains the FILE_TYPE field with value ‘TST’ into one file and with value ‘PRD’ as separate file.
Correlation

XI Solution

I designed a ccBPM in XI, which waits for 3 minutes to collect Idocs and push the Idocs into appropriate file based on correlation FILE_TYPE as shown below.

Design time instance in IR :

ccBPM instance in IR

Correlation

Logical Flow:

1.Block Step –Collects PO6 Idocs based on correlation, which raises the timeout exception once 3 minutes is elapsed.
2.Loop Step-It executes infinitely and exits only when time out condition occurs.
3.Receive Step-Receives PO6 Idocs based on correlation File_type as shown in the below window.

Activate Correlation

4.Container Step-Appends the PO6 Idocs into a multiline container.
5.Transform Step-Transforms n PO6 Idoc into a single file structure.
6.Send Step-Sends the PO6 file appropriately to the receivers configured in the ID.

Runtime instance in IE :

Now let us check the runtime behavior. I tried to send 3 Idocs continuously using transaction WE19 as shown below.
Idoc 1 with FILE_TYPE ‘TST’ :
Idoc1

Idoc 2 with FILE_TYPE ‘TST’ :
Idoc2

Idoc 3 with FILE_TYPE ‘PRD’ :
Idoc3
We can see 3 entries as shown below in the SXMB_MONI once all the required configurations are done for Idoc to File scenario.
Entries in SXMB_MONI
By clicking the PE link in SXMB_MONI we can see the workflow technical details as shown below.
Workflow Instance for Idoc 1 with FILE_TYPE ‘TST’ :
Work Flow instance for Idoc1

Workflow Instance for Idoc 2 with FILE_TYPE ‘TST’ :
Work Flow instance for Idoc2

Workflow Instance for Idoc 3 with FILE_TYPE ‘PRD’ :
Work Flow instance for Idoc3
We can see that 2 workflow instances spawned for the given scenario. Idocs(2) with same FILE_TYPE has the same instance number and a new process instance is spawned as soon as the different FILE_TYPE is triggered. Since there are 2 instances spawned, PO6 Idocs with ‘TST’ are collected together, transformed and sent as a single file. PO6 Idoc with FILE_TYPE ‘PRD’ is transformed and sent as separate file. Once the above context is clear we can define correlation as ”the relation between a message and its process instance”. I assume that blog is useful to correlate “Correlation in ccBPM”..:)

To report this post you need to login first.

24 Comments

You must be Logged on to comment or reply to a post.

  1. Jayakrishnan Nair
    Hi Sravya,
            This was a excellent method for the creation & routing data into different files if the idoc type is same…Good work keep it up

    Cheers
    Jayakrishnan

    (0) 
  2. Jayakrishnan Nair
    Hi Sravya,
            This was a excellent method for the creation & routing data into different files if the idoc type is same…Good work keep it up

    Cheers
    Jayakrishnan

    (0) 
  3. Jayakrishnan Nair
    Hi Sravya,
            This was a excellent method for the creation & routing data into different files if the idoc type is same…Good work keep it up

    Cheers
    Jayakrishnan

    (0) 
  4. rajesh thallam
    this is rajesh, i am just starting my career in XI. i have read u r blog its very nice. i have a question.two different files will be created at end(with sam name/ diff name?). how can we manage this in file adapter. do we need to mention 2 file names? please clarify.
    (0) 
    1. Gerald Kilgus
      In the file adapter you can define dynamic file names (by variable substitution), which are created using the message payload.
      In this case you could you the content of the element “file type” (if it is in the outgoing message) to create file names like PO_TST.txt and PO_PRD.txt

      Cheers
      Gerald

      (0) 
  5. rajesh thallam
    this is rajesh, i am just starting my career in XI. i have read u r blog its very nice. i have a question.two different files will be created at end(with sam name/ diff name?). how can we manage this in file adapter. do we need to mention 2 file names? please clarify.
    (0) 
    1. Gerald Kilgus
      In the file adapter you can define dynamic file names (by variable substitution), which are created using the message payload.
      In this case you could you the content of the element “file type” (if it is in the outgoing message) to create file names like PO_TST.txt and PO_PRD.txt

      Cheers
      Gerald

      (0) 
  6. rajesh thallam
    this is rajesh, i am just starting my career in XI. i have read u r blog its very nice. i have a question.two different files will be created at end(with sam name/ diff name?). how can we manage this in file adapter. do we need to mention 2 file names? please clarify.
    (0) 
    1. Gerald Kilgus
      In the file adapter you can define dynamic file names (by variable substitution), which are created using the message payload.
      In this case you could you the content of the element “file type” (if it is in the outgoing message) to create file names like PO_TST.txt and PO_PRD.txt

      Cheers
      Gerald

      (0) 
  7. nishu jain
    hi, i am referring this weblog in my scenario for using correlation. I am struck at a place like where we have to assign the values like “TST” or “PRD” so that both can be seperately picked?

    Regards

    (0) 
  8. nishu jain
    hi, i am referring this weblog in my scenario for using correlation. I am struck at a place like where we have to assign the values like “TST” or “PRD” so that both can be seperately picked?

    Regards

    (0) 
  9. nishu jain
    hi, i am referring this weblog in my scenario for using correlation. I am struck at a place like where we have to assign the values like “TST” or “PRD” so that both can be seperately picked?

    Regards

    (0) 
  10. S V
    Hi

    I tried to do this scenrio.. but i didnr use any control block …is this neccasary to use the control block…

    When i checked in SXMB_MONI the PE is in Process state

    SV

    (0) 
  11. S V
    Hi

    I tried to do this scenrio.. but i didnr use any control block …is this neccasary to use the control block…

    When i checked in SXMB_MONI the PE is in Process state

    SV

    (0) 
  12. S V
    Hi

    I tried to do this scenrio.. but i didnr use any control block …is this neccasary to use the control block…

    When i checked in SXMB_MONI the PE is in Process state

    SV

    (0) 
  13. Paulie Seikmayt
    Hi Sravya,
    thanks for the blog.

    Question : I assume also that these Correlations are persisted in a DB table just in case the XI box is rebooted.  If so is there some way of monitoring what Correlations are kept, which Correlations are waiting for a matching pairing etc etc.

    (0) 
  14. Paulie Seikmayt
    Hi Sravya,
    thanks for the blog.

    Question : I assume also that these Correlations are persisted in a DB table just in case the XI box is rebooted.  If so is there some way of monitoring what Correlations are kept, which Correlations are waiting for a matching pairing etc etc.

    (0) 
  15. Paulie Seikmayt
    Hi Sravya,
    thanks for the blog.

    Question : I assume also that these Correlations are persisted in a DB table just in case the XI box is rebooted.  If so is there some way of monitoring what Correlations are kept, which Correlations are waiting for a matching pairing etc etc.

    (0) 
  16. chuo mua
    Hi Sravya,

    Thanks for sharing your thoughts here. I’m a BPM beginner and i’ve been wonder how BPM can be used to collect/merge and split messages in XI. Your blog does answer this collect/merging functionality and correlation very wisely.

    As a beginner, i was still be to grasp the whole idea. But what i’m missing here are the accompanying screenshots. Please, do me a favour and mail me the screenshots of your implementation so that i can clearly see the different steps.

    Thanks in advance
    cci.muam@yahoo.com

    (0) 
  17. chuo mua
    Hi Sravya,

    Thanks for sharing your thoughts here. I’m a BPM beginner and i’ve been wonder how BPM can be used to collect/merge and split messages in XI. Your blog does answer this collect/merging functionality and correlation very wisely.

    As a beginner, i was still be to grasp the whole idea. But what i’m missing here are the accompanying screenshots. Please, do me a favour and mail me the screenshots of your implementation so that i can clearly see the different steps.

    Thanks in advance
    cci.muam@yahoo.com

    (0) 
  18. chuo mua
    Hi Sravya,

    Thanks for sharing your thoughts here. I’m a BPM beginner and i’ve been wonder how BPM can be used to collect/merge and split messages in XI. Your blog does answer this collect/merging functionality and correlation very wisely.

    As a beginner, i was still be to grasp the whole idea. But what i’m missing here are the accompanying screenshots. Please, do me a favour and mail me the screenshots of your implementation so that i can clearly see the different steps.

    Thanks in advance
    cci.muam@yahoo.com

    (0) 
  19. nichol davis
    Hi
    I have created and activated a correlation.
    When i am using it in receive step(not the one at start,some where in the middle of a huge BPM),it shows correlation has errors.
    So when i do the check i get Corelation A has not been activated in any proceeding step as error.
    I am also getting a warning saying that the Actiavted Correlation A is not being used in any other step.
    In my scenario I need the BPM to wait for a message to come some where in the middle of flow after which the remaining flow should work.That message is just a confirmation the flow can continue running.Other than that there is no use for that message ( no Transformation, no send..)

    Please help me solve the problem
    Is there any other way to handle this?

    If i put a send step with same co relation, the bpm is fine,but i don’t need a send step.

    I cannot use wait step as the frequency of incoming message may vary.
    Thanks in advance.

    Regards,
    Nichol

    (0) 
  20. nichol davis
    Hi
    I have created and activated a correlation.
    When i am using it in receive step(not the one at start,some where in the middle of a huge BPM),it shows correlation has errors.
    So when i do the check i get Corelation A has not been activated in any proceeding step as error.
    I am also getting a warning saying that the Actiavted Correlation A is not being used in any other step.
    In my scenario I need the BPM to wait for a message to come some where in the middle of flow after which the remaining flow should work.That message is just a confirmation the flow can continue running.Other than that there is no use for that message ( no Transformation, no send..)

    Please help me solve the problem
    Is there any other way to handle this?

    If i put a send step with same co relation, the bpm is fine,but i don’t need a send step.

    I cannot use wait step as the frequency of incoming message may vary.
    Thanks in advance.

    Regards,
    Nichol

    (0) 
  21. nichol davis
    Hi
    I have created and activated a correlation.
    When i am using it in receive step(not the one at start,some where in the middle of a huge BPM),it shows correlation has errors.
    So when i do the check i get Corelation A has not been activated in any proceeding step as error.
    I am also getting a warning saying that the Actiavted Correlation A is not being used in any other step.
    In my scenario I need the BPM to wait for a message to come some where in the middle of flow after which the remaining flow should work.That message is just a confirmation the flow can continue running.Other than that there is no use for that message ( no Transformation, no send..)

    Please help me solve the problem
    Is there any other way to handle this?

    If i put a send step with same co relation, the bpm is fine,but i don’t need a send step.

    I cannot use wait step as the frequency of incoming message may vary.
    Thanks in advance.

    Regards,
    Nichol

    (0) 

Leave a Reply