REQUEST A DEMO

Author: Gary Sherman

Chief Technology Officer, Vice President of Products

Posts by Gary Sherman:

Automated Deployment for Clarify Example

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 this…

Notifying the Yankee (part 2) This time with the Clarify Client

December 21, 2011 Recently I posted about how to notify the yankee, meaning the person who a case was yanked from. I showed how to make this happen within applications that use the Dovetail SDK (Dovetail Agent, Dovetail Mobile, etc.) Now, lets see how we can accomplish the same task within the Clarify Classic Client. Setup Most of the setup is the same as I covered previously. 1. Turn the participant2user pseudo-relation into an exclusive relation 2. Setup a business rule recipient alias for the “Yanked From User” 3. Create a business rule that uses the “Yanked from User” as a recipient of a rule 4. Add the participant record Add a Participant using ClearBasic To add a participant record, we can add some ClearBasic code behind form 737, which is the Yank form. Caution: this is an old-school C form, so much…

Better message notifications in the Clarify Client

December 12, 2011 One of the common ways to do a message / notification to  user from a from within the Clarify Classic Client is with a simple popup message box.   For example, if the user does a save operation on a form, and the save is successful, then it’s not uncommon to see a simple message box posted. Sub btn_message_click() App.MsgBox "Something Interesting Just Happened" End Sub     These messages are purely informational. We’re not requiring the user to make a decision – we just want to tell them something.   The problem is that these message boxes interrupt the user’s flow. Don’t interrupt my flow, man   Alan Cooper, in his book About Face 2.0, calls this stopping the proceedings with idiocy. And that's exactly what it is.   There is a particular form of excise that is so prevalent it…

Improving Attachments in the Clarify Classic Client

December 9, 2011 A common issue with attachments in Clarify is getting the uploaded files to a common location.   By default, Clarify simply takes the filepath you give it (such as c:\temp\file.ext) and creates attachments records in the database with that filepath.   Obviously, no one else is going to be able to view an attachment that resides on a user’s C drive. So that default behavior stinks.   I’ve seen a number of attempts of solving this over the years. A couple common ones:   Create a shared drive (such a Z:\ or \\attachment_server\), and tell users to copy files there, and then attach them. Add an FTP customization to the attachments form, so that files are automatically FTP-ed form the user’s machine to a common location.   I’m not really crazy about either of these solutions.  In the first, it…

Customizing the Clarify Attachment Form (form 1006)

November 14, 2011 I recently had to do some modifications to the attachment form in Clarify (form 1006). This is one of those old-school forms that doesn’t always behave very well with ClearBasic. This post captures a few of my findings and learnings. FILELIST Double-Click   One of the things I wanted to do was to intercept the double-click action on the FILELIST control, which happens when a user double-clicks a file to Open it.   Plan A: some simple Clearbasic code Sub FILELIST_DblClick() If FileValidation = True Then Me.DoDefault Else App.MsgBox "Not authorized" End If End Sub   Looks simple right? But it doesn’t work. Even if the Me.DoDefault code isn’t ever called, the file is still opened. So if the validation failed, the user would get the message box saying "Not authorized",  and then the file would be opened. No bueno.…

Improving Case History within the Clarify Classic Client

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 or…

More CSS and JavaScript goodness from Ryan

November 7, 2011 Ryan Rauh is one of our Dovetail guys, and he's recently started blogging over on Los Techies, where he’s already been posting some great stuff.   He’s got a couple of good posts on CSS, and he recently shared the video from his JavaScript talk at Austin Code Camp.   I know I’m learning from him (especially with his JavaScript knowledge).   Great stuff Ryan – keep it up!

Notifying the Yankee

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 message (insert into…

Transform a Pseudo Relation into an Exclusive Relation

October 18, 2011 Recently I had the need to use a pseudo relation as part of a path evaluation (i.e. as part of a business rule path). But, the path evaluator can’t do this, because it’s not a “real” relation in the Clarify/Dovetail schema. Pseudo Relations   I covered pseudo relations in my recent Schema 201 webinar, but lets give a quick review.   A pseudo relation is a sort of schema hack that implements a relation using two fields. One field holds the type_id of the object that we want to relate to, and one field holds the objid of the object. These pseudo relations were a bit of a data modeling hack, before exclusive relations.   Pseudo relations are nice, because we don’t have to create a new physical column for a relation, and we can relate to any other object in…

Extracting ClearBasic code

October 11, 2011 In Clarify, it’s pretty easy to extract one (or a few) Clearbasic code module from the database using CBEX or UI Editor. But on occasion, it’s useful to be able to extract *all* the CB code. It’s not easy to do that with the baseline Clarify tools.   When diving into a customer environment, either to help re-create their environment locally, or to evaluate porting the CB code to a web-based application, it’s nice to have all the code available at once.   It’s also nice to have access to the baseline (Clarify-defined) CB code – which allows us to use baseline functions, as well as mine that code for useful tips and undocumented methods.   We have a of of scripts and utilities that we use here at Dovetail. One of them is a script to extract ClearBasic code –…