Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
A business rule is an action run on the server-side when a record is inserted, updated or deleted. Business rules are executed in a database transaction, irrespective regardless of the interface used to initiate the transaction (a user submitting a form, the execution of a server-side script, a REST request, the execution of a Workflow Activity block). The rule action of a rule can be executed both on the current record and on other records.
Info |
---|
Business rules can use scenarios scripts to perform actions with records in the database. There are other options of the script actions available, such as client-side scripts and UI-actions. |
Business rules are used for:
- changing values in the fields of a record that caused the rule to run when certain conditions are met;.
- executing execution of a server-side script of the rule;.
- displaying a message to on the client side;.
- creating system events for sending e to send e-mail notifications or running other run other server-side scripts;.
- aborting interrupting database transactions with the database.
To view all business rules navigate to System DefinitionSettings → Business Rules.
To view the business rules related to a specific table, complete the steps below:
- Navigate to the list or form view of the table; .
- Select Configure → Business Rules from the burger menu.
Business rules types
Depending on the business task to be completed, you can you are solving, use one of the following types of business rules:
- before;
- after;
- async after.
Before rules run conditions:
- After record action start (insert, update, or delete).
- Before the system performs server updates (before the database transaction is completed).
After rules run conditionscondition:
- After the system performs server updates (after the database transaction is completed).
Async after rules run conditionscondition:
- After all business rules of other types (after all after business rules).
Info |
---|
Async The async after business rules run after before the before and after business rules, so the user first , a user receives the form with all the changes, and then the async after rules run. Thus, using async the async after business business rules, you can optimize system response time – use async the async after rules for resource-intensive scripts that take a lot of time. |
The following scheme below illustrates when the before, after , and async after rules run. All rules execute after a record action start are executed after the start of an action on a record (insert, update, or delete).
Process The process starts with a form action: if it is the an update action, the data source is the database, and therefore so the record has the previous block. The previous block represents the form state before an the action (form submission – insert, update or delete), and the current blocks represent the form state after the action is completed. Form submission can be performed by a user, a script or a REST API request.
Image Removed
Image Added
Business rules creation
Tip |
---|
Role required: admin. |
To create a new business rule, perform the steps below:
- Navigate to System Definition → Settings→ Business Rules.
- Click New and fill in the fields.
- Click Save or Save and Exitexit to apply the changes.
Business rules form fields Anchor business rule fields business rule fields
Field | Mandatory | Description | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Name | Y | Type in Specify a name for the business rule name. | ||||||||||||||||||
Table | Y | Select the table on for which the business rule will runis executed. | ||||||||||||||||||
Description | N | Type in Add a brief description of the action description. | ||||||||||||||||||
Active | N | Select this checkbox to make activate the business rule active. | ||||||||||||||||||
Inheritance | N | Select this checkbox to apply this business rule to all child tables of the table defined in the specified Table field. | ||||||||||||||||||
Advanced | N | Select this checkbox to display the Script field and advanced settings such as the type of the business rule (the When field in the When to Run tab). | ||||||||||||||||||
When to Run tab | ||||||||||||||||||||
When | N | Select the moment of the business rule execution:
| ||||||||||||||||||
Order | N | Specify the order of the business rule execution. If there are multiple business rules of the same type (before, after, async after), they are executed in the ascending order. infoThis field appears when thethe Advanced checkboxcheckbox is selected and thethe When fieldfield value is set toto before oror after. | ||||||||||||||||||
Priority | N | Specify the importance priority of the business rule. info. If there are multiple business rules with the same Order, they are executed in the descending order according to their Priority. This field appears when thethe Advanced checkboxcheckbox is selected and thethe When fieldfield value is set toto before oror after. | ||||||||||||||||||
Action Insertinsert | N | Select this checkbox to execute the business rule when a new record is inserted. | ||||||||||||||||||
Action Updateupdate | N | Select this checkbox to execute the business rule when a record is updated. | ||||||||||||||||||
Action Deletedelete | N | Select this checkbox to execute the business rule when a record is deleted. infoThis field appears when thethe Advanced checkboxcheckbox is selected. | ||||||||||||||||||
Filter Conditionsconditions | N | A condition builder that allows using static and dynamic filtersSpecify the conditions for the business rule execution. After specifying the Table, all fields of this table are available in the constructorcondition builder.
| ||||||||||||||||||
Action tab
| ||||||||||||||||||||
Set Valuevalue | N | Select a column and define the value you need.
current
| ||||||||||||||||||
Abort action Abort Action | N | Select this checkbox to interrupt the transaction (insert, update, or delete) when all conditions are met.
If the abort conditions cannot be set using the Filter Conditions field, use the script with the setAbortAction and ss.addErrorMessage methods. In this case, the Abort Actionaction checkbox should be cleared.
| ||||||||||||||||||
Add Messagemessage | N | Select this checkbox to display the Message field if you need to show a message to a user when the business rule is performed. | ||||||||||||||||||
Message | N | Enter the message you need to show to a user when the business rule is performed. The message is displayed as a flash message. To enable localization of the messages, use the values of the Source Message (source_message) records from the app category category (determined by the value in the Category column). See Localization and Multi-language Language Support to learn more. Do not use variables and dynamic links to other records in this message. In order to add a message with variables or dynamic links, select the Advanced checkbox and configure the script in the tab of the same name.
| ||||||||||||||||||
Advanced tab | ||||||||||||||||||||
Script | N | The action sequence that will Add a script that determines the actions to be executed when a the business rule is launched, . The previous and current variables are available:
You can call the REM attributes in the business rules of before type. In this case, while the business rule is processedprocessing, you will get the current attribute values, before the transaction occurs. At the moment of triggering the When the async after business rule is triggered, the action of the rule action is sent to the queue. Because of this, there may be an insignificant lag a slight delay between the triggering of the business rule and execution of the action. The current and previous objects in the async after business rules contain the state of the object at the moment of execution of time the business rule action is executed.
This field appears when thethe Advanced checkboxcheckbox is selected. |
Note |
---|
The server-side business logic may not work for system tables if the creation or updating of records is initiated by the backend. For example, an Impor Set is created as part of loading an Import Source, or an Email is created as a result of a notification rule, and so on. Example of tables for which server-side business logic may not work:
|
Abort business rules Anchor abort business rule abort business rule
abort business rule | |
abort business rule |
The abort
It is possible to perform business rules that terminate abort the follow-up subsequent actions and processes.
: business rules
terminate the following processes: Business rules, Notifications, Approval Rules, etc. See Approvals to learn more about approval rule rejection,notifications,approval rules, and others.
To make your business rule abort the follow-up processes, complete the steps below:
- Open a business rule record you need.
- In the When to Run tab, define the abort conditions.
- In the Action tab, select the Abort Actionaction checkbox.
In the When to Run tab, check that the When field is set to before.
Tooltip onlyIcon true appendIcon info-filled iconColor blue The When field is displayed when the Advanced checkbox is selected.
Click Save or Save and Exit exit to apply the changes.
Out-of-the-box business rules override Anchor override override
override | |
override |
If necessary, some "out-of-the-box" business rules can be overridden.
- For applications other than Simple it is enough to copy an "out-of-the-box" rule using the Make a copy action and deactivate the original rule. You can define the required logic in the copy of the rule.
- For the Simple application, most rules are delivered with Protection Policypolicy = Protected, so you can not deactivate them. However, the rules of the When=before type can be overridden by rules of a higher order with the same start conditions. For example, an "out-of-the-box" rule with the before type generates a value in a fieldthe Subject field. The order of the rule is 999. To change the value generation logic, it is enough to make a copy of the rule using the Make a copy action, define a specific logic and set Order = 1000. If the value in the field should remain unchanged, use the rule triggered by an Action Updateupdate event with the following script:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
(function executeRule(current, previous = null /*not null only when action is update*/) { if (previous) { current.getValue('field_name')subject = previous.getValue('field_name')subject; } })(current, previous); |
Table of Contents |
---|