Artículo
· 29 jul, 2021 Lectura de 2 min
Condiciones WHERE estáticas

En SQL, la condición más frecuente WHERE se relaciona principalmente con el contenido de las filas en las que trabajas.
Por lo tanto, debe calcularse y verificarse para cada fila a la que accedas.
Distinto es el caso (y por eso la llamé ESTÁTICA) de una condición WHERE independiente de las filas a las que accedes.

0 0
0 144
Artículo
· 5 oct, 2021 Lectura de 2 min
Banco de Mensajes de interoperabilidad de IRIS

Oí hablar del Banco de Mensajes (Message Bank) cuando comenzamos a rediseñar una producción de Health Connect para que se ejecutara en contenedores en la nube. Como habría varios contenedores de IRIS, se nos indicó que utilizáramos el Banco de Mensajes como un sitio único para ver los mensajes y registros de todos los contenedores.

¿Cómo funciona Message Bank?

Añadí la operación del Banco de Mensajes a nuestra Producción de Interoperabilidad. Envía automáticamente mensajes y registros de eventos al Banco de Mensajes.

0 0
0 73

Algunos de vosotros no conoceréis esta limitación o problema conocido que se produce en los Procesos de Negocio (Business Processes) basados en BPL.

Aquellos que no estabais al tanto quizá os habéis encontrado esto:

ERROR <Ens>ErrBPTerminated: Terminating BP <my_process_name> # due to error:

ERROR #7201: Datatype value 'xxS6xxS6...xxS6' length longer than MAXLEN allowed of 5
1 0
0 76

¡Hola desarrolladores!

Os traemos la primera ponencia del Virtual Summit 2021, ya disponible en el Canal de YouTube de la Comunidad de Desarrolladores en inglés.

El idioma del vídeo es el inglés y podéis activar los subtítulos en inglés si os resulta más fácil entender el vídeo leyendo el texto. Solo tenéis que hacer clic en el icono de subtítulos abajo:

Introducción a Python Embebido (Embedded Python)

1 0
0 289
Artículo
· 7 feb, 2022 Lectura de 1 min
Devolver un fichero para descargar en tu API REST

Si tu API REST necesita retornar un fichero para que el cliente lo descargue, puedes utilizar lo siguiente (extraído de la pregunta https://community.intersystems.com/post/download-file-rest y sus respuestas):

Set %response.ContentType = "image/jpeg"
Do %response.SetHeader("Content-Disposition","attachment;filename=""test.jpg""")
Set %response.NoCharSetConvert=1
Set %response.Headers("Access-Control-Allow-Origin")="*"

 

Set stream=##class(%Stream.FileBinary).%New()
Set sc=stream.LinkToFile("/opt/irisbuild/output/test.jpg")
Do stream.OutputToDevice()

 

Set tSC=$$$OK
0 0
0 585

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
0 195

¡Hola desarrolladores!

Para el concurso de Opendataset he desarrollado una aplicación, en formato docker, que utiliza InterSystems IRIS y Openflights Dataset en un contenedor y un segundo contenedor con Apache Zeppelin. Puedes encontrar los detalles aquí: https://github.com/andreas5588/openflights_demo

1 0
0 82

Ya está disponible la versión 1.1 de System Alerting & Monitoring (SAM).

¿Qué es SAM?

SAM combina el Monitor de Logs y la API de Monitorización de IRIS, basados en estándares, con herramientas que nos resultan familiares, y son estándares de facto en la industria, como Grafana y Prometheus, para crear una solución básica de monitorización y alerta para clusters IRIS.

Para saber más sobre SAM, consulta la Guía de SAM (en inglés).


Novedades en SAM 1.1

Verás mejoras de rendimiento para los gráficos del cuadro de mando de Grafana, especialmente cuando se trabaja con grandes conjuntos de datos. Si vas a actualizar desde SAM 1.0, asegúrate de tener suficiente espacio en disco disponible, ya que SAM 1.1 añade índices adicionales a los datos.

0 0
0 125
Artículo
· 28 jun, 2022 Lectura de 3 min
Sintaxis de ObjectScript para GitLab

¡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.

0 0
0 144

Esta es el cuarta de una serie de lanzamientos que forman parte del programa de versiones de prueba 2022.2 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
0 84
Artículo
· 22 sep, 2022 Lectura de 5 min
¿Cómo encontrar el conjunto de datos que necesitas?

¡Hola Comunidad!

Durante años he trabajado en muchos proyectos diferentes y he podido encontrar muchos datos interesantes.

Pero la mayoría de las veces el conjunto de datos con el que trabajaba era de los clientes. Cuando hace un par de años empecé a participar en los Concursos de Programación de InterSystems, comencé a buscar conjuntos de datos web específicos.

Yo mismo he ido seleccionando algunos datos, pero he pensado: "¿Este conjunto de datos es suficiente para ayudar a otras personas?"

1 0
1 73

En la primera parte de esta serie de artículos hablamos sobre cómo leer un gran fragmento de datos del cuerpo sin procesar de un método HTTP POST y guardarlo en una base de datos como una propiedad stream de una clase. En la segunda parte comentamos cómo enviar archivos y sus nombres envueltos en un formato JSON.

Ahora analizaremos más de cerca la idea de enviar al servidor grandes archivos por partes. Para ello, podemos utilizar varios enfoques. En este artículo se analiza el uso del encabezado Transfer-Encoding para indicar una transferencia fragmentada. La especificación HTTP/1.1 introdujo el encabezado Transfer-Encoding, y la sección 4.1 RFC 7230 lo describió, pero está ausente en la especificación HTTP/2.

1 0
0 117

YASPE es el sucesor de YAPE (Yet Another pButtons Extractor). YASPE ha sido escrito desde cero con muchos cambios internos para facilitar el mantenimiento y añadir mejoras.

Funcionalidades de YASPE:

  • Analizar y representar gráficamente los archivos de InterSystems Caché pButtons e InterSystems IRIS SystemPerformance para un rápido análisis de rendimiento de las métricas de IRIS y del Sistema Operativo.
  • Facilitar un análisis profundo, creando gráficos tanto ad-hoc como combinando métricas de IRIS y del Sistema Operativo con la opción "Pretty Performance".
  • La opción "System Overview" te ahorra tener que buscar en los archivos SystemPerformance detalles del sistema u opciones de configuración comunes.

YASPE está escrito en Python y está disponible en GitHub como código fuente o para contenedores Docker en:


0 0
0 49
Artículo
· 2 ene, 2023 Lectura de 5 min
Plantilla de Python Embebido

¡Hola desarrolladores!

Comparto con vosotros una plantilla de Python Embebido básica, que recomiendo como punto de partida para cualquier proyecto general con InterSystems IRIS que use Python Embebido.

Funcionalidades:

  • Python Embebido configurado;
  • 3 ejemplos con difentes formas de desarrollar con Python Embebido;
  • VSCode configurado;
  • Docker disponible;
  • Demo online disponible;
  • Desarrollo ZPM First disponible.

Vamos a comentar estas funcionalidades.

2 0
0 103

Para todos aquellos que aún utilizáis el IDE Studio para programar con ObjectScript y vais a pasar por el proceso de migración a VS Code, ¿sabíais que hay una sección en la documentación de VS Code justo para vosotros? Echad un vistazo al apartado Migración desde Studio. Incluye los siguientes aspectos:

  • Edición del lado del servidor y control de código fuente
  • Proyectos de Studio
  • Importación de definiciones de servidor desde el Registro de Windows
  • Carga de fragmentos de código de Studio y colores de sintaxis

Y ahora hay una sección llamada Atajos de teclado, que muestra los atajos equivalentes en VS Code a los que estéis acostumbrados, para que las manos no tengan que dejar el teclado. En muchos casos el atajo es el mismo, por lo que no será necesario re-aprender. Y recordad, todos los atajos en VS Code son configurables por el usuario, por lo que tendréis un nivel de control que Studio nunca ofreció.

2 0
0 88
Artículo
· 28 feb, 2023 Lectura de 6 min
Como controlar el acceso a tus recursos con OAuth2

Buenas a todos,

una de las herramientas potentes que tiene Intersystems es la posibilidad de implementar en el propio sistema la autenticación OAuth2. Esta herramienta nos da la posibilidad de poder controlar quien accede a nuestros recursos y como accede.

A continuación planteo una solución ante el problema de querer controlar quien accede a mis recursos y la posibilidad de monitorizarlo. Para ello deberemos seguir los siguientes pasos:

7 0
2 157

Introducción

En algunos de mis artículos he hablado de tipos entre IRIS y Python, y está claro que no es tan fácil acceder a objetos de un lado a otro.

Afortunadamente, el trabajo ya se ha hecho, con la creación de SQLAlchemy-iris, que hace mucho más fácil para Python acceder a los objetos de IRIS, y voy a mostraros cómo funciona.

0 0
0 611

¡Hola Comunidad!

Hemos grabado el webinar que hicimos la semana pasada y lo hemos subido al canal de YouTube de la Comunidad de Desarrolladores en español. Si os perdisteis el webinar o lo queréis volver a ver con más detalle, ya está disponible la grabación!

Arduino + IRIS, la combinación perfecta

https://www.youtube.com/embed/7qZ4aNoXTAE
[Este es un enlace integrado, pero no puede ver el contenido integrado directamente en el sitio porque rechazó las cookies que se necesitan para acceder a él. Para ver el contenido integrado, debe aceptar todas las cookies desde la Configuración de cookies]

1 0
0 58

InterSystems anuncia que el componente central de InterSystems Supply Chain Orchestrator™, la versión 2023.1 de InterSystems IRIS for Supply Chain, está disponible de manera general (GA).

InterSystems Supply Chain Orchestrator está construido sobre InterSystems IRIS®, nuestra plataforma de datos más completa para entornos on-premise, en nube e híbridos, que posibilita una arquitectura de smart data fabric para hacer más fácil la creación e implementación de aplicaciones de alto rendimiento, que hacen uso de técnicas de machine learning y que permiten conectar silos de aplicaciones y datos. Combina la potencia de InterSystems IRIS con aceleradores y frameworks específicos de la cadena de suministro, para ofrecer soluciones optimizadas para la orquestación de la cadena de suministro, percepción de demanda y previsión, compleción de ordenes y reempaquetado de productos que han de moverse rápidamente.

0 0
0 76

Cuando IRIS 2023.2 esté disponible (GA), haremos algunas mejoras en la forma de etiquetar y distribuir los contenedores de IRIS e IRIS for Health.

Los contenedores de IRIS han sido etiquetados usando el número completo de compilación (build), por ejemplo 2023.1.0.235.1. Los clientes llevan un tiempo solicitando etiquetas más estables, para no tener que cambiar sus archivos de Docker/Kubernetes cada vez que se lanza una nueva versión. Y con eso en mente, estamos realizando los siguientes cambios en la forma que etiquetamos las imágenes de los contenedores.

0 0
0 33

Si estáis pensando en empezar con SQL en InterSystems IRIS o queréis hacer vuestras consultas más eficientes, podéis completar uno de estos breves ejercicios de formación online! (en inglés)

SQL Exercise

Ambos ejercicios ponen a vuestra disposición una instancia de IRIS en la nube (o learning lab) por lo que no necesitaréis realizar ninguna instalación previa en vuestros equipos.

0 0
0 103

Preguntas frecuentes de InterSystems

Las definiciones de clases creadas por los usuarios se almacenan en clases de definición de clases. Estas se pueden utilizar para obtener una lista de definiciones de clases desde un programa.

Nota: Las clases de definición de clase se refieren a todas las clases contenidas en el paquete %Dictionary.

0 0
0 48

Preguntas frecuentes de InterSystems

Si se establece una relación y hay una gran cantidad de n en una proporción de 1:n, se puede consumir una gran cantidad de memoria debido al procesamiento secuencial de la relación.

Después de hacer referencia a un objeto de muchos lados en un programa y cambiarlo internamente, simplemente liberar la variable que contiene el OREF (eliminarla, establecer otro valor, etc.) no liberará el objeto de muchos lados ni el objeto de relación. Ésta es la causa.

1 0
0 36

El pasado viernes 17 de noviembre me encontré de repente un error en el que ZPM mostraba un error diciendo:

¡ERROR! La apertura del objeto falló porque no se encontró el valor clave 'Nombre' de 'x' (ERROR! Object open failed because 'Name' key value of 'xx' was not found)

Busqué en Google pero no encontré nada que me ayudara. Paso a paso fui capaz de concluir que:

  1. Este es el mensaje de error para el error 5770, también conocido como $$$KeyValueNotFoundOpen.

0 0
0 94