Automatically Scheduling and Tracking Work Items
I recently heard a customer question regarding how to manage scheduled work – such as task-based initiatives that need to be done at specific times of the week, month or year.
How could I setup a task based scheduling system where I could build out my list of tasks, the frequency, attach the job aide/work instructions, then have the system assign it to a specific queue when the time for the task to be done comes up. These would all be scheduled items. Once I set the frequency of the task, there would be an engine/function that would create these tasks. I would also like to be able to report on these tasks, if they were completed, etc.
As I was thinking about this, I broke it down into a few items:
- How could we track/manage an individual piece of work?
- How could we setup the list of work items that need to be done, including their specific attributes and routing?
- What would trigger the automatic creation of these work items?
- How could I view and query/report on these work items?
I think all of this can be accomplished using Task Manager and Action Items within Dovetail. Lets give it a whirl.
As I covered in my previous Action Items 101 post – an Action Item is simply a task that needs to be completed. The task could be any number of things – depending on how you wish to use them. Here, we’ll use them for a scheduled maintenance task.
I’ve added a new Scheduled Maintenance value to the Action Item Type list, making it easy to identify these action items.
So now I can create an action item of this type, and I get all the normal workflow capabilities (dispatch, assign, close, etc. )
Here, I’ve created an action item for some work to be done, namely to Test the Disaster Recovery Process. It has a type of Scheduled Maintenance, and it’s been dispatched to the Operations queue.
So we now have a piece of work that can be tracked and managed. Step 1 complete.
Next, we need to look at how we can we setup the list of work items that need to be done, including their specific attributes and routing
Dovetail Task Manager allows actions to occur automatically when a task set is invoked. For a primer on Task Manager (including a video walkthrough), check out this post. One of the supported actions is creating action items.
Here’s a task that I’ve created to test the disaster recovery process:
- The task will Create an Action Item
- The action item Type will be set to Scheduled Maintenance
- I can provide additional Details, such as notes, or a link to reference
- It has a Due Date of 5 days (from the date the action item is created)
- And it will automatically be Dispatched to the Operations queue
Now that we have a task, we can add that to a Task Set.
A task set is simply a collection of tasks. Here, I’ve created a Monthly Maintenance task set, and added the Test Disaster Recovery Process task to it.
I’ve also added another task to Review the Error Logs.
So, we now have a monthly task set with a couple of tasks. Step 2 complete.
Next, we need to have this task set get triggered on a periodic basic.
We can use the built-in Windows Task Scheduler to trigger the creation of the monthly maintenance tasks. It’s super flexible, and provides a lot of options for scheduling.
Here, I’ve created a Monthly Maintenance task that will run on the first Monday of every month.
We have our schedule defined, so now we need to configure the action itself.
How do we have the Windows Task Scheduler trigger the Monthly Maintenance Task Set within Dovetail?
Publish a Message
The way task sets get started is by a message being published to Dovetail Carrier. This commonly happens via a business rule, and Rulemanager will publish that message. But we can also publish a message directly using the handy Publish utility.
In short, the Publish utility makes it easy to send (publish) a message into Dovetail Carrier. I’ve talked about the Publish utility in much more detail here and here, so check out those posts for additional information.
The message that gets published needs a few pieces of data:
- A type of RunTaskSet
- The TaskSetName
- A Case ID (although in this scenario, we’re not concerned about a case, so it can be any case in your system)
So here’s the command line that we want to run:
c:\bin\publish\Publish.exe "type=RunTaskSet\r\nTaskSetName=Monthly Maintenance\r\ncaseId=100"
And here’s what it looks like within the Windows Task Scheduler:
So now, on the first Monday of every month, the Windows Task Scheduler will publish a message to Dovetail Carrier, and Carrier will run the Monthly Maintenance Task Set, and the 2 action items will be automatically created and dispatched.
Action Items can easily be queried on. Here, I’ve created a simple query to view the open scheduled maintenance tasks. I’ve also made it a favorite (notice the filled in star icon), so I can easily run this query at any time.
So we now have an easy way to query and view the status of our scheduled maintenance tasks. Step 4 complete.
Repeat the Process
If we have other monthly maintenance tasks to be done, it’s now super easy to create a new task and add it to the monthly task set.
We can follow a similar process for other time periods. For example, we can create a weekly task set, that is triggered every week. Or bi-weekly, or yearly. It’s the same process.
Like many of the solutions I blog about, I think it’s the general approach rather than the specific outcome that is most interesting.
A few things to note
- Not everything has to be a Case – we have other entities in the system that we can use. Action Items are widely underused.
- Once the Windows Task Scheduler action is setup – everything else is configured within the Dovetail Agent UI.
- We can take advantage of the best tools for the job – i.e. Windows Task Scheduler is super flexible and reliable
- Notice that I didn’t write any code here. No custom coding or scripting necessary.
So there you go – one approach for automatically scheduling and tracking work items. Hope you dig it.