The Organization service is an essential component of Microsoft Dynamics 365 CRM. It provides a run-time environment for all CRM applications, providing a unified programming interface to interact with data and metadata. The Organization service in Dynamics 365 handles the interactions between plug-ins and the system, making it easier to implement custom business logic.
Use of Organization Service in Plug-ins
Plug-ins in Dynamics 365 allow developers to execute custom business logic to alter or augment the standard behavior of the platform. The Organization service plays a crucial role in this process. When an event occurs in the system (a record is created, updated, or deleted), the Organization service triggers the suitable plug-in registered for that specific event.
The plug-in, equipped with an execution context, can then use the Organization service to interact with the system, perform operations (CRUD), and apply business logic. This could include tasks like creating a new record, updating fields in an existing record, retrieving records based on certain conditions, or deleting records.
Code Example
Here is an example of how a plug-in can use the Organization service to create a new account in Dynamics 365. This is a basic example where we are creating a simple account with the name ‘Test Account’.
C#
public void Execute(IServiceProvider serviceProvider)
{
// Obtain the Organization service.
IOrganizationServiceFactory serviceFactory =
(IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service =
serviceFactory.CreateOrganizationService(context.UserId);
// Create an account with the name ‘Test Account’
Entity account = new Entity(“account”);
account[“name”] = “Test Account”;
service.Create(account);
}
In the code above, we first get an instance of IOrganizationService. We then create an instance of an Entity, which represents the ‘account’ we want to create in the CRM. We then call the ‘Create’ method of the Organization service, passing the desire entity.
This is a simple example, but you can perform much more complex operations with the Organization service. You can use various methods provided by IOrganizationService such as Create, Update, Delete, Retrieve, RetrieveMultiple, Associate, Disassociate etc.
Key Points for PL-400 Microsoft Power Platform Developer Exam
Below are some key aspects of utilizing the Organization service in plugins, which you may come across in the PL-400 Microsoft Power Platform Developer exam:
- Understand when and how to use plug-ins and how the Organization service plays a role in this.
- Get familiar with the concept of an execution context in a plug-in.
- Know how to create, update, retrieve, and delete records using the Organization Service within a plug-in.
- Understand how to handle exceptions and perform error handling in plugins.
- Familiarize yourself with other IOrganizationService methods like Associate, Disassociate, and Execute.
Mastering these aspects of the Organization service will undoubtedly give you a leg-up when tackling related questions in the PL-400 exam, and will ensure your success as an effective Power Platform Developer.
Practice Test
The Organization service is not used in developing plug-ins for the Power Platform Developer’s PL-400 exam.
- True
- False
Answer: False
Explanation: The Organization service is an integral part of developing plug-ins in Power Platform. It provides a way to read and write data within your organization’s database.
Using the Organization service, you can perform operations like Create, Retrieve, Update, and Delete.
- True
- False
Answer: True
Explanation: The Organization service provides an extensive set of APIs for performing CRUD (Create, Retrieve, Update, Delete) operations within your organization’s database.
The execution context is an object that gets automatically passed to a Plugin when an event is fired.
- True
- False
Answer: True
Explanation: The execution context contains all the information needed by a plugin to execute, including the entity image, the message name, and the user who caused the event to fire.
Which of the following are features of the Organization service?
- Access data from any entity
- Perform operations such as Create, Retrieve, Update and Delete
- Use LINQ (Language-Integrated Query) queries
- All of the above
Answer: All of the above
Explanation: The Organization service provides access to all these features to aid in the development and implementation of plug-ins.
The Organization service does not support LINQ queries.
- True
- False
Answer: False
Explanation: The Organization service does support LINQ queries, which allows developers to write queries using C# or VB code, rather than using FetchXML.
Plug-ins cannot handle custom business-specific operations.
- True
- False
Answer: False
Explanation: Plug-ins are custom classes that integrate with the event processing service of Microsoft Power Platform to provide custom business-specific behavior.
The IServiceProvider interface is passed to a plugin’s Execute method in Power Platform.
- True
- False
Answer: True
Explanation: The IServiceProvider interface contains the references to the Microsoft Dataverse entities and services that are available for a plug-in to work with.
Which of the following is not a step in installing and deploying plugins in Power Platform?
- Register the Plugin
- Enable Sandbox mode
- Register a Step
- Create a Solution
Answer: Enable Sandbox mode
Explanation: While registering plugins, enabling sandbox mode is not a necessary step.
The IOrganizationService interface is an essential interface that every plugin must implement.
- True
- False
Answer: True
Explanation: The IOrganizationService interface represents a service that provides data operations, transaction management, and interoperability features for Microsoft Dataverse.
The Organization service does not provide any abilities around event management.
- True
- False
Answer: False
Explanation: The Organization service provides an event framework to manage and handle various events that occur within the Microsoft Power Platform.
Plug-ins cannot be registered on system events.
- True
- False
Answer: False
Explanation: Plug-ins can be registered to execute on specific system events including Create, Update, Delete, Retrieve, Retrieve Multiple.
It is a good practice to develop and debug plugins in release mode.
- True
- False
Answer: False
Explanation: It is recommended to develop and debug plugins in debug mode.
Poorly written plugins can affect system performance.
- True
- False
Answer: True
Explanation: Poorly written plugins can heavily tax system performance, so it’s critical to follow best practices when writing them.
The Organization service can be consumed by plugins and workflow activities through the IOrganizationServiceFactory interface.
- True
- False
Answer: True
Explanation: IOrganizationServiceFactory is used to get an instance of IOrganizationService which can then be used to interact with the CRM system.
Plug-ins can execute synchronously or asynchronously.
- True
- False
Answer: True
Explanation: Depending on your requirements, you can specify whether a plug-in should execute synchronously or asynchronously.
Interview Questions
What is the Organization service in Microsoft Power Platform?
The Organization service is an essential component of Microsoft Dynamics 365 CRM that allows applications to interact with the data in Dynamics 365. It adheres to open standards for web service protocols, relying on SOAP for communication.
What is the role of plug-ins in the Organization service of Microsoft Power Platform?
Plug-ins are custom business logic that you can integrate with Microsoft Dynamics CRM to modify or augment its standard behavior. Such plug-in code is registered against a particular event in CRM and executes whenever that event occurs.
Can you summarize the process of performing operations in plug-ins with the Organization service?
To perform operations in plug-ins using the Organization service, first, you create a plug-in and register it within CRM using the Plug-in Registration Tool. Then you associate the plug-in with specific CRM events. When these events occur, the CRM platform invokes your plug-in, passing it an execution context that contains details about the event.
How does the context play a role while operating plug-ins by using the Organization service?
The execution context contains an instance of the IOrganizationService that represents the current transaction. The plug-in can use this to perform operations on CRM data that are part of the same transaction as the triggering event.
What is the IPluginExecutionContext in the Organization service?
The IPluginExecutionContext provides all the runtime environment context information needed to execute a plug-in. It includes information like the data in the message request and who is calling the message.
How do we obtain an instance of IOrganizationService within the plugin?
You can obtain an instance of the IOrganizationService using the IServiceProvider.GetService method. The IServiceProvider is passed to the execute method of the plugin.
What is the purpose of the ITracingService in the Organization service?
ITracingService provides a way to log runtime information which can be useful for debugging and error handling purposes. This information gets written to the plugin trace logs.
Can plug-ins be deployed for both on-premise and online versions of Dynamics 365?
Yes, plugins can be deployed for both the on-premise and online versions of Dynamics 365, as they adhere to the same SDK.
Can multiple plug-ins be registered against a single event in the organization service?
Yes, multiple plug-ins can be registered against a single event, and they execute in the order of their rank.
What happens if an exception is unhandled in a plugin when using the Organization service?
If an exception is unhandled in a plugin, the platform considers it a failure and will not commit the current transaction.