Skip to main content

Posts

Showing posts from September, 2025

Dynamics 365 CRM – Plugin Pipeline Explained: PreValidation, PreOperation, PostOperation

Dynamics 365 CRM – Plugin Pipeline Explained: PreValidation, PreOperation, PostOperation Dynamics 365 CRM – Plugin Pipeline Explained: PreValidation, PreOperation, PostOperation When developing in Dynamics 365, sooner or later you will work with Plugins: key components that allow us to extend business logic beyond what low-code tools provide. But not all plugins are the same. Depending on the stage where they are registered in the execution pipeline (PreValidation, PreOperation, and PostOperation), the behavior can be very different. Choosing the right stage can make the difference between an elegant solution and a future maintenance problem. In this article, you will learn: The difference between PreValidation , PreOperation , and PostOperation . When to use each stage. How to leverage PreImage and PostImage . The best practices to keep your plugins clean, efficient, and reliable. What is a Plugin in Dynamics 365? A Plugin is C# code that run...

Developers vs Testers – Understanding Testing Roles in Software Development

Developers vs Testers – Roles, Responsibilities, and the Human Side of Testing Developers vs Testers – Roles, Responsibilities, and the Human Side of Testing When we talk about testing, everyone has something in mind… but not always the same thing. For some, testing means technical checks: performance, load, security. For others, it’s about making sure the application meets business needs. The truth is that testing is a wide universe, and that’s often where clashes between developers and testers appear: Who should write certain tests? Which tasks are best handled by developers? Which ones are more suitable for testers? Let’s take a look at this world, clarify roles and responsibilities, and highlight the importance of speaking a common language so the team can move forward together. 1. Types of testing according to ISTQB The ISTQB (International Software Testing Qualifications...

Dynamics 365 CRM – Managing Translations in JavaScript with RESX Files

Dynamics 365 CRM – Managing Translations in JavaScript with RESX Files Dynamics 365 CRM – Managing Translations in JavaScript with RESX Files In multi-language environments within Dynamics 365 CRM , it is common to display localized messages in alerts, pop-ups, or validation logic. A robust solution is to use .resx resource files together with Xrm.Utility.getResourceString in JavaScript. Retrieving a Translation The standard pattern to retrieve a translated message is: Xrm.Utility.getResourceString( namespace.localization.webResourceName, namespace.localization.messageKey ); webResourceName : the name of the .resx resource file, without specifying a language ID. Dynamics automatically loads the correct language based on the user’s settings. messageKey : the key defined in the .resx file that contains the translated message. Best Practices for Structuring Keys Organizing translations in a c...

Dynamics 365 CRM – How to Retrieve Entity Information in JavaScript

Dynamics 365 CRM – How to Retrieve Entity Information in JavaScript Dynamics 365 CRM – How to Retrieve Entity Information in JavaScript When developing customizations in Microsoft Dynamics 365 CRM , one of the key aspects is being able to retrieve information about the current record on a form. This is essential for implementing custom logic, making API calls, or integrating with external systems. In this article, you’ll learn the most important properties you can use in JavaScript within Dynamics 365 CRM , along with code examples you can apply directly in your projects. Most Commonly Used Properties in Dynamics 365 CRM JavaScript Forms 1. EntityId Returns the unique identifier (GUID) of the currently open record. This is critical for API calls or any record-specific operations. var entityId = Xrm.Page.data.entity.getId(); console.log("EntityId:", entityId); 2. EntityIdWithoutBraces Retrieves the record’s GUID wi...

How to Fix “A binary operator with incompatible types was detected” in Power Automate

Fixing Power Automate Error – A Binary Operator with Incompatible Types When working with Power Automate , we often encounter errors that seem simple but can be quite confusing. One common error that many developers face when using List rows or filters in Power Automate is: Error: A binary operator with incompatible types was detected. In this post, I’ll explain why this error happens and how you can fix it quickly so your flows run smoothly. Why This Error Happens This error usually appears when you are trying to apply a filter query in a List rows action and you are comparing two fields with incompatible types. For example: Comparing a lookup field directly with a text value. Comparing an integer field with a string. In Dataverse, certain fields, like lookups , require you to use their GUID values in the filter. If the types don’t match, Power Automate throws the binary operator error. How ...

How to Fix “URL was not parsed due to an ODataUnrecognizedPathException” in Power Automate

Fixing Power Automate Error – ODataUnrecognizedPathException When working with Power Automate , sometimes you might encounter an unexpected error while creating or updating records. One common error that can be confusing is: Error: URL was not parsed due to an ODataUnrecognizedPathException I remember the first time I encountered this error. After some research, I discovered that the cause was usually related to mapping a lookup field incorrectly when creating a record in Dataverse. Why This Error Happens This error occurs when the OData URL generated by Power Automate is invalid. The most common cause is: Trying to create a record without specifying a lookup field correctly. Using the wrong logical name or forgetting to include the GUID of the record in parentheses. In Dataverse, lookup fields require a very specific format to work correctly in Power Automate flows. If the format is incorrect, you’ll see th...