The new GRAX lightning data viewer allows you to expose GRAX data (regardless of whether it was backed up and/or archived) as related list components inside Salesforce to provide your end users with the look and feel they are accustomed to, along with added flexibility to navigate, explore, and restore the hierarchy using GRAX directly.
It is required that you place the
GRAX List Recordscomponent(s) onto a separate lightning tab. This ensures that the component does not load every time a user opens that Salesforce record page. Instead, per Salesforce best practices, a user would click into a lightning tab on the page in order to load the lists on demand and thus prevent excessive Salesforce and GRAX callouts.
Here are the steps a Salesforce/GRAX Admin will need to complete to successfully set up this LWC:
First ensure all relevant data is backed up and/or archived so that it is available in GRAX. This includes related parents, children, and any other objects that you would like to expose within Salesforce and GRAX. Maintaining an incremental backup of all objects is a key first step when getting started with GRAX.
Once your data is backed up, you can begin adding one or more lists using Salesforce's lightning app builder. Search for the
GRAX List Recordscomponents in the left sidebar and drag it onto the page. You can repeat this process for each related object that you would like on the page.
Per best practices, we've created a new
GRAX Lightning Data Viewer tab and dragged the
GRAX List Records components into that tab.
- For each component, you will notice various configuration options in the right sidebar. Let's take a look at each in detail:
|Related Object||Enter the exact, case-sensitive API name of the object.|
|Related Objects Fields||Enter the exact, case-sensitive API names of each field that you would like added as a column for the component. Use commas to separate the field names (no spaces).|
|Data Set Selection|
|Records Per Page||The number of records you would like displayed for each page of the component. GRAX will default to 5 in order to limit scrolling and for general ease of viewing.|
|Override Title||Add your own custom title to the component so that end users have a clear understanding of what is being shown.|
|Set Component Visibility||This is a standard Salesforce feature for lightning components. It is a very powerful feature that can allow you to control who can see this component, based on field values, profiles, permission sets, custom permissions, etc.|
Let's look at a sample Account in Salesforce and see what the end user experience feels like. First, click into the tab we've set up that houses multiple GRAX lightning data viewer components. This account record as well as all children must exist in GRAX in order for the components to display data correctly.
- You can sort any column in ascending or descending order by clicking the column name
- You can resize the column widths (note the resized columns will reset again upon page refresh)
- ID fields will show as hyperlinked and take the user to the relevant GRAX detail page
- Click the dropdown on any row to reveal the
View in GRAXoption, which also will direct the user to the GRAX detail page for that record
- For ContentVersion and Attachment objects, you will an additional dropdown option titled
- You can click through multiple pages of data as needed
Customize your lightning data viewer lists to show exactly what you need to expose. Use the dynamic ID hyperlinks,
View in GRAX, or
View Graph buttons to navigate.
View Record allows you to quickly restore the record, access direct in GRAX, or view the parent.
Using the quick links in the Salesforce lightning data viewer components, allow your users to be directed to GRAX record pages to easily navigate the full record details, versions, the related records via the hierarchy graph. Users can use the
View in Salesforce button to further view that record back in Salesforce, if it still exists.
The table below summarizes the default fields that are added when configuring a component. You can adjust and customize as needed.
|Id||Id||The record Id will always appear as the first column by default, so you do not need to add it as a column|
|LastModifiedDate||Last Modified Date||Standard Salesforce audit field|
|CreatedDate||Created Date||Standard Salesforce audit field|
|IsDeleted||Deleted||GRAX system field that reflects whether GRAX has captured this record as manually deleted in Salesforce or deleted via GRAX archive. Read about the |
|GRAX_deletedAt||Deleted At||The date GRAX captured this record as deleted. Note this does not necessarily reflect the exact time the record was deleted, but rather when GRAX was able to capture and flag that it was deleted.|
|GRAX_deleteSource||Deleted Source||A |
By default, only users who have at least one GRAX permission set will be able to view this component. As explained above, you can use Salesforce out-of-box component visibility to further define your own custom permissioning for each component if you wanted to lock things down even more.
Users trying to further navigate within GRAX and see things such as the full record details along with the entire hierarchy within GRAX, will need the proper GRAX permissions as explained here.
The component makes a call to the GRAX API via Salesforce, so self-managed customers will need to make sure all relevant Salesforce IPs are allowed through. For more on GRAX networking considerations, read the Networking guide.
If a user cannot see the LWC even after being granted a GRAX permission set, ensure that this user has access to the
LWCHelperapex class. You can do this via profiles or permission sets.
This component will respect Salesforce's sharing settings for any records that are still live in Salesforce. If you are viewing archived or deleted data that no longer exists in Salesforce, users will be able to view the records in the component since it does not exist in Salesforce to query and determine access levels.
Additionally, the component (and the record view in GRAX) will respect a user's field-level security. This includes access to fields via profiles and permission sets. It does not currently account for whether a user may have
View All Data permission set somewhere in Salesforce, so it's possible that the user has more access to fields when viewing the data natively on the Salesforce record versus within GRAX, which is more strict.
- If you have multi-currency enabled, it may help to add the
CurrencyIsoCodefield as a column to the component so that users can easily tell the currency code for any currency fields.
- Support for encrypted (classic) fields. While GRAX backups support encrypted fields, the lightning data viewer will show the plain text value. Avoid adding encrypted fields as columns if this is an issue.
Updated about 1 month ago