¡Hola desarrolladores!

Nuestro compañero @Jose-Tomas Salvador ha realizado varios videotutoriales de iniciación a ObjectScript, a modo de curso, para los nuevos desarrolladores que están conociendo la tecnología de InterSystems.

Iremos presentando cada videotutorial en distintos anuncios. Hoy os traemos el primero de la serie, en el que presenta el curso:

Capítulo 0: Introducción

https://www.youtube.com/embed/afegjXR1jtU
[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]

2 0
0 110
Artículo
· 17 dic, 2020 Lectura de 3 min
Cómo crear código de "Solo escritura" (Irónicamente)

Uno de los principales beneficios de ObjectScript es la velocidad y eficiencia que ofrece a un desarrollador experimentado. Veamos un ejemplo de todos los beneficios que se pueden obtener con ObjectScript.

Imagina que tienes una clase que almacena nombres de sus usuarios. Llamaremos a la clase **Data.User**, y le daremos las mismas propiedades que tiene una cadena _Name_. A continuación, necesitaremos un método para crear un nuevo usuario o actualizar uno ya existente. Un enfoque inexperto y simplista sería muy similar al siguiente ejemplo:

3 0
0 110

¡Hola desarrolladores!

Me gustaría compartir con vosotros un truco útil para presentar código de ObjectScript en ficheros Script en VSCode.

Los ficheros Script son simplemente ficheros con líneas de ObjectScript que introducimos en cualquier sitio, por ejemplo en IRIS durante el procedimiento Docker baking.

Caso de uso típico - este es el Scriptfile

este es el Dockerfile donde lo introducimos.

Y así es como se ve normalmente en VSCode:

Screenshot 2021-08-05 at 09 51 06

Podría ser más elegante, ¿verdad?

0 0
0 109

¡Hola Comunidad!

El plazo para participar en el Primer Concurso para Desarrolladores de InterSystems terminó ayer y empieza la fase de votación.

Hemos recibido 20 aplicaciones hasta ahora - así que ya hay suficientes para elegir la mejor!

¿Cómo puedes votar?

Es muy fácil: tienes un voto, y tu voto irá en la Nominación de los Expertos o en la Nominación de la Comunidad.

0 0
0 108
Artículo
· 14 nov, 2022 Lectura de 2 min
Comandos útiles de ObjectScript de una sola línea

¡Amigos!

Hace poco encontré en la Comunidad varios comandos de ObjectScript de una única línea y creo que estaría genial no perderlos y recopilar más.

Por eso he decidido recoger unos cuantos ejemplos, ponerlos en este proyecto en Open Exchange, y compartirlos con vosotros!

Así es como podéis usarlos.

0 0
0 107
Artículo
· 14 dic, 2022 Lectura de 1 min
Rutinas con privilegios y $Roles

Las rutinas con privilegios te permiten elevar los roles de un usuario mientras las utiliza. Estas rutinas con privilegios (Privileged Routine Application) pueden utilizarse con rutinas y también con clases / métodos.

Cuando las utilices, es importante asegurarse de incluir new $ROLES, antes de elevar los privilegios con AddRoles(). Por ejemplo:

 new $ROLES
 set status=$System.Security.AddRoles("MyPrivilegedRoutineApplication")

0 0
0 106

Buenos días, tardes, noches,... wink

Una pequeña reflexión/pregunta para hoy... es una realidad que las nuevas versiones de IRIS for Health son cada vez más potentes en cuanto a capacidades FHIR. Permiten consumir recursos FHIR con extrema facilidad, podemos crear conexiones con end-points de servidores FHIR externos muy facilmente y hacer que IRIS actúe de passthrough o que consuma esos recursos... o, más aún, podemos definir y poner en funcionamiento un repositorio FHIR, literalmente, en menos de 5 minutos.

Sin embargo, hay una cosa que echo en falta en proyectos de tipo FHIR Façade, cuando tenemos que implementar una capa FHIR sobre un sistema que "no habla" FHIR. Se trata de la posiblidad de tener ayuda en nuestro IDE (Studio o VS Code) a la hora de codificar la lógica que crearía el o los objetos dinámicos (%DynamicObject) que representan los recursos FHIR que queremos definir...

0 3
0 102

Hola a todos,

Cuando estamos diseñando un BP que necesita ser reutilizado, a menudo necesitamos desarrollar un componente con un objeto <call> configurable, donde establecemos el destino de la llamada al objeto.

@process.TargetConfigName

Sí, se puede lograr.

Aquí está el código completo:

1 2
0 64

InterSystems FAQ

Puedes evitar este error especificando un objeto de tipo stream como argumento de la función %ToJSON usando durante la generación del string JSON desde el objeto dinámico.

A continuación podéis ver un ejemplo.

1 0
0 104

Tenemos un conjunto de datos bastante apetecible con recetas escritas por múltiples usuarios de Reddit, sin embargo, la mayor parte de la información está en texto libre en forma de título y descripción de un mensaje. Vamos a averiguar cómo podemos, de forma muy sencilla, cargar los datos, extraer algunas características y analizarlos empleando funcionalidades de LLM (Large Language Model) de OpenAI desde Python Embebido y el framework Langchain.

0 0
0 103

¡Hola desarrolladores!

Algunas veces necesito planificar una tarea por medio de un programa.

Y en el 99% de los casos necesito que algún método de clase sea llamado periódicamente.

Y quiero que la tarea programada comience con una línea. Como un trabajo en crontab.

Decidí incorporar un módulo de este tipo con el módulo iris-cron-task.

Os comento los detalles a continuación.

0 0
0 103

Hola comunidad, os anuncio el lanzamiento de la versión 1.8.0 de la extensión VS Code, que contiene las siguientes mejoras y correcciones de fallos que paso a resumir.

La más importante es el soporte a archivos de proyecto del lado del servidor, es una funcionalidad similar a la de los proyectos de Studio, como los más viejos del lugar recordarán. Si trabajas en el lado del cliente, VS Code ya tiene buenas funcionalidades para la gestión de proyectos. Puedes simplemente usar una carpeta como un proyecto, o usar workspaces multi-raíz. Pero si trabajas en el lado del servidor, podrás apreciar algunas mejoras en la gestión de artefactos. Puedes saber más en el nuevo capítulo Projects de la documentación.

0 0
0 100

Me complace anunciar el lanzamiento de la versión 1.4.4 de la extensión VS Code, que contiene las siguientes mejoras y correcciones de fallos. Los enlaces que llevan a las issues de GitHub han sido corregidos. Como siempre, si ya tienes la extensión instalada, VS Code debería actualizar automáticamente tu extensión. Si no la tienes instalada, sigue estas instrucciones para empezar.

Registro de cambios

0 0
0 98
Artículo
· 29 oct, 2021 Lectura de 2 min
Trucos para gestionar errores en ObjectScript

ObjectScript tiene diferentes formas para gestionar errores (códigos %Status, %Exception, SQLCODE, etc). La mayor parte del código de sistema utiliza códigos %Status pero las %Exception son en ocasiones más fáciles de gestionar.

Si tienes que trabajar o mantener aplicaciones con cierto recorrido seguramente acabes lidiando con distintas técnicas de gestión de errores. A continuación os dejo una chuleta u hoja de trucos que puede servir como referencia. ¡Espero que os sea útil!

3 0
0 98
Artículo
· 28 nov, 2023 Lectura de 1 min
Cómo crear Objetos y Matrices JSON mediante SQL

Esta app evita añadir %JSONAdaptor a cada clase. En su lugar usa las funciones SQL JSON_OBJECT() para crear mis objetos JSON. Con este enfoque, se puede añadir JSON a cualquier clase - incluso a las implementadas - sin ninguna necesidad de cambiar o recompilar.

La idea inicial surge a raíz de implementar la exportación de relaciones M:N como objetos o matrices JSON.

La típica estructura de la exportación es

{ M-element : {M-object},
related-N-elements:
[
{N-element},
{N-element},
{N-element}
]
}

Los datos para la demo son un fragmento de los Miembros de la Comunidad de Desarrolladores y sus Insignias conseguidas en GlobalMasters. Los nombres reales están modificados.

1 0
0 94

Para todos aquellos que aún utilizáis el IDE Studio para programar con ObjectScript y vais a pasar por el proceso de migración a VS Code, ¿sabíais que hay una sección en la documentación de VS Code justo para vosotros? Echad un vistazo al apartado Migración desde Studio. Incluye los siguientes aspectos:

  • Edición del lado del servidor y control de código fuente
  • Proyectos de Studio
  • Importación de definiciones de servidor desde el Registro de Windows
  • Carga de fragmentos de código de Studio y colores de sintaxis

Y ahora hay una sección llamada Atajos de teclado, que muestra los atajos equivalentes en VS Code a los que estéis acostumbrados, para que las manos no tengan que dejar el teclado. En muchos casos el atajo es el mismo, por lo que no será necesario re-aprender. Y recordad, todos los atajos en VS Code son configurables por el usuario, por lo que tendréis un nivel de control que Studio nunca ofreció.

2 0
0 94

¡Hola Comunidad!

Echad un vistazo al nuevo webinar disponible en el Canal de YouTube de la Developer Community: herramientas para trabajar con Intersystems IRIS en proyectos de Machine Learning. El webinar ha sido grabado por dos Ingenieros de Ventas de InterSystems: @Sergey Lukyanchikov y @Eduard Lebedyuk.

"Herramientas de Machine Learning (Python, ObjectScript, Interoperability, Analytics) para InterSystems IRIS"

https://www.youtube.com/embed/z9O0F1ovBUY
[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 94

Preguntas frecuentes de InterSystems

La información sobre las propiedades definidas en una clase se puede obtener usando las siguientes clases del sistema:

%Dictionary.ClassDefinetion

%Dictionary.PropertyDefinition

El ejemplo de descripción del código es el siguiente.

0 0
0 92

¡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: sabe mucho y lo explica muy bien. Así que, si queréis conocer conceptos básicos, trucos y trampas de ObjectScript... ¡no os perdáis el vídeo!

Aprende ObjectScript desde cero

https://www.youtube.com/embed/DrqqI8aOXus
[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 92

¡Hola Desarrolladores!

Os dejamos un nuevo video en formato "coding talk" ("Charlas sobre programación"), especialmente realizado por @Evgeny Shvarov para el Concurso para Desarrolladores de InterSystems:

Cómo crear y enviar una aplicación al Concurso para Desarrolladores de InterSystems

https://www.youtube.com/embed/qyUT195Pic0
[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 92
Artículo
· 1 abr, 2022 Lectura de 1 min
$ZTIMESTAMP in hora local

Con el reciente cambio de horario en España me surgió esta duda:

¿Como obtenéis un $ZTIMESTAMP en horario local?.

He encontrado esta forma y funciona:

 Set LocalTimestamp=$ZDATETIMEH($ZTIMESTAMP,-3)

¿Conoces alguna forma mejor de hacerlo?

0 0
0 91

La invención y popularización de LLMs (Large Language Models) como GPT-4 de OpenAI ha desencadenado una ola de soluciones innovadoras que permiten aprovechar grandes volúmenes de datos no estructurados, que eran prácticamente imposibles de procesar manualmente hasta hace poco. Estas aplicaciones pueden incluir la recuperación de datos (echad un vistazo al curso sobre ML301 de Don Woodlock, con una excelente introducción a la Generación Aumentada de Recuperación), el análisis de sentimientos, e incluso agentes de IA totalmente autónomos, por nombrar sólo algunos ejemplos!

En este artículo, quiero demostrar cómo la funcionalidad de Python Embebido de IRIS puede ser utilizada para interactuar directamente con la librería Python de OpenAI, a través de la creación de una sencilla aplicación de etiquetado de datos que asignará automáticamente palabras clave a los registros que metamos en una tabla de IRIS. Estas palabras clave pueden después ser usadas para buscar y categorizar los datos, así como para analítica de datos. Utilizaré reseñas de productos realizadas por clientes como ejemplo de caso de uso.

1 0
0 90