Вы находитесь здесь:
Нотация взаимосвязи в сравнении с несколькими этапами извлечения
Использование записи взаимосвязи повышает производительность Omnistudio Data Mappers, извлекающих данные из родительского объекта. Используйте эту нотацию в извлечении путей JSON для полей родительского объекта вместо добавления второго объекта во вкладке извлечения соотнесения данных.
Нотация взаимосвязи в Data Mappers основана на запросах взаимосвязи в Salesforce. Дополнительные сведения об именах взаимосвязей и других соответствующих темах см. в разделе Запросы взаимосвязей в справке Salesforce. В соотнесениях данных можно использовать только запросы взаимосвязи между детьми и родителями.
Например, вы хотите извлечь данные контакта, содержащие имя организации, с которой связан контакт, а организация является родительским объектом контакта. Можно использовать несколько этапов извлечения или нотацию взаимосвязи.
Чтобы использовать несколько этапов извлечения, сперва определите этапы извлечения для объектов контакта и организации во вкладке извлечения соотнесения данных. Потом определите пути извлечения JSON для полей контакта и организации.
Чтобы использовать запись взаимосвязи, сперва определите этап извлечения для объекта «Контакт» во вкладке извлечения Data Mapper. Потом определите пути извлечения JSON для полей контакта и организации.
Поле «Извлечь путь JSON для имени» объекта «Организация» содержит значение Account.Name. Account — это имя взаимосвязи объекта «Контакт» с родительским объектом «Организация». Имя взаимосвязи отличается от имени поля, ссылающегося на родительский объект, то есть AccountId. Большинство имен взаимосвязей для стандартных объектов используют данное правило и пропускают суффикс кода.
Если вы введете код контакта во вкладку «Предварительный просмотр», вы получите одинаковый ответ для этого контакта для двух соотнесений данных:
{
"CompanyName": "Acme",
"LastName": "Tomlin",
"FirstName": "Leanne"
}Однако, если вы посмотрите в журнал отладки, вы увидите два запроса SOQL для Data Mapper, использующих несколько этапов извлечения:
SELECT id, accountid, firstname, lastname, name FROM Contact WHERE (Id = '0031U00000HUob9QAD')
SELECT id, name FROM Account WHERE (Id = '0011U00000KbYZAQA3')
Вы видите только один запрос SOQL для Data Mapper, использующий запись взаимосвязи:
SELECT id, firstname, lastname, account.name FROM Contact WHERE (Id = '0031U00000HUob9QAD')
Выполнение только одного запроса SOQL на основной объект всегда намного быстрее, чем выполнение двух. Data Mapper выполняет этапы обработки для каждого выполняемого запроса SOQL, а Salesforce также вносит накладные расходы для каждого запроса SOQL. При использовании одного запроса вместо двух у вас будет половина накладных расходов.
