Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Решения используются для распространения Power Platform объектов, таких как приложения, таблицы, потоки, веб-ресурсы и подключаемые модули. В этой статье представлена функция проверки решений, мощный инструмент, которое выполняет всесторонний статический анализ объектов решения в соответствии с набором правил передового опыта. С помощью средства проверки решений можно быстро выявлять проблемные шаблоны в компонентах и получать подробные отчеты, в которых подчеркиваются проблемы и затронутые компоненты, а также содержатся ссылки на документацию по устранению каждой проблемы. Это гарантирует, что ваши решения будут оптимизированы с точки зрения производительности, стабильности и надежности.
Средство проверки решений работает с неуправляемыми решениями, которые можно экспортировать из среды.
Средство проверки решений можно запустить либо из Power Apps (make.powerapps.com), либо с помощью PowerShell.
Как средство проверки решений поможет вам
Чтобы обеспечивать сложные бизнес-требования, создатели часто могут в конечном счете создавать в высокой степени развитые приложения, которые настраивают и расширяют Power Platform. Со сложными реализациями возникает риск возникновения проблем производительности, устойчивости и надежности, что может отрицательно повлиять на опыт работы пользователя. Выявление этих проблем и разработка способов их устранения может быть сложной задачей, требующей много времени. С функцией проверки решения можно выполнить проверку решений в течение нескольких секунд для ваших решений по набору правил передового опыта и быстро выявить эти проблемные закономерности. После завершения проверки вы получите подробный отчет в Power Apps, а также сообщение электронной почты со списком выявленных проблем, затронутыми компонентами и кодом, а также со ссылками на документацию, в которой описываются способы решения каждой проблемы.
Средство проверки решений анализирует этих компоненты решений:
- Действия настраиваемого рабочего процесса Dataverse
- Веб-ресурсы Dataverse (HTML и JavaScript)
- Конфигурации Dataverse, такие как шаги сообщения пакета SDK
- Потоки Power Automate (с помощью средства проверки потоков)
- Выражения Power Fx (с помощью средства проверки приложений)
Заметка
- Средство проверки решений поддерживает глобальные переменные для ECMAScript 2015 (ES6) и вплоть до синтаксиса ECMAScript 2018 (ES9). Когда JavaScript обнаружен с использованием глобальных переменных позже ES6 или синтаксиса более позднего, чем ES9, сообщается о проблеме неподдерживаемого в веб синтаксиса для веб-ресурса.
- Использование средства проверки решения не гарантирует, что импорт решения будет успешным. Проверки статического анализа, выполняемые для решения, не знают настроенного состояния целевой среды, и успех импорта может зависеть от других решений или конфигураций в среде.
Запуск средства проверки решений
Выполните вход в Power Apps.
В левой области выберите Решения. Если этого пункта нет на боковой панели, выберите …Еще, а затем выберите нужный пункт.
Рядом с неуправляемым решением, которое требуется проанализировать, выберите пункт ..., укажите на пункт Средство проверки решений, затем выберите Выполнить.
Кнопка команды Средство проверки решений имеет индикатор загрузки, и вы заметите состояние Выполняется… в столбце Проверка решения списка Решение.
Заметка
- Средству проверки решений может потребоваться несколько минут для выполнения анализа.
- Вы получите уведомление по электронной почте и уведомление в области Уведомления сайта Power Apps после завершения проверки.
- Просмотрите отчет, когда проверка будет завершена.
Отмена проверки
После отправки проверки решения в вашу среду проверку можно отменить через панель состояния в верхней правой области страницы Решения.
Если вы отмените проверку, выполнение средства проверки решений прекращается, и состояние проверки решения возвращается к предыдущему состоянию.
Состояния средства проверки решений
При установке средства проверки решений в среду столбец Проверка решения становится доступной в списке Решения. В этом столбце отображаются состояния анализа решения для решения.
область | Описание |
---|---|
Не запускалось | Решение никогда не было проанализировано. |
Выполняется | Решение анализируется. |
Не удалось завершить | Анализ решения был запрошен, но анализ не удается завершить успешно. |
Результаты на дата и время | Завершен анализ решения и результаты доступны для загрузки. |
Не удалось завершить. Результат на дата и время | Самый последний запрос анализа не был успешно завершен. Последние успешные результаты можно загрузить. |
Проверено Microsoft | Это решение управляется Microsoft. Анализ решения не разрешен для этих решений. |
Проверено издателем | Это решение не управляется Microsoft. В настоящее время анализ решения недоступен для таких решений. |
Просмотр отчета средства проверки решений
После завершения проверки решения можно просматривать отчет анализа на портале или можно загрузить отчет из веб-браузера. На портале имеется возможность можно сортировать результаты по параметру Проблема, Местоположение или Важность, а также просматривать подробные сведения о проблемах, обнаруженных в решении.
В левой области выберите Решения. Если этого пункта нет на боковой панели, выберите …Еще, а затем выберите нужный пункт.
Рядом с неуправляемым решением, где нужно просмотреть отчет средства проверки решения, выберите ..., укажите на Средство проверки решений, затем выберите Показать результаты.
Выберите проблему для просмотра сведений о ней и возможных способов решения.
Результаты проверки решения также доступны для загрузки. ZIP-файл средства проверки решения загружается в папку, указанную веб-браузером. Загружаемый отчет представлен в формате Excel и содержит несколько визуализаций и столбцов, помогающих в идентификации влияния, типа и расположения каждой проблемы, обнаруженной в решении. Ссылка на детальную инструкцию о том, как устранить проблему, также предусмотрена.
- В левой области выберите Решения. Если этого пункта нет на боковой панели, выберите …Еще, а затем выберите нужный пункт.
- Рядом с неуправляемым решением, где нужно загрузить отчет средства проверки решения, выберите ..., укажите на Средство проверки решений, затем выберите Загрузить результаты.
- ZIP-файл средства проверки решения загружается в папку, указанную веб-браузером.
Здесь приведена сводка каждого столбца в отчете.
Столбец отчета | Описание: | Относится к компоненту |
---|---|---|
Выпуск | Заголовок проблемы, выявленной в решении. | Все |
Категория | Классификация выявленной проблемы, например Производительность, Удобство обслуживания, Использование, Поддержка, Дизайн, Безопасность, Специальные возможности или Готовность к обновлению. | Все |
Серьезность | Представляет собой потенциальную воздействие определенной проблемы. Доступные типы неблагоприятного воздействия: Критический, Высокий, Средний, Низкий и Информационный. | Все |
Руководство | Ссылка на статью с подробными сведениями о проблеме, ее влиянии и рекомендуемом действии. | Все |
Компонент | Компонент решения, в котором была выявлена проблема. | Все |
Location | Расположение и/или исходный файл компонента, в котором возникла выявленная проблема, например сборка или имя файла JavaScript. | Все |
Номер строки | Ссылка на номер строки для проблемы в затронутом компоненте веб-ресурса. | Веб-ресурсы |
Модуль | Имя модуля, в котором была обнаружена ошибка, выявленная в сборке. | Настраиваемое действие бизнес-процесса |
Тип | Тип проблемы, выявленной в сборке. | Настраиваемое действие бизнес-процесса |
Элемент | Участник проблемы, выявленной в сборке. | Настраиваемое действие бизнес-процесса |
Оператор | Оператор или конфигурация кода, которая привела к проблеме. | Все |
Комментарии | Подробные сведения о проблеме, содержащие шаги разрешения высокого уровня. | Все |
Локальное выполнение правил средства проверки решений
Вы можете выполнять правила средства проверки решений в своей среде разработки, чтобы обнаруживать проблемы гораздо быстрее по мере создания ресурсов решения. В настоящее время это поддерживается для веб-ресурсов (JavaScript и TypeScript). Для получения более подробной информации перейдите к пакету NPM @microsoft/eslint-plugin-power-apps.
Запуск средства проверки решений с помощью PowerShell
Модуль PowerShell доступен, который можно использовать, чтобы взаимодействовать непосредственно с сервисом. Модуль Microsoft.PowerApps.Checker.PowerShell можно использовать для анализа неуправляемых решений для сред Power Apps или для автоматизации и интеграции сервиса в каналы сборки и выпуска. Дополнительные сведения: Обзор Microsoft.PowerApps.Checker.PowerShell
Правила рекомендаций, используемые средством проверки решений
В следующей таблице приведены тип компонента, описание правила, серьезность и категория. Критические нарушения блокируются или приводят к выводу предупреждений, когда для них настроено принудительное применение средства проверки решений в управляемых средах. Дополнительная информация: Использование средства проверки решения в управляемых средах
Компонент решения | Имя правила | Описание правила | Серьезность | Категории |
---|---|---|---|---|
Подключаемый модуль или действие бизнес-процесса | мета-удалить-дублирующую-регистрацию | Избегайте дублирования регистрации подключаемых модулей Dataverse. | Критическое | Производительность |
Подключаемый модуль или действие бизнес-процесса | мета-избегать-регистрации-без-атрибутов | Включите атрибуты фильтрации в регистрации подключаемых модулей Dataverse. | Средняя | Производительность |
Подключаемый модуль или действие бизнес-процесса | мета-избегать-регистрации-для-извлечения | Соблюдайте осторожность с подключаемыми модулями Dataverse, зарегистрированными для сообщений Retrieve и RetrieveMultiple. | Средняя | Производительность |
Подключаемый модуль или действие бизнес-процесса | мета-удалить-неактивный | Удалите неактивные конфигурации в Dataverse. | Низкая | Удобство поддержки |
Подключаемый модуль или действие бизнес-процесса | мета-избегать-событие-crm4 | Не используйте этап регистрации подключаемого модуля Microsoft Dynamics CRM 4.0. | Средняя | Готовность к обновлению |
Подключаемый модуль или действие бизнес-процесса | мета-избегать-извлечения-нескольких-аннотаций | Избегайте регистрации подключаемого модуля для RetrieveMultiple аннотации. | Высокая | Использование |
Приложение на основе моделей | meta-license-sales-entity-operations | Решение содержит сущности с ограниченными сообщениями пакета SDK, для которых требуется действующая лицензия Dynamics 365. | Низкая | Лицензирование |
Приложение на основе моделей | meta-license-fieldservice-customcontrols | Решение содержит настраиваемые элементы управления, для которых требуется действующая лицензия Dynamics 365 Field Service. | Низкая | Лицензирование |
Приложение на основе моделей | meta-license-fieldservice-entity-operations | Решение содержит сущности с ограниченными сообщениями и операциями SDK, требующими действующей лицензии Dynamics 365 Field Service. | Низкая | Лицензирование |
Веб-ресурсы | use-async | Взаимодействуйте с ресурсами HTTP и HTTPS асинхронно. | Критическое | Производительность |
Веб-ресурсы | avoid-modals | Не используйте модальные диалоги. | Высокая | Возможность поддержки |
Веб-ресурсы | avoid-dom-form | Высокая | Возможность поддержки | |
Веб-ресурсы | avoid-dom-form-event | Высокая | Возможность поддержки | |
Веб-ресурсы | avoid-crm2011-service-odata | Не используйте в качестве цели конечную точку Microsoft Dynamics CRM 2011 OData 2.0. | Критическое | Готовность к обновлению |
Веб-ресурсы | avoid-crm2011-service-soap | Не используйте в качестве цели службы Microsoft Dynamics CRM 2011 SOAP. | Критическое | Готовность к обновлению |
Веб-ресурсы | avoid-loadtheme | Не используйте API loadTheme Fluent v8. |
Низкая | Возможность поддержки |
Веб-ресурсы | avoid-browser-specific-api | Не используйте устаревшие API-интерфейсы Internet Explorer или подключаемые модули браузера. | Критическое | Готовность к обновлению |
Веб-ресурсы | avoid-unpub-api | Высокая | Возможность поддержки | |
Веб-ресурсы | avoid-window-top | Высокая | Возможность поддержки | |
Веб-ресурсы | avoid-2011-api | Не используйте устаревшую объектную модель Microsoft Dynamics CRM 2011. Вместо этого следуйте документации на Веб-API Dataverse. | Высокая | Готовность к обновлению |
Веб-ресурсы | use-relative-uri | Не используйте абсолютные URL-адреса конечной точки Dataverse. | Средняя | Удобство поддержки |
Веб-ресурсы | use-cached-webresource | Средняя | Производительность | |
Веб-ресурсы | use-client-context | Используйте контексты клиента. | Средняя | Готовность к обновлению |
Веб-ресурсы | use-navigation-api | Используйте параметры API навигации. | Средняя | Готовность к обновлению |
Веб-ресурсы | use-offline | Средняя | Готовность к обновлению | |
Веб-ресурсы | do-not-make-parent-assumption | Высокая | Проект | |
Веб-ресурсы | use-org-setting | Используйте параметры организации. | Средняя | Готовность к обновлению |
Веб-ресурсы | use-global-context | Средняя | Готовность к обновлению | |
Веб-ресурсы | use-grid-api | Используйте API-интерфейсы сетки. | Средняя | Готовность к обновлению |
Веб-ресурсы | use-utility-dialogs | Средняя | Использование | |
Веб-ресурсы | avoid-isActivityType | Замените метод Xrm.Utility.isActivityType новым методом Xrm.Utility.gettableMetadata и не используйте в правилах ленты. | Средняя | Готовность к обновлению |
Веб-ресурсы | мета-избегать-Silverlight | Использование веб-ресурса Silverlight устарело. | Средняя | Готовность к обновлению |
Веб-ресурсы | удалите-отладочный-скрипт | Не включайте отладочный скрипт в средах, отличных от среды разработки. | Средняя | Использование |
Веб-ресурсы | использование-строгого-режима | При возможности используйте строгий режим. | Средняя | Использование |
Веб-ресурсы | используйте-операторы-строгого-равенства | Используйте операторы строгого равенства. | Средняя | Использование |
Веб-ресурсы | избегайте-eval | Не используйте функцию eval или ее функциональные эквиваленты. |
Критическое | Группа безопасности |
Веб-ресурсы | avoid-with | Не используйте оператор 'with'. | Высокая | Производительность |
Веб-ресурсы | предупреждение-удаления | Не используйте функцию "alert" или ее функциональные эквиваленты. | Средняя | Использование |
Веб-ресурсы | консоль-удаления | Избегайте использования методов на консоли. | Средняя | Использование |
Веб-ресурсы | avoid-ui-refreshribbon | Избегайте использования refreshRibbon в форме onload и EnableRule. | Критическое | Производительность |
Веб-ресурсы | use-getsecurityroleprivilegesinfo | Избегайте Avoid userSettings.securityRolePrivileges. Вместо этого используйте userSettings.getSecurityRolePrivilegesInfo. | Высокая | Производительность |
Веб-ресурсы | use-appsidepane-api | Используйте Xrm.App.sidePanes.createPane вместо of Xrm.Panels.loadPanel. | Средняя | Готовность к обновлению |
Веб-ресурсы | web-sdl-no-cookies | Файлы cookie HTTP — это старый механизм хранения на стороне клиента с присущими ему рисками и ограничениями. Используйте вместо них интернет-хранилище, IndexedDB или другие современные методы. | Средняя | Группа безопасности |
Веб-ресурсы | web-sdl-no-document-domain | Операции записи в свойство document.domain во избежание обхода проверок на один источник. Использование доменов верхнего уровня, таких как azurewebsites.net, строго запрещено. | Средняя | Группа безопасности |
Веб-ресурсы | web-sdl-no-document-write | Вызовы document.write или document.writeln предполагают непосредственное манипулирование моделью DOM без какой-либо очистки, и их следует избегать. Используйте вместо них document.createElement() или аналогичные методы. | Средняя | Группа безопасности |
Веб-ресурсы | web-sdl-no-html-method | Прямые вызовы метода html() часто (например, в фреймворке jQuery) манипулируют DOM без какой-либо очистки, и их следует избегать. Используйте вместо них document.createElement() или аналогичные методы. | Средняя | Группа безопасности |
Веб-ресурсы | web-sdl-no-inner-html | Присвоение значений свойствам innerHTML или outerHTML предполагает непосредственное манипулирование моделью DOM без какой-либо очистки, и их следует избегать. Используйте вместо них document.createElement() или аналогичные методы. | Средняя | Группа безопасности |
Веб-ресурсы | web-sdl-no-insecure-url | Небезопасные протоколы, такие как HTTP или FTP, следует заменить их шифрованными аналогами (HTTPS, FTPS), чтобы избежать отправки потенциально конфиденциальных данных по ненадежным сетям в виде открытого текста. | Средняя | Группа безопасности |
Веб-ресурсы | web-sdl-no-msapp-exec-unsafe | Вызовы MSApp.execUnsafeLocalFunction() обходят проверку на внедрение скрипта, и их следует избегать. | Средняя | Группа безопасности |
Веб-ресурсы | web-sdl-no-postmessage-star-origin | Всегда указывайте конкретное происхождение цели, а не * при отправке данных в другие окна с помощью postMessage, чтобы избежать утечки данных за пределы границы доверия. | Средняя | Группа безопасности |
Веб-ресурсы | web-sdl-no-winjs-html-unsafe | Вызовы WinJS.Utilities.setInnerHTMLUnsafe() и подобные методы не выполняют проверку входных данных, и их следует избегать. Используйте вместо этого WinJS.Utilities.setInnerHTML(). | Средняя | Группа безопасности |
Canvas App | проблемы-формул-приложений-высокой-важности | Дополнительные сведения приведены в справочнике по формулам Power Apps. | Критическое | Проект |
Canvas App | проблемы-формул-приложений-средней-важности | Дополнительные сведения приведены в справочных руководствах по формулам Power Apps. | Средняя | Проект |
Canvas App | проблемы-формул-приложений-низкой-важности | Дополнительные сведения приведены в справочных руководствах по формулам Power Apps. | Низкая | Проект |
Canvas App | приложение-использует-отложенный вывод-ввода-текста | Используйте отложенную загрузку в некоторых сценариях для повышения производительности. | Средняя | Производительность |
Canvas App | элементы-управления-приложение-уменьшенный-экран | Ограничьте количество элементов управления приложения для повышения производительности. | Средняя | Производительность |
Canvas App | приложение-включает-доступный-ярлык | Используйте явные ярлыки, чтобы улучшить доступность приложения. | Средняя | Специальные возможности |
Canvas App | приложение-включает-альтернативный-ввод | Убедитесь, что все интерактивные элементы доступны для альтернативных способов входа. | Средняя | Специальные возможности |
Canvas App | приложение-избегайте-автозапуска | Избегайте использования автозапуска для проигрывателей в приложении. | Средняя | Специальные возможности |
Классический поток | desktopflow-avoid-unsafe-password | Управление паролями в потоке осуществляется небезопасным образом. | Высокая | Группа безопасности |
Классический поток | desktopflow-avoid-subflow-recursion | Обнаружены рекурсивные вызовы между подпотоками, потенциально способные вызвать бесконечный цикл. | Средняя | Проект |
Классический поток | desktopflow-avoid-infinite-loop | В потоке обнаружен бесконечный цикл, из-за которого он может выполняться бесконечно. | Средняя | Проект |
Классический поток | desktopflow-avoid-incomplete-if-branch | Обнаружено неполное действие if (без содержимого или содержащее действия только в ветви else). | Низкая | Проект |
Классический поток | desktopflow-avoid-excessive-nested-ifs | Вложенность инструкций if превышает пять уровней. | Низкая | Удобство поддержки |
Классический поток | desktopflow-avoid-empty-on-error-block | Действие "Ошибка в блоке" пусто и не обрабатывает ошибки. | Низкая | Проект |
Классический поток | desktopflow-limit-argument-count | Общее количество входных/выходных переменных превышает лимит в 25 переменных. | Низкая | Удобство поддержки |
Классический поток | desktopflow-input-argument-default-value | У входных/выходных переменных нет значений по умолчанию. | Низкая | Удобство поддержки |
Классический поток | desktopflow-limit-variable-name-length | Длина имени переменной превышает 25-символьный лимит. | Низкая | Удобство поддержки |
Классический поток | desktopflow-avoid-excessive-wait-actions | Обнаружено злоупотребление действиями ожидания: более 10 действий ожидания, что потенциально приводит к возникновению узких мест. | Низкая | Производительность |
Классический поток | desktopflow-avoid-immense-wait-duration | Обнаружено чрезмерное время ожидания, превышающее 600-секундный лимит для жестко закодированных действий ожидания. | Низкая | Производительность |
См. также
Рекомендации и инструкции для Dataverse
Рекомендации и советы для управляемых моделью приложений
Общие проблемы и их разрешение для средства проверки решений