Назначение заявки на несколько групп

Всем доброго дня!
Как можно назначить заявку на несколько групп и при этом чтобы она была видна для каждой группы из пункта меню "Назначено на группу(-ы)?

С первым вопросом я разобрался, создал колонку с типом “list” с ссылкой на таблицу “Группы” и в эту колонку падают группы согласно условиям рабочего процесса. Может быть назначена 1, 2 или 3 группы на одну заявку.

И вот проблема в том, чтобы все группы, которые назначены на эту заявку могли её видеть. Пытался это реализовать с помощью динамического фильтра в “Пункт меню”, но это не срабатывает.

Скрипт динамического фильтра получает массив групп пользователя:

(function executeDynamicScript(current = null ) {
  const currentUserGroupIDs = [];
  const userGroup = new SimpleRecord('sys_user_group');
  userGroup.addQuery('user_id', ss.getUserID());
  userGroup.selectAttributes('group_id');
  userGroup.query();
  while (userGroup.next()) {
    currentUserGroupIDs.push(userGroup.getValue('group_id'));
  }
  return (currentUserGroupIDs.length > 0) ? currentUserGroupIDs : '';

Мне кажется у Вас ошибка в процессе. Назначение задачи на несколько групп это не есть хорошо. В любом деле если есть несколько ответственных = нет ответственных. Подумайте, возможно стоит пересмотреть саму задачу и процесс.

2 лайка

Привет, Кирилл.
Объясню, почему, как мне кажется, не срабатывает. Листовое поле хранит в себе строку со списком sys_id групп. В условии фильтра идет СОДЕРЖИТ (contains, LIKE в SQL терминах) , а в качестве правой части мы посовываем массив (приводимый к строке). В итоге правильным условием будет, к сожалению динамически со1здаваемый фильтр вот такой:

group_list_ids ВКЛЮЧАЕТ (первая группа текущего пользователя)
ИЛИ
group_list_ids ВКЛЮЧАЕТ (вторая группа текущего пользователя)
...
ИЛИ
group_list_ids ВКЛЮЧАЕТ (последняя группа текущего пользователя)

Сложно и малоперспективно в плане отчетности из коробки и даже внешними системами тоже. Придется разгребать эти строковые списки групп.

Максим прав : такой вид реализации ответственных за задачу размывает accountability (RASCI - A - тольно один accountable). Для совместной работы есть дочерние задачи. Основная задача в то же время должна висеть на одной группе, которая является ответственной за ее исполнение и координацию работ других команд по подзадачам. Есть и еще варианты, наверное.

Если в Вашем процессе есть группа, которая “ведет” задачу от начала и до конца (accountable) , и есть (суда по описанию, до двух дополнительных) группы, эпизодически или по условию включающихся в процсс, рассмотрите возможность
а) Использовать подзадачи (это есть в коробке ITSM)
б) Разнесите группу - владельца задачи с группой назначения задачи, создав что-то вроде owner_group_id (reference поле, одно значение ибо помним RASCI - A - один Accountable)
У меня пункт б) был в практике Incident Management, достаточно хорошо получилось, даже автоматизировали Reject, Complete на Owner Group от второй линии и SLAs красиво на это легли.

С уважением, Никита

2 лайка