-
Notifications
You must be signed in to change notification settings - Fork 105
Description
Resumo do Problema
Durante o debug de código AdvPL, ao utilizar objetos JSON criados dinamicamente com JsonObject():New(), ocorre uma divergência entre a visualização correta exibida pelo AppServer (via VarInfo()) e a visualização incorreta apresentada no painel de variáveis do VSCode, utilizando o plugin TOTVS Developer Studio for VSCode.
Embora o objeto JSON esteja correto em tempo de execução, o painel Variables do VSCode não reflete fielmente a estrutura nem os valores reais do objeto, o que compromete o processo de debug.
🖥️ Ambiente
🔧 AppServer TOTVS
TOTVS - Build 7.00.240223P
Build Version: 24.3.1.4
SVN Revision: 46268
Vader Revision: 3792
Arquitetura: 64 bits
Data do Build: Oct 30 2025 - 11:50:54
Modo: RELEASE VERSION WITH SYMBOLS INFORMATION
🐧 Sistema Operacional do AppServer
Distribuição Linux: Oracle Linux Server 8.9
Kernel: 4.18.0-348.el8.x86_64
GLIBC: 2.28
Arquitetura: x86_64
Modo: Virtual Machine
🧩 IDE / Debug
IDE: Visual Studio Code
Extensão: TOTVS Developer Studio for VSCode
SO da estação de desenvolvimento: Windows 64 bits
🔁 Passos para Reproduzir
Conectar o VSCode ao AppServer TOTVS utilizando o plugin TOTVS Developer Studio for VSCode
Iniciar o debug de uma rotina AdvPL
Criar dinamicamente um objeto JSON conforme exemplo abaixo:
cProduto := "500.009050"
jDiferentes := JsonObject():New()
jDiferentes[Alltrim(cProduto)] := JsonObject():New()
jDiferentes[Alltrim(cProduto)]["B1_PESO"] := JsonObject():New()
jDiferentes[Alltrim(cProduto)]["B1_PESO"]["OLD"] := 15.0
jDiferentes[Alltrim(cProduto)]["B1_PESO"]["NEW"] := 20.1
jDiferentes[Alltrim(cProduto)]["B1_CNTR"] := JsonObject():New()
jDiferentes[Alltrim(cProduto)]["B1_CNTR"]["OLD"] := 1000
jDiferentes[Alltrim(cProduto)]["B1_CNTR"]["NEW"] := 2000
Executar:
VarInfo("Diff", jDiferentes)
Observar:
✔️ Resultado correto no console do AppServer
❌ Resultado incorreto no painel Variables do VSCode
O painel de variáveis do VSCode deveria:
Refletir corretamente a estrutura do objeto JSON
Exibir corretamente objetos aninhados
Apresentar os mesmos valores exibidos pelo VarInfo() no console do AppServer
❌ Comportamento Atual
O VarInfo() no console do AppServer exibe o JSON corretamente
O painel Variables do VSCode:
Mostra a estrutura do JSON de forma incorreta
Apresenta informações inconsistentes ou incompletas
Não representa fielmente o conteúdo real da variável
A variável existe e contém dados válidos, porém o plugin não renderiza corretamente objetos JSON dinâmicos
📎 Evidências (prints a serem anexados)
Print do VarInfo() no console do AppServer (exibição correta)
Print do painel Variables do VSCode (exibição incorreta)
Print do código AdvPL responsável pela criação do JSON
Print da versão da extensão TOTVS Developer Studio for VSCode
Esse comportamento dificulta e compromete o processo de debug, pois o desenvolvedor não consegue confiar na visualização das variáveis ao trabalhar com objetos JSON (JsonObject) no VSCode.