Mejorar el rendimiento, la estabilidad y la confiabilidad de la solución
Las soluciones se utilizan para distribuir objetos, como aplicaciones, tablas, flujos, recursos web y complementos. Power Platform Este artículo presenta la función de verificación de soluciones, una poderosa herramienta que realiza un análisis estático integral de los objetos de su solución frente a un conjunto de reglas de mejores prácticas . Al utilizar el verificador de soluciones, puede identificar rápidamente patrones problemáticos en sus componentes y recibir informes detallados que resaltan los problemas, los componentes afectados y proporcionan enlaces a la documentación sobre cómo resolver cada problema. Esto garantiza que sus soluciones estén optimizadas para el rendimiento, la estabilidad y la confiabilidad.
El comprobador de soluciones trabaja con soluciones no administradas que se pueden exportar desde un entorno.
Puede ejecutar el verificador de soluciones desde Power Apps (make.powerapps.com) o usando PowerShell.
Cómo le ayuda el verificador de soluciones
Para satisfacer requisitos comerciales complejos, los fabricantes a menudo pueden terminar con soluciones muy avanzadas que personalizan y amplían el Power Platform. Con implementaciones avanzadas aumenta el riesgo, pues se presentan problemas de rendimiento, estabilidad y fiabilidad que pueden afectar negativamente la experiencia de usuario. Identificar y comprender cómo resolver estos problemas puede ser complejo y laborioso. Con la función de verificación de soluciones, puede realizar una verificación en segundos de su solución, que utiliza un conjunto de reglas de mejores prácticas para identificar rápidamente patrones problemáticos. Una vez finalizada la verificación, recibirá un informe detallado en Power Apps , así como un mensaje de correo electrónico que enumera los problemas identificados, los componentes y el código afectados y enlaces a la documentación que describe cómo resolver cada problema.
El comprobador de soluciones analiza estos componentes de la solución:
- Actividades de flujo de trabajo personalizadas Dataverse
- Recursos web de Dataverse (HTML y JavaScript)
- Configuraciones de Dataverse, como pasos de mensajes de SDK
- Flujos de Power Automate (a través del comprobador de flujo)
- Expresiones de Power Fx (a través del comprobador de aplicaciones)
Nota
- El comprobador de soluciones admite variables globales para ECMAScript 2015 (ES6) y sintaxis hasta ECMAScript 2018 (ES9). Cuando se detecta que en JavaScript se utilizan variables globales posteriores a ES6 o una sintaxis posterior a ES9, se notifica un problema de sintaxis no admitida en web para el recurso web.
- El uso del verificador de soluciones no garantiza que la importación de una solución sea exitosa. Las comprobaciones de análisis estático realizadas contra la solución no conocen el estado configurado del destino ambiente y el éxito de la importación puede depender de otras soluciones o configuraciones en ambiente.
Ejecutar el comprobador de soluciones
Inicie sesión en Power Apps.
En el panel izquierdo, seleccione Soluciones. Si el elemento no se encuentra en el panel lateral, seleccione …Más y, a continuación, el elemento que desee.
Junto a la solución no administrada que desea analizar, seleccione ..., señale a Comprobador de soluciones y, a continuación seleccione Ejecutar.
El botón de comando Comprobador de soluciones tiene un indicador de carga y verá Ejecutando... en la columna Comprobación de solución de la lista Solución.
Nota
- El comprobador de soluciones puede tardar varios minutos en completar el análisis.
- Usted recibe un correo electrónico de notificación y una notificación en el área Notificaciones del sitio de Power Apps cuando finalice la comprobación.
- Vea el informe cuando finalice la comprobación.
Cancelar una comprobación
Después de enviar una comprobación de soluciones en el entorno, la comprobación se puede cancelar a través del panel de estado en el área superior derecha de la página Soluciones.
Cuando usted cancela una comprobación, la comprobación de la solución deja de ejecutarse y la comprobación de la solución vuelve al estado anterior.
Estados del comprobador de soluciones
Al instalar el comprobador de soluciones en el entorno, la columna Comprobación de solución pasa a estar disponible en la lista Soluciones. En esta columna se muestran los estados de análisis para una solución.
Estado | Descripción |
---|---|
No se ha ejecutado | La solución no se ha analizado. |
En ejecución | La solución se está analizando. |
No se pudo completar | El análisis de soluciones se ha solicitado pero no se ha completado correctamente. |
Resultados en la fecha y hora | El análisis de soluciones se ha completado y los resultados están disponible para descarga. |
No se pudo completar. Resultado en la fecha y hora | La última solicitud de análisis no se completó correctamente. Los últimos resultados correctos pueden descargarse. |
Comprobado por Microsoft | Esta es una solución administrada de Microsoft. El análisis de soluciones no está permitido en estas soluciones. |
Comprobado por el editor | Este es un solución administrada que no es de Microsoft. Actualmente, los análisis de soluciones no está disponible para estas soluciones. |
Revise el informe del comprobador de soluciones
Cuando se completa una comprobación de la solución, puede ver el informe de análisis en el portal o puede descargar el informe desde el explorador web. En el portal, tiene opciones de ordenar los resultados por Error, Ubicación o Gravedad y ver información detallada de los problemas detectados en la solución.
En el panel izquierdo, seleccione Soluciones. Si el elemento no se encuentra en el panel lateral, seleccione …Más y, a continuación, el elemento que desee.
Junto a la solución no administrada donde desea ver el informe del comprobador de soluciones, seleccione ..., señale a Comprobador de soluciones y, a continuación seleccione Ver resultados.
Seleccione un problema para ver los detalles y orientación sobre cómo resolverlo.
Los resultados de comprobación de la solución también están disponibles para descarga. El archivo zip del comprobador de soluciones se descarga en la carpeta especificada por el explorador web. El informe de descarga está en formato Excel y contiene varias visualizaciones y columnas que ayudan a identificar de impacto, tipo, y la ubicación de cada problema detectado en la solución. Un vínculo a orientación detallada sobre cómo resolver el problema también se proporciona.
- En el panel izquierdo, seleccione Soluciones. Si el elemento no se encuentra en el panel lateral, seleccione …Más y, a continuación, el elemento que desee.
- Junto a la solución no administrada donde desea descargar el informe del comprobador de soluciones, seleccione ..., señale a Comprobador de soluciones y, a continuación seleccione Descargar resultados.
- El archivo zip del comprobador de soluciones se descarga en la carpeta especificada por el explorador web.
Este es un resumen de cada columna del informe.
Columna de informe | Descripción | Se aplica al componente |
---|---|---|
Emitir | El título del problema identificado en la solución. | Todo |
Categoría | La categorización del problema identificado, como Rendimiento, Mantenibilidad, Uso, Compatibilidad, Diseño, Seguridad, Accesibilidad o Actualización de preparación. | Todos |
Gravedad | Representa el impacto potencial del problema identificado. Los tipos de impacto disponibles son Crítico, Alto, Medio, Bajo e Informativo. | Todos |
Instrucciones | Vínculo al artículo que detalla el problema, el impacto, y acción recomendada. | Todo |
Componente | El componente de soluciones donde se identificó el problema. | Todo |
Location | La ubicación y/o el archivo de origen del componente donde se produjo el problema que se ha identificado, como el ensamblado o el nombre de archivo JavaScript. | Todo |
Nº. de línea | La referencia de número de línea del problema en el componente del recurso web afectado. | Recursos web |
Módulo | Nombre del módulo donde se detectó el problema identificado en el ensamblado. | Actividad de flujo de trabajo personalizado |
Tipo | Tipo de problema identificado en el ensamblado. | Actividad de flujo de trabajo personalizado |
Miembro | Miembro del problema identificado en el ensamblado. | Actividad de flujo de trabajo personalizado |
Instrucción | La instrucción de código o configuración produjo el problema. | Todo |
Comentarios | Detalles acerca del problema que incluyen pasos de resolución de alto nivel. | Todos |
Ejecutar las reglas del comprobador de soluciones localmente
Puede ejecutar reglas del comprobador de soluciones en su entorno de desarrollo para detectar problemas mucho antes a medida que crea los recursos de la solución. Esto es compatible actualmente con los recursos web (JavaScript y TypeScript). Para obtener más detalles, vaya al paquete de NPM @microsoft/eslint-plugin-power-apps.
Ejecutar el verificador de soluciones mediante PowerShell
Hay un módulo de PowerShell disponible que puedes usar para interactuar directamente con el servicio. El módulo Microsoft.PowerApps.Checker.PowerShell se puede usar para análisis de soluciones no administradas para versiones admitidas de Power Apps entornos locales y en línea, o para automatizar e integrar el servicio en las canalizaciones de compilación y de lanzamiento. Más información: Información general sobre Microsoft.PowerApps.Checker.PowerShell
Reglas de prácticas recomendadas usadas por el comprobador de soluciones
La siguiente tabla enumera el tipo de componente, la descripción de la regla, su gravedad y su categoría. Las infracciones críticas se bloquean o advierten cuando se configuran para la aplicación del comprobador de soluciones con entornos administrados. Más información: Usar el verificador de soluciones en entornos gestionados
Componente de la solución | Nombre de regla | Descripción de la regla | Gravedad | Category |
---|---|---|---|---|
Complemento o actividad de flujo de trabajo | meta-remove-dup-reg | Evite duplicar registros del complemento Dataverse. | Crítico | Rendimiento |
Complemento o actividad de flujo de trabajo | meta-avoid-reg-no-attribute | Incluir atributos de filtrado con el registro de complementos de Dataverse | Medio | Rendimiento |
Complemento o actividad de flujo de trabajo | meta-avoid-reg-retrieve | Adopta precauciones con complementos de Dataverse registrados para mensajes Retrieve y RetrieveMultiple. | Medio | Rendimiento |
Complemento o actividad de flujo de trabajo | meta-remove-inactive | Quitar configuraciones inactivas de Dataverse. | Bajo | Mantenimiento |
Complemento o actividad de flujo de trabajo | meta-avoid-crm4-event | No use la fase de registro de complementos Microsoft Dynamics CRM 4.0. | Medio | Upgrade Readiness |
Complemento o actividad de flujo de trabajo | meta-avoid-retrievemultiple-annotation | Evite registrar un complemento en RetrieveMultiple de anotación. | Alto | Uso |
Aplicación basada en modelo | meta-license-sales-entity-operations | La solución contiene entidades con mensajes y operaciones del SDK restringidos que requieren una licencia válida de Dynamics 365. | Bajo | Licencias |
Aplicación basada en modelo | meta-license-fieldservice-customcontrols | La solución contiene controles personalizados que requieren una licencia Dynamics 365 Field Service válida. | Bajo | Licencias |
Aplicación basada en modelo | meta-license-fieldservice-entity-operations | La solución contiene entidades con mensajes y operaciones de SDK restringidos que requieren una licencia Dynamics 365 Field Service válida. | Bajo | Licencias |
Recursos web | use-async | Interactúe con recursos HTTP y HTTPS forma asincrónica. | Crítico | Rendimiento |
Recursos web | avoid-modals | Evite el uso de diálogos modales. | Alto | Compatibilidad |
Recursos web | avoid-dom-form | Alto | Compatibilidad | |
Recursos web | avoid-dom-form-event | Alto | Compatibilidad | |
Recursos web | avoid-crm2011-service-odata | No se dirija al extremo de Microsoft Dynamics CRM 2011 OData 2.0. | Crítico | Upgrade Readiness |
Recursos web | avoid-crm2011-service-soap | No se dirija a los servicios de Microsoft Dynamics CRM 2011 SOAP. | Crítico | Upgrade Readiness |
Recursos web | avoid-loadtheme | No utilices la API loadTheme de Fluent v8. |
Bajo | Compatibilidad |
Recursos web | avoid-browser-specific-api | No use complementos del explorador o API heredados de Internet Explorer. | Crítico | Upgrade Readiness |
Recursos web | avoid-unpub-api | Alto | Compatibilidad | |
Recursos web | avoid-window-top | Alto | Compatibilidad | |
Recursos web | avoid-2011-api | No use el modelo de objetos de Microsoft Dynamics CRM 2011 en desuso. En su lugar, siga la documentación de la API web de Dataverse. | Alto | Upgrade Readiness |
Recursos web | use-relative-uri | No use URL de extremo absolutos de Dataverse. | Medio | Mantenimiento |
Recursos web | use-cached-webresource | Medio | Rendimiento | |
Recursos web | use-client-context | Use contextos del cliente. | Medio | Upgrade Readiness |
Recursos web | use-navigation-api | Utilice los parámetros de las API de navegación. | Medio | Upgrade Readiness |
Recursos web | use-offline | Medio | Upgrade Readiness | |
Recursos web | do-not-make-parent-assumption | Alto | Diseño | |
Recursos web | use-org-setting | Use configuración de organización. | Medio | Upgrade Readiness |
Recursos web | use-global-context | Medio | Upgrade Readiness | |
Recursos web | use-grid-api | Use las API de cuadrícula. | Medio | Upgrade Readiness |
Recursos web | use-utility-dialogs | Medio | Uso | |
Recursos web | avoid-isActivityType | Reemplace el método Xrm.Utility.isActivityType por el nuevo Xrm.Utility.gettableMetadata y no lo utilice en reglas de cinta de opciones. | Medio | Upgrade Readiness |
Recursos web | meta-avoid-silverlight | El uso del recurso web de Silverlight ha quedado obsoleto. | Medio | Upgrade Readiness |
Recursos web | remove-debug-script | Evite incluir scripts de depuración en entornos que no sean de desarrollo. | Medio | Uso |
Recursos web | use-strict-mode | Utilice el modo estricto si es posible. | Medio | Uso |
Recursos web | use-strict-equality-operators | Utilice operadores de igualdad estricta. | Medio | Uso |
Recursos web | avoid-eval | No utilice la función eval o sus equivalentes funcionales. |
Crítico | Seguridad |
Recursos web | avoid-with | No use el operador "with". | Alto | Rendimiento |
Recursos web | remove-alert | No use la función 'alerta' ni sus equivalentes funcionales. | Medio | Uso |
Recursos web | remove-console | Evitar usar métodos en la consola. | Medio | Uso |
Recursos web | avoid-ui-refreshribbon | Evite el uso de refreshRibbon en form onload y EnableRule. | Crítico | Rendimiento |
Recursos web | use-getsecurityroleprivilegesinfo | Evite userSettings.securityRolePrivileges. Utilice userSettings.getSecurityRolePrivilegesInfo en su lugar. | Alto | Rendimiento |
Recursos web | use-appsidepane-api | Utilice Xrm.App.sidePanes.createPane en lugar de Xrm.Panels.loadPanel. | Medio | Upgrade Readiness |
Recursos web | web-sdl-no-cookies | Las cookies HTTP son un antiguo mecanismo de almacenamiento del lado del cliente con riesgos y limitaciones inherentes. Utilice almacenamiento web, IndexedDB u otros métodos modernos en su lugar. | Medio | Seguridad |
Recursos web | web-sdl-no-document-domain | Las escrituras en la propiedad document.domain deben revisarse para evitar eludir las verificaciones del mismo origen. El uso de dominios de nivel superior como azurewebsites.net está estrictamente prohibido. | Medio | Seguridad |
Recursos web | web-sdl-no-document-write | Las llamadas a document.write o document.writeln manipulan DOM directamente sin ningún tipo de saneamiento y deben evitarse. Utilice document.createElement() o métodos similares en su lugar. | Medio | Seguridad |
Recursos web | web-sdl-no-html-method | Las llamadas directas al método html() a menudo (por ejemplo, en el marco jQuery) manipulan el DOM sin ninguna limpieza y deberían evitarse. Utilice document.createElement() o métodos similares en su lugar. | Medio | Seguridad |
Recursos web | web-sdl-no-inner-html | Las asignaciones a las propiedades innerHTML u outerHTML manipulan DOM directamente sin ningún tipo de desinfección y deben evitarse. Utilice document.createElement() o métodos similares en su lugar. | Medio | Seguridad |
Recursos web | web-sdl-no-insecure-url | Los protocolos no seguros, como HTTP o FTP, deben reemplazarse por sus homólogos cifrados (HTTPS, FTPS) para evitar el envío de datos potencialmente confidenciales a través de redes que no son de confianza en texto sin formato. | Medio | Seguridad |
Recursos web | web-sdl-no-msapp-exec-unsafe | Las llamadas a MSApp.execUnsafeLocalFunction() omiten la validación de inserción de script y se deben evitar. | Medio | Seguridad |
Recursos web | web-sdl-no-postmessage-star-origin | Proporcione siempre un origen de destino específico, no * al enviar datos a otras ventanas mediante postMessage para evitar la fuga de datos fuera de ese límite de confianza. | Medio | Seguridad |
Recursos web | web-sdl-no-winjs-html-unsafe | Las llamadas a WinJS.Utilities.setInnerHTMLUnsafe() y métodos similares no realizan ninguna validación de entrada y deben evitarse. Utilice WinJS.Utilities.setInnerHTML() en su lugar. | Medio | Seguridad |
Aplicación de lienzo | app-formula-issues-high | Vaya a la Power Apps referencia de fórmula para obtener detalles adicionales. | Crítico | Diseño |
Aplicación de lienzo | app-formula-issues-medium | Consulte las referencias de fórmulas de Power Apps para obtener detalles adicionales. | Medio | Diseño |
Aplicación de lienzo | app-formula-issues-low | Consulte las referencias de fórmulas de Power Apps para obtener detalles adicionales. | Bajo | Diseño |
Aplicación de lienzo | app-use-delayoutput-text-input | Utilice la carga retrasada en algunos escenarios para mejorar el rendimiento. | Medio | Rendimiento |
Aplicación de lienzo | app-reduce-screen-controls | Limite el número de controles de la aplicación para mejorar el rendimiento. | Medio | Rendimiento |
Aplicación de lienzo | app-include-accessible-label | Utilice etiquetas explícitas para mejorar la accesibilidad de la aplicación. | Medio | Accesibilidad |
Aplicación de lienzo | app-include-alternative-input | Asegúrese de que todos los elementos interactivos sean accesibles para entradas alternativas. | Medio | Accesibilidad |
Aplicación de lienzo | app-avoid-autostart | Evite utilizar el inicio automático en reproductores dentro de una aplicación. | Medio | Accesibilidad |
Consulte también
Prácticas recomendadas e instrucciones para Dataverse
Prácticas recomendadas e instrucciones para aplicaciones basadas en modelos
Problemas y soluciones comunes para el Comprobador de soluciones
Nota
¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)
La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).