¡Hola desarrolladores!

Como probablemente sabéis, en IRIS 2021 los nombres de los globals son aleatorios.

Y si creas clases de IRIS con DDL y quieres estar seguro de qué global se creó, seguramente te gustaría darle un nombre.

De hecho, se puede hacer.

Usa WITH %CLASSPARAMETER DEFAULTGLOBAL='^GLobalName' en la Tabla CREATE para que funcione. Documentación. Mirad este ejemplo:

0 0
0 109

Hay varias maneras de generar ficheros Excel usando tecnología InterSystems: por ejemplo utilizando informes generados con InterSystems Reports, o los antiguos informes ZEN, o incluso haciendo uso de librerías Java de terceros. Las posibilidades son casi infinitas.

Pero, ¿qué pasa si quieres crear una sencilla hoja de cálculo sólo con ObjectScript? (sin aplicaciones de terceros)

En mi caso, necesito generar informes que contengan muchos datos sin procesar (a los financieros les encantan), pero mi antiguo informe ZEN fallaba y me da lo que me gusta llamar un "archivo con cero bytes". Básicamente, Java se queda sin memoria y provoca una sobrecarga en el servidor de informes.

0 0
0 143

¡Hola desarrolladores!

Gracias a todos los que habéis empezado el desarrollo con InterSystems IRIS desde la plantilla de desarrollo básico!

Recientemente, gracias a las contribuciones de @Dmitry Maslennikov, he actualizado el Dockerfile para hacer el desarrollo más sencillo, las imágenes más ligeras y el proceso de construcción más rápido. Y también parece más bonito ;)

Esto es lo que ha cambiado:

1 0
0 119

Hola Comunidad,

Esta publicación es una introducción a mi aplicación iris-climate-change en Open Exchange.

iris-climate-change importa el conjunto de datos Temperature Change, de la Organización de las Naciones Unidas para la Agricultura y la Alimentación (FAO), usando la funcionalidad LOAD DATA (SQL) y analiza y visualiza los datos con la ayuda del framework Python Flask Web, la librería Pandas Python data analysis, Plotly Open Source Graphing Library for Python y la librería Plotly JavaScript Open Source Graphing.

0 0
0 84
Artículo
· 31 ago, 2022 Lectura de 2 min
Python Embebido y tcl tkinter en Windows

Si tu código de Python Embebido llama a la librería tkinter (que es usada por muchas librerías especializadas en la creación de gráficos, como matplotlib), puede que obtengas este error:

<THROW> *%Exception.PythonException <CLASS DOES NOT EXIST> 230 ^^0^DO ##CLASS(User.Test).Test() 
<class '_tkinter.TclError'>: Can't find a usable init.tcl in the following directories:

c:/intersystems/irispy/lib/python/lib/tcl8.6
c:/intersystems/irispy/lib/tcl8.6
c:/intersystems/lib/tcl8.6
c:/intersystems/irispy/library
c:/intersystems/library
c:/intersystems/tcl8.6.9/library
c:/tcl8.6.9/library

This probably means that Tcl wasn't installed properly.

1 0
1 132

La Función como Servicio (FaaS) es un modelo de computación en la nube que proporciona una plataforma que permite a los clientes desarrollar, ejecutar y gestionar funcionalidades de aplicaciones sin la complejidad de crear y mantener la infraestructura típicamente asociada con el desarrollo y lanzamiento de una app. Crear una aplicación siguiendo este modelo es una forma de conseguir una "arquitectura sin servidor ", y se suele utilizar cuando se crean aplicaciones basadas en microservicios.

Wikipedia

FaaS es un enfoque muy popular para ejecutar cargas de trabajo en la nube, permitiendo a los desarrolladores centrarse en escribir código.

Este artículo muestra cómo desplegar métodos de InterSystems IRIS con un modelo FaaS.

0 0
0 105
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 98
Artículo
· 12 ene, 2023 Lectura de 11 min
Cómo depurar el código ObjectScript con VS Code

Visual Studio Code (VS Code) es el editor de códigos más popular del mercado. Fue creado por Microsoft y distribuido como IDE gratuito. VS Code es compatible con docenas de lenguajes de programación, incluido ObjectScript.

Hasta 2018, Atelier (basado en Eclipse), se consideraba una de las principales opciones para desarrollar los productos de InterSystems. Sin embargo, en diciembre de 2018, cuando la Comunidad de Desarrolladores de InterSystems lanzó el soporte para VSCode, una parte relevante de los profesionales de InterSystems comenzaron a utilizar este editor y lo siguen haciendo desde entonces, especialmente los desarrolladores que trabajan con nuevas tecnologías (Docker, Kubernetes, NodeJS, Angular, React, DevOps, Gitlab, etc.).

Algunas de las mejores características de VSCode son las funciones de depuración. Por eso, en este artículo mostraré en detalle cómo depurar un código ObjectScript, incluido el código de clase y el código %CSP.REST.

3 0
0 204
Artículo
· 17 feb, 2023 Lectura de 2 min
Lleva tus pruebas unitarias al siguiente nivel

¡Hola Comunidad

Es el momento de llevar vuestras pruebas unitarias al siguiente nivel, con la nueva funcionalidad iris-TripleSlash!

Simplemente añade una descripción a la clase, con etiquetas especiales como:

  • beforeAll
  • beforeOne
  • afterAll
  • afterOne

TripleSlash lo convertirá en:

  • OnBeforeAllTests
  • OnBeforeOneTest
  • OnAfterAllTests
  • OnAfterOneTest

¡Y eso no es todo! La nueva abreviatura punto doble permite llamar métodos fácilmente y simplificar el código, por ejemplo:

1 0
0 61

Recientemente he estado trasteando con la utilización de IRIS como servidor para una conexión mediante web socket desde el frontend de una aplicación en NodeJS.

En esta URL tendréis la información relativa a las conexiones de web sockets tanto en modo cliente como en modo servidor: https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls...

4 0
2 70

¡Hola Comunidad!

Me gustaría presentaros una nueva utilidad para importar CSV a IRIS - ¡csvgenpy!

Instalación

USER>zpm "install csvgenpy"

Uso:

do ##class(shvarov.csvgenpy.csv).Generate("file or url","table","schema")

Ejemplo:

USER>do ##class(shvarov.csvgenpy.csv).Generate("https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv","titanic","data")

Esto creará la tabla y la clase data.titanic en IRIS y a continuación cargará los datos. Podéis probarlo con:

2 0
0 36
Artículo
· 20 sep, 2023 Lectura de 1 min
Cómo sobrecargar métodos en ObjectScript

Preguntas frecuentes de InterSystems

El lenguaje ObjectScript de InterSystems no permite definir métodos con el mismo nombre pero utilizando diferentes argumentos.

En general, se suele clasificar Objectscript como un lenguaje de programación dinámico. En ObjectScript se puede controlar libremente qué argumentos se utilizan cuando se ejecuta un método, así que a diferencia de otros lenguajes como Java, que no son lenguajes de programación dinámicos, no es necesario distinguir estrictamente los métodos por el número de argumentos en la fase de compilación.

El lenguaje ObjectScript, por tanto, no contiene la característica conocida como overloading o sobrecarga como tal.

0 0
0 54
InterSystems Official
· 26 ene, 2024 Lectura de 2 min
Cómo instalar Apache en sistemas operativos compatibles con IRIS

Para vuestra comodidad, InterSystems está publicando los pasos de instalación característicos de los sistemas operativos que son compatibles con InterSystems IRIS.

Para Microsoft Windows, consultad por favor la documentación de producto de InterSystems.

1 0
0 38

Hola a todos,

En este artículo voy a hacer un paso a paso desde cero para la creación de una simple API REST mediante Node/Express conectada a una instancia de InterSystems IRIS.

No voy a adentrarme en mucho detalle acerca de cómo trabajar con cualquiera de las tecnologías que menciono en el tutorial, pero dejaré enlaces a documentación adicional por si quieres aprender más. El objetivo es proporcionar una guía práctica de cómo configurar y conectar un backend node.js a InterSystems IRIS.

2 0
1 945

¡Hola Desarrolladores!

Esta es la segunda publicación sobre recursos para desarrolladores. Esta parte es sobre Open Exchange.

Utilizando Open Exchange para avanzar en la tecnología de InterSystems

InterSystems Open Exchange es una galería de herramientas de aplicaciones, conectores y librerías, que los desarrolladores de InterSystems publican para compartir formas de trabajar, enfoques y hacer negocio. Todas las aplicaciones están o construidas con InterSystems Data Platform o pensadas para ser usadas en desarrollos con nuestra tecnología.

1 0
0 171
Artículo
· 6 dic, 2019 Lectura de 12 min
Tutorial de WebSockets

¡Hola Comunidad!

La mayor parte de las comunicaciones servidor-cliente en la web se basan en una estructura de solicitud y respuesta. El cliente envía una solicitud al servidor y el servidor responde a esta solicitud. El protocolo WebSocket ofrece un canal bidireccional de comunicación entre un servidor y un cliente, lo que permite a los servidores enviar mensajes a los clientes sin antes haber recibido una solicitud. Por más información sobre el protocolo WebSocket y su implementación en InterSystems IRIS, vea los siguientes enlaces:

3 0
0 1.2K

Estaba buscando la forma mas simple de conectar desde el visual studio code a mi instancia local por el terminal sin tener que ir cambiando de ventana.

Soy consciente de que esto tambien se puede conseguir por telnet pero me parece complicar la cosa para conectarme a mi local.

La solución mas sencilla me ha parecido navegar a la carpeta /bin de la instalación (o añadirla al PATH), y ejecutar .\csession.exe NOMBREDEINSTANCIA.

2 0
0 229
Artículo
· 18 mayo, 2020 Lectura de 2 min
Cliente para WebSockets basado en Node.js

Los WebSockets, como tecnología de comunicación, están ganando una importancia cada vez mayor.
En el namespace SAMPLES puedes encontrar un buen ejemplo para ejecutar un WebSocket Server.
También hay un ejemplo útil para un Browser Client en el cual JavaScript hace la mayor parte del trabajo.

La cuestión es:
¿Cómo consumir la salida de un WebSocket Server en tu aplicación?

0 0
0 128

Nota (junio de 2019): han cambiado muchas cosas para obtener los detalles más recientes, haz clic aquí
Nota (septiembre de 2018): ha habido grandes cambios desde que esta publicación apareció por primera vez; sugiero que utilices la versión del contenedor en Docker dado que el proyecto y la información para que se ejecute como un contenedor sigue publicada en GitHub, en el mismo lugar, para que puedas descargarlo, ejecutarlo y modificarlo, si lo necesitas.

Cuando trabajo con clientes en revisiones de rendimiento, planificaciones de capacidad y resolución de problemas, con frecuencia tengo que descomprimir y revisar las métricas del sistema operativo y de caché desde pButtons. En vez de lidiar con los archivos html para cortar y pegar secciones que serán graficadas en Excel, hace algún tiempo escribí una publicación sobre una herramienta para descomprimir las métricas de pButtons, escrita con el intérprete de unix, perl y los scripts de awk. Si bien este es un valioso ahorro de tiempo, no es la historia completa…

0 0
0 81

Esta publicación es la traducción de un artículo que publicó mi compañero Murray hace un tiempo. Durante mi trabajo en soporte la he recomendado muchas veces, pues lo que aquí se explica es bastante común y los ejemplos que se dan pueden ayudar a muchos de vosotros.

0 0
0 259
Artículo
· 19 sep, 2022 Lectura de 17 min
Cuatro APIs de base de datos

Una sesión simultánea en IRIS: SQL, Objects, REST y GraphQL

Kazimir Malevich, "Deportistas" (1932)

"¡Pues claro que no lo entiende! ¿Cómo puede una persona que siempre ha viajado en un carruaje tirado por caballos entender los sentimientos e impresiones del viajero expres o del piloto de aviones?"

Kazimir Malevich (1916)

Introducción

Ya hemos abordado el tema de por qué la representación de objetos/clases es superior a la de SQL para implementar modelos de áreas temáticas. Y esas conclusiones y hechos son tan ciertos ahora como lo han sido siempre. Entonces, ¿por qué deberíamos dar un paso atrás y hablar sobre las tecnologías que arrastran las abstracciones de vuelta al nivel global, donde habían estado en la era pre-objetos y pre-clases? ¿Por qué debemos fomentar el uso de "código espagueti", que provoca errores que son difíciles de rastrear y se basa en las habilidades de desarrolladores virtuosos?

Hay varios argumentos a favor de la transmisión de datos por medio de APIs basadas en SQL/REST/GraphQL en lugar de representarlos como clases/objetos:

3 0
0 1.4K
Artículo
· 10 jun, 2021 Lectura de 2 min
Cálculo del tamaño detallado de la clase/tabla

En los buenos tiempos, calcular el tamaño de los datos, flujos e índices para una clase/tabla era fácil - solo había que ejecutar %GSIZE y revisar los globals D, S, e I, respectivamente.

Sin embargo, hoy en día el sharding, los nombres de los globals optimizados y los índices en globals separados producen una salida %GSIZE parecida a esta:

0 0
0 98
Artículo
· 7 jul, 2021 Lectura de 1 min
Importación de datos a IRIS de forma sencilla

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

0 0
0 123
Artículo
· 3 nov, 2021 Lectura de 1 min
Ruta de aprendizaje para principiantes

¡Hola Comunidad!

La página web de formación de InterSystems (InterSystems Learning Website) tiene muchos cursos interactivos. Si quieres aprender más o empezar a trabajar con InterSystems, este es el camino que debes seguir:

Resumen:

Conceptos básicos:

1 0
0 97

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 182