Depuración de objetos visuales personalizados de Power BI

En este artículo se describen algunos procedimientos básicos de depuración que puede usar al desarrollar el objeto visual. Después de leer este artículo, debería poder usar los métodos siguientes para depurar el objeto visual:

Inserción de puntos de interrupción

El código JavaScript del objeto visual se recarga por completo cada vez que este se actualiza. Por lo tanto, los puntos de interrupción que se agreguen se perderán cuando se actualice el objeto visual de depuración. Como solución alternativa, use las instrucciones debugger en el código. Se recomienda desactivar la recarga automática mientras se usa debugger en el código. Este es un ejemplo de cómo usar una instrucción debugger en el método update.

public update(options: VisualUpdateOptions) {
    console.log('Visual update', options);
    debugger;
    this.target.innerHTML = `<p>Update count: <em>${(this.updateCount</em></p>`;
}

Detección de excepciones

Al trabajar en el objeto visual, observará que el servicio Power BI "consume" los errores. Se trata de una característica intencional de Power BI. Evita que el comportamiento erróneo de los objetos visuales provoque que toda la aplicación se vuelva inestable.

Como solución alternativa, agregue código para detectar y registrar las excepciones, o bien establezca el depurador para que se interrumpa en las excepciones detectadas.

Registro de excepciones con un elemento decorator

Para registrar excepciones en el objeto visual de Power BI, es necesario definir un elemento decorator del registro de excepciones. Para ello, agregue el código siguiente al objeto visual:

export function logExceptions(): MethodDecorator {
    return function (target: Object, propertyKey: string, descriptor: TypedPropertyDescriptor<any>): TypedPropertyDescriptor<any> {
        return {
            value: function () {
                try {
                    return descriptor.value.apply(this, arguments);
                } catch (e) {
                    console.error(e);
                    throw e;
                }
            }
        }
    }
}

Puede usar este elemento decorator en cualquier función para ver el registro de errores, de la forma siguiente.

@logExceptions()
public update(options: VisualUpdateOptions) {

Interrupción en excepciones

También puede establecer que el explorador se interrumpa en las excepciones detectadas. Breaking detiene la ejecución del código siempre que se produzca un error y le permite depurar desde allí.

  1. Abra las herramientas de desarrollo (F12).

  2. Vaya a la pestaña Orígenes.

  3. Seleccione el icono de Pause on exceptions (Pausar en excepciones) (signo de parada con un símbolo de pausa).

  4. Seleccione Pause on caught exceptions (Pausar en excepciones detectadas).

    Screenshot shows the Debugger tab with Break on all exceptions selected.

¿Tiene más preguntas? Pruebe la comunidad de Power BI