Обновите только некоторые поля в сущности Microsoft Dynamics - PullRequest
1 голос
/ 09 января 2020

Я занимаюсь разработкой программного обеспечения на языке C#, который взаимодействует с Microsoft Dynamics посредством обращений в службу организации.

Мне нужно обновить только некоторые поля объекта, но когда я вызываю операцию обновления, Microsoft Dynamics запускает масштабное обновление всех полей объекта. Мне не нужно это масштабное обновление, мне нужно обновить только 2 или 3 поля.

Это мой код:

//reading account
Entity account = <reading entity with a call to organizationService>
//update fields
account["fieldName1"] = newValue;
account["fieldName2"] = newValue2;
//call to update entity
organizationService.Update(account);

Как мне решить эту проблему?

Ответы [ 2 ]

1 голос
/ 09 января 2020

Мы используем раннее связывание здесь, и мы также принимаем, что весь объект будет обновлен, но из памяти: попробуйте это

var accountToBeSentToDynamics = new Entity("account");
accountToBeSentToDynamics.Id = accountToBeUpdated.Id;
accountToBeSentToDynamics["name"] = "Only This Field will be updated";

Мы также добавим их в список вставок или обновлений и гриппа sh их партиями размером 1000 или менее для ускорения производительности

0 голосов
/ 14 февраля 2020

Это ваша проблема.

Entity account = <reading entity with a call to organizationService>;

Любые атрибуты, полученные в ходе вызова службы org, будут присутствовать в вашем объекте "account" и впоследствии повторно отправляться в CRM в сообщении об обновлении.

Попробуйте что-то вроде этого:

Entity retrieved = <reading entity with a call to organizationService>;
Entity account = new Entity("account", retrieved.Id);
//update fields
account["fieldName1"] = newValue;
account["fieldName2"] = newValue2;
//call to update entity
organizationService.Update(account);

Таким образом, вы гарантированно обновите только те атрибуты, которые вы добавили в объект, в CRM.

Наконец, рекомендуется извлекать только те атрибуты, которые необходимы для выполнения бизнес-логики c при выполнении Retrieve или RetrieveMultiple. Дополнительные атрибуты снизят производительность запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...