Easily manipulate values and properties when a trigger happen.
- Copy property from one object to another based on triggers
- Change all properties based on rule only once
Configuration #
After you have successfully installed the application, you should configure Property operations.
- 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 node.
- Still, in the left-side tree view, expand the vault where you installed the connector and select Configurations.
- Expand Other Applications.
- Expand Extension Kit for M-Files.
- Expand Configuration.
- Click on Property operations.
Field Description #
Field | Value | Description |
Enabled | Yes/No | Specifies whether the module is in use. |
Rules > Rule [n] | ||
Name | Text | Specifies the name of the rule. |
Enabled | Yes/No | Specifies whether the rule is in use. |
Trigger | One of the following: • Object created • Object entered state • Object Changed • RunOnce | Object created. If this option is selected, rule will be executed on creation of source object. Object entered state. If this option is selected, rule will be executed when source object changes workflow state. Object changed. If this option is selected, rule will be executed when any change is made on source object. On comment. If this option is selected, rule will run whenever a comment is added to the source object. Run once. If this option is selected, rule will be run only once and on all matching objects in vault. NOTE: On vault restart, all enabled rules with Run once trigger will be run immediately. |
Copy mode | One of the following: • From source to target • On source object | From source to target. Properties will be copied between two different objects (from source to target). On source object. Properties will be copied on single source object. |
Business Critical | Yes/No | If set to true, rule will be logged in SEQ. |
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. If this setting is not set, execution mode is controlled by Copy Mode setting and the following rules apply: – FromSourceToTarget rules are executed in background. – OnSourceObject rules are executed in event handler. |
Rules > Rule [n] > Monitored properties > Property definition [n] | ||
Property definition | Property definition | Property definition that needs to change in order for rule to be executed. Multiple properties are combined with OR operator, meaning that at least one of the properties has to change in order for rule to be executed. |
Rules > Rule [n] > Source | ||
Object type | Object type | Object type of the source object. |
Class | Object class | Class of the source object. |
Workflow | Workflow | Workflow of the source object. |
State | Workflow state | Workflow state of source object. NOTE! If you have entered a state, you must also enter the workflow above. |
Look in | One of the following: • Latest obj version • All obj versions | When trying to matching the above source conditions, look in all object versions, or only the latest one. Latest obj version. If this option is selected, the current object version must match the specified conditions for object to be treated as source for this rule. All obj versions. If this option is selected, any object version must match the specified conditions for object to be treated as source for this rule. |
Rules > Rule [n] > Source > Search filters > Filter [n] | ||
SearchConditions | Search conditions | Optional additional conditions that source object needs to satisfy. Conditions inside a single filter are combined with AND, while multiple filters are combined with OR operator. |
Rules > Rule [n] > Target | ||
FindTargets | One of the following: • ViaProperty • ViaSearch | ViaProperty. If this option is selected, property reference will be used to find targets for this rule. ViaSearch. If this option is selected, vault search will be executed to find targets for this rule. |
Reference | Property definition | Displayed only when FindTargets is ViaProperty. Property definition that defines the connection between source and target objects. |
Reference Direction | One of the following: • Direct • Indirect | Displayed only when FindTargets is ViaProperty. Direct. If this option is selected, the source object references a target object via given reference. Indirect. If this option is selected, a target object references the source object via given reference. |
Filter Conditions | Search conditions | Displayed only when FindTargets is ViaProperty. Optional additional conditions that target object needs to satisfy. |
Target search | Search conditions | Displayed only when FindTargets is ViaSearch. Search conditions used to find targets for this rule. |
Rules > Rule [n] > Vault search > Search [n] > Conditions > Property Conditions > Property condition [n] | ||
Property | Property definition | Specifies the property whose value will be checked. |
Operator | One of the following: • = • =! • < • > • <= • >= • Contains • Does not contain • Starts with • Does not start with | Operator to use for comparing actual and expected property value. |
Value | Property value | Expected property value. Can be static or dynamic, from source object. |
Mode | One of the following: • Dynamic value • Static value • Empty value • No action | Dynamic value. If this option is selected, value of placeholders in expression will be calculated from source object. Static value. If this option is selected, property value will be expected to match constant value. Empty value. If this option is selected, property value will be expected to be empty. No action. If this option is selected, no action will be performed. This is invalid state. |
Dynamic value | Text with placeholders | Displayed only if Dynamic value is selected as Mode. Specifies expected property value using properties from source object. |
Static value | Text | Displayed only if Static value is selected as Mode. Specifies constant expected property value. |
Rules > Rule [n] > (Target >) Properties > Property setter [n] | ||
Property | Property definition | Specifies property definition to set. |
Value type | One of the following: • Value • Function | Controls how the value of property will be calculated: directly by copying value from source or as function of selected property values. |
MultiSelectLookup Behaviour | One of the following: • Overwrite • Append | Displayed only when Value Type is Value. If property is multi select lookup, this setting controls how the selected value will be added: overwriting existing ones or appending. |
Add as additional property | Yes/No | If this option is set to Yes, and the specified property does not exist on target object, it will be added as additional property to that object. If this option is set to No, property will be set only if it exists on object. |
Update option | One of the following: • Always • Only when target empty • Only when source not empty | Always. If this option is selected, target property value will always be updated. Only when target empty. If this option is selected, target property value will be updated only when it is found to be empty (execute once and do not override). Only when source not empty. If this option is selected, target property value will be updated only when at least one of the selected source property values is not empty (do not update target with empty value). |
Rules > Rule [n] > (Target >) Properties > Property setter [n] > Function | ||
Functions group | One of the following: • Text • Date • Numeric | Type of function that will be used to calculate property value. |
Function | When Functions group is Text, one of the following: • Concatenate • ToLower • ToUpper • ToLowerInvariant • ToUpperInvariant When Functions group is Date, one of the following: • AddDays • AddMonths • AddYears When Functions group is Numeric, one of the following: • Sum • Multiply • Average | Function that will be used to calculate property value. |
Rules > Rule [n] > (Target >) Properties > Property setter [n] > Function > Parameters | ||
Separator | Text | Displayed only when Functions group is Text. Use separator when function concatenates multiple text values. |
Rules > Rule [n] > (Target >) Properties > Property setter [n] > Function > Parameters > Parameters > Parameter [n] | ||
Parameter type | One of the following: • Property • Constant | Type of parameter to use in function. |
Property | Property definition | Displayed only when Parameter type is Property. Property whose value will be used in function. |
Constant | Constant value | Displayed only when Parameter type is Constant. Constant value that will be used as parameter in function. |
Rules > Rule [n] > (Target >) Properties > Property setter > Value | ||
Mode | One of the following: • Dynamic value • Static value • Empty value • No action | Dynamic value. If this option is selected, target property value will be created dynamically from source property value. Static value. If this option is selected, target property value will be created statically i.e. constant value. Empty value. If this option is selected, target property value will be empty. No action. If this option is selected, no action will be performed. This is invalid state. |
Dynamic value | Placeholder editor | Displayed only if Dynamic value is selected as a mode. Specifies dynamic value (using properties from source object) that will be set as target property value. |
Static value | Text | Displayed only if Static value is selected as a mode. Specifies constant value that will be set as target property value. |
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] > Conditions > Property condition [n] | ||
Property | Property definition | Specifies the property whose value will be checked. |
Operator | One of the following: • = • =! • < • > • <= • >= • Contains • Does not contain • Starts with • Does not start with | Operator to use for comparing actual and expected property value. |
Value | Property value | Property value to compare actual value against. Can be static or dynamic, from source object. |
Rules > Rule [n] > Vault search > Search [n] > Conditions > Property condition [n] > Value | ||
Mode | One of the following: • Dynamic value • Static value • Empty value • No action | Dynamic value. If this option is selected, comparison value will be created dynamically from source properties. Static value. If this option is selected, comparison value will be created statically i.e. constant value. Empty value. If this option is selected, comparison value will be empty. No action. If this option is selected, no action will be performed. This is invalid state. |
Dynamic value | Text with placeholders | Displayed only if Dynamic value is selected as Mode. Specifies search comparison value using properties from source object. |
Static value | Text | Displayed only if Static value is selected as Mode. Specifies constant search comparison value. |
Use Cases #
Copy extended contract date to a customer deal #
Customer in the food industry is using M-Files to track all franchise agreements with all their partners/franchises which are companies. They have an open deal with every partner, which has a start and end date. Every year they sign a new contract and the partner’s deal (license) is extended. A simplified diagram of a solution is shown in picture 1.

Contract management and lifecycle is based on M-Files contract management examples, as shown in picture 2. The name of this workflow is “Contract Lifecycle”.

Customer is notified three months prior to any partner’s contract expiration and that’s when negotiations for the new contract commencing. When a new contract becomes active, deal with that partner is extended to one more year and the new Contract’s End Date is copied to Deal End Date using Property operation. An example of an execution diagram is shown in picture 3.

Configuration of Property operations #
We need to filter out a contract in a Contract Lifecycle workflow entering state Active. To better understand, we have a demo object Deal that has an end date of 31.12.2019. (Picture 4.) with a current active contract (Picture 5).


Our new Contract is ready to become Active and we need to configure Property operation rule that will automatically copy its End Date to the related Deal.
Name | User-defined custom name. |
Enabled | Yes. |
Trigger | As we want copy action to happen when an object enters state Active, we should use ObjectEnteredState trigger. |
Source | Source object is the one that triggers the copy. We want to copy End Date when the Contract becomes Active. |

Target | Object where we want to copy or set property value. |
Reference | Property from Source that is pointing/is connected to Target. In our case, that is the property Deal (list of Deals). |
Reference Direction | Direct. Source property (Contract) has reference property (Deal). |


Properties | List of properties that we want to change. |
Property | Property that we want to set on target. End Date. |
Value | Value of property we wish to set. We want it to be a dynamic copy of the source object’s End Date, so that every time contract enters state Active, its End Date is copied to the related Deal. |
Mode | Dynamic. |
Dynamic Value | Here we set source property we wish to copy – End Date. |
Update option | We want to update Deal’s End Date property every time Contract enters Active state, so we set this option to Always. |
When the Contract enters Active state (Picture 9.), its Deal will have updated End Date (Picture 10.).


Copy First name and Last name “Employee protected data” to “Employee”. #
If you have Employee protected data where you keep all personal and sensitive information about employees (by GDPR) and Employee data with connection to Employee protected data, you can copy values from Employee protected data to Employee data. This way, user doesn’t have to enter same data twice (thus eliminating possibility of error) and you can use all the same properties.
Set Employee Period Start and End Date #
If you are using M-Files HR vault, you can use Property operations to set up Start Date and End Date of „Employment Period“, when Employee Contract becomes active or when an annex to the contract is added. You can have many rules.
Set opportunity to Won when Offer is Accepted #
With Property operations you can also manipulate other object workflows. If you are using M-Files as a CRM, you can change object Opportunity state to Won when document Offer is Accepted.