Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Business A business rule is a server-side script running at the moment of inserting, updating, or deleting a record. Business Business rules are used for such tasks as conditionally automatic value change in the form fields or event creation for email notifications and script actions.
Info |
---|
Business rules can use scenarios to perform actions with records in the database. Even so, there are several other options of the script actions available, such as client -side scripts and UI-actions. |
The scheme below illustrates when Before and After before, after,andasync after rules run. Both All rules execute after an action record start (insert, update, or delete).
The process starts with a form action: if it is the update action, the data source is the database, and therefore the record has the previous block. The previous block represents a form condition before an action (form submission – insert, update, or delete), and the current blocks represent a form condition after the action is completed. Form submission can be performed by a user, script, or REST API request.
Image AddedImage Removed
Before rules run condition:conditions:
- After record action start (insert, update, or delete).
- Before the system performs the server updates.
After rules run conditionconditions:
- After the system performs the server updates.
Info |
---|
For more information about execution order for before and after business rules, please refer to the Execution order article. |
Tip |
---|
Role required: admin. |
Abort business rules
It is possible to perform business rules that terminate the follow-up actions and processes.
Info |
---|
The abort business rules terminate the following processes: Business rules, Notifications, Approval Rules, etc. See Approval Management to learn more about approval rule rejection. |
To make your business rule abort the follow-up processes, complete the steps below:
Async after rules run conditions:
- After all business rules of other types (after all after business rules).
Info |
---|
Async after business rules run after before and after business rules, so first, a user receives the form with all changes, and then async after rules run. Thus, using async after business rules, you can optimize system response time – use async after rules for resource-intensive scripts that take a lot of time. |
Tip |
---|
Role required: admin |
. |
Business rules creation
You can create a business rule that will be running when running when inserting, updating or deleting a record.
To create it, please perform the following steps:
- Navigate to System Definitions → Business to System Settings → Business Rules.
- Click New and fill in the fields.
- Click Save or Save and Exit to apply the changes.
Business rules form fields fields Anchor business rule fields business rule fields
Field | Mandatory | Description | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Name | Y | Name a business Business rule name. | |||||||||||||||||||||
Table | Y | A table Table on which a business rule will be performingrun. | |||||||||||||||||||||
Description | N | Abort Action | N | A brief action description. | |||||||||||||||||||
Set Value | N | Select a column of the table chosen in the Table field and define the needed value. | |||||||||||||||||||||
Select this checkbox to interrupt the transaction (update, insert, or delete) when all conditions are met. | |||||||||||||||||||||||
Active | N | Select this checkbox to make the business rule active. | |||||||||||||||||||||
Inheritance | N | Select this checkbox to apply this business rule to all child tables of the table defined in the Table field. | |||||||||||||||||||||
Advanced | N | Select this checkbox to display the Script field and advanced settings such as type of the business rule (the When field in the When to Run tab). | |||||||||||||||||||||
When to Run tab | |||||||||||||||||||||||
When | N | Defines the moment of a business rule execution:
Info |
| ||||||||||||||||||||
Order | N | Defines the order of the business rule execution. If there are several business rules of the same type (before, after, async after), they will perform in the ascending order.
| |||||||||||||||||||||
Priority | N | Defines the importance of the business rule.
| |||||||||||||||||||||
Action Insert | N | Select this checkbox to execute the business rule when inserting a new record. | |||||||||||||||||||||
Action Update | N | Select this checkbox tp to execute the business rule when updating a record. | |||||||||||||||||||||
Action Delete | N | Select this checkbox to execute the business rule when deleting a record.
| |||||||||||||||||||||
Filter Conditions | N | A condition builder that allows using static and dynamic filters. After specifying a table in the Table field, all fields of this table will be available in the constructor.
| |||||||||||||||||||||
Action tab
| |||||||||||||||||||||||
Set Value | N | Select a column and define the value you need. Available columns depend on the table specified in the Table field. | |||||||||||||||||||||
Abort Action | N | Select this checkbox to interrupt the transaction (insert, update, or delete) when all conditions are met.
If abort conditions cannot be set using the Filter Conditions field, you can use the script with the setAbortAction and ss.addErrorMessage methods in the script. In this case, the Abort Action checkbox should be cleared. | |||||||||||||||||||||
Add Message | N | Select this checkbox to display the Message text field if you want to show a message to a user when a business rule is performed. | |||||||||||||||||||||
Message | N | Enter the message text you want to show to a user when a business rule is performed. The message will appear in the bottom right corner.
Alternatively, a Message can be a value of the Source Message (source_message) record from the app category. See the Interface Localization article to learn more.
| |||||||||||||||||||||
Advanced tab | |||||||||||||||||||||||
Script | N |
The action sequence that will be executed when a business rule is launched, previous and current variables are available:
|
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 Import 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. A list of table examples 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 |
It is possible to perform business rules that terminate the follow-up actions and processes.
Info |
---|
The abort business rules terminate the following processes: Business rules, Notifications, Approval Rules, etc. See Approval Management to learn more about approval rule rejection. |
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 Action checkbox.
In the When to Run tab, check that the When field has the before field.
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 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 sufficient to copy an out-of-the-box rule using the Make a copy action and deactivate the original rule. Then you can determine the required logic in the copy of the rule.
- For the Simple application, the majority of the rules are delivered withProtection Policy = Protected, thus you can not simply deactivate them. However, the rules of the When=before type can be overridden by rules with the same start conditions of a higher order. For example, an out-of-the-box rule with the before type generates a value in the Subject field. The order of the rule is 999. To change the value generation logic, it is sufficient to make a copy of the rule using the Make a copy action, determine a specific logic and set Order = 1000. If the value in the field must remain unchanged, use the rule triggered by an Action Update event with the following script:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
(function executeRule(current, previous = null /*not null only when action is update*/) {
if (previous) {
current.subject = previous.subject;
}
})(current, previous); |
Table of Contents | ||||
---|---|---|---|---|
|