Unitfly Toolkit for M-Files logo color

Property Operations

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.

  1. Open M-Files Admin
  2. In the left-side tree view, expand the desired connection to M-Files Server.
  3. In the left-side tree view, expand the Document Vaults node.
  4. Still, in the left-side tree view, expand the vault where you installed the connector and select Configurations.
  5. Expand Other Applications.
  6. Expand Extension Kit for M-Files.
  7. Expand Configuration.
  8. Click on Property operations.

Field Description #

FieldValueDescription
EnabledYes/NoSpecifies whether the module is in use.
Rules > Rule [n]
NameTextSpecifies the name of the rule.
EnabledYes/NoSpecifies whether the rule is in use.
TriggerOne 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 modeOne 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 CriticalYes/NoIf set to true, rule will be logged in SEQ.
Update metadata in fileYes/NoWhen 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 modeOne 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 definitionProperty definitionProperty 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 typeObject typeObject type of the source object.
ClassObject classClass of the source object.
WorkflowWorkflowWorkflow of the source object.
StateWorkflow stateWorkflow state of source object.
NOTE! If you have entered a state, you must also enter the workflow above.
Look inOne 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]
SearchConditionsSearch conditionsOptional 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
FindTargetsOne 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.
ReferenceProperty definitionDisplayed only when FindTargets is ViaProperty.
Property definition that defines the connection between source and target objects.
Reference DirectionOne 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 ConditionsSearch conditionsDisplayed only when FindTargets is ViaProperty.
Optional additional conditions that target object needs to satisfy.
Target searchSearch conditionsDisplayed 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]
PropertyProperty definitionSpecifies the property whose value will be checked.
OperatorOne of the following:
• =
• =!
• <
• >
• <=
• >=
• Contains
• Does not contain
• Starts with
• Does not start with
Operator to use for comparing actual and expected property value.
ValueProperty valueExpected property value. Can be static or dynamic, from source object.
ModeOne 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 valueText with placeholdersDisplayed only if Dynamic value is selected as Mode.
Specifies expected property value using properties from source object.
Static valueTextDisplayed only if Static value is selected as Mode.
Specifies constant expected property value.
Rules > Rule [n] > (Target >) Properties > Property setter [n]
PropertyProperty definitionSpecifies property definition to set.
Value typeOne 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 BehaviourOne 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 propertyYes/NoIf 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 optionOne 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 groupOne of the following:
• Text
• Date
• Numeric
Type of function that will be used to calculate property value.
FunctionWhen 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
SeparatorTextDisplayed 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 typeOne of the following:
• Property
• Constant
Type of parameter to use in function.
PropertyProperty definitionDisplayed only when Parameter type is Property. Property whose value will be used in function.
ConstantConstant valueDisplayed only when Parameter type is Constant.
Constant value that will be used as parameter in function.
Rules > Rule [n] > (Target >) Properties > Property setter > Value
ModeOne 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 valuePlaceholder editorDisplayed 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 valueTextDisplayed 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]
ConditionsProperty definitionOptional list of conditions that must be satisfied in vault in order for this rule to be executed.
Search result typeOne 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]
PropertyProperty definitionSpecifies the property whose value will be checked.
OperatorOne of the following:
• =
• =!
• < • >
• <= • >=
• Contains
• Does not contain
• Starts with
• Does not start with
Operator to use for comparing actual and expected property value.
ValueProperty valueProperty 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
ModeOne 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 valueText with placeholdersDisplayed only if Dynamic value is selected as Mode.
Specifies search comparison value using properties from source object.
Static valueTextDisplayed 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.

structure of contracts and deals in M-Files
Picture 1. Simplified diagram

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”.

contract lifecycle in M-Files
Picture 2. 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.

structure of deals in M-Files
Picture 3. Use case example

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).

deal shown in M-Files
Picture 4. Object Deal
contract shown in M-Files
Picture 5. Expired Contract

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.

NameUser-defined custom name.
EnabledYes.
TriggerAs we want copy action to happen when an object enters state Active, we should use ObjectEnteredState trigger.
SourceSource object is the one that triggers the copy. We want to copy End Date when the Contract becomes Active.
Property Operations configuration
Picture 6. Configuration of Source object
TargetObject where we want to copy or set property value.
ReferenceProperty from Source that is pointing/is connected to Target. In our case, that is the property Deal (list of Deals).
Reference DirectionDirect. Source property (Contract) has reference property (Deal).
Property Operations configuration
Picture 7. Configuring Target
Property Operations configuration
Picture 8. Configuring properties
PropertiesList of properties that we want to change.
PropertyProperty that we want to set on target. End Date.
ValueValue 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.
ModeDynamic.
Dynamic ValueHere we set source property we wish to copy – End Date.
Update optionWe 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.).

Picture 9. Active Contract
Picture 10. Changed End Date of Deal

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.

Your one-stop hub for Unitfly Toolkit for M-Files!

Unitfly Toolkit Community is live!

News and updates on our products • Frequently asked questions • Support page