Показать сообщение отдельно
Старый 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, напишите личное сообщение администратору.