Як модульний застосунок допомагає нам обмінюватись даними у кризові часи

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті.

Привіт!

Мене звати Олександр Пронькін, Chief Information Officer, Consultant, в компанії Infopulse. У березні 2022 року команда IT-департаменту розробила Infopulse Connect — застосунок, що дозволяє спеціалісту в один клік оновити інформацію про своє розташування, а команді BCP (Business Continuity Planning) — отримати аналітичні дані для швидкого і таргетованого реагування на зміни ситуації в країні.

Ідея з’явилась у перші дні війни, коли ми усвідомили, що маємо знати, де знаходяться наші спеціалісти, у якому стані та з якими проблемами вони зіткнулись. Компанія потребувала інструменту, завдяки якому можна перевірити локацію й оперативно надати допомогу у разі потреби.

В цій статті я розповім про сам продукт Infopulse Connect — це модульний застосунок для розв’язання задач Business Continuity, який може стати дієвим інструментом для менеджменту в кризовий час.

Час не чекає

Коли розпочалась масова релокація, компанія мала знати, де перебувають спеціалісти. Заздалегідь побудовані процеси зв’язку йшли через електронну пошту, але інформації було забагато, тому потрібен був додатковий інструмент — простий у користуванні, з можливістю підключатись до нього без обов’язкового підключення до корпоративного VPN, з будь-якого зручного для співробітника пристрою: ноутбука, смартфона чи планшета, та на будь-якій ОС.

Спершу ми орієнтувались на створення персонального кабінету, в якому спеціаліст матиме можливість надати інформацію про себе, емоційний та фізичний стан, запросити допомогу чи зробити заявку на релокацію. В умовах критичної ситуації ми не мали часу вивчати аналогічні рішення на ринку та «надихатись» наявними напрацюваннями, тому взяли за основу Microsoft Power Platform. Вона дозволяє на високому рівні розробляти застосунки з мінімалістичним інтерфейсом у стислі терміни — за кілька тижнів чи навіть днів.

У нашому випадку зранку сформувалась невідкладна потреба компанії, а ввечері користувачі вже вносили дані з будь-яких девайсів, що у них були під рукою.

Що всередині

Цей застосунок — Data-Driven продукт, що дозволяє компанії аналізувати та приймати управлінські рішення на основі даних, які надали спеціалісти. До ери Data-Driven бізнес зазвичай спирався на HiPPO (Highest Paid Person’s Opinion) підхід, тобто не завжди об’єктивні дані про ситуацію, які надає керівник чи менеджер компанії.

Сховищем даних ми обрали SharePoint Online, тому що він добре інтегрується з Microsoft Power Platform, на ньому доволі легко організувати рольову модель роботи з даними й це не вимагає додаткових витрат на користування.

Power Apps допоміг організувати інтерфейс взаємодії з даними з різних видів пристроїв, розбити їх на категорії, зробити валідації та отримувати GPS відомості з пристроїв.

За створення власних звітів та інформаційних панелей відповідає Power BI, в якому використовуються дані, що надані користувачами, а також майстер-дані компанії. Такий вид звіту для сервісних груп містить зрізи за департаментами, проєктами, глобально по компанії, а також сегментує їх за локацією відносно рівня безпеки.

Power Automate автоматизує прості сценарії, наприклад, нотифікації сервісних груп по факту внесення інформації користувачами й заповнення додаткових технічних даних.

Для складніших дій ми використали Azure Functions, який дозволяє взаємодіяти зі сховищами даних, здійснювати ефективну валідацію даних та реалізувати додатковий функціонал роботи з рольовою моделлю.

Окремо хотілося б зупинитися на останньому моменті, пов’язаному з реалізацією розширеної рольової моделі управління доступом з використанням Azure Functions.

В компанії значна увага приділяється питанням захисту корпоративної інформації і саме використання Azure Functions дозволило ефективно і гнучко обробляти вхідні дані та реалізувати динамічне налаштування доступу до даних застосунку в SharePoint Online, відповідно до корпоративних політик.

В нижче наведеному прикладі проілюстровано частину коду, як за допомогою PowerShell та Azure Functions в якості EventReciever можна реалізовувати роботу з рольовою моделлю:

# Instruct the context to get the item that has fired the current action thread
$item = $ctx.Web.Lists.GetByTitle($listName).GetItemById($itemId);
$ctx.Load($item);
$ctx.Load($item.RoleAssignments);
 
# Do the requested actions on SharePoint
$ctx.ExecuteQuery();
 
# Instruct the context to break inheritance and return the list of users if it has been already broken
$item.BreakRoleInheritance($false,$true);
 
# Instruct the context to remove old permission assignments
for($i = $item.RoleAssignments.Count - 1; $i -gt -1; $i--) { 	$item.RoleAssignments[$i].DeleteObject(); }
 
# Instruct the context to fill variables with necessary information
$serviceGroup = $ctx.Web.SiteGroups.GetByName($fullControlGroupName);
$fullControlRole = $ctx.Web.RoleDefinitions.GetByName("Full Control");
$editRole = $ctx.Web.RoleDefinitions.GetByName("Edit");
$person = $ctx.Web.EnsureUser($item[$personField].Email);
 
# Instruct the context to add an 'Edit' role to a person
$editRoleBindCollection = [Microsoft.SharePoint.Client.RoleDefinitionBindingCollection]::new($ctx); $editRoleBindCollection.Add($editRole);
$out = $item.RoleAssignments.Add($person, $editRoleBindCollection);
 
# Instruct the context to add a 'Full Control' role to a service group $fullControlRoleBindCollection = [Microsoft.SharePoint.Client.RoleDefinitionBindingCollection]::new($ctx); $fullControlRoleBindCollection.Add($fullControlRole); $out = $item.RoleAssignments.Add($serviceGroup, $fullControlRoleBindCollection);
 
# Do the requested actions on SharePoint
$ctx.ExecuteQuery();

Single point of contact дозволив категоризувати потреби між сервісними групами за напрямком запиту. Єдиний інтерфейс для взаємодії з великою кількістю датасорсів, але з точки зору користувача — це все єдиний інтерфейс.

Infopulse Connect інтегрується з платформами Microsoft 365 та Azure. Щоб додаток працював стабільно, девайс має відповідати заявленим вимогам до пристрою від (Microsoft, n.d.).

Робота над помилками

В умовах обмеженого часу корективи у додаток ми вносили «на льоту». Ми розмістили його та тестували на SaaS з хорошим SLA, що дало нам максимум можливостей для цього в режимі Uptime для перевірки всіх компонентів рішення, а також орієнтувались на фідбек від користувачів.

Ще одна з переваг створення застосунків на базі Microsoft Power Platform — це швидкість. Рамкове рішення ми мали за тиждень, впродовж 1,5 місяців додавали опції, такі як запити на фінансову компенсацію, пошук роботи для членів родини спеціаліста, можливість надати фідбек про застосунок, та розширювали набір даних у формах та звітах.

Все це дозволило розвантажити сервісні групи або працювати з менш критичними даними.

Доступні опції Infopulse Connect:

— Актуалізація контактних даних.
— Запит на релокацію.
— Повідомлення поточної локації вручну чи за допомогою GPS.
— Запити на фінансову компенсацію.
— Повідомлення про готовність працювати/ потребу у моральній підтримці.
— Повідомлення про членів родини, які шукають роботу.
— Запит «потрібна допомога».
— Адресні Pop-up повідомлення та їхній дубляж на пошту.
— Надання зворотного зв’язку про застосунок та його окремі властивості.
— Рольова модель для організації необхідного доступу.
— Аналітика на підставі поданих даних.

Чому подібна технологія корисна для бізнесу

Застосунок створюється під конкретну потребу і є дієвим інструментом для комплексного охоплення запиту компанії. Подібний продукт не є статичним. Він може регулярно доповнюватись в залежності від потреб бізнесу.

Основні його переваги — це швидкість створення та ціна обслуговування. Infopulse цей сервіс коштує $1 на місяць.

👍ПодобаєтьсяСподобалось4
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Infopulse цей сервіс коштує $1 на місяць.

PowerApps — $5 per user/app/month
Microsoft 365 Business Standard — $12.50 per user per month or Sharepoint online $5 per user per month
Azure Functions — ?

Безкоштовно якщо в тебе Office 365 + апка на базових конекторах

Підписатись на коментарі