Como depurar visuais do Power BIHow to debug Power BI visuals

Esta página mostra algumas dicas de depuração ao criar o visual.This page shows some tips for debugging while building your visual. Ele inclui etapas básicas e mostra as diferenças entre a depuração de visuais de aplicativos de front-end padrão e do Power BI.It includes basic steps and shows differences between standard frontend applications and Power BI visual's debugging. Depois de ler o artigo, você poderá depurar visuais do Power BI usando pontos de interrupção, além de registrar exceções em log e capturar exceções no Chrome e no Edge.After reading the article you will be able to debug Power BI visuals using breakpoints, log exceptions, and catch exceptions in Chrome and Edge.

Usar pontos de interrupçãoUsing breakpoints

Como o JavaScript do visual é totalmente recarregado toda vez que o visual é atualizado, todos os pontos de interrupção que você adicionar serão perdidos quando depurar visual for atualizado.As the visual's JavaScript is entirely reloaded every time the visual is updated, any breakpoints you add will be lost when the debug visual is refreshed. Como alternativa, use as instruções do debugger em seu código.As a workaround, use debugger statements in your code. É recomendável desativar o recarregamento automático ao usar debugger em seu código.It's recommended to turn off auto reload while using debugger in your code.

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

Mostrar exceçõesShowing exceptions

Ao trabalhar em seu visual, você observará que todos os erros são "consumidos" pelo serviço do Power BI.When working on your visual, you'll notice that all errors are 'consumed' by the Power BI service. Esse é um recurso intencional de Power BI para impedir que visuais com comportamento inadequado façam o aplicativo inteiro se tornar instável.This is an intentional feature of Power BI to prevent misbehaving visuals from causing the entire app to become unstable.

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.As a workaround, add code to catch and log your exceptions, or set your debugger to break on caught exceptions.

Registrar exceções em logLog exceptions

Para registrar em log as exceções no seu visual do Power BI, adicione o código a seguir ao seu visual para definir um decorador de registro de exceção em log.To log exceptions in your Power BI visual, add the following code to your visual, to define an exception logging decorator.

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;
                }
            }
        }
    }
}

Em seguida, você pode usar esse decorador em qualquer função para ver o registro de erros em log.Then, you can use this decorator on any function to see error logging.

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

Interromper em exceçõesBreak on exceptions

Você também pode definir o navegador para interromper nas exceções detectadas.You can also set the browser to break on caught exceptions. Ele interrompe a execução de código caso ocorra um erro e permite que você depure a partir desse ponto.This'll stop code execution wherever an error happens, and allow you to debug from there.

EdgeEdge

  1. Abra as ferramentas para desenvolvedores (F12).Open developer tools (F12).
  2. Acesse a guia Depurador.Go to the Debugger tab.
  3. Clique no ícone interromper em exceções (hexágono com um símbolo de pausa).Click the break on exceptions icon (hexagon with a pause symbol).
  4. Selecione Interromper em todas as exceções.Select Break on all exceptions.

A captura de tela mostra a guia Depurador com a opção Interromper em todas as exceções selecionada.

ChromeChrome

  1. Abra as ferramentas para desenvolvedores (F12).Open developer tools (F12).
  2. Acesse a guia Fontes.Go to the Sources tab.
  3. Clique no ícone interromper em exceções (sinal de parada com um símbolo de pausa).Click the break on exceptions icon (stop sign with a pause symbol).
  4. Marque a caixa de seleção Pausar em Exceções Capturadas.Select the Pause On Caught Exceptions check box.

A captura de tela mostra a guia Fontes com Pausar em Exceções Capturadas selecionada.

Próximas etapasNext steps