Applies to:
Area(s):Siebel WorkflowRelease(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:
- 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.
- 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:
- 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.
- 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.
- Siebel Bookshelf version 8.0 > Siebel Business Process Framework: Workflow Guide > For Administrators: Administering Workflow Processes > Activating Fields Used by Workflow Processes.
No comments:
Post a Comment