Depurar visuais personalizados do Power BI

Este artigo descreve alguns procedimentos básicos de depuração que podem ser usados ao desenvolver o visual. Depois de ler este artigo, você estará apto a usar os seguintes métodos para depurar seu visual:

Inserir pontos de interrupção

O JavaScript inteiro do visual é recarregado toda vez que o visual é atualizado. Portanto, todos os pontos de interrupção que você adicionar serão perdidos quando o visual depurado for atualizado. Como alternativa, use as instruções do debugger em seu código. É recomendável desativar o recarregamento automático ao usar debugger em seu código. Este é um exemplo de como usar uma instrução debugger no seu método de atualização.

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

Capturar exceções

Ao trabalhar em seu visual, você observará que todos os erros são "consumidos" pelo serviço do Power BI. Esse é um recurso intencional do Power BI. Ele impede que visuais com comportamento inadequado causem instabilidade no aplicativo inteiro.

Como alternativa, adicione o código para capturar suas exceções e registrá-las em log ou defina seu depurador para interromper as exceções detectadas.

Registrar exceções com um decorador

Para registrar exceções no seu visual do Power BI você deve definir um decorador de registro de exceção em log. Para fazer isso, adicione o seguinte código ao 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;
                }
            }
        }
    }
}

Você pode usar esse decorador em qualquer função para ver o registro de erros em log conforme mostrado abaixo.

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

Interromper em exceções

Você também pode definir o navegador para interromper nas exceções detectadas. A interrupção para a execução do código caso ocorra um erro e permite que você depure começando por esse ponto.

  1. Abra as ferramentas para desenvolvedores (F12).

  2. Acesse a guia Fontes.

  3. Clique no ícone Pausar em exceções (sinal de parada com o símbolo de pausa).

  4. Selecione Pausar ao capturar exceções.

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

Mais perguntas? Experimente a Comunidade do Power BI