How an object moves through CtrlTeams
The three applications never call each other directly. They meet on M-Files objects: one application writes a property or moves an object into a workflow state, and the next one is watching for exactly that. Knowing which application is responsible at each step is what makes a stalled deployment diagnosable.
A team that already exists in Microsoft 365
Section titled “A team that already exists in Microsoft 365”-
CtrlTMS finds the team.
On its schedule, CtrlTMS asks Microsoft Graph what teams and channels exist. For each one it does not already have, it creates an M-Files object.
The object it creates is a connection object — the same object type and class CtrlSync works from. This is the join between the two applications, and it is a configuration choice rather than something either application does on its own.
-
The connection waits, inactive.
Create connections with synchronisation switched off. A team discovered automatically has not yet been reviewed: nobody has decided which class its documents should get, which workflow they belong in, or whether it should be synchronised at all.
The object sits in a workflow state that means found, not yet approved, and no files move.
-
Someone approves it.
A vault administrator checks the connection’s settings and moves it to the active state. A state action on that transition sets the connection’s active property to true.
From CtrlSync’s point of view nothing special happened — a connection became active, which is the only signal it needs.
-
CtrlSync starts synchronising.
On its next run, CtrlSync sees an active connection it has not synchronised, and works through the channel’s files in batches. From then on, changes move in both directions on each cycle.
-
CtrlTMS keeps the membership in step.
Independently of the files, CtrlTMS keeps the team’s owners and members up to date on the M-Files object, so the vault can answer who has access to the team without asking Microsoft.
A project that starts in M-Files
Section titled “A project that starts in M-Files”This is the path PDS adds. It runs before the one above rather than instead of it.
-
A user creates a project and picks a template.
The project object references a project template, which lists the document object templates it should start with and the directory structure it should have.
-
The project enters the baseline state.
PDS checks that the template is complete — every document object template needs a directory structure, a full path and a document template — and refuses the transition with a specific message if any of that is missing.
It then creates one SharePoint artefact object per document object template. Nothing has been sent to Microsoft yet; this all happens inside the vault.
-
The project is activated.
PDS requires a SharePoint URL on the project before it will allow this, and it checks that CtrlSync is installed, configured and licensed. If either is missing the transition fails and says which.
-
CtrlSync uploads the folders and files.
PDS hands each artefact to CtrlSync, which creates the folders and uploads the documents. Each artefact records the version of the template it was created from.
-
PDS switches synchronisation on.
If a Sync Is Active Property is configured, PDS sets it, and the project’s connection begins synchronising like any other.
Where the applications agree
Section titled “Where the applications agree”| The join | Written by | Read by |
|---|---|---|
| Connection object type and class | CtrlTMS creates them | CtrlSync synchronises them |
| Connection active property | The workflow state action, or PDS | CtrlSync |
| SharePoint URL property | PDS, on activation | CtrlSync |
| Employee or person object | CtrlSync and CtrlTMS both resolve users through it | Both |
Each of these is a setting in two places that has to name the same thing. They are the first place to look when two of the applications appear to disagree about the same object.