All Collections
Salesforce Metadata
Metadata utilization
Impact analysis / dependency / usage tab: Field % population and dependency data
Impact analysis / dependency / usage tab: Field % population and dependency data

Field % population; Usage; Where used; Where is field used; Can I delete a field; How populated is a field; Field usage breakdown;

Ksawery Lisinski avatar
Written by Ksawery Lisinski
Updated over a week ago


When you have connected an Elements space with your Salesforce Org, you can check where any field is being used and how much it is being used. 

Prerequisites

  • Registered and verified Elements account

  • Viewing Space rights

  • Sync'd Salesforce Org

Where is this field used?

Under the vertical % population chart on a field, you can see collapsed lists of items that are using this particular field, grouped by type. Click on the ">" to expand the section to see the individual items.

Items that use the selected field will be listed with a hyperlink icon to Salesforce setup for that item. When you roll over the listed item, you will see a pop-over with the key metadata:

You can check whether a field is being used by:

  • Apex Classes

  • Apex Triggers

  • Approval Processes

  • Email Templates

  • Field Sets

  • Flows

  • Formula Fields

  • Global Actions

  • Page Layouts

  • Process Builder Workflows

  • Reports

  • Sharing Rules

  • Validation Rules

  • Workflow Field Updates

  • Workflow Rules

TIP! You can also open the metadata dependency tree at the top of this section.

Apex dependencies limitations

There are just a few apex structures for which we currently do not support the field usage information, these are:

  • SOSL

  • Nested SOQL

  • Chain of lookups in SOQL

  • Dependency usage from other classes

  • SObjects and methods from SObjects

  • Reinitialization of variables to a different type

  • When a Developer org has a namespace but uses field/object without namespace

  • Switch-case statement (for apex classes with version 43.0 and more)

Field % population

Find the object name in the org model, then open up the "Fields" node in its structure. Then select the field (listed by name) you want to investigate and open up the "Usage" tab in the right panel. You will see a vertical bar chart showing how populated a given field is by each record type it is used on.


If you select the parent object in the Org model tree and open up the "Usage" tab in the right sidebar, you will see the list of all of that object's fields in a vertical bar chart with % population. This is an aggregate population across the last 10k records and is not broken down by record type. 

Click on "View all" below the chart to expand it and see all fields. You can also use the filter to narrow it down to custom, standard or system fields.

Extending the analysis sample

  • Getting the field % population for all records is a big task - that is why we run it on a weekly basis (if you turned on the automatic sync) rather than with each sync.

  • We automatically fetch the data for all records for each standard and custom object

  • It only takes 1 API call to extend the analysis sample (even for 50 million records). But that operation requires a lot of asynchronous Apex executions - the number is the total amount of records divided by 200 (chunk size). Fetching and analyzing 50 million records would take 250 000 asynchronous Apex executions, which is the total daily limit for most Orgs. You need to make sure you have the apex execution budget to spare in any given day to run that operation.

Troubleshooting % population analysis

  • We do not fetch the % population data for managed package objects automatically. You need to fetch the data manually by clicking "Update % population" in the right panel for the selected managed package (they can be found at the bottom of your Org model tree).

  • If you sync any new objects between the weekly % population data fetch, then they won't have any % population data yet, and they will show up with errors if you try running a report. A simple solution is to fetch the % population data manually for the objects you are interested in. 

  • We don't get % population data for formula fields as they are almost always fully populated and as such we consider this data to be irrelevant.

  • Your ability to extend the analysis sample is dependent on the total number of records in an object. You will only be able to extend the sample to "All records" (50 million) if you already have more than 1 million records in an object, to "1 million" if you have more than 100k, etc. 

Person Account Object

Because of its unusual data model, we are syncing all Person Account relevant metadata components under the Account object, but with the prefix 'Person:' followed by a dependent metadata name.


However, there's a caveat to the field dependencies for Person Account.
We were unable to force dependency analysis for all Person Account fields from the database level. For the dependencies to be reported in Elements, the dependent metadata type (Reports, List Views etc.) last modified date needs to change.
So, any modification to the dependent metadata type that uses the Person Account field, will result in the dependency being available in the right panel.

Did this answer your question?