Tengo una clase que parsea un XML para extraer toda la información. En este XML hay un atributo que tiene saltos de línea:

<record date="2021-08-11T14:25:21" entity="TEXTO"><OBSERVACIONES o="" n="Esto es un texto de prueba:
1. Contiene información importante
2. Es útil para el usuario
3. Sigue siendo una prueba"/></record>

Usando %XML.TextReader puedo acceder a toda la información del XML, pero esos saltos de línea se pierden. Esto es lo que obtengo:

00
0 2 51
Artículo
Ricardo Paiva · Ago 19 Lectura de 2 min
Persistencia atípica
Este es el ejemplo de un código que funciona en Caché 2018.1.3 e IRIS 2020.2 
No se mantendrá sincronizado con las nuevas versiones 
¡Además NO cuenta con el servicio de Soporte de InterSystems!

Durante mi búsqueda de un snapshot de un objeto persistente, conocí una característica que me gustaría compartir, ya que podría ser útil en algunas situaciones especiales. Mi objetivo era tener una imagen del antes y el después durante las pruebas unitarias.

00
0 0 30

InterSystems IRIS ofrece la posibilidad de crear interfaces REST con el enfoque spec-first, esto es, partiendo de las especificaciones de la API.

Puedes echarle un vistazo a este artículo para más información al respecto : https://es.community.intersystems.com/post/cómo-desarrollar-una-api-rest-con-un-enfoque-spec-first.

00
0 0 28
Artículo
Eduardo Anglada · Ago 12 Lectura de 3 min
Escaneo y división de globals
Este es un ejemplo de código que funciona en IRIS 2020.1 y en Caché 2018.1.3 
No se mantendrá sincronizado con las nuevas versiones.      
Y NO cuenta con el servicio de soporte de InterSystems.

En la mayoría de los casos, un global que se utiliza como almacenamiento predeterminado tiene solo 1 nivel de subíndice que representa el IDKEY.
Para un índice de globals podemos ver 2 o más niveles de subíndices.
Las matrices, las relaciones de herencia padre hijo o las clases persistentes que extienden una clase base, son ejemplos en los que vemos más niveles. Aunque todos estos globals son bastante uniformes.

10
0 0 46
Artículo
Ricardo Paiva · Ago 11 Lectura de 3 min
Cómo aprovechar al máximo $Query

Me encontré con un interesante caso de uso de ObjectScript con una solución general que quería compartir.

Caso de uso:

Tengo una matriz JSON (específicamente, en mi caso, una matriz de problemas de Jira) que quiero agregar en algunos campos, por ejemplo: categoría, prioridad y tipo de problema. Después quiero combinar los agregados en una lista simple con el total de cada uno de los grupos. Por supuesto, para la agregación, tiene sentido utilizar una matriz local en el formulario:

20
0 0 40
Artículo
Dani Fibla · Ago 9 Lectura de 2 min
REST API que consume SQL y devuelve JSON

¡Hola desarrolladores!

A veces, cuando desarrollamos una maqueta o una Prueba de Concepto (PoC), necesitamos una interfaz sencilla que proporcione datos en IRIS en JSON contra consultas SQL.

Y recientemente contribuí con un sencillo módulo que hace exactamente eso:

acepta una sentencia SQL y devuelve JSON.

¿Cómo se instala? Solo llama:

zpm "install sql-rest"

Si lo instalas en un namespace X, configurará un endpoint /sql en tu sistema, que aceptará solicitudes POST con una sentencia SQL  y te devolverá el resultado para los datos disponibles en el namespace X.

20
0 0 43

¡Hola Comunidad!

Probablemente todos ya conocéis Discord y muchos de vosotros ya lo utilizáis. Por eso, os invitamos a acercaros aún más a la tecnología de InterSystems uniéndoos al club social de nuestros desarrolladores! Y podréis disfrutar de una comunicación super rápida con otros colegas:

💥 Canal de Discord de los Desarrolladores de InterSystems💥


00
0 1 26

¡Hola Comunidad!

Estamos experimentando algunos problemas técnicos y hemos sufrido un corte de servicio en la red corporativa. Por este motivo, podéis tener problemas al iniciar sesión en nuestros sitios web globales, incluyendo la Comunidad de Desarrolladores.

Nuestros especialistas técnicos están trabajando para resolver las incidencias y esperamos restablecer pronto el funcionamiento normal.

Para seguir informados, podéis entrar en el Servidor de Discord de la Comunidad de Desarrolladores de InterSystems 👈

¡Gracias por vuestra paciencia! Lamentamos los inconvenientes que esto os pueda ocasionar.

10
0 0 23
Pasaron muchas cosas en julio en la Comunidad de Desarrolladores. ¿Os perdisteis algo?
Os traemos un resumen de todo: lo más visto, lo más comentado, lo más votado...
¡Echadle un vistazo y no os quedéis con ganas de aprender!
Datos generales
29 nuevas publicaciones en julio:
    – 15 artículos
    – 11 anuncios
    – 2 preguntas
    – 1 debate
00
0 0 11
Artículo
Ricardo Paiva · Jul 29 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.

00
0 0 46

¡Hola desarrolladores!

Global Masters es el programa de fidelización de la Comunidad de Desarrolladores. Es divertido, dinámico y práctico. Además, permite aprender de forma lúdica y aumentar la red de contactos.

Nos encanta conoceros mejor a través del programa. Pero nos gustaría tener aún más miembros en Global Masters... ¿Nos ayudas?

❔ ¿Conoces otros desarrolladores que trabajen con la tecnología de InterSystems y a los que les podría gustar Global Masters?

 

00
0 0 11

Posiblemente te hayas encontrado con esto y no supiste cómo evitarlo; o tal vez ni siquiera te diste cuenta...

Pero cuando se tienen componentes empresariales de la Producción de Interoperabilidad TCP (por ejemplo, un business service HL7), probablemente tienes (dependiendo de tu configuración de StayConnected) muchas entradas en el Registro de Eventos (Event log) de tipo Info. Cada entrada registraría una conexión o desconexión.

Por ejemplo:

00
0 0 39

InterSystems ha corregido un defecto que puede ocasionar resultados incorrectos en consultas SQL. Este defecto afecta a:

  • Todas las versiones principales y versiones de mantenimiento de InterSystems IRIS e InterSystems IRIS for Health, desde 2019.1.0

Un bloque de SQL puede encontrarse con el defecto sólo si se cumplen las siguientes condiciones:

  • El bloque contiene una condición GROUP BY pero no incluye ningún agregado, como COUNT(*).
  • La condición SELECT incluye un campo que no está en la condición GROUP BY*, y el bloque contiene una condición WHERE en ese campo.
  • Los resultados del bloque de SQL se pueden determinar totalmente desde un índice único, y ese índice empieza con el campo en la condición GROUP BY del bloque.

10
0 0 29
Artículo
Eduardo Anglada · Jul 22 Lectura de 2 min
Plugin IntelliJ IDEA para InterSystems

Os presento el soporte de InterSystems IRIS en IntelliJ IDEA. Este plugin añade soporte de Syntax Highlighting para ObjectScript, así como la auto importación y la compilación en el servidor después de guardar un archivo modificado. Utiliza LanguageServer escrito en Rust, donde se añadió la capacidad de importar y compilar código.

00
0 0 25

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

David Reche es uno de los cracks de InterSystems. Así que, si queréis seguir aprendiendo ObjectScript... ¡no os perdáis el vídeo!

Continuando con ObjectScript

00
0 0 39