#Consejos y trucos

3 Seguidores · 157 Publicaciones

Es la experiencia en el sector de la tecnología de InterSystems que resuelve algún problema en particular de una manera elegante o inusual.

Artículo Sergio Farago · dic 20, 2024 2m read

¡Hola a todos!

Muchos sabéis que Global Masters está activo de nuevo. Otros quizás no sepáis en qué consiste. 

Global Masters es un programa de recompensas donde se os premia por participar en la comunidad: escribir artículos, comentar, realizar desafíos (conocidos como Asks)

¿Y qué premios podéis conseguir? ¡Vamos a verlo!

0
0 88
Artículo Jose-Tomas Salvador · nov 27, 2019 5m read

¡Hola a todos!

Como seguramente ya sabréis, ya está disponible en Docker Hub una versión totalmente gratuita de InterSystems IRIS for Health (I4H). Se trata de la versión Community y, como digo, es totalmente gratuita y funcional. Ya se ha hablado de ella en algunos artículos y posts,... así que hoy no va de eso. Aquí vamos a ver el "misterioso caso de la desaparición o, mejor, ausencia de mis datos persistentes cuando arranco el contenedor con la opción durable" (no he encontrado la fuente de letra terrorífica para darle más suspense... el editor de posts da para lo que da smiley ) .

0
0 513
Artículo Esther Sanchez · oct 11, 2021 4m read

¡Hola desarrolladores!

En este artículo, me gustaría mostraros cómo aprovechar una de las funcionalidades más útiles de la Comunidad - las etiquetas.

 

Una etiqueta es una palabra o grupo de palabras que se utilizan para describir los temas de una publicación. Las etiquetas son una manera de conectar a los miembros de la Comunidad y a los expertos, con publicaciones que podrán comentar/responder.

Las etiquetas también se utilizan para que puedas encontrar rápidamente las publicaciones sobre los temas en los que estás interesado.

0
0 147
Artículo Luis Angel Pérez Ramos · ago 8, 2023 4m read

InterSystems FAQ

Puedes buscar variables globales específicas en el archivo de journals usando la consulta ByTimeReverseOrder de la clase %SYS.Journal.File y la consulta List de la clase %SYS.Journal.Record

El funcionamiento de cada consulta es el siguiente:

0
0 85
Artículo Saul Perez · mayo 29, 2024 7m read

¡Hola a todos los estimados miembros de la comunidad de desarrolladores de InterSystems en español!

Aunque suelo consultar la comunidad de desarrolladores y alguna vez he dejado alguna pregunta por aquí, este será mi primer artículo y qué mejor ocasión para hacerlo que participando en el 3er concurso de artículos técnicos.

El tema que trataré en este artículo será el de las diferentes herramientas que nos proporciona InterSystems IRIS para optimizar tanto las bases de datos como las consultas que ejecutamos así como los nuevos tipos de almacenamiento y de datos.

0
0 240
Artículo Ricardo Paiva · feb 25, 2021 4m read

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 124
Artículo Ricardo Paiva · oct 20, 2023 1m read

Preguntas frecuentes de InterSystems

ObjectScript permite pasar cualquier número de argumentos utilizando arrays. Se hace añadiendo ... después del nombre del argumento.

Os muestro un ejemplo. En la sentencia del ejemplo, la información del argumento se establece en una variable global (una variable almacenada en la base de datos) para que pueda ser fácilmente verificada después de que se ejecute el método.

Class TEST.ARGTEST1 Extends %RegisteredObject
{
ClassMethod NewMethod1(Ar
0
0 125
Artículo Alberto Fuentes · nov 27, 2024 1m read

La capacidad de reenviar mensajes fácilmente siempre ha sido una de las características más destacadas de nuestras capacidades de interoperabilidad.

Con la versión 2024.3 que se lanzará pronto (ya disponible como Developer Preview), ¡lo hemos hecho aún más sencillo!

0
0 93
Artículo Kurro Lopez · jun 26, 2019 2m read

Este breve artículo fue motivado por un problema que tuvo uno de mis clientes. Ellos utilizan Ensemble para integrar muchos sistemas, algunos solamente utilizan archivos sin formato.

De modo que ellos naturalmente seleccionaron el Adaptador para la salida de archivos para escribir en el archivo destino. Las cosas funcionaron bien durante años, hasta que hace poco, cuando el volumen de datos que se escribe en un archivo alcanzó el gran tamaño de decenas de megabytes.

0
0 195
Artículo Ricardo Paiva · jul 29, 2021 2m read

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.

0
0 182
Artículo Fabiano Sanches · abr 26, 2023 1m read

¡Hola Comunidad!

¿Sabéis que podéis estar en contacto con InterSystems y recibir alertas, avisos y otras noticias rápidamente? El proceso es muy sencillo:

Como podéis ver, lleva menos de un minuto estar al tanto de las novedades de InterSystems!

0
0 96
Artículo Ricardo Paiva · ene 16, 2024 2m read

Preguntas frecuentes de InterSystems

Si se establece una relación y hay una gran cantidad de n en una proporción de 1:n, se puede consumir una gran cantidad de memoria debido al procesamiento secuencial de la relación.

Después de hacer referencia a un objeto de muchos lados en un programa y cambiarlo internamente, simplemente liberar la variable que contiene el OREF (eliminarla, establecer otro valor, etc.) no liberará el objeto de muchos lados ni el objeto de relación. Ésta es la causa.

0
0 82
Artículo Jean Millette · mar 14, 2022 2m read

Una de nuestras apps utiliza una consulta de clase para un informe ZEN y funciona perfectamente en ese informe, produciendo los resultados esperados. Hemos migrado a InterSystems Reports y nos hemos dado cuenta de que, para un informe que utiliza la misma consulta de clase, aparecen en la parte de abajo más de 100 filas extra con los mismos valores en las columnas.

Descartamos InterSystems Reports como fuente del problema reproduciendo el problema de "filas extra" con una hoja de cálculo de Excel que llama a la misma consulta de clase utilizando un procedimiento almacenado.

¿Cuál era el problema? Cuando llamábamos al procedimiento almacenado desde el antiguo ZEN Report o desde la función SQL Query en el Portal de Administración, no veíamos estas filas adicionales.

0
0 203
Artículo Ricardo Paiva · ago 31, 2023 1m read

Preguntas frecuentes de InterSystems

Podéis ver el espacio libre disponible para la base de datos usando la opción "Free space view" (Ver espacio libre) en el Management Portal: System Operation > Databases.

Y se puede obtener mediante programación a través la consulta FreeSpace de la clase del sistema SYS.Database.

0
0 164
Artículo Ricardo Paiva · oct 22, 2024 4m read

Cuando utilizáis InterSystems IRIS como motor de interoperabilidad, todos sabemos y apreciamos lo fácil que es usar el Visor de Mensajes para revisar las trazas de los mensajes y ver exactamente qué está ocurriendo en vuestra producción. Sin embargo, cuando un sistema maneja millones de mensajes al día, puede que no sepáis por dónde empezar vuestra investigación.

A lo largo de mis años apoyando producciones en IRIS, a menudo me encuentro investigando cosas como...

  • ¿Qué tipo de rendimiento tiene este flujo de trabajo?  
  • ¿Dónde está el cuello de botella?  
  • ¿Cuáles son mis errores más
0
0 92
Artículo Ricardo Paiva · dic 15, 2025 1m read

Rúbrica de preguntas frecuentes de InterSystems

Para ejecutar SQL en la terminal, usad $system.SQL.Shell().

Consultad el siguiente ejemplo.

SAMPLES>do $System.SQL.Shell()
SQL Command Line Shell
---------------------------------------------------- The command prefix is currently set to: <>.
Enter q to quit, ? for help.
SAMPLES>>select * from Sample.Vendor
1. select * from Sample.
0
0 47
Artículo Alberto Fuentes · dic 14, 2022 1m read

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 157
Artículo Ricardo Paiva · dic 4, 2023 2m read

Preguntas frecuentes de InterSystems

Para crear un error definido por el usuario, hemos de preparar un XML que describa el código de error y el mensaje correspondiente que desea utilizarse como error definido por el usuario.

Hemos de establecer el código de error como un número entero negativo.

<?xml version="1.0" encoding="UTF-8" ?
0
0 112
Artículo Nancy Martínez · ene 20, 2020 5m read

¡Hola Comunidad!

HealthShare utiliza muchas transformaciones XSL. Estas transformaciones se utilizan para convertir los documentos médicos de la iniciativa “Integración de las Empresas Sanitarias (IHE)” en SDA (formatos interno de HealthShare), y convertirlos nuevamente en los formatos IHE, con el fin de crear resúmenes de los informes y para lidiar con los perfiles en el IHE (por ejemplo, consultar la información de los pacientes, proporcionar documentos y registrarlos). Los clientes pueden configurar las XSLT para personalizar los informes, o para utilizarlas de alguna otra manera.

Para la depuración y el desarrollo es muy conveniente que se pueda ejecutar un XSLT desde el Terminal.

0
0 242
Artículo Alberto Fuentes · oct 29, 2021 2m read

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!

0
0 126
Artículo Ricardo Paiva · ago 8, 2023 1m read

Preguntas frecuentes de InterSystems

Se pueden configurar páginas de error individuales para los siguientes mensajes de error/respuestas del Web Gateway:

  • Error del servidor
  • Servidor ocupado
  • Servidor no disponible
  • Tiempo límite de espera del servidor
  • Conexión cerrada

Los ajustes se realizan en la pantalla Administración del Portal de Gestión ([Administración] > [Configuración] > [Gestión del Web Gateway] > [Configuración] > [Parámetros predeterminados]).

0
0 183
Artículo Luis Angel Pérez Ramos · sep 2, 2024 1m read

[FAQ] Preguntas frecuentes de InterSystems

El siguiente código descarga https://www.intersystems.com/assets/intersystems-logo.png y guarda el archivo como c:\temp\test.png.

Es necesario definir una configuración SSL llamada SSLTEST antes de ejecutar este código.

 

ClassMethod download() As %Status
{
    Set sc = $$$OK
    Set httprequest=##class(%Net.HttpRequest).%New()
    set httprequest.Port = 443
    set httprequest.Https = 1
    set httprequest.SSLConfiguration = "SSLTEST"
    Set httprequest.Server="www.intersystems.com"
    Do httprequest.Get("/assets/intersystems-logo.
0
0 82
Artículo Alberto Fuentes · mar 16, 2021 1m read

Hola! Comparto hoy un ejemplo de Yuri Marx sobre el uso de ReadMIMEPart. Si necesitáis obtener un fichero de una API o formulario multipart echadle un ojo a este ejemplo:

Class dc.Test.TestService Extends Ens.BusinessService

{

 
Parameter ADAPTER = "EnsLib.HTTP.InboundAdapter";

 
Method OnProcessInput(pInput As %GlobalBinaryStream, pOutput As %RegisteredObject) As %Status

{

    Set file=##class(%Stream.FileBinary).%New()

    Set file.Filename="/tmp/automl11.png"

    Set reader = ##class(%Net.MIMEReader).%New()

    //Set message = ##class(%Net.MIMEPart).%New()

    Do reader.
0
0 111
Artículo Nancy Martínez · ago 2, 2022 1m read

¡Hola desarrolladores!

Solo quiero compartir una antigua pero muy relevante buena práctica en el cambio de namespaces que @Dmitry Maslennikov compartió conmigo.

Consideremos el método:

classmethod DoSomethingInSYS() as %Status

{

set sc=$$$OK

set ns=$namespace

zn "%SYS"

// try-catch in case there will be an error

try {

// do something, e.g. config change

}

catch {}

 zn ns    ; returning back to the namespace we came in the routine

return sc

}
0
0 189
Artículo Ricardo Paiva · oct 31, 2023 2m read

Preguntas frecuentes de InterSystems

Una herramienta (utilidad ^GLOBUFF) está disponible para verificar el uso de la memoria caché de la base de datos para cada global.

La utilidad se puede ejecutar directamente o mediante programación en el namespace %SYS .

Así se ejecutaría directamente:

USER>zn "%SYS"
 
%SYS>do ^GLOBUFF
 
Find which globals are using the most buffers.
 
Display the top <25>:     → Press Enter  // Default is to display top 25 globals
 
Total buffers: 102400     Buffers in use: 6926     PPG buffers: 77 (1.
0
0 125
Artículo Jose-Tomas Salvador · nov 27, 2024 3m read

InterSystems IRIS proporciona un entorno completo para el desarrollo de aplicaciones, diseñado para crear aplicaciones sofisticadas centradas en datos y análisis intensivo, conectando silos de datos y aplicaciones. Está preparado para trabajar con todas las tecnologías comunes de desarrollo de manera abierta y basada en estándares, y admite tanto la programación del lado del servidor como del lado del cliente.

InterSystems IRIS permite el desarrollo de aplicaciones del lado del servidor utilizando Python y ObjectScript de InterSystems.

0
0 71
Artículo Jose-Tomas Salvador · mayo 18, 2023 4m read

En este breve artículo me gustaría compartir un par de estrategias para ejecutar el código Objectscript en modo depuración.

Cómo entrar en el modo depuración

Hay dos formas de lanzar el depurador.

Lanzando un comando

Supongamos que tenemos que depurar el siguiente método:

Class Custom.Example Extends %RegisteredObject
{

/// check if a string can be a valid STP code ("STP" + 13 digits)
/// w ##class(Custom.Example).
0
0 109