Criteria | Use Plugin | Use Workflow | Use Dialog |
Needs custom logic to executesynchronously. | Plugins support synchronous execution. | Dialogs always execute synchronously. | |
The logic needs to be executed whileoffline | Only plugins are supported offline. | ||
Needs elevation of privileges (impersonation) | In the plugin step, you can select the user under which the plugin will execute by setting the impersonating user id in the plugin step. | In some cases you can control under which user the workflow will execute by assigning the workflow to that user. | |
Needs to execute onevents other than assign, create, update and set state | Can be registered on a large list of sdk messages. | ||
The process/logic may take a long time to complete or will be a persistentprocess (multiple long running steps) | Workflows have no limit on the length of time they can take to complete execution. They can also persist (pause) and resume at a later date. Plugins have a time limit of a couple of minutes to complete (even asynchronous plugins). | ||
Needs to executeasynchronously | Plugins support asynchronous execution | Workflows support asynchronous execution | |
End users will need to modify the process logic | Processes can be modified using the CRM process designer in the application and does not require IT administrators to re-compile and deploy a plugin assembly. | ||
Child sub processeswill be triggered | CRM processes support executing child processes | ||
Needs to readconfiguration parameters for execution | You can make use of the configuration and secure configuration settings in the plugin step. These values will be passed to the plugin constructor and can be easily updated. | Dialogs cannot be configured with configuration parameters but they can retrieve configuration information from user responses / interactions. | |
Need to execute logic on-demand | Workflows and dialogs can be executed on-demand. Plugins can only be triggered as a result of a specified action to which the plugin step is configured. | ||
Needs to roll back transaction in case of error (useful for validation) | Plugins can be registered in-transaction so they are able to roll-back the main operation if the plugin fails. Workflows are executed post-transaction so they cannot roll back the main operation. | ||
The plugin/workflow logic is not possible to implement by using the CRM process designer | Plugins are written in .NET and this supports any action that can be achieved using the CRM SDK. | You can extend workflows/dialogs by creating a which is also written in .NET calling any method from the CRM SDK. However,this is not supported in CRM Online yet. | |
Interaction with user is required to execute the custom logic | CRM dialogs support the execution of a process which dynamically takes input from question asked to the user. | ||
Need custom logic to execute before the main operation | Only plugins can be registered to execute pre- main operation. | ||
Need to gather data from the entity pre-image (image of the entity before the main operation) | You can register pre-images for plugin steps. | ||
Need to gather data from the entity post-image (image of the entity after the main operation) | You can register post-images for plugin steps. | Post image is available from the process designer in the CRM application. | |
Needs to be packaged into asolution | Plugins and processes are solution aware |
Monday, September 12, 2011
CRM 2011 – The difference between a plugin and a workflow
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment