Обновление пользовательских объектов в MS CRM 4.0 через пользовательский рабочий процесс - PullRequest
2 голосов
/ 28 января 2009

Я создал пользовательский объект в MS CRM 4.0 и пытаюсь обновить несколько атрибутов через пользовательский поток в .Net. Я прочитал несколько форумов и постов в блогах и все еще не понимаю, как получить доступ к пользовательским объектам и обновить некоторые их атрибуты.

Я создал пользовательскую сущность, чтобы заменить то, как CRM делал выделения, поскольку в нашей компании есть некоторые конкретные бизнес-правила, которых не выполнял CRM. Когда задача завершена в случае инцидента, я хочу обновить атрибут в пользовательском объекте с продолжительностью задачи. Любая помощь будет принята с благодарностью.

Спасибо

Ответы [ 4 ]

5 голосов
/ 29 января 2009

При использовании веб-службы CRM в настраиваемом рабочем процессе вам необходимо использовать объекты DynamicEntity. Веб-сервис контекста рабочего процесса - это просто ICrmService, поэтому он не знает о ваших конкретных настройках. Вот хороший пример: http://www.stunnware.com/crm2/topic.aspx?id=CustomWorkflowActivity

Я полагаю, вы также можете добавить веб-службы CRM в качестве веб-ссылки на ваш проект рабочего процесса. Тогда у вас будут строгие типы объектов для ваших пользовательских объектов. Я никогда не делал этого для своих пользовательских рабочих процессов, но он работает для других пользовательских приложений, обращающихся к CRM.

1 голос
/ 04 июля 2011

Выбор Dynamic Entities вместо WSDL всегда является лучшим выбором. Когда вы разрабатываете фрагмент кода, вы более гибки в своих классах. Вы можете использовать свое программное обеспечение в разных контекстах для разных систем. Вот почему были изобретены Динамические Сущности.

0 голосов
/ 26 марта 2009

Возможно, что вы на самом деле имеете в виду под Custom Workflow Activity ? Это предполагает написание собственного класса .NET для добавления функциональности в стандартную CRM WF в форме новых типов step . Если то, что вы хотите сделать, это просто обновить атрибут, то вам это на самом деле не нужно, даже если он находится на пользовательском объекте. Шаг Обновить запись делает именно это и позволяет указывать динамические значения (поступающие от других объектов).

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

Daniel

0 голосов
/ 05 марта 2009

Это очень легко, и вы не должны использовать DynamicEntity. Вам нужно перейти в Настройки -> Настройка -> Загрузить WSDL. Возьми wsdl и используй его в своем проекте. Теперь у вас есть все ваши пользовательские объекты строго типизированы. Все, что вам нужно сделать, это написать что-то вроде этого:

Guid entityId = getEntityId();
new_yourCustomEntity entity = new new_yourCustomEntity();
entity.new_yourCustomEntityid = entityId;
entity.new_customProperty = "value";
CrmService crmService = new CrmService();
crmService.Update(entity);
...