Estoy utilizando RestForms2 para disponer de una API Rest sobre unas tablas de forma rápida.

El caso es que he añadido un trigger a las tablas para que, cada vez que se inserte/actualice/borre un registro, registre en una tabla de históricos los cambios, pudiendo ver el valor original y el nuevo de cada propiedad.

Pero el trigger solamente salta si la inserción se realiza mediante SQL. No salta creando un nuevo objeto.

0 2
0 113

Hay una nueva funcionalidad muy interesante en la recientemente anunciada versión de prueba 2024.1 de InterSystems IRIS - JSON_TABLE. JSON_TABLE forma parte de una familia de funciones introducidas en la versión 2016 del estándar SQL (ISO Standard, publicado a principios de 2017). Permite que valores JSON se mapeen a columnas y se consulten usando SQL. JSON_TABLE puede usarse en la cláusula FROM de algunas sentencias SQL.

La sintaxis de JSON_TABLE es bastante extensa, permitiendo condiciones excepcionales cuando los valores JSON proporcionados no cumplen las expectativas, estructuras anidadas, etc.

La sintaxis básica es bastante sencilla. El primer argumento pasado a JSON_TABLE es el valor JSON que se va a consultar. Puede ser un literal, una referencia a una columna o una llamada a una función. El segundo argumento es una expresión JPL (JSON Path Language), que permite filtrar el valor proporcionado. Después va la cláusula COLUMNS - justo en medio de la llamada a la función. La cláusula COLUMNS se parece mucho a las definiciones de columnas en una sentencia CREATE TABLE pero con un añadido muy necesario - el PATH. PATH es una expresión JPL que se aplica al valor JSON para producir el valor de la columna.

0 0
0 97
Artículo
· 29 feb, 2024 Lectura de 5 min
Poniendo a prueba el Columnar Storage

Como seguramente ya sabréis la mayoría de vosotros, desde aproximadamente finales de 2022 InterSystems IRIS incluyo la funcionalidad de almacenamiento columnar a su base de datos, pues bien, en el artículo de hoy vamos a ponerla a prueba en comparación con el almacenamiento en filas habitual.

1 2
0 87

He estado desarrollando una aplicación web que utiliza IRIS como back-end. Trabajé en ella con acceso no autenticado. Estoy llegando al punto en el que me gustaría implementarla para los usuarios, pero primero necesito añadir la autenticación. En vez de utilizar la contraseña para la autenticación predeterminada de IRIS (con contraseña), me gustaría que los usuarios iniciaran sesión con el Inicio de Sesión Único (SSO) de mi organización, o con algún otro proveedor de identidad popular como Google o GitHub. He leído que OpenID Connect es un estándar de autenticación común, y que es admitido por IRIS. ¿Cuál es la forma más sencilla de ponerlo en marcha?

0 0
0 131

Buenos días estoy intentando modificar un método Python que hace la impresión de un archivo PDF (usa la libreria Python.FPDF.Lib).

No encuentro mucha información al respecto y la que encuentro no me funciona como deseo, debo decir que es la primera vez que tengo que lidiar con Python y ando un poco perdido.

Alguien sabe como puedo hacer lo contrario de unbreakable() ?

0 6
0 84

La versión 2023.3 de InterSystems IRIS Adaptive Analytics ya está disponible en la página de Distribución de Software de InterSystems. Esta versión incluye AtScale 2023.3 con ajustes adicionales, mejoras en la API y estas nuevas funcionalidades:

  • Soporte a Qlik Sense como una herramienta de Business Intelligence cualificada, además del soporte existente a Tableau, Microsoft PowerBI, Microsoft Excel y Looker
    • Tened en cuenta que Qlik Sense está soportado en modo Import; consultad la documentación de AtScale para más información
  • Conectores de Collibra y Alation para soportar la integración entre los cubos de AtScale y los proveedores de catálogos de datos más populares
  • Elementos adicionales del lenguaje DAX del lado del cliente - funciones y operadores - para mejorar el soporta a Microsoft PowerBI

0 0
0 78
Escenario

IRIS tiene adaptadores de entrada SQL para usar con SQL gateways como EnsLib.SQL.InboundAdapter para consultar repetidamente las conexiones de SQL Gateway. Apareció un escenario en el que queríamos consultar una base de datos interna para obtener algunos datos, pero no vimos un "servicio listo para usar" para esto.

2 0
0 124
Artículo
· 13 feb, 2024 Lectura de 2 min
Dividir el acceso por puertos en WebServer

Recientemente, necesitaba ejecutar WebGateway en un puerto adicional, pero con una novedad: este puerto debería publicar solo una aplicación web.
Al principio, pensé en configurar WebGateway para permitir solo aplicaciones web específicas (~urls), pero la configuración de WebGateway depende de la configuración de Apache:

2 0
0 143

Hola a todos,

Como sabéis, es muy complicado depurar una API Rest de Business Service porque el objeto se crea cuando las aplicaciones reciben una solicitud, por lo que no podemos tener el JobId que podemos usar para depurar.

https://docs.intersystems.com/iris20211/csp/docbook/DocBook.UI.Page.cls?...

Entonces, estoy tratando de obtener el JobId cuando se crea la clase, escribir una traza en el método OnInit() y escribir el JobId en es traza.

0 2
0 136

En recientes versiones de IRIS, se ha añadido en la parte de SQL una nueva y potente funcionalidad para la carga de datos: LOAD DATA. Esta funcionalidad ha sido optimizada para importar datos de forma extremadamente rápida en IRIS, permitiendo insertar cientos de gigabytes de datos en segundos en lugar de en horas o días.

Esta es una mejora muy interesante. Sin embargo, todavía existe un gran problema en la experiencia de carga de datos. Concretamente, el tiempo y molestia que suponen:

  1. Definir el esquema para la tabla en la que se quieren cargar los datos
  2. Averiguar cómo funciona exactamente la sintaxis del comando LOAD DATA

He desarrollado una interfaz de usuario que gestiona de forma transparente el paso de crear la tabla (CREATE TABLE) y después genera la sintaxis para LOAD DATA, todo en un práctico asistente!

0 0
0 124

Esta es la cuarta parte de una serie de artículos sobre migración desde las principales bases de datos del mercado a InterSystems IRIS. En esta parte, explicaré los pasos para migrar desde Microsoft SQL Server.

Como describí en los anteriores artículos, actualmente hay varias opciones para hacer la migración. Sin embargo, las dos opciones más populares incluyen el uso de DBeaver (https://openexchange.intersystems.com/package/DBeaver) o SQLGateway. Explicaremos la primera opción aquí. La segunda opción fue explicada por Robert Cemper en un excelente artículo: Migración de base de datos usando SQLgateway.

1 0
0 115

Interactuar con usuarios en la terminal: una guía para usar %Library.Prompt en IRIS

¿Alguna vez te has preguntado cómo comandos como ^DATABASE atraen a los usuarios en la terminal? O tal vez esté escribiendo una rutina de automatización y desee formas de especificar opciones directamente desde la terminal. Afortunadamente, la clase %Library.Prompt en IRIS ofrece una forma sencilla de hacerlo.

1 0
0 96
Pregunta
· 7 feb, 2024
Error depurando desde VS

Hola comunidad,

Si, ya sé que hay otra pregunta con el mismo problema "VS Code - debugging doesn't work", pero mi instancia de IRIS no está usando IIS.

Hace tiempo, podía depurar sin problemas, pero después de algunas actualizaciones de Visual Studio, tengo el siguiente error

Failed to start the debug session. Check that the Intersystems server's web server supports WebSockets

0 2
0 111

¡Hola Comunidad!

Hace poco me impresionó el artículo de @Dan Pasco donde comparte cómo usa los alias de terminal.

Los alias de terminal son una herramienta muy poderosa para desarrolladores y administradores de sistemas, si con frecuencia necesitan llamar a algunas expresiones de terminal engorrosas y hacerlas más cortas y limpias. Aquí está la documentación.

Pero ¿qué pasa con los entornos Docker? ¿Qué sucede si sois fanáticos de los entornos de desarrollo de Docker, pero también queréis seguir usando vuestros alias favoritos con Docker?

Resulta que es muy posible.

0 0
0 94

¡Hola Comunidad!

Hemos grabado el webinar que hicimos ayer 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!

OAuth 2.0, OpenID Connect y LDAP: Cómo controlar el acceso a los recursos FHIR

https://www.youtube.com/embed/SesAHp_O1j8
[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]

0 4
0 93

Venga que tenemos ya encima la siguiente jornada de la Quiniela. Esta vez nos adelantamos un día para que luego no digáis que se os echa el tiempo encima.

Para esta jornada tenemos novedades y es que, como en todo proyecto que implica el uso de Machine Learning, la calidad de los datos es elemental y para nuestro caso esa calidad se refleja en el "frescor" de los mismos, no son igual de relevantes los resultados de hace 2 años que los obtenidos en esta temporada, para ello he hecho una pequeña modificación que descarta los partidos de la temporada 21/22 y se ha conseguido una mejora en el acierto del modelo de un 2% ascendiendo de un 56% a un 58%.

Aquí tenéis el análisis de nuestro modelo obtenido desde IRIS:

0 0
0 96

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 93
Pregunta
· 31 ene, 2024
¿Cómo clonar un namespace?

Hola comunidad.

Hemos desarrollado una nueva versión de una producción, todo el código es nuevo y ha cambiado BP. Esta aplicación carga información para algunas marcas y la almacena en la base de datos.

El cliente quiere implementar los cambios solo para algunas marcas porque quiere verificar las marcas pequeñas antes de implementarlos para todas las marcas.

Mi propuesta es crear un nuevo namespace, con el nuevo código, y deshabilitar todas las marcas excepto la marca que quiere probar.

Me pregunto cuál es la mejor manera de clonar el namespace.

1 6
0 94

Tenemos un conjunto de datos bastante apetecible con recetas escritas por múltiples usuarios de Reddit, sin embargo, la mayor parte de la información está en texto libre en forma de título y descripción de un mensaje. Vamos a averiguar cómo podemos, de forma muy sencilla, cargar los datos, extraer algunas características y analizarlos empleando funcionalidades de LLM (Large Language Model) de OpenAI desde Python Embebido y el framework Langchain.

0 0
0 70

Preguntas frecuentes de InterSystems

Para resolver el error <PROTECT>, hay que eliminar el atributo de solo lectura de la base de datos de la biblioteca de todo el sistema (IRISLIB para InterSystems IRIS, CACHELIB para Caché/Ensemble/HealthShare (basado en Caché))

0 0
0 57

Preguntas frecuentes de InterSystems

Si el sistema no se para durante 24 horas, los archivos journal serán eliminados a las 0:30 según la "Configuración de la eliminación de archivos journal".

Una posible causa de que los archivos journal permanezcan más tiempo del establecido en la "Configuración de la eliminación de archivos journal" es que hay transacciones que permanecen abiertas.

0 1
0 56
Artículo
· 24 ene, 2024 Lectura de 2 min
Cómo obtener JSON de SQL

¿Sabíais que se pueden obtener datos JSON directamente de las tablas SQL?

Dejadme que os presente dos útiles funciones de SQL, que se utilizan para recuperar datos JSON de consultas SQL - JSON_ARRAY y JSON_OBJECT.

Podéis usar esas funciones en la sentencia SELECT con otros tipos de elementos de selección, y se pueden especificar en otras ubicaciones en las que se puede utilizar una función SQL, como en una condición WHERE.

0 1
1 172