<< Click to Display Table of Contents >> Интеграция с внешними системами > Запросы к сервису интеграции Изменение сущностей |
Чтобы изменить сущность в Directum RX, используйте PATCH-запрос.
PATCH-запрос строится так же, как POST-запрос при создании сущности. Особенности:
•используйте URL в формате:
{Протокол https или http}://{имя сервера, на котором установлен сервис интеграции}/{имя сервиса интеграции}/odata/{Интерфейс типа сущности во множественном числе}(ИД)
Пример:
https://DirectumRXServer.com/Integration/odata/IEmployees(97)
•добавьте дополнительный заголовок Return со значением representation, чтобы в теле ответа получить созданную сущность. Если заголовок не указан или указан со значением minimal, то сущности в ответе не будет;
•в теле запроса укажите список обновляемых свойств и их значения. Обратите внимание на особенности обновления свойств с типом:
•Бинарные данные в хранилище, Бинарные данные, Картинка
В ответе сервис интеграции вернет код:
•200 – успешное выполнение запроса, в котором был указан заголовок Return со значением representation или параметр $expand. В теле ответа будет измененная сущность;
•204 – успешное выполнение запроса, в котором не был указан заголовок Return со значением representation или параметр $expand. В теле ответа не будет измененной сущности;
•400 – сущность обновить не удалось. В теле ответа будет описание ошибки.
Пример
У сотрудника с идентификатором 97 обновить свойства Телефон, Примечание и Email:
PATCH /Integration/odata/IEmployees(97) HTTP/1.1
Host: DirectumRXServer.com
Username: {Логин}
Password: {Пароль}
Return: representation
Content-Type: application/json
Accept: application/json
{
"Phone": "55-45-55",
"Note": "На испытательном сроке 2 месяца",
"Email": "Ivanov_IM@companymail.ru"
}
Также запросы можно отправлять с помощью приложения, например консольного. Пример аналогичного запроса, написанного на языке C# с использованием библиотеки Simple.OData.Client:
// URL сервиса интеграции.
private const string IntegrationServiceUrl = "https://DirectumRXServer.com/Integration/odata/";
// Логин для Basic-аутентификации.
private const string Login = "IntegrationUser";
// Пароль для Basic-аутентификации.
private const string Password = "11111";
// Настройки Simple OData Client: добавление ко всем запросам URL сервиса и
// заголовка с данными аутентификации.
var odataClientSettings = new ODataClientSettings(new Uri(IntegrationServiceUrl));
odataClientSettings.BeforeRequest += (HttpRequestMessage message) =>
{
var authenticationHeaderValue = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{Login}:{Password}"));
message.Headers.Add("Authorization", "Basic " + authenticationHeaderValue);
};
var odataClient = new ODataClient(odataClientSettings);
// Создание запроса.
var modifiedEmployee = await odataClient.For("IEmployees").Key(97)
.Set(new { Phone = "55-45-55", Note = "На испытательном сроке 2 месяца", Email = "Ivanov_IM@companymail.ru"} )
.UpdateEntryAsync();
© Компания Directum, 2024 |