Search This Blog

SBL-BPR-00113: Automatic BC field activation failed due to uncommitted data in BC.

Applies to:

Area(s):Siebel Workflow
Release(s):V7 (Enterprise), V7 (Professional), V7 (MidMarket), V8 (Enterprise), V8 (Professional)
Database(s):All Supported Databases
App Server OS(s):All Supported Platforms
Latest release tested against:V8 (Enterprise)
Keywords:SBL-BPR-00113, force active, activation, error, RTE, run-time, workflow process

This document was previously published as Siebel FAQ 2274.

Goal

How Are Fields Automatically Activated in a Workflow Process?.

Solution

Starting with Siebel version 7.5.2, the workflow process engine determines which fields are used in the workflow process being executed and therefore makes sure that these fields are activated. What this means is that the workflow process manager may re-query the business component with the corresponding fields activated in order to ensure their values are populated.
 
In other words, if you add a brand new field to business component A and then use this field in a workflow process, the value will be correctly retrieved even if the Force Active property is set to False (which is the default).
 
As pointed out above, this may cause the workflow process manager to re-query the business component, for the fields being used, and restore the context. You may have an expectation that the workflow process engine will always be able to obtain the field’s value if the field is being used in the workflow process. However, this is not always the case and below are different scenarios where the workflow process engine works correctly and in one case, reports an error:
 
  1. A workflow process manager task is started from a workflow policy, passing the row id. In this scenario, the context is created within the task because there is no user interface (UI) or object manager context. For this case, the workflow process works correctly and is able to obtain the field values.
 
  1. A run-time event (RTE) calls a workflow process, passing the row id. In this scenario, there is a context because RTEs are called within the UI context. The workflow process is executed in the client object manager, using the current context. Hence, if some fields used in the workflow process have not been activated, the workflow process engine will re-query the business component with the corresponding fields and restore the context (current record) before processing the flow. Below are two examples, one showing the workflow manager executes correctly and the other where it does not work correctly:
 
    1. The RTE allows saving the context. If the RTE is based on the WriteRecord instance, this mechanism will work because the context can be saved. For this case, the workflow executes correctly.
 
    1. The RTE does not allow saving the context. If the RTE is based on the PreWriteRecord instance, this mechanism will not work because there is a pending transaction and the context cannot be saved. For this case, the workflow process will fail with error below.
 
Automatic BC field activation failed due to uncommitted data in BC.
 
Workflow Engine is unable to automatically activate field '%1' on buscomp '%2' because the current row has not been committed.
 
Please activate this field (or mark it force active) prior to passing it into workflow.  (SBL-BPR-00113)
 
The solution in this last scenario (2.b.) is to have the field(s) activated before the RTE is triggered. This can be done by either displaying the field(s) in the applet where the RTE is triggered from, or to set the Force Active property to True for the corresponding field(s). For more information about how to set the Force Active property, refer to Siebel Bookshelf > Siebel Object Types Reference > Siebel Object Types > Field.
 
If you have an environment where a workflow process could be executed from a RTE, you may want to always set the Force Active property to True for the fields being used in the workflow process. If the field is already activated before the RTE is triggered, the workflow process manager will not have to re-query the business component. However, this will not help in the first scenario, where the workflow process manager is being called from a workflow policy. This is because the workflow process manager will always need to execute a SQL statement to create the context, so activating the fields will not prevent this SQL statement from being executed.
 
Refer to following documentation for additional information:
 
  • Siebel Bookshelf version 7.8 > Siebel Business Process Designer Administration Guide > For Administrators: Administering Workflow Processes > Administering Workflow Processes in the Run-Time Client > Activating Fields Used by Workflow Processes.
 



No comments:

Post a Comment