Global picklists are a new concept introduced with Microsoft Dynamics CRM 2011. This allows you to define the set of picklist values once as a Global picklist and then utilize this global picklist across entities. This has several advantages:
- Define picklist once and use across entities
- If any values need to be added or updates – it only needs to be done once in the global picklist rather than changing the picklist values in each entity
- Set the picklist values using workflows.
The objective of this blog is to explore the benefit of setting the global picklist values through workflows.
Consider a situation where you have an Account and a few associated contact records. There is a picklist say “Category” that is present both on the Account and the Contact record. And let’s just say that any contacts that are created for that Account should have the customer type picklist value set to that of the account.
This looks like a very reasonable request and something that comes up a lot. The easiest way to do this is to write a workflow on the Contact record, set to trigger on Contact create or on change of the Parent Account.
Looks simple enough and you happily go about creating the workflow – till you come to the step where you need to set the “Category” picklist on the Contact record = Category picklist on the Account record. And you find that there is no way of doing this! This happens if you go about the default way of creating the picklist and enter the picklist values on the picklist field (see image below).
If you create a similar picklist on the contact and have the same picklist values, you will still not be able to just set the Contact.Category = Account.Category. You will instead have to write if conditions for each of the values in the picklist. While this may work for picklist with few values, it quickly turns cumbersome as the number of picklist values increases.
A better way is to use a Global picklist. To set up a global picklist on both the Account and the Customer do the following:
- Goto Customization > Customize the System > Options Sets > New Option Set and create an option list called “Category”
- Enter the option list values here
- Goto the Account record
- Create a new field called “Category” and set the type as Option Set
- Mark “Yes” for Use Existing Option Set
- Select the “Category” Options Set created earlier
- Set the default value if required
- Goto the Contact record and repeat the steps 4 to 7
The following image shows the Global Picklist creation “Category”
The following image shows the Category field on Account being linked to the global Picklist “Category”
Once the global picklist is created and used on both the entities, it makes things a lot simpler. Now you can create a workflow and simply set Contact.Category = Account.Category. Since both of these refer to the same global picklist, CRM 2011 allows the workflow to assign the picklist values. This is one of the advantages of using the Global Pciklist.
Note: A quirky thing to note is that almost all the out of box option sets are local to that entity, so in most cases you may have to re-create the picklist as a global picklist.
Hope this CRM How-To helps make you more efficient and smarter CRM user.