Closing (and reopening) a solution
A not-so-uncommon request I’ve heard over the years is the need to be able to close a solution. You can close a case, close an action item, close an opportunity – but you can’t close a solution in the out-of-the-box product. But this is a pretty easy customization – so lets walk through it.
Why close a solution?
Knowledge can become outdated. But we may want to retain that knowledge, especially when we’ve linked these solutions to cases or change requests. By closing it, we can mark it as no longer relevant, and closing will also remove it from a user’s wipbin and all queues.
Status and Condition
Most workflow objects have a status and a condition. We can use a similar mechanism here. We’ll use the Open and Closed Conditions (same as for a case). I create a new user-defined drop-down list to hold the list of statuses for the solution.
Data Model Changes
I’ve added an x_status column to the probdesc table, which will hold the status of the solution.
Dovetail SchemaEditor + a little schemascript does the trick:
<schemaScript xmlns=”http://www.dovetailsoftware.com/2006/10/SchemaScript.xsd”>
<addColumn name=”x_status” table=”probdesc” ><length>100</length></addColumn>
</schemaScript>
There is already a relation from solution to condition – so we’re good there.
New Activity Codes
I’ve added 2 new custom activity codes – one for Close Solution and one for Reopen Solution. You can import the DAT file using diet, dataex, or UI Editor. Or create them using the Activity Code UI within Dovetail Admin.
Close Solution API
I created a CloseSolution API. I’ve created it in ClearBasic and in Javascript using the Dovetail SDK)
The code (ClearBasic and Javascript) is available on Clarify Toolbox.
Reopen Solution API
To complete the process (and make testing easier), I created a ReopenSolution API. I’ve created it in ClearBasic and in Javascript using the Dovetail SDK)
The code (ClearBasic and Javascript) is available on Clarify Toolbox.
User Interface
From within the UI (in this example, within the Clarify Classic Client), I added a Close Solution and a Reopen Solution button, which call the APIs when clicked. I also added a bit of code to refresh the form and to proper enable the controls when a solution is closed or reopened.
If so desired, you could get rid of the close and reopen buttons, and simply fire the Close or Reopen APIs based on changing of the Status drop-down control. Pretty trivial to do. Just a different approach.
The code for the solution form (form 321) is available from Clarify Toolbox.
Open Solution:
Closed Solution:
DovetailAgent
A similar customization can be done within DovetailAgent.
Activity Logs
The APIs create activity logs, so you can see when solutions are closed and reopened:
Solution Librarian
Going back to the desire to get solutions out of someone’s wipbin (to reduce clutter) – a different solution I’ve done in the past was to create a Solution Librarian user. This was essentially a dummy user, who we could assign solutions to, thus removing the solutions form our wipbins. This does work OK, but creating dummy users is always a design smell to me, and this means we also lose the true owner (which can be useful in notifications). Just a different approach to the problem.
Closed Solutions
And there you have it. Should you have this need in your business – I hope you find this helpful.