CRM - SuppressDuplicateDetection для пользовательского объекта - PullRequest
0 голосов
/ 06 апреля 2020
Приложение

My mvc обновляет статус пользовательского объекта в CRM Dynamics 2015. У нас есть плагин, который запускается при обновлении определенного c статуса. Здесь мы сталкиваемся с проблемой параллелизма, когда два разных пользователя пытаются обновить одно и то же состояние в одно и то же время на объекте, статус обновляется дважды, и система запускает плагин дважды.

Я пытался использовать в своем коде MVC, но он выдает ошибку. Похоже, я не могу использовать его на пользовательском объекте

Portal.abcclaim obj= new Portal.abcclaim ();
                obj.Attributes["abcclaimreceiveddate"] = Convert.ToDateTime(DateTime.Now);
                obj.Attributes["abcdateclaimsubmitted"] = Convert.ToDateTime(DateTime.Now);
                obj.Attributes["abcmodifiedbycontact"] = new EntityReference(Portal.Contact.EntityLogicalName, loggedInId);
                obj.Attributes["abcstatus"] = new EntityReference(Portal.abc_status.EntityLogicalName, status);
                obj.Attributes["SuppressDuplicateDetection"] = false;
                obj.Id = objid;
                serviceProxy.Update(obj);

Есть ли другой способ справиться с этим?

1 Ответ

0 голосов
/ 08 апреля 2020

Вы должны использовать выделенный запрос, если вы хотите установить параметры запроса. В вашем случае это будет UpdateRequest (https://docs.microsoft.com/en-us/dotnet/api/microsoft.xrm.sdk.messages.updaterequest?view=dynamics-general-ce-9).

var updateRequest = new UpdateRequest()
{
    Target = obj,
};
updateRequest["SuppressDuplicateDetection"] = false;

var response = (UpdateResponse)osvc.Execute(updateRequest);

Но не похоже, что обнаружение дубликатов решит проблемы параллелизма. Вы должны проверить проверить, как использовать параметр ConcurrencyBehavior. Подробнее о параллелизме в Dynamics 365 вы можете прочитать в этой статье по MS: https://docs.microsoft.com/en-us/powerapps/developer/common-data-service/optimistic-concurrency

Надеюсь, это поможет.

...