Olá Comunidade,
Aproveite o novo vídeo co canal InterSystems Developers YouTube:
📺 Python Encontra a InterSystems: Ferramentas Nativas para um Ecossistema Moderno
InterSystems IRIS é uma plataforma de dados completa
A InterSystems IRIS oferece tudo que você precisa para capturar, compartilhar, entender e agir com base no ativo mais valioso de sua organização - seus dados.
Como uma plataforma completa, a InterSystems IRIS elimina a necessidade de integração de múltiplas tecnologias de desenvolvimento. As aplicações requerem menos código, menos recursos do sistema e menos manutenção.
Olá Comunidade,
Aproveite o novo vídeo co canal InterSystems Developers YouTube:
📺 Python Encontra a InterSystems: Ferramentas Nativas para um Ecossistema Moderno
Olá a todos,
Se você desenvolve, mantém ou soluciona problemas em soluções com ObjectScript, tenho o prazer de informar que o novo exame de certificação InterSystems ObjectScript Specialist já está disponível para ajudar você a validar e demonstrar essas habilidades!
Quem deve fazer o exame?
Sobre o exame
Estamos analisando o que precisamos fazer para migrar do uso atual de relatórios Zen para o InterSystems Reports. Um dos desafios para nós é descobrir maneiras de interagir programaticamente com os relatórios do InterSystems Reports a partir de rotinas ObjectScript. Existe uma API Java para isso, mas também é possível gerar um relatório do InterSystems Reports para um objeto stream em ObjectScript sem recorrer ao Java, utilizando um %Net.HttpRequest.
Em um mundo em constante mudança, as empresas precisam inovar para se manterem competitivas. Isso garante que elas tomem decisões com agilidade e segurança, visando resultados futuros com maior precisão.
As ferramentas de Business Intelligence (BI) ajudam as empresas a tomar decisões inteligentes em vez de depender de tentativa e erro. Essas decisões inteligentes podem fazer a diferença entre o sucesso e o fracasso no mercado.
O Microsoft Power BI é uma das principais ferramentas de inteligência de negócios do setor. Com apenas alguns cliques, o Power BI facilita para gestores e analistas explorarem os dados de uma empresa. Isso é importante porque, quando os dados são fáceis de acessar e visualizar, é muito mais provável que sejam utilizados na tomada de decisões empresariais.

Olá, desenvolvedores!
Como construir uma solução de analytics com InterSystems IRIS?

Para começar, vamos alinhar o que entendemos por solução de analytics — e esse pode ser um tema bastante amplo. Vamos limitar o conjunto de soluções àquelas que você pode apresentar no Concurso de Analytics.
Existem três tipos de soluções de analytics que analisaremos aqui: monitoramento, analytics interativa e relatórios.
Monitoramento
Uma solução típica de monitoramento consiste em um dashboard online com KPIs que são atualizados ativamente.
O principal caso de uso do monitoramento é observar visualmente os KPIs de dados recentes em tempo real para reagir em caso de emergência.
Analytics Interativa
Essa solução pressupõe um conjunto de dashboards interativos com filtros e recursos de drill-down.
O principal caso de uso é explorar os dados por meio de filtros e drill-downs, tomando decisões de negócio com base na visualização de gráficos e tabelas.
Relatórios
Uma solução de relatórios fornece um conjunto de relatórios (geralmente) estáticos, em formato HTML ou PDF, que apresentam os dados em forma de gráficos e textos em um layout previamente definido e que podem ser enviados por e-mail.
O caso de uso típico de um sistema de relatórios é obter relatórios referentes a um determinado período, ilustrando o status de um produto, processo, serviço, vendas etc., informações cruciais para o negócio.
Como os produtos da InterSystems podem ser usados para construir esse tipo de solução? Vamos discutir isso a seguir!
Nomes de rotinas, variáveis, classes, propriedades e métodos diferenciam maiúsculas de minúsculas. Mas comandos, funções e variáveis especiais do sistema não diferenciam: WRITE, Write, write e são todas formas válidas do mesmo comando. Isso significa que e são duas classes completamente distintas para o compilador , uma fonte clássica de bugs sutis quando a convenção de capitalização não é seguida com disciplina.
O símbolo tem significado especial.
Quando alguém abre um código em ObjectScript pela primeira vez, depois de anos trabalhando com Java, C# ou Python, a reação costuma ser de estranhamento. Não há declaração de tipos, não há import de bibliotecas de coleções, e os arrays parecem nascer do nada, sem tamanho definido, sem inicialização. Essa estranheza inicial esconde, na verdade, duas das maiores forças do ObjectScript: sua manipulação de strings extremamente direta e seus arrays multidimensionais, os famosos globals, que funcionam simultaneamente como estrutura de dados em memória e como mecanismo de persistência em disco.
Estava montando uma Production com algumas Business Operations diferentes e percebi que os campos das mensagens se repetiam. RequestCode, Payload, SourceSystem apareciam em praticamente todo request que eu criava. A tentação foi imediata: fazer uma classe genérica, reutilizar em todo lugar e seguir em frente.
Mas aí bati em uma dúvida real: isso era uma boa prática ou era preguiça disfarçada de reaproveitamento?
Venho do C# e do .NET, onde essa discussão tem um paralelo bastante concreto: a escolha entre um DTO genérico compartilhado por vários endpoints e contratos específicos por fluxo.
Primeiro, o que é uma Role ?
É um agrupamento de permissões dentro do modelo de segurança da plataforma. Em vez de conceder acesso individualmente a cada usuário, o administrador cria uma Role com um conjunto de permissões e a atribui a quem precisa daquele nível de acesso. Alterar a Role afeta automaticamente todos os usuários vinculados a ela.
O erro ocorre quando algum processo (instalação, script ou código) tenta referenciar uma Role que não existe no namespace %SYS daquele ambiente. É comum em Migração entre ambientes, Instalações automatizadas, Dependências entre Roles.
Olá, Comunidade!
Temos o prazer de compartilhar um novo vídeo do nosso InterSystems Developers YouTube:
Na semana passada eu estava criando a terceira Business Operation do mesmo projeto de integração e parei no meio do código com uma sensação familiar. Eu já tinha escrito aquele trecho antes. A montagem dos headers HTTP (Content-Type, Authorization com o token) e o parsing da resposta JSON apareciam praticamente idênticos nas três classes. Só mudava o endpoint e o corpo da requisição.
Em C#, essa situação tem solução óbvia para mim. Eu extrairia esse comportamento para uma classe de serviço e injetaria ela onde precisasse, ou criaria uma classe base com os métodos comuns.
Há algumas semanas eu estava tentando entender por que uma mensagem enviada por uma Business Service não chegava do jeito esperado na Business Operation. No Management Portal eu conseguia ver a mensagem entrando na fila e, mais tarde, uma entrada no Event Log dizendo que algo tinha saído errado. Entre esses dois pontos, porém, eu não enxergava nada. A mensagem passava pela Business Process, sofria alguma transformação no meio do caminho, e o resultado final não batia com o que eu esperava. Eu simplesmente não sabia em qual dos três componentes o problema estava.
Em ambientes de interoperabilidade na área da saúde, o InterSystems Health Connect normalmente contém componentes críticos, como produções, processos de negócio, operações, serviços, classes utilitárias, rotinas e outros artefatos ObjectScript. Tradicionalmente, muitas implantações desses componentes são realizadas manualmente, por meio da cópia de classes, importação de XML ou utilização de ferramentas administrativas disponíveis no portal de gerenciamento.
Uma das principais diferenças é o sistema de plugins. No VS Code, tudo é construído em torno de extensões. Por exemplo, para desenvolvimento InterSystems, existe o "InterSystems ObjectScript Extension Pack", que inclui as ferramentas essenciais. Com esse plugin você pode se conectar a servidores InterSystems, navegar pelo código, editar classes, compilar e trabalhar com ObjectScript diretamente do VS Code.
E não é só para ObjectScript. O VS Code também suporta Git, Docker, clientes REST, YAML, JSON, Python e muitas outras tecnologias.
Olá Comunidade,
As ferramentas de Inteligência Artificial estão se tornando parte do dia a dia de muitos desenvolvedores, e estou curioso para saber como outras pessoas estão usando essas ferramentas dentro do ecossistema InterSystems.
Vocês estão usando IA para:
- Gerar código ObjectScript?
- Resolver erros?
- Escrever documentação?
- Escrever documentação?
- Aprender novas tecnologias InterSystems mais rápido?
Tenho percebido que a IA pode ser uma ferramenta útil de produtividade, mas estou interessado em ouvir experiências reais da comunidade.
Este artigo apresenta uma abordagem simples para ajustar hiperparâmetros de modelos de machine learning de forma automática e eficiente utilizando o Optuna como framework de otimização. Exploramos como utilizar tanto as opções nativas de armazenamento do Optuna quanto o InterSystems IRIS como backend de banco de dados para acompanhar o progresso das buscas por hiperparâmetros. Também mostramos como o MLflow pode ser usado para monitorar experimentos e gerenciar modelos por meio de sua interface de rastreamento e registro de modelos.
Esta página não pode ser encontrada Nenhuma página da Web foi encontrada para o endereço Web:..... HTTP ERROR 404
Criei uma classe herdando de %CSP.REST, defini o UrlMap com uma rota GET e configurei a aplicação web no Management Portal
A versão 25.3 do InterSystems Reports já está disponível no site InterSystems Software Distribution, na seção Componentes. O software é denominado InterSystems Reports Designer e InterSystems Reports Server e está disponível para sistemas operacionais Mac OSX, Windows e Linux.
Não se deixe enganar pelo número da versão secundária - há muita coisa incluída nesta versão. Inclui uma interface de usuário atualizada – linhas mais limpas e cores mais frescas no “modo Claro” e a capacidade de voltar ao “modo Clássico” em seu perfil de usuário.
Eu tinha uma mensagem chegando numa Production e três destinos possíveis. Dependendo de um campo do request, ela precisava seguir para uma Business Operation diferente. Abri o meu Business Process, escrevi um IF, um ELSEIF e um ELSE, apontei cada caminho para a operação certa, compilei e testei. Funcionou de primeira. A dúvida veio alguns minutos depois, quando parei para olhar o que eu tinha feito e me perguntei se aquela decisão deveria mesmo morar ali dentro.
Foi essa pergunta que acabou virando um post na comunidade, e foi a partir das respostas que recebi que escrevi este artigo.
Lançamos a versão x64_64 do Ubuntu 26.04 em 21 de maio. Na época, informamos que estávamos adiando o lançamento do suporte para ARM devido a alguns problemas de rede ocasionais encontrados durante os testes. Trabalhamos com o Ubuntu para resolver esses problemas — um bug no driver de rede de um fornecedor — e temos o prazer de anunciar...
A InterSystems anuncia a disponibilidade geral de:
Esta versão adiciona suporte ao sistema operacional
No .NET, serializar um objeto para JSON virou para mim um problema resolvido. Eu decorava a classe com alguns atributos, chamava JsonSerializer.Serialize ou JsonConvert.SerializeObject, e seguia em frente. Raramente eu parava para pensar no que acontecia embaixo.
Quando comecei a mexer com integrações no IRIS durante o estágio na Shift, encontrei o %JSON.Adaptor e tive uma sensação familiar: parecia o mesmo atalho. Você faz a classe herdar de , ganha %JSONExport() e , e o objeto vira JSON. A pergunta que não saiu da minha cabeça foi outra: até onde isso vai?
Tenho uma Business Operation chamando um método SOAP via InvokeMethod, passando vários parâmetros individuais. A chamada retornou $$$OK sem nenhum SoapFault, mas o objeto de saída voltou indefinido, causando um erro
Descobri que o método do WebClient gerado havia sido refatorado para aceitar um único objeto de requisição em vez de parâmetros individuais - então minha chamada já não correspondia mais à assinatura.
Estava configurando uma Business Operation dentro de uma Production no Portal de Gerenciamento, no meu estágio. Preenchi host, porta, um caminho de arquivo e o endpoint de um serviço externo. Tudo certo, a Production subiu. O problema veio um minuto depois, quando pensei em levar aquilo para o ambiente de teste. No .NET, esse pensamento nem chega a virar pergunta: eu teria um appsettings.Test.json com os valores de teste e pronto. Fui procurar o equivalente no IRIS e não achei.
Olá Comunidade!
Temos o prazer de compartilhar o primeiro vídeo da série "Tutoriais do InterSystems Instruqt" em nosso canal do YouTube, InterSystems Developers:
⏯ Modelos de Dados do InterSystems IRIS - Guia passo a passo do InterSystems Instruqt
Quando comecei a trabalhar com Productions no InterSystems IRIS, achei que entendia bem os papéis de cada componente. O Business Service recebe a mensagem do mundo externo. O Business Process coordena o fluxo. O Business Operation entrega o resultado. Parecia simples.
Aí veio a primeira dúvida real: se eu preciso validar uma mensagem antes de rotear, onde essa validação deve ficar? No Business Service, antes de enviar para frente? Ou no início do Business Process, que é quem vai decidir o que fazer com ela?
Na época em que eu trabalhava como Engenheiro de Suporte ao Desenvolvedor no Worldwide Response Center (WRC) da InterSystems, ocasionalmente eu recebia casos envolvendo grandes acúmulos (backlogs) de mensagens em um ambiente de produção.
O cliente descobria que um subconjunto das mensagens enfileiradas não era mais útil e fazia uma pergunta semelhante a esta:
Existe uma prática recomendada (best practice) consagrada para abortar em massa mensagens na fila de um componente específico que correspondam a um conjunto específico de critérios?
Durante minhas primeiras semanas estudando IRIS, cheguei a um momento que mudou bastante minha forma de olhar para essa plataforma. Eu estava explorando uma classe persistente simples, daquelas que a gente cria seguindo qualquer tutorial introdutório, e decidi abrir o Management Portal para ver como os dados estavam armazenados de fato. Esperava encontrar algo parecido com uma tabela do SQL Server, com linhas e colunas bem definidas. Em vez disso, encontrei uma global.
Para quem vem do modelo relacional, como é o meu caso, isso quebra um pouco a intuição.
Olá pessoal!
Suponha que uma nova versão da sua incrível solução de software construída sobre o IRIS precise de alguma mudança de persistência: alguns dados precisam ser convertidos, algumas classes recebem novas propriedades ou até são renomeadas, e alguns dados devem ser pré-populados para classes persistentes recém-introduzidas, para manter toda a base de dados da aplicação consistente.
Quais são as abordagens de vocês?
Scripts baseados em SQL? ObjectScript, ou Python? Para as duas direções da migração, up e down?
Vocês geram isso automaticamente com Claude/Codex?