Force users to delegate group tasks


Userlevel 2
Badge +6

I'd like to force users to delegate a task (which were assigned to a group they are in) to themselves.

My main problem with group tasks are that when it's assigned to a group:

- 2 or more group members can open end start to edit it

- In the WF history and during the workflow it's harder to use the Last task Respondent because it will be the Group name... I know I can use the "Last Task Resp. display name", but it's just a workaround.

So the idea is to come up with a general solution  for this like:

-If the current user != task assignee --> Form should be like it's in display mode or everything is disabled

Do you have/know a  short JS or any other solution for this?

Thanks in advance!


16 replies

Userlevel 5
Badge +14

do you use flexi task action to assign a task?

if so, have you investigated its 'Create individual tasks for all group members' option?

Badge +5

If you are trying to get the name of the person who responded to the task instead of the group name, Marian's approach above should do the trick for you.

However if you are trying to make sure not more than one person in the working is working on the same task (ie avoid double handling). You could add another assign flexi task with one outcome "Claim Task ownership" before your main assign flexi task so this way once one group member claims the task the rest will receive "Task has been claimed. Your response is no longer required" . Hope this make sense

Userlevel 2
Badge +6

Hi,

Thanks, the base idea is good, but there's more behind then this.

It's an operation team, they get tasks (as group) and somebody has to work on it, like a ticket. Sometimes whoever claims the task can finish it, sometimes it takes more time or just decide, she don't want top do it, give it back to the team and somebody else has to take the task.

Delegation is the best outcome, it's kinda decided, I just don't know how to force it. sad.png 

Userlevel 2
Badge +6

It's not possible in this case, I need to assign to the group and it need to be delegated.

Badge +5

Interesting .

Is this a scenario where one person has to first nominate a task owner and then the task gets assigned to that person? Then if the person nominated gets the task and has to do it ( or delegate to another person)?

Thomas

Sent from my iPhone

Userlevel 2
Badge +6

Nope, nobody knows who will pick it from the group.

Userlevel 5
Badge +14

I think delegation is not proper approach for your process.

you do not mention it, but if 1st assignee don't like/can reject the task, I would say 2nd or n-th assignee can do so as well. I can not imagine how would it be possible to hand over delegation forth and back.

you would completely lose track of it.

I would completely manage it with state machine.

- 1st state would like 'Select responsible person': the task would go to group of responsible persons, whoever could pick a task (no need to 'take it') and assign the responsible one to process it. he/she could select herself or any other group member (eg. being a manager).

apart from assigning the responsible, this might be a step for formal checks whether incident meets all the business rules, whether no additional data are needed, etc. one who makes the decision could as well reject the task if an incident is not valid.

- 2nd state would be like 'Process the task': assignee from previous step would need to take care of it, he/she could either fulfill it, reject it or hand over to one another assignee, or any other action you may need. depends on you how you  model the process.

you might define some other states if you need, like escalate to support L2 team, escalate to manager, etc.

this way you have much more flexibility and control over process.

Badge +5

Can you give us a bit more details on the business process so a suitable solution can be recommended

From you described , a person can pick a task and then decide not to do it and put it back? In this case wouldn't it be better to not pick the task in the first place unless she/he can do it.

Another scenario would be someone mistakenly took a task and just want to assign back to the group in this case delegation to the original group would make sense.

Thomas

Sent from my iPhone

Userlevel 5
Badge +14

want to assign back to the group in this case delegation to the original group would make sense

Thomas Xu​​, I would have (at least) two serious doubts with that...

1. it looks like Szabó Róbert doesn't want/like individual tasks per group members. so we have one task that is being delegated back and forth.

so, when the task is created all the group members get notification they should take care of the task.

once the task is delegated to a single assignee, all the group members but that 'lucky one' get a notification  their response is not required anymore (if not disabled explicitly).

then the 'lucky one' decides to return (delegate) the  task back to the group, again notification goes to all the group members to take care of task.

from Robert's description it's not clear that this round-trip can not happen several times.

so, soon or later every group member (or common group mailbox) id flooded with plenty of notifications, where 99% of them are (already) irrelevant.

I wouldn't like to work with such a system.

2. an ordinary user should delegate a task back to THE GROUP.

so, he/she presses delegate link and is provided with list of all the AD + sharepoint users and groups.

do you expect an ordinary user will know which group is the right one?

even if you write him/her down one single group to chose, you can not avoid he/she selects anything else for whatever reasons.

I wouldn't see it reliable at all.

Badge +5

Marian Hatala​, I couldn't agree more on avoiding sending too many notifications to a group of people. I am just simply saying in some scenarios delegating a task to a group can be considered.


It really comes down to the business process and who the task assignee is. For example, if a task is meant to be assigned to a IT manager to decide whether to delete to general helpdesk team or a network team he would (or have been told) know. Its just like remembering an shared mailbox name or a distribution list.

As mentioned above, I am hoping Szabó Róbert​​  could give us a bit more details on the business process so we can come up with a suitable solution.

Userlevel 2
Badge +6

Example: There's a group (10+ employees) called "accounting". They have a AD or SP group. People from different org units can send them tasks to work on. The workflow give the tasks to the TEAM. A task can take 15 min to an hour and they have other interruptions from other systems. So if a user pick a "bigger" task, starts working on it but something (interrupt request) comes up after 5 min they want to put the task back.

If they start working on it without delegation, it's possible that 2 or more with start the same. (email notifications are not used here because of of the big amount of tasks...)

Thanks for the brainstorm and the help! happy.png

Badge +5

1. You definitely need to implement "claim task ownership" functionality( using a assign Flexi task for example) as previously mentioned to avoid double handling of the work .

2. you can use "assign Flexi task" to assign a task to every member . You can disable the notification email and educate user to use "my workflow tasks" Nintex web part as "inbox" to track what task is assigned to them

3. The part where a member may put the task back to the queue doesn't make sense to me because that decreases efficiency . I think it would be better to leave the task with the same person to continue when their interruptions are handled. However , if you wish to avoid a task sitting with a person for too long then you can use " reminders" and "escalations" in the task to assist . And in the case where the assignee doesn't know how to complete the task.

4. If there are various stages of the workflow ( eg. Accounting, payroll, task completion notify owner) "State Machine" is definitely an option. Just a FYI from my personal experience I had serious issues with it stuck at changing state in a workflow I did before. Having said that this was a earlier version of the workflow so it may be more stable now. I personally prefer to use a loop and maintain a workflow state variable to achieve this .

Thomas

Sent from my iPhone

Userlevel 2
Badge +6

Do you have any funky javascript which I could use?  If "Current User" != "Approver" (these are from the Common reference list) the task appears as disabled completely and show up the delegate link?

Userlevel 2
Badge +6

Thanks, but it's not an option.

Userlevel 5
Badge +14

you can achieve customized formating of single items by implementing client side rendering.

some good examples are eg. here  Office Client-side rendering (JS Link) code samples in JavaScript

I think sample1 (priority color) is quite similar to your requirement and you can easily adapt (eg to display disabled items in grey)

for delegate link you can create a calculated column and build it like

{WebURL}/_layouts/15/NintexWorkflow/DelegateTask.aspx?List={ListID}&ID={TaskID}

reg.

If "Current User" != "Approver"

keep in mind that if task is assigned to a group, approver will never equal to current user.

Userlevel 2
Badge +6

The decision is to develop a small custom control for Forms in which we check:

- Current User == Approver (the one who's responsible for the task, Group or Person)

- If they are the same (Current user is the approver) nothing happens

- If it's different then we DISABLE all controls on the form and show the delegation link with a message. Through delegation he/she can delegate the Form for herself/himself.

With some Custum JS or Rules you can do the same manually, but we need a general solution for hundred forms.

Thanks for your help!

Reply