¡Hola Comunidad!

El gestor de paquetes InterSystems Package Manager (ZPM) es una gran herramienta, pero es aún mejor si la puedes usar directamente en lugar de tener que instalarla.

Hay varias formas de hacer esto, a continuación veremos una forma de tener un contenedor IRIS con ZPM instalado a través del Dockerfile.

Hemos preparado un ejemplo con algunas líneas en el Dockerfile que se ocupan de la descarga e instalación de la última versión de ZPM.
Añade estas líneas a tu Dockerfile estándar que utiliza el IRIS Community y tendrás ZPM instalado y listo para usar.

Para descargar la última versión del cliente ZPM:

0 0
0 221

Hola a todos:

Es un placer anunciar que ya está disponible el Servicio de Evaluación!

Si eres Usuario Final o un Partner de InterSystems y quieres probar la última versión de InterSystems IRIS con todas las características empresariales disponibles (mirroring, ECP, sharding) y quieres hacerlo ya, esto es para ti.

El Servicio de Evaluación permite tener disponible en tus manos un kit de InterSystems IRIS con una licencia completa para tus pruebas y evaluación en menos de 1 minuto. Sin papeleos. Sin necesidad de hablar con nadie. Totalmente auto-servicio.

0 0
0 221

¡Hola desarrolladores!

Muchos de vosotros publicáis vuestras bibliotecas de InterSystems ObjectScript en Open Exchange y Github.

Pero, ¿qué puedes hacer para facilitar a los desarrolladores el uso y la colaboración en tu proyecto?

En este artículo, quiero presentar una forma sencilla de poner en marcha y contribuir en cualquier proyecto ObjectScript con solo copiar un conjunto estándar de archivos en tu repositorio.

¡Vamos!

0 0
0 220
Artículo
· 15 mayo, 2020 Lectura de 9 min
Gestión de índices

¡Hola desarrollador!

Si has leído la parte 1 de este artículo, ya tienes una buena idea del tipo de índices que necesitas para tus clases y cómo definirlos. Lo siguiente es saber cómo gestionarlos.

Plan de consultas

(RECUERDA: Al igual que cualquier modificación en una clase, añadir índices en un sistema en producción conlleva riesgos: si los usuarios están actualizando o accediendo a datos mientras se rellena un índice, podrían obtener resultados vacíos o incorrectos a sus consultas, o incluso dañar los índices que se están formando. Ten en cuenta que hay pasos adicionales para definir y usar índices en un sistema en producción. Estos pasos se analizarán en esta sección, y se detallan en nuestra documentación).

0 1
0 200

Servir el café: Cómo crear y programar una tarea

¿No te gustaría que una taza de café caliente te esperara justo al llegar a la oficina? ¡Vamos a automatizar eso!

Cache e IRIS incorporan un Administrador de tareas, que debería resultar familiar a quienes estén acostumbrados a utilizar el programador de tareas de Windows o a usar cron en Linux. Tu cuenta de usuario requerirá tener acceso al recurso %Admin_Task para utilizarlo, y puedes acceder a él desde el portal de administración en System Operation -> Task Manager. Cuando se instala por primera vez, hay aproximadamente 20 tipos de tareas que puedes programar.

Si quieres añadir tus propias tareas, empieza creando una clase que extienda %SYS.Task.Definition. Como mínimo, debes sobreescribir el método OnTask, que tiene una firma de Method OnTask() As %Status. El código de ese método se ejecutará cada vez que se lance la tarea. De hecho, si tu tarea arroja "Error #5003: No implementado (Error #5003: Not Implemented)" cada vez que se ejecuta, es porque este método no se sobreescribió correctamente. De manera muy básica, podría ser:

0 0
0 219
Artículo
· 17 jun, 2021 Lectura de 2 min
Cómo crear un PDF a partir de un archivo de texto

Cómo utilizar Java Gateway para acelerar el desarrollo

InterSystems IRIS incluye Object Gateways dinámicos para Java, .NET y (ahora) Python. Estos gateways permiten que tu aplicación IRIS utilice bibliotecas en estos lenguajes, eliminando la necesidad de crear todo desde cero en ObjectScript.

En este ejemplo, utilizamos las bibliotecas iTextPdf y Apache PdfBox para leer un archivo de texto y producir un PDF básico a partir de él. Estas bibliotecas son controles PDF profundos y ricos, por lo que un poco de desarrollo podría producir una aplicación de ejemplo que ofrezca resultados mucho más convincentes para tus necesidades. También he incluído un archivo de clase corto el cual hace que su uso desde ObjectScript sea muy sencillo.

0 0
0 219

¡Hola a todos!

Estoy intentando exportar una clase a xml y quitar la etiqueta "xmlns" de la clase madre. Estas son mis clases para crear el XML.

Class Class.Test Extends (%RegisteredObject, %XML.Adaptor)
{ 

Parameter NAMESPACE = "http://mynamespace.com/test"; 
Property Person As Class.Person; Property Address As Class.Address; 

}
Class Class.Person Extends (%RegisteredObject, %XML.Adaptor)
{ 

Parameter NAMESPACE = "http://mynamespace.com/test"; 
Property name As %String; Property age As %String; 

}
Class Class.Address Extends (%RegisteredObject, %XML.Adaptor)
{ 

Parameter NAMESPACE = "http://mynamespace.com/test"; 
Property location As %String; 

}

0 2
0 216

¡Hola desarrolladores!

Os traemos el tercer tutorial grabado por @David Reche, y disponible en el canal de YouTube de la Comunidad de Desarrolladores en español: Trabajando con Contenedores Docker y VS Code.

En este tutorial de dos minutos, David nos mostrará cómo trabajar con contenedores Docker y Visual Studio Code.

Tutorial 3: Trabajando con Contenedores Docker y VS Code

https://www.youtube.com/embed/baq1Hb7y8uU
[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 0
0 218
Artículo
· 7 oct, 2021 Lectura de 2 min
Cómo obtener Upstream en GitHub

¡Hola desarrolladores!

Con frecuencia, cuando colaboramos con el repositorio de alguien en GitHub, seguimos el siguiente ciclo:
1. Fork: crear nuestra bifurcación del repositorio
2. Clone: clonar una copia local de nuestro repositorio bifurcado
3. Realizar nuestros cambios y guardarlos con un Commit en nuestra copia local
4. Push: publicar nuestros cambios al repositorio clonado de GitHub
5. Hacer Pull-Request para solicitar incorporar nuestros cambios desde nuestro fork — bifurcación — al repositorio original
6. Y si todo va bien se hará un Merge — fusión o incorporación — con nuestros cambios en el repositorio original

¡Todo esto es genial y funciona bien!

Y si queremos realizar una segunda colaboración justo después de llevar a cabo un Merge , es necesario que primero realicemos un Fetch upstream en nuestro repositorio clonado para que tengamos disponibles los cambios actualizados que incorporamos al repositorio original a través del Pull Request.

Los más frikies de git lo hacen muy fácilmente, pero muchos terminamos simplemente por eliminar nuestro primer fork y crear otro nuevo.

1 0
0 217
Artículo
· 28 jul, 2022 Lectura de 3 min
Consejos y trucos del nuevo comando LOAD DATA

Estos días he estado trabajando con la excelente y nueva funcionalidad: LOAD DATA. Con este artículo me gustaría compartir mis primeras experiencias con todos. Los siguientes puntos no contienen ningún orden ni ningún otro análsis. Son solo cosas que observé al utilizar el comando LOAD DATA. Y se debe tener en cuenta que estos puntos se basan en la versión 2021.2.0.617 de IRIS, que es una versión de prueba.

0 1
0 195
Artículo
· 5 jul, 2022 Lectura de 1 min
Ejemplo de código para concatenar arrays JSON

ObjectScript no incluye ningún método por defecto para añadir un array JSON a otro. Este es un fragmento de código que utilizo y que es equivalente al método concat() de JavaScript.

Puedes llamarlo con cualquier número de argumentos para concatenarlos en un nuevo array. Si un argumento es un array dinámico, sus elementos serán añadidos. Si no, el argumento en sí será añadido.

0 0
0 213

En este artículo explicaré cómo, mediante programación, creé el usuario, concedí privilegios, habilité/deshabilité y autentifiqué/invalidé una aplicación web en mi aplicación Data_APP_Security (https://openexchange.intersystems.com/package/Data_APP_Security)

0 1
0 192
Artículo
· 25 abr, 2023 Lectura de 13 min
Configurando Mirror en Docker

Una necesidad habitual en nuestros clientes es la configuración tanto de HealthShare HealthConnect como de IRIS en modo de alta disponibilidad.

Es común en otros motores de integración del mercado que se promocionen con configuraciones de "alta disponibilidad", pero realmente no suele ser del todo cierto. Por lo general dichas soluciones trabajan con bases de datos externas y por lo tanto, si estas no están a su vez configuradas en alta disponibilidad, al producirse una caída de la base de datos o la pérdida de conexión a la misma toda la herramienta de integración queda inutilizable.

En el caso de las soluciones de InterSystems este problema no existe, al ser la base de datos parte y nucleo de las propias herramientas. ¿Y cómo ha solucionado InterSystems el problema de la alta disponibilidad? ¿Con abstrusas configuraciones que podrían arrastrarnos a una espiral de enajenamiento y locura? ¡NO! Desde InterSystems hemos escuchado y atendido vuestras quejas (como siempre intentamos hacer ;) ) y hemos puesto a disposición de todos nuestros usuarios y desarrolladores la función de mirroring.

1 0
0 211
Artículo
· 12 dic, 2022 Lectura de 2 min
Primeros pasos con Apache Zeppelin + IRIS

Apache Zeppelin es un bloc de notas multifunción que permite:

  • Ingesta de datos
  • Detección de datos
  • Análisis de datos
  • Visualización de datos y Colaboración

Apache Zeppelin permite conectar cualquier lenguaje/data-processing-backend en Zeppelin. Actualmente Apache Zeppelin es compatible con muchos intérpretes, como Apache Spark, Apache Flink, Python, R, JDBC, Markdown y Shell.

Ofrece un entorno seguro para comprender los datos. Podéis aprovechar lo más importante de Zeppelin usando los conectores nativos de JDBC y Spark IRIS.

Esto es una Guía de Inicio Rápido solo para empezar.

0 0
0 211
Artículo
· 5 feb, 2023 Lectura de 2 min
COS Url Shortener - Acortador de URL's

Hola Comunidad!

Quiero compartir con vosotros mi primera aplicación del Open Exchange.

Es una herramienta para hacernos los desarrollos mas fáciles. Es un microservicio con IRIS en un docker que nos ayuda en los desarrollos de campañas de SMS, Mail y en los links para las tiendas de nuestras apps brindándonos un acortador de Url's.

Es muy fácil de usar.

Simplemente clona este repo:

https://github.com/daniel-aguilar-garcia/cos-url-shortener.git

1 2
0 170

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

Este artículo es una continuación de esta publicación.

En ese artículo, analizamos la creación de business operations a partir de los componentes necesarios para la integración del sistema.

En este artículo, mostraré cómo crear un business process que llama a las dos business operations definidas en el orden de la secuencia.

El business process actúa como coordinador (centro de mando) del proceso.

0 0
0 209
Artículo
· 9 dic, 2021 Lectura de 7 min
Codespaces de GitHub con IRIS

¡Hola a todos! Comparto hoy con vosotros un artículo muy interesante de Dmitry Maslennikov acerca de una nueva funcionalidad de GitHub llamada GitHub Codespaces. Permite ejecutar VSCode en el navegador, con casi la misma potencia con la que se ejecutaría de forma local en tu equipo, pero con la potencia de la nube, por lo que podrás elegir el tipo de equipo con hasta 32 núcleos de CPU y 64 GB de RAM.

Parece impresionante, ¿verdad? Pero, ¿cómo nos podría ayudar a trabajar con proyectos realizados con InterSystems IRIS? Vamos a ver cómo configurarlo.

0 1
0 187

Hola a todos! Comentamos hoy una entrada de Timothy Leavitt cuyo equipo (Application Services en InterSystems - encargado de desarrollar y mantener muchas de nuestras aplicaciones internas, y proporcionar herramientas y prácticas recomendadas a otras aplicaciones departamentales), durante el último año, se embarcó en un viaje hacia el desarrollo de interfaces de usuario basadas en Angular/REST, para las aplicaciones existentes construidas originalmente con CSP y/o Zen.

1 2
0 167

¡Hola desarrolladores!

Siempre que desarrollamos una biblioteca, herramienta, paquete o lo que sea en InterSystems ObjectScript, nos surge una pregunta: ¿cómo desplegar este paquete en la máquina destino?

Adicionalmente, en muchas ocasiones se supone que debe haber otras bibliotecas instaladas de las que depende nuestro código y a menudo de una versión particular de las mismas.

Cuando uno programa en javascript, python, etc., el rol de despliegue de paquetes con gestión de dependencias se realiza por el package manager o gestor de paquetes.

Por eso, me complace anunciar que ya está disponible nuestro administrador de paquetes, el InterSystems ObjectScript Package Manager .

0 0
0 207
Artículo
· 27 abr, 2022 Lectura de 3 min
¿Qué o quién está consumiendo mis licencias?

De vez en cuando, recibimos la pregunta anterior en soporte, algo o alguien está usando más licencias de las esperadas y necesitamos encontrar qué está pasando.

Tenemos dos escenarios. El primer escenario es cuando nos damos cuenta que las licencias están agotadas porque la aplicación no funciona o porque intentamos conectarnos a través del terminal y sale el "encantador" mensaje <LICENSE LIMIT EXCEEDED>:

2 0
0 205

Buenas desarrollador!

En este artículo te voy a contar mi experiencia y conocimientos en el poco tiempo que llevo utilizando los distintos productos de InterSystems.

A parte de contar mis vivencias también veremos como hacer una pequeña API Rest con la que poder hacer un CRUD con la base de datos SQL de InterSystems.

Mi historia:

10 2
0 164

Hola Desarrolladores!

"objectscript.conn" :{
      "ns": "IRISAPP",
      "active": true,
      "docker-compose": {
        "service": "iris",
        "internalPort": 52773
      }

Quiero compartir con vosotros una estupenda nueva funcionalidad que he descubierto en la nueva versión 0.8 del plugin de VSCode ObjectScript desarrollado por @Dmitry Maslennikov y CaretDev.

La versión viene con un nuevo parámetro de configuración: "docker-compose"; que resuelve el problema con los puertos que necesitas para conectar tu editor VSCode a IRIS. No era muy cómodo si tenías más de un contenedor docker con IRIS corriendo en la misma máquina. Ahora ¡esto está resuelto!

Veamos como funciona ahora...

0 1
0 184
Artículo
· 28 abr, 2021 Lectura de 8 min
Consejos para depurar con %Status

Introducción

Si resuelves problemas complejos en ObjectScript, probablemente tienes mucho código que funciona con los valores de %Status. Si has interactuado con clases persistentes desde una perspectiva de objetos (%Save, %OpenId, etc.), casi seguro que las ha visto.

Un %Status proporciona una envoltura alrededor de un mensaje de error localizable en las plataformas de InterSystems. Un estado OK ($$$OK) simplemente es igual a 1, mientras que un mal estado ($$$ERROR(errorcode,arguments...)) se representa como un 0 seguido de un espacio seguido de una lista $ListBuild con información estructurada sobre el error.

0 1
0 184
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 183