cancel
Showing results for 
Search instead for 
Did you mean: 

BPM correlations

Former Member
0 Kudos

Hi friends,

I am doing file to file sceanrio using BPM. The scenario is it is having 2 input files as inputand one file as output.So i have used BPM. In that i have used fork step.In fork, i have used 2 receive steps.It is asking for correlation. How to give correlation?What name we have to give?Please explain and provide the solution for solving the correlation problem.

Thanks,

Leela

Accepted Solutions (0)

Answers (6)

Answers (6)

samiullah_qureshi
Active Contributor
0 Kudos

Hi

1. When you need to collect multiple messages in XI ,you need correlation.

Assume that there are 2 systems sending data to XI and Xi needs to collect the messages of the Systems.

System A has sent the message to XI and BPM is waiting for message from System B. Even before System B can send its message another message from System A has it Xi and another BPm is instantitated. Now, when System B sends the message how do you know which BPM it belongs to?

Correlation as the name implies is used to correalte / connect the message so that they are assigned to the correct process Instance / BPM.

More on correlation in this blog,

[/people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi]

Collect patterns is nothing but the different ways in which you can collect messages in XI. Look at this link to understand the different collect patterns in XI,

[http://help.sap.com/saphelp_nw2004s/helpdata/en/08/16163ff8519a06e10000000a114084/content.htm]

1. Paylaod Dependent

2. Time Dependent

3. Messge Dependent.

Regards

Sami

Reward points if useful.

Former Member
0 Kudos

Create one correlation with the common field from 2 source file structures through correlation editor and mention the correlation name in 2 receive steps. .

Former Member
0 Kudos

Hi,

Co-Relation : Defining the relation between the messages in the integration process is referred as co relation.

To define the co relation goto view menu of the process --> select correlation editor --> In the correlation list define the correlation name --> In the correlation container define the element on which correlation is to be implemented. (name : <field_name>, type : String) --> Select the involved messages and choose the field name at properties(this process repeat for every involved messages).

Here in this scenario you may not require the co-relation and fork steps.

Follow this links

http://help.sap.com/saphelp_nw04/helpdata/en/62/dcef46dae42142911c8f14ca7a7c39/content.htm

/people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm

vijay_b4
Active Contributor
0 Kudos

Hi Leela,

Use a BPM to collect the files. You will need corelation and then use the Transformation Step to create the mapping , Switch for checking of any conditions etc.

Check this link for example scenarios,

http://help.sap.com/saphelp_nw04/helpdata/en/de/766840bf0cbf49e10000000a1550b0/content.htm

Corelation is used when you have multiple Receive Steps in your BPM.

Consider a case, when you have multiple receive in a fork in a BPM.

Say receive A of branch 1 receives a file and is waiting for the file for receive B of branch 2 of the fork. Before, this file is available, say another BPM is instantiated because receive A has got the file. So, we have 2 active BPM's waiting for the Files of Recive B.

When this file is available how to determine which BPM this belongs to? The first or second? This is solved using Correlation.

In your case, as you have one receive and then multiple Send steps you do not need corealtion.

This may help you in BPM:

Recive Step

You can use a receive step for the following purposes:

Starting an Integration Process

Receiving Messages in Integration Processes

Defining Sync/Async Communication

Send Step

You can use a send step () for the following purposes:

· Sending Messages from Integration Processes Asynchronously

· Sending Messages from Integration Processes Synchronously

· Sending Acknowledgements from Integration Processes

· Defining Sync/Async Communication

Reciever Determination Step

You use a receiver determination step () to get a list of receivers for a subsequent send step. The receiver determination step calls the receiver determination that you configured in the Integration Directory and returns the receiver list.

Transformation Step

You use a transformation step ( ) to do the following:

● n:1 Transformation

Bundles multiple messages into one message, for example, individual purchase order items into one purchase order.

● 1:n Transformation

Splits a message into multiple messages, for example, a purchase order into the individual purchase order items.

● 1:1 Transformation

Converts a message into another message, for example, a message that is defined by interface A is converted to message that is defined by interface B.

Switch

You use a switch () to define different processing branches for a process. The Otherwise processing branch is created automatically.

You define a condition for each processing branch (see also: Condition Editor). The condition is checked at runtime. The process is continued in the branch that is first to return the value true. If no branch returns the value true, then the process is continued in the Otherwise branch.

The system checks the conditions in the order that they are numbered. This corresponds to the following sequence:

· Vertical layout: From top to bottom

· Horizontal layout: From left to right

Container Operation

You use a container operation () to set a value for a target container element at runtime (see also: Defining the Data of a Process in Containers). The target container element and the assigned value must have the same data type. To specify the value, use the expression editor (see also: Using the Expression Editor .

You can:

· Assign

Assigns a value to a single line or multi-line container element. This value overwrites the previous value. You can use this container operation to count a counter variable, for example.

· Append

Appends a value to a multiline container element. For example, you can use this container operation to append individual messages to multiline container elements when gathering messages together.

Control Step

You use a control step () to do the following:

· Terminate the current process

· Trigger an exception

· Trigger an alert for Alert Management (see also: Triggering an Alert)

Block

You use a block () to combine steps that you want to execute one after the other and which are to access the same local data (see also: Containers). You can also use a block to combine steps that you want to have the same deadline or exception handler, or to define a local correlation.

You can define the mode Parallel For Each(ParForEach) for a block or Dynamic Sequence (ForEach). This means that the block is executed for all elements of a multi-line container element.

Fork

You use a fork () when you want to continue a process in branches that are independent of each other, for example, to communicate with two systems that are independent of each other. The branches of the fork join in a union operator.

You can specify the required number of branches and then define whether the process must run through all branches, or just a particular number of branches. Furthermore, you can define an end condition for the fork (see also: Condition Editor).

As soon as a branch reaches the union operator at runtime, the system checks the following conditions in the specified order:

· The process has run through the required number of branches

· The specified end condition has returned true

The step is complete as soon as one of the conditions returns true.

Loop

You use a loop ( ) to repeat the execution of steps within the loop. The loop continues to run while the end condition returns true (while loop).

To specify the end condition, use the condition editor.

Wait Step

You use a wait step () to incorporate a delay in a process. Usually, you use a delay to define when the next step in the process is to start. You can define a delay as either a point in time or a period of time.

At runtime, the step waits until the specified point in time is reached or the specified period of time has passed. The system then continues the process by proceeding with the next step.

Check here for knowing more about fork step... http://help.sap.com/saphelp_nw04/helpdata/en/24/e2283f2bbad036e10000000a114084/content.htm

Reward points if this helps

Regards

Vani.

Former Member
0 Kudos

Hi Lila,

Go thru this blog to understand about correlations.

Understanding Correlation in XI by Sravya Talanki

Correlation

We 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.

Correlating Objects:

A correlation enables you to identify objects that belong together, for example, a quotation and the relevant sales order. This involves correlating the objects by using one or more common elements, for example, the quotation number. When you define a Workflow, you can specify the object that the Workflow must wait for, without having to enter the ID of the object.

Correlation :

The 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.

We define the correlation in Correlation Editor ,which will be used to fill the coorelation value at runtime.

http://help.sap.com/saphelp_nw2004s/helpdata/en/a5/64373f7853494fe10000000a114084/content.htm

/people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi

http://help.sap.com/saphelp_nw2004s/helpdata/en/b1/d2d93fac0fec06e10000000a1550b0/content.htm

Check the Correlation Check List in the below link

http://help.sap.com/saphelp_nw2004s/helpdata/en/6d/94364296f1b26be10000000a155106/content.htm

Collect Pattern BPM :

You have the option of collecting multiple messages for an interface and bundling them into one message, for example, individual purchase order items into one purchase order. To do so, you need to define a receiver step within a loop. The loop can finish in a variety of ways

http://help.sap.com/saphelp_nw2004s/helpdata/en/08/16163ff8519a06e10000000a114084/content.htm

/people/pooja.pandey/blog/2005/07/27/idocs-multiple-types-collection-in-bpm - Collection of IDoc to Single File

http://help.sap.com/saphelp_nw2004s/helpdata/en/08/16163ff8519a06e10000000a114084/content.htm

Reward points if needful

Thanks,

RamuV

former_member187563
Contributor
0 Kudos

hi,

you can simply refer to link below and understand it:

/people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi

for more details refer:

reward points 4 useful ans

regards,

ujjwal kumar