Depuración de aplicaciones de lienzo sin monitor en vivo

Resumen

En este artículo se describen los enfoques de depuración alternativos para las aplicaciones de lienzo de Microsoft Power Apps en escenarios que no admiten el monitor en directo. Use estas técnicas para formularios integrados de SharePoint, páginas personalizadas o incrustaciones de portal personalizados en las que no se puede abrir el monitor en directo junto con la aplicación.

El monitor en vivo es la herramienta recomendada para depurar aplicaciones de lienzo porque muestra eventos en tiempo real y funciona junto con la función Trace. Sin embargo, algunos escenarios hospedados o incrustados no lo admiten. En este artículo se tratan alternativas como Application Insights, tablas de registro de Dataverse , registro de listas de SharePoint y paneles de diagnóstico en pantalla.

Nota:

Para los escenarios en los que se admite y está disponible el Monitor en Directo, consulte Depuración de aplicaciones de lienzo con Monitor en Directo y Seguimiento.

Enfoques de depuración alternativos

Si el monitor en vivo no está disponible, elija uno de los siguientes métodos de depuración alternativos en función del entorno y las necesidades.

Alternativa Más adecuado para Notas
Application Insights Telemetría centralizada y supervisión del rendimiento Requiere la configuración de Azure. Emite seguimientos y métricas fuera de Power Apps.
Tabla de registro de Dataverse Diagnósticos ad hoc y seguimientos de auditoría Cree una tabla personalizada. Use lógica protegida para escribir registros al depurar.
Registro de listas de SharePoint Entornos ligeros sin Dataverse Use Collect o Patch (en una lista). Para controlar el tamaño, recorte las entradas.
Panel de diagnóstico en pantalla Comentarios inmediatos durante las pruebas Solo para audiencias seguras. Quitar antes de un despliegue amplio.

Integración de Application Insights

Application Insights proporciona telemetría centralizada para aplicaciones de lienzo. Captura métricas de rendimiento, errores y seguimientos personalizados en Azure Monitor, donde puede analizar datos entre sesiones y usuarios.

Este enfoque requiere:

  • Una suscripción de Azure
  • Un recurso de Application Insights
  • Configuración en la configuración de la aplicación Power Apps

Para obtener instrucciones de configuración, consulte Análisis de la telemetría de aplicaciones mediante Application Insights.

Escribir registros de depuración en Dataverse

Para capturar información de diagnóstico si el entorno incluye Dataverse, cree una tabla personalizada Debug Logs . Este enfoque funciona bien para la solución de problemas ad hoc y los seguimientos de auditoría.

Crear la tabla de registros de depuración

  1. En Power Apps, vaya a Tablas y cree una nueva tabla denominada Debug Logs.
  2. Agregue las columnas siguientes:
    • Title: una etiqueta para la entrada de registro.
    • UserEmail: la dirección de correo electrónico del usuario.
    • Timestamp: cuando se produjo el evento
    • Payload: datos adicionales en formato JSON
    • Otras columnas según sea necesario para el escenario (por ejemplo, CartCount, ScreenName)

Ejemplo: Escritura de un registro de depuración en Dataverse

Use una llamada de parche protegida para escribir registros solo si existe un parámetro de cadena de consulta de depuración.

If(Param("debug") = "true",
    Patch(
        'Debug Logs',
        Defaults('Debug Logs'),
        {
            Title: "BeforeSubmit",
            UserEmail: User().Email,
            CartCount: CountRows(colCart),
            Timestamp: Now(),
            Payload: JSON({customerId: ddCustomer.Selected.Id})
        }
    )
);

Ejecuta la aplicación en modo de depuración

Para habilitar el registro de depuración, agregue &debug=true a la dirección URL de la aplicación. Para obtener más información sobre los parámetros de cadena de consulta, vea Launch and Param functions.

Después de reproducir el problema, abra la Debug Logs tabla de Dataverse para revisar los registros capturados.

Nota:

Quite o deshabilite el registro de depuración antes de implementar la aplicación de forma general. Para administrar el almacenamiento, elimine periódicamente las entradas de registro antiguas.

Escribir registros de depuración en SharePoint

Para entornos ligeros sin Dataverse, use una lista de SharePoint para capturar información de depuración.

Creación de la lista de depuración

  1. En SharePoint, cree una lista denominada AppDebugLogs.
  2. Agregue las columnas siguientes:
    • Title: una etiqueta para la entrada de registro.
    • UserEmail: la dirección de correo electrónico del usuario.
    • Timestamp: cuando se produjo el evento
    • Payload: datos adicionales en formato JSON
    • Otras columnas según lo requiera su escenario.

Ejemplo: Escribir un registro de depuración en SharePoint

If(Param("debug") = "true",
    Patch(
        AppDebugLogs,
        Defaults(AppDebugLogs),
        {
            Title: "BeforeSubmit",
            UserEmail: User().Email,
            Timestamp: Now(),
            Payload: JSON({customerId: ddCustomer.Selected.Id, cartCount: CountRows(colCart)})
        }
    )
);

Nota:

Las listas de SharePoint tienen límites de almacenamiento. Para evitar que la lista crezca demasiado grande, quite regularmente las entradas antiguas.

Creación de un panel de diagnóstico en pantalla

Para obtener comentarios inmediatos durante las pruebas, cree un panel de diagnóstico que muestre información de depuración directamente en la aplicación. Este enfoque es útil si tiene que ver valores en tiempo real.

Recopilación de datos de depuración

En lugar de usar Trace, agregue datos a una colección local. Por ejemplo:

If(
    Param("debug") = "true",
    Collect(
        debugTraces,
        {
            Timestamp: Now(),
            Data: $"Before submit for {User().Email} with {CountRows(colCart)} items in the cart"
        }
    )
)

Agregar un control de texto para mostrar las trazas

Agregue un control de texto a la pantalla que muestre los rastros recopilados. Establezca la propiedad Visible del control de texto para que el control aparezca solo en modo de depuración.

Propiedades de control

Propiedad Importancia
Text Concat(debugTraces, $"[{Text(Timestamp, "hh:mm:ss.fff")}] {Data}", Char(10))
Visible Param("debug") = "true"
Height 200
Ancho 300
X Parent.Width - 320
Y 20

Esta configuración muestra una lista desplazable de mensajes de depuración que puede copiar y analizar fuera de la aplicación.

Ejemplo de YAML como control de texto

Si usa la vista YAML de Power Apps Studio:

- TextDebugPanel:
    Control: [email protected]
    Properties:
      Height: =200
      Size: =12
      Text: |-
        =Concat(
            debugTraces,
            $"[{Text(Timestamp,"hh:mm:ss.fff")}] {Data}",
            Char(10))
      Visible: =Param("debug") = "true"
      Width: =300
      X: =Parent.Width - 320
      Y: =20

Importante

Quite u oculte el panel de diagnóstico antes de implementar la aplicación en los usuarios. Los usuarios que abren la aplicación mediante el parámetro de depuración no deben ver información de diagnóstico interna.

Procedimientos recomendados para la depuración alternativa

Si usa un enfoque de depuración alternativo, siga estas instrucciones:

  • Controles de depuración de guardia: Use parámetros de cadena de consulta (Param("debug") = "true") o comprobaciones de roles para mostrar funciones de depuración únicamente durante las pruebas.
  • Limpiar antes de la implementación: quite controles de depuración, llamadas de registro y paneles de diagnóstico antes de ejecutar una implementación amplia.
  • Administrar el almacenamiento de registros: para administrar el almacenamiento para el registro de Dataverse o SharePoint, elimine periódicamente entradas antiguas.
  • Usar etiquetas significativas: para facilitar el análisis de los registros, incluya títulos descriptivos como "BeforeSubmit" o "OnVisible_OrderScreen".
  • Incluir contexto: registre el correo electrónico del usuario, el nombre de pantalla y los valores de datos pertinentes para que pueda correlacionar las entradas entre sesiones.