Search This Blog

SBL-BPR-00124: Cannot resume process instance '%1'. Verify that it does exist and has a 'Waiting', 'Suspended' or 'In Error' status.

Applies to:

Siebel Workflow - Version: 7.7.2.10 [18385] to 8.0 [20405] - Release: V7 to V8
Information in this document applies to any platform.

Symptoms

Customer is facing recent and intermittent unavailability of WfProcMgr component installed in one server. Customer has noticed one occurrence this Sunday 02/15 at 10:30 AM and  02/16 3:20 AM. When it occurred they were able to restart the server. Customer is not able to always restart the siebel server because the application does not respond in a timely manner.

Since WfProcMgr seems unavailable for some reason SISNAPI errors in SRBroker logs were found also as a consequence of this component being unavailable it seems that records in S_ESCL_REC are increasing.

The records in S_ESCL_REC seems to be associated to triggers created for assignment of campaigns. No recent changes were made on wf policies or configuration.



In the enterprise log and confirmed that WfProcMgr became unavailable.

From the Enterprise logs the related WfProcMgr logs and this analysis resulted in 3 groups of enterprise +wfprocmgr logs:

In WfProcMgr_58975.3.log  can also find the error SBL-SMI-00140: Internal: The MT Server has been disabled.
Customer can see from WfProcMgr_80330.log that the same instance'1-6E1YM0' was still not able to be resumed even after several hours > SBL-BPR-00124: Cannot resume process instance '1-6E1YM0'. Verify that it does exist and has a 'Waiting', 'Suspended' or 'In Error' status.

A3, B3: For the Workflow Process Manager created by the Siebel Server Scheduler at 2009-02-16 03:19:36 with task id 80973 and exited at 2009-02-16 03:20:37.

Finally here Customer were able to find the error SBL-SMI-00062: Internal: No more process (multithreaded server) slots available in WfProcMgr_80973.log.


Customer checked the memory limits and found that memory limits are not being reached (or reached only 20% below the limit) which indicate that the cause does not seem memory related.

Cause

There were 2 problems associated to this workflow component crash;hang:

1. Associated to the jobs executed by workflow process SMCC - List Import is consuming too many threads. At some point max tasks limit is reached and as a consequence no more threads can be created to continue trying to process these records. This would explain why we saw the error SBL-BPR-00124: Cannot resume process instance '1-6E1YM0'.


2. After this problem was solved it seems that a crash was found. This crash was associated to the workflow process "SMCC Sync PEM Status - Contact Phone Status" fails.

The error seems to happen when the method "'SyncPEMStatus" updates a business component field with a picklist with a value that is not available in this picklist. The pick lists name is "Response Outcome PickList".


Solution


1. By stopping the instances in loop from the workflow instance view have helped to free up some threads and avoid the Max Tasks limit to be reached. This means that this job that is processing List Import records must be reviewed in order to ensure that it will not keep in loop and allocating a high number of threads until the limit is reached.

2. The suggestion here is to ensure that the value being used (by workflow process "SMCC Sync PEM Status - Contact Phone Status") to update the field (by the method "'SyncPEMStatus") exists in the picklist associated to this field ("Response Outcome PickList").

Applies to:

Siebel Tools - Version: 7.7.2 SIA [18325] and later   [Release: V7 and later ]
Oracle Solaris on SPARC (64-bit)
Product Release: V7 (Enterprise)
Version: 7.7.2 [18325] Com/Med
Database: Oracle 9.2.0.4
Application Server OS: Sun Solaris 9
Database Server OS: Sun Solaris 8
Checked for Relevance on 04-12-2010

This document was previously published as Siebel SR 38-1545143224.

Symptoms

SBL-BPR-00124, SBL-BPR-00125

Hi,

We have a number of processes that require a User to select a product from a picklist. We have built a VBC to do this. It consists of a simple Init method. The query method returns no rows.

We go into the User Interact view, and the applet has a NewRecord command on it. This creates a new record for the User to pick the Product into. The User should then click the OK button to continue.

However this never occurs. We get a number of errors, including (1) no further resumption of processes; (2) the specialised method xyz is not supported (even though we have the Event Cancel flag ticked); or (3) it gives a “This is part of an interactive workflow that has completed etc” message. In the latter case, clicking on Back and then reclicking OK usually makes it work.

I have attached a simple User Interact workflow, along with applet, VBC, BS, view and logs from three separate attempts to get this to work. The XML versions represent the different Events that we captured, as follows:

Version 0) OK button calls WriteRecord event. Event Object in Workflow is Applet, Event Method is “InvokeMethod”, and Event Sub Method is “WriteRecord”

Version 1) OK button calls WriteRecord event. Event Object is BusComp, EventMethod is PreInvokeMethod and Event Sub Method is “Update”

Version 2) OK button calls “BTContinue” event. Event Object is BusComp, EventMethod is PreInvokeMethod and Event Sub Method is “BTContinue”


Cause

Incorrect configuration settings.

Solution

contd... (2/2)

Obviously for the latter two, the Event Cancel flag is ticked.

We have looked at Bookshelf very very closely – indeed we have got Interact Steps working happily over normal table-based BCs. Please could you indicate to us how to get a VBC working with a User Interact step?

Many thanks,

For the benefit of other readers:

Customer's custom script was reviewed and no scripting errors or problems were discovered. The following are details to the workflow process being used that will help explain the behaviour:

Process Name:            BTCOM Test VBC Interact

WF Process Business Object:    Asset Management (eService)
Primary Business Component:    Asset Mgmt - Asset (eService)

The workflow process flow is:

Start:                no runtime event

User Interact Step:        View = AA_TestInteractView
User Interact step will display the view and then wait for an event, when event occurs, it resumes the workflow. The runtime event information in the User Intearct step is:

    Event Object:        Asset Product Details Entry VBC BT
    Event Object Type:    BusComp
    Event:            PreInvokeMethod
    Subevent:            Update

Business service invoked:    BusService = Shopping Service, Method = GotoView
End

There is no where in the customer's application indicating how this workflow is initiated to run. It is not initiated by customer script or another runtime event. So it appears that the workflow process itself is never initiated.

When checking the Runtime Event Administration > Events view, the runtime event is calling the correct workflow process row_id and step id. There are no problems with the Runtime Event information that was registered for the workflow.

The problem lies within how the workflow process was designed and initiated to run. Here are the analysis and suggestions provided by Siebel Support:

Point # 1: The workflow process itself does not start off from a runtime event, nor does it run at all (ie, it is never called to run). But it has a User Interact step that resumes from a runtime event.

It is important to note that when Workflow process tries to resume a workflow, it does so by looking for an existing waiting or suspended process instance.

Siebel Support tested a workflow that was not initiated by runtime event but which had a User Interact step with runtime event, when the event occurred in the User Interact step, the workflow process was not resumed. In the client-side log file generated, the following SQL and error message can be seen:

SELECT
      T1.CONFLICT_ID,
      T1.LAST_UPD,
.....
.....
      T1.STATUS_CD,
      T1.INST_TYPE_CD
   FROM
       SIEBEL.S_WFA_INSTANCE T1
          INNER JOIN SIEBEL.S_LST_OF_VAL T2 ON T1.STATUS_CD = T2.NAME AND T2.TYPE = 'WF_INST_STAT_CD' AND T2.LANG_ID = ?
   WHERE
      (T2.VAL = ? AND T1.DEFINITION_ID = ? AND T1.WORKITEM_ID = ?)
ObjMgrSqlLog    Detail    4    0    2004-10-12 15:07:59    Bind variable 1: ENU
ObjMgrSqlLog    Detail    4    0    2004-10-12 15:07:59    Bind variable 2: Suspended
ObjMgrSqlLog    Detail    4    0    2004-10-12 15:07:59    Bind variable 3: 78-1TIF
ObjMgrSqlLog    Detail    4    0    2004-10-12 15:07:59    Bind variable 4: 78-1TA3
.....
***** SQL Statement Execute Time for SQL Cursor with ID 11E10ED0: 0.003 seconds *****

ObjMgrSqlObjLog    Execute    4    0    2004-10-12 15:07:59    End: execute SqlObject at 11ec99a8
ObjMgrSqlLog    Detail    4    0    2004-10-12 15:07:59    
***** SQL Statement Initial Fetch Time for SQL Cursor with ID 11E10ED0: 0.000 seconds *****

ObjMgrLog    Error    1    0    2004-10-12 15:07:59    (procinst.cpp (206)) SBL-BPR-00125: Cannot resume process '78-1TIF' for object '78-1TA3'. Verify that an instance does exist and that it has a 'Waiting' or 'Suspended' status.

This message is expected according to how workflow resumption works.

Given the way the customer set up the workflow, there isn't any "Waiting" or "Suspended" instances since the workflow was not initiated to run in the first place. When the event occurs in the view, the runtime event will try to run a step of a workflow process. The Workflow Engine will try to look up a "Waiting" or "Suspended" process instance from the S_WFA_INSTANCE table. Since the Workflow Engine can not find any rows in this table with the matching process id and status, then the Workflow Engine can not resume the workflow. This accounted for why the workflow process did not resume.

Thus, customer was suggested to check how they initiated the workflow and if there are any process instances for the workflow which they are trying to resume.

Point # 2: The customer's custom view has applets based on a custom virtual BusComp "Asset Product Details Entry VBC BT". These applets have the buttons that are used for the runtime event in the workflow User Interact step. It is possible to use Virtual Business Components for workflow process runtime event. An example of this would be the "Cfg Empty Cx Instance Vbc" business component used for the eConfigurator view having <Done> and <Cancel> buttons when the user is reconfiguring a product during the Order Management workflows.

Customer was suggested to check the number of views that have these applets based on buscomp "Asset Product Details Entry VBC BT". If it is only one view, then this implies that the runtime event always occurs in this one view.

If so, we should consider setting the runtime event in the Start step of the workflow process.
Then, remove the User Interact step completely, since the user must be on that view in the first place in order to see those applets and buttons.

What will happen with the above changes: when the user clicks on the button on the designated view, the user is essentially initiating the workflow process to run and not trying to resume non-existent workflow process instance.

Customer applied the suggestion from # 2, to start the workflow with a runtime event and removed the User Interact step from the workflow. After doing this, they saw the desired behaviour. So now, the workflow is initiated to run from the button clicks.

Search keywords: workflow, process, virtual, business component, vbc, runtime, event, trigger, initiate, user interact, view, step, resume, Cannot resume process, Verify that an instance does exist, button, click, custom, applet

Thank you

Oracle Product Support - Siebel CRM


Applies to:

Product Release: V7 (Enterprise)
Version: 7.5.3.4 [16180] Com/Med
Database: Oracle 9.2.0.4
Application Server OS: Sun Solaris 8
Database Server OS: Sun Solaris 8

This document was previously published as Siebel SR 38-1380399682.

Symptoms

SBL-BPR-00124

We have a problem with Wait Step in a custom workflow.
The workflow should resume when the "FSEventMethodPMTConfigureSKY" method is invoked on the FS ODL Order Entry - Orders SKY business componet (essentially a copy of the Order Entry - Orders bc).
We placed a log script in the BusComp_PreInvokeMethod event and so we can confirm that the method is correctly invoked, but the workflow does not resume.

The Next Step branch fields are set with the following values:
Type = Condition
Event Object Type = BusComp
Event = PreInvokeMethod
Event Object = FS ODL Order Entry - Orders SKY
Subevent = FSEventMethodPMTConfigureSKY
Event Cancel Flag = Y

It seems that the Wait Step does not inercept the method at all, because we get the following error (even if the Event Cancel Flag i sset to Y):
The specialized method 'FSEventMethodPMTConfigureSKY' is not supported on Business Component 'FS ODL Order Entry - Orders SKY' used by Business Object 'FS ODL Order Entry SKY'.(SBL-DAT-00322)

If we script the BusComp_PreInvokeMethod event and add:
   if (MethodName == "FSEventMethodPMTConfigureSKY")
      return (CancelOperation);
then we don't see the error but the workflow does not resume.
By looking at the Workflow Process Log we find that the workflow instance is still in the Wait Step.

Thank you in advance for support.

Solution

Message 1

For the benefit of other readers:

Customer has made a copy of the the "SIS OM Complex Product Runtime Instance View - Order" view and configured it as follows:

View:        FS SIS OM Complex Product Runtime Instance View - ODL SKY
BO:        FS ODL Order Entry SKY                        // custom business object
Applet:    Applet[0]: Cfg Cx Runtime Instance Frame;    
BusComp:    BusComp[0]: Cfg Empty Cx Instance Vbc;

On this applet, there is a <Cancel> button. Customer also made a copy of the SIS OM Edit workflow process called "FS Edit ODL Line Item SKY", where the wait step is waiting for a runtime event as follows:

Event Obj Type:    BusComp
Event:        PreInvokeMethod
Event Object:    FS ODL Order Entry - Orders SKY        // custom BusComp, copy of Order Entry - Orders
Subevent:        FSEventMethodPMTConfigureSKY
Event Cancel Flg:    TRUE

The workflow is initially invoked via a button click on the line item applet, button is called "FSReconfigureCxProd" (similar to customize button in vanilla). When this button is clicked, script on the custom BusComp "FS Order Entry - Line Items SKY" calls the workflow and sets the Object Id as follows:

------------------
    var svc    = TheApplication().GetService("Workflow Process Manager");
    var Input = TheApplication().NewPropertySet();
    var Output = TheApplication().NewPropertySet();
    Input.SetProperty("ProcessName", "FS Edit ODL Line Item SKY");
    Input.SetProperty("Object Id", this.GetFieldValue("Order Header Id"));


[1/4]

Message 2

[2/4]

    Input.SetProperty("Root Line Item Id", this.GetFieldValue("Root Order Item Id"));
    svc.InvokeMethod("RunProcess", Input, Output);
    Input = null;
    Output = null;
    svc    = null;

--------------------

The workflow then goes into wait step and waits for a button event on the custom view. When this event occurs with the button click on <Cancel>, the Object Manager should resume the waiting workflow process instance.

However, when this cancel button is hit, the event occurs, the Workflow Engine tries to check for a waiting instance but fails.

After enabling personalization and client-side tracing, the log file shows that the event occurred and the WF Engine try to resume the flow. However, the WF engine fails to resume the flow, as it runs a query to find the waiting instance, but the query did not return any row. Upon further inspection, it appears that the event occurred during button click on <Cancel>, but no Object Id value was captured. While for the WF Engine, it issued a query for an instance where BT_ROW_ID is null, which is not correct since the waiting instance does have an Object Id value.

In the log file, the query has the following in the where clause:

(T1.STEP_ID = ? AND T1.BT_ROW_ID IS NULL AND T3.VAL = ?)

.... this is causing the resumption to fail. Then the workflow throws back the errors:

.....

Message 3

[3/4]


ObjMgrLog    Error    4    2004-07-09 13:28:02    (SBL-BPR-00125) Cannot resume process '1B-1F57' for object ''. Verify that an instance does exist and has a 'Waiting' status.
ObjMgrBusCompLog    Delete    4    2004-07-09 13:28:02    BusComp was deleted 12817fd0 "Workflow Process Instance"
EngInv    Arg    4    2004-07-09 13:28:02    Output: @0*0*0*0*0*0*
ObjMgrBusServiceLog    InvokeMethod    4    2004-07-09 13:28:02    Business Service 'Workflow Process Manager' invoke method 'ResumeProcess' Execute Time: 0.036 seconds.
ObjMgrBusServiceLog    InvokeMethod    4    2004-07-09 13:28:02    End: Business Service invoke method: 3f12750
ObjMgrLog    Error    4    2004-07-09 13:28:02    (SBL-DAT-00322) The specialized method 'FSEventMethodPMTConfigureSKY' is not supported on Business Component 'FS ODL Order Entry - Orders SKY' used by Business Object 'FS ODL Order Entry SKY'.

However, looking at the Siebel Client Workflow Process Log view showed that the waiting instance did have an Object ID value. Somehow, when the event occurred on the <Cancel> button, the Object Manager did not fetch a value to pass to workflow as the Object Id.

Upon further investigation, customer discovered that there is one User Property called "SIS OM Configure Complex Product Workflow:: .. " on the vanilla Order Entry - Line Items business component, with value of "SIS OM Edit Service Order Line Item".

.....

Message 4

[4/4]


Customer then mimicked the same configuration by doing the following:

a. Changed the name of the workflow in the "SIS OM Configure Complex Product Workflow:: .. " user property on the custom business component to reflect the custom workflow process "FS Edit ODL Line Item SKY"

b. Removed the script on the applet which calls the "FS Edit ODL Line Item SKY" workflow process. Instead, copied the standatd "Configure" button on the applet which is used to invoke the "FS Edit ODL Line Item SKY" workflow process. This allowed the "FS Edit ODL Line Item SKY" workflow process to be called by the standard functionality embedded in the business component class.

After doing so, the workflow was able to resume correctly when clicking on the Done or Cancel buttons on the custom eConfigurator view.

There is no reference in Siebel Bookshelf for the user property. The following documentation change requests have been logged to include this user property:

CR # 12-EE12NU: Product Configurator: BC user properties "SIS OM Configure Complex Product Workflow::*"
CR # 12-F2P1DI: Product Configurator: BC user properties "SIS OM Configure Complex Product Workflow::*"

Search keywords: custom, customize, order management, order, entry, workflow, process, sis, om, complex, product, line items, line, econfigurator, view, runtime, event, trigger, resume, waiting, object id, applet, view, reconfigure, cancel, done, edit, user property, method, script, button, invoke

.


No comments:

Post a Comment