REQUEST A DEMO

Blog

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

Case Aging, including “pauses”

October 7, 2011 Over the years of working with Clarify, I’ve seen a request come up a few times for calculating case aging, including “pauses”.   It’s easy to calculate a total case age. For open cases, it’s the difference between now and the time the case was opened. For closed cases, it’s the difference between case open time and case close time.   But what about the workflows where a case can be paused? For example, the customer may go on vacation, or any other myriad of reasons where we want to pause the clock on the case.   The common approach to this from an application standpoint is to have a new case Status value of Paused (or something similar), so that we simply change the status to Paused to pause the case, and then change it to something else to…

New in Rulemanager: Support for Multiple email addresses for a contact or employee

October 5, 2011 Earlier this summer I blogged some thoughts around multiple email addresses for a contact or employee. I wanted to throw out a little update about how we’re addressing this. We’re addressing this in two ways – via Rulemanager, and via DovetailAgent. I’ll cover the DovetailAgent changes in a future post. Rulemanager We’ve modified Dovetail Rulemanager so that it supports multiple email addresses in a single email field. This could be on the employee or on the contact’s email field. The email addresses can be separated by a comma, semicolon, or a space. Lets see it in action I’ve created a new employee with the ever-so-descriptive name of “Multiple Emails” This employee has two SMTP addresses in the one email address field: If I have a business rule that notifies this employee, I can see that the notification gets sent to…