Functions Overview

A function is a named calculation in the HotDocs scripting language that takes zero or more values as inputs (parameters) and produces a single value as a result; the HotDocs scripting language includes system functions, but also enables you to create your own. For example: you can use the YEARS FROM function to calculate the number of years between two date values as a means to calculating the length of a mortgage.

In this topic Hide

  1. Overview
  2. Common Tasks
  3. Workflow
  4. System Functions
  5. Custom Functions
  6. Common Reference Topics

Overview

Functions (like instructions) tell HotDocs to accomplish a task. The difference is that the task a function tells HotDocs to do, is to calculate a value of a given type. An instruction does not return a value. You can use a function alone or with other functions, variables and operators when crafting an expression in a HotDocs script.

There are two kinds of functions in the HotDocs scripting language:

As mentioned above, functions (whether system or custom) typically take one or more values as input, and produce a single value as a result. In practice, you refer to the value represented by a function, using the function’s name. This use of a function name (in the context where you want its value) is known as a function “call”. You call the function to request its value, and the function executes, evaluating the contents of the input with it own internal commands to calculate a result. You can then use that result within another function, or provide that result as the finished value that HotDocs uses to replace a placeholder field when assembling a document.

Common Tasks

Among others, functions enable you to perform the following common tasks:

Workflow

When you write a script, you can add a function to the script in one of two ways: either you drag and drop a model from the Models tab onto the Script tab) (to add a system function to your script), or you write your own function. In the former case, once you drag the system function onto the Script tab, you then either drag a component from the Components tab onto the red placeholder fields that represent the function's parameters, or you type the input value yourself.

Using the drag and drop method is a quick way to learn the proper syntax for the various system functions.

System Functions

A system function is a function HotDocs predefines for you to enable you to perform a specific task in the HotDocs scripting language. For example, you can use the TODAY function in a script to return the current date as supplied by the system clock. For a practical application of this function, review its example script.

Operators

Operators are a special kind of system function with a streamlined syntax. While some operators (like functions) have names (for example, CONTAINS or STARTS WITH), most are represented by mathematical symbols (+, -, *, /). And instead of accepting (as input) a list of parameters, an operator accepts (as input) either one or (most commonly) two operands.

Operator syntax differs significantly from system functions too.  Functions are called like this:

FunctionName(Parameter1, Parameter2, …)

If the same function were an operator, it would look like this:

          Parameter1 FunctionName Parameter2

or more generally,

Operand1 Operator Operand2   //(for binary operators like =, !=, +, -, *, /, CONTAINS, etc.)

Operator Operand1            //(for prefix unary operators like -)

Operand1 Operator            //(for postfix unary operators like %, DAYS, MONTHS, or YEARS)

Like functions, operators always evaluate to a single value.

Example

Here is an expression that uses the + operator to add a known value (65) to an unknown value (Birth Year):

                Birth Year + 65

The result of the above is whatever Birth Year evaluates to, plus 65 more years.

Custom Functions

A custom functions is any function you define; such a function in HotDocs is called a computation. You often use computations when writing a script, whether in another computation, or in a dialog script.

Common Reference Topics

Among others, the following reference topics relate to this conceptual area: