Difference between revisions of "Variable Processor"

From SmartWiki
Jump to: navigation, search
(Undo revision 37195 by Chin (talk))
 
Line 1: Line 1:
==General Details==
+
{{Banner-UnderConstruction}}
===Upgrade Dates===
 
Public Cloud Production release date: '''November 14th 2019'''<br />
 
Public Cloud Backup release date: '''October 29th 2019'''
 
  
Private Cloud Production (Managed Upgrades) release date: '''November 28th 2019'''<br />
 
Private Cloud Backup (Managed Upgrades) release date: '''November 14th 2019'''
 
  
==Overview==
+
=Overview=
Watch this video to get a general overview of the new features in this release.
+
The Variable Processor is the engine within SmartSimple that processes and replaces variable references (e.g. @firstname@) with actual values (e.g. John Doe) within templates and calculations. This allows you to configure a generic template or calculation to be translated and applied across multiple records.
  
coming soon...
+
A simple example of the concept of variable translation can be seen in the display of your name in the header menu of SmartSimple after having logged in. To achieve this the SmartSimple application would first require a generic web page template with a variable reference to ''user name'' in the header menu. When you log into SmartSimple the application processes the generic template and replaces the variable reference for ''user name'' with your actual name and the result is what you see in your browser.
<!--{{#ev:youtube|jfzDUPZxLZA}}-->
 
  
''To watch this video in full screen, please click on the '''full screen''' button on the bottom right.''
+
=Configuration - Essentials=
  
==Global System Upgrades==
+
==Areas of Use==
The new features listed below are enhancements to the SmartSimple system and will be immediately available to SmartSimple users upon the application of the upgrade to their server:
+
*Email Templates
 +
*Custom Fields
 +
*Template Formulas
 +
*Workflows
  
===Major Updates===
+
==Basic Syntax==
====Change to Upgrade Schedule====
+
The most common use of the Variable Processor is to reference a field value. Variable references are denoted in general by a field name encapsulated by the @ symbol. The most basic form of variable is:
Starting in 2020, we'll be changing our upgrade cycle to a 4-month release cycle. Instead of 4 upgrades a year, we'll be producing 3 upgrades a year. The reason for this is to be able to produce more polished, as well as larger functional enhancements.  The 3-month cycle was limiting our ability to develop some of our larger features in a more comprehensive manner. Lengthening the release cycle will allow us to produce some bigger, meaner features, so stay tuned for these starting in 2020!
 
  
====Deprecation of Classic Interface====
+
@''fieldname''@
It's time to step boldly into the future. With this upgrade we've deprecated our Classic interface. If you haven't yet made the switch to Arcadia interface, your system will automatically be converted to using the Arcadia interface after this. This is to ensure the best user experience for all of our clients, and their communities, not only with a modern interface but also with the rich set of features that we're able to offer through the Arcadia interface that wasn't possible in Classic. Note, your system interface will only change if it currently looks like the Classic example below, and after this upgrade it will be updated to look like the Arcadia example instead.
 
<!--92714 - deprecate classic-->
 
  
====Deprecate Decimal and Integer Number Formats from Question Set Builder Field====
+
Where ''fieldname'' is simply the name of a custom field or one of the pre-defined standard fields as listed in the appendix for each of the record types. This form is used when the field exists on the record that you are viewing. For example, if we are viewing a user profile and wish to reference that user's first name we can configure a variable '''@firstname@'''.
Deprecated the number Format options of Decimal, and Integer from fields used in the Question Set Builder custom field. Note that this only applies to the Question Set Builder custom field, and only in the case where you have created questions that use these format options. This change was made to align the configuration of these fields more consistently with our other custom field settings for Number Precision. Note that if you have any questions current configured in a Question Set Builder configured for the deprecated format options above, they will just be converted to the value of None after this upgrade. You will have to update the fields manually and set the Number Precision if needed.
 
<!--93305 - Deprecate Decimal and Integer format type from question set builder-->
 
  
====Change to CAPTCHA Bypass Setting====
+
===Record Level===
Change to the CAPTCHA bypass function previously used to disable CAPTCHA functionality for users by country. Instead we've re-introduced an older CAPTCHA feature of ours that will apply a simple CATPCHA test that is verified locally on the server instead of reaching out to our Google reCAPTCHA integration that was being blocked by some countries. Instead of outright disabling CAPTCHA functionality for a country, this setting will now instead supply users in selected countries with a SmartSimple CAPTCHA in order to always present some challenge to malicious automation out there.
+
You can also reference information from other records by defining the record level of the field with the following syntax:
<!--71605 - Ref to ticket 71008 - Captcha Response Error upon completing the registration, please enhance.-->
 
  
====New Ability to Attach Multiple Filters to a List View====
+
@''record''.''fieldname''@
New ability to attach multiple filters to a single list view. You may now build complex list filters by combining multiple simple list filters. When assigning multiple filters to a list view, the results of each individual filter are returned and then combined together to render the list. In other words, the resulting list will contain records that satisfy any single one of the attached filters.
 
<!--91407 - Ability to add multiple filters to one list view-->
 
  
====Expanded Field Search to List View Configuration====
+
Where ''record'' defines a different record that you wish to reference a field from. For example, if we are again viewing a user profile but wish to reference the company name of that user we can configure a variable '''@parent.name@'''. In this example, we are currently on a user profile, and in order to reference information from the user's parent company we reference one level up using 'parent'.
Expanded the ability to search for fields to the list view configuration screen. Now when editing a list view, you can easily search for specific fields that you're looking for, similar to the functionality in the report builder.
 
<!--89682 - list view column custom field search-->
 
  
====Expanded Edit List View Icon to More Areas====
+
Record levels can also be nested to refer to records that are multiple levels apart. For example, if we wish to reference the company name of the user that is currently logged in we can configure a variable '''@me.parent.name@'''. Here we see two records mentioned, the first for 'me' starts at the user currently logged in, and then 'parent' to traverse one level up. Another example of valid syntax could be '''@parent.parent.parent.''fieldname''@'''.  
Expanded the availability of the edit list view icon to more areas. We've now extended the ability to easily configure the list view that you currently have open to most of the list view areas in the system including lists on contact records, organization records, and UTA consumer/provider lists.
 
<!--87475 - Navigate to List view Editor/Settings via Consumer Provider/L2/Contact Lists-->
 
  
====Enhanced Search Panel Function====
+
The following are some examples that can be used in a variable reference. For these examples assume the following scenario:
Enhanced the search panel area for list view sections in portals. This search panel is an easy way for you to provide a simple search filter for your end users to use, by predefining a set of criteria that they're able to filter on. Within the configuration of a portal section of type list view, simply enable the Search Panel option, and then select which columns of the list view you want to allow end users to filter on.
+
* You are logged in as 'SmartSimple Support'
<!--93189 - revised Arcadia portal search (engage)-->
+
* Your parent company is the 'Customer Support' department
 +
* The root company of the instance is 'SmartSimple Software Inc.'
  
====New View of Workflow Connectivity Configurations====
+
{| class="wikitable"
New settings screen that lists workflow connectivity to help you to trace through complex workflow processes. In the configuration screen of a workflow, we've introduced a new menu tab called Workflow Connections that will allow you to see other workflows that trigger, or are triggered by the workflow you're viewing. Also, when you are editing a workflow task that triggers another workflow, we've introduced a link for you to review the workflow that you're linking to.
+
|-
<!--87846 - Workflow settings page enhancements-->
+
! Syntax
 +
! Description
 +
! Format
 +
! Example
 +
|-
 +
| parent
 +
| References the parent of the current record being viewed.
 +
| @parent.''fieldname''@
 +
| @parent.name@ -> Customer Support
 +
|-
 +
| me
 +
| References the user currently logged in.
 +
| @me.''fieldname''@
 +
| @me.email@ -> support@smartsimple.com
 +
|-
 +
| level1/level2/level3
 +
| Specific within the area of UTA template formulas. This is required to explicitly denote the record level in a formula since multiple levels can be referenced.
 +
| @level[1/2/3].''fieldname''@
 +
| @level2.Grant Name@ = "@level1.name"<end>
 +
is an example of a UTA Level 2 template formula that copies the Level 1 name standard field value to a Level 2 Grant Name custom field.
 +
|-
 +
| rootcompany
 +
| References the root company of the instance.
 +
| @rootcompany.''fieldname''@
 +
| @rootcompany.name@ -> SmartSimple Software Inc.
 +
|-
 +
|}
  
====New Ability to Test Report Exports and Autoloader Imports====
+
===Field Attributes===
New ability to test report exports and autoloader imports on the fly now. We've introduced a Test Now button on the scheduling screen for report exports and autoloader imports for you to manually kick off a test.
+
Specific attributes of a field can also be referenced to get different information about a field. The general syntax syntax to do this is:
<!--92533 - Add testing buttons for import/export functions-->
 
  
====Enabled Change History for Reports====
+
@''record''.''fieldname''.''attribute''@
Enabled change history functionality for reports. You can now see detailed change history for your reports and also even revert changes to a previous version! Note that changes to reports will only begin to be logged after the upgrade and you will not see previous changes made before.
 
<!--88002 - Track changes on Reports-->
 
  
====Enabled Audit History for UTA Security Matrix====
+
The following are some examples that can be used in a variable reference. For these examples assume the following scenario:
Enabled audit history for UTA security matrix. The system will now log changes made to the UTA security matrix.
+
*A custom field with ID '132547', named 'Gender' that is configured as a Select One - Combo Box field with options '1=Male;2=Female;'
<!--54550 - UTA security matrix audit history-->
+
*A custom field with ID '243657', named 'Text' that is configured as a Text Box - Single Line field with caption 'Enter Text Here'
 +
*A record where we have entered Gender as male and Text as 'Lorem Ipsum'
  
===Minor Updates===
+
{| class="wikitable"
====Update to SmartCheck Error Message====
+
|-
Updated the standard message for a failed SmartCheck validation from "please correct the following errors" instead to "submission failed due to the following". This was done to avoid confusion in situations where the failed submission logic should not actually be corrected, such as an eligibility form, where suggesting to correct the failed criteria would invite perjury.
+
! Syntax
<!--61778 - Smartcheck Message Info 'please correct the following errors'-->
+
! Description
 +
! Format
 +
! Example
 +
|-
 +
| value
 +
| Returns the stored value of a field.
 +
| @''fieldname''.value@
 +
| @Gender.value@ -> 1
 +
|-
 +
| combovalue
 +
| Specific to Select One - Combo Box custom field type. Returns the stored value of a field.
 +
| @''fieldname''.combovalue@
 +
| @Gender.combovalue@ -> 1
 +
|-
 +
| length
 +
| Returns the character length of the stored value of a field. Commonly used to check whether a field is empty by checking for a length of 0.
 +
| @''fieldname''.length@
 +
| @Text.length@ -> 11
 +
|-
 +
| id
 +
| Returns the custom field ID of a custom field.
 +
| @''fieldname''.id@
 +
| @Gender.id@ -> 132547
 +
|-
 +
| caption
 +
| Returns the caption of the custom field. Commonly used when creating custom forms with the Display Only – Web Page View custom field type.
 +
| @''fieldname''.caption@
 +
| @Text.caption@ -> Enter Text Here
 +
|-
 +
| numoffiles
 +
| Specific to Link - Multiple Files custom field type. Returns the total number of files uploaded to the field
 +
| @''fieldname''.numoffiles@
 +
|
 +
|-
 +
| numofpages
 +
| Specific to Link - Single File and Link - Multiple Files custom field type. Returns the total number of pages within files uploaded to the field
 +
| @''fieldname''.numofpages@
 +
|
 +
|-
 +
| files
 +
|
 +
| @''fieldname''.files@
 +
|
 +
|-
 +
| uploadlink
 +
|
 +
| @''fieldname''.uploadlink@
 +
|
 +
|-
 +
| compressedfiles
 +
|
 +
| @''fieldname''.compressedfiles@
 +
|
 +
|-
 +
| compressedlink
 +
|
 +
| @''fieldname''.compressedlink@
 +
|
 +
|-
 +
| filenames()???
 +
|
 +
| @''fieldname''.filenames()@
 +
|
 +
|-
 +
|}
  
====Enhanced Tab Bar Mode Feature====
+
{| class="wikitable"
Enhanced the Tab Bar feature and extended it to more areas. You can now enable Tab Bar mode from the portal, where previously it was restricted to admin user views only. Also added the ability to re-order your tabs, as well as to use the various split-screen features such as list view split-screens, and map panels. We've also updated the modal window functionality from covering the entire screen instead to just covering the main application window when using the Tab Bar feature. This will allow you to more easily work with multiple tabs and switch between them.
+
|-
<!--92385 - Tab Bar phase 2-->
+
! Syntax
<!--92260 - New version of modal window-->
+
! Description
 +
! Format
 +
! Example
 +
|-
 +
| html
 +
|
 +
| @xml.''fieldname''.''section''.html@ / @grid.''fieldname''.html@
 +
|
 +
|-
 +
| xml
 +
|
 +
| @xml.''fieldname''.''section''.
 +
|
 +
|-
 +
| xmlpre
 +
| pre-processed variables
 +
|
 +
|
 +
|-
 +
| xmlvalue
 +
|
 +
| @xml.''fieldname''.xmlvalue@
 +
|
 +
|-
 +
| grid
 +
| inline data grid
 +
| @grid.''fieldname''.
 +
|
 +
|-
 +
|}
  
====Updated Icon Library====
+
===Functions===
Updated the library of available icons, for use in places like portal shortcuts. This will grant you more variety in the available icons you can choose from, as well as different styles of icons.
 
<!--92817 - Font Awesome-->
 
  
====Added Ability to Show All Records in Portal List View====
+
====Date Formatting====
Added the ability to show all records in a portal list view now. Previously in the portal view, list views were limited in the number of records they could display at a time.
+
The following syntax is available in order to explicitly specify the display of a date formatted field. For example, to always display the date in 'YYYY-MM-DD HH:MM am/pm' you can define a variable '''@year(''fieldname'')@-@month(''fieldname'')@-@day(''fieldname'')@ @hour(''fieldname'')@:@minute(''fieldname'')@ @ampm(''fieldname'')@'''.
<!--89913 - Allow showing all records on portal list view sections-->
 
  
====Updated Settings Terminology of Data Categorization Feature====
+
The following are some examples that can be used in a variable reference. For these examples assume the following scenario:
Updated some of the terminology and field labels for the settings of the Data Categorization functionality to improve clarity around the feature. In the Global Settings, Security menu, the previous Data Categorizations and Policies link has been moved down to a new section labelled Data Management Policies, and Data Categories has been re-labelled to Field Sets. These changes were made to have access to this feature more apparent and intuitive.
+
*A record where we have entered the standard field Start Date as '2017-01-02' at '22:52'
<!--75526 - Data Categorization and Policies Refresh-->
 
  
====Updated Icon for Configuration of Translation Text====
+
{| class="wikitable"
Updated the icon for the configuration of custom translation text within settings pages. Previously this was an icon beside the text boxes that could be translated, such as caption label, however, this functionality has now been moved up to the top of configurations screen with a new icon. This change was made to have access to text translations more consistent and easily available to administrators.
+
|-
<!--85366 - Translations button-->
+
! Syntax
 +
! Description
 +
! Example
 +
|-
 +
| year
 +
| Specific to date formatted fields. Returns the full year.
 +
| @year(''fieldname'')@
 +
| @year(fullstartdate)@ -> 2017
 +
|-
 +
| month
 +
| Specific to date formatted fields. Returns the month number.
 +
| @month(''fieldname'')@
 +
| @month(fullstartdate)@ -> 01
 +
|-
 +
| monthname
 +
| Specific to date formatted fields. Returns the month name.
 +
| @monthname(''fieldname'')@
 +
| @monthname(fullstartdate)@ -> January
 +
|-
 +
| day
 +
| Specific to date formatted fields. Returns the day.
 +
| @day(''fieldname'')@
 +
| @day(fullstartdate)@ -> 02
 +
|-
 +
| dayweek
 +
| Specific to date formatted fields. Returns the day of the week.
 +
| @dayweek(''fieldname'')@
 +
| @dayweek(fullstartdate)@ -> Monday
 +
|-
 +
| hour
 +
| Specific to date formatted fields. Returns the 12-hour format of hour.
 +
| @hour(''fieldname'')@
 +
| @hour(fullstartdate)@ -> 10
 +
|-
 +
| hour24
 +
| Specific to date formatted fields. Returns the 24-hour format of hour.
 +
| @hour24(''fieldname'')@
 +
| @hour24(fullstartdate)@ -> 22
 +
|-
 +
| minute
 +
| Specific to date formatted fields. Returns the minute.
 +
| @minute(''fieldname'')@
 +
| @minute(fullstartdate)@ -> 52
 +
|-
 +
| ampm
 +
| Specific to date formatted fields. Returns the am/pm value of the 12-hour time.
 +
| @ampm(''fieldname'')@
 +
| @ampm(fullstartdate)@ -> pm
 +
|-
 +
| date
 +
| Specific to date formatted fields. Returns the date ???.
 +
| @date(''fieldname'')@
 +
| @date(fullstartdate)@ -> 2017-01-02 ???
 +
|-
 +
| datetime
 +
| Specific to date formatted fields. Returns the date time ???.
 +
| @datetime(''fieldname'')@
 +
| @datetime(fullstartdate) -> 2017-01-02 22:52 ???
 +
|-
 +
| formatdate
 +
| Returns the date formatted to the current user preference
 +
| @''fieldname''.formatdate@ ???
 +
|
 +
|-
 +
|}
  
====Added Baseline Language Translations for Japanese====
+
====Number Formatting====
New language supported by default. We have introduced default baseline system translations now in Japanese.
+
The following syntax is available in order to format a numeric field value (e.g. currency, percent formats).
<!--84747 - Language Support-->
 
  
====Simplified Report Builder joins for Audit Logs====
+
{| class="wikitable"
Updated the report builder to simplify the inclusion of Standard and Custom Field Audit Log record sets. Now when you add one of these record sets, the link field option will also show specific fields that you can link on in order to limit your report of field history to specific fields.
+
|-
<!--89857 - Put restrictions on Report Builder joins-->
+
! Syntax
 +
! Description
 +
! Example
 +
|-
 +
| format
 +
| Specific to number formatted fields. Returns the specified formatted value of the number. Possible format options include currency, decimal, and percent
 +
| @format(''fieldname'',currency,us)@<br>
 +
@format(''fieldname'',decimal,<nowiki>''</nowiki>)@<br>
 +
@format(''fieldname'',percent,<nowiki>''</nowiki>)@
 +
|-
 +
|}
  
====Enhanced Reporting of Privacy and Security Policy Agreements====
+
===Miscellaneous Variables===
Enhanced the Privacy and Security Policy agreements to now capture the policy version, as well as expose the information to be exportable via Reports. You can now build a report to export the information of user acceptance of your policy agreements.
 
<!--90774 - Exportable Policy Acceptance Info-->
 
  
====Enabled Additional Logging of Emulation Users in Field Change History====
+
<!--
Enabled logging of emulation users for field change history. If a user is emulating another user, the original user will also be logged in the field change history to indicate that the target user was being emulated by another at the time. When viewing field changes, a new Emulated By column has been added to indicate this.
+
@now@
<!--91018 - Emulation Feature - Field History-->
+
@currentdate@
 +
@objemail@ (object email address)
 +
@SmartFields@ @SmartFields(fieldidlist)@ @SmartFieldsIncludeTab@ @SmartFieldsEdit@ (appears in edit mode)
 +
@lat@ @lng@
 +
-->
  
====Enhanced Association Entry Interface====
+
=Configuration - Advanced=
Enhanced the new association entry view for ease of use. Added the ability to select and drag multiple rows. Also, extended the new association entry interface to custom fields of type Linked Record List. If you're using the new association entry interface, this will also now be applied to custom fields that display association lists as well. This will be applied to your system if in Global Settings -> Classic Options -> you have untoggled Use Classic Association Entry View in order to try out the new interface.
 
<!--92712 - association entry interface new icon and row clickable-->
 
<!--92708 - linked record list to use the new association entry interface-->
 
  
==On-Demand System Upgrades==
+
==Advanced Syntax==
The following features are available immediately with the application of the upgrade, but must first be enabled or configured by a System Administrator:
 
  
===Major Updates===
+
===Record Level===
====Added Options for Configuring Minimum and Maximum Selection Requirement for Lookup - Autocomplete Custom Fields====
+
Record levels are used within a variable reference to define the record in question.  
Added options for the configuration of Lookup - Autocomplete custom field types to allow you to easily configure a minimum requirement, as well as maximum limit on options for users to select.
 
<!--70483 - SmartCheck Validation for Lookup - Autocomplete Options Multi-Select-->
 
  
====New Option for Update Behaviour with Organization Signups for Matching Organizations====
+
The following are some examples that can be used in a variable reference.
New update behaviour option for organization sign up pages introduced that when used will allow new registrants the ability to select existing organizations to sign up under. This new option will automatically create a new organization when no matches are found, but will alternatively display matching organizations when found and allow users the ability to select which to create their user account underneath.
 
<!--84626 - Organization lookup: partial matching-->
 
  
====New Option for Organization and User Signups to Apply SmartCheck Validation====
+
{| class="wikitable"
New ability to assign a SmartCheck validation to a signup page. While the signup page would apply field level validations, you may now also apply SmartCheck Validations to configure more complex validation requirements.
+
|-
<!--94388 - SmartCheck Validation available on sign up page-->
+
! Syntax
 +
! Description
 +
! Format
 +
! Example
 +
|-
 +
| system
 +
| References global system variables.
 +
| @system.''variablename''@
 +
|
 +
|-
 +
| system2
 +
| References global system variables.
 +
| @system2.''variablename''@
 +
|
 +
|-
 +
| system.library
 +
|
 +
| @system.library
 +
|
 +
|-
 +
| levelone / leveltwo
 +
| Specific to contact, company, or transaction associations to a Level 1 or Level 2 (e.g. Level 1 Contacts association). References the associated Level 1 or Level 2 record
 +
| @levelone.''fieldname''@
 +
|
 +
|-
 +
| company / contact
 +
| Specific to contact, company associations to a Level 1 or Level 2 (e.g. Level 1 Contacts association). References the company or contact record from the association (e.g. L1 or L2 multiple contacts)
 +
| @company.name@
 +
| @company.name@ -> SmartSimple Software Inc.
 +
|-
 +
| linkparent
 +
| References
 +
| @linkparent.''fieldname''@
 +
|
 +
|-
 +
| sessioncompany
 +
| References your current association company (logging in from multiple companies)
 +
| @sessioncompany.
 +
|
 +
|-
 +
|}
  
====New Location Proximity Searching====
+
===Field Attributes===
New ability for list views with the map panel enabled to filter and sort records based on location proximity. Now available for UTA Level 1, users, and companies list views. This will allow users to list records in order of proximity to the user's choice of their current location, an address search, or simply pointing on the map.
+
Specific attributes of a field can also be referenced. The following are some examples that can be used in a variable reference.
<!--84636 - Ability to sort list view by geographic location proximity to user-->
 
  
===Minor Updates===
+
==Lists==
====Expanded Quick Assign for use in Portal Sections====
 
Expanded the Quick Assign feature to be available for portal sections now. Previously, this was limited to just the full UTA view, but we've now made it available for portal sections so you can provide it to your end users with limited portal views.
 
<!--92641 - quick assign in portals-->
 
  
====Added Option for Workflow Connector to Exclude by Record Status and Type====
+
==Functions==
Added an option to add a status and type exclusion list for workflow connectors. Previously, there was only an inclusion option for status and types, but now you can choose either or to simplify your configuration.
 
<!--90250 - Workflow Connectors - Update to Select Exclude Statuses and Types-->
 
  
====Added Option to Show Record Count for Mixed Record Type List Views in Portal====
+
===Controls===
Added the Show Record Count option for portal sections of type List View - Mixed Record Type.
 
<!--88301 - Listview - Mixed Record Type-->
 
  
====Added Ability to Restrict Availability of Invitation Templates====
+
===Calculations===
Added ability to restrict the availability of Invitation templates of the Invitations feature to certain user roles. Visibility Condition settings have been added for Invitation templates to allow you to limit their use.
 
<!--90806 - More granular permissions & availability settings on Invitations functionality-->
 
  
====Added Additional Expiry Options for Privacy and Security Policy Agreements====
+
===ReportProperty===
Added an option to enforce that your end users accept your Privacy and Security policies on a daily or weekly basis. Previously, the shortest available option to you was monthly.
 
<!--65906 - Add Daily Option to Privacy and Security Policy Agreement Frequency-->
 
  
====New Ability to Manifest UTA Level 3 Tabs====
+
=Appendix=
New ability to manifest UTA Level 3 list views as tabs now.
 
<!--90291 - Manifest tab for L3 list views-->
 
  
==Beta Previews==
+
==Standard Field Variable Names==
No features are available for beta preview this upgrade.
 
  
==Notes for Admins==
+
===User===
====New Ability to Search within History and Pending Workflow Tasks====
+
<!--
New ability to perform searches within the workflow task history/pending queue lists. You can now search, filter, and sort on the workflow task queue to better trace the automated workflow processes being triggered in your system.
+
@inRole(rolename)@
<!--87394 - Workflow history-->
+
-->
  
====Added Option for use of Private Key File for Authentication of Report Exports====
+
===Company===
Added option to use private key file for use in authentication of report exports. You may now upload a private key file for use in report exports to external sites such as SFTP sites.
 
<!--90252 - Scheduled Export from a report - enhancement to use key file as credentials for sftp-->
 
  
====Expanded Variable Processor to Maximum Word/Character Setting of Custom Field====
+
===UTA Level 1===
Enhanced the maximum word/character setting of a custom field to run through the variable processor. You can now make the maximum word/character limits of your custom fields dynamic and dependent upon the value of another field.
 
<!--85056 - Use variable syntax for maximum word/character count for an input text field-->
 
  
====Added Option to Restrict Dynamic Content Enabled Custom Field to List Only Parent Associated Objects====
+
<!--
Added an option for selection-type custom fields with dynamic content enabled to restrict the list of dynamic content to related child records. For example, a multi-select custom field on a UTA Level 1, with the dynamic content option enabled will have an additional setting Enforce Parent Restriction available to you now. Enabling this setting will restrict the list of Level 2 records to only the child Level 2s under the Level 1 record the user is on.
+
@company. or @client.
<!--91318 - Restrict Objects to Parent - Dynamic Content-->
+
@person. or @people.
 +
-->
  
====Expanded Variable Processor to Records Linked via Linked Record Custom Field====
+
===UTA Level 2===
Added the ability to reference field values from another record linked through a selection-type custom fields with dynamic content. You'll be able to use the following variable syntax to reference an object linked to one of these fields:
 
@linked.''linkfield''.''recordfield''@
 
@linked.''linkfield''[#~''recordstandardfield''~ $''recordcustomfield''$#]@
 
  
e.g. @linked.EmergencyContact.cellphone@
+
===UTA Level 3===
given that EmergencyContact is a Linked Record custom field of type contact, and cellphone is a cellphone custom field belonging to the contact.
+
 
<!--91321 - Variable Syntax for Linked Records - Dynamic Content-->
+
===Email Broadcast Templates===
 +
 
 +
===Workflow Email Templates===
 +
 
 +
=Recommended Reading=
 +
 
 +
<!--
 +
@rootcompanyid@
 +
@ssformtoken@ (security token) @ssformtoken.html@ (hidden input HTML with security token)
 +
@url@
 +
@now@
 +
@currentdate@
 +
@logourl@
 +
@primaryroleid@ (primary role when logged in, using prole parameter from login)
 +
@dateformat@ (user setting, used in scripting)
 +
@sstimezone@ (user setting)
 +
@ssget()@
 +
@object@ (from a transaction will go to the user/company depending on transaction type, can also use @parent@)
 +
@company. or @client. (for invoice to get company information)
 +
 
 +
 
 +
note: change record context to level
 +
-->
 +
 
 +
[[Category:Process Drivers]][[Category:Variables]]

Latest revision as of 17:28, 18 November 2019


Construction warning.png Please note that this page is currently under construction. There is more information to come.


Overview

The Variable Processor is the engine within SmartSimple that processes and replaces variable references (e.g. @firstname@) with actual values (e.g. John Doe) within templates and calculations. This allows you to configure a generic template or calculation to be translated and applied across multiple records.

A simple example of the concept of variable translation can be seen in the display of your name in the header menu of SmartSimple after having logged in. To achieve this the SmartSimple application would first require a generic web page template with a variable reference to user name in the header menu. When you log into SmartSimple the application processes the generic template and replaces the variable reference for user name with your actual name and the result is what you see in your browser.

Configuration - Essentials

Areas of Use

  • Email Templates
  • Custom Fields
  • Template Formulas
  • Workflows

Basic Syntax

The most common use of the Variable Processor is to reference a field value. Variable references are denoted in general by a field name encapsulated by the @ symbol. The most basic form of variable is:

@fieldname@

Where fieldname is simply the name of a custom field or one of the pre-defined standard fields as listed in the appendix for each of the record types. This form is used when the field exists on the record that you are viewing. For example, if we are viewing a user profile and wish to reference that user's first name we can configure a variable @firstname@.

Record Level

You can also reference information from other records by defining the record level of the field with the following syntax:

@record.fieldname@

Where record defines a different record that you wish to reference a field from. For example, if we are again viewing a user profile but wish to reference the company name of that user we can configure a variable @parent.name@. In this example, we are currently on a user profile, and in order to reference information from the user's parent company we reference one level up using 'parent'.

Record levels can also be nested to refer to records that are multiple levels apart. For example, if we wish to reference the company name of the user that is currently logged in we can configure a variable @me.parent.name@. Here we see two records mentioned, the first for 'me' starts at the user currently logged in, and then 'parent' to traverse one level up. Another example of valid syntax could be @parent.parent.parent.fieldname@.

The following are some examples that can be used in a variable reference. For these examples assume the following scenario:

  • You are logged in as 'SmartSimple Support'
  • Your parent company is the 'Customer Support' department
  • The root company of the instance is 'SmartSimple Software Inc.'
Syntax Description Format Example
parent References the parent of the current record being viewed. @parent.fieldname@ @parent.name@ -> Customer Support
me References the user currently logged in. @me.fieldname@ @me.email@ -> support@smartsimple.com
level1/level2/level3 Specific within the area of UTA template formulas. This is required to explicitly denote the record level in a formula since multiple levels can be referenced. @level[1/2/3].fieldname@ @level2.Grant Name@ = "@level1.name"<end>

is an example of a UTA Level 2 template formula that copies the Level 1 name standard field value to a Level 2 Grant Name custom field.

rootcompany References the root company of the instance. @rootcompany.fieldname@ @rootcompany.name@ -> SmartSimple Software Inc.

Field Attributes

Specific attributes of a field can also be referenced to get different information about a field. The general syntax syntax to do this is:

@record.fieldname.attribute@

The following are some examples that can be used in a variable reference. For these examples assume the following scenario:

  • A custom field with ID '132547', named 'Gender' that is configured as a Select One - Combo Box field with options '1=Male;2=Female;'
  • A custom field with ID '243657', named 'Text' that is configured as a Text Box - Single Line field with caption 'Enter Text Here'
  • A record where we have entered Gender as male and Text as 'Lorem Ipsum'
Syntax Description Format Example
value Returns the stored value of a field. @fieldname.value@ @Gender.value@ -> 1
combovalue Specific to Select One - Combo Box custom field type. Returns the stored value of a field. @fieldname.combovalue@ @Gender.combovalue@ -> 1
length Returns the character length of the stored value of a field. Commonly used to check whether a field is empty by checking for a length of 0. @fieldname.length@ @Text.length@ -> 11
id Returns the custom field ID of a custom field. @fieldname.id@ @Gender.id@ -> 132547
caption Returns the caption of the custom field. Commonly used when creating custom forms with the Display Only – Web Page View custom field type. @fieldname.caption@ @Text.caption@ -> Enter Text Here
numoffiles Specific to Link - Multiple Files custom field type. Returns the total number of files uploaded to the field @fieldname.numoffiles@
numofpages Specific to Link - Single File and Link - Multiple Files custom field type. Returns the total number of pages within files uploaded to the field @fieldname.numofpages@
files @fieldname.files@
uploadlink @fieldname.uploadlink@
compressedfiles @fieldname.compressedfiles@
compressedlink @fieldname.compressedlink@
filenames()??? @fieldname.filenames()@
Syntax Description Format Example
html @xml.fieldname.section.html@ / @grid.fieldname.html@
xml @xml.fieldname.section.
xmlpre pre-processed variables
xmlvalue @xml.fieldname.xmlvalue@
grid inline data grid @grid.fieldname.

Functions

Date Formatting

The following syntax is available in order to explicitly specify the display of a date formatted field. For example, to always display the date in 'YYYY-MM-DD HH:MM am/pm' you can define a variable @year(fieldname)@-@month(fieldname)@-@day(fieldname)@ @hour(fieldname)@:@minute(fieldname)@ @ampm(fieldname)@.

The following are some examples that can be used in a variable reference. For these examples assume the following scenario:

  • A record where we have entered the standard field Start Date as '2017-01-02' at '22:52'
Syntax Description Example
year Specific to date formatted fields. Returns the full year. @year(fieldname)@ @year(fullstartdate)@ -> 2017
month Specific to date formatted fields. Returns the month number. @month(fieldname)@ @month(fullstartdate)@ -> 01
monthname Specific to date formatted fields. Returns the month name. @monthname(fieldname)@ @monthname(fullstartdate)@ -> January
day Specific to date formatted fields. Returns the day. @day(fieldname)@ @day(fullstartdate)@ -> 02
dayweek Specific to date formatted fields. Returns the day of the week. @dayweek(fieldname)@ @dayweek(fullstartdate)@ -> Monday
hour Specific to date formatted fields. Returns the 12-hour format of hour. @hour(fieldname)@ @hour(fullstartdate)@ -> 10
hour24 Specific to date formatted fields. Returns the 24-hour format of hour. @hour24(fieldname)@ @hour24(fullstartdate)@ -> 22
minute Specific to date formatted fields. Returns the minute. @minute(fieldname)@ @minute(fullstartdate)@ -> 52
ampm Specific to date formatted fields. Returns the am/pm value of the 12-hour time. @ampm(fieldname)@ @ampm(fullstartdate)@ -> pm
date Specific to date formatted fields. Returns the date ???. @date(fieldname)@ @date(fullstartdate)@ -> 2017-01-02 ???
datetime Specific to date formatted fields. Returns the date time ???. @datetime(fieldname)@ @datetime(fullstartdate) -> 2017-01-02 22:52 ???
formatdate Returns the date formatted to the current user preference @fieldname.formatdate@ ???

Number Formatting

The following syntax is available in order to format a numeric field value (e.g. currency, percent formats).

Syntax Description Example
format Specific to number formatted fields. Returns the specified formatted value of the number. Possible format options include currency, decimal, and percent @format(fieldname,currency,us)@

@format(fieldname,decimal,'')@
@format(fieldname,percent,'')@

Miscellaneous Variables

Configuration - Advanced

Advanced Syntax

Record Level

Record levels are used within a variable reference to define the record in question.

The following are some examples that can be used in a variable reference.

Syntax Description Format Example
system References global system variables. @system.variablename@
system2 References global system variables. @system2.variablename@
system.library @system.library
levelone / leveltwo Specific to contact, company, or transaction associations to a Level 1 or Level 2 (e.g. Level 1 Contacts association). References the associated Level 1 or Level 2 record @levelone.fieldname@
company / contact Specific to contact, company associations to a Level 1 or Level 2 (e.g. Level 1 Contacts association). References the company or contact record from the association (e.g. L1 or L2 multiple contacts) @company.name@ @company.name@ -> SmartSimple Software Inc.
linkparent References @linkparent.fieldname@
sessioncompany References your current association company (logging in from multiple companies) @sessioncompany.

Field Attributes

Specific attributes of a field can also be referenced. The following are some examples that can be used in a variable reference.

Lists

Functions

Controls

Calculations

ReportProperty

Appendix

Standard Field Variable Names

User

Company

UTA Level 1

UTA Level 2

UTA Level 3

Email Broadcast Templates

Workflow Email Templates

Recommended Reading