Выполнение бизнес-процессов для связей 1:N и N:N
В стндартном CRM 4.0 с помощью бизнес-процессов возможно выполнять действия только для связанных записей, имеющих отношение N:1 (т.е. лукап для текущего объекта) с той записью для которой выполняется бизнес-процессов. Например с Возможной сделки, можно выполнить делопроизводство для Потенциального клиента.
Рассматриваемый тут кастомный бизнес-процесс позволяет расширять действия бизнес-процессов на два других возможных отношения: 1:N и N:N. Т.е. при помощи него возможно выполнить действие для каждой записи Контакта связанной с записью Бизнес-партнера (1:N) или для каждого Конкурента связанного с Возможной сделкой (N:N).
Установка:
- Скачайте сборку кастомного бизнес-процесса;
- Зарегистрируйте .dll в CRM с помощью Plugin Registration Tool;
- После этого в списке бизнес-процессов появится два (для связи 1:N и N:N соответственно) новых шага (в меню Utilities).
Использование:
… заключается в создании двух бизнес-процессов: одного задания необходимых действий (точнее сказать «шаблона» действий) по отношению к связанным записям, а второго распространения первого бизнес-процесса на какие-либо связанные записи. А теперь рассмотрим на примере массовое редактирование записей Контактов, связанных с Бизнес-партнерами.
- Создайте бизнес-процесс для Контакта, в котором выполните какие-либо действия со связанной записью Контакта (для примера подставим строку с родительской записи Бизнес-партнера);
- Найдите название отношения 1:N между Контактами и Бизнес-партнером;
- Создайте бизнес-процесс для Бизнес-партнера, который распространяет предыдущий бизнес-процесс на все Контакты, связанные с Бизнес-партнером. Для этого в качестве единственного шага выберите новый кастомный шаг 1:N (соответственно, если работаете со связью N:N, то выберите другой шаг 🙂 ). В настройках этого шага выберите название предыдущего бизнес-процесса и введите имя связи во второе поле;
- Публикуем 🙂
Тестируем: запускаем бизнес-процесс в отношении какого-либо Бизнес-пртнера и смотрим что произойдет с его связанными Контактами.
Здравствуйте.
С помощью данного процесса, можно изменять записи, связанные N:N. А как то можно добавить к записи, в отношении которой выполняется бизнес процесс, связь N:N, (на основании какого-то признака)?
Спасибо.
Добрый день.
>С помощью данного процесса, можно изменять записи, связанные N:N
Да, вроде можно.
>А как то можно добавить к записи, в отношении которой выполняется бизнес процесс, связь N:N, (на основании какого-то признака)?
Стандартными средствами вроде нет. Только если писать свой кастомный бизнес-процесс.
Добрый день, настроил обновление дочерним бизнес процессом через «шаг по» родительского поля ntext. Бизнес-процесс на по отношению к родительской форме срабатывает по изменению атрибута, после запускается плагином бизнес процессы ко всем записям для 1:N. На всех системных заданиях каждой записи статус «Успешно». Но вот в родительском поле ntext, в которым должны были собраться данные со всех дочерних записей, записи только с самой ранней, по отношению к которой был запущен бизнес-процесс. Возможно это происходит из за одновременного обновления поля несколькими бизнес-процессами. Можете подсказать что либо в этой ситуации?
Добрый день.
>вот в родительском поле ntext, в которым должны были собраться данные со всех дочерних записей, записи только с самой ранней
Что значит собраться? Каким образом они будут там собираться?
Под «собираются» — я имел ввиду обновление поля ntext через бизнес-процесс с оператором «Шаг по». Обновляются данными из полей, со связкой 1:N основную запись
>Обновляются данными из полей, со связкой 1:N основную запись
Вот вы опять упомили данные во множественном числе.
Я понимаю подставить значение одного поля в родительскую запись. но как вы со множества записей собираетесь подставить значения в одно поле родительской записи?
http://clip2net.com/s/2LWF9
На скрине виден шаг бизнес процесса по отношению к родительской форме, видно каким образом происходит внесение данные из дочерней записи. Так вот таким образом шаг применяется к каждой дочерней записи.
На выходе, после того как бп отработало со всеми дочерними записями должно получится:
http://clip2net.com/s/2LWMm
Данные с 2х дочерних записей
Так понятней)?
Так не получится. Когда БП будет работать с какой-либо дочерней запись, он не будет «добавлять» текстовое значение к многострочному полю родительской записи, он будет затирать его текстом со значениями текущей дочерней записи!
Жаль( Думал немного модернизировать существующую схему через этот плагин. Сейчас всё на стандартных методах, БП срабатывает по созданию дочерних записей и добавляет в родительскую форму данные не затирая старый текст.
Но всё равно спасибо)
Хм… действительно стандартыне БП могут добавлять новое значение к существущему. Не знал 🙂 Тогда по идее решение описанное здесь должно нормально работать…
В том то и дело что должно( Но на практике — не работает. Может быть проблема всё-таки в синхронном обновлении поля многими БП?
Во-первых Бизнес-процессы они всегда асинхронные — по другому они работать не умеют. Во-вторых каждое обновление записи имеет монополию на момент обновления. Т.е. даже если несколько БП одновременно захотят обновить какую-либо запись, они будут делать это по очереди.
Вобщем как варианта скачать исходники и отлаживать я не вижу…
Ок, спасибо за информацию)