For example, when a user goes to an external object’s record detail page, your DataSource.Connection is executed. Behind the scenes, we generate a SOQL query similar to the following.
SELECT columnNames FROM externalObjectApiName WHERE ExternalId = 'selectedExternalObjectExternalId'
This SOQL query causes the query method on your DataSource.Connection class to be invoked. The following code can detect this condition.
if (context.tableSelection.filter != null) { if (context.tableSelection.filter.type == DataSource.FilterType.EQUALS && 'ExternalId' == context.tableSelection.filter.columnName && context.tableSelection.filter.columnValue instanceOf String) { String selection = (String)context.tableSelection.filter.columnValue; return DataSource.TableResult.get(true, null, tableSelection.tableSelected, findSingleResult(selection)); } }
This code example assumes that you implemented a findSingleResult method that returns a single record, given the selected ExternalId. Make sure that your code obtains the record that matches the requested ExternalId.