¡Hola desarrolladores!
Os traemos el segundo videotutorial de la serie de vídeos de iniciación a ObjectScript que ha realizado nuestro compañero @Jose Tomas Salvador, de InterSystems Iberia.
InterSystems ObjectScript es un lenguaje de programación para operar con datos mediante cualquier modelo de datos que se encuentre en InterSystems Data Platform (Objetos, relacionales, valores clave, documentos, globales) y desarrollar lógica empresarial para aplicaciones del lado del servidor en InterSystems Data Platform.
¡Hola desarrolladores!
Os traemos el segundo videotutorial de la serie de vídeos de iniciación a ObjectScript que ha realizado nuestro compañero @Jose Tomas Salvador, de InterSystems Iberia.
Sobreescribiendo el método Read (que tiene un tipo de retorno %CacheString) en una nueva clase que hereda de %Stream.FileCharacter, se obtiene un error de compilacion informando que el tipo de retorno es incorrecto y ha de ser Binary, aun cuando matchea la firma del padre.
Mirando la global de codigo compilado vemos:
^oddCOM("%Stream.FileBinary","m","Read",42)="%Library.Binary"
Despues de más investigaciones encontramos que hay un método generator que mira la definicion de clase OdbcType.
Seteandolo a LONGVARCHAR nos da:
^oddCOM("User.CStream","m","Read",42)="%Library.String"
¡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!
¡Hola desarrolladores!
Otra forma de empezar a utilizar InterSystems Objectscript Package Manager es descargar las imágenes pre-construidas de InterSystems IRIS Community Edition o IRIS for Health Community Edition.
Estas imágenes de IRIS están desplegadas en DockerHub y puedes ejecutarlas directamente con este comando:
docker run --rm -p 52773:52773 --init --name my-iris -d intersystemsdc/iris-community:2021.1.0.215.0-zpm
¡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:
¡Hola Comunidad!
ObjectScript tiene al menos tres formas de manejar errores (códigos de estado, excepciones, SQLCODE, etc...). La mayor parte del código del sistema usa estados, pero las excepciones son más fáciles de manejar por varias razones. Al trabajar con código heredado, se invierte un tiempo en traducir las distintas técnicas. Yo uso mucho estos fragmentos de código como referencia. Espero que también os sean útiles.
///Status from SQLCODE:set st $$$ERRORClass Extends
¡Hola desarrolladores!
A veces necesitamos importar datos CSV de forma programática en InterSystems IRIS desde un fichero o una URL. Y esperamos además que automáticamente se genere una clase con los tipos de datos adecuados y los datos importados.
Echadle un ojo al módulo csvgen en Open Exchange que hace exactamente eso que hemos descrito.
Si necesitas importar un fichero CSV en IRIS puedes hacer esto:
USER>do ##class(community.csvgen).Generate("/usr/data/titanic.csv",,"Data.Titanic")
Class name: Data.Titanic
Header: PassengerId INTEGER,Survived INTEGER,Pclass INTEGER,Name VARCHAR(250),Sex VARCHAR(250),Age INTEGER,SibSp INTEGER,Parch INTEGER,Ticket VARCHAR(250),Fare MONEY,Cabin VARCHAR(250),Embarked VARCHAR(250)
Records imported: 891
USER>
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.¡Hola desarrolladores!
Os presentamos a los ganadores de la gincana que realizamos durante el último webinar: ellos son @Yone Moreno, @Kurro Lopez y @Bruno Gouveia, con algunos de los regalos que obtuvieron! 👏👏👏
Como sabes, ObjectScript no tiene un comando o función de sistema FOREACH.
Pero tiene un amplio margen para la creatividad.
Pero la tarea es recorrer una matriz global o local y hacer algo PARA CADA elemento.
Hay dos posibles soluciones:
¡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.
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:

Hay alguna forma de no perder los saltos de línea? He comprobado y los saltos de línea son los caracteres 13 y 10 ($Char(13) y $Char(10)).
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.
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.
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
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.
Al igual que con Pattern Matching, se pueden utilizar Expresiones Regularespara 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 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 ObjectScript y también a aquellos que quieren revisar conceptos.
¡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.
Una unidad de código en ObjectScript (pongamos, un ClassMethod) puede producir una gran variedad de efectos secundarios inesperados cuando interactúa con partes del sistema que están fuera de su propio alcance y no han sido depuradas adecuadamente.
¡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.
¡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!
¡Hola Comunidad!
ObjectScript, el lenguaje de InterSystems IRIS, tiene la capacidad de extender clases utilizando una funcionalidad muy interesante llamada XData.
Es una sección en tu clase que puede ser usada para crear definiciones personalizadas, para utilizarlas dentro de la clase misma o externamente.
Crear una o más definiciones XData para tu clase es muy sencillo, mira el ejemplo:
¡Hola desarrolladores!
Os invitamos a un nuevo webinar en español: "Aprende ObjectScript desde cero", el martes 25 de mayo, a las 4:00 PM (CEST).
Para todos aquellos que no tienen ni idea de ObjectScript y quieren empezar a utilizarlo, o para aquellos que llevan tiempo desarrollando con el lenguaje de programación de InterSystems sin saber cómo lo hacen, vamos a explicar los conceptos básicos de ObjectScript, descubrir algunas trampas y mostrar algunos trucos muy útiles.
El orden es una necesidad para todos, pero no todos lo entienden de la misma manera (Fausto Cercignani)
Nota de traducción: este articulo se publicó originalmente basado en Caché. Para esta traducción se revisó todo el contenido usando InterSystems IRIS.
Descargo de responsabilidad: En este artículo se utilizan el ruso y el alfabeto cirílico como ejemplos, pero esto solamente es importante para las personas que utilizan InterSystems IRIS en lugares en los que no se habla inglés. Ten en cuenta que este artículo se refiere principalmente a las compilaciones de NLS, que son diferentes a las compilaciones de SQL. Las compilaciones en SQL (por ejemplo, SQLUPPER, SQLSTRING, EXACT que significa que no hay compilación, TRUNCATE, etc.) son funciones reales que se aplican de manera explícita a algunos valores, y cuyos resultados a veces se almacenan explícitamente en los subíndices de los globals. De hecho, cuando se almacenan en subíndices, de forma natural estos valores seguirían la compilación de NLS (“Compilaciones de SQL y NLS”).
¡Hola amigos!
A menudo, durante la depuración, quieres conocer los valores de todos los parámetros.
Utilizar VSCode Debugger no es una opción.
¿Qué se podría usar para saber qué parámetros vinieron al método?
¿Existe una macro "mágica" que almacene todas las variables con sus nombres en un global?
¿Alguna idea? ¡Gracias!
¡Hola desarrolladores!
A menudo me preguntan cómo instalar IRIS, cómo conectarse a IRIS desde el IDE, cómo configurar el entono, compilar, depurar, mantener el repositorio...
Os muestro aquí posiblemente el camino más corto para configurar todo el entorno y empezar a desarrollar con ObjectScript en InterSystems IRIS.
Prerrequisitos
Asegúrate de tener Git, Docker y VSCode instalados.
Instala las extensiones de Docker y ObjectScript en VSCode.
(1).png)
Inicia sesión o crea una cuenta en Github.
¡Vamos allá!
Hola a todos! Os traigo hoy un ejemplo de código que compartía Robert Cemper para mostrar por SQL los registros de error almacenados en ^ERRORS.