I have a SharePoint 2013 On-Prem Server, with Nintex WF Standard Edition. I have a list where Nintex workflow is used for an approval process.
When an item is added the workflow starts and assigns a task to a person. Meanwhile, I want to stop users from editing the current item on which the workflow is running.
I have around 75 workflows, on which these activities have to be implemented.
I tried using WF Actions like,
1. Set Item Permission
2. Set Permission (inside Assign a task process )
Instead of editing all the workflows and implementing this change, is there any global fix which can be done in Central Administration or anywhere, which reflects in all the WF's?
If not, what can be done with less effort?
as far as I know there is no central setting that could manage that.
you have to take care of permissions for every list/workflow separatelly.
if I have several workflows on the list that needs to manipulate permissions, I move all the respective logic into a separate workflow. then I call that 'PermissionManager' workflow from all the other workflows that need to customize permissions.
this ensures as well that there is being performed just one permission change at a given timepoint and permissions are not mutually overwritten.
If you have Nintex Forms as well you could always just make a Yes / No column that indicates an Unlocked / Locked state, which could be used to remove the ability to edit / submit the form, on the form level, using Rules.
Otherwise, maybe you could change the permissions of the item so that it cannot be edited, and set up your task forms in such a way that they submit information not directly to the List Item's columns (which wouldn't work if the Item Permissions for the user had been changed in such a way that they couldn't edit it), but instead submit information to Workflow Variables.
That way during the period of the Task's incomplete lifespan, the Item would be locked, but once the Task has been completed you could return the permissions to normal after the task is complete, and push those changes to the item immediately.
I don't have multiple workflows attached to the same list instead, I have multiple lists with 1 or many workflows attached to it spanning across 2 web applications.
Here is my farm architecture.
1 Farm with, 2 web applications, each web application will have multiple site collections/sites and each site will have Lists/libraries inside them.
each list/library contains its own Nintex workflow attached to it.
so you will have to deal with that on each list level.
I'd say the easiest way will be if you create simple 'starter' workflow.
publish the workflow with some dedicated service account.
within the workflow, change item permission so that nobody except the service account account has edit permissions.
next add set action and configure it to run with workflow owner privileges.
within the set action, start your existing workflow.