Orchestrator allows users to coordinate various Extension Kit rules. Using this module, users can chain multiple rules, set explicit order in which they are executed, and configure additional conditions for rules execution. This gives users more control over rules execution when implementing various business processes.
Configuration #
After you have successfully installed the application, and you have rules you want to orchestrate, here is how to configure Orchestrator:
- Open M-Files Admin
- In the left-side tree view, expand the desired connection to M-Files Server.
- In the left-side tree view, expand the Document Vaults
- Still in the left-side tree view, expand the vault where you installed the connector and select Configurations.
- Expand Other Applications
- Expand Extension Kit
- Click on Orchestrator
Note: In order to see the rules in the Orchestrator, you need to select Advanced Setup and set Aliases for each of the rules.
Field Description #
Field | Value | Description |
Name | Text | Specifies the rule group name. |
Rule groups[n]>Group [n]> Rule [n] | ||
Name | Text | Specifies rule name. |
Alias | Text | Unique rule alias. |
Description | Text | Optional rule description. |
Enabled | Yes/No | Specifies whether the module is in use. |
Workflow | Workflow | Workflow filter for states. |
Configuration Mode | Simple/Advanced | Display simple or advanced configuration options for rule. |
Rules>Monitored properties>Monitored property condition | Property whose value will be checked. | |
Monitor type | Any Change With condition | Controls how property will be monitored. Any change. All changes will be monitored and rule will be triggered on any property change With condition. Rule will be triggered on property change only if specified condition is satisfied |
Rule>Trigger source | For event based triggers, these filters define source object whose change will trigger rule execution. For Scheduled and RunOnce triggers, these filters will be used to find objects rule will be executed on. | |
Object Type | List of object types | Object type of parent object. |
Class | List of classes | Class of parent object. |
Workflow | List of workflows | Workflow of parent object. |
State | List of workflow states | Workflow state of parent object. |
Rules > Rule [n] > Search filters > Filter [n] | ||
SearchConditions | Search conditions | Optional additional conditions that parent object needs to satisfy. Conditions inside a single filter are combined with AND, while multiple filters are combined with OR operator. |
Look in | LatestObjVersion AllObjVersions | Whether source object must match the specified conditions in current version, or in any version in history. |
Rules > Rule [n] > Vault search > Search [n] | ||
Conditions | Property definition | Optional list of conditions that must be satisfied in vault in order for this rule to be executed. |
Search result type | One of the following: Any None | Any. If this option is selected, the vault search will be considered satisfied if at least one matching object is found in vault. None. If this option is selected, the vault search will be considered satisfied if no matching objects are found in vault. |
Rules > Rule [n] > Vault search > Search [n] >Vault search sort | ||
Sorty by | Property definitions | |
Sort direction | One of the following: Ascending Descending | |
Update metadata in file | Yes No | When object metadata is changed it will be automatically updated in document associated with it. All changes will be available in preview card with no need for check out. |
Execution mode | One of the following: EventHandler Background | Defines when rule is executed: EventHandler. During object check in. Background. In background, after object has been checked in. |
Rule> Orchestration condition>Basic conditions | ||
Condition for | One of the following: Source Vault Search | Whether to check this condition against trigger source object, or against vault search. |
Rule> Orchestration condition>Math conditions | ||
Condition for | One of the following: Source Vault search | Whether to check this condition against trigger source object, or against vault search. |
Dynamic values from | One of the following: Source Vault search | Whether to check this condition against trigger source object or against vault search. |
Property | Property definitions | Property whose value will be checked. |
Operator | One of the following: ≠ > < ≥ ≤ | Operator to apply in comparison of actual and expected property value |
Rule>Execute when conditions are satisfied>Orchestrated rule [n] | Orchestrated rules to execute when conditions are satisfied. | |
RuleModule | One of the following: Extended property calculations Extended property operations Extended e-mail notifications Extended object creation Extended validation SQL integration HTTP integration Extended versioning Extension methods Extended reporting | Module of rule to execute. |
Rule alias | Text | Alias of rule to execute. |
On error | One of the following: Continue Stop | Rule error handling. If an execution error occurs whether to continue executing other rules or stop. |
Rule source | One of the following: Source VaultSearch Specify | Object that the rule will be triggered on. Source: Orchestrator rule source VaultSearch: Orchestrator rule vault search result Specify: Another object. |
Rule>Execute when conditions are not satisfied>Orchestrated rule [n] | ||
RuleModule | One of the following: Extended property calculations Extended property operations Extended e-mail notifications Extended object creation Extended validation SQL integration HTTP integration Extended versioning Extension methods Extended reporting | Module of rule to execute. |
Rule alias | Text | Alias of rule to execute. |
On error | One of the following: Continue Stop | Rule error handling. If an execution error occurs whether to continue executing other rules or stop. |
Rule source | One of the following: Source VaultSearch Specify | Object that the rule will be triggered on. Source: Orchestrator rule source VaultSearch: Orchestrator rule vault search result Specify: Another object. |
Use Case #
Calculate the value of the payment for kilometers an employee travels #
A user wants to calculate the value of the payment for the kilometers an employee traveled, based on his specific km rate. The employee has to fill the form, providing an amount of km traveled separately for the city and highway cycle.
There are 3 properties which have to be calculated in the order as follows:
- Total km traveled – sum of km in the city and highway cycle calculated by Extended Property Calculations
- Driver specific km rate – Extended Property Operation rule finds the proper rate for the driver
- Total settlement payment – multiplying total km traveled and driver specific km rate with Extended Property Calculations
Using the Orchestrator module, the user invokes the rules from Extended Property Calculations and Extended Property Operations and orchestrates the chain of actions. All properties are calculated in one cycle.
Check the value of order and invoice #
A user receives an invoice that is related to an order, and uses the Orchestrator to check if the value on the invoice matches the value of the order. And then, depending on the results from the Orchestrator, the user calls the orchestrated rules in other modules.
- If values are the same, the confirmation is not needed and the invoice is passed to the accounting.
- If the value on the invoice is different that the one on the order, then the invoice goes through the confirmation and an email is sent to the responsible person to confirm the invoice.

