Skip to main content

Field Analysis

Field Analysis module deals with understanding of how many Objects/Fields have data populated and metrics around that population. Having these metrics on hand is crucial in Org Maintenance, Data Migration and other Data cleanup activities.

Here are some noteworthy features of this module.

  • Create one or more analysis requests so you can re-analyze later
  • Analyze one or more objects in the same request
  • Ability to analyze all or specific set of fields. This is critical if you want to analyze a huge number of records so you can limit to a specific set of fields.
  • Ability to deep-analyze Picklist/Multi-picklist values and Record Types to get value level metrics
  • Gather Population by Record Types, field level metrics as well as data-type-specific metrics
  • Render results in color coded grid for easy identification fields by population group
  • Export all of this data into a CSV Zip File, Excel file, or Google sheet for easy reference and sharing

Overview

The Field Analysis screen consists of five panels of information laid out in an easily understandable way. The following screenshot highlights all of those panels and other bits of information. You can resize the panels to make more room for the information you are viewing.

You can open this module from App Menu -> Modules -> Field Analysis

PanelDescription
RequestsThis panel shows all requests that are applicable for current connection. You can add, edit and delete Requests. Once you are ready to start the analysis, click on the Analyze button
ObjectsThis panel shows Object level information for selected one or more requests.
FieldsThis is the main result panel which shows details of field usage. When you select a request, it will show all fields in that analysis. However you can also show fields for one or more objects, by selecting those objects in the Objects panel.
By Record TypesThis panel shows the details of field population by Record Type, if there are any record types in that object.
Picklist ValuesThis panel shows the Picklist Value population for selected Picklist or Multi Picklist fields. If you select non-picklist fields, then this grid will be empty.

Usage

Here is the typical usage of this module.

  1. Have a plan which objects you want to analyze and how many records you want to analyze
  2. Create a Request to specify that design
  3. Select that request in Requests grid and click on Analyze
  4. App should start the analysis. Click on the request again to refresh the Objects and other panels with that Request run details.
  5. Explore the results
  6. Export the Results. You can explore individual panel grid using standard Grid Export controls or you can click on Export Analysis to export complete analysis details into CSV Zip file, Excel or Google Sheet.

Request Dialog

When you want to add (click on Plus icon) or edit (click on Pencil icon) a request, the following dialog is shown.

FieldTypeDescription
Name*TextEnter any meaningful name for this request
ThreadsInteger (Defaults to 5)Indicates how many objects are analyzed in parallel.
Object CategoriesPicklistSelect the object categories which acts as first level filter to select Objects for analysis
Object NamesTextEnter the comma separated values of Object Names that should be analyzed. This filter is applied after Object categories. This field supports wild cards. For ex., you can enter *Account* to analyze all objects containing Account word in them. To match all objects in selected categories, enter *
Max ObjectsNumber (Default to 100)Since Field Analysis can query lot of data, we ask you to specify how many objects you are expecting the Object Categories and Object Names to match. If we find that it matched more objects than this, it will error out. This is for your safety. Defaults to 100.
Field CategoriesPicklistSelect the list of Field Categories that should be used to match fields.
Field TypesPicklistSelect the list of Field Types that should be used to match fields.
Field NamesTextEnter the field names that should be used to match fields. This field supports wild card matching. For ex., sked__* will match all fields from skedulo package. Note that fields are first matched by Field Category, and then by Field Type and then by Field Names. If this is blank, then all fields are considered matched.
Modified Since DaysIntegerThis is a shortcut to specify a where clause CreatedDate >= days or SystemModstamp >= days
Additional Where ClauseTextYou can specify any additional where clause that should be applied to match records. Note that if you are analyzing multiple objects, this where clause must be valid for all of them. Typically you would use this to match by system fields or by Record Type.
Order ByTextSpecify any Order by that should be used while querying records
Record Limit per ObjectInteger (Defaults to 1000)Number of records to fetch per Object.

Objects Grid

Objects Grid shows the list of Objects from selected request in Requests grid. If you select more than one, then all Objects in those Requests are shown.

Here are the various columns in this datagrid and what they mean.

ColumnDescription
RequestShows the Request for which this Object was analyzed. This column is added so that you can identify which request matched an object when Objects from multiple requests are shown.
ObjectObject API Name
Total RecordsTotal Number of records in the object. Note that for big objects, this is an estimation and not exact count.
Analyzed RecordsNumber of records queried for the analysis
Standard FieldsNumber of standard fields in the Object.
Custom FieldsNumber of custom fields in the Object. This should give you an idea how heavily this Object is customized
Packaged FieldsNumber of packaged fields in the Object
Various % FieldsThese fields tell you how many fields in that Object falls into this bucket of population. This should give an idea at high level how Object customizations are used.
Various Record DatesThis is roll up metric from corresponding Field level metric field. See Fields Grid for more info on each of these fields.

Fields Grid

Here are the various columns in the Fields data grid and what they mean.

ColumnDescription
RequestName of the FDA request, where this field was analyzed. This is there because you can show fields from multiple requests at same time
ObjectSobject of the field
Field NameField API Name of the field
Field LabelField Label of the field
Field TypeDetailed Field Type information
Populated%% of records where there is a non-null or non-false value. This is percentage of Populated Count/Analyzed Count
Default%% of records where value is populated but that populated value is default value for that field. This metric tells you that field is created but never really populated beyond default value.
Populated CountNumber of records where there is a non-null or non-false value
Analyzed CountTotal number of records analyzed. This count will be same for all fields in a request
First Record Created DateThis is the earliest CreatedDate of a record where this value is populated
Last Record Created DateThis is the latest CreatedDate of a record where this value is populated
First Record Modified DateThis is the earliest ModifiedDate of a record where this value is populated
Last Record Modified DateThis is the latest ModifiedDate of a record where this value is populated
Min String LengthMinimum value of string.length of all values in this field. This is populated for all fields which are not, dates/booleans/numbers.
Max String LengthMaximum value of string.length of all values in this field. This is populated for all fields which are not, dates/booleans/numbers.
Min Number ValueMinimum number value of all values of this field. This is populated for number/percentage/currency fields.
Max Number ValueMaximum number value of all values of this field. This is populated for number/percentage/currency fields.
Earliest DateEarliest date/time value of all values of this field. This is populated for date/datetime/time fields.
Latest DateLatest date/time value of all values of this field. This is populated for date/datetime/time fields.
True CountNumber of records with True values in this field. This is populated for boolean fields.
False CountNumber of records with False values in this field. This is populated for boolean fields.
Field Created ByThis is metadata value of who created this field in the system. This is populated only custom fields.
Field Created DateThis is metadata value of when this field was created in the system. This is populated only custom fields. This can help you understand if this was created recently and back-populated for earlier records.
Field Modified ByThis is metadata value of who last modified this field in the system. This is populated only custom fields.
Field Modified DateThis is metadata value of when this field was last modified in the system. This is populated only custom fields.

By Record Type Grid

If Object makes use of record types, it is possible that a field is applicable only for one or more Record Types. So low population doesn't necessarily mean that field is not used. Viewing By Record Type population can tell you for which record types the values are populated.

ColumnDescription
ObjectSobject of the field
Field NameField API Name of the field
Record TypeRecord type name
Populated%% of records where this value is populated
Populated CountNumber of records where this value is populated.

By Picklist Value Grid

Here are the various columns in the Values data grid and what they mean.

ColumnDescription
ObjectSobject of the field
Field NameField API Name of the field
ValuePicklist value
Populated%% of records where this value is populated
Populated CountNumber of records where this value is populated. Note that for Multi-picklist fields, each value is analyzed independently so Populated Count could be more than number of records where this field is populated.