Сопоставление полей типа «Список» в бизнес-процессах

На днях мне понадобилось настроить автозаполнение полей сделки на основе полей Компании. Я создала процесс при создании Сделки, настроила проверку заполненности полей и при пустом значении заполнила их из Компании. Вроде все просто, но вот поля типа «Список» заполняться отказались 🙁

Пришлось искать варианты. Что же я сделала?

Рассмотрим на примере поля «Условия оплаты» со значениями:

  • 100% предоплата
  • Отсрочка 100%
  • Частичная предоплата

Поле Условия оплаты

Это поле создано как в Сделке, так и в Компании. Т.е. когда создается сделка, проверяем заполнено ли поле и если оно пустое, смотрим аналогичное поле в Компании и устанавливаем такое же значение.

  1. Бизнес-процесс по заполнению поля «Условия оплаты» в Сделке из Компании
    1. Создание переменной
    2. Действия бизнес-процесса
      1. Условия оплаты заполнены?
      2. Разветвление
      3. Изменение переменных
      4. Переменная
      5. Внесение условий оплаты

Для начала создадим Бизнес-процесс при создании сделки. CRM — Настройки — Роботы и бизнес-процессы — Бизнес-процессы — Сделки — Список шаблонов — Добавить шаблон

Бизнес-процессы в настройках

Бизнес-процессы сущностей

Список шаблонов

Бизнес-процесс по заполнению поля «Условия оплаты» в Сделке из Компании

Бизнес-процесс заполнения поля Условия оплаты

Создание переменной

Создадим переменную с тем же названием и типом «Список». Для это зайдем в Параметры шаблона, перейдем на вкладку «Переменные» и нажмем кнопку «Добавить переменную».

Параметры шаблона

Добавить переменную

Создание переменной типа "Список"

  • Идентификатор — Название поля на английском или латинице
  • Название — Условия оплаты
  • Описание — Можете добавить на свое усмотрение
  • Тип — Список
  • Варианты значений — это самое интересное, рассмотрим ниже, пока оставляем пустым
  • Значение по умолчанию — Не установлено

Действия бизнес-процесса

Условия оплаты заполнены?

Выбираем конструкцию «Условие» и указываем в каком случае Условия оплаты заполнены, а в каком нет.

Условие

Условие «Да»

Условие Да

  • Заголовок — Да
  • Тип условия — Поле документа
  • Поле документа — Условия оплаты
  • Условие — заполнено

Условие «Нет»

Условие Нет

  • Заголовок — Нет
  • Тип условия — Истина

Т.к. условия проверяются слева направо, то в условии «Нет» можно просто выбрать истину.

Разветвление

Логируем результат разветвления по условию.

Заполнено:

Не заполнено

  • Заголовок — Разветвление
  • Текст — Условия оплаты заполнены; {{Условия оплаты}}; {{Условия оплаты > select}}
  • Загрузить отчет для доступа из бизнес-процесса — устанавливаем галочку

Не заполнено:

Не заполнено

  • Заголовок — Разветвление
  • Текст — Условия оплаты не заполнены; В компании: {{Компания: Условия оплаты}}; {{Компания: Условия оплаты > select}}
  • Загрузить отчет для доступа из бизнес-процесса — устанавливаем галочку

Эти логи как раз и помогут нам в заполнении значений переменной. Нам нужно определить идентификаторы значений списков полей «Условия оплаты» в Сделке и в Компании. Запускаем процесс в сделке, открываем вкладку Бизнес-процессы и смотрим журнал. Если запущенных процессов несколько, то определяем по названию и времени запуска.

Вкладка БП

Журнал БП

3519fa98840a8b3a6c9ffecf5800529e — это и есть идентификатор значения «Частичная оплата» в поле «Условия оплаты» в Компании. Так нам нужно определить все идентификаторы в обоих списках.

Вот что получилось:

Компания:
100% предоплата: bf86af927607e0eff8a54695236fd74f
Отсрочка 100%: bab7184d8f5d3e7c197e79c3a571396c
Частичная предоплата: 3519fa98840a8b3a6c9ffecf5800529e

Сделка:
100% предоплата: ea7d6da2d9158bbb31f02f24b9c76308
Отсрочка 100%: 0908d72fe7fcf676e656b36ce9468eb8
Частичная предоплата: 929f4e57547c4ef1e99f8f252a5e420b

Теперь возвращаемся к нашей переменной и заполняем значения списка в таком виде:

[Идентификатор Компании]Идентификатор Сделки

Например, значение «100% предоплата» будет выглядеть так:

[bf86af927607e0eff8a54695236fd74f]ea7d6da2d9158bbb31f02f24b9c76308

Итого:

[bf86af927607e0eff8a54695236fd74f]ea7d6da2d9158bbb31f02f24b9c76308
[bab7184d8f5d3e7c197e79c3a571396c]0908d72fe7fcf676e656b36ce9468eb8
[3519fa98840a8b3a6c9ffecf5800529e]929f4e57547c4ef1e99f8f252a5e420b

Вставляем эти варианты значений в переменную.
Переменная

Изменение переменных

Присвоим переменной «Условия оплаты» значение аналогичного поля из Компании. Возьмем действие «Изменение переменных».

Сопоставление поля типа "Список"

  • Заголовок — Изменение переменных
  • Переменная — Условия оплаты
  • Значение — {{Компания: Условия оплаты > select}}

Параметр select указывает на идентификатор.

Переменная

Лог переменной

  • Заголовок — Переменная
  • Текст — {=Variable:UslOpl}; {=Variable:UslOpl_printable}
  • Загрузить отчет для доступа из бизнес-процесса — устанавливаем галочку

Посмотрим обновилась ли переменная и что в ней записано.

Внесение условий оплаты

Изменение поля

  • Заголовок — Внесение условий оплаты
  • Поле документа — Условия оплаты
  • Значение — {=Variable:UslOpl_printable}
  • Изменять от имени — устанавливаем администратора или конкретного сотрудника

В значении указываем переменную с параметром printable.

Наш процесс готов! И поле типа «Список» теперь заполняется, главное не напутать с идентификаторами и их порядком 🙂

 

Добавить комментарий

Ваш адрес email не будет опубликован.

error: Контент защищен