Workflow that checks for or requires specific documents

Good day all,

Wondering if anyone has a way to check that certain documents exist before a workflow can progress to the next state? For example, I want to check that two or more documents of different classes have been added into the M-Files vault (with a common piece of metadata such as "Order Number") before the user can move a workflow into the next state.

Long story short, we're trying to enforce a workflow that requires certain documents (sales agreements, service agreements, etc) to be present before our sales people can submit the order to our order desk.

Has anyone done this before? Or is there a solution or add-on that handles these kinds of rules?

Thanks!

Parents
  • Well, as a fast response to this, you can create some property definitions for each need document and add them to the main project.

    Then with managed properties, when you add a document in one of the needed class with a property def poiting to the main object, it will automatically fill the corresponding metadata on the main object.

    After you create all the relationships, you can then add a post condition if property x,y,z (which pointing to the necessary document) are not empty, the main object will go further in the workflow.

  • To visualize this approach, here's a quick example with an Employee object where we want to make sure that the employment agreement has been stored to the vault.

    Employment agreement property is filled by Managed Properties when the agreement doc is tagged with the employee:

    Managed Property rule (in a real vault we might use some workflow state on the agreement itself as a filter condition so that only a signed agreement would match the rule):

    Workflow condition:

  • Thank you Radu and Joonas for those responses! I've been able to get this working for the most part but I have a follow-up question for you (I'm still new to M-Files and this is the first time using the compliance kit):

    Is there a way I can reference a document class in the "Property" field of the managed property config?

    In the below screenshots, "Sales Agreement" is it's own object type in the vault. This config works and fills in the "Sales Agreement" field within the "Equipment Order and Delivery Checklist" as expected.

    What we would prefer is to reference the "Sales Agreement" document class, not a Sales Agreement object type. So I then configure the manage property as such:

    I then get a property added to the correct Equipment Order Checklist called "Document" with the correct document linked. Problem here is that we will need to have multiple files linked in this way to the same Equipment Checklist (e.g. Sales Agreement, Sales Invoice, Site Survey, etc).

    Is there a way to reference a document class as the target so that the property name in the host matches the class name instead of the "Document" object name?

  • Aha! Figured out an answer to my question.

    Needed to create new properties that are "Choose from list (multi-select)" and use the "Documents" list.

    Then I can use the new property names within managed properties.

    Probably something that many already knew but putting it here if anyone needs it.

Reply Children
No Data