|
![]() |
#1 |
Участник
|
Попробуйте перезапросить account с минимальным набором полей.
Что-то вроде: X++: Entity account = (Entity)context.InputParameters["Target"]; Entity acc_for_update = m_service.Retrieve("account", (Guid)account["accountid"], new ColumnSet("accountid")); acc_for_update["ars_leadaccountant"] = new EntityReference(leadAccountant.LogicalName, leadAccountant.Id); acc_for_update["ars_officemanager"] = new EntityReference("systemuser", context.UserId); m_service.Update(acc_for_update); |
|
![]() |
#2 |
Участник
|
Да, такой вариант работает.
Вопрос в том, грамотно ли это делать доп запрос (а по сути получается 2), т.к. дальше идет функционал которому необходимы все поля? Нагрузки конечно с них на данном этапе практически нет и выполняются они мигом. |
|
![]() |
#3 |
Участник
|
Подозреваю, что неверно изменять Target. Надо попытаться заполнить Target на событии Pre. Если Вы его заполните, то Вам не нужен веб-сервис. Объект targer на протяжении всего процесса один и тот же.
Если Вы измените его на шаге pre, то изменения попаду в CRM. думаю что именно из-за попытки изменения target таким способом у Вас ошибка. |
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от g.Naukovych
![]() Подозреваю, что неверно изменять Target. Надо попытаться заполнить Target на событии Pre. Если Вы его заполните, то Вам не нужен веб-сервис. Объект targer на протяжении всего процесса один и тот же.
Если Вы измените его на шаге pre, то изменения попаду в CRM. думаю что именно из-за попытки изменения target таким способом у Вас ошибка. |
|
![]() |
#5 |
Участник
|
Спасибо. Я всегда ставлю)
|
|
![]() |
#6 |
Участник
|
Цитата:
Лучше сделать вот так: X++: Entity account = (Entity)context.InputParameters["Target"]; Entity acc_for_update = new Entity(); acc_for_update.LogicalName = "account"; acc_for_update.Id = (Guid)account["accountid"]; acc_for_update["ars_leadaccountant"] = new EntityReference(leadAccountant.LogicalName, leadAccountant.Id); acc_for_update["ars_officemanager"] = new EntityReference("systemuser", context.UserId); m_service.Update(acc_for_update); ![]() |
|
|
За это сообщение автора поблагодарили: a33ik (1), KP0H (1). |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|