5 Seguidores · 382 Publicaciones

  

InterSystems Caché es un multi-modelo de DBMS y la aplicación server. See más detalles aquí.

Documentación.

Descargar Evaluación de Caché.

InterSystems Official David Reche · 12 feb, 2020

*** Actualización 11/2/20 2:15pm ***

*** La versión 2017.2.1 NO está afectada ***

InterSystems ha corregido un defecto que puede ocasionar que el CSP Gateway envíe una respuesta al cliente web incorrecto. Este defecto no está presente en el Web Gateway.

El CSP Gateway se distribuye como componente de una instalación en red y también en monopuesto. Ambas distribuciones están afectadas por el problema. El CSP Gateway instalado con el servidor web Apache para el Portal de Administración también es vulnerable. Las versiones afectadas del CSP Gateway están asociadas con Caché o Ensemble:

  • 2016.1.
0
0 153
Pregunta Mathew Lambert · 12 feb, 2020

Recientemente me encontré con un HS Caché que no arranca informando que la Collation 30 no está disponible, pero no he encontrado una manera fácil de saber qué colación es 30.

Ejecutando el siguiente comando devuelve las Collations de la locale actual, pero no de todas ellas

Set Rset = ##class(%ResultSet).%New("%Library.Collate:CollationList")

d Rset.Execute()

While (Rset.Next()) {zw Rset.Number_": "_Rset.Name}

Gracias

1
0 188
Artículo Estevan Martinez · 11 feb, 2020 7m read

Esta publicación es el resultado directo de trabajar con un cliente de InterSystems que acudió a mí con el siguiente problema:

SELECT COUNT(*) FROM MyCustomTable

Esto tarda 0.005 segundos, con 2300 filas en total.  Sin embargo:

SELECT * FROM MyCustomTable

Tardó algunos minutos. La razón de que esto sucediera es lo suficientemente sutil e interesante para mí como para escribir una publicación sobre ello. Esta publicación es extensa, pero si va hasta el final verá que escribí un resumen rápido.

0
0 198
Artículo Kurro Lopez · 10 feb, 2020 8m read

En este artículo me gustaría presentar el proyecto RESTForms: back-end genérico REST API para aplicaciones web modernas.

La idea detrás del proyecto es simple: después de escribir varias API REST, me di cuenta de que, en general, la API REST consta de dos partes:

  • Trabajar con clases persistentes.
  • Lógica de negocio personalizada

Y, si bien tendrá que escribir su propia lógica de negocio personalizada, RESTForms proporciona todo lo relacionado con el trabajo con clases persistentes desde el primer momento.
Casos de uso

  • Ya tiene un modelo de datos en Caché y desea exponer parte (o toda) de la información en forma de API REST
  • Está desarrollando una nueva aplicación Caché y desea proporcionar una API REST
0
0 453
Artículo Yone Moreno · 9 feb, 2020 7m read

Hola, en este artículo comparto cómo usar una API para crear notificaciones. En concreto trabajaremos con OneSignal:

https://documentation.onesignal.com/reference#create-notification

Primero, en el servicio recibimos un mensaje con la siguiente estructura:

{

    "idApp": "111111111",

"numExpediente": "111111111",

    "idioma": "ES",

    "tipoNotificacion": "citafuturaAP",

"notificacion": {

"titulo": "Cita Atención Primaria",

"subtitulo": "C.P.

0
0 156
Artículo Yone Moreno · 8 feb, 2020 8m read

Hola, en este artículo explicaremos cómo empezar a usar la Base de Datos en Ensemble.

El caso de uso es recibir la siguiente estructura JSON, que representa una notificación, y ser capaces de validarla.

{

    "idApp": "111111111",

"numExpediente": "111111111",

    "idioma": "ES",

    "tipoNotificacion": "citafuturaAP",

"notificacion": {

"titulo": "Cita Atención Primaria",

"subtitulo": "C.P. ISORA",

"mensaje": "Aquí el contenido del mensaje si aplicase",

"datosAdicionales": [

{

"clave": "centro",

"valor": "C.P.

0
0 431
Artículo Ricardo Paiva · 6 feb, 2020 15m read

Este artículo, y los dos siguientes de la serie, se conciben como una guía para los usuarios, los desarrolladores o para los administradores de sistemas que necesiten trabajar con la estructura de OAuth 2.0 (conocido también por simplicidad como OAUTH) en aplicaciones que estén basadas en los productos de InterSystems.

0
0 1660
InterSystems Official David Reche · 23 ene, 2020

Actualización 30/01/2020

*** Las versiones afectadas de los productos han cambiado ***

*** Las versiones afectadas son Caché y Ensemble desde 2016.2.0.  ***

*** Caché y Ensemble 2016.1.0 no está afectada por este defecto ***

InterSystems ha corregido un defecto que puede ocasionar degradación de la base de datos en circunstancias muy excepcionales. Puede incluir (y no limitarse a) problemas relacionados, como datos de la aplicación incorrectos o desaparecidos y sistemas bloqueados.

0
0 135
Artículo Kurro Lopez · 16 ene, 2020 11m read

En este artículo vamos a comparar las funciones $Increment y $Sequence.

En primer lugar, una nota para los lectores que nunca han oído hablar de $Increment $Increment es una función Caché ObjectScript que realiza una operación atómica para incrementar su argumento en 1 y devolver el valor resultante. Solo puede pasar un nodo variable global o local como parámetro a $Increment, no una expresión arbitraria. $Increment se usa mucho al asignar ID secuenciales. En tales casos, el parámetro de $Increment suele ser un nodo global.

0
0 195
Artículo Mario Sanchez Macias · 16 ene, 2020 9m read

¡Hola Comunidad! 

Voy a empezar a traducir los artículos de mi compañero Murray sobre rendimiento, pues son muy interesantes y merece la pena echarles un vistazo. Aprovecho para comentar que si tenéis preguntas y /o problemas de rendimiento os animéis a escribir y entre todos trataremos de ayudaros. Empecemos...

Tu aplicación está implementada y todo funciona bien. ¡Genial, enhorabuena! Pero, de repente, el teléfono empieza a sonar sin parar: son usuarios que se quejan de que la aplicación a veces se vuelve "lenta". Pero... ¿qué quiere decir eso? ¿A veces? ¿De qué herramientas dispones y a qué estadísticas deberías prestar atención para encontrar y resolver la lentitud? ¿La infraestructura de tu sistema está a la altura de la carga de usuarios? ¿Qué preguntas de diseño de infraestructura deberías haber hecho antes de haber pasado a producción? ¿Cómo puedes hacer la planificación de capacidad para nuevo hardware con confianza y sin gastar en más hardware del necesario? ¿Cómo hacer que el teléfono deje de sonar? ¿Cómo podrías haber evitado que sonara desde un principio?

0
0 293
Anuncio Jamie Kantor · 14 ene, 2020
Hola a tod@s.

El equipo certificación hemos recibido algunas preguntas de los desarrolladores de Caché que piensen tomar el exam InterSystems IRIS Core Solutions Developer. Pensé que ahora sería un buen momento para aclarar algunas dudas que la comunidad pueda tener.

Incluso si Ud. aún no ha trabajado con InterSystems IRIS, el examen puede ser apto para usted si ya tiene experiencia en Caché. Si miramos los Exam Details  veremos que solo hay un tema específico de IRIS.

0
1 246
Artículo Robert Cemper · 21 dic, 2019 2m read

Para aquellos expertos que no pueden parar después del concurso "Advent of Code" (AoC2019), he publicado un código bastante antiguo en estilo tradicional para mejorarlo.

Fue escrito en base a una prueba previa en .XLS. Está lejos de ser perfecto. Es más bien un desafío para mejora en todas las direcciones (código, interfaz, ...). Así que cualquiera está invitado a mejorarlo.

0
0 240
Artículo Nancy Martínez · 18 dic, 2019 3m read

Pregunta:

¿Cómo obtengo un listado de los archivos que se encuentran dentro de cierta carpeta/directorio, usando un comodín/filtro?

Por ejemplo, todos los archivos '*.txt' en 'C:\Temp.

Respuesta:

En CACHE:

Puedes usar la consulta de clase FileSet de %Library.File.

Aquí puedes ver el ejemplo de un código donde se usa (también se adjunta):

run(pDir,pFileSpec)
      Set tRS=##class(%ResultSet).%New("%Library.File:FileSet")

Y este es un ejemplo de ejecución:

USER>do run^testFileSet("C:\Temp","*.txt")
Name                          Date Modified          Type
--------------------------------------------------------------------------
C:\Temp\hl7.txt               2014-07-30 12:09:18    F
C:\Temp\hsaa_msgs.txt         2015-06-25 13:02:16    F
C:\Temp\JSONRESTProxy_10.txt  2014-05-04 14:29:04    F
C:\Temp\JSONRESTProxy_8.txt   2014-05-04 14:28:09    F
C:\Temp\myTestFile2.txt       2014-05-05 09:19:31    F
C:\Temp\newStream.txt         2015-07-09 09:41:59    F
C:\Temp\oldStream.txt         2015-07-09 09:41:27    F
C:\Temp\tcpTrace.txt          2014-05-29 12:13:11    F
C:\Temp\tempadts.txt          2015-06-22 08:35:03    F
C:\Temp\WSLic.txt             2014-06-08 10:34:13    F
0
0 284
Artículo Ricardo Paiva · 16 dic, 2019 7m read

¡Hola a tod@s!

Al usar Studio, ODBC o una conexión de terminal a Caché o Ensemble, quizás se haya preguntado cómo podría implementar una conexión segura. Una opción es agregar TLS (también conocido como SSL) a su conexión. Las aplicaciones cliente de Caché (TELNET, ODBC y Studio) todas entienden cómo agregar TLS a la conexión. Tan solo es necesario configurarlas para hacerlo.

Configurar esos clientes es más fácil en la versión 2015.1 y posteriores. A continuación discutiré este nuevo método. Si ya usa el viejo método, este seguirá funcionando, pero le recomiendo considerar pasarse al nuevo.

0
0 527
Artículo Yone Moreno · 6 dic, 2019 7m read


¡Hola a tod@s!

comparto los pasos necesarios para crear y probar una integración REST.

Lo primero que necesitamos es acceder al contrato que nos aporta el equipo que se encarga de desarrollar el sistema externo. En concreto de esta forma sabremos varias cosas:

0
0 266
Artículo Ricardo Paiva · 6 dic, 2019 12m read

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

0
0 1560
Artículo Kurro Lopez · 5 dic, 2019 8m read

¡Hola a tod@s!

En las partes anteriores (1, 2) de este artículo, hablamos de Globals como árboles. En esta tercera parte, los veremos como matrices dispersas.

Una matriz dispersa es un tipo de matriz donde la mayoría de los valores asumen un valor idéntico.

En la práctica, a menudo veréis matrices dispersas tan grandes que no tiene sentido ocupar memoria con elementos idénticos. Por lo tanto, tiene sentido organizar matrices dispersas de tal manera que no se desperdicie memoria al almacenar valores duplicados.

En algunos lenguajes de programación, las matrices dispersas son parte del lenguaje (por ejemplo, en J, MATLAB). En otros lenguajes, hay bibliotecas especiales que permiten usarlas. Para C ++, esos serían Eigen y similares.

Los Globals son buenos candidatos para implementar matrices dispersas por las siguientes razones:

0
0 692
Pregunta Luis Haro · 29 nov, 2019

Buenas tardes a todos!

Actualmente me encuentro migrando a la versión 2018.2 en una máquina nueva,un entorno que  está en producción con la versión de Ensemble de 2012.1.2

Tras realizar un recovery de un backup realizado del otro entorno, y configurar el entorno para que esté igual que el antiguo, me he dispuesto a realizar las primeras pruebas, en un circuito que lee de SQL, y posteriormente tras procesar los mensajes, envía una peticion SQL, pero en el primer paso, que es al pasar por un enrutador, me he encontrado con el siguiente problema:

3
0 206
Artículo Estevan Martinez · 27 nov, 2019 10m read

++ Update: August 1, 2018

El uso de la dirección IP virtual (VIP) de InterSystems incorporada en Mirroring de la base de datos de Caché tiene ciertas limitaciones. En particular, solo puede utilizarse cuando los miembros Mirror se encuentran en la misma subred. Cuando se utilizan varios centros de datos, las subredes normalmente no se “extienden” más allá del centro de datos físico debido a la complejidad añadida de la red (puede obtener más información aquí). Por las mismas razones, la IP virtual con frecuencia no puede utilizarse cuando la base de datos se aloja en la nube.

0
0 573
Artículo Kurro Lopez · 25 nov, 2019 11m read

Principiantes- ver Parte 1.

3. Variantes de estructuras cuando se usan globals

Una estructura, como un árbol ordenado, tiene varios casos especiales. Echemos un vistazo a aquellos que tienen un valor práctico para trabajar con globals.

3.1 Caso especial 1. Un nodo sin ramas

Los globals pueden usarse no solo como una matriz, sino como variables regulares. Por ejemplo, para crear un contador:
 

1
1 364
Anuncio Jose-Tomas Salvador · 27 nov, 2019

InterSystems ha corregido un defecto que puede ocasionar que el servicio de shadowing falle con una violación de acceso. En algunos casos, el defecto puede causar corrupción de memoria, produciendo un comportamiento impredecible. 

Nota: El defecto no afecta al mirroring.

El defecto afecta a:

  • InterSystems IRIS 2019.1.1 y 2019.3
  • IRIS for Health 2019.1.1 y 2019.3
  • HealthShare Health Connect 2019.1.1
  • HealthShare Health Connect (HSAP) 15.032 on 2018.1.3
  • Caché y Ensemble 2018.1.
0
0 134
Artículo Nancy Martínez · 21 nov, 2019 5m read

¡Hola Comunidad!

Como explicó Rob en un artículo anterior, la interfaz Node.js de Caché permite crear Servicios Web y Servicios REST utilizando el  framework modular framework EWD 3.

Por defecto, estos servicios devuelven una respuesta JSON con Content-Type: application / json y el cuerpo de respuesta contiene el JSON que devuelve utilizando el método finished(), por lo que:

finished({ test: 'test response' });

devuelve

{ "test": "test response" }

con un content-type HTTP de application/json

0
0 1671
Artículo Nancy Martínez · 14 nov, 2019 4m read

¡Hola a tod@s!

Buscando en la Comunidad propuestas para trabajar con datos organizados en hojas EXCEL, de forma sencilla, para ofrecer a los usuarios finales, encontré este buen artículo sobre el tema: Tips & Tricks - SQL to Excel, que introduce un concepto importante: "EXCEL puede interpretar tablas HTML y mostrarlas de la forma habitual"
¡Genial!

0
0 218
Artículo Ricardo Paiva · 14 nov, 2019 15m read
¡Hola Comunidad!

Suponga que desarrolló su propia aplicación con la tecnología de InterSystems y ahora quiere realizar varias implementaciones en sus distintos clientes. Durante el proceso de desarrollo usted escribió una guía de instalación detallada para aplicarla, ya que no solo necesita importar clases, también configurar el entorno de acuerdo a sus necesidades. 

Para atender esta tarea específica, InterSystems creó una herramienta especial llamada %Installer. Siga con la lectura para saber cómo utilizarla.

0
0 419
Anuncio David Reche · 14 nov, 2019

¡Hola a tod@s!

La versión de mantenimiento 2018.1.3 de Caché y Ensemble ya está disponible.   

El kit para la instalación del programa se puede descargar en la página de descargas del Centro de Soporte Internacional (WRC).

Es una versión de mantenimiento, con muchas actualizaciones en una gran variedad de áreas.

Para más información sobre las correcciones incluidas en esta versión, consulta por favor las notas de la versión.

Esta versión también incluye soporte para Red Hat Enterprise Linux 8, que se añade a las plataformas ya soportadas, detalladas en el documento de plataformas soportadas 2018.1.

0
0 154