<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Microsoft Dynamics CRM &#187; workflow</title>
	<atom:link href="http://ms-dynamics-crm.com.ua/tag/workflow/feed/" rel="self" type="application/rss+xml" />
	<link>http://ms-dynamics-crm.com.ua</link>
	<description>Все о Microsoft Dynamics CRM</description>
	<lastBuildDate>Wed, 25 Jan 2012 21:20:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Автонумератор для Microsoft Dynamics CRM 4.0. Workflow</title>
		<link>http://ms-dynamics-crm.com.ua/2009/07/10/autonumber-for-ms-crm-4-workflow/</link>
		<comments>http://ms-dynamics-crm.com.ua/2009/07/10/autonumber-for-ms-crm-4-workflow/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 08:11:19 +0000</pubDate>
		<dc:creator>Костя Афендиков</dc:creator>
				<category><![CDATA[ms crm 4.0]]></category>
		<category><![CDATA[autonumber]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://ms-dynamics-crm.com.ua/?p=839</guid>
		<description><![CDATA[Рано или поздно, но все сталкиваются с задачей создания автонумерации для своих объектов. По умолчанию в Microsoft Dynamics CRM 4.0 присутствует автонумерация для семи системных объектов (Контракты, Обращения, Статьи, Коммерческие предложения, Заказы, Счета, Кампании) и, к сожалению, для других сущностей такого нужного инструмента нет. В этой статье я расскажу вам как создать такой автонумератор для [...]]]></description>
			<content:encoded><![CDATA[<p>Рано или поздно, но все сталкиваются с задачей создания <strong>автонумерации </strong>для своих объектов. По умолчанию в<strong> Microsoft Dynamics CRM 4.0</strong> присутствует автонумерация для семи системных объектов (Контракты, Обращения, Статьи, Коммерческие предложения, Заказы, Счета, Кампании) и, к сожалению, для других сущностей такого нужного инструмента нет.<br />
В этой статье я расскажу вам как создать такой автонумератор для любой сущности с помощью встроенного инструмента MS CRM – <strong>workflow (бизнес-процесс)</strong>.</p>
<p><strong>Идея: </strong>создать бизнес-процесс, который будет срабатывать на событие «создание записи» для нужной сущности, в определенное поле устанавливать уникальное значение счетчика, т.е. присваивать уникальный номер.<br />
<span id="more-839"></span></p>
<h3><strong>Реализация автонумератора:</strong></h3>
<ol>
<li> Создаем новую сущность<strong> Auto Number &#8211; new_autonumber</strong>. В этой сущности у нас будет храниться счетчик для одной из сущностей.</li>
<li>Добавляем новый атрибут типа int – <strong>new_nextnumber</strong>. Наш счетчик объектов, точнее следующий номер записи.</li>
<li>Создаем новое отношение<em> </em><strong>типа 1..N</strong>, где основной объект – это наша сущность Auto Number, а связанный объект – выбираем ту сущность, для которой нам нужен счетчик. В моей случае – это <em>кастомная сущность «Товарные издержки»</em>.</li>
<li>Размещаем полученную связь (lookup) на нашей сущности и публикуем изменения.</li>
</ol>
<p>Создаем новую записи счетчика (ИЗД) типа Auto Number, в которой указываем название счетчика сущности для себя и его следующее значение.</p>
<h3>Теперь перейдет непосредственно к созданию бизнес-процесса – workflow</h3>
<ol>
<li>Параметры – Бизнесс-процесс – Создать</li>
<li>Название &#8211; «Автонумератор Товарной издержки», объект – наша сущность «Товарная издержка», Ок.</li>
<li>Область применения – <strong>Организация</strong>, т.к. я хочу чтобы объекты, созданные пользователями из организации автоматически нумеровались, а не только мои <img src='http://ms-dynamics-crm.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>Условие запуска – <strong>создание</strong></li>
<li>Теперь добавляем новые шаги (все будут на <strong>Обновить</strong>)
<ol>
<li><strong>Обновить: Товарная издержка</strong> и в нашей связи  (лукапе) выбираем запись счетчика для издержки<img class="alignnone size-full wp-image-846" title="autonumber-workflow32" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/07/autonumber-workflow32.jpg" alt="autonumber-workflow32" width="499" height="195" /></li>
<li> Новый шаг. <strong>Обновить: Товарная издержка</strong>. В поле test рядом с динамическим значением я добавил и просто статический текст: «ИЗД», вот такой самодельный префикс получился <img src='http://ms-dynamics-crm.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Правда, в начале, столкнулся с проблемой: при добавлении статического текста рядом с динамическим все поле становилось просто статическим. Решение было найдено: <a title="error-wf1399-workflow" href="http://ms-dynamics-crm.com.ua/2009/06/26/error-wf1399-workflow-compilation-failed/">Ошибка WF1399 Workflow compilation failed<br />
<img class="alignnone size-full wp-image-848" title="autonumber-workflow4" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/07/autonumber-workflow4.jpg" alt="autonumber-workflow4" width="500" height="267" /></a></li>
<li>Добавляем последний шаг. <strong>Обновить: autonumber</strong> (выбираем из связанных объектов сущность автонумератора). Устанавливаем в наше поле Next number (тип int) динамическое значение увелечивающееся на 1. Выбираем оператор <strong>Шаг по</strong>, вставляем в поле &laquo;значение по умолчанию&raquo; 1 &#8211; ОК.</li>
<p><img class="alignnone size-full wp-image-850" title="autonumber-workflow51" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/07/autonumber-workflow51.jpg" alt="autonumber-workflow51" width="500" height="316" /></ol>
</li>
</ol>
<h3>Общий вид бизнес-процесса автонумератора</h3>
<h3><img class="alignnone size-full wp-image-851" title="autonumber-workflow2" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/07/autonumber-workflow2.jpg" alt="autonumber-workflow2" width="500" height="307" /></h3>
<p><strong>Сохраняем </strong>и <strong>публикуем </strong>наш процесс и проверяем его работоспособность <img src='http://ms-dynamics-crm.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Напомню, что workflow работают в асинхронном режиме и требуется некоторое время после создания записи для того, чтобы присвоился номер. Кстати, после синхронизации записей из Outlook номера будут созданы автоматически.</p>
<p>В ближайшие дни опишу вариант автонумерации для любой сущности с помощью plug-in.</p>
<p><strong>UPD: </strong>пример &laquo;<a href="http://ms-dynamics-crm.com.ua/2009/08/12/autonumber-for-ms-crm-4-plug-in/">Автонумератора для любой сущности с помощью Plug-in</a>&laquo;</p>
]]></content:encoded>
			<wfw:commentRss>http://ms-dynamics-crm.com.ua/2009/07/10/autonumber-for-ms-crm-4-workflow/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ошибка WF1399 Workflow compilation failed</title>
		<link>http://ms-dynamics-crm.com.ua/2009/06/26/error-wf1399-workflow-compilation-failed/</link>
		<comments>http://ms-dynamics-crm.com.ua/2009/06/26/error-wf1399-workflow-compilation-failed/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 06:51:29 +0000</pubDate>
		<dc:creator>Костя Афендиков</dc:creator>
				<category><![CDATA[ms crm 4.0]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[web.config]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://ms-dynamics-crm.com.ua/?p=808</guid>
		<description><![CDATA[Настроил тестовое окружение для работы с Microsoft Dynamics CRM 4.0 (не ставил ни одного роллапа). При работе с механизмом Workflow в MS CRM 4.0 столкнулся с необъяснимым багом. Все вы знаете, что текстовое поле можно форматировать под себя, т.е. выводить в нем статическое и динамическое значения. (поле test) Все вроде бы логично и не должно [...]]]></description>
			<content:encoded><![CDATA[<p>Настроил тестовое окружение для работы с <strong>Microsoft Dynamics CRM 4.0</strong> (не ставил ни одного роллапа).  При работе с механизмом <strong>Workflow </strong>в MS CRM 4.0 столкнулся с  необъяснимым багом. Все вы знаете, что текстовое поле можно форматировать под себя, т.е. выводить в нем статическое и динамическое значения.  (поле test)</p>
<p><img class="alignnone size-full wp-image-809" title="wf1399-1" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/06/wf1399-1.jpg" alt="wf1399-1" width="765" height="42" /></p>
<p>Все вроде бы логично и не должно вызывать какие-либо исключения, но при публикации данного бизнес-процесса, мое поле test переставало содержать динамического значение, и становилось полностью статическим:</p>
<p><img class="alignnone size-full wp-image-810" title="wf1399-2" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/06/wf1399-2.jpg" alt="wf1399-2" width="758" height="39" /></p>
<p><span id="more-808"></span></p>
<p>Установил <a title="rollup 4 для ms crm 4.0" href="http://ms-dynamics-crm.com.ua/2009/05/08/rollup-4-for-microsoft-dynamics-crm-40/">Rollup 4 для MS CRM 4.0</a> , но это не помогло, к тому же публиковать этот бизнес-процесс стало невозможно, на что я получал ошибку <strong>«Произошла ошибка во время создания бизнес-правила. Попробуйте сохранить бизнес-правило еще раз»</strong>. Пришлось смотреть трассировку, которая выдала мне следующее:</p>
<blockquote><p>Error: Выдано исключение типа &laquo;System.Web.HttpUnhandledException&raquo;.<br />
Error Number: 0&#215;80045001<br />
Error Message: Workflow compilation failed:<br />
WF1399: Сбой при проверке Activity &laquo;UpdateStep3_policy&raquo;: Недопустимое значение свойства &laquo;RuleSetReference&raquo;. Недопустимый набор правил. Обнаружены ошибки при проверке правила &laquo;main&raquo;. Тип System.Globalization.CultureInfo не помечен как разрешенный в файле конфигурации приложения</p></blockquote>
<p>Все указывало на то, что чего-то не хватает в файле <strong>web.config</strong>.</p>
<p>Оказывается, что при установке роллапов иногда меняется сам файл web.config, но в моем случае он был не до конца изменен, а именно не хватало следующей строки:</p>
<p><strong><span lang="EN-US">&lt;authorizedType Assembly=&raquo;mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243; Namespace=&raquo;System.Globalization&raquo; TypeName=&raquo;CultureInfo&raquo; Authorized=&raquo;True&raquo;/&gt;</span></strong></p>
<p>После внесения этих изменений, проблема разрешилась.<br />
Итак, краткая инструкция.</p>
<ol>
<li> Найдите файл Web.config
<ol>
<li>На сервере: &lt;системный диск&gt;:\inetpub\wwwroot</li>
<li>На клиенте, по умолчанию: &lt;системный диск e&gt;:\Program Files\ Microsoft CRM\Client\res\Web</li>
</ol>
</li>
<li> Обязательно сделайте резервную копию существующего файла Web.config</li>
<li>Откройте файл в любом текстовом редакторе.</li>
<li>Внесите изменения .</li>
<p><span lang="EN-US">&lt;configuration&gt;</span></p>
<p><span lang="EN-US"> <span> </span>&lt;System.Workflow.ComponentModel.WorkflowCompiler&gt;</span></p>
<p><span lang="EN-US">&lt;authorizedTypes&gt;</span></p>
<p><span lang="EN-US"><span> <strong> </strong></span><strong>&lt;authorizedType Assembly=&raquo;mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243; Namespace=&raquo;System.Globalization&raquo; TypeName=&raquo;CultureInfo&raquo; Authorized=&raquo;True&raquo;/&gt;</strong></span></p>
<p><span lang="EN-US"><span> </span>&lt;/authorizedTypes&gt;</span></p>
<p><span lang="EN-US"><span> </span>&lt;/System.Workflow.ComponentModel.WorkflowCompiler&gt;</span></p>
<p>&lt;/configuration&gt;</p>
<li> Сохраните файл, делаем рестарт IIS (iisreset) и запускайте MS CRM 4.0</li>
</ol>
<p>В дополнение: <a href="http://support.microsoft.com/default.aspx/kb/968793"> Ручное изменение web.config </a></p>
]]></content:encoded>
			<wfw:commentRss>http://ms-dynamics-crm.com.ua/2009/06/26/error-wf1399-workflow-compilation-failed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

