Subgrids Done Right
Subgrids show related records directly on a form. Here's how to add them, choose the right relationship, filter the records, enable inline editing, and set up a New button that pre-fills the parent lookup.
36 articles published
A step-by-step guide to building approval flows in Power Automate, including connector provisioning, approval types, custom email content, and handling the response — plus the errors that block most first-time setups.
Subgrids show related records directly on a form. Here's how to add them, choose the right relationship, filter the records, enable inline editing, and set up a New button that pre-fills the parent lookup.
Blank values in Power Apps cause unexpected errors, wrong comparisons, and broken lookups. Here's how to check for them, handle them safely, and stop your formulas from silently failing.
A parent dropdown for Country, a child dropdown for City that only shows cities in the selected country. Here's the pattern, the delegation-safe version, and the reset behavior that catches everyone.
Calling a flow from a canvas app is straightforward once you get the trigger right. Here's how to set up inputs, return data to the app, and fix the issues that come up when the two don't talk to each other.
Power Apps has three ways to store data in memory: global variables, context variables, and collections. Here's when to use each one and the mistakes that trip up beginners.
Lookups are how Dataverse tables relate to each other, and they're the column type that causes the most confusion in Power Apps. Here's how to set them up and work with them in canvas apps.
formatDateTime, convertTimeZone, formatNumber — these expressions handle 90% of formatting needs in Power Automate. Here's the syntax, common format strings, and fixes for the errors that come up.
Business rules are the fastest way to control field visibility and editability on model-driven forms without writing code. Here's how to set them up and avoid the common traps.
Getting email attachments right in Power Automate is trickier than it looks. Here's how to attach files from SharePoint, Dataverse, and other sources without ending up with empty 0KB files.
The User() function gets you started, but most real scenarios need more. Here's how to get the current user's details from Dataverse, including Business Unit, Team membership, and security role.
The Patch function is how you create and update records in canvas apps. Here's the syntax for every column type, including lookups and choices, plus fixes for the errors you'll definitely hit.
A practitioner's guide to every integration option Dataverse offers — Webhooks, Service Bus, Virtual Tables, Dual-Write, Power Automate, Custom APIs, Web API, and the .NET SDK. When to use each, when to avoid them, and how to pick the right one.
After 50+ implementations, here's what actually works for migrating data into Dataverse — the tools, the phases, the gotchas with lookups and deduplication, and the mistakes I still see teams make.
Licensing isn't a procurement problem — it's an architecture decision. Here's the mental model every solution architect needs before starting a Power Platform project, with real scenarios and a pre-project checklist.
A senior D365 developer's guide to JavaScript in model-driven apps — form events, Xrm.WebApi, field manipulation, async OnSave, debugging, and the patterns you'll actually use in production.
When Power Automate isn't fast enough and business rules aren't powerful enough, you write a plugin. Here's how to build, debug, and deploy server-side logic in Dataverse — with real code and real opinions.
How you structure your Dynamics 365 solutions determines how painful your deployments will be. Here's a layered approach that actually scales.
Application Lifecycle Management on Power Platform has come a long way. Here's how to set up a real CI/CD pipeline using Azure DevOps and the Power Platform Build Tools, and where the sharp edges still are.
A collection of the most common Power Platform developer questions — from delegation errors to Dataverse throttling — with answers that go beyond the official docs.
The yellow triangle isn't just a warning — it means your app is silently returning incomplete data. Here's the complete guide to delegation limits, which functions are safe, and five workarounds ranked by reliability.
Move past basic list queries. This guide covers filter gotchas, nested expand, FetchXML via HTTP, pagination, and calling the Web API from Power Automate — with real examples throughout.
Exact error messages, root causes, and fixes for the five Dataverse plugin errors you will hit sooner or later. Save yourself the 2am debugging session.
The debate around low-code platforms usually generates more heat than light. Here's a grounded take on when Power Platform is genuinely the right tool — and when it isn't.
Step-by-step guide to adding a custom command bar button to a Dataverse table in a model-driven app — using the modern Command Designer, no XML editing required.
Run After, scopes, and terminate actions are not enough. Here's the error handling architecture I use in every production flow after learning it the hard way.
Business units, security roles, teams, field-level security, and record sharing — how they interact, where the sharp edges are, and how to design a security model that doesn't break your users.
A practical guide to Dataverse auditing: enabling it at every level, querying audit logs, managing retention policies, and keeping storage under control.
Trigger filters, FetchXML vs OData, pagination, throttling, and lookup handling — a practical comparison of the two connectors developers mix up most.
Five ways to bulk delete records in Dataverse, when to use each one, and why your Power Automate loop is the wrong answer for anything over a few hundred rows.
How to create, configure, and use environment variables across Power Apps, Power Automate, and plugins — plus the deployment strategy that keeps things clean.
The Parse JSON action confuses everyone. Here's the no-nonsense guide to schemas, nested properties, null handling, and when to skip it entirely.
Both can validate data, set field values, and show or hide form elements. But they work very differently under the hood. Here's a clear guide to when to use each one.
Calculated columns evaluate formulas in real time. Rollup columns aggregate child records on a schedule. Here's when to use each — and when to skip both.
A practical guide to filtering lookup fields in model-driven apps using addPreSearch, addCustomFilter, and the no-code Related Records Filtering option.
Every Power Apps project starts with this question. Here's a framework for making the right call — and the cases where the answer is both.