Добрий день всім! Сьогодні я хотів би поділитися невеликим прикладом автоматизації процесу створення заявок на вихід нових співробітників з використанням продуктів Microsoft SharePoint, PowerApps, Power Automate та Teams. При реалізації цього процесу не потрібно купувати окремі плани PowerApps і Power Automate, достатньо буде підписки Office365 E1/E3/E5. На сайті SharePoint створимо списки та стовпці, PowerApps допоможе зробити форму, а Power Automate надасть можливості для налаштування логіки бізнес-процесів. Підсумковий процес підключимо до команди MS Teams. Давайте не втрачатимемо часу і подивимося, що з цього вийде.
На першому етапі створюємо списки та реквізити. Нам будуть потрібні списки:
- Заявки на вихід співробітників
- підрозділи
- HR за підрозділами
- адміністратори
Кожен список надалі зіграє свою роль, і ми побачимо яку саме. Створюємо реквізити та налаштовуємо меню навігації:
PowerApps
Тепер, давайте зробимо форму для списку Заявки на вихід співробітника з використанням PowerApps. У підсумковому вигляді вона виглядатиме ось так:
У полі "Співробітник" здійснюється вибір із переліку користувачів Office 365, "Дата виходу" вказується з календаря, "Підрозділ" вказується з довідника підрозділів, а "HR" вибирається з довідника "HR за підрозділами":
Але необхідно зробити так, щоб перелік HR, доступних для вибору, фільтрувався за вказаним на формі підрозділом. Скористайтеся формулою для фільтрації даних у PowerApps. Для властивості "Items" поля "HR" пишемо:
Додатково, на формі можна зробити невеликі параметри значення за замовчуванням для поля Статус. Для властивості "Default" поля "Статус" пишемо:
Якщо відкриється форма створення елемента, то в полі «Статус» буде записано значення «Нова», інакше в полі статус на формі буде зроблено підстановку значення зі стовпця SharePoint для поточного елемента.
Однією з проблем PowerApps є неможливість легко отримати дані із груп SharePoint. У зв'язку з цим не вдається легко налаштувати видимість/доступність полів або об'єктів на формі, якщо ви хотіли зареєструватися на входження користувача до групи SharePoint. Але можна зробити обхідний маневр. Спеціально для цього ми з Вами заздалегідь створили список Адміністратори:
У цьому списку є поле «Співробітник» з типом «Користувач або група», яке відображається лише на формі та поле «Назва», в яке пишеться ім'я вибраного співробітника, яке відображається лише у поданні списку. Тепер, давайте, в PowerApps перевіримо невеликий трюк. Наприклад, можна настроїти доступність будь-якого поля за умови наявності поточного користувача у списку Адміністратори. Знаходимо властивість "Display Mode" поля "Дата виходу" і пишемо:
Згідно з цією формулою, якщо в списку Адміністратори є хоча б один співробітник, логін якого збігається з логіном поточного користувача, поле буде доступне на редагування, інакше, на перегляд. Для більшої надійності наводимо логін до нижнього регістру, бо всякі випадки бувають.
Ви могли помітити, що в заголовку форми є кнопка «Дії над заявкою»:
Дана кнопка здійснюватиме перехід на інший екран, де, для зручності, зібрані всі можливі дії над заявкою:
Після натискання на кожну кнопку відкривається додаткове вікно дій, наприклад, якщо вибрано дію "Скасувати заявку", то відкривається додаткове вікно з можливістю введення коментаря:
Після натискання на кнопку «Підтвердити» змінюється статус заявки, причому це можливо зробити навіть без запуску Power Automate потоку. Скористайтеся функцією «Patch» для властивості «OnSelect» кнопки:
За допомогою функції Patch ми оновлюємо елемент списку заявок, відфільтрувавши його ідентифікатором поточного елемента. Здійснюємо зміну значення поля «Статус» та здійснюємо перехід на основний екран. Для інших клавіш дій логіка аналогічна.
Залишилося налаштувати потік узгодження. Зробимо його у найпростішому вигляді.
Автоматизація живлення
Наш потік погодження запускатиметься автоматично під час створення заявки. У ході виконання відбуватиметься зміна статусу заявки, отримання керівника підрозділу та надсилання поштового повідомлення про нову заявку керівнику. Для визначення керівника ми маємо довідник «Підрозділи»:
Створюємо Power Automate потік:
Під час виконання цього потоку керівник підрозділу отримує поштове повідомлення про створення нової заявки та може перейти за посиланням, щоб ухвалити рішення, натиснувши на кнопку:
Натискання кнопки «Узгодити» або «Відхилити» також призводить до запуску Power Automate потоку, який здійснює зміну статусу заявки та надсилання поштового повідомлення фахівцю HR:
Процес готовий.
команди
І фінальний штрих - організація спільної роботи з цим процесом. Для цього підключаємо процес до команди MS Teams:
Тепер у всіх учасників команди MS Teams є доступ до процесу виходу нових співробітників на окремій вкладці.
Звичайно, в логіці потоку можна передбачити багатоступінчасте узгодження плюс є можливість використовувати компонент Approvals для призначення завдань Power Automate. Також можна налаштувати звіти та сформувати повідомлення, які будуть надсилатися до чат-боту Microsoft Teams. Але про це у наступних статтях. Дякуємо за увагу та гарного всім дня!
Джерело: habr.com