GRAY, UNGRAY, SHOW and HIDE

These four commands are essential in presenting user friendly and user-proof dialogs in HotDocs.  When designing systems, it is generally best practice to show only those variables that require (or may require) an answer and HIDE or GRAY those that are irrelevant.  HotDocs provides a rudimentary manner to handle this automatically, but if you are designing complex systems, you may need to use these four commands. All of these instructions are used in dialog scripts only.

GRAY Var //grays Var, prohibiting data entry, but displaying the value (if any)
UNGRAY Var //UNgrays it, allowing data entry
HIDE Var //completely hide the variable
SHOW Var //opposite of HIDE

Here are some examples that should be fairly self explanatory…

//hide the company type, only showing it if relevant.
HIDE PARTY Entity Company Type MC
IF PARTY Entity Type MC"Company"
SHOW PARTY Entity Company Type MC
REQUIRE PARTY Entity Company Type MC
END IF

//calculate a total amount, but gray it so it isn't editable
GRAY SALES Grand Total NU
SET SALES Grand Total NU TO ZEROSALES Amount NU ) + ZEROSALES Tax NU ) - ZEROSALES Discount NU )
//allow them to manually change it if they REALLY want to
IF SALES Grand Total Change TF = TRUE
UNGRAY SALES Grand Total NU
END IF

Instead of using a variable name, you can also substitute the “ALL” parameter….

GRAY ALL //grays everything on the dialog
UNGRAY ALL //ungrays everything

When building a system to really lockdown data entry, you may wish to write a dialog script something like this to force entry of everything in the correct order…

 

HIDE ALL
SHOW PARTY Entity Type MC
IF ANSWERED ( PARTY Entity Type MC//must have a type before we allow name entry
SHOW PARTY Name TE
IF PARTY Entity Type MC"Company"
SHOW PARTY Entity Company Type MC
REQUIRE PARTY Entity Company Type MC
SHOW PARTY Entity Company Number TE
END IF
IF ANSWERED ( PARTY Name TE//must have a name before they can proceed further
//more SHOW/REQUIRE pairs here
END IF
END IF

All of these commands are dynamic as of HotDocs 6, which is a major step forward.  Whilst they may look like eye candy, these instructions serve to produce better and more accurate documents every time, simply by forcing/prohibiting better data entry.  When combined with REQUIRE, you really can obey the rule that “if a variable is visible, it must be answered and if it is invisible, it is irrelevant”.  When your systems can follow this rule, your users do not have to have any knowledge of what they are working with or understand the sometimes complex concepts behind the scenes – all they need to know is that if it CAN be answered, it SHOULD be answered and if it cannot be seen, don’t worry about it.

Salesforce.com Apps for Lawyers

What if you could access your network from ANYWHERE and at ANYTIME?  What if you could check your calendar, check your task list, do your billing and access all your documents? What if you could do this WITHOUT A NETWORK?  What if you could do it WITHOUT a Server, without a terminal server, and without any network infrastructure at all?  What if the entire network was IN THE CLOUDS.  Wouldn’t that be great (for you that is)?  What if this cloud-based system was infinitely customizable, and infinitely expandable?  What if you could purchase “plugins” and other packages to extend the functionality of the database? What if there was a network of consultants who could assist you?  What if there were hooks into Web-based document assembly applications like EXARI? What if I told you this system was already built and opened for business last month.  Take a look at AdvologixPM.

AdvogixPM is a Force.com Application.  It is built on Salesforce.com.  This platform is used by almost every Fortune500 corporation.  It is a cloud-based application that was designed, originally, to make a “mobile salesforce” truly mobile. Rather than replicating databases (which could be stolen or lost), it was designed as a complete and secure CRM (Customer Relationship Management) system that allowed salesmen and women to track leads, manage accounts, post documents,track calls and emails in a centralized hosted environment on the Web.  What turned this from a hosted CRM into a world-shaking application was the open API that Salesforce.com built.  To make the system acceptable to large sales organizations, Salesforce.com enabled users (with privileges) and developers to add new fields, add new reports, record types, dashboards, analyses, and ANYTHING they wanted.  They then let developers “package” the customizations and created a marketplace where those packages could be “given away” or “licensed”.

So where does this affect lawyers who, by their own classification, are not in the sales business?  The answer is AdvologixPM.  The infrastructure of Salesforce already meets many of the needs of lawyers.  What is missing are MATTERS, and support for practice-specific details that lawyers want to know about their clients.  Further, the system does not natively support client billing.  What Advologix has done is stand on the shoulders of giants and build a Legal Practice Management system on top of Salesforce.  It is, indeed a complete and comprehensive system.  It does what a practice management system should do, and does it quite well.  And you don’t have to worry about backups, network services, remote access or anything.  All you have to worry about is paying your Monthly user fee. The fee will be more than you pay annually for your current practice management solution software.  The difference, arises, however, if you look at TCO (Total Cost of Ownership).  No server; no need to apply software updates, no installation costs, and worldwide access.

Now where the application gets interesting for me and my clients is in two areas.  First,it is infinitely customizable.  If a client comes to me with a bankruptcy practice and wants to track special creditor details in a table, I can modfy the application to add the necessary table and fields.  And, if I do a good enough job, I can package up those modifications and “license” them to another client.  They could make the changes themselves, or they could leverage my expertise in data gathering, workflow and document assembly in that field. The second place where it gets interesting.  Exari has released a Force.com application NDA Generator on Exari.  Here we are leveraging a world-class web-based document assembly engine with a world-class CRM system, none of which needs to be installed on a server that we manage.

There are some TRADEOFFS when you program a Force.com application.  There are somethings about the way the application works, what some tables are called that you cannot change.  Since the core application was designed by someone else, you are limited to working with what that company has built.  As a result, you will not have the spartan and intuitive design appeal of a RocketMatter or a Clio practice management system that was designed from the ground up as a practice management system.  You will need to look closely at what Advologix has done to Salesforce, and weigh what additional modifications you can make and compare them to both Client/Server applications (like Time Matters, Amicus Attorney and PracticeMaster) and to RocketMatter and Clio offerings.  The good news is there are a lot of innovative solutions out there for to choose from.  And now there is one more.

FORMAT “LIST FORMAT”

Another HotDocs instruction model that does exactly what it sounds like, FORMAT allows you to specify the formattin of a “list style” RESULT.  Rather than explain, I’ll simply provide 2 examples which demonstrates everything you’ll ever need to know about FORMAT.

Lets have a repeating dialog named “Party RPT” that has a single variable on it – PARTY Name TE.  Lets produce some differing results with FORMAT, presuming that we have 3 names in our list:

Example #1

""
REPEAT Party RPT
FORMAT "a, b and c"
RESULT + PARTY Name TE
END REPEAT
//the RESULT is Seth Rowland, Rose Rowland and Ian Burrows

Example #2

""
REPEAT Party RPT
FORMAT "a-b-c"
RESULT + PARTY Name TE
END REPEAT
//the RESULT is Seth Rowland-Rose Rowland-Ian Burrows

All it is doing is specifying the format in which a list style result is accumulated and represented.