Dovetail SDK
Gary Sherman
August 5, 2013


I got a question today about how to close a case when all of its subcases are closed.


You could certainly add code to your application (such as the Clarify Client or Dovetail Agent), but to me, this sounds like more workflow automation, and we can do that with business rules. Plus, if you use multiple client applications (lets say the Clarify Client and Dovetail Mobile) – you don’t want to have to customize each of those apps.


To accomplish this task, we’ll create a business rule that fires when a subcase is closed. If all of its sibling subcases are also closed, then we can close the case.


First wrinkle: How do we know when all of a subcase’s siblings are also closed?


One way to do it is to look at

Gary Sherman
May 29, 2013

A few months ago, I demonstrated using a custom raplet with Rapportive and Gmail to bring Clarify / Dovetail information into the context of your email.


As I mentioned, I initially hacked together some code as a proof-of-concept.


I’ve cleaned up the code a bit, and have made it available on Github:


The code is freely available, although it does use the Dovetail SDK, so you do need an SDK license key.


I totally dig this integration. It’s not uncommon that I exchange emails directly with customers, and having additional case information right there in context is pretty sweet.




Hope you find this useful.


Rock on.

Gary Sherman
May 16, 2012

As a follow up to my earlier post on Calling Oracle Stored procedures using Powershell, one of our customers shared another example of doing something similar.


He’s calling an Oracle stored procedure using It uses both input and output parameters. Also, he’s using theSqlHelper object from the Dovetail SDK, whereas I used ADO.NET objects. SqlHelper is basically a wrapper around ADO.NET objects.


The more examples the better!



Header declaration of the stored procedure VB code



Great stuff. Thanks for sharing Jim!

Gary Sherman
March 21, 2012

Kevin recently blogged about Dovetail Bootstrap, a free, sample application which helps Dovetail SDK developers get up and going and creating web applications quickly.


The code for Dovetail Bootstrap is open and available on GitHub. Feel free to watch, fork and improve the code.


One of the capabilities demonstrated in Dovetail Bootstrap is a web API – specifically the Create Case API. I wanted to do a quick walkthrough of calling this API.


Wikipedia has this to say about Web API:

A web API (Application Programming Interface) is typically a defined set of HTTP request messages along with a definition of the structure of response messages, typically expressed in JSON or XML. While “web API” is sometimes considered a synonym for web service, the Web 2.0 applications typically have moved away from SOAP-based web services towards more direct REST-style communications.


The example we’re

Gary Sherman
January 11, 2012

Last year I posted about automated deployments for Clarify. From that post:


Doing automatic deployments of Clarify changes is pretty straightforward. If I was starting off, I would use a contemporary build script tool such as nant or rake, and simply have it call out to your schema editing tool (Dovetail SchemaEditor, or ddcomp) to perform schema changes, use an import tool (such as Dovetail ArchiveManager, or dataex) for importing forms, and then compile your Clearbasic code using CBEX, or just import it as a DAT file using Dovetail ArchiveManager. File copying, registering components, configuring web servers, and setting permissions are all common tasks that are available in these build tools as well.


Should you also need to do additional stuff in your database, some code that uses the Dovetail SDK can be useful.


You could tie

Gary Sherman
November 11, 2011


One of my annoyances within the Clarify Classic Client has always been the case history.



Its just one giant text blob. You have no control over the formatting. Its in chronological order. Sometimes this is OK, but typically you have to 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. etc…


I’ve posted in the past about the challenges of the case history, as well as how we’ve improved this within DovetailAgent.


In a recent discussion with a customer, their end users were complaining about the case history. Since they’re not yet ready to move to a Dovetail web app (Agent

Gary Sherman
October 31, 2011

Last we left off, we turned a pseudo relation into an exclusive relation.

Specifically, we created a participant2user relation, which allowed us to traverse from an activity to the user who participated in the activity with a path like: focus_obj2act_entry:fact2participant(role_code=1):participant2user:login_name

Real World Usage

As promised, lets give this some real world usage. Specifically, lets use this to notify someone when a case (or other workflow object) is yanked from them.

A few years ago, I showed how to implement yank notifications by email. In that post, I gave some details about the challenges behind using a business rule to do this:

The problem with implementing this as a business rule is that there is no data that holds onto the previous owner.

Clarify’s solution to this is to have the Classic Client always send an integrated Notifier

Gary Sherman
June 17, 2011

I wanted to drop a little update regarding some upcoming changes, specifically in regards to our classic web applications (Dovetail AgentDovetail Admin, and Dovetail SelfService) operating in a 64-bit environment.


If you’re not running one of those web apps in a 64-bit environment, then don’t sweat this post – head off and read something more interesting 🙂

Currently, we require our classic web apps to run in a 32-bit mode. Why? Because the Dovetail SDK is currently 32-bit only but that will change with SDK version 3.0.


Update: 3/28/2012:


Now that Dovetail SDK 3.0 has been released (which supports both 32 and 64-bit COM objects), I wanted to drop a little update here.


Dovetail Agent 4.5 can now be run in 64-bit mode. This requires the 64-bit version of SDK (version 3.0 or higher)

Gary Sherman
May 4, 2011

We have recently validated our product suite against Oracle 11.

Due to our approaches to developing software, coupled with our use of .NET, all of our products worked as is. We didn’t have to change our apps to add support for Oracle 11. It was really just a testing exercise for us. Oracle 11 is now part of our continuous integration environment, so we know things work now, and will continue to work moving forward. Pretty sweet.


This includes support for:

Dovetail SDK Dovetail Mobile Dovetail Carrier Dovetail Seeker Dovetail SchemaEditor Dovetail Rulemanager Dovetail Agent Dovetail Admin Platform Guide

Our online Platform Guide is the best place for the latest details on supported platforms.

Sam Tyson
January 31, 2011

Using the Pick API to reserve parts for part requests is usually one of the easier API calls made from the Logistics Toolkit. Just specify the part request and preference of picking from good or bad stock, and let the API go to work. The Pick API will continue to attempt to pick parts until it has reserved all of the inventory necessary, or run out of locations to pick from.

There are three basic result paths for the Pick API: success, error, and partial success. The return codes for the API fall into these 3 areas as well. When successful, the return code is 0. When there is an error, the return code is < 0 (negative), and when there is partial success,

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