<?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; autonumber</title>
	<atom:link href="http://ms-dynamics-crm.com.ua/tag/autonumber/feed/" rel="self" type="application/rss+xml" />
	<link>http://ms-dynamics-crm.com.ua</link>
	<description>Все о Microsoft Dynamics CRM</description>
	<lastBuildDate>Fri, 30 Jul 2010 08:18:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Автонумерация. Еще разок</title>
		<link>http://ms-dynamics-crm.com.ua/2010/01/10/plugin-autonumber-2/</link>
		<comments>http://ms-dynamics-crm.com.ua/2010/01/10/plugin-autonumber-2/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 18:52:20 +0000</pubDate>
		<dc:creator>Костя Афендиков</dc:creator>
				<category><![CDATA[ms crm 4.0]]></category>
		<category><![CDATA[autonumber]]></category>
		<category><![CDATA[plug-in]]></category>

		<guid isPermaLink="false">http://ms-dynamics-crm.com.ua/?p=1100</guid>
		<description><![CDATA[Раньше уже рассматривал возможность создания автонумерации для кастомных сущностей в Microsoft Dynamics CRM 4.0 сегодня приложу просто еще один вариант автонумерации для одной сущности, реализуемой с помощью плагина.
Задача: необходимо реализовать автонумерацию сущности «Лист согласования», создаваемую из сущности «Договор» со следующем форматом: ГГММДД – ХХХ, где ГГММДД &#8211; Дата создания записи, а ХХХ – количество созданных [...]]]></description>
			<content:encoded><![CDATA[<p>Раньше уже рассматривал возможность <a title="автонумерация в MS CRM 4.0" href="http://ms-dynamics-crm.com.ua/tag/autonumber/">создания автонумерации для кастомных сущностей в Microsoft Dynamics CRM 4.0</a> сегодня приложу просто еще один вариант автонумерации для одной сущности, реализуемой с помощью плагина.</p>
<p><strong>Задача</strong>: необходимо реализовать автонумерацию сущности «Лист согласования», создаваемую из сущности «Договор» со следующем форматом: <strong>ГГММДД – ХХХ</strong>, где ГГММДД &#8211; Дата создания записи, а ХХХ – количество созданных листов согласования по этому договору + 1.</p>
<p><span id="more-1100"></span></p>
<h2>Основной код плагина автонумерации:</h2>
<pre class="brush: csharp;">

ICrmService crmService = context.CreateCrmService(true);

//Если лист согласования
if (entity.Name == &quot;new_list_soglasovaniya&quot;)
{

//Если договор Договор (создается из договора)

if (entity.Properties.Contains(&quot;new_regardingobjectid&quot;))

{

//получаю список листов согласования, по текущему договору

ColumnSet cs = new ColumnSet();

cs.Attributes.AddRange(new string[] { &quot;createdon&quot; });

ConditionExpression conditionId = new ConditionExpression();

conditionId.AttributeName = &quot;new_regardingobjectid&quot;;

conditionId.Operator = ConditionOperator.Equal;

conditionId.Values = new string[]{ ((Lookup)entity.Properties[&quot;new_regardingobjectid&quot;]).Value.ToString()};

FilterExpression filter = new FilterExpression();

filter.FilterOperator = LogicalOperator.And;

filter.Conditions.Add(conditionId);

QueryExpression query = new QueryExpression();

query.EntityName = &quot;new_list_soglasovaniya&quot;;

query.ColumnSet = cs;

query.Criteria = filter;

RetrieveMultipleRequest retrieve = new RetrieveMultipleRequest();

retrieve.Query = query;

retrieve.ReturnDynamicEntities = true;

RetrieveMultipleResponse retrieved = (RetrieveMultipleResponse)crmService.Execute(retrieve);

string countLists;

//номер текущей записи

countLists = (retrieved.BusinessEntityCollection.BusinessEntities.Count + 1).ToString();

//формирую вывод

while (countLists.Length &amp;lt; 3)

{

countLists = &quot;0&quot; + countLists;

}

string new_number;

new_number = DateTime.Now.Year.ToString().Substring(2, 2) + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + &quot;-&quot; + countLists.ToString();

//присваиваю полю new_number мой полученный номер

entity.Properties.Add(new StringProperty(&quot;new_number&quot;, new_number));

}
</pre>
<p><strong>Данные для регистрации плагина</strong></p>
<p>Register New Step:</p>
<ul>
<li>Message:	<strong>Create</strong></li>
<li>Primary Entity:	<strong>new_list_soglasovaniya</strong></li>
<li>Execution order:	<strong>1</strong></li>
<li>Eventing Pipeline Stage of Execution:	<strong>Pre</strong></li>
</ul>
<p>Полезные ссылки:<a title="плагин для MS CRM 4.0" href="http://ms-dynamics-crm.com.ua/2009/03/10/plug-in-ms-crm-4/"></a></p>
<ul>
<li><a title="плагин для MS CRM 4.0" href="http://ms-dynamics-crm.com.ua/2009/03/10/plug-in-ms-crm-4/">Расширяем функциональность MS CRM 4.0 с помощью Plug-in</a></li>
<li><a title="автонумерация в MS CRM 4.0" href="http://ms-dynamics-crm.com.ua/2009/08/12/autonumber-for-ms-crm-4-plug-in/">Автонумератор для Microsoft Dynamics CRM 4.0. Plug-in</a></li>
<li><a title="Услуги по программированию plug-ins" href="http://ms-dynamics-crm.com.ua/services/" target="_blank">Услуги по программированию для Microsoft Dynamics CRM</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ms-dynamics-crm.com.ua/2010/01/10/plugin-autonumber-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Автонумератор для Microsoft Dynamics CRM 4.0. Plug-in</title>
		<link>http://ms-dynamics-crm.com.ua/2009/08/12/autonumber-for-ms-crm-4-plug-in/</link>
		<comments>http://ms-dynamics-crm.com.ua/2009/08/12/autonumber-for-ms-crm-4-plug-in/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 10:51:38 +0000</pubDate>
		<dc:creator>Костя Афендиков</dc:creator>
				<category><![CDATA[ms crm 4.0]]></category>
		<category><![CDATA[autonumber]]></category>
		<category><![CDATA[javascript in ms crm]]></category>
		<category><![CDATA[ms crm add-ons]]></category>
		<category><![CDATA[plug-in]]></category>

		<guid isPermaLink="false">http://ms-dynamics-crm.com.ua/?p=1029</guid>
		<description><![CDATA[В одном из постов я описывал как создать Автонумератор для Microsoft Dynamics CRM 4.0 с помощью механизма Workflow . Этот пример был больше ознакомительным с механизмом Workflow и использовать его на практике вызовет ряд неудобств. Сегодня я опишу как создать автонумерацию для любой сущности с помощью плагина. За основу был взят вариант http://www.codeplex.com/crmnumbering/ и немного [...]]]></description>
			<content:encoded><![CDATA[<p>В одном из постов я описывал как создать <a href="http://ms-dynamics-crm.com.ua/2009/07/10/autonumber-for-ms-crm-4-workflow/">Автонумератор для Microsoft Dynamics CRM 4.0 с помощью механизма Workflow </a>. Этот пример был больше ознакомительным с механизмом Workflow и использовать его на практике вызовет ряд неудобств. Сегодня я опишу как создать автонумерацию для любой сущности с помощью плагина. За основу был взят вариант http://www.codeplex.com/crmnumbering/ и немного модернизированный &laquo;под себя&raquo; с реализованной возможностью задавать префикс для генерируемого номера и более гибкой возможность настройки <img src='http://ms-dynamics-crm.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<span id="more-1029"></span></p>
<ol>
<li>Скачайте необходимые файлы: <a href="http://ms-dynamics-crm.com.ua/download/customizations-autonumber.zip">кастомизацию сущности</a> и <a href="http://ms-dynamics-crm.com.ua/download/AKAutoNumber.zip">сам плагин</a></li>
<li>Импортируем файл кастомизации. У вас создаться новая сущность <strong>Автонумератор (do_universalnumber)</strong></li>
<li>Опубликуем данную сущность</li>
<li>Создаем новую запись нашего Автонумератора.
<ol> <img class="alignnone size-full wp-image-1033" title="create autonumber" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/08/createautonumber1.png" alt="create autonumber" width="520" height="314" /></ol>
</li>
<p><strong>Пример:</strong> В поле Сущность выбираю &laquo;Контакт&raquo; -&gt; Жмем &laquo;Сохранить&raquo; -&gt; в поле &laquo;Атрибут&raquo; выбираю firstname -&gt; Указываю необходимый префикс и в поле &laquo;Счетчик&raquo; указываю начальное значение счетчика. -&gt; &laquo;Сохранить и закрыть&raquo;<br />
<strong>Примечание: </strong>т.к. в поле &laquo;Атрибут&raquo; необходимо выбирать только атрибуты типа <strong>nvarchar</strong></p>
<li>Регистрирую плагин <strong>AKAutoNumber.dll</strong><br />
<strong>Message</strong>: Create<br />
<strong>Primary Entity:</strong> contact<br />
<strong>Stage</strong>: Pre</p>
<p><img class="alignnone size-full wp-image-1034" title="plugin-register" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/08/plugin-register.png" alt="plugin-register" width="520" height="282" /></li>
<li> Тестируем.<br />
<img class="alignnone size-full wp-image-1038" title="result" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/08/result.png" alt="result" width="520" height="314" /></li>
</ol>
<p>Для того, чтобы создать автонумератор для другой сущности повторяем шаги <strong>4-5</strong></p>
<p><a href="http://ms-dynamics-crm.com.ua/download/customizations-autonumber.zip ">Вы можете скачать кастомизацию сущности</a> и <a href="http://ms-dynamics-crm.com.ua/download/AKAutoNumber.zip">сам плагин</a>. Улучшение кода приветствуется, сообщайте в комментариях <img src='http://ms-dynamics-crm.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em>Использовались: </em></p>
<p>http://www.codeplex.com/crmnumbering/ &#8211; основа плагина</p>
<p>http://a33ik.blogspot.com/ &#8211; примеры для создания динамического пиклиста сущностей</p>
<p><strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://ms-dynamics-crm.com.ua/2009/08/12/autonumber-for-ms-crm-4-plug-in/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<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>
	</channel>
</rss>
