This post is manually triggered by the blog post of Pieter Veenstra: Microsoft Flow – Business process flows from a traditional Flow perspective.
Microsoft added Business Process Flows (BPF’s) to their Microsoft Flow platform.
BPF’s are managed in PowerApps since the integration between Dynamics 365 and PowerApps. With Spring 2018 update (v9.0.2) their data is stored in the Common Data Service for Apps (CDS for Apps), the new database for Dynamics 365 Customer Engagement (CE) and model-driven PowerApps.
CDS for Apps is the place to be to store the data of your business processes. Even the approval flows of Flow itself make use of the CDS for Apps.
BPF’s are more than a guide through a data entry process; you are able to navigate through the business process with a combination of data entry, checks, conditions and branching, and automation.
Dynamics 365 CE has its own workflow engine that can be triggered from the BPF:
- by starting the BPF (Process applied)
- by completing the BPF (Process completed)
- by abandoning the BPF (Process abandoned)
- by reactivating the BPF (Process reactivated)
- by Stage Entry or Stage Exit
And there is the so-called Action Step, that can be used to manually start an action/workflow. This is the native “Flow button” in Dynamics 365 CE. Microsoft explicitly refers to this as a way to trigger workflows from your BPF, as newly part of Microsoft Flow.
BPF’s in Dynamics 365 CE can span more than one entity and are indirectly related to those entities. Each BPF has its own base entity were the instance records are stored. Since there can be more than one BPF active on a “host” entity record, there’s no reliable way to get a trigger from the BPF via the host entity record. So using the Dynamics 365 connector triggers is not that easy.
You are able to start a flow on the selected record, but there’s no relationship with the BPF. That is the missing link that Microsoft has to resolve.
True, Microsoft is pushing us (CRM people) to use Flow as the preferred workflow engine but with CRM-only data there ain’t always added value to that. And they still have no alternative for the real-time workflow option in Dynamics 365 CE. Real-time workflows can be useful to validate the stage change of a BPF, by checking related fields/records and perform a rollback if the validation fails.
It’s possible to register a webhook with a step in synchronous execution mode in Dynamics 365 that can be used as trigger, but that can only work real-time when all components are integrated more deeply in CDS for Apps.