Изоляция проблем в приложениях холста
Приложения на основе холста позволяют создавать приложения с различными визуальными элементами и различными подключениями к данным. Используйте IntelliSense и средство проверки приложений в качестве защиты от распространенных проблем. Мониторинг и панель "Переменные" могут помочь в отладке.
Ниже приведены некоторые другие методы изоляции проблем в приложении холста.
Проверка формул с помощью меток отладки
Формулы могут быть сложными. Когда вещи идут не так, это может быть трудно определить, какая часть не удалось. Метки отладки — это полезный способ просмотра результатов различных частей формулы.
Метка отладки — это метка с его свойством Text, заданным для формулы интереса. Это позволяет точно узнать, как Power Apps обрабатывает эти формулы. Чтобы избежать ошибок области, вставьте метку отладки вне других элементов управления, таких как коллекция и форма.
Представьте, что элемент управления со списком отображается меньше ожидаемого, а параметры раскрывающегося списка пусты.
Проверьте, правильно ли настроено поле со списком. Например, для свойства Items задана сложная формула ниже:
AddColumns(
GroupBy(
Filter( Products, Rating > 4 ),
"ProductType",
"Details"
),
"Total quantity",
Sum( Details, Quantity )
)
Начните с самого внутреннего выражения Filter( Products, Rating > 4 )
. Вставьте метку отладки и задайте его свойство Text , чтобы проверить результат этого выражения. Некоторые полезные сведения для проверки:
- Проверьте, соответствует ли количество результатов следующим образом:
CountRows( Filter( Products, Rating > 4 ) )
- Проверьте первый результат и убедитесь, что фильтр работает должным образом:
"Rating of first result is " & First( Filter( Products, Rating > 4 ) ).Rating
- Проверьте результаты путем объединения их имен:
Concat( Filter( Products, Rating > 4 ), ProductName & ", ")
Совет
При работе с наборами данных таблицы отладки полезны для предварительного просмотра записей. Концепция похожа на отладочные метки. Вставьте таблицу данных со свойством Items, заданным для набора данных, интересующего вас.
Возможно, вы хотите использовать функции FirstN и LastN для повышения производительности с наборами данных.
Убедившись, что выражение вычисляется правильно, можно перейти к следующему внешнему выражению GroupBy( Filter( Products, Rating > 4 ), "ProductType", "Details" )
. Методично вы можете выяснить, какая часть сложного выражения не работает.
При использовании пустых параметров раскрывающегося списка начните со свойства DisplayFields . Представьте, что он установлен [ProductType]
. Используйте метку отладки, чтобы убедиться, что это поле распознается Power Apps и содержит текст. Так как все параметры раскрывающегося списка пусты, достаточно проверить любую запись. Давайте выберем первую запись и посмотрим, что такое его ProductType
поле. Задайте метку отладки следующими значениями:
First(
AddColumns(
GroupBy(
Filter( Products, Rating > 4 ),
"ProductType",
"Details"
),
"Total quantity",
Sum( Details, Quantity )
)
).ProductType
Если результат пуст, это может быть:
- Поле
ProductType
для этой записи действительно пусто. Если набор данных поступает извне приложения, проверьте его за пределами Power Apps. - Одно или несколько выражений не работают. Разорвать его, как описано выше, чтобы сузить его. Это может быть ошибка Power Apps или ошибка при написании формулы.
- Данные не достигают Power Apps. Это может быть сетевая проблема, проблема с источником данных или ошибка Power Apps.
Если результат содержит текст, скорее всего, это ошибка Power Apps с элементом управления. Вы можете сообщить об ошибке с помощью запроса на поддержку и использовать другой элемент управления в качестве обходного решения.
Попробуйте другой элемент управления
Чтобы узнать, связана ли проблема с определенным элементом управления, попробуйте использовать другой элемент управления с одинаковым типом входных или выходных данных.
Логический
Выбор и таблица
Дата и dateTime
Изображение и носитель
- HTML-текст
- Изображение
- Свойство изображения аудио, видео и микрофона
Число
Текст
Все типы
- Метка после преобразования значения в текст
Если одна и та же проблема возникает в другом элементе управления, проблема связана с формулами или источником данных, используемыми. Выполните описанные выше действия по отладке, чтобы изолировать проблему.
Если проблема возникает только в определенном типе элемента управления, скорее всего, это ошибка элемента управления. Вы можете сообщить об ошибке корпорации Майкрософт.
Попробуйте использовать другую структуру приложения
Формулы могут вести себя по-разному для элементов управления внутри другого элемента управления. Например, элементы управления внутри коллекции могут использовать ThisItem , но элементы управления за пределами коллекции не могут. Элементы управления вне коллекции или компонента не могут ссылаться на элементы управления внутри.
Эта другая видимость идентификаторов называется областью. Элементы управления, содержащие другие элементы управления, представляют новую область.
- Компонент
- Контейнер
- Форма отображения
- Форма изменения
- Галерея
- Горизонтальный контейнер
- Прокручиваемый экран (жидкая сетка)
- Вертикальный контейнер
Если формула не работает внутри автономного элемента управления, она может быть связана с области. Попробуйте использовать ту же формулу за пределами контейнера.
Например, элемент управления Label внутри коллекции должен отображать имя каждой записи, но текст не отображается. Label.Text имеет значение ThisItem.Name
. Коллекция.Items имеет значение Products
.
Чтобы проверить, является ли это проблемой области, вставьте метку отладки за пределами коллекции на верхнем уровне приложения. Задайте для свойства Text имя первой записи набора данных: First(Products).Name
Метка отладки должна иметь тот же результат, что и первая строка коллекции. Если нет, скорее всего, это ошибка области с Power Apps, которую можно сообщить с помощью запроса на поддержку. С другой стороны, если оба являются пустыми, проблема может быть связана с источником данных.
Некоторые возможные обходные пути для устранения проблем:
- Перемещение элементов управления за пределы контейнеров
- Ссылки на данные в глобальных или контекстных переменных
- Использование исправления для предотвращения использования элемента управления "Изменить форму"
Восстановление до более ранней версии
Если вы не внесли существенных изменений в приложение, и он внезапно перестал работать после повторной публикации, попробуйте восстановить его до предыдущей версии. Если он работает снова, просмотрите изменения, внесенные, чтобы увидеть, что могло бы сломать приложение.
Иногда ошибки могут появиться с новыми версиями Power Apps. И наоборот, новые версии могут привести к исправлению ошибок. служба поддержки Майкрософт можно порекомендовать, следует ли вернуться к более старой версии разработки или обновить ее до более новой. Помните, что поддержка нерекомендных версий ограничена, если вы изменяете версию разработки самостоятельно.
Создание минимального приложения repro
Процесс создания минимального приложения для повторного использования может выявить ошибки конфигурации приложений, которые не очевидны в сложном приложении. Даже если проблема не устранена, вы бы сузили причину и облегчили бы объяснить проблему другим пользователям.
Следующие шаги
Отладка приложений на основе холста с помощью монитора