Due to various reasons it can happen that a task on a system ends up without any user available to process it. This may happen because roles users / groups or roles that define assignees to a task are empty (no performers are configured) or the assignees were deleted and no longer exist. The first script provided here identifies these tasks and prints them out in a JSON format or saves them in a JSON file. With the second script it is possible to reassign these tasks based on some rulescriterias. They You can be downloaded from the bottom of download them from this page.
The scripts uses REST calls to communicate with the target system. If the target system returns an error status code, the error details will be printed on the command line.
...
This script identifies tasks without any users and print prints them out in JSON.
Parameters
...
Code Block | ||
---|---|---|
| ||
[ { "ActivityId": "37D6BEE1BFE84ECE9E10BDA0D385AB6F7C5C8AA9A6A24F71B4F17F9C3E2350EE", "ModelName": "EmptyRoleComplexFlow", "ModelId": "951049FDF8E14100BE7D810A2F018177A7DDB1648BEF4D2B8545BB173DBC2DB1", "Link": "http://localhost/app/management/index.html#/processdetails/7C854FEAF9CA4AD89FA5653A7E5CF07243F7FC4D83054CBAA4553804D9EBCEAA", "ProcessName": "EmptyRoleComplexFlow 21815", "ProcessId": "7C854FEAF9CA4AD89FA5653A7E5CF07243F7FC4D83054CBAA4553804D9EBCEAA", "Reason": "EmptyNo groups or roles.existing performers", "ActivityName": "actWorkItemverification" }, { "ActivityId": "3D4BE4E4140D4275A93789C1155C55776BEDE7FD2CE64C92A47B607B4B5F1577", "ModelName": "LoopFlowComplexFlow", "ModelId": "39B5B353A90141C9B4751E07344D97B8A7DDB1648BEF4D2B8545BB173DBC2DB1", "Link": "http://localhost/app/management/index.html#/processdetails/2CA098BD1F9E4E428F7969567D3E67585D18FD2C779C4524826681411AD4B8EA", "ProcessName": "LoopFlowComplexFlow 216", "ProcessId": "2CA098BD1F9E4E428F7969567D3E67585D18FD2C779C4524826681411AD4B8EA", "Reason": "PerformerNo does not exist.configured performers", "ActivityName": "Startverification" } ] |
Every JSON output element contains an attribute Reason stating the reason why this task has no users performers as well as some more attributes. These are the possible reasons:
No configured performers: There are no performers configured for this task because the list of configured performers is empty.
No existing performers: There are pe rformers configured for this tasks but none of them exist on the system.
No resolved performers (only for core-service version 10.0 or higher): The task has included and excluded performers configured, but the list of resolved users is empty. This may happen because the task has the exact same list of included and excluded performers configured.
Script 1 version history
Script Version | Date | Author | Supported core-service version | Description | Download | ||||
---|---|---|---|---|---|---|---|---|---|
2.0 | 15th Mar 2024 | A-Team | 10.0 or higher |
|
| ||||
1.4 | 15th Mar 2024 | A-Team | up to 9.x |
|
| ||||
1.3 | 12th Feb 2024 | A-Team |
| ||||||
1.2 | 28th Nov 2023 | A-Team |
| ||||||
1.1 | 10th Nov 2023 | A-Team |
| ||||||
1.0 | 24th Oct 2023 | A-Team | - |
Script 2: Reassign identified tasks
This second script loops through a JSON list of tasks and reassigns them based on some criterias.
Parameters
This The script supports passing various parameters explained below.
...
This function loops through all tasks and reassigns a task to a user with the given ID if the property has the expected value. If not, this the task will be skipped and not reassigned.
...
This function loops through all tasks and reassigns a task to a user with the given ID if the condition applies. If not, this the task will be skipped and not reassigned.
...
If the task has no variable with the given name, it will be skipped.
You can find some examples on how to call these functions in the script.
Example
This script needs a list of tasks that should be reassigned. You can provide this list either ...
...
By using a pipeline, you can search for tasks without any users and reassign them in one single command. The tasks found by the first script will be directly passed to the second script.
Example output
Code Block | ||
---|---|---|
| ||
2 task(s) found to reassign.
Loop through all tasks and reassign them based on value of property: 'ModelName':
If value equals 'ComplexFlow' assign to performer with id '42636D649F14415A895752454B8E480B'
Otherwise, assign to performer with id '1EF9EB6E7F2F41D69D5408609CFF5FFD'.
If task has no property with this name, it will be skipped.
----------
1/2: Task with activity id '7C5C8AA9A6A24F71B4F17F9C3E2350EE'
-> SUCCESS: Performer with id '42636D649F14415A895752454B8E480B' added to list of included performers.
----------
2/2: Task with activity id '6BEDE7FD2CE64C92A47B607B4B5F1577'
-> SUCCESS: Performer with id '42636D649F14415A895752454B8E480B' added to list of included performers.
----------
2 task(s) reassigned. |
Script 2 version history
Script Version | Date | Author | Supported core-service version | Description | Download | ||||
---|---|---|---|---|---|---|---|---|---|
2.0 | 15th Mar 2024 | A-Team | 10.0 or higher |
|
| ||||
1.0 | 24th Oct 2023 | A-Team | up to 9.x | - |
|
...
Please note that these scripts are not part of the product and are not officially supported.
...