Barra de ferramentas adicional para desenvolvedores no InterSystems IRIS

Um painel de ferramentas adicionais para monitoramento e investigação de erros em aplicações e soluções de integração na plataforma de dados InterSystems IRIS, na plataforma de integração Ensemble e no SGBD Caché, ou a história de outra bicicleta.

Neste artigo quero falar sobre o aplicativo que, junto com ferramentas de administração padrão, utilizo todos os dias para monitorar aplicações e soluções de integração na plataforma InterSystems IRIS e encontrar erros quando eles ocorrem.
A solução inclui visualização e edição de arrays globais, execução de consultas (incluindo JDBC/ODBC), envio de resultados de pesquisa por e-mail como arquivos XLS compactados. Visualize objetos de classe com capacidade de edição. Vários gráficos simples para protocolos de sistema.

Este é um aplicativo CSP baseado em jQuery-UI, gráfico.js, jsgrid.js
Se você estiver interessado, veja abaixo e em repositório.

Tudo começou estudando a questão de como registrar alterações em objetos no InterSystems IRIS, Ensemble e no Caché DBMS.

Depois de ler excelente artigo sobre isso, eu bifurquei projeto. e começou a terminá-lo para suas necessidades.

A solução resultante é implementada como uma subclasse de painel de %CSP.Util.Pane, que possui uma janela de comando principal e um botão Executar, além de configurações de refinamento de comando.

Quando você entra "?" obtemos uma breve descrição desses comandos:

Barra de ferramentas adicional para desenvolvedores no InterSystems IRIS

Globais

Meu comando mais comum é visualizar o global. Via de regra, este é um protocolo global ao depurar seu próprio projeto ou o de outra pessoa. Você pode visualizá-lo na ordem inversa, bem como aplicando um filtro ao link e aos dados. Os nós encontrados podem ser editados e excluídos:

Barra de ferramentas adicional para desenvolvedores no InterSystems IRIS

Você pode excluir todo o global inserindo menos ^logMSW- no comando após o nome.
Mas desta forma você só pode excluir globais começando com ^log (globais de protocolo), ou seja, Uma restrição contra exclusão acidental foi implementada.

Se você inserir “*” após o nome, obterá uma lista de globais com características adicionais. O segundo “*” adicionará um novo campo “MB alocado” e outro asterisco será “MB usado”. Esta combinação de dois relatórios e a divisão em “asteriscos” é feita para dividir o relatório frequentemente longo em blocos ocupados. de grandes globais.

Barra de ferramentas adicional para desenvolvedores no InterSystems IRIS

A partir desta tabela você pode seguir os links ativos para visualizar o próprio global ou para visualizá-lo/editá-lo de forma padrão no portal de gerenciamento clicando em R ou W no campo Permissão.

pedidos

Convertendo um relatório para o formato Excel

A segunda função usada com mais frequência é a execução de consultas. Para fazer isso, insira a instrução SQL como um comando.

O principal que me bastou no Portal de Gerenciamento de Sistemas padrão foi executar consultas em fontes JDBC/ODBC configuradas no SGBD e gerar os resultados em formato XLS, arquivar e enviar o arquivo por e-mail. Para fazer isso, na minha ferramenta, antes de executar o comando, você precisa habilitar a caixa de seleção “Baixar para arquivo Excel”.

Esse recurso economiza muito tempo na minha rotina diária e integro com sucesso módulos prontos em novos aplicativos e soluções de integração.

Barra de ferramentas adicional para desenvolvedores no InterSystems IRIS

Mas para isso, primeiro é necessário configurar o caminho de criação dos arquivos no servidor e as credenciais do usuário e do servidor de e-mail; para isso, por sua vez, é necessário editar os nós das configurações globais do programa ^%App.Setting; .

Barra de ferramentas adicional para desenvolvedores no InterSystems IRIS

Salvando relatórios globalmente

Muitas vezes é necessário salvar globalmente os resultados da execução do relatório. Para fazer isso eu uso os seguintes procedimentos:

Para JDBC:
##class(App.sys).SqlToDSN

Para ODBC:
##class(App.sys).SaveGateway

Para expressões SQL:
##class(App.sys).SaveSQL

Para consulta:
##class(App.sys).SaveQuery

Por exemplo, se no painel o comando
xec do ##class(App.sys).SaveQuery("%SYSTEM.License:Counts","^GN",0)
Vamos salvar o resultado da solicitação de contagem de uso de licenças no array ^GN, e você poderá ver o que foi salvo no painel com o comando: result ^GN("%SYSTEM.License:Counts",0)

Barra de ferramentas adicional para desenvolvedores no InterSystems IRIS

Módulos de funcionalidade aumentada

E a segunda melhoria, que simplificou e automatizou bastante meu trabalho, é a implementação da capacidade de executar módulos especialmente escritos ao gerar cada linha de consulta. Dessa forma, posso criar novas funcionalidades no relatório dinamicamente de uma só vez, por exemplo, links ativos para operações adicionais em dados.

Exemplo 1: Trabalhando com a classe App.Parameter

Crie um parâmetro usando o “Table Navigator”

Edite um parâmetro através de “Opções”

Barra de ferramentas adicional para desenvolvedores no InterSystems IRIS

Exemplo 2: Visualizando o global através do link “Histórico”

Barra de ferramentas adicional para desenvolvedores no InterSystems IRIS

Gráficos

Inspirado no artigo [9] e para visualizar o crescimento dos bancos de dados, foi criada uma página que exibe um gráfico mensal de tamanhos de bancos de dados criados a partir do arquivo iris.log (cconsole.log) utilizando registros “Expand” retrospectivamente do dia atual.

Como exemplo, também foi criado um gráfico de eventos no InterSystems IRIS, que também é gerado a partir do arquivo de protocolo:

Barra de ferramentas adicional para desenvolvedores no InterSystems IRIS

Links para materiais:

[1] subsistema de registro em Kasha
[2] Mingau instantâneo - fazendo CRUD no Caché usando jqGrid
[3] Gerenciadores SQL alternativos para o SGBD Caché
[4] Exemplos de geração e envio de Email utilizando o SGBD Caché
[5] Cache + jQuery. Início rápido
[6] Implantação de aplicativos
[7] Suporte UDL
[8] Visualizando globais no Portal de Gerenciamento do Caché
[9] Prometeu com Cache
[10] Localização no SGBD Caché

Obrigado aos autores destes e de outros artigos que me ajudaram a criar esta ferramenta.

PS Este projeto está em desenvolvimento e muitas ideias ainda não foram implementadas. Num futuro próximo pretendo fazer:

1. Modelo de aplicação na estrutura uikit
2. Documentação automática do formato do código Doxegen com integração ao CStudio

Fonte: habr.com

Adicionar um comentário