After three months running this solution in production, here’s my consolidated experience with direct Power BI model extension for project accounting:
Direct Model Extension Benefits:
The semantic model extension capability in D365 10.0.43 provides excellent support for custom KPIs without breaking the upgrade path. We added 12 custom measures for profitability analysis, resource utilization rates, and variance tracking. These integrate seamlessly with the standard project accounting measures, and users see them as native functionality in the workspace.
Key advantage is maintaining the standard model structure while extending it. When Microsoft updates the base semantic model, our extensions remain intact. We’ve been through two platform updates without touching our custom measures.
Workspace Provisioning Approach:
Extending the existing Project Management workspace proved more effective than creating custom workspaces. The workspace extension framework allows you to add report pages, custom visuals, and measures while preserving the standard navigation and security context. Users access everything through the familiar workspace interface.
Critical configuration: Set your workspace extension to reference the base workspace ID and specify your custom semantic model as an additional data source. This creates a unified experience where standard and custom reports coexist naturally.
Dataverse Entity Integration:
Dataverse virtual tables for project accounting entities work well, but entity selection matters. High-performing entities for our use case: ProjectTable, ProjInvoiceTable, ProjTransPosting, ProjectContract. These sync reliably with minimal latency.
Challenging entities: ProjectInvoiceProposal and some project budget entities had sync delays of 10-20 minutes. We worked around this by using the change tracking metadata and implementing smart refresh logic that prioritizes recently modified records.
The dual-write infrastructure isn’t necessary for pure analytics scenarios. Standard Dataverse sync handles the F&O to Power BI data flow adequately. Enable change tracking on your key entities to support incremental refresh efficiently.
DirectQuery and Incremental Refresh Strategy:
Hybrid mode is essential for balancing performance and freshness. Our production configuration: DirectQuery for current period transactions (last 30 days of project costs, timesheets, invoices), import mode with incremental refresh for historical data beyond 30 days.
Refresh schedule: Every 2 hours during business hours (8 AM - 6 PM) for DirectQuery partition, nightly full refresh for historical aggregations. This keeps reports responsive while ensuring data accuracy for real-time project monitoring.
Performance optimization: Implemented aggregation tables in the semantic model for common roll-ups (project totals by month, resource utilization by department). Reduced report load times from 8-12 seconds to under 2 seconds for most visuals.
Unexpected Benefits:
Row-level security inheritance from D365 through Dataverse was a major win. Project managers automatically see only their projects, finance sees everything, resource managers see their team’s data - all without custom RLS configuration in Power BI. The security context flows naturally through the connection.
The extension approach also simplified our DevOps process. Custom semantic models deploy as solution packages through ALM, versioned alongside our other D365 customizations.
Overall, direct model extension provides the flexibility needed for custom project analytics while maintaining upgradeability and leveraging the platform’s native capabilities. Recommended approach for organizations needing tailored project accounting insights beyond standard reports.