Динамика WebAPI: обновить только измененные поля? - PullRequest
0 голосов
/ 28 июня 2019

Я пишу приложение, которое обращается к Dynamics 365 CE через webapi (v9.0 / 9.1).Мое приложение извлекает запись и отображает ее пользователю, пользователь может внести изменения и снова сохранить запись.

В этом случае мое приложение попытается сохранить изменения, используя вызов Patch для Dynamics WebAPI.

Существует ли встроенный способ обновления только тех полей, которые были изменены пользователем?Это в веб-приложении, где я не могу быть уверенным, что смогу правильно отслеживать изменения на стороне клиента, то есть мне нужно либо сделать еще один вызов с CRM, сравнить обе записи и отправить только обновленные значения в CRM или отправить всю запись в CRM.Второй случай, очевидно, гораздо более производительный и простой, но я не могу найти способ сообщить WebAPI только об обновлении измененных полей.

1 Ответ

1 голос
/ 28 июня 2019

Извлечение атрибутов записи с помощью веб-API и привязка значений к элементам управления пользовательского интерфейса, определение атрибутов dirty и обновление исходной системы только с этими грязными полями - это обычный цикл.

У вас есть проблема в определении грязных полей - это не фактическое отслеживание изменений.Попытайтесь идентифицировать их на стороне клиента, используя эффективный способ, прежде чем отправлять запрос на обновление сервера (PATCH).

Отправка значений целого поля записи независимо от его запятнанности не рекомендуется по различным причинам, таким как потеря следа аудита, конвейерная бизнес-логикав CRM плагин / рабочий процесс и т. д.

...