Changing the Process Definition on the Server - "In-Flight" change / utilize new version


Badge +3

Is it currently possible to make an already existing K2 process utilize a newly deployed process version or make an "In-Flight" change? If so how would you do this if you had 1000's of K2 processes that require the update?

The scenario is, the client wants to add another activity in the process (another client event) and they would like all the existing processes (already in-progress) to be updated to enable them to utilize the additional workflow step.

I have my trusty Wrox Professional K2 Blackpearl book and on page 295 it states: "It will be possible in the future to modify the process definition of a deployed process directly on the server without having to redeploy the entire process".

By the way the book is great, very comprehensive!

Thanks again,
Bib


11 replies

Badge +9

Unfortunately the functionality referenced in the book is not in version 0807.  As I understand it, the functionality to move an instance to a different definition version is on the roadmap and expected later this year.

 

Badge +3

To solve the "In-Flight" problem with the current 807 release could I build into each K2 Process an error activity that is used to put the process into an errored state enabling us to retry using a new version. Therefore the steps include:

1. Add Activity with ServerEvent (Code) to raise exception
2. When you wish to update the specific process utilize GOTO and force the process instance to error
3. Use the out of the box "retry with new version" functionality
4. Use GOTO activity to "go back" to the original state

Could this work?


Badge +9
I recall trying something like this on an earlier version and this was not possible. At the time i believe it only changed the specific artifact (event, rule...) that was in error.  however I have not tried it on the latest version so am not sure if this has changed.
Badge +3
Thanks Bob, I will try this approach within the next few weeks so I will keep you posted.
Badge +3

I finally had time to test this. I can confirm Bob is correct.


It only changed the specific artifact (event, rule...) that was in error. I created a new process with 2 client events and an activity with some server code that threw an exception. I added an additional client event and actions, removed the erroring code and retried using the new version. The new actions/clientEvent don't exist. :-(


Is there any other way of doing this? I can see this being a big problem for long running business processes. The K2 book details this feature would be available in the future, can any body shed some light on this, timeframe?  

Badge +9
The functionality you are referring to (from the K2 book) is called "Live Instance Management" and is expected to be included within the next version of K2 blackpearl.  There currently is not an exact ship date, but i would expect it to be within later this quarter or early next quarter. 
Badge +3
Excellent, thanks for the update Bob.
Badge +2

icon-quote.gifBob:
The functionality you are referring to (from the K2 book) is called "Live Instance Management" and is expected to be included within the next version of K2 blackpearl.  There currently is not an exact ship date, but i would expect it to be within later this quarter or early next quarter. 


For the live instance management, would it able to group "instance by event"? i think its would be useful, because if i can route any suspicious logical error to an event (ie: error event). then it would be easier to support a production system, where hundreds and thousand of process might occurs.


regards,
Martin


 

Badge +9
As I understand it, Live Instance Mgmt (LIM) will be an API only implementation.  I suspect the actual call to move versions will be for a specific process instance ID, however this I think this LIM method could be wrapped with some other K2 API calls to get your desired functionality. 
Badge +6

Not sur it will makes sense, but have you look at the blackmarket project on process version migration utility (http://k2underground.com/k2/ProjectHome.aspx?ProjectID=75)?

Badge +3

This is exactly what I am after!!!!! Thank you.


Looks like the K2 Blackmarket project mentioned above has been rebranded as Live Instance Management (LIM) in the 4.5 release. So we could really do the exact same thing in 807?

Reply