Compartir a través de


Mejorar el rendimiento, la estabilidad y la fiabilidad de la solución

Las soluciones se utilizan para distribuir objetos de Power Platform, como aplicaciones, tablas, flujos, recursos web y complementos. Este artículo introduce la característica del comprobador de soluciones es una potente herramienta que realiza un análisis exhaustivo y estático de los objetos de su solución comparándolos con un conjunto de reglas de procedimientos recomendados. Al usar Comprobador 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 vínculos 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 fiabilidad.

Ejemplos de resultados y detalles del Comprobador de soluciones

El comprobador de soluciones trabaja con soluciones no administradas que se pueden exportar desde un entorno.

Puede ejecutar el Comprobador de soluciones desde Power Apps (make.powerapps.com) o usando PowerShell.

Cómo te ayuda Comprobador de soluciones

Para cumplir complejos requisitos de negocio, los creadores pueden terminar con frecuencia con soluciones muy avanzadas que personalizan y extienden 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 característica del comprobador de soluciones puede realizar una verificación en segundos en su solución, que usa un conjunto de reglas de prácticas recomendadas e identificar rápidamente estos patrones problemáticos. Cuando la comprobación se completa, usted recibe un informe detallado en Power Apps además de un mensaje de correo electrónico que lista los problemas identificados, los componentes y el código afectados y vínculos a la documentación que describe cómo solucionar 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 comprobador de soluciones no garantiza que la importación de una solución tenga éxito. Las comprobaciones de análisis estático realizadas contra la solución no conocen el estado configurado del entorno de destino y el éxito de la importación puede depender de otras soluciones o configuraciones en el entorno.

Ejecutar el comprobador de soluciones

  1. Inicie sesión en Power Apps.

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

  3. Junto a la solución no administrada que desea analizar, seleccione ..., señale a Comprobador de soluciones y, a continuación seleccione Ejecutar.

    Ejecutar comando de comprobador de soluciones.

  4. El botón de comando Comprobador de soluciones tiene un indicador de carga y notará un Ejecutando… en la columna de Comprobación de Soluciones de la lista de Solución.

Estado del comprobador de soluciones

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.
  1. 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 Esta es una 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.

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

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

  3. Seleccione un problema para ver los detalles y orientación sobre cómo resolverlo.

    Ejemplos de resultados y detalles de la exploración en profundidad del Comprobador de soluciones

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

  1. 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.
  2. 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.
  3. 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 más detalles, vaya al paquete NPM @microsoft/eslint-plugin-power-apps.

Ejecute Comprobador de soluciones usando PowerShell

Está disponible un módulo de PowerShell que puede 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 el script 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 use 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 Web Storage, 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 DOM 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-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 se deben evitar. Utilice WinJS.Utilities.setInnerHTML() en su lugar. Medio Seguridad
Aplicación de lienzo app-formula-issues-high Vaya a la fórmula de referencia de Power Apps 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
Flujo de escritorio desktopflow-avoid-unsafe-password Las contraseñas se administran de forma insegura en el flujo. Alto Seguridad
Flujo de escritorio desktopflow-avoid-subflow-recursion Se detectan llamadas recursivas entre subflujos, lo que puede provocar un bucle infinito. Medio Diseño
Flujo de escritorio desktopflow-avoid-infinite-loop Se ha detectado un bucle infinito en el flujo, lo que puede provocar que se ejecute indefinidamente. Medio Diseño
Flujo de escritorio desktopflow-avoid-incomplete-if-branch Se ha detectado una acción If incompleta, que no tiene contenido o solo contiene acciones en la rama Else. Bajo Diseño
Flujo de escritorio desktopflow-avoid-excessive-nested-ifs Las cláusulas If anidadas superan los cinco niveles. Bajo Mantenimiento
Flujo de escritorio desktopflow-avoid-empty-on-error-block La acción "En caso de error de bloque" está vacía y no maneja ningún error. Bajo Diseño
Flujo de escritorio desktopflow-limit-argument-count El total de variables de entrada/salida supera el límite de 25 variables. Bajo Mantenimiento
Flujo de escritorio desktopflow-input-argument-default-value Las variables de entrada/salida no utilizan valores predeterminados. Bajo Mantenimiento
Flujo de escritorio desktopflow-limit-variable-name-length El nombre de la variable supera el límite de 25 caracteres. Bajo Mantenimiento
Flujo de escritorio desktopflow-avoid-excessive-wait-actions Se ha detectado un uso incorrecto de las acciones de espera, con más de 10 acciones de espera que provocan posibles cuellos de botella. Bajo Rendimiento
Flujo de escritorio desktopflow-avoid-immense-wait-duration Se ha detectado un tiempo de espera muy largo que supera el límite de 600 segundos para las acciones de espera incluidas en el código de forma inamovible. Bajo Rendimiento

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