Support us

Microsoft Dynamics CRM 4: Update owner property

13 комментариев
Добавь в Google
Microsoft Dynamics CRM 4: Update owner property
skitched Статья изначально была написана для habrahabr и долго пылилась в Draft, так как не хватает кармы для ее опубликования. Решил, что опубликую ее здесь ;-) Работаю с CRM и столкнулся с такой тривиальной задачей, как обновить Owner свойтство у сущности. Со всеми сущностями я работаю через CRM4SDK и всю манипуляцию произвожу с помощью DynamicEntity. Например создать сущность с Owner, отличающимся от CurrentUser (учетная запись под которой работает мой application) не составляет труда (здесь правильнее сказать, так же как и привычная работа с CRM): //Создаем саму сущность
DynamicEntity entity = new DynamicEntity();
entity.Name = entityName; // это может быть например "contact" как в моем случае
entity.Properties = properties; // коллекция свойств, одно из которых OwnerProperty
//Создаем запрос
TargetCreateDynamic myTarget = new TargetCreateDynamic();
myTarget.Entity = entity;
CreateRequest create = new CreateRequest();
create.Target = myTarget;
//Выполняем собственно сам запрос
CreateResponse response = (CreateResponse)Service.Instance.Execute(create);
// ... ///

//Собственно создание OwnerProperty
Owner owner = new Owner("systemuser", id);
OwnerProperty ownerProperty = new OwnerProperty("ownerid", owner);
И это работает, но как только я пытаюсь обновить сущность, где одно из измененных полей это Owner, Service.Instance.Execute(new UpdateRequest { Target = new TargetUpdateDynamic { Entity = dynamicEntity } }); То все поля обновляются, а Owner каким был, таким и остается. Что я только не делал, и в дебаге смотрел каждую строчку, ошибку — все проходит без сучка и задоринки. Включил Trace — ничего, чтобы мне помогло узнать, почему не обновляется Owner. Проштудировал SDK и ни одного упоминаня, как менять owner на страницах работы с этим самим owner нет, отличного от того, как я написал выше. Оказывается!!! Для того чтобы сделать у существующей сущности обновление существующего Owner, существует специальный запрос на это дело и нужно создавать отдельный экземпляр класса SecurityPrincipal и посылать отдельный запрос, только для того, чтобы обновить одно поле!!! Вот она! Эта серебрянная пуля: public static void UpdateOwner(Guid ownerid, Guid entityid, string entityName)
        {
            SecurityPrincipal assignee = new SecurityPrincipal {PrincipalId = ownerid};
            TargetOwnedDynamic target = new TargetOwnedDynamic {EntityId = entityid, EntityName = entityName};
            AssignRequest assign = new AssignRequest {Assignee = assignee, Target = target};
            AssignResponse assignResponse = (AssignResponse)Service.Instance.Execute(assign);
        }
Надеюсь кому-нибудь сэкономлю кучу нервов и запросов в google.
Читайте также
TIOBE назвал «язык года»-2025
TIOBE назвал «язык года»-2025
TIOBE назвал «язык года»-2025
1 комментарий
Легко настроить под себя, но сложно разобраться. Какие плюсы и минусы у Notion
Легко настроить под себя, но сложно разобраться. Какие плюсы и минусы у Notion
Легко настроить под себя, но сложно разобраться. Какие плюсы и минусы у Notion
Если вы когда-нибудь пытались собрать все свои дела, идеи и проекты в одном месте, то, скорее всего, слышали о Notion. Этот сервис, который обещает стать вашим «вторым мозгом» — гибким, удобным и стильным.  Но недавно Notion ограничил доступ у пользователей из России. В Беларуси сервис пока что работает, но доверие к продукту подорвано. Разберусь на реальных примерах, что в Notion действительно круто, а что может вызвать вопросы.
Рассказываю, как использовать Notion для бизнеса. Внутри 24 бесплатных шаблона
Рассказываю, как использовать Notion для бизнеса. Внутри 24 бесплатных шаблона
Рассказываю, как использовать Notion для бизнеса. Внутри 24 бесплатных шаблона
Notion — инструмент, который может значительно облегчить ведение бизнеса. В этой статье я расскажу, как можно использовать шаблоны Notion, чтобы создать базу знаний компании, управлять HR-процессами, вести CRM-воронки, адаптировать персонал, создавать веб-сайты и планировать встречи.
1 комментарий
5 функций Notion, которые упростят вашу работу
5 функций Notion, которые упростят вашу работу
5 функций Notion, которые упростят вашу работу
Наверняка вы слышали про Notion, и, может быть, даже работаете в нём.  Делюсь с вами пятью фишками, которые прокачают вашу работу с программой. Все описанные функции доступны на бесплатном тарифе.
4 комментария

Хотите сообщить важную новость? Свяжитесь с редакцией через страницу контактов

Главные события и полезные ссылки в нашем Telegram-канале

Абмеркаванне
Каментуйце без абмежаванняў

Рэлацыраваліся? Цяпер вы можаце каментаваць без верыфікацыі акаўнта.

Каментарыяў пакуль няма.