Updating form data and reassigning approver question

  • 20 December 2012
  • 2 replies
  • 2 views

Badge +4

Hi there,
I have a K2 process integrated with InfoPath form, it is similar to below:


Initiator -> Manager approval -> VP approval -> EVP approval -> HR approval(s)


Requestor initiates the process through SharePoint Form library. there are some requirements:


1. Once it is initiated, the request form needs to be visible on SharePoint site to all users which will include persons not in above process.


2. Before Manager approval (the first approval in process), initiator should be able to modify data on the request form. i.e. add new comments in comments box.


3. administrator (people in a SharePoint Group) should be able to reassign approver. i.e. if the process is assigned to VP1, and VP1 is not available, administrator needs to assign to VP2; after reassignment, VP1 is not allowed to approve form but VP2.


Currently, I load the request form to SharePoint site after initiation.


For requirement 2, I can click the form in SharePoint form lib and update the form, but it just created a new form instead of update the one.


For requirement 3, the result is similar to requirement 2.


It ends up with multiple processes (multiple form in form lib as well) for one form if updating form or reassign approver.


I would like to know how to implement this without generating multiple processes.

Thanks,
David


2 replies

Badge +4

I tried to use K2 admin to reassign the task. This is partail help.


I found K2 did not send email with url to the new assignee. I have to manually send email.


But how can I get the url of a task?


 

Badge +8

For requirement 2, create a client event in the process that assigns a task to the Originator that allows for change. You will need to expire the old Manager Approval event however as the data in the Activity IP XML field is changed and recreate it. The downfall there is that, if you are using email notifications, the serial number will change. Once the Manager has approved the task, you will also need to expire the task assigned to the originator.


 


For 3, you will probably need to create a custom web service (or web app) that makes use of the SourceCode.Workflow.Client API to do a redirect. Alternatively, you can attempt a similar approach to the option above, i.e. create a separate task for the relevant users, allowing them to reassign. Once the reassignment has been configured, expire the existing activity and recreate it with the new set of users.


 


Play around with the GoToActivity method options available in the events, it's pretty much what you will need. You might also need to use the ExpireActivity method.

Reply