Автоматическое завершение задачи

отредактировано 21 апр Раздел: Бизнес-процессы (WorkFlow)

Добрый день!
Необходимо настроить автоматическое завершение задачи при определенных условиях.
Вижу, что для кнопки "Завершить задачу" используется JS-модуль "actions/workflow/FinishTask", можно ли как-то алгоритмически его вызвать? Или, возможно, можно настроить такое завершение в настройках этапа?

Комментарии

  • Добрый день!
    Алгоритмически можно решить этот кейс функцией:
    executeTask - функция для завершения задачи через алгоритм.

    Синтаксис:
    executeTask(task_id, [decide_code], [auto_close=true], [close_emp_id], [comment])

    Параметры:
    task_id (обязательный) - ID задачи
    decide_code (необязательный) - ID соответствующего перехода
    auto_close (необязательный, по умолчанию true) - флаг автоматического завершения
    close_emp_id (необязательный) - ID сотрудника-инициатора завершения
    comment (необязательный) - комментарий пользователя

    Описание функции:
    Завершает задачу с указанным task_id
    Если auto_close=true, проставляет флаг "Завершена технически без выполнения"
    Если передан close_emp_id, заполняет атрибут "Сотрудник, вследствие действий которого задача была завершена автоматически"
    Если передан comment, добавляет комментарий к задаче
    После успешного выполнения помечает задачу как выполненную
    Функция проверяет права текущего пользователя, или close_emp_id если не null, на возможность завершения задачи

    Пример использования:

    Также эту функцию можно:

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

  • отредактировано 22 авг

    @sergeev_if
    Повесила эту функцию на "Алгоритм после формирования задачи".
    Делала вот так:

    Задача завершилась! Но по нужному переходу не ушла)
    Зависла как завершенная. Процесс тоже завис:

  • @ValeriyaTuritsyna Добрый день!
    Проверьте соответствие перехода в алгоритме и в бизнес-процессе:

    1. Выберите переход в бизнес-процессе и откройте его настройки.
    2. Сверьте Идентификатор перехода.
    3. Вернитесь в редактор алгоритма, во второй параметр вставьте справочное значение (dict).
    4. Проверьте, что идентификатор и процесс соответствуют текущей задаче.

    Скриншоты:

  • отредактировано 25 авг

    Добрый день!
    Да, конечно, я всегда сверяю переходы по идентификаторам.
    Видимо проблема именно в том, что вешаю эту функцию на "Алгоритм после формирования задачи". Возможно, там происходит какое-то зацикливание при ее завершении или еще что-то...
    Пришлось реализовать параллельно с задачей - СД автозавершения, в котором вызываю алгоритм с функцией, и повесить таймер на 5 сек перед СД.
    В этом случае задача завершается и идет дальше.

  • @ValeriyaTuritsyna написал:
    Добрый день!
    Да, конечно, я всегда сверяю переходы по идентификаторам.
    Видимо проблема именно в том, что вешаю эту функцию на "Алгоритм после формирования задачи". Возможно, там происходит какое-то зацикливание при ее завершении или еще что-то...
    Пришлось реализовать параллельно с задачей - СД автозавершения, в котором вызываю алгоритм с функцией, и повесить таймер на 5 сек перед СД.
    В этом случае задача завершается и идет дальше.

    Добрый день! Для завершения задачи используется функция executeTask, применяемая к той же задаче, в рамках которой выполняется алгоритм. Подобный сценарий использования не предполагался.
    Обходное решение сделать это через дополнительную СД.

Войдите или Зарегистрируйтесь чтобы комментировать.