Search This Blog

SBL-BPR-00256: This operation cannot be completed.

Applies to:

Product Release: V7 (Enterprise)

Version: 7.8.2.1 [19216]

Database: Oracle 9.2.0.2

Application Server OS: Microsoft Windows 2000 Server

Database Server OS: Microsoft Windows 2000 Server



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

Symptoms

SBL-BPR-00256

We upgraded to 7.8 and the eservice registration workflow has the following error:

We
detected an Error which may have occurred for one or more of the following
reasons:


This operation cannot be completed. This operation is associated with an
interactive workflow, which has already run to completion and can no longer be resumed from this
operation. If the purpose of this operation is simply to take you to a view, you should be able
to reach the same view by using the "Forward/Backward" button of your browser or the Siebel
History panel. Otherwise, you need to restart the interactive flow from the beginning. For
example, if this operation is a step in a series of user-driven tasks, you need to restart from
the first task in the series.(SBL-BPR-00256)

This occured right after clicking "I Agree"
on the Usage Terms step of the workflow. Please help to troubleshoot this issue.


Solution

Message 1

For the benefit of other readers:



The error message returned to the UI about "operation is associated with an interactive workflow, which has already run to completion and can no longer be resumed from this operation" usually occurs when there is a runtime event which is trying to invoke a workflow process instance which the workflow process instance has already completed. Ie, the workflow instance is no longer in a waiting or suspended status anymore.



The sql leading up to the error message from customer's log file is the following:



....

EventContext    EvtCtxApplet    4    0    2006-06-16 03:32:39    User Registration Legal Confirmation Applet (FrameEventMethodAccept)

ObjMgrBusServiceLog    InvokeMethod    4    0    2006-06-16 03:32:39    Begin: Business Service 'Workflow Process Manager' invoke method: 'ResumeProcess' at ab9bbb0

EngInv    EngInv    3    0    2006-06-16 03:32:39    Workflow engine requested to perform method 'ResumeProcess'.

EngInv    Arg    4    0    2006-06-16 03:32:39    Input: @0*0*5*0*0*0*7*EventId8*1-13ULF59*ProcessId8*1-198Y8S9*Sub Event22*FrameEventMethodAccept10*Event Name12*InvokeMethod6*StepId8*1-198X94

....

ObjMgrSqlLog    Detail    4    0    2006-06-16 03:32:39    SELECT statement with ID: B15BC50

SELECT /*+ ALL_ROWS */

   FROM

       SIEBEL.S_WFA_INSTANCE T1

   WHERE

      (T1.STATUS_CD IN ( :1 ) AND T1.DEFINITION_ID = :2 AND T1.WORKITEM_ID = :3)

ObjMgrSqlLog    Detail    4    0    2006-06-16 03:32:39    Bind variable 1: WAITING





[1/8]

Message 2

[2/8]





ObjMgrSqlLog    Detail    4    0    2006-06-16 03:32:39    Bind variable 2: 1-198Y8S

ObjMgrSqlLog    Detail    4    0    2006-06-16 03:32:39    Bind variable 3: 1+1DU+214

ObjMgrSqlLog    Debug    5    0    2006-06-16 03:32:39    User search spec: [Status Code] = "Waiting" AND [Definition Id] = "1-198Y8S" AND [Workitem Id] = "1+1DU+214"

....

ObjMgrSqlLog    Detail    4    0    2006-06-16 03:32:39    SELECT statement with ID: B15BC50

SELECT /*+ ALL_ROWS */

   FROM

       SIEBEL.S_WFA_INSTANCE T1

   WHERE

      (T1.STATUS_CD IN ( :1 ) AND T1.DEFINITION_ID = :2 AND T1.WORKITEM_ID = :3)

ObjMgrSqlLog    Detail    4    0    2006-06-16 03:32:39    Bind variable 1: SUSPENDED

ObjMgrSqlLog    Detail    4    0    2006-06-16 03:32:39    Bind variable 2: 1-198Y8S

ObjMgrSqlLog    Detail    4    0    2006-06-16 03:32:39    Bind variable 3: 1+1DU+214

ObjMgrSqlLog    Debug    5    0    2006-06-16 03:32:39    User search spec: [Status Code] = "Suspended" AND [Definition Id] = "1-198Y8S" AND [Workitem Id] = "1+1DU+214"

.....

ObjMgrLog    Error    1    0    2006-06-16 03:32:39    (procinst.cpp (206)) SBL-BPR-00125: Cannot resume process '1-198Y8S' for object '1+1DU+214'. Verify that an instance does exist and that it has a 'Waiting' or 'Suspended' status.

ObjMgrLog    Error    1    0    2006-06-16 03:32:39    (engine.cpp (4791)) SBL-BPR-00256: This operation cannot be completed. This operation is associated with an interactive workflow, which has already run to completion and can no longer be resumed from this operation. ....



..

Message 3

[3/8]





=======================================



Technical Support set up User Registration on SIA 7.8.2 using the standard out-of-the-box SRF and vanilla workflows, but could not reproduce the above error message or scenario.



Upon examining the customer's log file for the executed steps before the error, the last steps executed were the call to the subprocess 'User Registration SubProcess' workflow, which accepts inputs and returns outputs, and then the 'User Registration Legal Confirmation View' user interact step.



One thing that the 'User Registration SubProcess' workflow does is that displays the 'User Registration Initial Form Applet' to accept user entered data and then when the user clicks the next button, data is written causing a WriteRecord to fire off and a ROW_ID to get generated, in the customer's log file, this is row-Id value '1+1DU+214' (which is the one that the workflow could not resume on as indicated in the error/log sequence above). This rowid then gets saved into the 'Siebel Operation Object Id' of the subprocess and written also to the subprocess' Object Id through the 'Copy Object Id' step.



......

Message 4

[4/8]





Then, when the subprocess is done, in vanilla version, this new Object Id value is to be passed back to the main workflow as a subprocess Output Argument. However, in the customer's version of the subprocess' Output Argument applet, 'Object Id' was not being returned to the main 'User Registration Process'. Thus, the main workflow process is not aware of the data/row created by the subprocess.



This is the entry in the vanilla version of the 'User Registration Process' workflow > 'Registration SubProcess' step > Output Argument list applet, in vanilla > Subprocess Output list applet:



Process Property    Type            Subprocess Output

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



Object Id        Output Argument    Siebel Operation Object Id



This entry is missing in output arguments applet of the customer's version of 'User Registration Process' workflow.



The solution was for customer to review their 'User Registration Process' workflow > 'Registration SubProcess' step > Output Argument list applet > add the above entry for 'Object Id' in this step. Then, deploy/activate the workflow process and restart the object manager. Once this change was performed, the error no longer occurs and the User Registration process/workflow was able to execute from start to finish.



.....

Message 5

[5/8]



=======================================



Here is a more detailed explanation of how the above missing step caused the workflow resumption to fail in this particular issue:



"This operation cannot be completed. This operation is associated with an interactive workflow, which has already run to completion and can no longer be resumed from this operation."



... typically occurs when a workflow can not be resumed after it went into a wait state as a result of using a User Interact step and having a runtime event coming out of the User Interact step.



However, the issue itself is really another scenario of workflow failing to resume from a runtime event. In this case, the runtime event happens to be a button on an applet displayed in a view, where the view itself is displayed by the workflow's User Interact step. The Object Id received by the Object Manager for resuming the workflow did not match the Object Id that the waiting workflow is tied to.



1. First, the "User Registration Process" workflow initially ran and had no value for Object Id process property, it was null since no data was created.



......

Message 6

[6/8]





2. Then, it went into the subprocess. The "User Registration Subprocess" executed, after the 'User Registration Form 1' step, a WriteRecord event occurred (due to user supplying data and clicking Next button). The WriteRecord event was on 'User Registration Initial Form Applet' which is based on the "User Registration" business component, so a row was written to this BC and the RowId was '1+1DU+214'.



3. Then, the subprocess ended and returned to it's caller workflow "User Registration Process". Back in the "User Registration Process" workflow, the Object Id remained null (since problematic version of this workflow did not receive the Object Id value from the subprocess output argument).



4. When the main workflow got control after the subprocess, it went into the "User Registration Legal Confirmation View" which is a User Interact step with a runtime event branch coming out of it - thus it would have to wait here for the runtime event to occur. Since there is a runtime event after this step, the workflow goes into a waiting/suspended state. As there is no explicit persistence set on this workflow, the workflow is persisted in memory, not in the database tables. At this point, the workflow is waiting to be resumed and the waiting instance has Object Id is null.



.....

Message 7

[7/8]





5a. Next, when the user is at the "User Registration Legal Confirmation View" which is based on 'User Registration' busobject (primary bc is also 'User Registration') > on applet = "User Registration Legal Confirmation Applet" and clicking the button, this triggered off a runtime event and the runtime event is to resume the "User Registration Process" workflow. When a runtime event occurs, the object manager picks up the ROW_ID of the record from the primary business component of the view which the business object is based on.



5b. Since the view is based on 'User Registration' BO with primary BC 'User Registartion', it picked up the ROW_ID = '1+1DU+214' as this is the row created into this bc within this registration session and is also the row in context for this view based on the BC that the event occurred on. Thus, using this primary bc ROW_ID = '1+1DU+214', the object manager tried to resume the corresponding workflow with it. As part of the workflow's resumption mechanism, it checks to see if there is waiting/suspended instance for 'User Registration Process' workflow with Work Item Id (Object Id) = '1+1DU+214'. Since the waiting/suspended instance persisted with Object Id NULL but the work item passed in for resumption is '1+1DU+214', thus no waiting instance was found having Object Id = '1+1DU+214', so the workflow could not resume successfully, thus producing the error.



Thank you,



Oracle | Siebel Support

Message 8

[8/8]





Search keywords:   User Registration, workflow, process, error, failure, fail, resumption, This operation cannot be completed. This operation is associated with an interactive workflow, which has already run to completion and can no longer be resumed from this operation., SBL-BPR-00256, button, click, runtime event, resume, I Agree, user interact step, User Registration Legal Confirmation Applet, FrameEventMethodAccept, User Registration Legal Confirmation View, Object Id, NULL, S_WFA_INSTANCE, waiting, suspended, SBL-BPR-00125: Cannot resume process, Verify that an instance does exist and that it has a 'Waiting' or 'Suspended' status, SBL-BPR-00256



.




No comments:

Post a Comment