Microsoft Flow / State Machine / Post processor Flow (5/8)
Updated: Jan 29, 2019
Think of the post processor as a Worker Flow, primarly responsible to keep a centralized log of all approval activities and detailed process step outcomes.
Data is stored as JSON in an Azure Storage table, so it's easy to do simple analysis and make the log data actionable for any follow up processing purposes.
One of the common requirements we are facing in customer projects, is centralized status logging and error handling. In this post I'm focusing on error handling, because this is a topic often missed but basically very easy to implement in Flow.
This solution makes use of Azure Storage Tables to keep a centralized log of all relevant approval and process activities for analytics and Microsoft Planner to surface errors to the user in the nice form of a Planner board.
Azure Table storage is a service that stores structured NoSQL data in the cloud, providing a key/attribute store with a schemaless design. So, this approach is kind of a mix of detailed logging for tracebilty and compliance + deep integration of Flow run errors into users existings tools in Office 365 (aka. Planner used for task management already).
Thanks to the Microsoft Planner Connector in Flow, we can easily create new cards in an exisiting Planner plan. In January 2019 the functionality provided by the connector is pretty limited, but you can always use Graph to do more. For our fairly simple usecase, we have all we need.
See all triggers and actions, the Planner Connector currently has to offer:
Beauty often lies in simplicity. So, let's see how it's done. As you can see based on the sample implementation, this Flow has a very clear and easy to read and understand structure and is scalable in all dimensions to your enterprise needs.
Please read the full implementation guide for detailed reference on the whole implementation of a State Machine Pattern in Flow: > https://www.thatmarcelhaas.com/blog/microsoft-flow-state-pattern-implementation-guide-2-8
Trigger (State Input)
Azure Queue Storage
The controller Flows is triggered if a new message (JSON Object) is added to an Azure Storage Queue "approval-logger".
The Controller Flow in it's basic implementation, need the following connectors:
Azure Queue Storage
Azure Table Storage
We actually don't need a lot of actions, to make this pattern work in Flow. This makes it very easy to implement. This is our minimum action set:
Delete Message from Storage Queue
Add entity to Table Storage
Planner add Task
Planner add Task Details