Microsoft Dynamics CRM Pipeline

Problem

  • Explain the Microsoft Dynamic CRM Pipeline diagram
  • How are plugins triggered or handled?

Solution

In the Dynamics CRM Pipeline Diagram.

Dynamics CRM Pipeline Diagram

Explanation

  1. There is a web Service in Dynamic that handles a call from any of the clients.

  2. Once the data is received by this service it passes the data over the pipeline, known as an Event Execution pipeline.

  3. There is an operation known as platform core operation that is responsible for performing all the tasks on the database based on the data received by the dynamic web service.

  4. So in this execution pipeline, while the core operations are triggered we (the developer) can fire another event (or events) before or after the core events are triggered.

  5. The pipeline works as the data comes in, it checks for any pre-events to be performed, If there are then it performs that task and continues the core operation and if not then it directly triggers the core operations and it again checks for any post events to be performed for the current operation, if yes then it performs that post event and continues the flow.

  6. The developer can plug-in DLLs instead of pre-events and post-events and thus can make another event (or events) to be triggered.

  7. If the plugged-in DLLs are synchronous then it goes through this execution pipeline and finishes it's work.

  8. If plugged-in DLLs are asynchronous then the control is passed over the Async Queue Agent and it passes the plugged-in event to the Microsoft Dynamic Queue.

  9. Now the Asynchronous Service of Microsoft Dynamic is responsible fpr fetching that queue from the Dynamic Queue and performs the plugged-in event.

Quick Flow

  1. The client passes data to the Microsoft Dynamic CRM using the CRM Web Service.

  2. The service passes data to the Event Execution pipeline.

  3. The Event Execution pipeline checks for a pre-event plugin and post-event plugin, if any.

  4. The Event Execution pipeline is responsible for a triggered core operation based on any pre-event or post-event.

  5. Now the request knows what task to perform but the request has no idea of when to perform it, in the current process or if the request needs to be passed to another process for execution.

  6. This is decided by the sync and async call of the plug-in.

  7. If its sync then the plug-in is handled at the same moment.

  8. If its async, the plug-is handled using a queue.

  9. Finally the async plug-in event is passed to the async service of dynamics to perform the task as and when the async service is free.