Общие сведения об источниках данных для приложений на основе холста
В 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_". Например, столбец "Имя столбца" из SharePoint или Excel будет отображаться как "Имя_x0020_столбца" в Power Apps при отображении в структуре данных или использовании в формуле.
Источник данных загружается из службы автоматически при загрузке приложения. Вы можете принудительно обновить данные с помощью функции Refresh.
Работая с приложением, пользователи могут создавать, изменять и удалять записи, а также передавать соответствующие изменения в базовую таблицу в службе.
Используя функции DataSourceInfo, Defaults и Validate, можно получить сведения об источнике данных, которые позволяют оптимизировать взаимодействие с пользователем.
Создание источников данных
С помощью Power Apps невозможно создать подключенный источник данных или изменить его структуру. Источник данных должен существовать в службе. Например, чтобы создать таблицу в книге Excel, хранимой в OneDrive, сначала требуется создать книгу с помощью Excel Online в OneDrive. Затем следует подключить приложение к ней.
Однако источники данных коллекции можно создавать и изменять внутри приложения. Но такие источники данных являются временными.
Отображение одной или нескольких записей
На схеме выше показана процедура передачи данных, когда приложение считывает сведения в источнике данных:
- Информация хранится и передается через службу хранения (в данном случае Microsoft Списки или SharePoint Online).
- За счет подключения приложение получает доступ к этим сведениям. Подключение служит для аутентификации пользователя с последующим получением доступа к данным.
- При запуске приложения или использовании функции Refresh сведения извлекаются из подключения в источник данных в приложении для локального использования.
- Формулы используются для чтения сведений и их представления в отображаемых элементах управления. Чтобы отобразить записи источника данных, используйте коллекцию на экране и запишите свойство Items в источник данных: Галерея.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 вернет пустое значение, которое может использоваться в качестве аргумента записи в функции Errors. Ошибки при создании удаляются со следующей операцией.
Функция Errors возвращает таблицу сведений об ошибках. Это могут быть сведения о столбце, если ошибку можно отнести к определенному столбцу. Используйте сообщения об ошибках на уровне столбца в элементах управления "Метка", которые находятся возле столбца на экране редактирования. Используйте сообщения об ошибках на уровне записей, где столбец в таблице ошибок является пустым, возле кнопки Сохранить для всей записи.
Работа с большими источниками данных
При создании отчетов из больших источников данных (возможно, миллионы записей) нужно максимально сократить объем сетевого трафика. Предположим, вам нужно сообщить обо всех пользователях, у которых в качестве свойства StatusCode указано Platinum в Нью-Йорке, а также о том, что в таблице "Клиенты" содержатся миллионы записей.
Вам не нужно переносить всех этих пользователей в приложение, а затем выбирать только нужных. Вам нужно, чтобы пользователи были выбраны в облачной службе, в которой хранится таблица, а по сети отправлялись только выбранные записи.
Многие (но не все) функции, которые можно использовать для выбора записей, можно делегировать. Это значит, что они выполняются в облачной службе. Дополнительные сведения о делегировании см. в этой статье.
Коллекции
Коллекции — это особый тип источника данных, который является локальным для приложения. Он не подключен к службе в облаке, поэтому данные невозможно использовать совместно на устройствах для одного или нескольких пользователей. Они действуют так же, как и любые другие источники данных, за некоторыми исключениями:
- Коллекции можно создавать динамически с помощью функции Collect. Их не нужно устанавливать заранее, как источники данных на основе подключения.
- Столбцы коллекции можно изменить в любое время, используя функцию Collect.
- В коллекциях можно использовать повторяющиеся записи. В коллекции может существовать несколько копий одной записи. Функции, такие как Remove, сработают при первом обнаруженном совпадении, если не указан аргумент All.
- С помощью функций SaveData и LoadData можно сохранить и перезагрузить копию коллекции. Сведения хранятся в безопасном месте, к которому не могут получить доступ другие пользователи, приложения или устройства.
- С помощью элементов управления Экспорт и Импорт (Импорт) можно сохранить и перезагрузить копию коллекции в файл, с которым пользователь может взаимодействовать.
Дополнительные сведения о работе с коллекцией в качестве источника данных см. в статье о создании и обновлении коллекции.
Коллекции обычно используются для хранения сведений об общем состоянии приложения. Дополнительные сведения о возможностях управления состоянием см. в статье о работе с переменными.
Примечание
Каковы ваши предпочтения в отношении языка документации? Пройдите краткий опрос (обратите внимание, что этот опрос представлен на английском языке).
Опрос займет около семи минут. Личные данные не собираются (заявление о конфиденциальности).