Artículo
· 26 abr, 2024 Lectura de 4 min
Comprobación de Versión en objetos. "ERROR:5800"

Si tenéis tablas de sistema que implementan la funcionalidad "VERSIONPROPERTY", podéis encontraros con el error 5800. Este artículo explica cómo se produce este error y proporciona soluciones para resolver el problema.

Cuando se implementa la comprobación de versiones, la propiedad especificada por VERSIONPROPERTY se incrementa automáticamente cada vez que se actualiza una instancia de la clase (ya sea mediante objetos o SQL).

Por ejemplo:

2 0
0 91
Artículo
· 11 sep, 2024 Lectura de 4 min
Construyendo un frontend usando solo Python

El desarrollo frontend puede ser una tarea desalentadora, incluso una pesadilla, para los desarrolladores centrados en el backend. Al principio de mi carrera, la línea entre frontend y backend era difusa, y se esperaba que todos manejaran ambos. El CSS, en particular, siempre fue una lucha constante; sentía que era una misión imposible.

2 0
0 165
Artículo
· 20 ene, 2023 Lectura de 5 min
Tutorial de IntegratedML

La funcionalidad IntegratedML de InterSystems IRIS se utiliza para obtener predicciones y probabilidades mediante el uso de la técnica AutoML. AutoML es una tecnología de Machine Learning utilizada para seleccionar el mejor algoritmo/modelo de Machine Learning para predecir el estado, los números y los resultados generales basados en los datos pasados (datos utilizados para entrenar el modelo AutoML). No necesitas un científico de datos, porque AutoML probará los algoritmos de Machine Learning más comunes y seleccionará el mejor algoritmo para ti, basado en las características de los datos analizados.

InterSystems IRIS incorpora un motor AutoML, pero también permite utilizar H2O y DataRobot. En este artículo mostraré los pasos para utilizar el motor AutoML de InterSystems.

2 5
0 118
Artículo
· 12 jun, 2023 Lectura de 3 min
Guía básica para la implementación de ZPM

ZPM está diseñado para funcionar con aplicaciones y módulos de InterSystems IRIS. Está formado por dos componentes: el Cliente ZPM, que es un CLI para gestionar módulos; y El Registro, que es una base de datos de módulos y meta-información. Podemos utilizar ZPM para buscar, instalar, actualizar, eliminar y publicar módulos. Con ZPM se pueden instalar clases de ObjectScript, aplicaciones Frontend, producciones de Interoperabilidad, soluciones de BI de IRIS, conjuntos de datos de IRIS o cualquier otro archivo, como paquetes wheel de Python Embebido.

En este artículo repasaremos tres secciones:

  1. Instalación de ZPM
  2. Generación del Módulo
  3. Búsqueda, Instalación y Publicación de módulos dentro del Registro

2 2
0 265

¡Hola, amigos!

A menudo, cuando desarrollamos soluciones comerciales, existe la necesidad de desplegar soluciones sin código fuente, por ejemplo, para preservar la propiedad intelectual.

Una de las formas de conseguirlo es utilizar InterSystems Package Manager.

Aquí he pedido a Midjourney que pinte una propiedad intelectual de software:

¿Cómo se puede lograr esto con IPM?

De hecho, es muy sencillo; basta con añadir la cláusula Deploy="true" en el elemento Resource del manifiesto module.xml. Ver Documentación.

He decidido pasaros el ejemplo más simple posible para ilustrar cómo funciona y también para daros una plantilla de entorno de desarrollo que os permita empezar a construir y desplegar vuestros propios módulos sin código fuente. ¡Allá vamos!

2 0
0 131

¡Vuelve la liga de fútbol y vuelve la Quiniela! Y fieles a nuestra tradición, aquí tenemos la primera predicción de la Quiniela de la temporada 2024/25.

Veamos los partidos que forman parte de la 1ª jornada de la Quiniela:

Aquí tenemos la predicción generada por QuinielaML para la Primera División:

2 0
0 101

Principiantes- ver Parte 1.

3. Variantes de estructuras cuando se usan globals

Una estructura, como un árbol ordenado, tiene varios casos especiales. Echemos un vistazo a aquellos que tienen un valor práctico para trabajar con globals.

3.1 Caso especial 1. Un nodo sin ramas

Los globals pueden usarse no solo como una matriz, sino como variables regulares. Por ejemplo, para crear un contador:

2 1
1 304

Estimados miembros de la Comunidad.

Una problemática muy común en muchos usuario es el uso de una base de datos externa como entrada de datos a una producción de IRIS. Como ya sabréis tenemos dos métodos de conexión directas a bases de datos externas desde IRIS, la primera es mediante ODBC y la segunda es recurriendo a una conexión vía JDBC.

En nuestro ejemplo procederemos a realizar una conexión mediante JDBC y para ello montaremos un pequeño proyecto en Docker para que podáis jugar con ello cuanto queráis.

2 0
0 331
Artículo
· 14 ago, 2019 Lectura de 5 min
Jugando con la Sincronización de Objetos

La funcionalidad de Sincronización de Objetos no es nueva, estaba presente en Caché, pero quería explorar un poco más en profundidad cómo funciona. Siempre he pensado que la sincronización automática de una base de datos es compleja en sí misma pero, para algunos escenarios muy particulares quizá no sea tan difícil. Así que he considerado un caso de uso muy simple (OK, quizá el caso típico, no descubro nada...

2 0
1 174

¡Hola Comunidad!

Descubrí el Desarrollo Basado en Pruebas (TDD) hace casi 9 años y me enamoré del concepto inmediatamente.

Hoy se ha vuelto muy popular pero, desafortunadamente, muchas empresas no lo usan. Es más, muchos desarrolladores, sobre todo principiantes, ni siquiera saben exactamente qué es ni como usarlo.

2 0
0 262

Desde hace un tiempo tenía pendiente hacer algún tipo de prueba de concepto con la funcionalidad de Workflow, la cual, como tantas otras funcionalidades presentes en IRIS, suele pasar bastante desapercibida para nuestros clientes (y por lo cual entono el mea culpa). Por ello me decidí hace unos días a desarrollar un ejemplo de cómo configurar y explotar esta funcionalidad conectándola con una interfaz de usuario desarrollada en Angular.

2 0
1 168

Integrar aplicaciones frontend de React con servicios backend como la base de datos IRIS a través de APIs REST puede ser una forma poderosa de construir aplicaciones web robustas. Sin embargo, un obstáculo común que los desarrolladores suelen encontrar es el problema de Cross-Origin Resource Sharing (CORS), que puede impedir que el frontend acceda a los recursos en el backend debido a restricciones de seguridad impuestas por los navegadores web. En este artículo, exploraremos cómo abordar los problemas de CORS al integrar aplicaciones web de React con servicios backend de IRIS.

2 0
0 220

Vamos con nuestro artículo semanal con la predicción de la Quiniela, confiemos que algo más acertada que la hecatombe vivida en la pasada jornada. Veamos cuales son los partidos que entran esta jornada en la Quiniela:

Ahora la predicción para la Primera División:

Y los partidos de Segunda:

2 0
0 112
Artículo
· 11 nov, 2024 Lectura de 4 min
IrisGoogleChat con IA

Hola comunidad,

Quería compartir con vosotros la última aplicación que he publicado en el Open Exchange: "IrisGoogleChat".

Es una utilidad para InterSystems IRIS que permite enviar mensajes a un canal de Google Chat mediante ObjectScript. Esta aplicación provee una colección de utilidades para configurar Canales de Google Chat, crear mensajes potenciados con "estados de humor" con IA y enviarlos a un canal de Google Chat.

2 0
0 52
Artículo
· 24 oct, 2019 Lectura de 3 min
Pruebas unitarias en Transformaciones de Datos

¡Hola!

¿Te gustaría saber si tus transformaciones de datos funcionan como tienes previsto con un solo comando? ¿Y qué te parecería poder escribir pruebas unitarias de forma fácil y simple para las transformaciones de datos que utilizas?

Al hablar de interoperabilidad, normalmente encontraremos muchas transformaciones de datos involucradas. Esas transformaciones de datos se utilizan para convertir datos entre diferentes sistemas o aplicaciones en tu código, así que realmente se encargan de un trabajo muy importante.

2 0
0 308

¡Hola Comunidad!

Ahora que la plataforma de datos InterSystems IRIS Data Platform Community Edition está disponible en Docker Hub, parece el momento ideal de probar InterSystems IRIS en un contenedor. Desde hace un tiempo, la Community Edition ha estado disponible en la nube, por ejemplo en AWS, pero podría ser interesante probarla localmente también. Los usuarios de Windows estamos acostumbrados a ver caras de desconfianza y escuchar que "nuestros resultados podrían variar" cada vez que mencionamos usar Docker para Windows. A veces incluso nos dicen que realmente deberíamos considerar ejecutar Docker dentro de máquinas virtuales con Ubuntu. Pfff... frown

2 0
0 411

Recientemente, mientras discutía con mis alumnos el acceso a los datos almacenados en IRIS desde diferentes lenguajes, surgió la pregunta de si era posible iniciar la conexión y obtener datos de la solución Cloud (InterSystems IRIS CloudSQL) desde Microsoft Excel, y no al revés. Teniendo en cuenta las muchas y variadas formas en las que uno puede obtener datos en Excel (importar datos de fuentes externas, conectarse a bases de datos utilizando drivers ODBC, utilizando power queries y web queries, etc.) la opción obvia era probar con el driver ODBC. La única tarea que quedaba era tratar de conectarse a la base de datos en la nube utilizando el driver ODBC.

2 0
0 156

En nuestro artículo anterior presentábamos los conceptos generales así como la problemática que queríamos resolver mediante el uso del motor de tareas integrado en InterSystems IRIS, en el artículo de hoy veremos como configuramos una producción de interoperabilidad para proveer una solución.

Configuración del motor de Workflow

Primeramente vamos a definir los roles de las tareas que vamos a manejar, en nuestro ejemplo vamos a definir dos tipos:

2 0
0 161

¿Qué pasaría si pudieras serializar/deserializar objetos en cualquier formato: JSON, XML, CSV,...; siguiendo diferentes criterios, exportar/importar unas propiedades y no otras, transformar valores de una u otra forma antes de exportarlos/importarlos,... y todo ello sin tener que cambiar la definición de la clase? ¿No sería genial si pudieras hacer todo eso?

Bueno, quizás sea un objetivo demasiado ambicioso para cumplirlo al 100% pero, al explorar esta idea, desarrollé muchas clases que pensé que sería bueno compartir. Si deseas probar, cambiar, modificar o mejorar el código, o simplemente echarle un vistazo, puedes hacerlo aquí. También encontrarás una explicación más detallada (consulta Readme.md)

Debes tener presente que esto es una prueba de concepto y la realicé durante mis ratos libres, por lo tanto, seguramente no es lo suficientemente robusta o puede mejorarse... pero, solo estaba jugando!....ok, podría haber esperado al lanzamiento del nuevo JSON Adaptor que seguro resuelve muchos escenarios de una manera más limpia, pero... mientras llegaba... :-) ...

2 2
0 974

¡Hola a todos!

Hoy me gustaría contaros cómo podemos añadir la documentación de un servicio REST al Developer Portal de InterSystems API Manager.

¿Por dónde empezamos?

Necesitamos tener instalado InterSystems IRIS 2019.2 junto con InterSystems API Manager (IAM).

En el post Presentación de InterSystems API Manager, David nos cuenta cómo instalarlo, configurarlo y hacer una primera prueba.

2 1
0 529

Spring Boot es el framework de Java más utilizado para crear APIs REST y microservicios. Se puede utilizar para implementar sitios webs o webs ejecutables o aplicaciones de escritorio independientes, donde la aplicación y otras dependencias se empaquetan juntas. Springboot permite realizar muchas funciones, como:

Nota: para saber más sobre SpringBoot, consulta el sitio oficial: https://spring.io/quickstart

2 0
0 3.7K

Trabajando en soporte generalmente me preguntan cuántos días hay que mantener los journals. ¿Debería ser dos días o después de dos copias de seguridad? ¿Más? ¿Menos? ¿Por qué dos?

La respuesta correcta (para la mayoría de los entornos) es que se debería conservar los ficheros de journal desde la última copia de seguridad validada. Es decir, hasta que no verifique si una copia de seguridad es válida (restaurando el archivo y verificándolo con la utilidad Integrity), no puede estar seguro de que haya una buena copia de los datos y no por tanto no se deberían purgar los journals de manera segura.

2 2
0 159
Artículo
· 30 mayo, 2022 Lectura de 1 min
Truco de depuración con SQL

Estoy seguro de que os habéis encontrado esta situación:

  • Hay un bug en un sistema que no puedes reproducir por ti mismo localmente
  • Necesitas ejecutar unas pocas líneas en la instancia afectada
  • Tienes acceso completo al Portal de Gestión
  • Pero no hay terminal, ni consola, ni acceso con Studio, Atelier o VSCode
  • ¿Cómo ejecutar tus pocas líneas para probar???

2 1
0 196
Artículo
· 23 sep, 2022 Lectura de 5 min
Caso de uso de Python Embebido con Azure Service Bus (ASB)

Resumen

Empezamos a usar Azure Service Bus (ASB) como solución de mensajería empresarial hace tres años. La hemos usado para publicar y consumir datos entre muchas aplicaciones de la organización. Como el flujo de datos es complejo, y normalmente se necesitan los datos de una aplicación en muchas otras aplicaciones, el modelo publicador -> múltiples subscriptores resultó muy adecuado. El uso de ASB en la organización es de docenas de millones de mensajes por día, mientras que la plataforma IRIS tiene unos 2-3 millones de mensajes/día.

El problema con ASB

Cuando empezamos con la integración de ASB, encontramos que el protocolo AMQP no tiene la configuración predeterminada para la implementación de IRIS, por lo que estuvimos buscando una solución alternativa para poder comunicar con ASB.

2 1
1 151
Artículo
· 26 jun, 2023 Lectura de 9 min
IrisSAP Connector (Español)

¡Hola Comunidad!

¿Habéis tenido que conectar alguna vez IRIS con un sistema SAP?

Tuve que enfrentarme al reto de conectar InterSystems IRIS con SAP, y una vez más pude comprobar el gran acierto que hizo InterSystems añadiendo la posibilidad de ejecutar código nativamente de Python desde IRIS.

Esto me hizo la integración muy fácil gracias a la librería pyrfc.

Con esta librería, fui capaz de realizar llamadas a RFC's de SAP (Remote Function Call) desde una clase de IRIS y recibir datos de la base de datos de SAP.

2 1
0 273