There are three ways to automate actions in Microsoft Dynamics CRM: workflows, JavaScript, or plugins. In this blog we will discuss the difference between them and how to choose which option is appropriate for your task.
- Workflows can perform tasks such as updating data or sending email. They are triggered by saving records, creating records, or changing specific fields on a form, and once triggered, they run on their own in the background. As you can see in the example of How to Assign a Territory to a Lead in Dynamics CRM, you can even look up data in another entity.
- JavaScript runs on the screen while the user is using a form. JavaScript is triggered by events within the page, updating a field or saving, and it is commonly used to hide or show different fields on the forms. You can also, for instance, Populate a CRM 2011 Lookup or PartyList Field Using JavaScript by having a lookup automatically linked to the record based on what is entered in another data field.
- Plugins are separate .Net programs that respond to saving records or creating records. They can be set to run immediately on the screen or on their own behind the scenes depending on the need. Plugins are often used to do advanced tasks because they can be programmed to do anything within the limits of .Net and the SDK.
So, how do you decide using workflows vs. JavaScript vs. plugins when so there are many ways to update the information you want? There are a few factors to help the decision:
- Does the user need to see the results before moving on?This is known as synchronous processing. If the user needs to see the change on the screen, it should be done with a plugin or JavaScript and not a workflow. A workflow can take several seconds or minutes to process and should not be used in a process where users must wait for it to complete before they can continue.
- Who will the maintenance fall to? Users or IT?Workflows are much easier for business users to modify than JavaScript or plugins, which require some code. JavaScript or plugins should be avoided in processes that may change frequently.
- Does it need to be run on demand or only responding to system events?Workflows can easily run on demand (a.k.a manual workflow), but JavaScript and plug-ins require custom buttons in order to run on demand.
- What is the relationship between the primary record and the records that need to be updated?
Workflows can update records with a N:1 relationship (a lookup on the record), but they cannot run on 1:N relationships (those on the left navigation or in a sub-grid). So using a workflow, you cannot automatically update all the contact addresses when the parent account address changes. But this can be done with a plug-in.
Here is a table that will help you identified the difference between workflows, JavaScript, and plugins for use within Microsoft CRM.
Workflow | JavaScript | Plugin | |
Synchronous | Asynchronous | Synchronous | Either |
Can Get External Data | No | Yes | Yes |
Maintenance | Business Users | Programmers | Programmers |
Can Run As | User | User | CRM System |
On Demand | Yes | No | No |
Nested Child Process | Yes | No | Yes |
Executed After Saving | After | Before | After |
Triggers | Create, Field Change, Status Change, Assign to Owner, On Demand | Field change or Form Load | Create, Field Change, Status Change, Assign to Owner, Delete |
For different cases when the user may need to walk through a process and make decisions, dialogs may instead be the right answer.
Comments
Post a Comment