#Mejores prácticas

4 Seguidores · 90 Publicaciones

Sugerencias de prácticas recomendadas sobre cómo desarrollar, probar, implementar y administrar más eficientemente las soluciones en InterSystems Data Platform. 

Artículo Alberto Fuentes · jul 29, 2019 4m read

¡Hola a tod@s!

Hoy os traigo un artículo de Kyle Baxter sobre búsquedas de texto libre que vale la pena guardar como referencia :)

¿Os gustaría buscar de forma eficiente campos de texto libres almacenados en vuestra aplicación? ¿Lo habéis intentado alguna vez pero no habéis encontrado una manera que os ofrezca un buen rendimiento? Hay un truco especial que resuelve el problema :)

Como es habitual, si preferís la versión TL;DR (Demasiado largo, no lo he leído), podéis ir directamente al final del artículo, pero preferiríamos que leyeseis el artículo entero para evitar herir sentimientos.

1
0 351
Artículo Luis Angel Pérez Ramos · abr 3, 2023 9m read

¡Hola Comunidad!

En este artículo configuraremos mediante programación un Apache Web Gateway con Docker, utilizando:

  • El Protocolo HTTPS.
  • TLS\SSL para asegurar la comunicación entre el Web Gateway y la instancia de IRIS.

imagen

Utilizaremos dos imágenes: una para el Web Gateway y la segunda para la instancia de IRIS.

Todos los archivos necesarios están disponibles en este repositorio de GitHub.

Comencemos clonando el proyecto de git:

git clone https://github.com/lscalese/docker-webgateway-sample.
0
1 351
Artículo Ricardo Paiva · mar 26, 2020 14m read

Este es el primero de dos artículos sobre los índices SQL.

Parte 1 - Conoce tus índices

¿Qué es un índice?

Recuerda la última vez que fuiste a una biblioteca. Normalmente, los libros están ordenados por temática (y luego autor y título) y cada repisa tiene un cartel en el extremo con un código que describe la temática de los libros. Si necesitaras libros de un cierto tema, en lugar de caminar por cada pasillo y leer la descripción en la parte interior de cada libro, podrías dirigirte directamente al estante cuyo cartel describa la temática que buscas y elegir tus libros de allí. Sin esos carteles, el proceso de encontrar los libros que quieres, habría sido muy lento.

Un índice SQL tiene la misma función general: mejorar el rendimiento, al ofrecer una referencia rápida del valor de los campos para cada fila de una tabla.

Configurar índices es uno de los pasos más importantes a la hora de preparar tus clases para un rendimiento óptimo de SQL.

1
1 347
Artículo Alberto Fuentes · mayo 6, 2021 4m read

¡Hola desarrolladores!

Supón que tienes una clase persistente con datos y quieres tener una interfaz de usuario Angular sencilla, para ver los datos y llevar a cabo operaciones CRUD.

En este artículo describíamos cómo desarrollar una interfaz de usuario Angular para InterSystems IRIS utilizando RESTForms2.

A continuación vamos a explicar cómo conseguir una interfaz de usuario Angular sencilla que permita realizar operaciones CRUD y ver automáticamente los datos de tu clase de InterSystems IRIS en menos de 5 minutos.

¡Vamos!

1
0 345
Artículo Ricardo Paiva · jun 4, 2021 4m read

Durante las últimas semanas, el equipo de Solution Architecture (Soluciones de Arquitectura) ha estado trabajando para terminar la carga de trabajo de 2019: esto incluyó la creación del código abierto de la Demostración de Readmisiones que llevó a cabo HIMSS el año pasado, para poder ponerla a disposición de cualquiera que busque una forma interactiva de explorar las herramientas proporcionadas por IRIS.

Durante el proceso de creación del código abierto de la demostración, nos encontramos de inmediato con un error crítico.

1
0 330
Artículo Pierre-Yves Duquesnoy · sep 18, 2023 10m read

Power BI

Conectar a una Fuente de Datos

Para conectarse a AtScale, utilizaremos la base de datos de SQL Server Analysis Services. Vamos a abrirla en el editor de Power Query. Para hacerlo, hay que seleccionar Transform Data en la pestaña Home.

En la ventana que aparece, id a Home, New Source y seleccionad Analysis Services.

1
0 326
Artículo Daniel Aguilar · jun 12, 2023 3m read

ZPM está diseñado para funcionar con aplicaciones y módulos de InterSystems IRIS. Está formado por dos  componentes: el Cliente ZPM, que es un CLI para gestionar módulos; y El Registro, que es una base de datos de módulos y meta-información. Podemos utilizar ZPM para buscar, instalar, actualizar, eliminar y publicar módulos. Con ZPM se pueden instalar clases de ObjectScript, aplicaciones Frontend, producciones de Interoperabilidad, soluciones de BI de IRIS, conjuntos de datos de IRIS o cualquier otro archivo, como paquetes wheel de Python Embebido. 

En este artículo repasaremos tres secciones:

  1. Instalación de ZPM
  2. Generación del Módulo
  3. Búsqueda, Instalación y Publicación de módulos dentro del Registro
2
0 319
Artículo Joel Espinoza · oct 28, 2019 4m read

¡Hola Comunidad!

Una función útil de nuestra estructura REST es la capacidad que tienen las clases de Dispatch para identificar los prefijos de una solicitud y redireccionarlos a otra clase de Dispatch. Este enfoque permite mejorar el orden y la lectura del código, permite mantener separadas las versiones de una interfaz fácilmente y ofrece una forma de proteger llamadas a APIs a las que solo ciertos usuarios podrán acceder.

1
0 311
Artículo Luis Angel Pérez Ramos · feb 26, 2024 5m read

He estado desarrollando una aplicación web que utiliza IRIS como back-end. Trabajé en ella con acceso no autenticado. Estoy llegando al punto en el que me gustaría implementarla para los usuarios, pero primero necesito añadir la autenticación. En vez de utilizar la contraseña para la autenticación predeterminada de IRIS (con contraseña), me gustaría que los usuarios iniciaran sesión con el Inicio de Sesión Único (SSO) de mi organización, o con algún otro proveedor de identidad popular como Google o GitHub. He leído que OpenID Connect es un estándar de autenticación común, y que es admitido por IRIS. ¿Cuál es la forma más sencilla de ponerlo en marcha?

0
0 309
Artículo Muhammad Waseem · dic 1, 2021 3m read

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)
 

Empecemos por la autentificación

La autenticación verifica la identidad de cualquier usuario o entidad que intente conectarse a InterSystems IRIS®. Como se dice a menudo, la autentificación es la forma de demostrar que eres quien dices ser.

1
0 306
Artículo Alberto Fuentes · mayo 20, 2022 3m read

Si estás desarrollando soluciones en IRIS y quieres utilizar Git, ¡es genial! Sólo tienes que utilizar VSCode con un repositorio git local y enviar los cambios al servidor, así de fácil.

Pero qué sucede si:

  • Colaboras con otros desarrolladores en un entorno de desarrollo remoto compartido y quieres evitar la edición simultánea del mismo archivo
  • Utilizas editores basados en el portal de administración para BPL, DTL, tablas dinámicas, cuadros de mando, etc. y quieres incluir esos elementos en el control de código de forma sencilla.
  • Aún utilizas Studio para realizar algunas cosas y/o ocasionalmente vuelves a usarlo desde VSCode. O tu equipo todavía no ha adoptado completamente VSCode y algunos miembros del equipo todavía quieren utilizar Studio
  • Trabajas en varios proyectos diferentes al mismo tiempo en el mismo namespace - digamos, en varios paquetes definidos mediante InterSystems Package Manager - y quieres trabajar con todos ellos desde una vista de edición de isfs (en vez de en varios proyectos distintos) con los cambios rastreados automáticamente en el repositorio de git apropiado
1
1 296
Artículo Alberto Fuentes · ene 11, 2024 2m read

¿Alguna vez habéis estado editando ficheros en VS Code, pero necesitábais comprobar el valor de un global o ejecutar algunos comandos de ObjectScript? Ahora podéis hacerlo, sin necesidad de configuración! Si tenéis la versión 2.10.0 o posterior de la extensión vscode-objectscript y estáis conectados a InterSystems IRIS 2023.2 o posterior, ahora podéis abrir una conexión del terminal a vuestro servidor, sin importar dónde se encuentre.

Hay tres formas de abrir este nuevo terminal:

1
0 290
Artículo Luis Angel Pérez Ramos · jul 11, 2023 3m read

¡Hola Comunidad!

El otro día vi un artículo sobre el uso del paquete %ZEN cuando se trabaja con JSON y he decidido escribir un artículo para describir un enfoque más actualizado. Hace no mucho se dio el paso de usar %ZEN.Auxiliary.* a clases JSON dedicadas. Esto permite trabajar con JSONs de forma más orgánica.

Llegados a este punto hay básicamente 3 clases principales para trabajar con JSON:

  • %Library.DynamicObject - proporciona una manera simple y eficiente de encapsular y trabajar con documentos JSON estándar. También nos da la posibilidad de, en vez de escribir el código habitual para crear la instancia de una clase como
set obj = ##class(%Library.DynamicObject).%New()

usar la siguiente sintaxis

set obj = {}
  • %Library.DynamicArray - proporciona una manera simple y eficiente de encapsular y trabajar con matrices JSON estándar. Con los arrays se puede usar el mismo enfoque que con los objetos, lo que significa que o bien se puede crear una  instancia de la clase
set array = ##class(%DynamicArray).%New()

o se puede hacer usando corchetes []

set array = []
  • %JSON.Adaptor es una utilidad para mapear objetos de ObjectScript (registrados, serial o persistentes) a textos JSON o entidades dinámicas.
1
0 276
Artículo Ricardo Paiva · jul 28, 2022 3m read

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. Por ello, es posible que mis observaciones no apliquen a las nuevas versiones de IRIS. Pero quizás sean útiles para otros.

1
0 271
Artículo Alberto Fuentes · dic 9, 2021 7m read

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

1
0 268
Artículo Ricardo Paiva · sep 4, 2020 5m read

¡Hola desarrolladores!

La clase %Net.SSH.Session permite conectarse a servidores mediante SSH. Lo más habitual es usarlo con SFTP, especialmente en los adaptadores de FTP entrantes y salientes.

En este artículo se dará un breve ejemplo de cómo conectarse a un servidor SSH usando la clase, se describirá las opciones para autenticar y cómo hacer la depuración cuando surjan problemas.

A continuación un ejemplo de cómo hacer la conexión:

Set SSH = ##class(%Net.SSH.Session).%New()
Set return=SSH.Connect("ftp.intersystems.com")​

Esto crea una nueva conexión, y luego se conecta al servidor SFTP ftp.

0
0 258
Artículo Kurro Lopez · jun 16, 2020 9m read

En mi anterior artículo, revisamos los posibles casos de uso para macros, así que pasemos ahora a un ejemplo más completo de usabilidad de macros. En este artículo diseñaremos y crearemos un sistema de registro.

Sistema de registro

El sistema de registro es una herramienta útil para monitorear el trabajo de una aplicación que ahorra mucho tiempo durante la depuración y el monitoreo. Nuestro sistema constaría de dos partes:

  • Clase de almacenamiento (para registros de anotaciones)
  • Conjunto de macros que agregan automáticamente un nuevo registro al registro
1
0 258
Artículo Dani Fibla · dic 5, 2020 7m read

Cuando se llama a los servicios web, existen varios escenarios para los Business Operation, que actúan juntos para controlar lo que sucederá cuando no se obtenga una respuesta en el tiempo deseado. (Esto también es importante, por ejemplo, en el caso de una solicitud HTTP simple que no pertenezca a los servicios SOAP).

0
0 255
Artículo Muhammad Waseem · jul 15, 2022 5m read

¡Hola Comunidad!

En este artículo voy a explicar cómo acceder a la información y a las tablas del dashboard (cuadro de mando) del sistema del Portal de Administración mediante el uso de Python Embebido.

1
0 248
Artículo Alberto Fuentes · dic 29, 2021 1m read

No hace mucho GitHub introdujo una nueva funcionalidad que permite ejecutar muy rápidamente VSCode en el navegador para cualquier repositorio alojado allí. Haz clic en la tecla . en cualquier repositorio o pull-request, o intercambia .com con .dev en la URL, para ir directamente a un entorno VS Code en tu navegador.

github dev

Este VSCode es una versión light de la versión de escritorio, pero funciona totalmente en el navegador. Debido a esto, están limitadas las extensiones permitidas para trabajar así.

Aquí podemos utilizar la flamante nueva versión 1.2.1 de la extensión VSCode-ObjectScript smiley, que ahora puede ser ejecutada en modo Navegador.

1
0 244
Artículo Nancy Martínez · jul 3, 2020 5m read

El objetivo de esta "Guía para solucionar problemas en DeepSee" es ayudar a localizar y solucionar los problemas en un proyecto en DeepSee.

Si el problema no puede solucionarse siguiendo estas recomendaciones, al menos tendrás suficiente información para reportar el problema al Centro de Soporte Internacional (WRC) y proporcionarnos todas la información, para que podamos continuar la investigación juntos y resolverlo más rápido!

Nota.

1
0 239
Artículo Jose-Tomas Salvador · ene 28, 2020 5m read

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...

1
0 233
Artículo Alberto Fuentes · abr 28, 2021 8m read

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.

1
1 232
Artículo Ricardo Paiva · sep 12, 2022 5m read

freepik- freepik.com En primer lugar, ¿qué es la anonimización de datos?

Según la Wikipedia:

La anonimización es un tipo de sanitización de información cuya intención es la protección de la privacidad. Es el proceso de eliminar información personal de los conjuntos de datos, de modo que las personas que son descritas por los datos permanecen en el anonimato.

1
1 231
Artículo Luis Angel Pérez Ramos · oct 10, 2023 3m read

Seguramente todos habéis oido hablar de FHIR como la panacea y solución a todos los problemas de interoperabilidad y compatibilidad entre sistemas. Aquí mismo podemos ver a uno de sus clásicos defensores sujetando un recurso FHIR con su mano y disfrutando desaforadamente:

Pero para el resto de los mortales vamos a hacer una pequeña introducción.

¿Qué es FHIR?

2
0 231
Artículo Alberto Fuentes · abr 15, 2021 4m read

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.

2
0 226
Artículo Ricardo Paiva · sep 23, 2021 4m read

InterSystems SAM es una gran herramienta para monitorizar tus clústeres de InterSystems IRIS e InterSystems IRIS For Health en instalaciones físicas o en un entorno de nube. En este artículo se describe cómo puedes implementar un administrador de alertas personalizado. Actualmente esta es una función no documentada y muy probablemente desconocida de InterSystems SAM. Con futuras versiones probablemente será más fácil aprovechar este útil concepto.

Para ser breve, en este artículo solo mencionaré InterSystems IRIS, pero todo aplica a InterSystems IRIS e InterSystems IRIS For Health.

1
0 218
Artículo Nancy Martínez · mayo 30, 2022 1m read

Estoy seguro de que os habéis encontrado esta situación:

  • Hay un bug en un sistema que no puedes reproducir por ti mismo localmente
  • Necesitas ejecutar unas pocas líneas en la instancia afectada
  • Tienes acceso completo al Portal de Gestión
  • Pero no hay terminal, ni consola, ni acceso con Studio, Atelier o VSCode
  • ¿Cómo ejecutar tus pocas líneas para probar???
1
0 217