devby 17 лет! Вспоминаем переходный возраст и делимся виш-листом
Support us

Microsoft Dynamics CRM 4: Update owner property

13 комментариев
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.
Читайте также
«”Запустим стартап и станем миллиардерами” — иллюзия». Житель Витебска рассказывает про свой ИТ-бизнес
«”Запустим стартап и станем миллиардерами” — иллюзия». Житель Витебска рассказывает про свой ИТ-бизнес
«”Запустим стартап и станем миллиардерами” — иллюзия». Житель Витебска рассказывает про свой ИТ-бизнес
Наш основной проект, CRM-система Stick CRM, существует уже с 2015 года. Все началось со стартап-школы в Витебске — она так и называлась, «Стартап-школа». Там прошёл наш первый питч, мы победили в нескольких конкурсах. Хотя победы мало что дали, они привлекли к нам первое внимание. Расскажу, почему мы решили ориентироваться на беларусский рынок, почему стартапы это не всегда про «много денег» и как развивать проект на протяжении 10 лет вдвоём. 
11 комментариев
Легко настроить под себя, но сложно разобраться. Какие плюсы и минусы у 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-бот

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

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.