Вы находитесь здесь:
Внешние объекты в процедурах интеграции
Процедуры интеграции поддерживают внешние объекты Salesforce. Внешние данные могут поступать из любого источника, доступного посредством конечной точки REST. Возвращенные данные могут отображаться как JSON или XML.
Вот как это работает:
-
В Salesforce выполняется операция против внешнего объекта Vlocity, например, в коде Apex, отчете или посредством запроса SOQL.
-
Обработчик внешних объектов Vlocity вызывает процедуру интеграции, внедряющую внешний объект, передавая полезные данные JSON, содержащие сведения о запросе.
-
В зависимости от содержимого полезных данных JSON, процедура интеграции открывает внешние данные посредством, например, конечных точек REST или вызовов Omnistudio Data Mapper и возвращает результаты JSON или XML.
-
Процедура интеграции возвращает результаты в средство обработки внешних объектов Vlocity в промежуточном формате.
-
Обработчик Vlocity трансформирует результаты в полезные данные JSON и возвращает их абоненту.
Диаграмма ниже иллюстрирует процесс.
Преимущество этого метода доступа к внешним данным в том, что он полностью декларативный, не требует кода. Обратите внимание, что, хотя внешний объект функционирует как единый, процедура интеграции может набирать данные из нескольких источников.
Логика обработки запросов в процедуре интеграции
Чтобы обозначить тип операции, запрашиваемой для процедуры интеграции, средство обработки Vlocity устанавливает запись «Контекст» во вводе JSON. Чтобы определить действия для обработки каждого типа запроса в процедуре интеграции, установите поле условной формулы выполнения действий (например: Context = "QueryAll"). Следующий список описывает значения, переданные в узле Context для каждого типа запроса, с примерами SOQL и соответствующей полезной нагрузкой JSON, отправленной в процедуру интеграции.
QueryAll: ВЫБРАТЬ возврат всех строк (без условия WHERE)
Пример запроса: SELECT ExternalId FROM
myExternalObject;
Соответствующий ввод JSON: {"Context":"QueryAll"}
Запрос: «ВЫБРАТЬ» с условием WHERE
Пример запроса: SELECT ExternalId FROM
vlocity_dev__ContactsList__x WHERE ExternalId = '59f0f91a51280e0012c90584';
Соответствующий ввод JSON: {"Input":[{"ExternalId":"59f0f91a51280e0012c90584"}],"Context":"Query"}
Обновить и вставить: Обновите строку (если указан ExternalId) или создайте строку (если ExternalId пропущен).
Пример запроса (ОБНОВЛЕНИЕ): INSERT INTO myExternalObject (Name,
Mobile...) VALUES ("Davidov Spruth", "415-607-9865"...)
Соответствующий ввод JSON: {"Input":[{"Name":"Davidov
Spruth","Mobile":"415-607-9865","CreateDate":"2017-10-25T20:50:34.188Z","Work":"415-232-6365","ExternalId":"59f0f91a51280e0012c90584","Email":"davs@gmail.com"}],"Context":"Upsert"}
Удаление: Удалите указанные строки.
Пример запроса: DELETE FROM myExternalObject WHERE ExternalId
= '"'59f0f91a51280e0012c90584'"';
Соответствующий ввод JSON: {"Input":[{"ExternalId":"59f0f91a51280e0012c90584"}],"Context":"Query"}
Чтобы получить доступ к внешним данным для обработки запроса, определите действия HTTP, вызывающие конечные точки REST, выполняющие обязательные операции. Если результаты, возвращенные из конечной точки, требуют дальнейшей обработки, создайте и вызовите трансформации Data Mapper, выполняющие обязательные трансформации.
Формат результата запроса
Чтобы вернуть результаты из процедуры интеграции в запрос, структурируйте вывод JSON следующим образом:
ВЫБРАТЬ запросы: Возврат массива узлов с именами, соответствующими столбцам таблицы, заданным для внешнего объекта. Например:
[{
"Work": "415-232-6365",
"Mobile": "415-607-9865",
"Email": "davs@gmail.com",
"CreateDate": "2017-10-25T20:50:34.188Z",
"Name": "Davidov Spruth",
"ExternalId": "59f0f91a51280e0012c90584",
"ExternalLookup": "59f0f91a51280e0012c90584",
"AccountIndirectLookup": "123"
},
{
"Email": "mw@gmail.com",
"CreateDate": "2017-10-25T21:49:41.633Z",
"Name": "Mike Wormwood",
"ExternalId": "59f106f5e928870012f2b0a0",
"ExternalLookup": "59f0f91a51280e0012c90584",
"AccountIndirectLookup": "123"
},
{
"Work": "33-555-1212",
"Mobile": "33-879-0610",
"CreateDate": "2017-10-25T20:59:18.657Z",
"Name": "Tom Sor",
"ExternalId": "59f0fb26e928870012f2b09e",
"ExternalLookup": "59f0f91a51280e0012c90584",
"AccountIndirectLookup": "123"
}
]
ОБНОВЛЕНИЕ и УДАЛЕНИЕ запросов: Возврат внешнего кода объекта, затронутого узлом под именем "ExternalID" (например:
{
"ExternalId": "59efa135ba8e960012a3e8a5"
}
Если запрос не удается, верните узел под именем "errorMessage", содержащий сведения о возникшей проблеме.
- Внедрение внешнего объекта в процедуру интеграции
Для доступа к внешним данным можно определить процедуру интеграции, внедряющую внешний объект Salesforce.

