Skip to main content

We built our workflow process with a 'maintenance' activity in parallel with the main workflow. This maintenance activity can be used to modify the xml data behind the process, and once it is used it restarts itself so it is available again at a later point in time if necessary. It can also be used to execute a GoToAcitivity if the workflow has stopped prematurely. If this is done, the 'maintenance' activity expires and is no longer available. Then if the workflow instance stops again, it is marked as completed and we can't revive it.


So - I was wondering if there is another way to 'revive' a workflow that completed prematurely. For example:



The workflow has activities A, A1, B, C, D, and E. A, B, C, D, and E are in series, and A1 (the 'maintenance' activity) is in parallel with the serial flow. If activity C completes, but activity D doesn't start due to its precrule evaluating to false, I can edit the data element with acitivity A1 (which restarts itself). But is there a way to kick off activity D without using a GoToActivity? I want A1 to remain active for future use if necessary.


 Thanks,

I  think this can be handled via process design; specifically by targeting the GotoActivity call to a routing activity that determines what serial activity to invoke while also re-invoking A1.  This is a process design pattern common referred to as a "spider model".  It has been discussed in depth here:  http://k2underground.com/blogs/adriaanandolaf/archive/2007/06/27/workflow-design-spider-workflow.aspx.


HTH.


Reply