Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
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
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 notará un Ejecutando… en la columna de Comprobación de Soluciones de la lista de 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 | 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.
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 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.
- 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 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