Artículo
· 22 feb, 2023 Lectura de 3 min
Como publicar un webservice rest con autenticación

Hace unos días, publique una pregunta respecto a este tema pero la respuesta era algo mas compleja de lo que esperaba, así que para futura referencia de otras personas que tengan la misma duda he preferido documentar el proceso en un articulo.

13 3
1 235
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 137
Artículo
· 11 feb, 2022 Lectura de 4 min
Migración de Ensemble a IRIS for Health

Hasta hace no mucho, todos los entornos con los que trabajábamos eran Ensemble 2017.2. Pero recientemente hemos migrado todos los entornos a la versión 2021.1 de IRIS for Health. Ha sido un camino complicado, pero tras analizarlo detenidamente, encontramos la forma de conseguirlo.

Contamos con un servidor de desarrollo y dos servidores en producción en mirroring, en modo Failover. Tenemos más de 40 Namespaces dando servicio, unos con integraciones HL7, otros con servicios Soap, servicios Rest, procesado de archivos... un poco de todo. Necesitábamos estar seguros de que la migración a IRIS no iba a suponer un problema y sobre todo, evitar a toda costa un corte de servicio. Así que lo primero que teníamos que hacer era establecer un plan.

5 0
0 164

Ahora que estamos en veranito vamos a adentrarnos en el apasionante mundo de las producciones Ensemble / Iris, donde los procesos son los protagonistas y los cuelgues de servidor se vuelven el tema de conversación en la máquina de café, que por supuesto acaban en llamadas desesperadas a soporte con servidores saturados de memoria y cpu. Esos servidores calentando aún más el ambiente sin sentido alguno. Aquí es donde entra el Pool Size y su magia cuando está bien configurado.

4 0
1 65
Artículo
· 16 feb, 2023 Lectura de 2 min
Rompe los límites del servidor

¡Hola, desarrolladores!

Sois expertos en IRIS y conocéis todos los trucos.
Las funcionalidades $ZF() y CPIPE no son nuevas para vosotros.
Así que también conocéis los límites de estas funcionalidades.
Ambos dan acceso a su entorno de servidor local. Y este es el final.

4 1
0 117
Artículo
· 26 feb, 2020 Lectura de 1 min
Desactivación de una producción Ensemble

No pretendo decir que esto sea una guía de "buenas prácticas", pero estoy en una situación particular en la que necesito impedir que los usuarios inicien una producción de Ensemble “retirada” en un namespace renombrado. Sigue siendo un namespace activo, por lo que debemos mantenerlo disponible para acceder al visor de mensajes... afortunadamente, solo por un tiempo.

Es un truco …

3 0
0 149
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 149

Hola a todos,

Tenemos un proceso que está a la escucha de un servicio FTP para recoger unos ficheros CSV y procesarlos. El proceso funciona correctamente y cuando termina vacia el directorio a la espera que entre algún otro fichero.

Desde hace tiempo estamos recibiendo el siguiente mensaje de error:

2 3
0 208
Artículo
· 24 mar, 2020 Lectura de 4 min
Ensemble: Cómo incrustar un archivo PDF en un mensaje HL7

¡Hola Comunidad!

En este artículo describiré e incluiré un ejemplo de cómo incrustar un archivo PDF externo en un segmento HL7, concretamente en el segmento OBX() de un mensaje ADT_A01 versión 2.3.1 . Esto puede ser útil para insertar imágenes u otros datos externos en un mensaje HL7. En este ejemplo, el nombre del archivo PDF a incrustar nos llega en el mensaje HL7 entrante en el campo OBX(1):ObservationValue.

2 1
0 436
Artículo
· 1 jul, 2019 Lectura de 16 min
Dominando JDBC con SQL Gateway

Como todos sabemos, IRIS Database / Caché es un motor de base de datos que efectúa muchas tareas dentro de sí misma. Sin embargo, ¿qué puede hacer cuando necesita tener acceso a una base de datos externa? Una opción es utilizar el SQL Gateway en Caché mediante un conector JDBC. En este artículo, mi objetivo es responder las siguientes preguntas con el fin de ayudarle a que se familiarice con la tecnología y que resuelva algunos de los más problemas comunes.

2 0
1 671

Buenas tardes a todos!

Actualmente me encuentro migrando a la versión 2018.2 en una máquina nueva,un entorno que está en producción con la versión de Ensemble de 2012.1.2

Tras realizar un recovery de un backup realizado del otro entorno, y configurar el entorno para que esté igual que el antiguo, me he dispuesto a realizar las primeras pruebas, en un circuito que lee de SQL, y posteriormente tras procesar los mensajes, envía una peticion SQL, pero en el primer paso, que es al pasar por un enrutador, me he encontrado con el siguiente problema:

1 3
0 137

Introducción: nuestra pequeña pero muy ambiciosa empresa llamada “Black Mushroom Studio” tuvo una idea para desarrollar un proyecto de comercio electrónico, y una aplicación móvil que permitiría a los usuarios pagar por ciertos bienes/servicios mediante un agregador de pagos.

Lo que teníamos inicialmente: un esqueleto para la aplicación en Android que, por supuesto, prefería la comunicación mediante HTTP y JSON, y un sistema de pago con una API, es decir, servicios web con contenido SOAP.

Objetivo: hacer que todo funcionara de manera conjunta.

1 0
0 143
Artículo
· 12 nov, 2021 Lectura de 21 min
Curso de formación sobre Ensemble / Interoperabilidad

Este curso de formación está dirigido a todas las personas interesadas en conocer el framework de Interoperabilidad de IRIS. Utilizaremos Docker y VSCode.

GitHub: https://github.com/grongierisc/formation-template

1. Formación en Ensemble/Interoperabilidad

El objetivo de esta formación es aprender el framework de interoperabilidad de InterSystems, y en particular el uso de:
* Producciones
* Mensajes
* Business Operations
* Adaptadores
* Business Processes
* Business Services
* Operaciones y servicios REST

1 0
0 213
Artículo
· 22 nov, 2021 Lectura de 4 min
Streams en trazas de interoperabilidad

Hace algún tiempo, empecé a recibir alertas de consumo excesivo de espacio en el sistema de archivos (filesystem) de un cliente, cuya solución utiliza la capa de interoperabilidad (IRIS / Ensemble) de manera masiva.

Me percaté que las bases de datos que crecían eran las dedicadas a la interoperabilidad, mas no la base de datos operacional de la solución, por tanto había que revisar los mensajes de las diferentes integraciones presentes.

1 0
1 180

¡Hola desarrolladores de ObjectScript!

How to Protect Your Belongings from Pests While Moving - Delicate ...

InterSystems ObjectScript es probablemente el mejor lenguaje del mundo para trabajar con globals - y es un lenguaje interpretado.

Sí, tiene un compilador. Pero incluso el compilador puede dejar escapar y compilar algunas líneas en ObjectScript que después generen error en tiempo de ejecución.

Hay algunas técnicas para evitarlo tales como los tests unitarios, guías de programación y, por supuesto, ¡tu experiencia programando! ;)

Aquí quiero presentarte otra alternativa más para que puedas reducir el número de errores de ejecución de tu ObjectScript y reforzar la aplicación de tus guías de programación - se trata de la herramienta de Calidad de ObjectScript desarrollada por Lite Solutions, un partner de InterSystems.

Más detalles a continuación.

1 0
0 124

En Studio, podías abrir una clase directamente usando su nombre, sin tener que recorrer completamente el árbol de paquetes con un montón de clics hasta llegar a la clase deseada.

Con Ctrl + O o (File -> Open) podías escribir el nombre de la clase de forma sencilla, por ejemplo:

Pulsabas Enter y voilà!, la clase se abría.

¿Cómo se logra esto en VSCode?

1 0
0 606

Hola comunidad,

Tengo una clase cliente SOAP que conecta con un WS Service. Esta estructura y configuracion es la misma para varios proveedores que están integerados con mi solución.

Si llamo a un proveedor, devuelve el XML esperado. Pero hay un proveedor que lanza un error:

ERROR #6243: HTTP request to SOAP WebService returned response with unexpected CONTENT-TYPE: application/wsdl+xml

1 7
0 397
Artículo
· 29 sep, 2022 Lectura de 2 min
Visual Trace y la libertad de eleccion

¡Hola Comunidad!

A lo largo de los años siempre he pensado en crear cosas nuevas, modificar las existentes, experimentar, probar, romper (siempre pasa), construir de nuevo, y empezar otra vez.

Los concursos promovidos por InterSystems son una excelente fuente de motivación. Obviamente los premios llaman la atención y eso no se puede negar. Pero no se trata solo de los premios/regalos - los concursos son un reto creativo, una oportunidad de crear, reimaginar, probar, experimentar... Y lo mejor de todo es que eres libre de hacer todo lo que quieras!

Así que ví estos concursos como una oportunidad de crear mi propio Y si...? (la serie en la que Marvel permite a los autores re-imaginar sus historias como quieran) y he sido muy afortunado de encontrar otra persona que recibe estas ideas con los brazos abiertos laugh ¡Muchas gracias, @José Pereira!

En el último concurso de Interoperabilidad, creé el visualizador de mensajes Message Viewer y en este concurso de Interoperabilidad traigo de nuevo el Message Viewer, pero esta vez con Visual Trace!

1 0
0 91

Hola a todos,

Estoy intentado eliminar un item de una producción a través de una rutina que instala y deshabilita items.

Para añadir no tengo problemas, incluso para habilitar y deshabilitar algunos items en particular.

El problema me surge cuando intento eliminar el item de la producción, porque cuando lo hace, la producción se queda inestable y solo vuelve a funcionar cuando se añade nuevamente este item en la colección (o se elimina de forma manual el item en el fichero produccion.cls

Este es mi intento de código:

1 5
0 195