Tenho mais de 36 anos de experiência desenvolvendo soluções com MUMPS e Cache. Além disso também desenvolvo em Python e HTML. Estou procurando uma oportunidade de emprego.
Neste artigo, vou abordar o teste e a depuração dos aplicativos da Web Caché (principalmente REST) com ferramentas externas. A segunda parte abrange ferramentas de Caché.
Você escreveu um código do servidor e quer testar em um cliente ou já tem um aplicativo da Web e ele não funciona. É aqui que entra a depuração. Neste artigo, vou mostrar desde as ferramentas mais fáceis de usar (navegador) até as mais completas (analisador de pacotes). Porém, primeiro, vamos falar um pouco sobre os erros mais comuns e como eles podem ser resolvidos.
As definições de classe criadas pelos usuários são armazenadas em classes de definição de classe. Elas podem ser usadas para obter uma lista de definições de classes a partir de um programa.
Observação: as classes de definição de classe se referem a todas as classes contidas no pacote %Dictionary.
Olá, esta postagem foi escrita inicialmente para Caché. Em junho de 2023, finalmente a atualizei para IRIS. Se você está revisitando a postagem agora, a única mudança real foi a substituição do Caché pelo IRIS! Também atualizei os links para a documentação do IRIS e corrigi alguns erros de digitação e gramaticais. Aproveite :)
Bom dia. Comecei a estudar o Caché a menos de um mês, de lá pra cá testei várias funcionalidades mas há uma que eu não consegui encontrar. Como posso fazerem meus dados serem responsivos quando representados em tabelas no terminal?
Isso pode ser conseguido usando o procedimento CSV() da classe %SQL.Util.Procedures . Abaixo está o exemplo de uso do código. (Assumindo que o arquivo test.csv está em c:\temp.)
A partir do lançamento da plataforma de dados InterSystems IRIS® 2022.3, a InterSystems corrigiu o mecanismo de execução de licença para incluir solicitações REST e SOAP. Devido a essa alteração, ambientes com licenças não baseadas em núcleo que usam REST ou SOAP podem experimentar maior utilização de licença após a atualização.
Recentemente iniciei meus estudos em ObjectScript e estive desenvolvendo alguns CRUDs básicos, apenas conhecendo a linguagem, sua sintaxe, seus métodos e funções. Durante esse processo, consegui desenvolver e implementar as minhas ideias utilizando principalmente as diversas funções nativas do ObjectScript .
Com isso, resolvi trazer o meu entendimento e uso de alguns métodos que foram essenciais e que me permitiram trabalhar a maioria das minhas ideias, de forma rápida e eficaz. São eles: $ORDER, $PIECE e $DATA
Globais temporárias armazenadas nas bases de dados IRISTEMP/CACHETEMP são usadas quando um processo não precisa guardar dados indefinidamente, mas requere a poderosa performance das globais. As bases de dados IRISTEMP/CACHETEMP não são jounralizadas, então usar globais temporárias não cria arquivos de journal.
Como estou desenvolvendo uma aplicação para auditoria de arquivo fiscal digital, EFD ICMS IPI, optei por armazenar os dados diretamente em globais. Uma vez que os registros do arquivo EFD são formato txt e tem características semelhantes às linhas de registro de global.
Para poder analisar os itens de saída das Notas Fiscais Eletrônicas, fiz a importação também dos dados destes arquivos, e os armazenei em global. Segue exemplo:
Eu criei uma classe que gera código para query customizada a partir de uma global qualquer em um determinado namespace, fazendo com que a global responda ao padrão SQL imediatamente.
Os dados dos produtos InterSystems (linha de tabela, instância de objeto) são guardados em variáveis globais. O tamanho de dados de cada global pode ser obtido clicando nas propriedades da global que você quer ver da página Portal de Adminitração > Sistema > Configuração > Base de dados Local > Globais, então clicando no botão Calcular Tamanho na página de atributos globais que aparece. Para exibir os tamanhos de globais num namespace, você pode usar ^%GSIZE no terminal
Eu trago aqui uma dica para poupar algumas horas do seu dia. A documentação InterSystems especifica muito bem como criar um script de freeze para as instâncias, mas não traz exemplos em instâncias espelhadas, onde queremos deixar o script automático, mas só rodar efetivamente na instância primária.
Primeiro, vamos criar uma classe abstrata no namespace %SYS com métodos que verificam se a instância é primária e, caso positivo, executam o freeze.
Se você encontrou o problema de que nem todas as linhas do seu resultado estão retornando no seu snapshot, você está no lugar certo.
Ao usar snapshots, existe uma informação não trivial de que eles têm um máximo de linhas que vem por padrão como 250.
Para mudar isso é muito simples. Ao invés de enviar o snapshot como referência direto no seu método de execução de query ou procedure, vamos inicializá-lo antes e definir um valor na propriedade MaxRowsToGet.