Hola desarrolladores,
Nos alegra anunciar el primer concurso de programación online de InterSystems del año:
🏆 Concurso Full Stack de InterSystems 🏆
Duración: del 2 de febrero al 1 de marzo de 2026
Bolsa de premios: 12.000 $
.jpg)
InterSystems IRIS es una Plataforma completa de datos.
InterSystems IRIS le proporciona todo lo que necesita para capturar, compartir, comprender y actuar sobre el activo más valioso de su organización, sus datos.
Dado que es una plataforma completa, InterSystems IRIS elimina la necesidad de integrar varias tecnologías de desarrollo. Las aplicaciones necesitan una menor cantidad de código, menos recursos del sistema y poco mantenimiento.
Hola desarrolladores,
Nos alegra anunciar el primer concurso de programación online de InterSystems del año:
🏆 Concurso Full Stack de InterSystems 🏆
Duración: del 2 de febrero al 1 de marzo de 2026
Bolsa de premios: 12.000 $
.jpg)
SETasigna un valor a la variable en TIEMPO DE EJECUCIÓN.
#DIM declara la variable y su tipo de datos en TIEMPO DE COMPILACIÓN.
SET |
#DIM |
|
Hace que las variables sean dinámicas. |
Mejora la legibilidad. |
|
Sin declaración de tipo de datos. |
Permite la autocompletación en el IDE. |
|
Tiempo de ejecución |
Útil para referencias a objetos. |
#DIMAs%StringSET o #DIM? Vuestro diseño, vuestras reglas.Existen numerosas herramientas excelentes para probar vuestras APIs REST, especialmente cuando están en funcionamiento. Postman, distintas extensiones de navegador e incluso código personalizado en ObjectScript usando objetos %Net.HttpRequest pueden hacer el trabajo. Sin embargo, a menudo resulta complicado probar únicamente la API REST sin involucrar, sin querer, el esquema de autenticación, la configuración de la aplicación web o incluso la conectividad de red. Son muchos obstáculos solo para probar el código dentro de vuestra clase dispatch.
La buena noticia es que, si nos tomamos el tiempo para comprender cómo funciona internamente la clase %CSP.REST, encontraremos una alternativa que permite probar únicamente el contenido de la clase dispatch. Podemos configurar los objetos de request y response para invocar los métodos directamente.
IPM versión 0.10.5 se ha lanzado el 15 de enero de 2026. Esta nueva versión incluye un montón de mejoras y correcciones de errores, así que aseguraos de echarle un vistazo, ya sea directamente desde la página de GitHub o desde el Registro de la Comunidad.
Los cambios más importantes incluyen lo siguiente:
Enviáis una petición HTTP y recibís un error HTTP, pero con una página de error HTML que no esperabais… ¿qué está pasando? 🤔
Por ejemplo, puede que hayáis intentado LEER un recurso FHIR (por ejemplo, /Patient/123) y recibáis una página de error 404, aunque con otros IDs de Patient sí obtenéis la carga útil del recurso. Es decir, “la página” definitivamente existe… ¿por qué os está devolviendo una página de error 404? 🙄
Si queréis generar JWT a partir de un certificado/clave x509, cualquier operación (incluida la lectura) sobre %SYS.X509Credentials requiere el permiso U en el recurso %Admin_Secure. Esto se debe a que %SYS.X509Credentials es persistente y está implementado así para evitar que todos los usuarios tengan acceso a las claves privadas.
Si el recurso %Admin_Secure no está disponible en tiempo de ejecución, podéis usar la siguiente solución alternativa.
Revisándo el código de generación de JWT, descubrí que sólo utiliza %SYS.X509Credentials
Hola Comunidad!
¿Necesitas un modo de almacenar de forma segura tus passwords, API keys y otras credenciales? Mira como el Secure Wallet en InterSystems IRIS® data platform te puede ayudar:
InterSystems IRIS se basa en una arquitectura que separa la organización lógica de los datos (namespaces - espacios de nombres) de su ubicación física de almacenamiento (bases de datos). Comprender esta separación y la distinción entre espacios de nombres y bases de datos es fundamental para una gestión de datos eficaz, la seguridad y, especialmente, para compartir datos con alto rendimiento.
En este artículo, explicaré estos componentes fundamentales y ofreceré una guía práctica sobre cómo aprovechar los mapeos de globals para compartir estructuras de datos nativas (globals) entre diferentes entornos lógicos.
Una base de datos representa la realidad física de dónde se almacenan los datos en el disco. Antes que nada, es un archivo en un sistema de archivos llamado IRIS.dat (por ejemplo, <carpeta de instalación>\mgr\user\IRIS.DAT). El tamaño máximo de este archivo es de 32 TB. Es el contenedor de todos los datos y del código. Las bases de datos son gestionadas por el núcleo de IRIS, que se encarga del caché, el registro en diario (journaling) y el registro de transacciones a nivel de archivo físico.
Al instalar el DBMS de InterSystems IRIS, se crean automáticamente las siguientes bases de datos:

A veces es más conveniente, más eficiente y más seguro limitar las búsquedas FHIR a "listas" de recursos predefinidas.
Desde la versión v2025.1, soportamos varias funcionalidades relacionadas con listas en nuestro servidor FHIR.
Aquí las destacaré y os proporcionaré algunos ejemplos.
Al trabajar con InterSystems Interoperability (IRIS / Health Connect / Ensemble), los datos de configuración a menudo están distribuidos en muchos elementos de producción: servicios, procesos, operaciones, adaptadores y sus configuraciones.
Una necesidad operativa o de seguridad común es responder preguntas como:
Hola, comunidad,
Disfrutad del nuevo vídeo en el YouTube de InterSystems Developers:
⏯ Avanzando en la interoperabilidad sanitaria: estrategia y visión @ Ready 2025
Probablemente os suene esta situación:
Hace tiempo encontraste una función muy especial, $ZU, para un tipo de problema muy concreto. Como una especie de fórmula mística. Esta se popularizó y muchos desarrolladores la utilizaron en su código.
Tras varias versiones y actualizaciones, ISC informa de que vuestro mágico $ZU está obsoleto y ya no es soportado. Se os recomienda reemplazarlo por un nuevo $loquesea().
Entonces, ¿cómo podrías localizar y documentar el uso de este mágico $ZU? Puede estar en clases, en código MAC, INT o INC o incluso distribuido en múltiples namespaces.
Hola, comunidad,
Disfrutad del nuevo vídeo en el canal de YouTube de InterSystems Developers:
Las capacidades integradas de búsqueda vectorial de InterSystems IRIS nos permiten buscar datos no estructurados y semiestructurados. Los datos se convierten en vectores (también llamados “embeddings”) y luego se almacenan e indexan en InterSystems IRIS para búsqueda semántica, generación aumentada por recuperación (RAG), análisis de texto, motores de recomendación y otros casos de uso.
Esta es una demostración sencilla de IRIS siendo utilizado como una base de datos vectorial y para búsquedas por similitud en IRIS.
Este código muestra los elementos de producción configurados e indica si están habilitados o deshabilitados.
Include (Ensemble, EnsUI, EnsUtil)
Class Test.ProductionConfig
{
ClassMethod GetConfigItems() As %Status
{
Set tStatement = ##class(%SQL.Statement).%New()
Set tSC = tStatement.%PrepareClassQuery("Ens.Config.Production","EnumerateConfigItems")
Write tSC,!
Write "ConfigItemName"," ","Enabled",!
#Dim exp As %Exception.SystemException
#Dim rset As %SQL.StatementResult
Set rset = tStatement.%Execute()
Write rset,!
Write rset.%SQLCODE,!
While rset.%Next() {
Try {
Set tConfigName = rset.
Fue alentador ver a más personas creando extensiones de VS Code para el concurso reciente. Sin embargo, noté que de las tres extensiones que requieren credenciales para realizar sus conexiones, solo la de @John Murray, gj :: dataLoader, aprovecha la extensión InterSystems Server Manager, ampliamente establecida y oficialmente soportada, para obtener las definiciones de conexión y gestionar las credenciales de manera segura.
.png)
La idea más votada en el InterSystems Ideas Portal —con 74 votos— pide una versión ligera de IRIS. Aunque la plataforma ha crecido hasta convertirse en un potente motor de datos, muchos proyectos solo necesitan sus capacidades de base de datos SQL. Este artículo muestra cómo crear una imagen no oficial y compacta de IRIS Community Edition centrada únicamente en la funcionalidad básica de base de datos, reduciendo el tamaño de la imagen en más de un 80%.
Este proyecto genera una imagen no oficial y experimental de InterSystems IRIS Community Edition.
Aunque IRIS incluye hoy funciones muy completas —interoperabilidad, analítica, machine learning, gestión del sistema, etc.— muchos proyectos solo requieren sus capacidades SQL básicas. La imagen oficial Docker de Community Edition ocupa aproximadamente:
IRIS Light reduce eso a:
Esto lo hace adecuado para:
En el día a día de cualquier organización, la información fluye entre aplicaciones, servicios y sistemas muy distintos entre sí. Integrarlos de forma eficiente puede ser un reto... a menos que uses InterSystems IRIS.
En este nuevo vídeo te muestro cómo construir un flujo completo de integración combinando múltiples tecnologías —APIs REST, ficheros CSV, bases de datos y servicios SOAP— todo dentro del entorno visual que ofrece el motor de interoperabilidad de IRIS.
👉 Puedes ver el vídeo aquí:
Hola a todos.
Tengo una duda con respecto a la prioridad a la hora de aplicar una configuración por defecto.
Tengo unos Business Services que utilizan la misma clase, por lo que quiero que todos ellos tengan una configuración de "Schedule" común.
Pero hay uno de ellos que no quiero que se le aplique esta configuración por defecto, por lo que he intentado ponerle el valor vacío de Schedule para ese elemento por el nombre:
En este caso, tengo los elementos que utilicen la clase Kurro.BS.SFTP.Marca tengan por defecto el valor CargaFicheros
.png)
Pero uno de los elementos (Kurro.BS.SFTP.
Hola a todos. De nuevo, me gustaría compartir lo que estoy estudiando recientemente: crear tablas externas usando SQL a través de JDBC.
Como estoy aprendiendo sobre IRIS BI al mismo tiempo, empecé con este entorno docker de Sample-BI.
https://github.com/intersystems/Samples-BI
Después de iniciar el entorno, iniciad sesión en el portal de administración en http://localhost:52773/csp/sys/UtilHome.csp con el usuario Superuser.
Cambiad el namespace a IRISAPP.
.png)
😀 Veremos que todos los datos de ejemplo están almacenados en este namespace IRISAPP
Para ejecutar SQL en la terminal, usad $system.SQL.Shell().
Consultad el siguiente ejemplo.
SAMPLES>do $System.SQL.Shell()
SQL Command Line Shell
---------------------------------------------------- The command prefix is currently set to: <>.
Enter q to quit, ? for help.
SAMPLES>>select * from Sample.Vendor
1. select * from Sample.
Hay un patrón con el que me he encontrado varias veces en el que necesito usar un archivo o carpeta temporal y que se limpie en algún momento más adelante.
Lo natural aquí es seguir los patrones de "Robust Error Handling and Cleanup in ObjectScript" usando un try/catch/pseudo-finally o un objeto registrado para gestionar la limpieza en el destructor. %Stream.File* también tiene una propiedad “RemoveOnClose” que podéis activar… pero usadla con cuidado, porque podríais eliminar accidentalmente un archivo importante, y este indicador se reinicia al llamar a %Save(), así que tendréis que volver a ponerlo a 1 después de hacerlo.
Pero hay un caso complicado: imaginad que necesitáis que el archivo temporal sobreviva en un nivel de pila superior. Por ejemplo:
Simplemente instalo intersystems iris en un pc cliente la opción cliente
Toda la instalació no da ningun error pero luego el telnet no funciona
Saludos y gracias
César Arasa
Me complace anunciar la publicación de gj :: dataLoader, una nueva extensión de VS Code que simplifica la tarea de cargar datos desde archivos CSV locales en tablas SQL de vuestros servidores InterSystems IRIS.
Aquí tenéis un vídeo introductorio:
gj :: dataLoader ya está disponible en Marketplace para su instalación directa en VS Code. Es mi propuesta para el concurso “Bringing Ideas to Reality” 2025 y lleva a la práctica esta idea: https://ideas.intersystems.com/ideas/DPI-I-667
Se agradecen vuestros comentarios.
Al exportar usando el método Export() de la clase %Library.Global, si el formato de exportación (cuarto argumento: OutputFormat) está establecido en 7, “Block format/Caché block format (%GOF)”, no se pueden exportar globals mapeadas (solo se exportan las globals de la base de datos global predeterminada del espacio de nombres). Para exportar globals mapeadas en “Block format/Caché block format (%GOF)”, especificad el directorio de la base de datos a la que queréis mapearlas en el primer parámetro de %Library.Global.Export().
Hace ya un tiempo hice un pequeño ejemplo para poder desplegar rápidamente utilizando Docker instancias de InterSystems IRIS conectadas vía ECP. Ha pasado el tiempo y, como todo, necesitaba algo de chapa y pintura...
El proyecto de interfaz de usuario de Interoperabilidad ha continuado desde 2025.1 y ha incorporado muchos de los elementos que vosotros, nuestros clientes y socios, habéis sugerido y observado. Seguimos invirtiendo en vuestro feedback y actualizando esta importante experiencia de usuario. En la última versión, 2025.3 para IRIS, IRIS for Health, Health Connect y Health Connect Cloud, las aplicaciones del Editor DTL y de Configuración de Producción están disponibles para activarlas si lo deseáis.
NOTA:
Hola, desarrolladores:
Disfrutad del nuevo vídeo en el canal de YouTube de InterSystems Developers.
⏯ Integración de agentes de IA en InterSystems IRIS: patrones y técnicas @ READY 2025
Hola,
Cuando abrimos un terminal en IRIS, entramos en el shell de ObjectScript. Dentro de este shell, podemos ejecutar comandos de IRIS, como:

En otras palabras, el comando ObjectScript se ejecuta en el shell actual. Pero siempre es bueno recordar que IRIS tiene otros shells.
Un aspecto muy interesante son los atajos. Podemos acceder a estos shells mediante sus llamadas o a través de atajos, como se muestra en la tabla siguiente:
|
Shell |
Llamada |
Atajo |
|
SQL |
Do $SYSTEM.SQL.Shell() |
:sql |
|
Python |
Do $SYSTEM.Python. |
Hola comunidad,
¡Buenas noticias para los desarrolladores que acabáis de empezar a trabajar con InterSystems IRIS! Tenemos tutoriales interactivos y prácticos disponibles a través de la plataforma Instruqt. Son perfectos para poneros al día rápidamente, practicar en entornos reales y ganar confianza en el desarrollo con IRIS.
.png)