#InterSystems IRIS

4 Seguidores · 1.4K Publicaciones

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.

Artículo Nancy Martínez · ago 2, 2022 1m read

¡Hola desarrolladores!

Solo quiero compartir una antigua pero muy relevante buena práctica en el cambio de namespaces que @Dmitry Maslennikov compartió conmigo.

Consideremos el método:

classmethod DoSomethingInSYS() as %Status

{

set sc=$$$OK

set ns=$namespace

zn "%SYS"

// try-catch in case there will be an error

try {

// do something, e.g. config change

}

catch {}

 zn ns    ; returning back to the namespace we came in the routine

return sc

}
0
0 195
Artículo Muhammad Waseem · ago 1, 2022 1m read

Mientras pensaba en lo que podría desarrollar para el Concurso Full Stack de InterSystems, vi esta pregunta:
https://community.intersystems.com/post/how-access-production-items-through-objectscript

Desarrollé ProductionManager.csp. Muestra elementos en la producción activa. También muestra la Clase en uso y la fecha y hora del último mensaje. Creo que estos puntos de datos pueden ayudar a tomar decisiones sobre qué elementos eliminar de la producción.

0
0 107
Artículo Alberto Fuentes · abr 22, 2022 4m read

Durante una actualización a una versión principal (major) es aconsejable recompilar las clases y rutinas de todos tus namespaces (ver Tareas tras la instalación de una versión major).

do $system.OBJ.CompileAllNamespaces("u")
do ##Class(%Routine).CompileAllNamespaces()

Para automatizar esta tarea de administración y mantener un registro de cualquier error, os muestro un ejemplo de una clase para importar y compilar en el namespace USER, que puedes usar después de cada actualización: admin.utils.cls

1
0 211
Anuncio Mario Sanchez Macias · jul 28, 2022

Docker 20.10.14 (lanzado el 23 de marzo de 2022) cambia las funcionalidades que Linux da a los contenedores de una manera que es incompatible con el Linux capability checkeren los contenedores de InterSystems IRIS 2021.1 (y posteriores). 

Los usuarios ejecutando Docker 20.10.14 en Linux encontrarán que los contenedores de IRIS 2021.1+ fallarán al iniciarse y los logs reportarán de forma incorrecta que las funcionalidades requeridas de Linux no se encuentran. Por ejemplo:

[ERROR] Required Linux capability cap_setuid is missing.
[ERROR] Required Linux capability cap_dac_override is missing.
[ERROR] Required Linux capability cap_fowner is missing.
[ERROR] Required Linux capability cap_setgid is missing. 
[ERROR] Required Linux capability cap_kill is missing.
[FATAL] Your IRIS container is missing one or more required Linux capabilities.
0
0 132
Artículo Muhammad Waseem · jul 28, 2022 4m read

![ObjectScript Kernel Logo][ObjectScript Kernel Logo]

Jupyter Notebook es un entorno interactivo formado por celdas que permiten ejecutar código en un gran número de lenguajes de marcado y programación diferentes.

Para hacer esto, Jupyter debe conectarse a un kernel apropiado. No había un Kernel ObjectScript, por lo que decidí crear uno.

Puedes probarlo aquí.

Este es un adelanto de los resultados:

alt text

Jupyter Kernels 101

Hay varias formas de crear un Jupyter Kernel. Decidí hacer un kernel contenedor de Python.

Tenemos que crear una subclase de ipykernel.kernelbase.Kernel

0
0 175
Artículo Alberto Fuentes · mayo 25, 2021 12m read

En este artículo, me gustaría hablar sobre el enfoque spec-first para el desarrollo de una API REST.

Mientras que el desarrollo tradicional code-first de una API REST es así:

  • Escribir el código
  • Habilitarlo en REST
  • Documentarlo (como una API REST)

Spec-first sigue los mismos pasos, pero a la inversa. Comenzamos con una especificación, — que también actúa como documentación — , generamos el código base de la aplicación REST a partir de ella, y finalmente escribimos la lógica de negocio concreta que nos haga falta.

Esto ofrece varias ventajas:

1
0 1026
InterSystems Official David Reche · jul 26, 2022

Esta es el tercera de una serie de lanzamientos que forman parte del programa de versiones de prueba para desarrolladores. Las próximas versiones de prueba se espera que sean actualizadas cada dos semanas, aproximadamente, y añadiremos funcionalidades según estén listas. Se han añadido muchas actualizaciones y mejoras en 2022.2, en la gestión de SQL, integración cloud, adaptadores Kafka y JMS, SQL Loader y otras áreas.

0
0 191
Artículo Muhammad Waseem · jul 26, 2022 10m read

La fecha y la hora son factores importantes en nuestra vida. Porque todas las aplicaciones son interesantes según la fecha y la hora. Pero el mundo está dividido en múltiples zonas horarias. Si nuestro producto se lanza al mundo, para mantener el historial de eventos, debemos convertir todas las horas a nuestra hora local o UTC (Tiempo Universal Coordinado). Por lo que sé, muchos lenguajes de programación conocidos de C#, JavaScript, Java, etc., ofrecían la librería para convertir la fecha y la hora, es decir, con un nombre de zona horaria podemos convertir sin conocer la diferencia horaria.

La base de datos TZ no existe en los productos de InterSystems. En el pasado, escribí la función en C# (C# tiene una librería para esto) y la usé dentro de InterSystems como una clase contenedora.

Pero ahora, IRIS comenzó a ser compatible con Python Embebido. Por eso, podemos usar la conversión de zona horaria de Python en InterSystems fácilmente.

0
0 1035
Artículo Alberto Fuentes · jul 26, 2022 8m read

Servir el café: Cómo crear y programar una tarea

¿No te gustaría que una taza de café caliente te esperara justo al llegar a la oficina? ¡Vamos a automatizar eso!

Cache e IRIS incorporan un Administrador de tareas, que debería resultar familiar a quienes estén acostumbrados a utilizar el programador de tareas de Windows o a usar cron en Linux. Tu cuenta de usuario requerirá tener acceso al recurso %Admin_Task para utilizarlo, y puedes acceder a él desde el portal de administración en System Operation -> Task Manager. Cuando se instala por primera vez, hay aproximadamente 20 tipos de tareas que puedes programar.

Si quieres añadir tus propias tareas, empieza creando una clase que extienda %SYS.Task.Definition. Como mínimo, debes sobreescribir el método OnTask, que tiene una firma de Method OnTask() As %Status. El código de ese método se ejecutará cada vez que se lance la tarea. De hecho, si tu tarea arroja "Error #5003: No implementado (Error #5003: Not Implemented)" cada vez que se ejecuta, es porque este método no se sobreescribió correctamente. De manera muy básica, podría ser:

0
0 304
Pregunta Kurro Lopez · jul 21, 2022

Hola a todos,

Acabo de actualizar la versión de WebTerminal usando el link, pero ahora no funciona.

Cuando llamas a /terminal está mostrando el siguiente error:

{
    "errors":[ {
            "code":5002,
            "domain":"%ObjectErrors",
            "error":"ERROR #5002: Error de cache: <INVALID OREF>zWrite+5^WebTerminal.StaticContent.1",
            "id":"ObjectScriptError",
            "params":["<INVALID OREF>zWrite+5^WebTerminal.StaticContent.1"
            ]
        }
    ],
    "summary":"ERROR #5002: Error de cache: <INVALID OREF>zWrite+5^WebTerminal.StaticContent.1"
}
2
0 179
Artículo Nancy Martínez · jul 22, 2022 1m read

¡Hola desarrolladores!

Solo quiero compartir con vosotros mi conocimiento, es decir, experiencia en algo que os puede hacer ahorrar unas cuantas horas algún día. 

Si estás creando una REST API con IRIS que contiene más de un nivel de "/", por ejemplo: '/patients/all',  no te olvides de añadir el parámetro 'recurse=1' en tu script de despliegue en %Installer. Si no, todas las entradas de nivel secundario y de mayor profundidad no funcionarán. Y todas las entradas de nivel primario funcionarán.

/patients

- funcionará, pero

/patients/all

- no funcionará.

Este es un ejemplo de sección CSPApplication que arregla el problema y que puede que quieras usar en tu clase %Installer:

0
0 177
Artículo Muhammad Waseem · jul 19, 2022 3m read

Recientemente surgió un patrón interesante en torno a los índices únicos (en una discusión interna re: isc.rest) y me gustaría destacarlo para la Comunidad.

Como caso de uso motivador: supón que tienes una clase que representa un árbol, donde cada nodo también tiene un nombre, y queremos que los nodos sean únicos por nombre y nodo principal. Queremos que cada nodo raíz también tenga un nombre único. Una implementación natural sería:

ClassExtends%Persistent

¡Y aquí estamos!

0
0 156
Artículo Ricardo Paiva · jun 24, 2021 6m read

Publicación Original por: Anton Umnikov
Arquitecto Senior de soluciones en la nube en InterSystems
AWS CSAA, GCP CACE

 

AWS Glue es un proceso ETL (extraer, transformar y cargar) completamente gestionado, que hace sencillo y rentable clasificar los datos, limpiarlos, enriquecerlos y moverlos de forma fiable entre diferentes almacenes de datos.

En el caso de InterSystems IRIS, AWS Glue permite mover grandes cantidades de datos a IRIS desde fuentes de datos tanto en la nube como en las propias instalaciones (on-premise). Las fuentes de datos potenciales incluyen, pero no se limitan a, bases de datos on-prem, archivos CSV, JSON, Parquet y Avro que residen en buckets S3, bases de datos nativas en la nube como AWS Redshift y Aurora, y muchas otras.

1
0 534
Artículo Evgeny Shvarov · jul 18, 2022 2m read

¡Hola Comunidad!

@Joan Pérez publicó una reseña en la que comentó que no está muy claro qué aplicaciones están disponibles para InterSystems Package Manager. ¡Gracias por tu pregunta, Joan! De hecho, la respuesta merece una publicación.

Existen al menos dos formas de conocer las aplicaciones con ZPM:

1. Ejecutar el comando find en zpm:

IRISAPP>zpm

=============================================================================
|| Welcome to the Package Manager Shell (ZPM).                             ||
|| Enter q/quit to exit the shell. Enter ?/help to view available commands ||
=============================================================================
zpm:IRISAPP>find
registry https://pm.community.intersystems.com:
analytics-okr                         1.0.0
analyzethis                           1.2.4
aoc-2021-uvg                          0.0.2
aoc2021-rcc                           0.0.2
appmsw-dbdeploy                       1.0.3
appmsw-docbook                        1.0.5
appmsw-forbid-old-passwd              1.0.4

....
0
1 127
Artículo Ricardo Paiva · jul 14, 2022 6m read

A veces es necesario transferir o migrar datos y esquemas de datos de Postgres a IRIS. Actualmente hay varias opciones para hacerlo, pero las dos más populares son DBeaver y SQLGateway. Ésta última es descrita por Robert Cemper en este excelente artículo: DB Migration using SQLgateway (Migración de base de datos usando SQLgateway).

0
0 990
Artículo Muhammad Waseem · jul 12, 2022 8m read

Hola Comunidad,

Esta publicación es una introducción a mi aplicación iris-climate-change en Open Exchange.

iris-climate-change  importa el conjunto de datos Temperature Change, de la Organización de las Naciones Unidas para la Agricultura y la Alimentación (FAO), usando la funcionalidad LOAD DATA (SQL) y analiza y visualiza los datos con la ayuda del framework Python Flask Web, la librería Pandas Python data analysisPlotly Open Source Graphing Library for Python y la librería Plotly JavaScript Open Source Graphing.

0
0 206
Artículo Alberto Fuentes · abr 28, 2021 8m read

Introducción

Si resuelves problemas complejos en ObjectScript, probablemente tienes mucho código que funciona con los valores de %Status. Si has interactuado con clases persistentes desde una perspectiva de objetos (%Save, %OpenId, etc.), casi seguro que las ha visto. 

Un %Status proporciona una envoltura alrededor de un mensaje de error localizable en las plataformas de InterSystems. Un estado OK ($$$OK) simplemente es igual a 1, mientras que un mal estado ($$$ERROR(errorcode,arguments...)) se representa como un 0 seguido de un espacio seguido de una lista $ListBuild con información estructurada sobre el error.

1
1 236
Artículo Kurro Lopez · jul 10, 2022 1m read

Durante mucho tiempo hemos estado usando una utilidad en producción para exportar el resultado de una consulta a una hoja de cálculo Excel. Además, hemos hecho una modificación en ella, en la que la configuración explícita de los formatos de las columnas es una prioridad.

Esta utilidad usaba el módulo %SYS.ZENReportExcelExporter y se basa en un programa java. Todos los años el informe crecía y no había suficiente memoria RAM en java, por lo que teníamos que aumentar el valor de la variable entorno. El valor ha alcanzado los 7gb y se ha convertido en un problema.

0
0 224
InterSystems Official David Reche · jul 7, 2022

Ya están disponibles las versiones de prueba 2022.2 de InterSystems IRIS, IRIS for Health y HealthShare Health Connect para desarrolladores.

Esta es el segunda de una serie de lanzamientos que forman parte del programa de versiones de prueba para desarrolladores. Las próximas versiones de prueba se espera que sean actualizadas cada dos semanas, aproximadamente, y añadirán funcionalidades según estén listas. Este programa nos permite obtener feedback sobre las funcionalidades y mejoras según están disponibles. Más abajo verás una lista de mejoras para la versión 2022.2.

0
0 116
Artículo Ricardo Paiva · jul 7, 2022 15m read

Si tuvieras la oportunidad de cambiar algo en el Visualizador de Mensajes de Interoperabilidad en IRIS, ¿qué harías?

Después de publicar el artículo Panel de Control "IRIS History Monitor", recibí algunos comentarios muy interesantes y varias peticiones. Una de ellas fue un Visualizador de Mensajes mejorado.
Si aún no lo has hecho, echa un vistazo al proyecto: merece la pena que le dediques un rato, y además ganó el 3er premio (Bronce) a Los mejores desarrolladores y aplicaciones de InterSystems Open Exchange en 2019.
Empecé a pensar algunas ideas sobre lo que me gustaría incluir en el "nuevo" Visualizador de Mensajes pero ¿cómo podría mostrar estos recursos de la forma más rápida y sencilla?
0
0 193
Artículo Alberto Fuentes · jul 5, 2022 1m read

ObjectScript no incluye ningún método por defecto para añadir un array JSON a otro. Este es un fragmento de código que utilizo y que es equivalente al método concat() de JavaScript.

Puedes llamarlo con cualquier número de argumentos para concatenarlos en un nuevo array. Si un argumento es un array dinámico, sus elementos serán añadidos. Si no, el argumento en sí será añadido.

ClassMethod ConcatArrays(pArgs...) As %DynamicArray
{
	set outArray = []
	for i=1:1:pArgs {
		set arg = pArgs(i)
		if ($IsObject(arg) && arg.%IsA("%DynamicArray")) {
			set iter = arg.%GetIterator()
			while iter.%GetNext(.key, .value) {
				do outArray.%Push(value)
			}
		} else {
			do outArray.%Push(arg)
		}
	}
	return outArray
}
0
0 340
Artículo Jose-Tomas Salvador · jun 30, 2022 2m read

¡Hola desarrolladores!

En Docker Hub hay publicadas imágenes para los contenedores de InterSystems IRIS Community Edition e InterSystems IRIS Community for Health.

¿Qué es esto?

Hay un repositorio en que se publican estás imágenes (que, de hecho, son las mismas que las imágenes de IRIS Community Edition que tienes en el Registro de Contenedores de InterSystems a las que se les ha pre-cargado el cliente del ObjectScript Package Manager).

Así que si ejecutas este contenedor con IRIS CE o IRIS CE for Health puedes empezar a usar ZPM inmediatamente e instalar paquetes desde el Registro de la Comunidad o cualquier otro.

¿Que significa esto para ti?

0
0 120
Artículo Alberto Fuentes · jun 29, 2022 2m read

¡Hola Comunidad!

Me gustaría anunciaros brevemente tres nuevos paquetes, disponibles en Open Exchange / a través de ZPM, que pueden realmente ayudaros a acelerar el desarrollo en IRIS de aplicaciones full-stack modernas. Todo esto se anunció la semana pasada en una sesión del Global Summit, pero muchos no pudisteis asistir. Además, me acabo de enterar de que justo ahora está en marcha un concurso de desarrollo de aplicaciones full-stack!

En el corazón de todo esto está isc.rest

0
0 179
Artículo Muhammad Waseem · jun 28, 2022 1m read

IRIS Interoperability, antes conocida como Ensemble, viene con muchos adaptadores integrados. No tiene un servicio o un adaptador para recibir correo. He escrito un servicio de correo electrónico para recibir mensajes de correo a través de SMTP que se pueden pasar a la operación de correo electrónico.

Ahora quiero hacer una prueba de carga de una producción que envía mensajes a un servidor de correo externo mediante la operación de correo electrónico. El equipo del servidor de correo no quiere que les envíe miles de mensajes.

0
0 169
Artículo Muhammad Waseem · jun 28, 2022 3m read

¡Hola Comunidad!

Recientemente, migré una serie de repositorios de Objectscript de formato XML a UDL. Después de la migración, me decepcionó un poco la presentación en la interfaz web de GitLab.

Dado que la sintaxis de Objectscript es compatible con GitHub, pensé que también sería compatible con GitLab. Desafortunadamente, la librería utilizada por GitLab para resaltar el código no tiene una extensión para admitir Objectscript.

GitLab usa la librería Rouge, que puede resaltar más de 200 idiomas. Es una librería escrita en Ruby (consulta la página de GitHub), pero Objectscript no está en la lista.

0
0 188
Anuncio Jose-Tomas Salvador · jun 27, 2022

Hola Comunidad,

es un placer invitaros al próximo webinar para lanzar el siguiente reto/concurso: InterSystems Full Stack Contest Kick-off  centrado en problemas del cambio climático! El tema de este webinar está dedicado a la Competición Full Stack.

Discutiremos los retos clave y los problemas que el cambio climático y el calentamiento global nos plantean y cómo podrían ser resueltos. Como siempre, nuestros expertos responderán a preguntas sobre como desarrollar, contruir y desplegar soluciones full-stack utilizando InterSystems IRIS.

Date & Time: Lunes,  Junio 27 – 15:00 CEST (09:00 AM EDT)

Oradores:  
🗣 ​​​Ainar Abdrakhmanov, experto en cambio climático, co-autor de 4 waves course, Co-Fundador, SEO en Longevica
🗣 @Timothy Leavitt, InterSystems Development Manager
🗣 @Evgeny Shvarov, InterSystems Developer Ecosystem Manager

0
0 117
Anuncio Esther Sanchez · jun 24, 2022

Como sabéis, hay una etiqueta llamada "Mejores Prácticas", que se utiliza para destacar artículos de la Comunidad de Desarrolladores que incluyen recomendaciones sobre cómo desarrollar, probar, implementar y administrar mejor las soluciones de InterSystems. Cada 1-2 semanas los expertos de la companía eligen un nuevo artículo.

Hasta ahora, solo tienen dicha etiqueta artículos originales en inglés o artículos en español traducidos al inglés. La buena noticia es que ya podéis proponer artículos en español para que sean evaluados, aunque no estén traducidos al inglés.

¿Cómo podéis proponer un artículo?

0
0 121
InterSystems Official David Reche · jun 23, 2022

Ya están disponibles las versiones de prueba 2022.2 de InterSystems IRIS, IRIS for Health y HealthShare Health Connect para desarrolladores.

Esta es el primera de una serie de lanzamientos que forman parte del programa de versiones de prueba para desarrolladores. Las próximas versiones de prueba se espera que sean actualizadas cada dos semanas, aproximadamente, y añadirán funcionalidades según estén listas. Este programa nos permite obtener feedback sobre las funcionalidades y mejoras según están disponibles. Más abajo verás una lista de mejoras para la versión 2022.2.

0
0 103