Sometimes the metadata used to represent a change made in Salesforce doesn't quite line up with what the Salesforce UI would lead you to believe. An example of this is picklist values on Standard Fields - for instance, the values of the Account Source
field on the Account
standard object.
The Salesforce UI makes it look as if the field actually stores the value, but the reality is that the values are stored in another metadata type called a Standard Value Set
.
โ
And the actual field definition for Account Source
is only a reference to the Standard Value Set
.
How to find changes made in picklists
To find changes to your picklists, run a comparison that includes these 3 metadata types in your custom filter:
- Standard Value Set
, Global Value Set
and Custom Object
You can then filter the comparison results, and find the changes you're interested in.
Note on deleting picklist values:
It's a documented limitation of the Metadata API deletions of picklist values aren't supported by Salesforce Metadata API.
Instead, the value become inactive when you deploy their deletions from the source environment.
โ
This behavior is the same for Custom Fields - it's because the Metadata API treats Standard and Custom Fields as one type.