When you have connected Elements space with your Salesforce org you can check where any field is being used and how much it is being used.
- Where is this field used?
- Apex dependencies limitations
- Field % population
- Extending the analysis sample
- Troubleshooting % population analysis
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 popover with the key metadata:
You can check whether a field is being used by:
- Apex Classes
- Apex Triggers
- Approval Processes
- Email Templates
- Field Sets
- Formula Fields
- Global Actions
- Page Layouts
- Process Builder Workflows
- Sharing Rules
- Validation Rules
- Workflow Field Updates
- Workflow Rules
*You can also generate metadata dependency trees below the "Where used" section. More on that here.
Apex dependencies limitations
There are just a few apex structures for which we currently do not support the field usage information, these are:
- 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 is a given field 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 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 the last 10,000 updated records for each standard and custom object in your core Org (we do not include managed packages)
- You can extend the analysis sample to the last 100k, 1 million and 50 million records for each object (including managed packages).
- Click "Update" in the right panel for either a field or an object. The analysis sample will affect all object's fields, even if you run it from a single field.
- 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.