Visualizando o conteúdo da Datawindow/Datastore durante o debug

Depois do último post, fiquei com a sensação de que eu precisava criar algo mais útil. Então resolvi fazer este post com algumas formas de facilitar a visualização do conteúdo de uma Datawindow (ou Datastore) durante o processo de debug.

Existem duas formas de fazermos isso:

A primeira é adicionando um item para o Watch com a seguinte expressão:

Esta expressão no watch vai te mostrar o conteúdo da datawindow ou datastore, mas em um formato meio difícil de ler e nada amigável. Lembre-se de trocar dw_1 para o nome do seu controle datawindow/datastore.

 

A segunda forma também envolve incluir um item no watch, mas com uma expressão diferente:

Desta forma, a cada step, o arquivo será atualizado (sobrescrito) com os dados atuais. Vale lembrar que, se o volume de dados for muito grande, este procedimento vai deixar as coisas mais lentas.

Nesta expressão, o formato texto (Text!) foi escolhido por uma razão: facilidade de acompanhar as modificações. Se você utilizar o Notepad++, basta ativar a função tail (ou utilizar o script que fiz utilizando o PowerShell) e você conseguirá acompanhar o arquivo na medida em que ele é atualizado.

Se o volume de dados for muito grande, talvez seja mais produto incluir no fonte (apenas para debug) a expressão que utilizamos na segunda forma e mudar a saída para Excel (Excel!). Desta forma, nos pontos chave do fonte, você conseguirá extrair um espelho de como a dw/ds estava em determinado momento.

Você pode, inclusive, gerar vários destes ‘espelhos’ com uma implementação simples, conforme exemplo abaixo:

  • Crie as seguintes variáveis de instancia (ou globais, se for o caso):

 

  • No ponto do sistema que você quiser gerar este ‘espelho’, utilize o fonte abaixo:

 

Desta forma, cada vez que você chamar esta função, vai gerar um arquivo diferente e poderá analisá-los separadamente para tentar localizar o problema. Inclusive, se preferir, pode encapsular esta chamada em uma função e deixar o código mais limpo.

 

Espero ter ajudado.

The following two tabs change content below.
Breno RdV
Ex-Psicólogo, com quase uma década de experiência em Recursos Humanos e Gestão de Pessoas, atual desenvolvedor e Analista de Sistemas, trabalhando com PowerBuilder, C#, PowerShell e expandindo horizontes para Python, Xamarin, PHP, Angular e (por que não?) Unity.

Comments

comments

Posted in Dev, PowerBuilder and tagged , , , , , , , , .