Зробити процес недоступним цілком можна адміністративно - просто приховавши його з Живої стрічки або, наприклад, змінивши права доступу до нього для всіх співробітників компанії. Якщо з якої-небудь причини такий варіант неприйнятний, то для виконання даної задачі можна внести зміни у стандартний бізнес-процес.
Для початку треба створити ще одне поле бізнес-процесу, в якому буде міститися список категорій відпусток. В подальшому ця категорія буде вказуватися при сповіщенні бухгалтерії.
У вкладці Налаштування вкажемо Назву поля та Тип поля. Поле повинно бути обов'язковим, інакше втрачається весь сенс в даному завданні. Також вкажемо, що поле має відображатися у формі додавання і редагування.
А у вкладці Список визначимо категорії відпусток.
Для того, щоб автоматично відхилити заяву про відпустку, спочатку необхідно задати періоди, протягом яких відпустку взяти не можна. Створимо константи, в яких ми будемо зберігати дати початку і кінців цих періодів.
Підсумковий список констант бізнес-процесу (що включає крім створених вже існуючі) буде виглядати наступним чином.
Внесемо корективи в шаблон бізнес-процесу. Додамо в початок цикл перевірки введених користувачем дат.
Перевірку дат здійснимо за допомогою дії Умова. Для гілки умов Ні, налаштуємо залежність дати відпустки від заборонених для відпустки періодів. Т. к. вибрані для відпустки дати записуються в поля, то будемо використовувати тип умови Поле документа. Розглядати будемо наступні варіанти:
- Дата початку відпустки потрапляє в один із заборонених періодів.
- Дата завершення відпустки потрапляє в один із заборонених періодів.
- Сам заборонений період цілком потрапляє в дати відпустки.
Додамо сповіщення користувача про те, що він вибрав некоректні дати для відпустки. Користувачу буде запропоновано вибрати інші дати для своєї відпустки. Використовуємо для цього дію Запит дод. інформації (з відхиленням). Якщо користувач введе нові дати і збереже їх, то нові дати ми запишемо в поле документа і цикл знову буде їх перевіряти. Якщо користувач не захоче з якої-небудь причини вводити дати і відхилить введення інформації, то ми видалимо його заяву на відпустку і перервемо виконання процесу.
Для гілки Так вкажемо умову виконання Істина. Таким чином, вона виконається в тому випадку, якщо процес не піде по першій гілці. В цій гілці ми налаштуємо вихід з циклу. Задамо змінну, яка буде вказувати, чи правильно введені дані.
Створений цикл буде працювати поки у даної змінної буде значення Ні. Якщо користувач введе правильні дати, то змінимо значення змінної на Так, щоб вийти з циклу. Якщо користувач ввів підходящі для відпустки дати, то бізнес-процес заяви на відпустку продовжить своє звичайне виконання.
Щоб детальніше ознайомитись з шаблоном, завантажте його тут..