REQUEST A DEMO

Tag: Gary Sherman

Schema changes are a breeze with SchemaScript

March 23, 2007 One of our users came to me this week with a request to expand the size of the contact's job title field. Apparently people now have ridiculously long titles such as Assistant to the Regional Director of Synergistic Business Alliances, Northwest Montana Region. Using a simple SchemaScript and the Dovetail SchemaEditor, this change is trivial. Here's my complete script: <schemaScript xmlns="http://www.dovetailsoftware.com/2006/10/SchemaScript.xsd">       <updateColumn table="contact" name="title">          <length>100</length>     </updateColumn></schemaScript> Because I have an XSD that defines what schema scripts should look like, and I used Visual Studio to create my script, I know that my script is valid before actually running it with SchemaEditor. It for some reason I had a typo or I didn't close a tag, VS would visually let me know.With my script in place, I simply run SchemaEditor to apply the changes: schemaeditor.exe -apply Output Report: Dovetail SchemaEditor Difference…

Cool tutorial videos from Microsoft

The asp.net website now has a set of "How do I" videos, including ASP.NET, AJAX, SQL Server 2005 Express, and intros to new technologies such as LINQ. I really like how they start with the basics, such as: #1 What is a database?  I think these are cool not only for the content, but for the format: bite-size chunks of self-learning. Taking it to the next level, why not incorporate this style of tutorial directly into your application? That would be much nicer than reading the typical user manual. Good stuff.

Extending SuperEmailClerk.NET to call your own APIs

March 20, 2007  SuperEmailClerk.NET (SEC.NET), when running in API Invoke mode, will invoke requested APIs and return the results in a reply email. SEC.NET can be configured to execute API toolkits purchased from Dovetail Software, such as the ClearSupport toolkit, or custom-built APIs. This post will walk through creating a custom API in .NET that can be invoked by SEC.NET. The example will be a CreateAddress method. Even though there is an existing CreateAddress method in our Interfaces toolkit, we chose this as an example because it illustrates how to use the AdditionalFields property of the Toolkit Setup objects, which allows you to re-use our toolkits, but with an unlimited number of additional fields being set. Overview of the steps involved: Create a SecApiInvokeExample class with a CreateAddress method Create a SecApiInvokeExampleTests class for our tests Create the tags and subtags and add these to the…

Customizing the executeCommand actions in fcClient

March 19, 2007 In a previous post, I covered how to have fcClient pop a page based on a URL. Now, we'll cover how to customize this functionality to perform your own actions. For this particular example, we'll show how to have an existing fcQuery query get executed and the results posted. 1. In console.asp, we'll add code to get the actual objid of the query based on the query name, for the current user. This is necessary because the query names are not unique across the system.   In console.asp, after this existing code: var CommandToExecute = Request("command") + '';var CommandParam1 = Request("param1") + '';var CommandParam2 = Request("param2") + ''; We'll add this: if (CommandToExecute=="executeQuery"){ //get the query objid //first, see if this user ownes this query var gen = FCSession.CreateGeneric('ce_query'); gen.AppendFilter('ce_query2user','=',FCSession.Item('user.id')); gen.AppendFilter('query_name','=',CommandParam1); gen.Query(); if (gen.Count() > 0){ CommandParam1 = gen.Id - 0; }else{ //see…

fcClient :: How to have a URL that pops a page

Typically when a business rule is sent out, it will include the Object Type & Object ID, for example "Case 42". It's easy to customize the business rule message to turn this into a hyperlink that users can click on, and have fcClient automatically "pop" that particular object/page.For example, the following is a business rule message that we use here at Dovetail:RE: [Object Type] [Object ID] has been dispatched to the [Current Queue] queue [Object Type] [Object ID] has been dispatched to the [Current Queue] queue. Could someone please accept it to stop this annoying chain of emails![Object Type] Title: [Title] Severity: [Severity] Click the link below to view this [Object Type]: http://<OurPathToFcclient>//console/console.asp?command=casebyid&param1=[Object ID] Thanks, The Dovetail System which resolves to a message that looks like:Case 6825 has been dispatched to the Support Cases queue.  Could someone please accept it to…

Using Microsoft Full-Text Search within Dovetail applications

March 13, 2007 For years, Clarify has used the full-text search engine from Fulcrum (now Hummingbird OpenText) to allow full text searches in its applications. This was important back in the day, since the database vendors didn't offer good solutions to this problem. Now they do. A couple years ago, as we started expanding our knowledgebase, we had the need to perform full-text searches. However, we preferred to stay away from the Fulcrum/Hummingbird product, mostly because of how Clarify integrated with it. Corrupted indexes, huge amounts of time to create/re-create indexes, and having to setup cron jobs to schedule index runs, were just a few of the problems I ran into on previous implementations. As we used Microsoft SQL Server as our database platform, we decided to use the FTS engine that is bundled with SQL Server, and we've been happy with the result.…

Uniqueness of Relation Names

Here's an interesting scenario that we recently ran into when developing our SchemaEditor application for Clarify. In Clarify, the rule is that relation names must be unique within a table, which makes sense. For example, I cannot have two relations named case2site on the case table. The schema editing tools (ddcomp, DD Editor, Dovetail SchemaEditor) will disallow this. But there is no problem having case2site on the case table and case2site on the subcase table (although it's a bad naming convention, it's not illegal). However, in Microsoft SQL Server databases, Clarify creates relate stored procedures for relations. For example, the following relation: case2subcase OTM subcaseINV_REL=subcase2case COMMENT="Subcases originated from the case" will produce the following stored proc: create procedure rl_case2subcase( @case1 int, @subcase2 int) as update table_subcase set subcase2case = @case1 where objid=@subcase2 How and where do these stored procs get used?…

User-contributed code: Dynamically resizing a screen with a grid iFrame

February 26, 2007 Kristina has shared some code that she wrote for fcClient. Lots of screens in the Dovetail/FirstChoice thin client for Clarify have a grid of related values displayed in an iFrame containing the parent information. This article describes how to add a "resize" button so your users can stretch the window if they so desire. [Link to article] Thanks Kristina!

Owning the support issue

February 21, 2007 Seth Godin has a great post (as usual) about Starting over with customer service.  In it, he outlines an interesting approach to improving customer service. One of his steps is using the right software: It's not like me to recommend a commercial product specifically like this, but I'm talking about Fogbugz because I think they've accidentally revolutionized a huge piece of management. What the software does is allow exactly one person at a time to 'own' a piece of a project, a bug, an issue. That person either solves it or pass it off. And the entire process is tracked and timestamped and tickled, so absolutely nothing is permitted to languish. Those of us in the Clarify and Dovetail space have been used to this accidental revolutionizing functionality for a long time. A support case (issue, trouble ticket, etc.) has…

Users don't *want* to RTFM

February 2, 2007 As I handle a good deal of the technical support calls around here, I'm constantly amazed at the questions that I get where the answers to these questions are in the documentation. My typical mantra has been: RTFM! I've been reading a lot lately on usability, especially in the realm of web applications. Influences include Steve Krug's book Don't Make Me Think, the 37signals book Getting Real, as well as the Creating Passionate Users blog. These readings have been causing me to rethink my mantra, and question my possibly old-school thinking that good documentation prevents support calls. The truth is that users don't want to read the docs - they just want to use the product. Well, that's not even entirely true - they want the product to just do its job, and get out of the way, so the user can…