|Rules and examples
Rules are client-side scripts (no-code business logic) that are executed when a user of the mobile app interacts with the app. The On Create rules are executed before a questionnaire or report instance is created. Rules are managed using the rules editor.
On Create rules are available for the following components:
On Create rules in questionnaires can be used to define additional variables which can be used in the reuse fetch. This can ensure that inspectors can select from a relevant list of answered questionnaires.
|Requires version 3 (or later) of rules and version 15.0 (or later) of the mobile app.
- Rule execution
- When a questionnaire instance is about to be created. This happens even before the On Load event.
|On Create rules cannot be used to set question values (answers). Use On Load instead.
Example: Reuse fetch extended by OnCreate rule
In this rule, we want to reuse answers from previous questionnaires. While using OnCreate, we can extend reuse fetch possibilities by adding additional conditions. Let's say, "we start the questionnaire from the workorder." We aim to reuse only those questionnaires done on the same customer and asset.
First, we must create custom fields on the questionnaire entity (via Admin Console). These custom fields will serve as an additional condition in reuse fetch. The first is reuse_customer with account lookup, and the second is reuse_equipment with asset lookup.
Right after, we have to enable these two fields in the Questionnaire entity, in the app project.
Now, we can start with the OnCreate rule (Questionnaire Designer). Two shared variables are necessary: shared.Customer type account and shared.Asset type asset. If the new questionnaire was created from the workorder, load reference from the workorder into the variable Workorder_ref. If Workorder_ref contains data, can we populate shared variables and our custom fields. We assign customerid into shared.Customer and reuse_customer and assetid into shared.Asset and reuse_equipment.
|Alternatively, we can populate custom fields directly on the questionnaire by adding lookup components with the same logical name as custom fields.
Reuse fetch can be modified in the right pane of Questionnaire Designer.
- created by current user
- is not a template
- used template is equal to one we chose
- status equals completed
The last two conditions are available only after creating custom fields. Reuse fetches questionnaires where the custom field reuse_customer is equal to the shared.Customer and reuse_equipment is also equal to the shared.Asset.
|Explanation: Each time we start a new questionnaire from the workorder, shared variables are populated (during OnCreate) and compared to the custom fields reuse_customer and reuse_equipment of already completed questionnaires.
Report Designer also supports rules that can add some business logic to your reports. In the case of the Report Designer, whenever a new report is created, or a new instance of a repeating block is created, an On Create event is triggered.
|For reports, the steps don't allow you to control the user interface (enable or disable a field, show or hide something, etc.); you can only assign values to variables or perform arithmetic operations.
To define the steps, proceed as follows:
- Select either the report body or a repeater.
- Click Edit Sources to display a list of variables defined for that component.
- Select any variable and click On Create to display the rules editor.
- Use the usual Rules editor syntax to define one or more steps that should be performed.
- Remember to save all changes.
- Rule execution
- When a new report is created.
- When an instance of a repeating block is created.
Report Designer examples include several ideas on how the On Create rule can be used in reports.
You can configure business logic in the toolbar. Schedule Board supports two types of rules, On Create is one of them. The On Create rule triggers when a new activity (task) entity is created based on the source entity.
- Rule execution
- When the source entity item is dragged from the list of source entities onto the timetable.