Creating versions of your process to be used with SCA components and exports

This section explains how late binding between two processes can be used to allow late binding for arbitrary SCA components and exports. This pattern is only to be used when other means to apply late binding such as using the BPC API are not applicable.

As has already been discussed, if your system uses SCA wirings, then the process will be early bound to the caller. As such, you cannot introduce another version of the process because it will always be ignored in favour of the one that is hard wired. So how do you install a new version into a system such as this, and get it to be recognized?

The solution: use a proxy process


A diagram showing how a proxy process can be used when you want to create multiple versions of the same process.
This diagram shows how to construct a system that will allow you to work with versions of a business process in a system where SCA wiring is used. The key to this solution is a proxy process that is a business process that acts as a connection (or intermediary) between the caller and the long running process that will potentially be versioned. The caller uses early binding to invoke the proxy process, the proxy process uses late binding to invoke the actual process. Thus the interaction between the caller and the actual process is implicitly late bound. When there are multiple versions of this process in the runtime environment, the proxy will automatically link to the most recent one.

Follow these steps to create a proxy process for the actual process, and then eventually create a new version of your process by copying its enclosing module and adjusting its valid-from dates. These steps assume that you have already created the business process that you seek to version.

  1. Create a proxy process as follows:
    1. Create a business process that will only invoke an operation on the long running process that you will be versioning, and then return a response from it.
    2. Late-bind this proxy to your existing process (the one that you intend to create a version of), by adding a new Reference Partner to it. Then, click on the Description tab, and enter the component name of your process in the Process Template field. This step will likely cause a CWSCA8015W warning that you can safely ignore since this target will by dynamically selected in the runtime environment.
    3. In the Assembly editor, wire the appropriate caller to the new proxy process. This may be an SCA export, a standalone reference, or another SCA component within this module. If the caller is another process (within the same module, or in a separate module) the proxy process is not needed as it can directly use late binding.
  2. Make sure that the actual process is exported if it is called by the proxy process across module boundaries. If an SCA export is needed, add it as follows:
    1. Open your process in the Assembly Editor.
    2. In the Assembly Diagram, right-click the process and select Generate Export > SCA Binding.
    3. Save your work, and close the editor.
    This is all that is needed to create the version. When it is actually needed, proceed with the final steps in this topic as shown below.
  3. Make a copy of the module that contains the original version of your process as follows:
    1. Close all editors.
    2. In the Business Integration view, right-click the module and select Copy.
    3. Right-click on any white-space within the same view, and select Paste.
    4. Save the file. The new module name appears in the assembly editor.
  4. Configure a date from which the copied business process will be valid, as follows:
    1. In the new copy of the module, open the business process in the editor, and click an empty area to choose the process as a whole.
    2. In the Details tab of the properties area, enable Select date (UTC) when the process becomes valid. If this check box is clear, then a valid-from date is implicitly specified so that the process becomes valid as soon as the module is installed.
    3. Configure the calendar fields to specify the date and time when the runtime engine is allowed to create instances of this process.
      The calendar fields for the valid from settings.
      Calendar values are represented in Coordinated Universal Time (UTC).
  5. Save your work.
  6. You can deploy this new module as you would any other module.

Example

To see an example of a versioned process that you can build and run yourself, go to http://publib.boulder.ibm.com/bpcsamp/index.html, and click Process modeling techinques > Versioning.
Note: You will need a connection to the internet for this link to work.
Related tasks
Creating a version of your process
Late binding using a partner link extension

Feedback
(C) Copyright IBM Corporation 2005, 2006. All Rights Reserved.