You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 70 Next »

Business rule is a server-side script running at the moment of inserting, updating, or deleting a record. 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.

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, after, and async after rules run. All rules execute after an action record start (insert, update, or delete).

Process starts with a form action: if it is the update action, data source is the database, and therefore the record has the previous block. The previous block represents form condition before 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.

Before rules run conditions:

  • After record action start (insert, update, or delete).
  • Before the system performs server updates.

After rules run conditions:

  • After the system performs server updates.

Async after rules run conditions:

  • After all business rules of other types (after all after business rules).

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.


Role required: admin.

Business rules creation


You can create a business rule that will be running when inserting, updating or deleting a record.

To create it, please perform the following steps:

  1. Navigate to System Definition → Business Rules.
  2. Click New and fill in the fields.
  3. Click Save or Save and Exit to apply changes.

Business rules form fields

FieldMandatoryDescription
NameYBusiness rule name.
TableYTable on which a business rule will run.
DescriptionNA brief action description.
ActiveNSelect this checkbox to make the business rule active.
InheritanceNSelect this checkbox to apply this business rule to all child tables of the table defined in the Table field.
AdvancedNSelect 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
WhenN

Defines the moment of business rule execution:

  • before – execution prior to the operation of the business rule launch trigger (prior to the updating, inserting or deleting a record)
  • after – execution after the operation of the business rule launch trigger (after the updating, inserting or deleting a record).
  • async after execution is carried out after all preceding business rules are completed: the system returns the form with all changes and then runs async after business rules in the background. Using async after business rules, you can optimize system response time.
OrderN

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.

This field is available when the Advanced is selected and the When field value is before or after.

PriorityN

Defines the importance of the business rule.

This field is available when the Advanced is selected and the When field value is before or after.

Action InsertNSelect this checkbox to execute the business rule when inserting a new record.
Action UpdateN

Select this checkbox to execute the business rule when updating a record.

If there are active business rules with Action Update checked, any update in the table triggers the Action Update even when there is no factual difference between the previous and current state of the record. 

Action DeleteN

Select this checkbox to execute the business rule when deleting a record.

This field is available when the Advanced is selected.

Filter ConditionsN

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.

  • Use dynamic filter conditions like is (dynamic) or is not (dynamic) when composing conditional expressions to make your business rules more versatile.
  • An empty condition always returns 'true'.

Action tab

Action tab is not available for async business rules.

Set ValueNSelect a column and define the value you need.
Available columns depend on the table specified in the Table field.
Abort ActionN

Select this checkbox to interrupt the transaction (insert, update, or delete) when all conditions are met.

A good practice is to specify the reason of action to abort. Select the Add Message checkbox and type the text in the Message field.

If the message is not specified, only the standard 'Saving error' message  will occur when the action aborts:

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 MessageNSelect this checkbox to display the Message text field if you want to show a message to a user when a business rule is performed.
MessageN

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. 

Here, you can also copy the value of a Source Message (source_message) record. See the Interface Localization article to learn more.

The field appears when the Add Message checkbox is selected.

Advanced tab
ScriptN

This field is available when the Advanced is selected.

The action sequence that will be executed when a business rule is launched, previous and current variables are available:

  • previous – the state of a record object before insert, update, or delete.
  • current – the state of a record that will be inserted, updated, or deleted. The current object is still available after the record is deleted.
When a record is inserted
  • previous is null.
  • current is equal to the SimpleRecord object that will be inserted.
When a record is updated
  • previous is equal to the SimpleRecord object as it was before the transaction started.
  • current is equal to the SimpleRecord object at the moment when the rule execution starts.
When a record is deleted
  • previous is null.
  • current is equal to the SimpleRecord object at the moment when the rule execution starts.

You can call REM attributes in your business rule of before type, In this case, while your business rule is processed, you will get the current attribute values, before the transaction occurs.

The previous object is available only for the update action.

  • It is strongly recommended to avoid using current.update() with
  • It is strongly recommended to avoid using the setAbortAction method with async business rules. It may cause unpredictable system behavior. after business rules. It may cause unpredictable system behavior.

Abort business rules 


It is possible to perform business rules that terminate the follow-up actions and processes.

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:

  1. Open a business rule record you need.
  2. In the When to Run tab, define the abort conditions.
  3. In the Action tab, select the Abort Action checkbox.
  4. In the When to Run tab, check that the When field has the before field.

  5. Click Save or Save and Exit to apply changes.

Business rule is a server-side script running at the moment of inserting, updating, or deleting a record. 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.

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, after, and async after rules run. All rules execute after an action record start (insert, update, or delete).

Process starts with a form action: if it is the update action, data source is the database, and therefore the record has the previous block. The previous block represents form condition before 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.

Before rules run conditions:

  • After record action start (insert, update, or delete).
  • Before the system performs server updates.

After rules run conditions:

  • After the system performs server updates.

Async after rules run conditions:

  • After all business rules of other types (after all after business rules).

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.


Role required: admin.

Business rules creation


You can create business rule that will be running when inserting, updating or deleting a record.

To create it, please perform the following steps:

  1. Navigate to System Definition → Business Rules.
  2. Click New and fill in the fields.
  3. Click Save or Save and Exit to apply changes.

Business rules form fields

FieldMandatoryDescription
NameYBusiness rule name.
TableYTable on which a business rule will run.
DescriptionNA brief action description.
ActiveNSelect this checkbox to make the business rule active.
InheritanceNSelect this checkbox to apply this business rule to all child tables of the table defined in the Table field.
AdvancedNSelect 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
WhenN

Defines the moment of business rule execution:

  • before – execution prior to the operation of the business rule launch trigger (prior to the updating, inserting or deleting a record)
  • after – execution after to the operation of the business rule launch trigger (after the updating, inserting or deleting a record).
  • async after execution is carried out after all preceding business rules are completed: the system returns the form with all changes and then runs async after business rules in the background. Using async after business rules, you can optimize system response time.
OrderN

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.

This field is available when the Advanced is selected and the When field value is before or after.

PriorityN

Defines the importance of the business rule.

This field is available when the Advanced is selected and the When field value is before or after.

Action InsertNSelect this checkbox to execute the business rule when inserting a new record.
Action UpdateNSelect this checkbox to execute the business rule when updating a record.
Action DeleteN

Select this checkbox to execute the business rule when deleting a record.

This field is available when the Advanced is selected.

Filter ConditionsN

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.

Use dynamic filter conditions like is (dynamic) or is not (dynamic) when composing conditional expressions to make your business rules more versatile.

Action tab

Action tab is not available for async business rules.

Set ValueNSelect a column and define the value you need.
Available columns depend on the table specified in the Table field.
Abort ActionN

Select this checkbox to interrupt the transaction (insert, update, or delete) when all conditions are met.

A good practice is to specify the reason of action abortion. Select the Add Message checkbox and type the text in the Message field.

If the message is not specified, only the standard 'Saving error' message  will occur when the action aborts:

If abort conditions cannot be set using the Filter Conditions field, you can use script with the setAbortAction and ss.addErrorMessage methods in the script . In this case, the Abort Action checkbox should be cleared.

Add MessageNSelect this checkbox to display the Message text field if you want to show a message to a user when a business rule is performed.
MessageN

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. 

Here, you can also copy the value of a Source Message (source_message) record. See the Interface Localization article to learn more.

The field appears when the Add Message checkbox is selected.

Advanced tab
ScriptN

This field is available when the Advanced is selected.

The action sequence that will be executed when a business rule is launched, previous and current variables are available:

  • previous – the state of a record object before insert, update, or delete.
  • current – the state of a record that will be inserted, updated, or deleted. The current object is still available after record is deleted.
When a record is inserted
  • previous is null.
  • current is equal to the SimpleRecord object that will be inserted.
When a record is updated
  • previous is equal to the SimpleRecord object as it was before transaction started.
  • current is equal to the SimpleRecord object at the moment when the rule execution starts.
When a record is deleted
  • previous is null.
  • current is equal to the SimpleRecord object at the moment when the rule execution starts.

You can call REM attributes in your business rule of before type, In this case, while your business rule is processed, you will get the current attribute values, before the transaction occurs.

The previous object is available only for the update action.

  • It is strongly recommended to avoid using current.update() with before business rule.
  • It is strongly recommended to avoid using current.update() with asyncasync after business rules. It may cause unpredictable system behavior. business rules. It may cause unpredictable system behavior.
  • It is strongly recommended to avoid using the setAbortAction method with async

Abort business rules 


It is possible to perform business rules that terminate the follow-up actions and processes.

The abort business rules terminate the following processes: Business rules, Notifications, <![CDATA[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:

  1. Open a business rule record you need.
  2. In the When to Run tab, define the abort conditions.
  3. In the Action tab, select the Abort Action checkbox.
  4. In the When to Run tab, check that the When field has the before field.

  5. Click Save or Save and Exit to apply changes.

  • No labels