Gary Sherman
September 16, 2009

I recently upgraded my day-to-day environment to Windows 7 (64-bit) using MSSQL 2008. This week I needed to do some Oracle work, so I needed to get DovetailAgent working with an Oracle 9 (technically database, so I needed Oracle client software. The latest Oracle client version is 11, so I decided to give that a try. The actual Oracle database runs on a VM, so I just needed an Oracle client.


Here are a few notes about getting this working.

Install Oracle Instant Client


Install the Oracle 11 Instant Client for your platform.


I installed mine into C:\oracle\product\11.1.0\client_1


I went to edit the tnsnames.ora file, and quickly realized that there wasn’t one. A little googling led me to a helpful blog post at DBAToolZ.

Environment Variables


Following the instructions from that blog post, I created a

Gary Sherman
January 12, 2009

The case history within Clarify has always been a bit of a sore spot with users for a long time.

It was good – in that it made it easy to quickly review the details of the case.

But, it did have its issues:

Its just one giant text blob. You have no control over the formatting. Its in chronological order. Sometimes this is OK, but typically you scroll to the bottom to read the most recent activity. You don’t have control over the timestamp format (DD/MM/YY vs. MM/DD/YY, as an example). The timezone of the timestamp isn’t clear. It isn’t easy to hide/remove certain entries. Its limited to 32K.

If the case history his its 32K limit, users would see this message:


Gary Sherman
September 29, 2008

One of the things I’ve wanted to do for a long time is have the ability to add comments on objects within the Clarify/Dovetail system. As a specific example, I’ve wanted to be able to add comments to a solution. For those not versed in Clarify/Dovetail speak, a Solution is essentially a KnowledgeBase (KB) article.

By allowing comments, I (and others) can (hopefully) enhance the information that is within the Solution.

For example, consider a  KB article that is available on the web, such as a Microsoft KB article, or a Dovetail KB article. Now, lets say that I use the information in that article, but I run into a bit of a snag, discover another tip or workaround, or perhaps I’ve even found something wrong in that article. What can I do? I’d like to be able

Gary Sherman
August 15, 2008

In previous posts, we’ve covered the basics of Seeker, along with searching custom attributes of an object (such as case.x_notes).

Continuing on, lets look at how to index and search custom objects.

In our environment, we keep track of the software license keys that we send to our customers, and we do this in our Dovetail system.

This is an entirely custom object, so this will make a great example.

The License Key Table

Using BOLT, we can quickly see what this table looks like:


We need to know the database table information so we can modify the documentSpecifications.xml file.


Modify the documentSpecifications.xml file

Seek.exe is the application that performs the actual indexing. The documentSpecifications.xml is the configuration file that seek.exe uses so that it knows what to index.

The documentSpecifications.xml

Gary Sherman
June 24, 2008

jqueryJohn Resig (creator of jQuery) recently posted a bunch of his presentations online, focused on JavaScript and jQuery. Check ’em out.

I’m fast becoming a huge fan of jQuery, and we’re now using it a lot more within Dovetail Agent.

Not only is the library itself cool – but the plethora of available plugins really make it rock.

Gary Sherman
May 5, 2008

A common way of expressing dates nowadays is to represent them as an approximate age.

For example, rather than saying something happened at 5/5/2008 4:21:01 PM, we can say it happened one minute ago.

I wanted to use this in DovetailAgent to show the age of the Search indexes. A little Googling brought me to John Resig’s implementation of prettyDate() in JavaScript.

I tried it out, it was OK.

Looking through the comments on John’s post, I saw that Dean Landolt posted an updated function that I liked better.

I tried it, but it still had a few issues.

Finally, Zach Letterman commented that he updated Dean’s script, and posted a newer version.

Success! Exactly what I was looking for.

Now when I see my search results, I can also see how current my search data is, in an easy to consume format, without having

Gary Sherman
December 10, 2007

Many customers use hierarchical (multi-level) drop-down lists in their Clarify/Dovetail implementations. So, when one level of a select list changes, the down-level lists change as well. Clarify allows up 5 levels for a list.

As an example, in baseline Clarify, there’s a list titled CR_DESC that is a three level list for CPU, Operating System, and Memory. When I change the CPU from PC to Sun, the operating system and memory lists need to change as well.

Default values show:


Changing the CPU to "SUN" changes the O/S and Memory lists:


In a client/server app, this is pretty easy to do, as the onchange event of one list can simply update the down-level lists, either by making a

Gary Sherman
November 14, 2007

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”;

Gary Sherman
October 29, 2007

In a call center, most agents tend to stay logged into their CRM application all day long, as it is their primary use application. However there are also many other users who simply log in occasionally, do what they need to do, then log back out again. Personally, I fall into the later category. I log in and out of our Dovetail system all day long. Even more so, I log in and out of my development instance all day long. Which means every time I log in, I have to re-enter my password. Actually, I have to open IE, click my bookmark for my development Dovetail Agent site, enter my password, and click the Login button. Since I do this all day long, I wanted an easier way to do this.

One Click Access

Dovetail Agent (formerly fcClient) needs

Gary Sherman
October 8, 2007

This was an unbelieveably exciting session at the ALT.NET conference. Scott Guthrie demo-ed an upcoming ASP.NET MVC framework. It rocked!

The principles:

Separation of concerns, unit testing, red/green TDD, maintainable Extensible and pluggable Enable clean urls and HTML Integrate nicely within ASP.NET + .NET core code, support static + dynamic languages

Everything is based on an interface, including IHttpRequest and IHttpResponse, which makes them mockable. Jeffrey has a good overview here.

I am not an ASP.NET developer. I am a Classic ASP developer. I have watched my co-workers develop ASP.NET (using webforms) and found it overwhelming and confusing. I have been recently watching Ruby on Rails developers, and I have been jealous. Templating that makes sense, clean separation of controller and views, explicit and clean HTML, and testability. At first look, it looks like Microsoft

International: +1 (512) 610-5400
Toll Free: 1 (800) 684-2055