Configuration Scripting Guide

Published 02/06/2017

Scripting

This document describes scripting functionality associated with Custom Documents.

When your institution’s license key enables Enterprise Scripting, additional functionality is available on the Body tab in Custom Documents that supports the creation of document scripts. Document scripts may be used to manipulate content based on data element values before that content is rendered on a custom document. That script is then executed by your Deposit Platform provider or Loan Origination System provider when the published custom document is used at transaction time.

For example, you can conditionally display or hide paragraphs of text based on the value supplied for a data element. In that way, a single custom document can dynamically include content when appropriate, based on specific transaction conditions.

Scripts can also be constructed that loop additional instances of transaction values through a data element so that each instance is rendered on a document. For example, you can create a script so that a document dynamically adjusts to accommodate as many borrower names as are there are borrowing entities participating in any given transaction.

You can also use scripts to calculate the values for custom data elements in your Institution dictionary. Such values can be created based on other data element values included in the transaction. For example, a Total_Fees data element can be scripted to derive its value from Fee_1 + Fee_2.

When Enterprise Scripting is enabled, Script tools are included on the Body tab’s editing toolbar.

Script Toolbar

The following features are available to manage scripts in custom documents.

Tools Functions
Toggles the document display between the script view and the draft view.

Displays a Search field for locating text strings in the script. Type the text string you want to locate, then press the ENTER key to perform the search.

Makes selected script content conform to the formatting conventions of HTML.
Comments out the selected script content. Comment tags are added around the selected content.
Removes comment tags from the selected content.
Activates automatic script tag completion. It is active by default. When active, the application automatically creates end tags for start tags that you enter.

Script Example: Conditional Paragraphs

The following example illustrates how an additional paragraph may be included in a document depending on the value supplied to c_gnl_addr_misc_depositacctholderstate_1. When the state is Michigan, a paragraph is included regarding a special offer. When the state is Ohio, a different paragraph is included regarding a special rate. When the state is neither Michigan nor Ohio, no additional paragraph is included.

Script

<p>
<span class="csi-condition" 
  condition="element(c_gnl_addr_misc_depositacctholderstate_1) == 'MI'">Michigan
  account owners qualify for a special offer.
</span>
<span class="csi-condition"
  condition="element(c_gnl_addr_misc_depositacctholderstate_1) == 'OH'">Ohio
  account owners qualify for a special rate. </span>
</p>

Rendered Document

For an example of this script, please refer to the ConditionalParagraphs.html file included with this release.

Script Example: Looping Values

The following example illustrates how a data element can be looped so that multiple values may be used to populate it, if multiple values are supplied to it in a transaction. The custom document will dynamically shift content to accommodate as many values as are supplied so that content does not overlap and no unnecessary white space is introduced.

In this script, additional space will be added to the document to accommodate each value supplied for:

  • l_gnl_name_borr_firstorfullname (the borrower’s first name)

  • l_gnl_name_borr_middlename (the borrower’s middle name)

  • l_gnl_name_borr_lastname (the borrower’s last name)

  • l_gnl_name_borr_namesuffix (any suffix included in the borrower’s name, if present)

  • l_gnl_addr_borr_borrowerstreet (the borrower’s street address)

  • l_gnl_addr_borr_borrowerstreet2 (the secondary street address of the borrower, if present)

  • l_gnl_addr_borr_borrowercity (the borrower’s city)

  • l_gnl_addr_borr_borrowerstate (the borrower’s state)

  • l_gnl_addr_borr_borrowerzip (the borrower’s ZIP code)

Script

<div title="Borrowers" class="csi-loop" level="i" element="l_gnl_name_borr_firstorfullname.i">
<p>
<strong><span title="l_gnl_name_borr_firstorfullname.i"><button class="csi-datapoint-btn-wrap shrink" style="width:200px"
contenteditable="false" unselectable="on"><span unselectable="on" contenteditable="false" class="csi-datapoint"
datapointname="l_gnl_name_borr_firstorfullname.i">l_gnl_name_borr_firstorfullname.i</span></button></span>
&nbsp; <span title="l_gnl_name_borr_middlename.i"><button
class="csi-datapoint-btn-wrap shrink" style="width:200px"
contenteditable="false" unselectable="on"><span unselectable="on"
contenteditable="false" class="csi-datapoint"
datapointname="l_gnl_name_borr_middlename.i">l_gnl_name_borr_middlename.i</span></button></span>
&nbsp; <span title="l_gnl_name_borr_lastname.i"><button
class="csi-datapoint-btn-wrap shrink" style="width:200px"
contenteditable="false" unselectable="on"><span unselectable="on"
contenteditable="false" class="csi-datapoint"
datapointname="l_gnl_name_borr_lastname.i">l_gnl_name_borr_lastname.i</span></button></span>
<span title="l_gnl_name_borr_namesuffix.i"><button
class="csi-datapoint-btn-wrap shrink" style="width:50px"
contenteditable="false" unselectable="on"><span unselectable="on"
contenteditable="false" class="csi-datapoint"
datapointname="l_gnl_name_borr_namesuffix.i">l_gnl_name_borr_namesuffix.i</span></button></span></strong>
</p>
<p>
<span title="l_gnl_addr_borr_borrowerstreet.i"><button
class="csi-datapoint-btn-wrap shrink" style="width:200px"
contenteditable="false" unselectable="on"><span unselectable="on"
contenteditable="false" class="csi-datapoint"
datapointname="l_gnl_addr_borr_borrowerstreet.i">l_gnl_addr_borr_borrowerstreet.i</span></button></span>
&nbsp;
<span title="l_gnl_addr_borr_borrowerstreet2.i"><button
class="csi-datapoint-btn-wrap shrink" style="width:200px"
contenteditable="false" unselectable="on"><span unselectable="on"
contenteditable="false" class="csi-datapoint"
datapointname="l_gnl_addr_borr_borrowerstreet2.i">l_gnl_addr_borr_borrowerstreet2.i</span></button></span>
&nbsp;
<span title="l_gnl_addr_borr_borrowercity.i"><button
class="csi-datapoint-btn-wrap shrink" style="width:200px"
contenteditable="false" unselectable="on"><span unselectable="on"
contenteditable="false" class="csi-datapoint"
datapointname="l_gnl_addr_borr_borrowercity.i">l_gnl_addr_borr_borrowercity.i</span></button></span>
<span title="l_gnl_addr_borr_borrowerstate.i"><button
class="csi-datapoint-btn-wrap shrink" style="width:50px"
contenteditable="false" unselectable="on"><span unselectable="on"
contenteditable="false" class="csi-datapoint"
datapointname="l_gnl_addr_borr_borrowerstate.i">l_gnl_addr_borr_borrowerstate.i</span></button></span>
<span title="l_gnl_addr_borr_borrowerzip.i"><button
class="csi-datapoint-btn-wrap shrink" style="width:100px"
contenteditable="false" unselectable="on"><span unselectable="on"
contenteditable="false" class="csi-datapoint"
datapointname="l_gnl_addr_borr_borrowerzip.i">l_gnl_addr_borr_borrowerzip.i</span></button></span>
</p>
<p>
&nbsp;
</p>
</div>

Note the additional csi-condition that controls the display of borrower name suffixes and secondary street address values:

<span class="csi-condition" condition="element(l_gnl_name_borr_namesuffix.i) != ''">...</span>
<span class="csi-condition" condition="element(l_gnl_addr_borr_borrowerstreet2.i) != ''">...</span>

When either l_gnl_name_borr_namesuffix.i or l_gnl_addr_borr_borrowerstreet2.i has a value, then those respective conditions are exercised.

Rendered Document

For an example of this script, please refer to the LoopingValues.html file included with this release.

Looping Values in Numbered Lists

When each number in a numbered lists is intended to display a different value from the same data element, the csi-loop class can now be used to create this result. For example, such a numbered list might list the number of borrowers participating in a transaction, with each borrower name appearing as a separate entry on the numbered list.

Script

<ol class="csi-loop" element="l_gnl_name_borr_firstorfullname" level="i">
<li>
<span title="l_gnl_name_borr_firstorfullname.i"><button class="csi-datapoint-btn-wrap" contenteditable="false"
unselectable="on"><span unselectable="on" contenteditable="false" class="csi-datapoint"
datapointname="l_gnl_name_borr_firstorfullname.i">l_gnl_name_borr_firstorfullname.i</span></button></span>
</li>
</ol>

Rendered Document

Script Example: Conditional Table Rows

Just as paragraphs of text can be made to display conditionally based on values supplied to data elements, table rows can be made to display conditionally. In the following example, the first table row displays under all transaction conditions. The second table row only displays when no value has been supplied to a data element named State. The third table row only displays when the value of MI is supplied to a data element named State.

Script

<table>
  <tbody>
    <tr>
      <td id="" style="width: 90.3999999761581px;">
        This row always prints, regardless of transaction values.
      </td>
    </tr>
    <tr class="csi-condition" condition="element(State) == ''">
      <td id="" style="width: 66.3999999761581px;">
        This will print if no value is supplied to State.
      </td>
    </tr>
    <tr class="csi-condition" condition="element(State) == 'MI'">
      <td id="" style="width: 66.3999999761581px;">
        This will print if the State is MI.
      </td>
    </tr>
  </tbody>
</table>

When State Value is Not Supplied

When State Value is MI

When State Value is Supplied and Not MI

Looping Values in Conditional Table Rows

Please note that if the data element you are using to condition the display of table rows is one that can accept multiple values, (ends with a suffix like .i or .j), then it is necessary to wrap the table scrip in <div> elements.

Operators

Scripts may include operators that act on other script elements.

Operator Description
Addition operator (+) Adds two numbers and returns a numeric result, or concatenates two text strings.
Subtraction operator (-) Subtracts one number from another and returns a numeric result.
Multiplication operator (*) Multiplies two numbers and returns a numeric result.
Division operator (/) Divides two numbers and returns a numeric result.
Equals operator (==) Defines a relation where the value of the first operand must be the value specified in the second operand.
Does not equal operator (!=) Defines a relation where the value of first operand must not be the value specified in the second operand.
Logical AND operator (&&)

Performs a logical conjunction of two expressions.

Michigan borrowers qualify for a special offer.

Logical OR operator (||)

Performs a logical disjunction of two expressions.

Account holders bordering Lake Michigan qualify for a special offer.

Multiple Sample Values for Data Elements

Some data elements allow multiple sample values to be supplied to them. These are the same data elements that allow multiple values to be supplied to them at transaction time. For example, l_gnl_name_borr_firstorfullname.i allows multiple sample values in CSi Simplicity because multiple values may be supplied to it in a transaction. In contrast, the data element c_gnl_date_misc_todaydate only permits a single sample value in CSi Simplicity because there will never be more than a single value for it in a transaction.

To exercise script that includes data elements permitting multiple values, you may need to supply more than one sample value. To enable fields for supplying additional values, add .i to the end of the data element’s name in your script.

Script Example - Multiple Values

<div title="Borrowers" class="csi-loop" level="i" element="l_gnl_name_borr_firstorfullname.i">
  <p>
  <span style="font-size: 12pt;">
    <span style="font-family: times new roman,serif;">__________________________</span>
  </span>
  <br />
  <span style="font-size: 12pt;">
    <span style="font-family: times new roman,serif;" >
      <span title="Enter either the first name or the full name of the borrower."
        class="csi-datapoint"
        contenteditable="false"
        unselectable="on"
        datapointname="l_gnl_name_borr_firstorfullname.i" >l_gnl_name_borr_firstorfullname.i</span>
      </span>
  </span>
  <br />
  <br />
  <br />
  &nbsp;
  </p>
</div>

Be sure to refresh the Current Document Data pane to see the additional fields for supplying sample values.

For an example of this script, please refer to the MultipleValues.html file included with this release.

Defining Font Styles in Div Tags

The <div> tag is used to define sections, or divisions, of an HTML document. The <div> tag can be used to apply font formatting (font family and size) to all paragraphs within the <div> tags.

The sample script renders the text as follows.

Formatting Data Elements

You can control the rendered format of certain data elements that you include in a custom document. This is done by including the format= attribute within the span tag of the data element. For example, a date supplied as 1/13/2014 can be formatted as an alpha string using format=alphamonth.

This script…

Renders as…

January 13, 2014

Some of the most commonly used format attribute options are listed below. For a complete list of available formats and examples of rendered content, please refer to Appendix A: Available Data Formats.

Name Example
alphadate January Thirteen, Two Thousand Fourteen
alphadollar Two Thousand Four Hundred Fifty-seven and 35/100 Dollars
alphamonth January 13, 2014
alphanumber four
alphaordinal

fourth

valid for values less than 32

capitalize ALL UPPERCASE
dollar 1,100,000.12
notarydate first day of January, 2002
number 123,456,789
ordinaldate 24th of January, 2017
phone

(800) 123-4567

123-4567

percent 18.125
ssn 123-45-6789
tid 12-3456789
zip

12345

12345-6789

Horizontal Lines

You can add horizontal lines to the content of a custom document and control its line weight and color. In the following script sample, a horizontal line is created using a 1-pixel line formatted with a red color (as RGB value).


The sample script renders the line as follows.

Table Border Styles

You can control the border, or line attributes, of table cells. Supported border styles include thin, medium, thick, dashed, dotted, and none. The border attributed is specified as follows:

<td style="width: 304px;" border="dotted">

Note that the border attribute is visualized in the rendered preview of the custom document rather than in the editor window.

Check Boxes

You can insert check boxes into a custom document in several different styles, including checked and unchecked. This allows you to design documents that can display check boxes that reflect values supplied with a given transaction.

Editor toolbar tools for inserting check box elements.

For example, check boxes can be displayed as checked or unchecked based on the true or false condition of the data element c_gnl_addr_misc_showusaflag. When a value of 1 (true) is supplied, then at least one entity participating in the transaction is located outside of the United States and the text USA is added after the city, state, and ZIP information in documents.

The scripting for the logic that adds or removes checks in the “show USA” check box may appear as follows.

<p>
<span class="csi-condition" condition="element(c_gnl_addr_misc_showusaflag) == '1'" >☒</span>
<span class="csi-condition" condition="element(c_gnl_addr_misc_showusaflag) == '0'" >☐</span>
&nbsp;Show USA?
</p>
When the value for
c_gnl_addr_misc_showusaflag is 0 (false)
When the value for
c_gnl_addr_misc_showusaflag is 1 (true)

For an example of this script, please refer to the CheckBoxes.html file included with this release.

Content After Signatures

On some occasions it may be appropriate to force certain custom document content to appear after signature blocks. Ordinarily, signature blocks are designed to appear after all other document content is rendered (except for footer content). To reserve document space after the signature block for other content, use the postsignature div.

In this example, the document is configured to include a financial institution signature. Values have been supplied for the signer Jane Doe, Loan Officer.

In the Editor window Rendered with sample values

The postsignature div ensures that the extra signer and additional information is displayed below the financial institution’s signature block.

<div class="postsignature">
  <p>
    _______________________________
  </p>
  <p>
    Extra Signer
  </p>
  <p>
    &nbsp;
  </p>
  <p>
    Additional Information
  </p>
</div>
In the Editor window Rendered with sample values

For an example of this script, please refer to the Miscellaneous.html file included with this release.

Page Breaks

The Formatting toolbar includes a tool that inserts scripting for a page break in the document at the cursor location.

The page break is represented in the normal view of the Body tab content with the unselectable text PAGE BREAK.

In the Source view, the

tag with the printpage class is automatically added to the cursor location.

Content at End of First and Last Pages

On some occasions, you may need to force certain custom document content to appear at the bottom of the first page of a document and the last page of a document. You can reserve space for content at the bottom of both the first page and last page required to render the custom document using the bottofirstpage and bottomlastpage div. That content appears above any page footers that are specified for the document and below any signature block that has been specified for the document.

In this example, content is specified for rendering at the bottom of the first page and the bottom of the last page.

  <div class="bottomfirstpage">
    <p>
      This content will render at the bottom of the First Page. Other content
      will paginate onto the next pages as needed.
    </p>
  </div>
  <div class="bottomlastpage">
    <p>
      This content will render at the bottom of the Last Page. If there is not
      enough space, an additional page will be created to accommodate this
      content.
    </p>
  </div>

For an example of this script, please refer to the Miscellaneous.html file included with this release.

Overriding Margin Settings

Ordinarily, custom document margins are set on the General tab of the Custom Document workflow.

It is possible to script overrides to the margin settings so that different margins are used depending on values supplied to the custom document. For example, to accommodate recordable margin requirements, margins may be scripted so that they are invoked for specific collateral states.

In the sample script below, the margins used by the custom document change depending on the value supplied to the collateral state data element l_gnl_addr_secu_collateralstate.i.

<div>
  <margin topmargin="1.0625in" leftmargin="1.0625in" rightmargin="1.0625in"
    bottommargin="1.0625in">
  </margin>
</div>
<div class="csi-loop" element="l_gnl_addr_secu_collateralstate.i" level="i">
  <span class="csi-condition"
    condition="element(l_gnl_addr_secu_collateralstate.i)=='AR'">
      <margin topmargin="4.0625in" leftmargin="1.0625in"
      rightmargin="1.0625in" bottommargin="2.5625">
    </margin>
  </span>
  <span class="csi-condition"
    condition="element(l_gnl_addr_secu_collateralstate.i)=='DE' ||
    element(l_gnl_addr_secu_collateralstate.i)=='ME'">
    <margin topmargin="1.0625in" leftmargin="1.0625in"
      rightmargin="1.0625in" bottommargin="2.0625">
    </margin>
  </span>
  <span class="csi-condition"
    condition="element(l_gnl_addr_secu_collateralstate.i)=='IN' ||
    element(l_gnl_addr_secu_collateralstate.i)=='KY'">
    <margin topmargin="2.0625in" leftmargin="1.0625in"
      rightmargin="1.0625in" bottommargin="2.0625">
    </margin>
  </span>
  <span class="csi-condition"
    condition="element(l_gnl_addr_secu_collateralstate.i)=='NV'">
    <margin topmargin="1.0625in" leftmargin="1.0625in"
      rightmargin="1.0625in" bottommargin="3.0625">
    </margin>
  </span>
  <span class="csi-condition"
    condition="element(l_gnl_addr_secu_collateralstate.i)=='OH' ||
    element(l_gnl_addr_secu_collateralstate.i)=='PA'">
    <margin topmargin="1.5625in" leftmargin="1.0625in"
      rightmargin="1.0625in" bottommargin="1.0625">
    </margin>
  </span>
</div>

Indenting with Tabs

Tab tags can be added and their white space can be configured. The white space is not visible on the Body tab but is visible in the PDF preview and in the published output. Users can specify tab location and amount of white space by entering

where # indicates the number of tabs to be added,

Reducing Data Element Size

In some instances, you may include data elements in custom document content that will always contain short data values. In these cases, you may wish to script the document so that such data elements only occupy a predefined pixel width.

In the example below, the text in green shrinks the data element’s width to 100 pixels.

<span title="l_gnl_addr_secu_collateralstreet.i">
  <button class="csi-datapoint-btn-wrap shrink" style="width:100px"
    contenteditable="false" unselectable="on">
    <span unselectable="on" contenteditable="false"
      class="csi-datapoint" datapointname="l_gnl_addr_secu_collateralstreet.i">
    l_gnl_addr_secu_collateralstreet.i
    </span>
  </button>
</span>

You may also want to use this shrink formatting to control the display of data element values in table cells when it is important to the document design that table cells do not exceed a certain width.

Understanding Spacing with HTML Elements

Many HTML elements can be defined as block-level elements or inline-level elements. Block elements begin and end with a new line when displayed in a browser. Inline elements generally do not include line breaks. They have different standards with regard to indenting.

When you use the Source view to script custom document content, the editing window provides automatic indentation to make the script easier to read and maintain. This may create unexpected, though correct, spacing results when you use certain HTML tags.

For example, the tag <sup> formats text within the tags as superscript. The paragraph tag <p> is a block-level element. Before apply the <sup> tags, there is no space between the Text and 100.

No space between Text and 100.

After applying the <sup> tags, the 100 is formatted with superscript and initially it appears that spacing remains the same.

After returning to the Source view, the auto-indenting of the editor is in effect and the view of the rendered text includes a space between Text and 100.

This is expected HTML behavior based on the standards for block elements like <p>. To ensure that unwanted white space is not introduced, use an inline element such as <span> to wrap the content.

Understanding Spacing and Script Tags

In order to maximize control over spacing between tags, spaces that immediately precede or follow a tag are only preserved and rendered if they are encoded using the &nbsp character entity.

Data Display Conditions

Several script conditions can help you control the rendering of document content based on specific data values supplied to a data element when that data element allows multiple values to be supplied to it. Such data elements have a suffix such as “.i” at the end of their names. For example, l_cml_name_borr_borrowername.i allows multiple values to be supplied to it.

Iteration

The Iteration condition can be included in a csi-loop div to control how many instances, or iterations, of a data element value will be included in the rendered document. In the sample below, the condition specifies that only the first value (1) supplied to the data element borrower name will be rendered.

  <p>
    <strong>Iteration</strong>
    - This will print only the first borrower name:
  </p>
  <div class="csi-loop" element="l_cml_name_borr_borrowername.i" level="i">
    <p class="csi-condition" condition="Iteration('.i') == '1'">
    <span unselectable="on" class="csi-datapoint"
      datapointname="l_cml_name_borr_borrowername.i" contenteditable="false">l_cml_name_borr_borrowername.i</span>
    </p>
  </div>

SizeOf

The display of document content may be conditioned on the presence of a specific number of values supplied to a data element. For example, a statement applicable only when the two borrowers are participating in a loan can be conditioned on the presence of two values for the borrower name data element. This is controlled with the SizeOf condition.

  <p>
    <strong>SizeOf</strong>
    - This will print only if you have two borrowers:
  </p>
  <p class="csi-condition" condition="SizeOf('l_cml_name_borr_borrowername', '.i') == '2'">
    You have two borrowers!
  </p>

CountOf

The CountOf condition allows you to render content based a specific value supplied to a data element when that data element allows multiple values to be supplied to it. Such data elements have a suffix such as “.i” at the end of their names. You could use this condition to render content if any instance of the values supplied to the data element were greater than zero. For example, text might render if any of the deposit account holders states was MI:

  CountOf('Datapoint’, 'MI', '.i') > 0

In the sample below, content is only rendered if any of the values supplied to data element are “John”.

  <p>
    <strong>CountOf</strong>
    - This will print only if you have one borrower named John:
  </p>
  <div class="csi-condition" condition="CountOf('l_cml_name_borr_borrowername', 'John', '.i') == 1">
    Hello John!
  </div>

Current Document Panel

The Current Document panel lists data placeholders added to the custom document. It automatically updates as data elements are added or removed from the document. You can also manually update the list by clicking the Refresh icon.

You may need to manually refresh the list when you use the Undo or Redo tools.

Data Elements Allowing Multiple Values

Some data elements are designed to allow multiple values to be supplied to them in a single transaction, while others are not. For example, multiple borrowers may be parties to the same transaction, but there is only one current date. The data element for borrower name allows multiple values, while the data element for current date does not.

If a data element allows multiple values, its name is displayed with a suffix like .i or .j, and a small icon is included in the upper right corner of the data element card in the Dictionaries panel.

Allows multiple values

Allows a single value

When you add data elements that allow multiple values to script, it is not necessary to edit the script to include the suffix .i, .j, or .k.

*When you supply a value to a data element allowing multiple values, you must include text in the Prefix edit box.*

Entering Sample Values

The Current Document panel includes a Sample Value edit box for data elements added to the document. You can enter values in these edit boxes to test the rendering of the custom document in the Preview window.

Sample values specified on the Current Document panel are used only when previewing and printing custom documents from CSi Simplicity. They are not published with custom documents and will never be used at transaction time.

Some data elements associated with signature blocks are configured to allow multiple values to be supplied to them. This allows you to test the preview of documents that may receive one or multiple instances of values in a transaction. For example, a signature block may have signature lines for one or more borrowers, depending on how many borrowers there are in the lending transaction.

When it is possible to supply multiple sample values to a data element:

  • Add and Remove icons appear after the Sample Value edit box. Clicking Add creates another instance of the data element on the list so that an additional sample value can be supplied. Clicking Remove deletes the instance unless it is the only instance of the data element on the list.

  • A Prefix edit box appears before the Sample Value edit box. The prefix specifies “which one” so that you can associate related data elements together. Sample values with the same prefix are rendered together in the document preview.

For example, the following prefixes and values will result in the document preview below.

Please note that creating multiple instances of sample values does not add new or additional data elements to the custom document. It only allows you to test the preview of the document with multiple sample values supplied to a given data element. The actual number of values included on the document is determined at transaction time.

Scripting Values

When your institution’s license key enables Enterprise Scripting, additional functionality is available on the Current Document panel to script the values supplied to data elements.

When the Script Value check box is active, the Sample Value edit box toggles to the Script Value edit box. You can then define a value for the element by supplying a JScript.NET expression with helper calls to extract values from other data elements.

For example, to script a value for Custom_Fee_Total that sums the values of Custom_Fee_Amount_A and Custom_Fee_Amount_B, you can supply:

number(Custom_Fee_Amount_A) + number(Custom_Fee_Amount_B)

To script a value for Full_Name that concatenates the values of First and Last, you can supply:

element(First) + ‘ ’ + element(Last)

To test the rendering of scripts that extract values from other data elements, the document must include the referenced data elements and must have sample values supplied to those elements.

Scripting Document Titles

The Script Value feature can be used to ensure that the preferred name of the custom document is rendered in the document header when a document header is specified for inclusion on the General tab of the Custom Document workflow.

When you include the header component in a custom document, data elements are added to the Current Document Data panel for defining sample data or scripted values for data elements in the document. To define a default name for the custom document that will not appear on any other document in the transaction set, activate the Script Value check boxes for c_gnl_misc_xsim_primarydocname and c_gnl_misc_xsim_secondarydocname (if needed.) Supply the values you want used for the document name in quotation marks.

Importing and Exporting Sample Values

You can export the sample values displayed in the Current Document panel. This allows you to reuse a collection of sample values among multiple custom documents.

Click the Export button on the Current Document panel, then specify a name and location for the sample values file. The sample values file uses CSi’s DXL file format and is named using the current custom document’s name, followed by SampleValues. For example, a sample values file exported from the custom document Test will be named Test_SampleValues.dxl.

You can import a set of sample values by clicking the Import button on the Current Document panel. The sample values file must use either the DXL or TXL data file format. Sample values from the loaded file populate the data placeholders in the Current Document panel as follows.

Conditions Result
Both the Current Document panel and the imported file include the same data placeholder. The sample value from the imported file is added to the Current Document panel. If the data placeholder already has a sample value, it is replaced with the sample value from the imported file.
The Current Document panel lists a data placeholder that is not present in the imported file. No sample value is added to the Current Document panel.
The imported file contains a data placeholder that is not present in the Current Document panel. That sample value is not loaded.

You can export the sample values from one custom document and import it into many custom documents. You may want to do this to populate consistent sample data into the headers, footers, or signature sections of custom documents.

Sample values specified on the Current Document panel are used only when previewing and printing custom documents from CSi Simplicity. They are not published with custom documents and will never be used at transaction time.

Appendix A: Available Data Formats

Format 1234.00 1234.49 1234.51 -1234.00 -1234.49 -1234.51
alphadollar One Thousand Two Hundred Thirty-four and 00/100 Dollars One Thousand Two Hundred Thirty-four and 49/100 Dollars One Thousand Two Hundred Thirty-four and 51/100 Dollars -1,234.00 -1,234.49 -1,234.51
dollar 1,234.00 1,234.49 1,234.51 -1,234.00 -1,234.49 -1,234.51
dollartrimmed 1,234 1,234.49 1,234.51 -1,234 -1,234.49 -1,234.51
dollarrounddown 1,234 1,234 1,234 -1,234 -1,235 -1,235
dollarrounddownsigned $1,234 $1,234 $1,234 -$1,234 -$1,235 -$1,235
dollarroundnearest 1,234 1,234 1,235 -1,234 -1,234 -1,235
dollarroundnearestsigned $1,234 $1,234 $1,235 -$1,234 -$1,234 -$1,235
dollarroundup 1,234 1,235 1,235 -1,234 -1,234 -1,234
dollarroundupsigned $1,234 $1,235 $1,235 -$1,234 -$1,234 -$1,234
dollarsigned $1,234.00 $1,234.49 $1,234.51 -$1,234.00 -$1,234.49 -$1,234.51
dollarsignedtrimmed $1,234 $1,234.49 $1,234.51 -$1,234 -$1,234.49 -$1,234.51
dollarwithoutcommas 1234.00 1234.49 1234.51 -1234.00 -1234.49 -1234.51
dollarwithoutcommassigned $1234.00 $1234.49 $1234.51 -$1234.00 -$1234.49 -$1234.51
dollarwithoutcommassignedtrimmed $1234 $1234.49 $1234.51 -$1234 -$1234.49 -$1234.51
dollarwithoutcommastrimmed 1234 1234.49 1234.51 -1234 -1234.49 -1234.51
format 2/1/2015 2/17/2015
mm dd yy 02 01 15 02 17 15
mm/dd/yy 02/01/15 02/17/15
mm/dd/yyyy 02/01/2015 02/17/2015
mm dd yyyy 02 01 2015 02 17 2015
mmm dd, yyyy Feb 01, 2015 Feb 17, 2015
mmm. d, yyyy Feb. 1, 2015 Feb. 17, 2015
mmm. dd, yyyy Feb. 01, 2015 Feb. 17, 2015
alphadate February One, Two Thousand Fifteen February Seventeen, Two Thousand Fifteen
alphamonth February 1, 2015 February 17, 2015
notarydate first day of February, 2015 seventeenth day of February, 2015
notarydatenumericday 1st day of February, 2015 17th day of February, 2015
isodate 2015-02-01 2015-02-17
ordinaldate 1st of February, 2015 17th of February, 2015
yyyy-mm-dd 2015-02-01 2015-02-17
format 1 12 123 123456 3.14159
alphanumber one twelve one hundred twenty-three one hundred twenty-three thousand four hundred fifty-six three
alphaordinal first twelfth 123rd 123456th third
number 1 12 123 123,456 3
numericordinal 1st 12th 123rd 123456th 3rd
fourdecimaldown 1.0000 12.0000 123.0000 123,456.0000 3.1415
fourdecimalround 1.0000 12.0000 123.0000 123,456.0000 3.1416
fourdecimalup 1.0000 12.0000 123.0000 123,456.0000 3.1416
odometer 1.0 12.0 123.0 123,456.0 3.1
format 1 1.875 3.14159
percent 1.000 1.875 3.142
percenttrimmed 1 1.875 3.142
yieldpercent 1.00 1.88 3.14
exactpercent 1.000 1.875 3.14159
alphapercent one percent (1%) one and seven eighths percent (1.875%) 3.14159%
alphapercentagepoints one percentage point (1%) one and seven eighths percentage points (1.875%) 3.14159%
format 123456789
ssn 123-45-6789
tin 12-3456789
tid 12-3456789
format 6165551212
phone (616)555-1212
format 123456789
zip 12345-6789
format K2H5R9
canadian-post K2H 5R9
format the quick brown fox
capitalize THE QUICK BROWN FOX
capitalizestart The quick brown fox
lowercase the quick brown fox
format 15th
extractnumberordinal 15