Power Platform solutions enable developers and makers to create and manage applications, flows, and other components designed to automate business processes or improve user experiences. Like any software project, ensuring the quality, security, and performance of these deliverables is crucial. This is where the Solution Checker comes into play. By automatically analyzing your solutions, it helps you quickly identify potential issues, thereby improving reliability and maintainability.
What Is Solution Checker?
The Solution Checker is a Power Platform service that evaluates the code and configurations within your solutions (data models, controls, etc.) to detect various problems: performance bottlenecks, security gaps, adherence to best practices, and more. After running its analysis, the tool provides a detailed report outlining recommendations for fixes and optimizations.
Why Use Solution Checker?
1. Early Detection of Issues: Rather than waiting until testing—or worse, production—to discover bugs, Solution Checker flags common errors and performance suggestions early on.
2. Improved Code Quality: By following the tool’s recommended best practices, you enhance the maintainability and robustness of your applications, making them easier to evolve over time.
3. Time and Effort Savings: Automated analysis spares you lengthy debugging sessions, allowing you to focus on functional design and user experience instead.
4. Alignment with Microsoft Standards: Solution Checker reports are based on Microsoft’s guidelines, helping you comply with recognized standards and boosting overall project consistency.
How Does It Work?
The Solution Checker is natively integrated into the Power Platform, requiring no installation and available instantly at no additional cost. It runs on a specific solution, so you must select the solution beforehand.
To run the Solution Checker in Power Apps:
1. Go to the Power Platform Admin Center.
2. Select Environments, then choose the target environment.
3. Open Solutions, select the solution to check, and click Run Solution Checker.
4. Once completed, review the results under the Checker tab to identify issues and follow recommendations.
You can also access the Solution Checker directly from Power Apps. When you trigger the analysis (manually or via a continuous integration flow), the tool inspects your solution’s components: entities, plug-ins, Power Automate flows, etc. Once the check is complete, you receive a detailed report indicating the severity of detected issues (low, medium, high) along with guidance on how to resolve them.
Key errors detected by the Solution Checker
In this section, we'll review the main categories of errors that Solution Checker can detect, ranging from performance issues to security vulnerabilities, to help you maximize the reliability and maintainability of your Dynamics 365 solutions.
1. Performance: Errors that slow down the execution of processes and affect the speed of queries and plugins.
- Inefficient queries: Poorly optimized or overly broad FetchXML queries.
- Heavy nested loops: Code containing loops that generate repeated queries.
- Unlimited queries (RetrieveMultiple without PageSize): No pagination, resulting in large loads.
- Plug-ins with long synchronous calls: Plug-ins that slow down transactions.
2. Design (Architecture and conception): Errors related to the structure and organization of solutions, compromising their scalability.
- Excessive dependencies: Components that are too interconnected, making the solution difficult to maintain.
- Poorly positioned plugins: Plugins triggered at the wrong time (synchronous instead of asynchronous).
- Misconfigured entities: Unnecessary or poorly optimized entities, weighing down the database.
3. Security: Issues affecting data integrity and protection in Dynamics 365.
- Direct exposure of GUIDs: Sensitive GUIDs visible in JavaScript code.
- Mishandled privileges: Actions executed without validating the rights of the user.
- Execution with elevated privileges: Plug-ins using unnecessary administrative privileges.
4. Reliability: Errors that affect the stability and continuity of the application.
- Unhandled exceptions: No error handling in the plug-in code.
- Use of obsolete types: APIs or libraries that are being phased out.
- Lack of input validation: Unverified user data, which can cause malfunctions.
5. Compatibility: Issues that can prevent a smooth upgrade of solutions.
- Deprecated APIs: Use of features that are announced as obsolete.
- Non-compliant DOM scripts: JavaScript that directly accesses DOM elements in a way that is incompatible with future versions.
- SDK dependency: Calls to specific versions of the SDK, making future compatibility difficult.
6. User Experience (UX/UI): Issues affecting the fluidity and interaction with user interfaces.
- Overloaded forms: Too many fields or scripts slowing down the display.
- Unoptimized JavaScript: Scripts causing delays in the user interface.
- Poor event management: Scripts executed on inappropriate events (onLoad, onSave).
7. Interoperability and Integrations: Errors related to exchanges between Dynamics 365 and third-party systems.
- Misconfigured connectors: Issues in Power Automate or Logic Apps affecting integration flows.
- Using obsolete web services: Dependency on retired or poorly maintained web services.
- Unstable API calls: Frequent errors in exchanges with external systems.
Here is an example of what you can have as a result in the excel file generated.
Best Practices for Using Solution Checker
- Analyze Early and Often: Run Solution Checker whenever you add or modify components, not just at the end of development.
- Address Critical Alerts First: Certain alerts (security, performance) can have a significant impact. Resolve them quickly to avoid propagating problems to other environments.
- Document Exceptions: If you decide to bypass certain recommendations due to specific use cases or technical constraints, keep a record of your decision.
- Train Your Team: Make sure all team members—developers, admins, and business stakeholders—understand the value of Solution Checker and know how to interpret its results.
Conclusion
The Solution Checker is an essential tool for ensuring the quality and reliability of your Power Platform solutions. By swiftly identifying weaknesses and offering improvement ideas, it saves your teams time and helps them build more robust, easier-to-maintain solutions. Leveraging it in a continuous integration (CI/CD) process further heightens its value, driving higher development standards throughout your organization.