Общие сведения об источниках данных для приложений на основе холста

В 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.

  • Работая с приложением, пользователи могут создавать, изменять и удалять записи, а также передавать соответствующие изменения в базовую таблицу в службе.

    • Записи можно создавать с помощью функций Patch и Collect.
    • Записи можно изменять с помощью функций Patch, Update и UpdateIf.
    • Записи можно удалять с помощью функций Remove и RemoveIf.
    • Ошибки, возникающие при работе с источником данных, можно просмотреть с помощью функции Errors.
  • Используя функции 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 можно сохранить и перезагрузить копию коллекции. Сведения хранятся в безопасном месте, к которому не могут получить доступ другие пользователи, приложения или устройства.
  • С помощью элементов управления Экспорт и Импорт (Импорт) можно сохранить и перезагрузить копию коллекции в файл, с которым пользователь может взаимодействовать.

Дополнительные сведения о работе с коллекцией в качестве источника данных см. в статье о создании и обновлении коллекции.

Коллекции обычно используются для хранения сведений об общем состоянии приложения. Дополнительные сведения о возможностях управления состоянием см. в статье о работе с переменными.

Примечание

Каковы ваши предпочтения в отношении языка документации? Пройдите краткий опрос (обратите внимание, что этот опрос представлен на английском языке).

Опрос займет около семи минут. Личные данные не собираются (заявление о конфиденциальности).