The Musings of Chin - Configuration Tips
From SmartWiki
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.