Ознайомлення із джерелами даних для компонованих програм
Більшість програм у Power Apps використовують зовнішню інформацію, що зберігається у хмарних службах, які називаються Джерела даних. Поширений приклад — таблиця у файлі Excel, збереженому в OneDrive для бізнесу. Програми отримують доступ до цих джерел даних за допомогою Підключень.
У цій статті розглядаються різні типи джерел даних і способи роботи з джерелами даних із таблицями.
Програму, яка виконує базові читання та записування до джерела даних, створити дуже легко. Але іноді необхідно отримати більше можливостей для контролю потоків даних у програмі, як вхідних, так і вихідних. У цій статті описується, як отримати більше можливостей контролю, завдяки функціям Patch, DataSourceInfo, Validate та Errors.
Різновиди джерел даних
Джерела даних можуть бути підключені до хмарної служби, або вони можуть бути для програми локальними.
Підключені джерела даних
Найпоширеніші джерела даних — це таблиці, які можна використовувати для отримання та зберігання інформації. Ви можете використовувати підключення до джерел даних для читання та записування даних у книгах Microsoft Excel, списках, створених за допомогою Списків Microsoft, бібліотеках SharePoint, таблицях SQL і багатьох інших форматах, які можна зберігати в хмарних службах, як-от OneDrive для бізнесу, DropBox і SQL Server.
Джерела даних, які не містять таблиць, це, наприклад, електронна пошта, календарі, Twitter і сповіщення, але ця стаття не обговорює такі різновиди джерел даних.
Локальні джерела даних
За допомогою елементів керування "Галерея", "Форма відображення" та "Форма редагування", можна легко створити програму, яка читає та записує дані з джерела даних. Щоб розпочати роботу, прочитайте статтю, щоб "Що таке форми даних".
Коли ви просите Power Apps створити програму з даних, використовуються ці елементи керування. За лаштунками програма використовує внутрішню таблицю для зберігання та роботи з даними, що надходять з джерела даних.
Особливий тип джерела даних — це Колекція, що є локальним джерелом даних для програми і не має за собою підключення до служби у хмарі, тому інформація не буде доступною для спільного використання на різних пристроях тим самим користувачем або різними користувачами. Колекції можна завантажити та зберегти локально.
Типи таблиць
Таблиці, що є внутрішніми для програми Power Apps, — це фіксовані значення, тобто, значеннями є окремі числа або рядки. Внутрішні таблиці ніде не зберігаються, вони просто існують у пам'яті вашої програми. Структуру такої таблиці та дані у ній не можна змінювати безпосередньо. Замість цього ви можете створити нову таблицю за допомогою формулу: таку формулу можна використовувати для створення копії вихідної таблиці, у яку буде внесено певні зміни.
Зовнішні таблиці зберігаються в джерелі даних, звідки їх у подальшому можна отримати або надати для спільного доступу. Power Apps пропонує «підключення» для читання та записування збережених даних. У межах підключення ви можете отримувати доступ до багатьох таблиць із даними. Ви зможете вибрати, які таблиці слід використовувати у програмі, і кожна таблиця перетвориться на окреме джерело даних.
Щоб дізнатися більше, див. Робота з таблицями, де більш детально розглядаються відомості щодо внутрішніх таблиць, але зазначений розділ також може застосовуватись до зовнішніх таблиць, які зберігаються у хмарній службі.
Робота з таблицями
Ви можете використовувати джерела даних із таблицями так само, як використовуються внутрішні таблиці Power Apps. Аналогічно внутрішнім таблицям, кожне джерело даних містить записи, стовпці та властивості, які можна використовувати у формулах. Крім того:
Джерело даних має такі ж імена й типи даних стовпців, що й таблиця, до якої виконано підключення.
Примітка
Для джерел даних SharePoint і Excel, які містять імена стовпців із пробілами, Power Apps замінятиме пробіли на "_x0020_". Наприклад, ім'я стовпця "Column Name" у SharePoint або Excel відображатиметься у Power Apps як "Column_x0020_Name" при відображенні у макеті даних або використанні у формулі.
Джерело даних завантажується зі служби автоматично під час завантаження програми. Ви можете примусово оновити дані, використовуючи функцію Refresh.
Коли користувачі запускають програму, вони можуть створювати, змінювати та видаляти записи та надсилати ці зміни до основної таблиці в службі.
Функції DataSourceInfo, Defaults і Validate надають відомості про джерело даних, які можна використовувати для покращення взаємодії з користувачем.
Створення джерел даних
Power Apps не можна використовувати для створення підключеного джерела даних або змінення його структури; джерело даних повинно вже існувати в певній службі. Наприклад, щоб створити таблицю у книзі Excel, яка зберігається в OneDrive, спочатку використайте програму Excel Online із OneDrive, щоб створити книгу. Потім ви зможете створити підключення до неї у своїй програмі.
Проте, джерела даних типа Колекція можна створювати та змінювати у програмі, але зберегти назавжди ви їх не зможете.
Відображення одного або кількох записів
На схемі вище показано потік інформації при зчитуванні програмою відомостей з джерело даних.
- Відомості зберігаються та розподіляються між користувачами за допомогою служби зберігання даних (у цьому разі – Списки Microsoft або SharePoint Online).
- Підключення дозволяє використовувати ці відомості у програмі. Підключення подбає про автентифікацію користувача, який отримує доступ до відомостей.
- Під час запуску програми або при виконанні функції Refresh відомості передаються з джерела даних у програму для локального використання.
- Для зчитування відомостей і відображення їх в елементах керування, що їх бачитиме користувач, використовуються функції. Ви можете відобразити записи з джерела даних на екрані за допомогою елемента керування «Колекція», для якого у властивості Items вказано джерело даних: Gallery.Items = DataSource. Початкові значення для колекції ви можете вказати, використовуючи властивість Default елемента керування.
- Джерело даних також є таблицею. Тому ви можете використовувати функції Filter, Sort, AddColumns та інші, для уточнення та добудови джерела даних, а потім використовувати його, як єдине ціле. Крім того, для роботи з окремими записами можна використовувати функції Lookup, First, Last.
Змінення запису
У попередньому розділі ви побачили, як можна читати відомості з джерела даних. Зверніть увагу на те, що усі стрілки на схемі вище спрямовані в один бік. Зміни, внесені до джерела даних, не надсилаються назад тими ж формулами, якими їх було отримано. Натомість, для цього використовуються нові формули. Часто для редагування записів використовується інший екран, аніж для перегляду списку записів браузера, особливо на мобільних пристроях.
Зверніть увагу, що для того, щоб можна було змінити наявний запис у джерелі даних, запис повинен походити з джерела даних. Можливо, запис вже побував у колекції, із ним могли застосовуватися контекстні змінні та будь-яка кількість формул, але його походження повинно відстежуватися до джерела даних. Це важливо, оскільки разом із записом подорожують додаткові відомості, які однозначно його ідентифікують, гарантуючи, що ви змінюєте саме той запис, що потрібно.
На схемі вище відображається перебіг відомостей при оновленні джерела даних.
- Елемент керування Форма редагування надає контейнер для карток для введення, який складається з елементів керування вводу користувача, наприклад елемента керування введенням тексту або повзунка. Властивості DataSource та Item визначають запис, який необхідно змінити.
- Кожна картка для введення має властивість Default, яка зазвичай встановлюється, як поле запису ThisItem форми. Так елементи керування у картці для введення отримуватимуть вхідні значення з властивості Default. Зазвичай вам не потрібно буде змінювати це.
- Кожна картка для введення відображає властивість Update. Ця властивість зіставляє відомості, що вводяться користувачем із конкретним полем запису, у яке потрібно записати значення у джерелі даних. Зазвичай вам не потрібно буде змінювати це.
- Елемент керування Кнопка або Зображення на екрані дає змогу користувачу зберегти зміни у записі. Формула у властивості OnSelect елемента керування викликає функцію SubmitForm, яка виконує потрібні дії. SubmitForm зчитує значення усіх властивостей Update карток і використовує їх для запису змін до джерела даних.
- Час від часу виникатимуть проблеми. Підключення до мережі може не працювати, або яка-небудь служба, про яку не відомо програмі, може виконувати перевірки даних. Властивості Error та ErrorKind у елементі керування форми роблять цю інформацію доступною, і ви зможете відобразити її користувачеві.
Для більш тонкого контролю над процесом ви можете також використовувати функції Patch та Errors. Елемент керування Форма редагування має властивість Updates, щоб можна було читати значення полів у формі. Крім того, цю властивість можна використовувати для виклику настроюваного з'єднувача для підключення, повністю оминаючи функції Patch та SubmitForm.
Перевірка
Перш ніж вносити зміни до запису, програма має зробити усе можливе для того, щоб переконатися, що зміни є прийнятними. Для цього є дві причини.
- Негайне оповіщення користувача. Найкращий час виправити проблему — саме тоді, коли проблема виникає, поки вона зрозуміла користувачеві та ще не встигла забутися. Буквально після кожного натискання клавіші або дотику може з’являтися червоний текст із описом проблеми, що виникла внаслідок введення даних.
- Зменшення обсягу даних, що передаються та менша затримка для користувачів. Якщо більша кількість проблем буде описана у програмі при виникненні, менше доведеться обговорювати ситуацію із колегами у мережі для виявлення та виправлення помилок. Кожна розмова вимагає часу, і користувач не може рухатися далі, доки не дочекається відповіді.
Power Apps пропонує два засоби для перевірки.
- Джерело даних може надавати інформацію щодо того, що є припустимим для джерела, а що ні. Наприклад, може існувати мінімальне та максимальне значення для чисел, або ж може очікуватися єдиний запис або одразу кілька записів. Отримати доступ до цієї інформації ви можете за допомогою функції DataSourceInfo.
- Функція Validate використовує саме ці відомості для перевірки значення окремого стовпця або усього запису.
Обробка помилки
Вітаємо, ви перевірили запис. Настав час оновити цей запис за допомогою функції Patch!
Але, на жаль, проблеми все ще можуть виникнути. Мережа не працює, перевірка на службі не вдалася, або користувач не має достатніх дозволів — це лише кілька з можливих помилок, з якими ви можете стикнутися. Програма повинна належним чином реагувати на випадки, коли виникають помилки, і забезпечувати зворотній зв’язок, який дозволить сповістити користувача про помилку та надати можливість виправити ситуацію.
Якщо виникає помилка із джерелом даних, програма автоматично запише відомості про помилку та зробить їх доступними для функції Errors. Помилки пов’язуються із записами, з якими виникли відповідні проблеми. Якщо причина проблеми може бути усунута користувачем, наприклад, проблема виникає під час перевірки некоректно введених даних, користувач може повторно надіслати запис, і, таким чином, повідомлення про помилку будуть очищені.
Якщо помилка виникає під час створення запису функціями Patch або Collect, запис, із яким можна було б пов’язати помилку, відсутній. У цьому випадку функція Patch поверне blank (порожнє значення), яке можна буде передати в якості значення аргументу запису до функції Errors. Помилки під час створення видаляються з наступною операцією.
Функція Errors повертає таблицю із відомостями про помилку. Ці відомості можуть містити відомості, вказані в стовпцях, якщо помилка може бути віднесена до певного стовпця. Відображайте повідомлення про помилки на рівні стовпця у елементах керування підписами, близьких до розташування стовпців на екрані редагування. Розташовуйте повідомлення про помилки на рівні стовпця, для яких значення Стовпця у таблиці з помилкою є порожнім (blank), десь поблизу до кнопки Зберегти для усього запису
Робота з великими джерелами даних
Під час створення звітів із великих джерел даних (можливо, мільйони записів) потрібно звести до мінімуму мережний трафік. Припустімо, потрібно створити звіт щодо усіх клієнтів, які мають код стану StatusCode «Platinum» у Нью-Йорку. А у таблиці Клієнти — мільйони записів.
Ви не хочете завантажувати ці мільйони клієнтів до програми, а потім вибрати з них потрібних. Вам потрібно, щоб цей вибір виконувався у хмарній службі, де зберігається таблиця, і мережею надсилалися лише обрані записи.
Багато з функцій, які можна використовувати для вибору записів (але не усі), можуть бути делеговані, тобто, вони виконуватимуться в хмарній службі. Дізнайтесь, як цього досягти, ознайомившись із статтею Делегування.
Колекції
Колекції — це особливий тип джерел даних. Вони є локальними джерелами даних для програми і не мають за собою підключень до служби у хмарі, тому інформація не буде доступною для спільного використання на різних пристроях тим самим користувачем або різними користувачами. Вони діють, як і будь-які інші джерела даних, за кількома винятками.
- Колекції можна динамічно створювати за допомогою функції Collect. Їх не треба встановлювати заздалегідь, на відміну від джерел даних на основі підключень.
- Стовпці колекції можна змінювати будь-коли за допомогою функції Collect.
- У колекції дозволяється використовувати повтори записів. У колекції може існувати одна або більше копій одного й того самого запису. Такі функції, як, наприклад, Remove, оброблятимуть перший збіг, якщо не буде задано аргумент All (Усі).
- Ви можете використовувати функції SaveData і LoadData для збереження та завантаження копії колекції. Відомості зберігаються в приватному розташуванні, до якого не можуть отримати доступ інші користувачі, програми або пристрої.
- Ви можете зберегти у файл або завантажити з файлу копію колекції, використовуючи елементи керування Експорт та Імпорт, і користувач зможе взаємодіяти із цим файлом.
Для отримання додаткових відомостей про роботу з колекцією в якості джерела даних див. розділ створення та оновлення колекції.
Колекції зазвичай використовуються для зберігання глобального стану для програми. Див. робота зі змінними, щоб дізнатись, які існують можливості для керування станом.
Примітка
Розкажіть нам про свої уподобання щодо мови документації? Візьміть участь в короткому опитуванні. (зверніть увагу, що це опитування англійською мовою)
Проходження опитування займе близько семи хвилин. Персональні дані не збиратимуться (декларація про конфіденційність).