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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.04.2012, 23:13   #1  
Blog bot is offline
Blog bot
Участник
 
25,631 / 848 (80) +++++++
Регистрация: 28.10.2006
Все о Microsoft Dynamics CRM: Работа с полями поиска двойного типа в бизнес-процессах
Источник: http://ms-dynamics-crm.com.ua/2012/0...s-in-workflow/
==============

Полями двойного типа я называю поля поиска, которые могут содержать идентификаторы записей различных типов.

Например, поле Потенциальный клиент в Возможной сделке может содержать идентификатор записи типа Организация и типа Контакт. Если нажать на кнопку поиска в этом поле, то CRM предложит нам определиться с типом записи:



Такая, безусловно, удобная функциональность вносит определенные проблемы при разработке бизнес-процессов.

Рассмотрим это на примере обработки экземпляра Возможной сделки (ВС) в бизнес-процессе (БП).



Задача

Обеспечить хранение в ВС имени старого потенциального клиента. Т.е. при выборе нового потенциального клиента, данные о предыдущем клиенте должны сохраняться.

Примечание: задача выдумана от начала и до конца и не имеет ничего общего с реальной функциональностью J.

Логика

Напишем БП, который будет срабатывать на изменение поля Потенциальный клиент (событие OnChange).

Так как срабатывание произойдет ПОСЛЕ сделанных изменений, то потребуется 2 кастомных поля для хранения данных о клиентах.

Первое кастомное поле (CurrentClient) дублирует значение поля Потенциальный клиент.

Второе кастомное поле (OldClient) содержит данные о старом Потенциальном клиенте.

При обнаружении события OnChange на поле Потенциальный клиент:

1)       Переписать значение из CurrentClient в OldClient

2)       Переписать значение из Потенциальный клиент в CurrentClient

Реализация

Первая трудность, с которой мы столкнемся, — это невозможность создать кастомное поле типа Клиент, которое позволяло бы записывать в него и Организацию, и Контакта. Вы можете создать поле типа Поиск либо для Организации, либо для Контакта.

Ок, продублируем и создадим CurrentOrganization, CurrentContact, OldOrganization, OldContact.

Вторая трудность: как распознать на этапе отработки БП, в какое из кастомных полей писать значение поля Потенциальный клиент? Ведь БП не содержит в своем функционале определение типа записи…

Решение достаточно простое: использовать в БП динамические значения. Дело в том, что динамические значения полей точно так же не имеют объединяющего поля Клиент и, соответственно, явно разделяют типы записей Организация и Контакт.



Ну вот, теперь достаточно добавить в БП шаг с проверкой условия:



Как и следует ожидать, CRM при использовании динамических значений выполняет операцию приведение типа поля Потенциальный клиент к типу Организация или к типу Контакт (в зависимости от того, какое динамическое значение выбрано). Операция приведения к типу даст null для поля несоответствующего типа, поэтому указанное выше условие вернет false, если мы попытаемся сравнить поле Потенциальный клиент (в котором указан Контакт) с динамическим значением
ВС→Потенциальный клиент (Организация).

PS. Не мешает еще проверить условие: ВС→Потенциальный клиент содержит данные. Иначе вы будете сравнивать null c null и получите в условии выше результат true.



Источник: http://ms-dynamics-crm.com.ua/2012/0...s-in-workflow/
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Microsoft Dynamics CRM Team Blog: The Microsoft Dynamics CRM Swiss Army Knife Blog bot Dynamics CRM: Blogs 1 19.04.2012 08:20
Все о Microsoft Dynamics CRM: Построение бизнес-процесса автоматизации ведения Возможной сделки (часть 2) Blog bot Dynamics CRM: Blogs 0 19.04.2012 07:14
Leon's CRM Musings: Book Review: Microsoft Dynamics CRM 2011 Administration Bible Blog bot Dynamics CRM: Blogs 0 19.12.2011 12:11
Microsoft Dynamics CRM Team Blog: Microsoft Dynamics CRM’s Mashable Ecosystem to Change Customer Care Market? I think So… Blog bot Dynamics CRM: Blogs 0 20.10.2011 03:24
Microsoft Dynamics CRM Team Blog: Building Rich-Client Dashboards for Microsoft Dynamics CRM with Windows Presentation Foundation Blog bot Dynamics CRM: Blogs 1 31.03.2009 13:24

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

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

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