Contents
1. Introduction
2. Challenges
4.3. Event Subscribers
4.4. Data Persistence
4.5. User Data
4.6. Complete Schema
5. Conclusion
1. Introduction
With WorkPoint365’s Event Bus, demonstrated at WorkPoint’s 2023 partner event, it is now possible to broadcast data events from your WorkPoint Business Modules to the Azure Event Grid - enabling limitless integration capabilities at scale.
In this whitepaper, we show how our Partner Day demonstration solution used WorkPoint’s Event Bus to drive a PowerBI Project Portfolio dashboard with near real-time updates from multiple projects, spanning site collections to Portfolio Managers and Leadership complete transparency over project state and resource loading.
Figure 1 below illustrates which WorkPoint and Azure components we leveraged in the technology stack for this low/no-code solution. In the document to follow we will describe how each component interacts.
Figure 1: Event Hub Demo - Technology Stack
Of course, DataVerse and PowerBI are only one possibility for integrating WorkPoint solutions using the Event Hub, but by walking through our demo solution, we hope this will help you understand the capabilities of the Event Bus feature and serve as inspiration for your future WorkPoint initiatives.
2. Challenges
Common challenges for Project Management solutions include:
- Allow the Project Management Office (PMO) to manage projects centrally and enforce organisational standards.
- Provide Project Teams with autonomous, secure, independent Project Sites to manage their project tasks and share information.
- Allow Project Managers to assign tasks to project resources from any department of the organization.
- Allow Portfolio Managers to track compliance and delivery of all projects in their portfolio.
- Allow Managers to understand how and where their personnel are being involved in projects.
For many Project Management solutions, balancing the need for project independence and autonomy with organization-level obligations for consistency and transparency can be complicated.
With WorkPoint, implementing a Projects business module, defining rules for stages, transition gates and security models are all possible with simple configuration. However, as Project data spans multiple site collections and lists - providing consistent and timely reporting is a challenge.
Readers familiar with the SharePoint Online platform will recognize that consolidating data and querying homogenous lists in multiple sites or site collections is complicated to implement, difficult to maintain and inefficient at scale.
Even the traditional approach of using SharePoint search to span sites places the indexing delay, outside your control, between data updates and changes being visible in search results – eroding trust in the relevance of search driven reports.
3. Solution Overview
Here, we demonstrate how the WorkPoint Event Bus [1] feature can be used to drive a simple, low/no-code solution to synchronize Project and Project Task information to a centralized database – opening the possibility of using visual reporting tools like Microsoft’s PowerBI to create intuitive and accurate tracking dashboards driven by SharePoint data.
For our challenge, we used WorkPoint’s Event Bus feature to send Project and Task data to the Azure Event Grid [2], we then used Azure Logic Apps as Event Handlers to synchronize the Project data as tables in the DataVerse. A PowerBI report then combines Project and Organization data to support transparent reporting across site collection boundaries.
WorkPoint’s Event Bus integration. allows you to offload the burden of processing and distributing event data from your SharePoint and WorkPoint application solution to Azure, allowing limitless integration capabilities, saving valuable SharePoint Online Resource Units [3], and leveraging the scale and capacity of Azure.
4. Building the solution
Figure 2 below shows the end-to-end flow. As users interact with WorkPoint Projects and Tasks, data events are instantly sent to the Azure Event Grid, where automated subscribers process and persist the data in DataVerse tables. Project and Organization (User) data are combined to drive a PowerBI dashboard supporting enterprise-wide project reporting.
Figure 2: Solution Architecture Event Publish Demo
4.1. WorkPoint Configuration
For our solution, the WorkPoint setup is relatively simple. First, a Projects Business Module is configured using WorkPoint’s One Site architecture [4].
Readers familiar with WorkPoint will recognize that every Project Entity is represented as a List Item in the Projects Business Module List. Our Projects module includes metadata fields to specify the Project Title, AD users for the Project Manager (PM) and Project Sponsor (PS). WorkPoint’s Numerator Service was used to automatically generate a unique Project ID for each project and Dynamic Security Rules used to automatically grant the PM and PS visibility of and access to the Entity and its associated site.
As projects are created, WorkPoint assigns an independent Site Collection (the “Project Site”), with site contents based on a Master Site template - including a simple Task list with standard task columns (Title, Due Date, Assigned To etc.)
We now have an operational Project system! As PMO users create Projects (Entities), assign Project Manager and Project Sponsor. WorkPoint will provision a Project Site (site collection), and the Project Manager can use the Projects Task list to assign and track Tasks across their project team.
4.2. Event Bus Configuration
To make the Project and Task data available for reporting, and to keep the information automatically up to date, we enable the WorkPoint Event Bus feature. This involves:
- In the Azure Portal, creating an Azure Event Grid Service and adding Azure Event Grid Topic for WorkPoint Events.
- In the WorkPoint Admin Portal; access the Event Bus settings panel and specify the Endpoint URL for your Event Grid Topic (Figure 3.A) and provide an Access Key (generated in the Azure Portal - B)
- Configure which Project Entity and Project Task events (New/Updated/Deleted) are broadcast to the Event Grid. (Figure 3.C)
Figure 3: Event Mapping
Now, any time a Project or Project Task is created, updated, assigned, or deleted – an event is instantly published to the Event Grid. Behind the scenes, each event consists of a JSON payload of data (like the example below) describing the Project event and including all metadata.
Figure 4: Event Data. Each event is sent to the Event Grid as JSON data. Note the “EventType” property matches the value defined in WorkPoint settings (Figure 3.C)
Once the event is passed to the Azure Event Grid, there is no further processing done by WorkPoint services and code. What happens next is all handled in Azure.
It’s important to note that every event is atomic, it defines the state of a Project or Task at a given point in time and so subsequent actions on the same source object will supersede all prior event data. To keep the source WorkPoint Solution and target DataVerse in sync, we need reliable and efficient processing of events.
This is where Azure’s Event Grid excels –seamlessly handling event ingestion, authenticating origin, validating event structure then publishing the event to all interested subscribers. Importantly, it does this at almost infinite scale, ensuring events are received in the correct order and providing advanced resilience and fault handling tools.
With WorkPoint data now instantly flowing into the Azure Event Grid, we need simply implement an Event Subscriber to receive these events and an Event Handler to process or storing event data. All our remaining configuration is done in Azure.
4.3. Event Subscribers
In the Azure Event Grid Topic settings, two distinct Event Subscriptions are added: Project Entity events and Project Task events are routed to distinct Event Handlers using a simple “startswith” filter on Event Grid subscriber settings.
Event handlers can be any application that can be triggered by a webhook (HTTP:Post) event, to maintain a low/no-code approach, in our solution we implemented these as no-code Azure Logic Apps [5].
Figure 5 below shows our two Event Subscriptions that use a simple “Prefix” filter on the Event Type field (Figure 5.A) are used to distinguish ProjectEntity from ProjectTask events. Each subscriber uses a Webhook to invoke an Azure Logic App with a JSON payload of WorkPoint events.
Figure 5: Event Grid Subscribers – Logic App Workflow
4.4. Data Persistence
In the Tenant’s DataVerse, Projects and ProjectTasks tables were created in the Azure Tenant’s DataVerse – using column structures mirroring the metadata fields in the WorkPoint Projects Business Module and Tasks lists (see Figure 6).
Figure 6: WorkPoint to DataVerse - Projects Data
As shown in the Logic App Flow (Figure 5), each Logic App Event Handler simply parses the event payload, identifies the Event Type (create, update, delete), then sequences the appropriate DataVerse actions to add, update or delete rows in the DataVerse tables.
Now, in WorkPoint, as PMO Users interact with Project Entities and Project Users interact with Project Tasks, the WorkPoint Event Bus sends each change through the Azure Event Grid, the subscriber logic apps parse and handle the data and the DataVerse tables are kept in-sync.
4.5. User Data
To allow Managers to see where and how their employees are being assigned tasks in any project, we needed some Organizational Data for Project Users (specifically; Department and Manager.).
We collected AD information in a ProjectUsers DataVerse table using a simple Power Automate cloud-flow triggered by the O365 Event “When a Group Member is Added or Removed”.
When a user is added or removed from the same AD group we use for our Security Rules and User Lookups (Project Manager, Sponsor, Assigned To etc.), the flow simply gathers the Manager and Department information from the AD Profile and populates the ProjectUsers table.
4.6. Complete Schema
With Projects, Project Tasks and User data flowing into the DataVerse from the Event Handlers, we have a dataset that can represent all projects in the organization. Figure 7 below shows the full schema.
Figure 7: Event Handling to Persistence
With this schema, Projects and Project Tasks can be associated using the Entity and Business Module ID values that WorkPoint provides (Figure 7.A). Users in the Project Manager, Sponsor, Assistant or in Task AssignedTo fields, can be enriched with the Organization Profile information provided by the Project Users flow (B & C) using a Lookup on the UserPrincipalName (upn).
4.7. Building the Dashboard
DataVerse now contains all the information we need to drive the Project Dashboard
The information in our Projects, ProjectTasks and ProjectUsers tables allows the report to display all Project information and filter by organizational data such the Department (of Project Sponsor).
Now PMO and Project Sponsors can easily view the up-to-date status of their initiatives in one view independent of the underlying SharePoint site structure. Further drill-down reports can use the Project Task level detail to understand where and how Tasks are assigned across the organization – providing Managers with visibility of tasks assigned to their direct reports.
Job done!
Figure 8: WorkPoint Event Grid Demo - PowerBI Dashboard. The PowerBI report can provide an overview and drill-down detail for Project and Task level detail supporting filtering by Organizational data (A), drill-down to Project level detail (B) and includes role/department detail for Task-level data (C & D).
5. Conclusion
Naturally, the Project Dashboard is a simplified, synthetic example of Project Reporting, but we hope it serves as both a valid demonstration of how WorkPoint’s Event Bus opens the traditional scale and data-segmentation boundaries of SharePoint and serves as inspiration for how you can use this to provide transparent, seamless, scalable integration in your WorkPoint solutions.
Please contact WorkPoint Sales if you have any questions or would like to explore options for using the WorkPoint Event bus in your solutions.
6. References & Further Reading
[1] WorkPoint, “Event Bus,” 22 09 2023. [Online]. Available: https://support.workpoint.dk/hc/en-us/articles/13806743325586-Event-Bus.
[2] Microsoft, “What is Azure Event Grid,” 26 10 2023. [Online]. Available: https://learn.microsoft.com/en-us/azure/event-grid/overview.
[3] Microsoft, “Avoid getting throttled or blocked in SharePoint Online,” 20 03 2023. [Online]. Available: https://learn.microsoft.com/en-us/sharepoint/dev/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online. [Accessed 24 03 2023].
[4] WorkPoint A/S, “Creating Business Modules,” 1 09 2023. [Online]. Available: https://support.workpoint.dk/hc/en-us/articles/360014337360-Creating-Business-Modules.
[5] Microsoft, “Creating Azure Logic Apps with the Azure portal,” 10 10 2023. [Online]. Available: https://learn.microsoft.com/en-us/azure/logic-apps/create-single-tenant-workflows-azure-portal.
[6] Microsoft, “Create event subscriptions,” 9 12 2022. [Online]. Available: https://learn.microsoft.com/en-us/azure/event-grid/subscribe-through-portal#create-event-subscriptions.
[7] Microsoft, “Power Platform / Power Apps / DataVerse - Azure Active Directory user table,” 19 10 2023. [Online]. Available: https://learn.microsoft.com/en-us/power-apps/developer/data-platform/aaduser-entity.
Comments
0 comments
Please sign in to leave a comment.