Аддоны
31
Мар
13

Выполнение бизнес-процессов для связей 1:N и N:N

В стндартном CRM 4.0 с помощью бизнес-процессов возможно выполнять действия только для связанных записей, имеющих отношение N:1 (т.е. лукап для текущего объекта) с той записью для которой выполняется бизнес-процессов. Например с Возможной сделки, можно выполнить делопроизводство для Потенциального клиента.

Рассматриваемый тут кастомный бизнес-процесс позволяет расширять действия бизнес-процессов на два других возможных отношения: 1:N и N:N. Т.е. при помощи него возможно выполнить действие для каждой записи Контакта связанной с записью Бизнес-партнера (1:N) или для каждого Конкурента связанного с Возможной сделкой (N:N).

Установка:

Использование:

… заключается в создании двух бизнес-процессов: одного задания необходимых действий (точнее сказать «шаблона» действий) по отношению к связанным записям, а второго распространения первого бизнес-процесса на какие-либо связанные записи. А теперь рассмотрим на примере массовое редактирование записей Контактов, связанных с Бизнес-партнерами.

  • Создайте бизнес-процесс для Контакта, в котором выполните какие-либо действия со связанной записью Контакта (для примера подставим строку с родительской записи Бизнес-партнера);
  • Найдите название отношения 1:N между Контактами и Бизнес-партнером;
  • Создайте бизнес-процесс для Бизнес-партнера, который распространяет предыдущий бизнес-процесс на все Контакты, связанные с Бизнес-партнером. Для этого в качестве единственного шага выберите новый кастомный шаг 1:N (соответственно, если работаете со связью N:N, то выберите другой шаг 🙂 ). В настройках этого шага выберите название предыдущего бизнес-процесса и введите имя связи во второе поле;
  • Публикуем 🙂

Тестируем: запускаем бизнес-процесс в отношении какого-либо Бизнес-пртнера и смотрим что произойдет с его связанными Контактами.





Комментарии (13)
  • oikcom 31.03.2010

    Здравствуйте.
    С помощью данного процесса, можно изменять записи, связанные N:N. А как то можно добавить к записи, в отношении которой выполняется бизнес процесс, связь N:N, (на основании какого-то признака)?
    Спасибо.

  • slivka_83 31.03.2010

    Добрый день.

    >С помощью данного процесса, можно изменять записи, связанные N:N
    Да, вроде можно.

    >А как то можно добавить к записи, в отношении которой выполняется бизнес процесс, связь N:N, (на основании какого-то признака)?
    Стандартными средствами вроде нет. Только если писать свой кастомный бизнес-процесс.

  • Макс 31.03.2010

    Добрый день, настроил обновление дочерним бизнес процессом через «шаг по» родительского поля ntext. Бизнес-процесс на по отношению к родительской форме срабатывает по изменению атрибута, после запускается плагином бизнес процессы ко всем записям для 1:N. На всех системных заданиях каждой записи статус «Успешно». Но вот в родительском поле ntext, в которым должны были собраться данные со всех дочерних записей, записи только с самой ранней, по отношению к которой был запущен бизнес-процесс. Возможно это происходит из за одновременного обновления поля несколькими бизнес-процессами. Можете подсказать что либо в этой ситуации?

  • slivka_83 31.03.2010

    Добрый день.

    >вот в родительском поле ntext, в которым должны были собраться данные со всех дочерних записей, записи только с самой ранней

    Что значит собраться? Каким образом они будут там собираться?

  • Макс 31.03.2010

    Под «собираются» — я имел ввиду обновление поля ntext через бизнес-процесс с оператором «Шаг по». Обновляются данными из полей, со связкой 1:N основную запись

  • slivka_83 31.03.2010

    >Обновляются данными из полей, со связкой 1:N основную запись
    Вот вы опять упомили данные во множественном числе.
    Я понимаю подставить значение одного поля в родительскую запись. но как вы со множества записей собираетесь подставить значения в одно поле родительской записи?

  • Макс 31.03.2010

    http://clip2net.com/s/2LWF9

    На скрине виден шаг бизнес процесса по отношению к родительской форме, видно каким образом происходит внесение данные из дочерней записи. Так вот таким образом шаг применяется к каждой дочерней записи.

    На выходе, после того как бп отработало со всеми дочерними записями должно получится:

    http://clip2net.com/s/2LWMm

    Данные с 2х дочерних записей

    Так понятней)?

  • slivka_83 31.03.2010

    Так не получится. Когда БП будет работать с какой-либо дочерней запись, он не будет «добавлять» текстовое значение к многострочному полю родительской записи, он будет затирать его текстом со значениями текущей дочерней записи!

  • Макс 31.03.2010

    Жаль( Думал немного модернизировать существующую схему через этот плагин. Сейчас всё на стандартных методах, БП срабатывает по созданию дочерних записей и добавляет в родительскую форму данные не затирая старый текст.

    Но всё равно спасибо)

  • slivka_83 31.03.2010

    Хм… действительно стандартыне БП могут добавлять новое значение к существущему. Не знал 🙂 Тогда по идее решение описанное здесь должно нормально работать…

  • Макс 31.03.2010

    В том то и дело что должно( Но на практике — не работает. Может быть проблема всё-таки в синхронном обновлении поля многими БП?

  • slivka_83 31.03.2010

    Во-первых Бизнес-процессы они всегда асинхронные — по другому они работать не умеют. Во-вторых каждое обновление записи имеет монополию на момент обновления. Т.е. даже если несколько БП одновременно захотят обновить какую-либо запись, они будут делать это по очереди.
    Вобщем как варианта скачать исходники и отлаживать я не вижу…

  • Макс 31.03.2010

    Ок, спасибо за информацию)

*

code