Tengo esta clase definida:
Class Services.IS.Data.Pe Extends (%RegisteredObject, %JSON.Adaptor)
{
Property codigo As %String;
Property descripcion As %String;
Property ListaP As list Of P;
InterSystems IRIS es una Plataforma completa de datos.
InterSystems IRIS le proporciona todo lo que necesita para capturar, compartir, comprender y actuar sobre el activo más valioso de su organización, sus datos.
Dado que es una plataforma completa, InterSystems IRIS elimina la necesidad de integrar varias tecnologías de desarrollo. Las aplicaciones necesitan una menor cantidad de código, menos recursos del sistema y poco mantenimiento.
Tengo esta clase definida:
Class Services.IS.Data.Pe Extends (%RegisteredObject, %JSON.Adaptor)
{
Property codigo As %String;
Property descripcion As %String;
Property ListaP As list Of P;
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.
Algo muy práctico que tiene este enfoque y la propia OpenAPI, es la definición de los objetos que se van a intercambiar.
El comando do ^%REST crea las rutas y los métodos asociados, pero sin embargo no crea las definiciones de los objetos.
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.
En elartículo anterior, vimos una forma de crear un operador personalizado que administra el estado de la instancia de IRIS. Esta vez, vamos a echar un vistazo a un operador listo para usar - el Operador InterSystems Kubernetes (IKO).La documentación oficial nos ayudará a recorrer los pasos de la implementación.
SAP ofrece un amplio soporte de OData en todos sus productos. Así que OData puede ser una excelente opción para intercambiar datos entre SAP e InterSystems IRIS.
¡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.
Hola comunidad,
Este es otro artículo sobre cómo realizar acciones que puede realizar en el portal web pero mediante código.
Hoy .... Agregar un valor de configuración por defecto por código
Hola a todos:
De forma temporal, la documentación online de InterSystems IRIS se encuentra disponible aquí.
Hola comunidad,
Esto es otro artículo de como realizar acciones que puedes hacer desde el porta de gestión pero via código.
Hoy.... Añadir un business item en tu producción por código.
Hola comunidad,
Voy a publicar varios artículos de como realizar acciones que puedes hacer desde el web portal, pero por código.
Hoy.... Web Applications por código
¡Hola Comunidad!
Os traemos un nuevo vídeo con subtítulos en español, ya disponible en el canal de YouTube de la Comunidad de Desarrolladores de InterSystems en español:
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.
Además de IntelliJ IDEA, ahora es posible configurar SublimeText3 para compilar código con él. Solo necesitarás el servidor de idiomas que hice.

¡Hola Comunidad!
El concurso de programación sobre Inteligencia Artificial ha terminado. ¡Muchas gracias a todos los que habéis participado!
Ya podemos anunciar los ganadores...
Un fuerte aplauso para estos desarrolladores y sus aplicaciones:
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:
InterSystems ha corregido un defecto que puede ocasionar resultados incorrectos en consultas SQL. Este defecto afecta a:
Un bloque de SQL puede encontrarse con el defecto sólo si se cumplen las siguientes condiciones:
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.
.png)
Al igual que con Pattern Matching, se pueden utilizar Expresiones Regulares para identificar patrones en textos en ObjectScript, sólo que con una potencia mucho mayor.
En este artículo se proporciona una breve introducción sobre las Expresiones Regulares y lo que puede hacerse con ellas en ObjectScript. La información que se proporciona aquí se basa en varias fuentes, entre las que destaca el libro “Mastering Regular Expressions” (Dominando las expresiones regulares) escrito por Jeffrey Friedl y, por supuesto, la documentación online de la plataforma.
¡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!
¡Hola Comunidad!
Hoy empieza la votación del concurso de programación sobre Inteligencia Artificial! Ya puedes votar la mejor solución de IA/ML utilizando InterSystems IRIS.
¿Cómo se vota?
¡Hola desarrolladores!
Os invitamos a un nuevo webinar en español: "Continuando con ObjectScript - Persistencia e Integración", el lunes 19 de julio, a las 4:00 PM (CEST).
En este webinar continuaremos introduciendo ObjectScript, el lenguaje de programación de InterSystems. Trabajaremos con Clases Persistentes y comenzaremos a trabajar con Producciones para integrar sistemas.
Es un webinar dirigido a programadores que empiezan a utilizar ObjectScripty también a aquellos que quieren revisar conceptos.
Siguiendo la serie de artículos de mi compañero Murray vamos a centrarnos en el artículo donde analizamos la CPU.
Un cliente me pidió que le aconsejara sobre el siguiente escenario: sus servidores de producción se están acercando al final de su vida útil y es el momento de actualizar el hardware. También están pensando en consolidar los servidores por medio de la virtualización y quieren ajustar la capacidad, ya sea con servidores de hardware dedicado o virtualizados.
Hoy analizaremos la CPU. En artículos posteriores explicaré el enfoque para dimensionar correctamente otros "grupos alimenticios de hardware": la memoria y las Entradas/Salidas.
Surgió una pregunta en la Comunidad de Desarrolladores de InterSystems sobre la posibilidad de crear una interfaz TWAIN para una aplicación Caché. Hubo varias sugerencias excelentes sobre cómo obtener datos de un dispositivo de imágenes en un cliente web a un servidor y después almacenar estos datos en una base de datos.
¡Hola!
Así es como concedo acceso SQL de usuario a una clase/tabla particular:
GRANT SELECT, UPDATE ON Packacge_X.Table_Y TO UserZ¿Cómo puedo conceder acceso SQL de un determinado usuario a un esquema entero?
¡Hola a todos!
Todos los días la universidad Johns Hopkins publica nuevos datos sobre el estado de la pandemia del coronavirus COVID-19.
Creé un sencillo panel de control con InterSystems IRIS Analytics usando InterSystems IRIS Community Edition en Docker, implementado en Kubernetes GCP, para mostrar los datos clave sobre el avance de la enfermedad.
Este panel de control es un ejemplo de como la información en formato CSV podría ser analizada con IRIS Analytics e implementada en Kubernetes GCP, con la forma de InterSystems IRIS Community Edition.
Hola todos,
Quiero compartir un sencillo y rápido método que puede usarse para habilitar ssl con un certificado auto-firmado en una instancia de desarrollo local de IRIS/HealthShare. Esto permite probar funciones específicas de https, como OAuth.
1. Instalar OpenSSL
Windows: https://slproweb.com/download/Win64OpenSSL_Light-1_1_1g.exe Debian Linux: $ sudo apt-get -y install openssl RHEL: $ sudo yum install openssl
¡Hola!
¿Cómo puedo especificar el nombre de una columna (ddl)?
Palabras clave PyODBC, unixODBC, IRIS, IntegratedML, Jupyter Notebook, Python 3
Hace unos meses traté el tema de la "conexión con JDBC desde Python a la base de datos de IRIS", y desde entonces utilicé ese artículo con más frecuencia que mi propia nota oculta en mi PC. Por eso, traigo aquí otra nota de 5 minutos sobre cómo hacer una "conexión con JDBC desde Python a la base de datos de IRIS". ODBC y PyODBC parecen bastante fáciles de configurar en un cliente de Windows, sin embargo, siempre me atasco un poco en la configuración de un cliente unixODBC y PyODBC en un servidor de estilo Linux/Unix. ¿Existe un enfoque tan sencillo y consistente como se supone que debe ser para hacer que el trabajo de instalación de PyODBC/unixODBC funcione en un cliente linux estándar sin ninguna instalación de IRIS, contra un servidor IRIS remoto?
A veces necesitas importar datos a IRIS de forma rápida y sencilla. Por eso se ha desarrollado un gestor de importación en IRIS.
Esta aplicación permite importar datos en formato JSON y también ofrece una interfaz muy sencilla para transferir datos desde colecciones en MongoDB a globals en IRIS. Nunca ha sido más fácil.
Vamos a ver unos ejemplos.
Importación de JSON
Hace un tiempo se publicó el paquete AppS.REST. AppS.REST es un framework para exponer fácilmente clases persistentes de IRIS como recursos REST. Las clases que tienen habilitado AppS.REST soportan operaciones CRUD con poco esfuerzo del desarrollador, acortando la brecha entre los datos persistentes en IRIS y los consumidores de datos, como una aplicación front-end de Angular.
¡Pero las clases de IRIS son mucho más que una simple definición para cargar y guardar registros individuales! Este artículo tiene como objetivo destacar algunas maneras de aprovechar el poder de IRIS en tus aplicaciones REST. Usando la aplicación de ejemplo Phone.Contact, veremos el soporte de consultas incluido en AppS.REST, el uso de consultas de clase y finalmente los métodos ObjectScript.