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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.07.2009, 14:05   #1  
Blog bot is offline
Blog bot
Участник
 
25,643 / 848 (80) +++++++
Регистрация: 28.10.2006
Все о Microsoft Dynamics CRM: Автонумератор для Microsoft Dynamics CRM 4.0. Workflow
Источник: http://ms-dynamics-crm.com.ua/2009/0...rm-4-workflow/
==============

Рано или поздно, но все сталкиваются с задачей создания автонумерации для своих объектов. По умолчанию в Microsoft Dynamics CRM 4.0 присутствует автонумерация для семи системных объектов (Контракты, Обращения, Статьи, Коммерческие предложения, Заказы, Счета, Кампании) и, к сожалению, для других сущностей такого нужного инструмента нет.
В этой статье я расскажу вам как создать такой автонумератор для любой сущности с помощью встроенного инструмента MS CRM – workflow (бизнес-процесс).

Идея: создать бизнес-процесс, который будет срабатывать на событие «создание записи» для нужной сущности, в определенное поле устанавливать уникальное значение счетчика, т.е. присваивать уникальный номер.


Реализация автонумератора:
  1. Создаем новую сущность Auto Number - new_autonumber. В этой сущности у нас будет храниться счетчик для одной из сущностей.
  2. Добавляем новый атрибут типа int – new_nextnumber. Наш счетчик объектов, точнее следующий номер записи.
  3. Создаем новое отношениетипа 1..N, где основной объект – это наша сущность Auto Number, а связанный объект – выбираем ту сущность, для которой нам нужен счетчик. В моей случае – это кастомная сущность «Товарные издержки».
  4. Размещаем полученную связь (lookup) на нашей сущности и публикуем изменения.
Создаем новую записи счетчика (ИЗД) типа Auto Number, в которой указываем название счетчика сущности для себя и его следующее значение.

Теперь перейдет непосредственно к созданию бизнес-процесса – workflow
  1. Параметры – Бизнесс-процесс – Создать
  2. Название - «Автонумератор Товарной издержки», объект – наша сущность «Товарная издержка», Ок.
  3. Область применения – Организация, т.к. я хочу чтобы объекты, созданные пользователями из организации автоматически нумеровались, а не только мои
  4. Условие запуска – создание
  5. Теперь добавляем новые шаги (все будут на Обновить)
    1. Обновить: Товарная издержка и в нашей связи (лукапе) выбираем запись счетчика для издержки
    2. Новый шаг. Обновить: Товарная издержка. В поле test рядом с динамическим значением я добавил и просто статический текст: «ИЗД», вот такой самодельный префикс получился :). Правда, в начале, столкнулся с проблемой: при добавлении статического текста рядом с динамическим все поле становилось просто статическим. Решение было найдено: Ошибка WF1399 Workflow compilation failed
    3. Добавляем последний шаг. Обновить: autonumber (выбираем из связанных объектов сущность автонумератора). Устанавливаем в наше поле Next number (тип int) динамическое значение увелечивающееся на 1. Выбираем оператор Шаг по, вставляем в поле “значение по умолчанию” 1 - ОК.
Общий вид бизнес-процесса автонумератора



Сохраняем и публикуем наш процесс и проверяем его работоспособность

Напомню, что workflow работают в асинхронном режиме и требуется некоторое время после создания записи для того, чтобы присвоился номер. Кстати, после синхронизации записей из Outlook номера будут созданы автоматически.

В ближайшие дни опишу вариант автонумерации для любой сущности с помощью plug-in.



Источник: http://ms-dynamics-crm.com.ua/2009/0...rm-4-workflow/
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
Старый 21.07.2009, 23:27   #2  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Опубликовал сей пост исключительно с целью назидания! Дети! Никогда так не делайте! Афтар собрал все антипаттерны которые смог! На форуме уже не раз перетирали тему автонумерации, так что есть куда более адекватные примеры.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 22.07.2009, 10:43   #3  
Bondonello is offline
Bondonello
Kostya Afendikov
Аватар для Bondonello
MCBMSS
Лучший по профессии 2009
 
510 / 106 (5) +++++
Регистрация: 06.06.2008
Адрес: Украина
"Афтар" сего поста - это я. К сожалению, Microsoft Dynamics CRM осваиваю полностью самостоятельно, в принципе, как и работаю. Буду благодарен Вам, как сертифицированному специалисту, черному магу - снять с меня порчу антипатернов, и ткнуть носом в эту сборную солянку антипатернов.

Буду премного благодарен.
С ув. Афендиков Константин.

P.S. пост был написан исключительно в целях показать возможности системы, а именно механизма workflow.

Последний раз редактировалось Bondonello; 22.07.2009 в 10:51.
Старый 22.07.2009, 13:23   #4  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Порочные паттерны: лишние связи со служебными сущностями. Использование асинхорнных (по своей природе) workflow для получения записи счетчика (по природе должен быть синхронным и нетразакционным). Обновление из связанных записей из WF (спорное замечание, но по опыту могу сказать что это может привести к ссылочному геморрою). На форме объекта нужно заполнять поле автонумератора (хотя бы скриптом добавляйте)! Поле номера даже не заблокировано.

Словом не лучший вариант для демонстрации возможностей WF, вы уж извините за резкость.
Прошу прощения, Грунин Артем.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 22.07.2009, 13:34   #5  
Bondonello is offline
Bondonello
Kostya Afendikov
Аватар для Bondonello
MCBMSS
Лучший по профессии 2009
 
510 / 106 (5) +++++
Регистрация: 06.06.2008
Адрес: Украина
Пример на то и есть пример, чтобы показать возможности, далее все зависит от желания человека учится. Тогда и поля будет блокировать и WF использовать для реальных задач, а не высосанных из пальца.
Всегда буду рад поучиться на лучших примерах, которые даже я смогу выполнить. Буду признателен если парочку дадите.

Спасибо.
С ув. Афендиков Константин
Старый 22.07.2009, 14:19   #6  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Ну в любых реальных задачах без разработки кастомных экшенов не обойтись, наверно. Реальные задачи: авторасшаривание объекта участникам процесса работы над сделкой. Переназначение сделки при движении по состояниям. Эскалация обращений по очередям в зависимости от сроков ожидания. Еще WF применяют для массового обновления записей: смена адресов и рабочих телефонов контактов при обновлении головной организации и т.д.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 22.07.2009, 14:41   #7  
Bondonello is offline
Bondonello
Kostya Afendikov
Аватар для Bondonello
MCBMSS
Лучший по профессии 2009
 
510 / 106 (5) +++++
Регистрация: 06.06.2008
Адрес: Украина
Отлично, как раз реальных задач и не хватало. Попробую в свободное время сделать нечто похожее.
Спасибо
Старый 22.07.2009, 16:06   #8  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Обращайтесь.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 13.08.2009, 17:06   #9  
Bondonello is offline
Bondonello
Kostya Afendikov
Аватар для Bondonello
MCBMSS
Лучший по профессии 2009
 
510 / 106 (5) +++++
Регистрация: 06.06.2008
Адрес: Украина
Реализация Автонумерации записей с помощью плагина (исходники+ файл кастомизации)
http://ms-dynamics-crm.com.ua/2009/0...crm-4-plug-in/
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Мир CRM: Предварительный обзор Mobile Express для Microsoft Dynamics CRM 4.0 Blog bot Dynamics CRM: Blogs 2 06.10.2011 11:23
Microsoft Dynamics CRM Team Blog: CRM Online: Reporting Options Blog bot Dynamics CRM: Blogs 0 18.06.2009 06:14
Microsoft Dynamics CRM Team Blog: Trust for Delegation in List Web Part for Microsoft Dynamics CRM 4.0 Blog bot Dynamics CRM: Blogs 0 15.01.2009 03:13
Microsoft Dynamics CRM Team Blog: “Poor man’s” Business Intelligence for Microsoft Dynamics CRM Blog bot Dynamics CRM: Blogs 0 30.12.2008 04:30
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:27.