AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Blogs
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.06.2013, 17:11   #1  
Blog bot is offline
Blog bot
Участник
 
25,475 / 846 (79) +++++++
Регистрация: 28.10.2006
axforum blogs: Правила поиска дубликатов (Duplicate Detection Rules) CRM 2011. Автоматическая публикация правил
Источник: http://axforum.info/forums/blog.php?b=405
==============

В одном из своих прошлых постов Правила поиска дубликатов (Duplicate Detection Rules) CRM 2011. Как это работает и почему правила иногда автоматически становятся черновиками? я писал о проблеме, которая иногда портит жизнь администраторам систему. Суть в том, что проблема автоматической деактивации правил не неизлечима, так как является функционалом "by design" (так и задумано), однако можно попробовать автоматизировать повторную публикацию правил.

Сегодня мне надоело тренировать бдительность при обновлении решения и я решил написать плагин, который будет публиковать нужные мне правила при публикации всех настроек:
X++:
QueryExpression query = new QueryExpression { EntityName = "duplicaterule", ColumnSet = new ColumnSet("duplicateruleid"), Criteria = new FilterExpression { Conditions = { new ConditionExpression { AttributeName = "name", Operator = ConditionOperator.BeginsWith, Values = { "AlwaysOn:" } }, new ConditionExpression { AttributeName = "statuscode", Operator = ConditionOperator.Equal, Values = { 0 } } }, FilterOperator = LogicalOperator.And } }; EntityCollection rules = localContext.OrganizationService.RetrieveMultiple(query); ExecuteMultipleRequest publishRulesRequest = new ExecuteMultipleRequest { Settings = new ExecuteMultipleSettings { ContinueOnError = true, ReturnResponses = false }, Requests = new OrganizationRequestCollection() }; foreach (Entity rule in rules.Entities) { publishRulesRequest.Requests.Add(new PublishDuplicateRuleRequest() { DuplicateRuleId = rule.Id }); } ExecuteMultipleResponse publishRulesResponse = (ExecuteMultipleResponse)localContext.OrganizationService.Execute(publishRulesRequest); if (publishRulesResponse.IsFaulted == true) { String message = String.Format("{0} rules where not published. First error: {1}", publishRulesResponse.Responses.Count, publishRulesResponse.Responses[0].Fault.Message); throw new InvalidPluginExecutionException(message); }
В идеале плагин должен стартовать при установке и обновлении решения (solution), но, к сожалению, система не поддерживает это сообщение.

Как он работает? Плагин ищет правила в состоянии черновиков, название которых начинается с "AlwaysOn:" и публикует их. Его следует регистрировать на шаге пост обработки события "PublishAll" в асинхронном режиме. Результат работы можно увидеть в системном журнале:




Источник: http://axforum.info/forums/blog.php?b=405
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
За это сообщение автора поблагодарили: Prok (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 13 Blog bot Dynamics CRM: Blogs 0 27.03.2013 22:12
axforum blogs: Правила поиска дубликатов (Duplicate Detection Rules) CRM 2011. Как это работает и почему правила иногда автоматически становятся черновиками? Blog bot Dynamics CRM: Blogs 0 11.03.2013 20:11
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 12 Blog bot Dynamics CRM: Blogs 0 30.01.2013 01:11
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 10 Blog bot Dynamics CRM: Blogs 0 17.08.2012 03:27
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 4 Blog bot Dynamics CRM: Blogs 0 24.09.2011 01:16

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:43.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.