...

2.5.1. Учёт вида отпусков в бизнес-процессе

Тема в разделе "Краткое руководство по созданию Low-code решений", создана пользователем ELMA365, 3 май 2023.

  1. ELMA365

    ELMA365 Moderator

    Так как теперь в бизнес-процессе обрабатывается не только отпуск за свой счёт, но и другие виды отпусков, изменим шаблон названия задачи Подготовить приказ на отпуск. Ранее в шаблоне названия мы использовали вид отпуска. Теперь настроим шаблон следующим образом: Подготовить приказ на отпуск для {$__createdBy.__name}.

    Кроме этого, добавим на форму информацию о сотруднике и виде отпуска.


    [​IMG]
    Настройки свойства «Отпуск» на форме задачи


    Теперь настроим бизнес-процесс таким образом, чтобы задача на подготовку приказа не приходила, если он не требуется. Для этого будем использовать Шлюз.

    Важно


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


    Шлюз работает только с контекстом бизнес-процесса. Чтобы была возможность определить, нужен приказ или нет, передадим эти данные из элемента приложения Вид отпуска в контекст бизнес-процесса.

    Добавим в контекст процесса свойства Требуется приказ типа Выбор «да/нет».


    [​IMG]
    Добавление нового свойства в контекст бизнес-процесса


    Создадим в контексте бизнес-процесса ещё одно свойство и назовём его Дата начала отпуска. Его мы будем использовать для расчёта срока подготовки приказа.

    Далее добавим на схему процесса элемент Присваивание, который поможет записать данные из элемента приложения в контекст бизнес-процесса. Разместим его после элемента Оповещение о согласовании, добавим переход.


    [​IMG]
    Элемент «Присваивание» на схеме бизнес-процесса


    Перейдём в настройки элемента Присваивание на вкладку Таблица соответствия и установим следующие соответствия:
    • в поле Требуется приказ контекста процесса запишется значение поля Требуется приказ, соответствующее виду отпуска и содержащееся в элементе приложения Отпуск;
    • в поле Дата начала отпуска контекста процесса запишется значение поля Дата начала, содержащееся в элементе приложения Отпуск.


    [​IMG]
    Настройки элемента «Присваивание»


    Установим срок выполнения задачи Подготовить приказ на отпуск: за 3 рабочих дня до даты начала отпуска.



    [​IMG]
    Настройка времени выполнения задачи


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

    Важно


    Исключающий шлюз направляет процесс только по одному исходящему переходу.

    Как только процесс достигнет шлюза, система проверит заданные условия и выберет тот переход, для которого условие выполнилось. Порядок проверки задаётся в настройках шлюза, на вкладке Переходы.

    Для исключающего шлюза обязательно должен быть указан переход по умолчанию.


    Подпишем переход из Шлюза в задачу и настроим условие перехода. Процесс перейдёт к задаче Подготовить приказ на отпуск, если свойство процесса Требуется приказ имеет значение Да.


    [​IMG]
    Настройка условий перехода

    [​IMG]
    Шлюз на схеме бизнес-процесса
    Теперь добавим ещё один переход из шлюза — на случай, когда сотрудник оформляет отпуск по временной нетрудоспособности, т. е. больничный. В этом случае необходимо, чтобы процесс приостановился до окончания отпуска, а после окончания отпуска инициатор получит задачу:
    • с указанием номера больничного листа;
    • возможностью продлить отпуск.
    Для этого создадим в контексте бизнес-процесса новые свойства:
    • Номер больничного листа типа Строка;
    • Дата окончания отпуска типа Дата/время.

    [​IMG]
    Контекст бизнес-процесса


    Дату окончания будем получать из приложения Отпуск. Для этого изменим настройки элемента Присваивание, добавив получение в поле контекста Дата окончания отпуска значение Дата окончания из элемента приложения Отпуск.


    [​IMG]
    Настройки элемента «Присваивание»


    Добавим на схему бизнес-процесса элемент Таймер и соединим его со шлюзом:


    [​IMG]
    Таймер на схеме бизнес-процесса

    Настроим условия перехода:

    [​IMG]
    Настройки перехода


    Теперь настроим таймер. В сроке выполнения укажем переменную бизнес-процесса Дата окончания отпуска. В этом случае бизнес-процесс остановится на элементе Таймер до даты окончания отпуска. Как только она наступит, бизнес-процесс двинется дальше по схеме.


    [​IMG]
    Настройки таймера


    Добавим переход по умолчанию из шлюза. Он понадобится, например, в том случае, когда поле Требуется приказ окажется пустым. Такое может произойти, когда это поле будет не заполнено в элементе приложения Вид отпуска.


    [​IMG]
    Переход по умолчанию на схеме бизнес-процесса


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

    Перейдём в настройки шлюза и выберем переход по умолчанию:


    [​IMG]
    Настройка перехода по умолчанию


    На схему бизнес-процесса в зону ответственности инициатора добавим задачу Указать больничный лист и соединим её с Таймером.

    Настроим форму задачи:
    • добавим информацию об отпуске и вынесем свойства переменной Отпуск только для чтения;
    • сделаем свойство Номер больничного листа обязательным для заполнения.

    [​IMG]
    Настройка формы задачи

    Настроим переходы из задачи:
    1. для продления больничного листа и оповещения об этом руководителя;
    2. для закрытия больничного листа и оповещения об этом сотрудника отдела кадров. Вместо оповещения можно добавить задачу бухгалтеру для расчёта суммы больничных и её выплаты. Мы пропустим этот шаг, чтобы не повторять настройки уже знакомых элементов.

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



    [​IMG]
    Настройка формы подтверждения для перехода


    [​IMG]
    Настройки формы подтверждения для перехода


    [​IMG]
    Пример формы подтверждения перехода в задаче


    После продления больничного и оповещения руководителя необходимо записать обновлённую Дату окончания в элемент приложения Отпуск. Для этого воспользуемся блоком Изменение элемента. Установим его между оповещением Больничный лист продлен и Таймером, добавим переходы.

    [​IMG]
    Блок «Изменение элемента» на схеме бизнес-процесса


    В настройках блока Изменение элемента в качестве переменной выберем Отпуск. На вкладке Значения полей установим связь между полем приложения Дата окончания и переменной, содержащей новую дату окончания отпуска.

    Изменим названия элементов для наглядности:


    [​IMG]
    Схема бизнес-процесса
  2. vasily.yakubov

    vasily.yakubov Участник

    В этом месте не понятно, какую форму открыть и где, скриншот приведенный ниже несоответствует тому, что есть на вкладке
    Форма в задаче Подготовить приказ на отпуск. Содержание полей в Контексте тоже другое.
    Как понять, куда дальше двигаться?
    Большая часть времени уходит не на обучение, а на догадки - где искать.
  3. vasily.yakubov

    vasily.yakubov Участник

    Откуда взялась "Дата окончания"?
    Такое впечатление, что материалы писал тот, кто неумеет делать обучающие маьериалы, или тот кто намеренно вредит начинающим, с целью ограничить порог входа разбором тупых, нелогичных ситуаций.
    Последнее редактирование: 25 мар 2024
  4. vasily.yakubov

    vasily.yakubov Участник

    Пара скриншотов настройки Изменения элемента позволит быстрее понять что именно надо сделать
  5. vasily.yakubov

    vasily.yakubov Участник

    Не хватает скриншотов, которые помогут увидеть как изменится вид во вкладке Форма задачи Подготовить приказ на отпуск, это поможет сориентироваться верно ли внесены настройки
  6. vasily.yakubov

    vasily.yakubov Участник

    Не хватает пояснения, как перейти в настройки Свойства Отпуск
  7. vasily.yakubov

    vasily.yakubov Участник

    Нужен скриншот - как именно добавляется свойство.
    В форме конструктора бизнес-процесса на вкладке Контекст мы видим список "Контекстные переменные", а не Свойства, но в этот список добавляем Свойство.
    Где логика, где связь между Контекстными переменными и Свойством при таком описании?
  8. vasily.yakubov

    vasily.yakubov Участник

    Не хватает в описании явного пояснения как настраивается Свойство. Добавьте пожалуйста, для тех кто с нуля остваивает, на начальном этапе необходимо все детально описывать. Не получается оперативно понять как и что сделать, много, очень много времени уходит на догадки.