Difference between revisions of "The Musings of Chin - Configuration Tips"

From SmartWiki
Jump to: navigation, search
(Created page with '''Welcome to another installment of Chin's Musings! In this series, Systems Controller Chin Chuah will create helpful rundowns of various system features and processes to help yo…')
 
 
(6 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
Let's learn about some common issues encountered when configuring SmartSimple.
 
Let's learn about some common issues encountered when configuring SmartSimple.
  
==[[Workflows]] Not Firing==
+
==Workflows Not Firing==
* Ensure that the workflow has [[Workflow Connector|connectors]] between the [[Workflow Task Types|tasks]]. There needs to be a start and end (or connection) to another workflow.
+
* Ensure that the [[workflow]] has [[Workflow Connector|connectors]] between the [[Workflow Task Types|tasks]]. There needs to be a start and end (or connection) to another workflow.
 
* When using [[branching logic]] within task connectors, ensure that every outcome and possibility is accounted for in your conditions and that each condition is mutually exclusive from each other. Do not overlap logical conditions with each other.
 
* When using [[branching logic]] within task connectors, ensure that every outcome and possibility is accounted for in your conditions and that each condition is mutually exclusive from each other. Do not overlap logical conditions with each other.
* Ensure that the object you're triggering the workflow on is enabled for it. For example, Universal Tracking Application™ {{l1}} templates need to have workflows enabled and specific association workflows selected. Companies need to select specific company/contact workflows.
+
* Ensure that the object you're triggering the workflow on is enabled for it. For example, {{UTA}} {{l1}} templates need to have workflows enabled and specific association workflows selected. Companies need to select specific company/contact workflows.
* Multiple workflows cannot be configured to trigger off a single status.
+
* Multiple workflows cannot be configured to trigger off a single [[status]].
 
* Ensure there is no malformed or incorrect syntax used within the task connectors or workflow routing (i.e. routing of an acknowledgement task).
 
* Ensure there is no malformed or incorrect syntax used within the task connectors or workflow routing (i.e. routing of an acknowledgement task).
  
 +
==Variable Processor==
 +
* Ensure that any variables referenced in the system are always encapsulated within double quotes.
 +
* If certain syntax such as [#(?object=)#] is malformed, it will result in displaying a completely blank page.
 +
* Ensure there are no mismatched syntax tags such as [[sslogic]] embedded within each other, or missing sslogic end tags. When embedding different syntax (e.g. sslogic, [[sscalculation]], or [[System Variables|system variables]]), make sure you understand the [[The Musings of Chin - SmartSimple's Order of Operations|SmartSimple Order of Operations]] to configure these appropriately.
 +
* Be mindful of all the possible return values for a variable. When a value has never been saved to a field, the variable syntax itself will be returned (i.e. @variable@). A variable may also return a blank empty string. The variable processor will also take field formatting into account and, by default, returns a field's configured format such as currency or date format. This needs to be considered when manipulating the value.
  
Variable Processor
+
==Javascript vs. MySQL Syntax==
  
    Ensure that any variables referenced in the system are always encapsulated within double quotes.
+
* [[Javascript]] syntax is used in areas that are displayed on the browser to the user. Custom field settings for Javascript [[Validation]], [[Custom Field Type: Special – Calculated Value|Special Calculated Value]] custom fields, and [[Custom Field Type: Special – Browser Script|Special Browser Script]] fields are a few examples.
    Certain syntax such as [#(?object=)#] is malformed, it will result in displaying a completely blank page.
+
* MySQL syntax is used in behind-the-scenes areas not displayed to the user. [[Template Formulas]], [[Submit Logic]], custom field [[Visibility Condition|Visibility Logic]] are a few examples.
    Ensure there are no mismatched syntax tags such as sslogic embedded within each other, or missing sslogic end tags. When embedding different syntax (e.g. sslogic, sscalculation, or system variables) make sure you understand the SmartSimple Order of Operations to configure these appropriately.
+
* The Javascript equality operator is a double equal sign (==) whereas MySQL's is just a single equal sign (=).
    Be mindful of all the possible return values for a variable. When a value has never been saved to a field, the variable syntax itself will be returned (i.e. @variable@). A variable may also return a blank empty string. The variable processor will also take field formatting into account and, by default, returns a field's configured format such as currency or date format. This needs to be considered when manipulating the value.
+
* String (text) values need to be encapsulated within quotes (double quotes are the safest), hence the suggestion to always encapsulate Variable Processor calls within quotes.
  
 
+
[[Category:Expert Tips and Tricks]][[Category:Chin’s Musings]]
Javascript vs. MySQL Syntax
 
 
 
    Javascript syntax is used in areas that are displayed on the browser to the user. Custom field settings for Javascript Validation, Special Calculated Value custom fields, and Special Browser Script fields are a few examples.
 
    MySQL syntax is used in behind the scenes areas not displayed to the user. Template Formulas, Submit Logic, custom field Visibility Logic are a few examples.
 
    The Javascript equality operator is a double equal sign (==) whereas MySQL is just a single equal sign (=).
 
    String (text) values need to be encapsulated within quotes (double quotes are the safest), hence the suggestion to always encapsulate Variable Processor calls within quotes.
 
 
 
 
 
[[Category:Chin's Musings]]
 

Latest revision as of 14:44, 15 January 2015

Welcome to another installment of Chin's Musings! In this series, Systems Controller Chin Chuah will create helpful rundowns of various system features and processes to help you better understand the SmartSimple platform.

Let's learn about some common issues encountered when configuring SmartSimple.

Workflows Not Firing

  • Ensure that the workflow has connectors between the tasks. There needs to be a start and end (or connection) to another workflow.
  • When using branching logic within task connectors, ensure that every outcome and possibility is accounted for in your conditions and that each condition is mutually exclusive from each other. Do not overlap logical conditions with each other.
  • Ensure that the object you're triggering the workflow on is enabled for it. For example, Level 1 templates need to have workflows enabled and specific association workflows selected. Companies need to select specific company/contact workflows.
  • Multiple workflows cannot be configured to trigger off a single status.
  • Ensure there is no malformed or incorrect syntax used within the task connectors or workflow routing (i.e. routing of an acknowledgement task).

Variable Processor

  • Ensure that any variables referenced in the system are always encapsulated within double quotes.
  • If certain syntax such as [#(?object=)#] is malformed, it will result in displaying a completely blank page.
  • Ensure there are no mismatched syntax tags such as sslogic embedded within each other, or missing sslogic end tags. When embedding different syntax (e.g. sslogic, sscalculation, or system variables), make sure you understand the SmartSimple Order of Operations to configure these appropriately.
  • Be mindful of all the possible return values for a variable. When a value has never been saved to a field, the variable syntax itself will be returned (i.e. @variable@). A variable may also return a blank empty string. The variable processor will also take field formatting into account and, by default, returns a field's configured format such as currency or date format. This needs to be considered when manipulating the value.

Javascript vs. MySQL Syntax

  • Javascript syntax is used in areas that are displayed on the browser to the user. Custom field settings for Javascript Validation, Special Calculated Value custom fields, and Special Browser Script fields are a few examples.
  • MySQL syntax is used in behind-the-scenes areas not displayed to the user. Template Formulas, Submit Logic, custom field Visibility Logic are a few examples.
  • The Javascript equality operator is a double equal sign (==) whereas MySQL's is just a single equal sign (=).
  • String (text) values need to be encapsulated within quotes (double quotes are the safest), hence the suggestion to always encapsulate Variable Processor calls within quotes.