Since you are using an .aspx form, are you also using the K2 API to access the process? If so, which method are you using to action the worklist item?
If you are using the ProcessInstance.Update() method in the API, then yes users must have Admin permissions on the process to use this method. The WorklsitItem.Actionso].Execute() method can be used by anyone to whom the task is assigned (with View or View Participate rights).
Note that if you are trying to allow users to save their changes without completing an activity, you should provide a Save Changes action on your activity, but specify that the action does not complete the work item. You then use the WorklistItem.Actionst].Execute() method, and your users only have to View or View Participate rights on the process
Thanks for the reply. I inherted this code, but I actually found both calls in the submit button code behind
At first, the aspx page saves the possible new values to the "document metadata" xml (this is a sharepoint document approval). Then it calls
wi = wfConn.OpenWorklistItem(this.WorkItemSerialNumber);
wi.ProcessInstance.XmlFieldss"DocumentMetadata"].Value = xmldoc.OuterXml.ToString();
wi.ProcessInstance.Update();
If that is successful it later actions the task:
wi.ActionsoddlActions.SelectedValue].Execute();
So I guess my question now becomes, is it necessary to update that xml manually before the workflow action?
Otherwise I'll just have to give them Admin rights.
I learned something today. Thank you.
@dpknudsen wrote:
So I guess my question now becomes, is it necessary to update that xml manually before the workflow action?
No, its not. When you call the Execute() method, it will also save changes you have made to the WorklistItem.ProcessInstance object.
In the code you posted, you can remove the wi.ProcessInstance.Update() call and accomplish the same thing with the Execute() call without giving your users admin rights on the process.
We use .aspx forms exclusively for process front ends, and this is how we do it.