-
Notifications
You must be signed in to change notification settings - Fork 17
Automatic Task Distribution
Some organizations at the Board support a standard assignment process to assign tasks to their team. Automatic Task Distribution solves this need.
NB: This is not how cases are assigned to VLJs. See Automatic case distribution for how cases move from Case Storage to a Judge's assign queue.
Automatic Task Distribution is active on specific Caseflow Organizations as requested by the corresponding Board organization.
Caseflow Organizations that use this feature are, as of 2020-April:
Round robin assignment rotates assignments evenly through an entire team by distributing a task to each user on a team before starting back at the beginning.
The entire set of users for a team is pulled, in order, along with the last assigned user-visible task. The next task will be assigned to whomever is after this last visible assigned task's assignee.
Implemented in Caseflow in the RoundRobinTaskDistributor Model
The BVA Dispatch team uses pure Round Robin without any overrides.
Implemented in Caseflow in the BvaDispatchTaskDistributor
The VLJ Support team uses a modified Round Robin.
If the appeal for this new task already has an open task assigned to any member of the VLJ team, the next task will always be assigned to that team member. The intent is to have the one member, who is already working on the appeal, handle any additional tasks on that same appeal.
Implemented in Caseflow in the ColocatedTaskDistributor Model
The Pulac Cerullo team is a single person. The task is automatically assigned to the first member of the team
Written 2020-April. Code will drift
When a Task is created that is assigned to an Organization we ask the organization if the user task should be automatically created.
after_create :create_and_auto_assign_child_task, if: :automatically_assign_org_task?
def automatically_assign_org_task?
assigned_to.is_a?(Organization) && assigned_to.automatically_assign_to_member?
end
That function checks if this Organization overrides the method to find the next assignee to return any non-nil value
def automatically_assign_to_member?
!!next_assignee
end
If true, create_and_auto_assign_child_task
creates the user task by invoking that next_assignee
method
def create_and_auto_assign_child_task(options = {})
dup.tap do |child_task|
child_task.assigned_to = assigned_to.next_assignee(**options)
child_task.parent = self
child_task.save!
end
end
ColocatedTask overrides create_and_auto_assign_child_task
to pass in the appeal
def create_and_auto_assign_child_task(_options = {})
super(appeal: appeal)
end
Bugfix: in 2020-May we addressed a bug where RoundRobin distributions type considered any task of their specified Type, even tasks invisible to users. When analyzing assignment history across this point, you may need to factor that in.
- Home
- Acronyms and Glossary
- Caseflow products
- Caseflow Intake
- Caseflow Queue
- Caseflow Reader
- Caseflow eFolder
- Caseflow Hearings
- Caseflow Certification
- Caseflow APIs
- Appeal Status API
- Caseflow Dispatch
-
CSUM Roles
- System Admin
- VHA Team Management
- Active Record Queries Resource
- External Integrations
- Caseflow Demo
- Caseflow ProdTest
- Background
- Stuck Jobs
- VA Notify
- Caseflow-Team
- Frontend Best Practices
- Accessibility
- How-To
- Debugging Tips
- Adding a Feature Flag with FeatureToggle
- Editing AMA issues
- Editing a decision review
- Fixing task trees
- Investigating and diagnosing issues
- Data and Metric Request Workflow
- Exporting and Importing Appeals
- Explain page for Appeals
- Record associations and Foreign Keys
- Upgrading Ruby
- Stuck Appeals
- Testing Action Mailer Messages Locally
- Re-running Seed Files
- Rake Generator for Legacy Appeals
- Manually running Scheduled Jobs
- System Admin UI
- Caseflow Makefile
- Upgrading Postgresql from v11.7 to v14.8 Locally
- VACOLS VM Trigger Fix M1
- Technical Talks