Questions and discussion about using ProcessMaker 2: user interface, running cases and functionality
Forum rules: Please search to see if a question has already been asked before posting. Please don't ask the same question in multiple forums.
By salmaan
#3117
I have been developing the scenario, where there is pressing need to assign a task to a group of user.

Lets take an example of Support personnel, where by s/he is ill, when the task is automatically assigned to him / her. Now if s/he does not checks the mail and / or s/he is not logging in to process maker, the task at hand is stuck in her / his inbox.

Can we have this developed, as to a task is assigned to a group, rather than a user, so any other fellow peers can pick up that task and work towards rather than that task is locked by just one user.????

Or are there any work around. Please advice.
User avatar
By amosbatto
#3528
That is exactly the idea of groups in ProcessMaker. Create a group. Assign users to the Group, then assign a task to the Group.

To create a group, go to the "Users" tab, then click on the "Group" sub-tab, then click "New Group" and assign users to the group. Then right click on the task and select "Users and User Groups" from the menu. The click on "Assign" and chose the group to assign to the task.
By tallroth
#3711
Perhaps amosbatto is answering a question that is different from salmaan's intended question.
amosbatto wrote:That is exactly the idea of groups in ProcessMaker. Create a group. Assign users to the Group, then assign a task to the Group.
Whereas this is true in the context of a Process Task (in the workflow definition), it is not true of a Case Task (in the specific instance of the workflow) which is, I believe, what salmaan really meant.

When you assign the Process Task to a group, you are indicating that when a Case Task comes up for assignment, PM should either cyclically, or manually assign it to a specific user within that group. In contrast, what would be desirable is to be able to assign the case to a group without a specific user defined. This would allow for "claiming" cases rather than "assigning" them.

This is exactly the question I had in the post http://forum.processmaker.com/viewtopic.php?f=7&t=1242.

I have experimented with a process that has a task assigned to a group, but after derivation and cyclic or manual assignment, it is always assigned to one specific user. I would like to experiment with variable assignment, but don't understand how I can get that to work. Alternatively, I am trying to assign the task to one specific (dummy) user in the desired group, then modify each user's ToDo list to show the dummy user's queue as well. Then, allowing a user to Reassign from the dummy to themselves, this functionality could be accomplished. This seems to involve quite a few different things however, so if anyone else has been successful on this endeavor, it would be helpful.

thanks!
User avatar
By amosbatto
#3726
I don't see an easy way to do this, without some advanced programming on your part. Tasks can be assigned based on a variable. (Right click on the task in the Process Map, select "Properties" > "Assignment Rules" tab. Select "Value Based Assignment" and then specify the Assignment variable). On the previous task, you would need call a DynaForm, where the cases are shown, and someone would select it and specify the user who is in assigned to the task. That choice would get stored in the Assignment variable.

You could also put all this on an external web page with web services programming. And then use the function sendVariables() to set the Assignment variable in ProcessMaker.

That is the complicated way. The easy way is simply assign the task to a fictional user whose username and password everyone knows. Then assign everyone in your organization to the task on an ad hoc basis. (Right click on task and select "User and user group (adhoc)".) Then anyone in your organization could log to ProcessMaker as the fictional user and reassign the case to himself/herself. Then logout and login with his/her normal username and handle the case.
User avatar
By amosbatto
#3789
No, it is not possible to use "Assignment Rules" with multiple users. ProcessMaker's terminology is a bit confusing here, because we are using the word "assign" for two different things. You can "assign" multiple users and groups to a task, but the idea of "Assignment Rules" is to specify the specific user (from the pool of assigned users) who has the task at a particular time. Only one user can work on a task at a time.
By peterspikings
#4146
Hi,

I'm evaluating PM now and it looks good but I'm a bit dumb founded it doesn't do this already. If I was doing a workflow system from scratch I'd have tasks routed to groups, not a specific user. Assignment to the user in the group should be done at the point when the user is ready to do work.

As others have said that way you avoid the nasty problem of a particular user being absent and the work assigned to them already getting stuck until they come back or an admin steps in to reassign the cases.

I can see workarounds to this are going to be nasty, any bright ideas anyone?

Also I was expecting to find that you could make users work in a heads-down manner where they don't have to choose what to do next but PM would throw them into the next task they are allowed to handle automatically as soon as they complete one. That's not as critical as the above issue though and I may not have found it yet.

Thanks,

Peter.
User avatar
By amosbatto
#4147
After you assign a group of users to a task, there are several ways to handle this problem, depending on your level of programming skill:

The easy way:
Right click on the task, select "Properties" from the menu. Go to "Assignment Rules" tab and select "Cyclical Assignment" which is the default, then go to the "Timing Control" tab and put it on a very short time period, like 2 hours, so the task will cycle quickly between the users. Also go the "Notification" tab and activate the option to send an email to notify the user when assigned.

Edit: This won't work because users are assigned to each new case with cyclical assignment. You have to create an event which fires a trigger and reassigns the case.

The more difficult way:
Create a database which has the time schedule when users will be at work. Create a trigger which uses executeQuery() to look up who is available at a particular time and decide who to assign the case to before task derivation. Something like:
Code: Select all
$result =  executeQuery(SELECT USER_UID FROM MYUSERS WHERE TIME_START >= '$currentTime' AND TIME_END < '$currentTime', $dbconnection)
@@NextAssignedUser = $result[1]['USER_UID']
Then right click on the task, select "Properties" from the menu and go to the "Assignment Rules" tab. Select "Variable for Value Based Assignment" and enter in the box: @@NextAssignedUser

The really fancy way:
Use web services functions to implement a "self-service" assignment to the task, where the user chooses the case from a pool of available cases.

You could implement it in an external web page where the user selects the case then switches to ProcessMaker to work on the case.
Alternatively, you could implement it as a trigger in a different process, where the user would select the case, then click a link to switch to the case.

Here are the basic steps:
Use the web services login() function to login as a supervisor or admin (or some with the power to see all the cases for the process). Then use the caseList() function to pull up a list of the cases. (It might be easier to use executeQuery() if you want to only find particular cases. Have the user select a case. Then use reassignCase() to assign that user to the case. Then Provide a link to the case.

If doing this inside ProcessMaker, here would be the steps:
1.Create a separate process called "Select a case" which will be used to do the self-select and assignment to cases for a different process.

2.Execute trigger to login as supervisor and use caseList() to populate an array (you may have to filter out the cases which aren't relevant).

3.Display a DynaForm with a dropdown box where the user can select the case to work on.

4.After the DynaForm closes, use reassignCase() to assign the current user to the case.

5. Display another dynaform telling the user that the case was successfully reassigned to him/her and provide a link to open the case.

(If you want self service and the programming is too complex for you to handle, contact ProcessMaker and we can implement an integrated self-service assignment which is much nicer than what I just outlined.)
By peterspikings
#4150
Wow, thanks for the excellent reply :)

I'd go down the route of the web service as I'm fine with programming. However see my other post "Perl and WSDL"!

I think the cyclical assignment is OK for now though, wasn't aware of that option.

Thanks,

Peter.
By fisayo
#6978
I will appreciate if I can know more about how to use the Web service to achieve sending a case to multiple users. Can anyone help with the first thing to do? Thanks.
By mikedavies
#6982
With reference to the easy way

"The easy way:
Right click on the task, select "Properties" from the menu. Go to "Assignment Rules" tab and select "Cyclical Assignment" which is the default, then go to the "Timing Control" tab and put it on a very short time period, like 2 hours, so the task will cycle quickly between the users. Also go the "Notification" tab and activate the option to send an email to notify the user when assigned."

Can't get this to work !! Do I need to set up Events and have the cron.php scheduled to run on a regular basis ?

Any help gratefully received.

Mike
By Developer
#7120
I am trying to assign the task to one specific (dummy) user in the desired group, then modify each user's ToDo list to show the dummy user's queue as well. Then, allowing a user to Reassign from the dummy to themselves, this functionality could be accomplished. This seems to involve quite a few different things however, so if anyone else has been successful on this endeavor, it would be helpful.

how to do it?
steps please..?
By stephenpii
#18139
I don't know if this is the correct spot to ask this but it seems closest. The scenerio - Someone is assigned to a task and they go on vacation. They have a backup assigned to do their work. What I want to do is to have a trigger query to see what the status of the assigned user is...Ex (VACATION). After that if the person is not available the trigger would set a variable to the adhoc user of the task.
I'm sure there is a variable for the tasks adhoc user but don't know where to find it. If someone could help that would be greatly appreciated.
By ttweed
#18270
I am new to ProcessMaker and am using the current version. I am not sure if there has been an enhancement in this area since this thread has been going on for a while.

The behavior that I am looking for is the following:

1. Assign the task to a Group
2. Have notification automatically go out to all the members of the Group with a link to the Case
3. First user to click on the link, gets the opportunity to "claim" the case
4. If user "claims" the case, then it is assigned to user
5. A timer could continually send out the notification to the group until the Case is claimed

Is the web service programming option still the right approach for this type of behavior?
By stephenpii
#18276
ttweed wrote:I am new to ProcessMaker and am using the current version. I am not sure if there has been an enhancement in this area since this thread has been going on for a while.

The behavior that I am looking for is the following:

1. Assign the task to a Group
2. Have notification automatically go out to all the members of the Group with a link to the Case
3. First user to click on the link, gets the opportunity to "claim" the case
4. If user "claims" the case, then it is assigned to user
5. A timer could continually send out the notification to the group until the Case is claimed

Is the web service programming option still the right approach for this type of behavior?
Hello ttweed,
Although I have never had the need to use that assignment method, you should be able to do that with "Self Service". You right click on the task, and then click on the "Properties". Goto the "Designation rules" tab. Under that you will see one of the options is "Self Service." When this is selected, all the users will have it come up in their inbox. The first one to take it will be the assigned user. In the "Notifications" tab you can set up an email that will go out to the next users. Note: The email service has to be set up in "Admin" tab of ProcessMaker.

Hope this helps!
By mjeanbaptiste
#794953
Hi,

I'm using 3.2 and i know it has been a while since this thread started. It looks like the solution proposed by stephnpii is not available anymore. Is there a new way to do the group assignment on this version.
User avatar
By amosbatto
#795000
mjeanbaptiste wrote:I'm using version 3.2.1. I see that the approach proposed by stephanpii is no longer available on this version. Is it possible if yes how to do it?
The easy way to do this is to set a "Replaced By" user in the profile of each user. Then any case that would ordinarily be assigned to that user would automatically be assigned to the replacement user if the status of the user is changed to "VACATION" or "INACTIVE".

Of course you can do that manually in a trigger if you want by using Value Based Assignment. For example, if the variable for the task is @@nextUser, then you can use this trigger code:
Code: Select all
$ordinaryUserId = 'XXXXXXXXXXXXXXXXXXXXXXX';
$aUser = userInfo($ordinaryUserId);
if ($aUser['status'] == 'ACTIVE') {
  @@nextUser = $ordinaryUserId;
} else {
  @@nextUser = $aUser['replacedby'];
}
Set this trigger to fire before assignment in the task prior to the task with Value Based Assignment.

If you don't want to use a fixed person, but select one member from a group or one person from the pool of people that are assigned to the task, then see:
http://wiki.processmaker.com/3.0/Intern ... Task.28.29
http://wiki.processmaker.com/3.0/Intern ... roup.28.29

A 1xbet clone script is a pre-designed software so[…]

4rabet clone script is enabling entrepreneurs to e[…]

Parimatch clone script is enabling entrepreneurs t[…]

In the world of cryptocurrency, a wallet is an app[…]