Olá, Comunidade!
Temos o prazer de compartilhar um novo vídeo do nosso InterSystems Developers YouTube:
SQL é uma linguagem padrão para armazenar, manipular e recuperar dados em bancos de dados relacionais.
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.
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?
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.
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.
Quando comecei a trabalhar com InterSystems IRIS no meu estágio, o primeiro obstáculo não foi o banco de dados nem a arquitetura da plataforma. Foi a linguagem em si. Olhei para o ObjectScript (COS) pela primeira vez e não consegui ler o que estava na tela. Parecia familiar o suficiente para me dar confiança, e diferente o suficiente para me confundir logo em seguida.
Venho do C# e do .NET, com foco em arquitetura em camadas, Windows Forms e SQL Server.
Como mencionado no artigo anterior, é possível configurar a forma como você deseja que suas coleções sejam armazenadas e consultadas em SQL.
.png)
Para configurar isso, você precisará utilizar os seguintes parâmetros e configurações de campo:
Olá a todos! 👋
Estou animado em compartilhar o projeto que enviei para o atual InterSystems .Net, Java, Python, and JavaScript Contest — ele se chama IRIStool and Data Manager, e você pode encontrá-lo no InterSystems Open Exchange e na minha página do GitHub.
Olá, Comunidade,
Qual é a maneira mais eficiente e segura em termos de memória para obter os nomes dos índices corrompidos em tabelas muito grandes, a fim de reconstruí-los? O problema é que, se um índice possui milhões de linhas corrompidas, o array .errors do %ValidateIndices cresce demais e lança um erro .

Olá a todos os estimados membros da comunidade de desenvolvedores InterSystems em espanhol!
Embora eu consulte frequentemente a comunidade de desenvolvedores e ocasionalmente tenha deixado alguma pergunta aqui, este será o meu primeiro artigo, e que melhor ocasião para fazê-lo do que participando no 3º concurso de artigos técnicos.
O tópico que abordarei neste artigo são as diferentes ferramentas que o InterSystems IRIS nos fornece para otimizar tanto os bancos de dados quanto as consultas que executamos, bem como os novos tipos de armazenamento e dados.
Olá Comunidade!
Já experimentou usar objetos seriais no InterSystems IRIS? Explore alguns dos benefícios e veja como começar a usá-los:
⏯️ Utilizando Objetos Seriais para Modelagem de Dados incorporados
Olá Pessoal,
A Equipe de Certificação da InterSystems Learning Services tem o prazer de anunciar o lançamento do nosso novo exame InterSystems IRIS SQL Professional. Ele já está disponível para compra e agendamento no catálogo de exames da InterSystems. Este exame é voltado para especialistas em IRIS SQL e aborda diversos tópicos avançados de IRIS SQL, que você pode encontrar na página do exame.
No InterSystems IRIS, ao compilar uma classe persistente, você obtém automaticamente uma tabela SQL. Às vezes, há situações que exigem ter nomes/opções ligeiramente (ou não tão ligeiramente) diferentes no SQL em comparação com o modelo de objetos. Aqui estão algumas das configurações que você pode alterar para que isso aconteça.
Elas definem a “face” da sua classe quando ela aparece como uma tabela no catálogo SQL.
SqlTableName permite alterar o nome da tabela SQL que armazena os objetos da sua classe.
O InterSystems IRIS 2026.1 já está disponível e repleto de aprimoramentos poderosos projetados para ajudar as organizações a escalar seu gerenciamento de dados como nunca antes. Quer você esteja lidando com os aspectos operacionais do gerenciamento de conjuntos de dados massivos ou buscando otimizar os custos de armazenamento, esta versão traz uma série de recursos para simplificar a vida com seus dados e enfrentar os crescentes desafios de conjuntos de dados muito grandes.
Desde que comecei a usar o Claude Code, minha motivação para criar coisas disparou.
Anteriormente, mesmo que eu quisesse construir algo, o ato de codificar parecia um incômodo, então, a menos que houvesse uma necessidade muito forte, eu raramente chegava ao ponto de programar. Mas agora, se eu apenas anotar as especificações, o Claude Code cuida do resto automaticamente, resultando em uma melhoria dramática na produtividade.
Eu venho de uma geração nativa em ObjectScript, então costumava sentir certa hesitação quando se tratava de mudar para o Python.
Olá Comunidade,
Estamos muito animados em compartilhar que acabamos de lançar um novo tutorial gratuito e interativo, desenvolvido especialmente para aqueles que são novos no InterSystems IRIS e buscam uma introdução clara e prática aos seus conceitos principais.
🧑🏫 Modelos de Dados do InterSystems IRIS 🧑💻

Em um artigo anterior, apresentei o módulo IRIStool, que integra de forma transparente a biblioteca pandas do Python com o banco de dados IRIS. Agora, estou explicando como podemos usar o IRIStool para aproveitar o InterSystems IRIS como base para buscas inteligentes e semânticas sobre dados de saúde no formato FHIR.
Este artigo cobre o que fiz para criar o banco de dados de outro dos meus projetos, o FHIR Data Explorer. Ambos os projetos são candidatos no concurso atual da InterSystems, então, por favor, vote neles se os achar úteis.
Aqui na InterSystems, frequentemente lidamos com conjuntos massivos de dados estruturados. Não é incomum ver clientes com tabelas contendo mais de 100 campos e mais de 1 bilhão de linhas, cada tabela totalizando centenas de GB de dados. Agora imagine fazer o join de duas ou três dessas tabelas, com um esquema que não foi otimizado para esse caso de uso específico. Só por diversão, vamos supor que você tenha 10 anos de dados de EMR de 20 hospitais diferentes em todo o seu estado, e você foi encarregado de encontrar….
O que é Dados Não Estruturados?
Dados não estruturados referem-se a informações que não possuem um modelo de dados ou organização predefinidos. Em contraste com os dados estruturados encontrados em bancos de dados com estruturas claras (por exemplo, tabelas e campos), os dados não estruturados não possuem um esquema fixo. Esse tipo de dado inclui textos, imagens, vídeos, arquivos de áudio, postagens em redes sociais, e-mails e muito mais.
Por que Insights de Dados Não Estruturados São Importantes?
O InterSystems IRIS permite criar APIs REST usando classes ObjectScript e o framework %CSP.REST. Isso possibilita o desenvolvimento de serviços modernos para expor dados para aplicações web, aplicativos móveis ou integrações de sistemas.
Neste artigo, você aprenderá como criar uma API REST básica no InterSystems IRIS, incluindo:
GETe POST Demo.ProductoClass Demo.Producto Extends (%Persistent, %JSON.Adaptor) {
Property Nombre As %String;
Property Precio As %Numeric(10,2);
}A injeção de SQL continua sendo uma das vulnerabilidades mais críticas em aplicações que dependem de banco de dados, permitindo que atacantes manipulem consultas e potencialmente acessem ou comprometam dados sensíveis. No InterSystems IRIS, os desenvolvedores têm acesso tanto ao SQL Dinâmico quanto ao SQL Embutido, cada um com características distintas. Entender como usá-los de forma segura é essencial para prevenir a injeção de SQL.
O SQL Dinâmico constrói consultas como strings em tempo de execução.
A InterSystems Ready 2026 Conference está se aproximando rapidamente — é um ótimo momento para se preparar e testar seus conhecimentos antes de tentar um dos exames de Certificação no local.
As certificações da InterSystems não são fáceis: você precisa praticar com questões alinhadas aos objetivos reais do exame.
O exam-prep.es é uma plataforma gratuita construída exatamente para isso: praticar, identificar pontos fracos e chegar mais bem preparado.
* Mais de 1.
Inspirado pela postagem de @Ashok Kumar Thangavel no portal de ideias aqui, bem como pelos meus próprios desejos de uma solução para este problema, criei uma maneira simples de permitir consultas JSON mais completas e consistentes sem ter que especificar cada campo desejado. Desenvolvi uma classe que estende a classe integrada %JSON.Adaptor e torna seus métodos %JSONExportToString e %JSONExportToStream acessíveis através de SQL com apenas alguns métodos SqlProc simples.
Class DH.JSONAdaptor Extends %JSON.Adaptor [ Abstract ]
{
ClassMethod jsonstring(id, map = "") [ SqlProc ]
{
try{
set myobj = ..%OpenId(id)
set sc = myobj.%JSONExportToString(.json,map)
if $$$ISERR(sc) $$$ThrowStatus(sc)
return json
}
catch ex{
throw ex
}
}
ClassMethod jsonstream(id, map = "") [ SqlProc ]
{
try{
set myobj = ..%OpenId(id)
set sc = myobj.%JSONExportToStream(.json,map)
if $$$ISERR(sc) $$$ThrowStatus(sc)
return json
}
catch ex{
throw ex
}
}
}Olá Desenvolvedores,
Aproveite o novo vídeo no canal InterSystems Developers do YouTube
⏯ Por Dentro do Vector Search - Inovações Técnicas no InterSystems IRIS @ READY 2025
O ObjectScript permite definir métodos que aceitam um número variável de argumentos usando a sintaxe `args...`. Em vez de fixar quantos parâmetros um método recebe, você deixa que quem chama decida quantos enviar.
Eles podem ser invocados de duas formas:
1. Com argumentos individuais: `metodo(val1, val2, val3)`
2. Expandindo um array: `metodo(args...)`

Você pode definir um método com um parâmetro fixo e um número variável de extras:
ClassMethodAs%StringEu queria testar o **vibecoding** em uma configuração real de backend + frontend no InterSystems IRIS, idealmente usando algo realista em vez de um exemplo de brinquedo. O objetivo era simples: pegar um pacote persistente existente e bem conhecido no IRIS e construir rapidamente uma interface de usuário (UI) e uma API utilizáveis ao redor dele — deixando a IA cuidar do máximo possível de código repetitivo (boilerplate). Aqui está o resultado dos experimentos.
Primeiramente, precisamos entender o que são palavras de prompt e quais são suas funções.
A engenharia de palavras de prompt é um método especificamente projetado para otimizar modelos de linguagem.
Seu objetivo é orientar esses modelos a gerar textos de saída mais precisos e direcionados por meio do design e ajuste das palavras de prompt de entrada.
A versão de manutenção 2025.1.3 da plataforma de dados InterSystems IRIS®, InterSystems IRIS® for HealthTM, and HealthShare® Health Connect já estão disponíveis para o público em geral (GA).