Automatic Subcase Creation
While working with a customer this week, they asked about automatic subcase creation, similar to Clarify’s Task Manager module.
For example, if a new case of type “New Employee” is created, then I want to automatically create 3 subcases:
- One subcase for setting up network accounts, dispatched to the network queue
- One subcase for ordering office furniture, dispatched to the furniture queue
- One subcase for ordering a new computer, dispatched to the hardware queue
This is easily accomplished with a business rule and a simple script.
The script
A simple PowerShell script (my favorite new scripting environment) which takes 1 input parameter (a case id number), and then calls the CreateSubcase API that is part of the Dovetail SDK to create subcases and dispatch them to the appropriate queue.
$connectionString = “Data Source=moorea;Initial Catalog=dovetail;uid=gary;pwd=not4youris”; $databaseType = “MSSQL”; [system.reflection.assembly]::LoadWithPartialName(“fcsdk”) > $null [system.reflection.assembly]::LoadWithPartialName(“FChoice.Toolkits.Clarify”) > $null $config = new-object -typename System.Collections.Specialized.NameValueCollection $ClarifyApplication = [Fchoice.Foundation.Clarify.ClarifyApplication] if ($ClarifyApplication::IsInitialized -eq $false ){ $ClarifySession = $ClarifyApplication::Instance.CreateSession() $CaseId = [string] $args[0] $subcaseSetup = new-object FChoice.Toolkits.Clarify.Support.CreateSubcaseSetup($CaseId); $subcaseSetup.Title = “Create Network accounts for new employee”; $subcaseSetup.Title = “Need Computer for new employee”; |
The business rule
Object Type: | Case |
Rule Name/Description: | New Employee Request |
Start Event: | Dispatch |
Cancel Events: | None |
Conditions: | Case Type = New Employee |
Action Title: | Create Subcases |
Message Type: | Command Line |
Start Action: | 0 minutes |
From: | Event Creation |
Using: | Elapsed Time |
Message: | C:\WINDOWS\system32\WINDOW~1\v1.0\powershell.exe C:\work\PowerShell\CreateNewEmployeeSubCases.ps1 “[Object ID]” |
Try it out
Start the Rulemanager service. Create a new case with a case type of “New Employee”. Dispatch it to a queue. RuleManager will then fire the business rule, which will create the 3 subcases.
Looking at the activity log for the case, we can see the rule fired and that the 3 subcases were created:
What I like about this approach is that you can easily modify the script to do exactly what you want, and not be bound by the constraints of a GUI such as in Task Mangler that tries to anticipate whatever complex business requirements you may have.
Rock on.