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

25.10.2020
Списки

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

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

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

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

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

Содержание

Для начала создадим Бизнес-процесс при создании сделки. 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.

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

5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x