#Caché

5 Seguidores · 377 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é.

Artículo Robert Cemper · feb 3, 2025 3m read

Variables de host son una característica de programación bastante común en muchas implementaciones de SQL.
Una pregunta reciente en DC me hizo darme cuenta de que en IRIS, Caché, Ensemble,... 
las variables del host simplemente existen dentro del embedded SQL.

>  You can supply host variables for Embedded SQL queries only. <
Se incluyen ejemplos relacionados en la documentación disponible.

A continuación se incluye una descripción de una solución alternativa si no utiliza o no puede utilizar embedded SQL.

1
0 60
Artículo Jose-Tomas Salvador · ene 16, 2025 1m read

La utilidad devuelve los valores deseados del texto y muestra múltiples valores si existen, basándose en una cadena de inicio y una de fin.

Class Test.Utility.FunctionSet Extends %RegisteredObject{/// W !,##class(Test.Utility.FunctionSet).ExtractValues("Some random text VALUE=12345; some other VALUE=2345; more text VALUE=345678;","VALUE=",";")ClassMethod ExtractValues(text As %String, startStr As %String, endStr As %String) As %String{//Initialize VariablesSet values = ""Set start = 1While start '= 0 
   {Set start = $Find(text, startStr, start)
0
0 70
Artículo Jose-Tomas Salvador · ene 7, 2025 4m read

Recientemente me encontré con un problema muy antiguo relacionado con el mantenimiento de código:

Tenéis acceso a vuestro servidor IRIS solo a través de ODBC/JDBC:

  • Sin acceso a VSCode
  • Sin acceso a Studio
  • Sin acceso a (Web-)Terminal

¡Pero necesitáis revisar Clases, Rutinas o Globals!

De cualquier forma, SQL es vuestro aliado.

  • Primero, necesitáis una tabla sencilla como almacén temporal de texto.
CREATEGLOBALTEMPORARYTABLE  arcc.txt (line VARCHAR(32000))
  • A continuación, exportad vuestro código a un archivo local e importadlo a vuestra tabla.
CREATEPROCEDURE arcc.show (I
0
0 86
Pregunta Bernabé Martín · dic 21, 2024

Saludos Comunidad,

Soy consciente que mis preguntas son irrelevantes en una Comunidad de especialistas en últimas tecnologías.

Estoy jubilado hace tiempo, ya tengo unos años a la espalda, pero sigo utilizando mis antiguos conocimientos para mantener la mente funcionando y hacer mis personales “programillas”, en argot antiguo, y mantener mis bases de datos antiguas.

Sé que inevitablemente he de pasar a IRIS, ya que mi versión 5.2 de Cache caduca en 2030, por ello me he puesto manos a la obra, NO tengo ganas de pasar mis antiguos programas a la nueva tecnología. He conseguido que funcionen en

1
0 123
Pregunta Bernabé Martín · dic 19, 2024

Siguiendo con el hilo de Versión Evolución Cache, por si fuera interesante para alguien.

Instalada última versión de IRIS, tenido en cuenta el renombrando de CACHE.DAT a IRIS.DAT, no funciona. Si que monta correctamente las diferentes bases de datos, supongo que es debido a que es una licencia de la “Comunidad”

Al migrar los datos se ha producido una corrupción en los acentos y las eñes, cambiado el idioma local (enuw -> espw), si entras a la base de datos por el "terminal" del antiguo cubo todo parece normal.

Si utilizas una aplicación externa tipo "wrq reflection" (mi caso), no son posibl

0
0 68
Pregunta Bernabé Martín · dic 15, 2024

Como se puede observar mi versión de Cache ya no esta en la lista de productos.

Hace ya bastante tiempo hice algunas preguntas de una versión aun mas vieja, en esa versión tenia 5 bases de datos, en su momento solo instalé la principal para mí en la versión 2010, estoy intentando migrar las otras cuatro y me encuentro con el siguiente problema:

         - Al montar la base de datos solo la monta "lectura", sin opción de cambiar ni por el "portal de gestión de sistema" ni con ^DATABASE

Ya me identifique en su momento como un dinosaurio para las épocas que corren, mi conclusión en este punto

2
0 92
Artículo Ricardo Paiva · dic 9, 2024 1m read

Rúbrica de preguntas frecuentes de InterSystems

Si queréis generar un error personalizado arbitrario en un bloque TRY, podéis pasar una excepción con un throw de la siguiente manera. En el siguiente ejemplo, se genera un error personalizado si el valor de Stcount es menor que 1.

Class User.Test
{

ClassMethod ExceptionTest()
 {
    try
    {
      // : some codesif (Stcount<1) {
          throw##class(%Exception.General).%New("User-defined error", "5001", "location", "Data at location error")
          // User-created errors are 5001 and above
      }
    }
    catch
0
0 109
Artículo Ricardo Paiva · nov 29, 2024 1m read

Rúbrica de preguntas frecuentes de InterSystems

Se puede obtener con una consulta de lista de la clase %SYS.Namespace.  

1. Creáis una rutina como esta:

getnsp
   set statement=##class(%SQL.Statement).%New()
   set status=statement.%PrepareClassQuery("%SYS.Namespace","List")
   set resultset=statement.%Execute()
   while resultset.%Next() {
       write resultset.%Get("Nsp"),!
   }
   quit

2. Ejecutadla en vuestro terminal.

USER>do ^getnsp
%SYS
DOCBOOK
SAMPLES
USER

El método para ejecutar consultas de clase presentado en este artículo se puede aplicar en una variedad de casos.

Podéis

0
0 76
Artículo Ricardo Paiva · nov 22, 2024 1m read

Rúbrica de Preguntas Frecuentes de InterSystems

La replicación o mirroring solo sincroniza archivos de base de datos.

Para sincronizar otros archivos necesarios para vuestra aplicación (archivos CSP, imágenes, documentos, etc.) entre los dos servidores que forman el conjunto de réplica, seguid uno de los siguientes enfoques:

  1. Colocad esos archivos en un disco compartido introduciendo un NAS u otro dispositivo similar.
  2. O utilizad software de sincronización de archivos para sincronizar los archivos entre los dos servidores.
0
0 55
Artículo Luis Angel Pérez Ramos · nov 19, 2024 1m read

Preguntas frecuentes de InterSystems

Por defecto, el orden de las columnas en una tabla lo determina automáticamente el sistema. Para cambiar el orden, estableced explícitamente el orden de cada propiedad utilizando la palabra clave SqlColumnNumber al definir la clase.

Ejemplo:

Property Name As %String [SqlColumnNumber = 2];

Por favor, consultad la documentación a continuación.

SqlColumnNumber

Si queréis cambiar el nombre de la tabla SQL, especificad SqlTableName. Si queréis cambiar el nombre de la columna (nombre del campo), especificad SqlFieldName.  

Ambos se aplican únicamente a cla

0
0 65
Artículo Ricardo Paiva · nov 19, 2024 2m read

Preguntas frecuentes de InterSystems

Si el archivo de journal es demasiado grande para buscarlo o filtrarlo mediante el Portal de administración, podemos consultarlo mediante los dos métodos siguientes.

① Usando la utilidad ^JRNDUMP
② Usandolo en código

================================================== ========== 

① Usando la utilidad ^JRNDUMP. Por ejemplo, si deseamos seleccionar todos los registros del archivo de journal que incluyen la referencia global ^ABC, hagamos lo siguiente:

*Ejecuta todos los comandos a continuación en el espacio de nombres %SYS.

DO SELECT^JRNDUMP("C:\MyCache\m




0
0 67
Anuncio John Murray · oct 17, 2024

Hemos realizado un cambio en Server Manager con el objetivo de mejorar su manejo cuando una contraseña almacenada ya no es válida, por ejemplo, porque ha sido cambiada.

Planeamos incluir esto en la próxima versión publicada (aún sin fecha de lanzamiento), pero si queréis acceso anticipado, podéis descargar el VSIX de la versión v3.6.3-beta.3 e instalarlo, por ejemplo, arrastrándolo desde vuestro explorador de archivos a la vista de Extensiones en VS Code.

Si encontráis problemas con esta versión beta, podéis volver fácilmente a la versión más reciente publicada (3.6.2) utilizando la opción "

0
0 66
Artículo Jose-Tomas Salvador · oct 10, 2024 3m read

Rúbrica de preguntas frecuentes de InterSystems

Podéis comprobar el espacio libre en disco en cualquier momento usando la clase de utilidad del sistema: SYS.Database y la consulta: FreeSpace.

Aquí tenéis cómo probarlo en el terminal de IRIS (id al espacio de nombres %SYS y luego ejecutadlo):

zn"%SYS"set stmt=##class(%SQL.Statement).%New()
set st=stmt.%PrepareClassQuery("SYS.Database","FreeSpace")
set rset=stmt.%Execute()
do rset.%Display()

El resultado de salida es el siguiente:

*En el ejemplo de ejecución del comando, todas las bases de datos están ubicadas en el mismo disco, por l

0
0 82
Artículo Ricardo Paiva · sep 10, 2024 3m read

Rúbrica de preguntas frecuentes de InterSystems

Los globales temporales almacenados en las bases de datos IRISTEMP/CACHETEMP se utilizan cuando un proceso no necesita almacenar datos de manera indefinida, pero requiere el potente rendimiento de los globales. Las bases de datos IRISTEMP/CACHETEMP no se registran en el diario, por lo que el uso de globales temporales no genera archivos de diario.

El sistema utiliza las bases de datos IRISTEMP/CACHETEMP para almacenamiento temporal y están disponibles para vosotros para el mismo fin.

Para obtener más información sobre los globales temporales






0
0 107
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 = $$$OKSet httprequest=##class(%Net.HttpRequest).%New()
    set httprequest.Port = 443set httprequest.Https = 1set httprequest.SSLConfiguration = "SSLTEST"Set httprequest.Server="www.intersystems.com"Do httprequest.Get("/assets/intersystems-logo.png")
0
0 81
Artículo Alberto Fuentes · ago 26, 2024 1m read

Una buena característica que se ha añadido recientemente a la versión 2.12.6 de la extensión ObjectScript de VS Code está controlada por esta nueva configuración:

objectscript.serverSourceControl.respectEditableStatus

Cuando se establece true en JSON, o se marca en el Settings Editor (o Editor de Configuración), un documento del lado del servidor será de sólo lectura si la clase de control de código fuente para el namespace informa que no es editable.

Esta opción puede ser de particular interés para los usuarios del producto de control de código fuente Deltanji, en particular cuando se util

0
0 62
Artículo Alberto Fuentes · ago 16, 2024 5m read

image

Hola Comunidad,

En este artículo, voy a presentar mi aplicación iris-RAG-Gen .

Iris-RAG-Gen es una aplicación generativa AI Retrieval-Augmented Generation (RAG) que aprovecha la funcionalidad de IRIS Vector Search para personalizar ChatGPT con la ayuda del framework web Streamlit, LangChain, y OpenAI. La aplicación utiliza IRIS como almacén de vectores.

image

Características de la aplicación

  • Ingesta de documentos (PDF o TXT) en IRIS
  • Chatear con el documento ingerido seleccionado
  • Borrar Documentos ingerido
  • OpenAI ChatGPT
0
0 110
Artículo Ricardo Paiva · ago 12, 2024 4m read

Una solución de control de versiones eficaz permite a las organizaciones gestionar bases de código complejas, facilitar una colaboración sin fisuras dentro de los equipos de desarrollo y agilizar los procesos de despliegue.

Sonic Healthcare, un proveedor líder de servicios médicos corporativos, de práctica general, radiología y patología, ha mejorado significativamente la visibilidad y el control sobre su entorno complejo al implementar el control de versiones de Deltanji. La estrecha integración que Deltanji proporciona con InterSystems IRIS e IRIS for Health ha sido fundamental para lograr



0
0 90
Artículo Luis Angel Pérez Ramos · ago 8, 2024 2m read

Me encontré con esta peculiaridad al investigar un problema no relacionado que afecta cómo se manejan los proyectos de Studio en VS Code.

Cuando añadís el nivel superior de la webapp a un %Studio.Project, esto inserta un %Studio.ProjectItem con un sufijo .DIR. Por ejemplo, si Studio o VS Code están conectados al espacio de nombres USER y añadís la webapp /csp/user a un proyecto, el nombre del nuevo ProjectItem es "csp/user.DIR".

Cuando exportáis este proyecto a XML desde el menú contextual del proyecto en Studio, o llamando al método de clase %Studio.Project.Export, el archivo contiene la de

0
0 71
InterSystems Official Mario Sanchez Macias · jul 15, 2024

A partir del 15 de octubre de 2024, el soporte para Caché & Ensemble en MacOS quedará obsoleto.

Caché y Ensemble 2018.1.9 seguirán recibiendo soporte, pero no habrá más versiones de mantenimiento para MacOS. Esto significa que Caché y Ensemble 2018.1.9 serán la última versión de estos productos en MacOS. 

Como recordatorio, las versiones de mantenimiento para Caché y Ensemble en las demás plataformas soportadas finalizarán el 31 de marzo de 2027.  Encontraréis más detalles al respecto en el anuncio del año pasado.

0
0 0
Artículo Maria Gladkov · jun 12, 2024 4m read

 

¡Hola a todos! Aquí me gustaría compartir cómo utilizamos la búsqueda vectorial y la inteligencia artificial generativa (GenAI) con la tecnología de InterSystems. Como ejemplo, describiré el proyecto BG-AppealAI, que nuestra empresa presentó al concurso de Búsqueda Vectorial, GenAI y ML de InterSystems. La aplicación BG-AppealAI puede redactar una apelación si se sube un contrato de seguro y la carta de la compañía de seguros con la negativa a pagar los gastos médicos. Por supuesto, somos conscientes de que, en este momento, la IA no ha alcanzado un nivel tal como para crear documentos leg

0
0 174
InterSystems Official Mario Sanchez Macias · jun 4, 2024

A partir del lanzamiento de la plataforma de datos InterSystems IRIS® 2022.3, InterSystems corrigió el mecanismo de aplicación de licencias para incluir solicitudes REST y SOAP. Debido a este cambio, los entornos con licencias no basadas en core que utilizan REST o SOAP pueden experimentar una mayor utilización de licencias después de la actualización. Para determinar si este aviso se aplica a vuestra licencia de InterSystems seguid las instrucciones de las preguntas frecuentes enlazadas a continuación.

Este cuadro resume la aplicación de la normativa

Producto

¿Se incluyen las s

0
0 153
Artículo Daniel Aguilar · mayo 19, 2024 4m read

   

📜 Santa Tecla, versículo 8: "Extiende tu ratón sobre la pantalla, y el mar de datos abrirá un sendero delante de ti!!"

Hola comunidad, lo primero perdón si a alguien le ha ofendido la blasfemia 😔 

¿Alguna vez has pensado que sería interesante tener separado el código fuente de los datos de la base de datos?. Quizás te gustaría poder hacer copias de seguridad de tu código sin tener que copiar gigas de información de los datos de tus clientes.

A continuación os explico los pasos para separar en 2 bases de datos distintas vuestro mar formado por el código fuente y los datos

0
1 228
Artículo Ricardo Paiva · mayo 2, 2024 2m read

Preguntas frecuentes de InterSystems

Este error ocurre cuando una instancia de la clase ya está abierta en el momento de la compilación.

Hay dos formas de abordar este problema:

  1. Terminar el proceso o aplicación que tiene la instancia abierta
  2. Opciones de compilación en el menú de compilación de Studio: marque el indicador de compilación "Compilar clases en uso" y compile.

Si desea determinar qué proceso está utilizando la clase, pruebe la rutina de ejemplo siguiente.

/// Test.mac
search(classname) public {
    Set pid=""
    Set pid=$order(^$Job(pid))
    While pid'="" {
     
0
0 112
Artículo Ricardo Paiva · abr 26, 2024 4m read

Si tenéis tablas de sistema que implementan la funcionalidad "VERSIONPROPERTY", podéis encontraros con el error 5800. Este artículo explica cómo se produce este error y proporciona soluciones para resolver el problema.

Cuando se implementa la comprobación de versiones, la propiedad especificada por VERSIONPROPERTY se incrementa automáticamente cada vez que se actualiza una instancia de la clase (ya sea mediante objetos o SQL).

Por ejemplo:

ClassMethod RunVersionChange() As %Status
{
    Set sample = ##class(dado.TblSample).%OpenId("42")
    Write !,"VERSIONPROPERTY value: "_ sample.VersionChec
0
0 130
Pregunta Kurro Lopez · abr 10, 2024

Hola comunidad,

Estoy llamando a una API que está devolviendo el contenido de un fichero como Content del response. Estoy capturando el binariu pero necesito convertir este Stream a uan cadena Base64.

Estoy intentando convertir un %Stream.GlobalBinary a Base64 usando el siguiente código, pero no funciona.

do stream1.Rewind()
set response = ""while 'stream1.AtEnd {
    set temp=stream.Read(4000)
    set temp=$system.Encryption.Base64Encode(temp)
    set response = response_temp
}

El contenido no se convierte correctamente a Base64

También, he intentado convertirlo como un JSon din

1
0 171
Artículo Daniel Aguilar · mar 22, 2024 4m read

Hola Comunidad!

¿Normalmente trabajas con tareas automáticas? Entonces permíteme que comparta contigo un par de consejos ;-)

Consejo 1: Como conocer cuando una tarea terminará (aproximadamente):

Imagina que tienes una tarea ejecutándose y te encuentras en la encrucijada de decidir si paras la tarea porque está afectando a otro proceso o la dejas terminar porque puede que le queden solo 5 o 10 minutos.

Aqui tienes una manera para comprobar cuando terminará tu tarea (aproximadamente).

Para este ejemplo he creado una tarea que ejecuta este código:

Ahora imagina

1
1 174
InterSystems Official Jose-Tomas Salvador · feb 20, 2024

InterSystems anuncia la Versión de Mantenimiento (Maintenance Release, MR) 2018.1.9 de CachéEnsemble and Health Connect HSAP. Es una versión de mantenimiento con muchas actualizaciones en una gran variedad de áreas.

Caché y Ensemble

Los kits completos de instalación de producto se pueden descargar de la página de distribución de software del Centro de Soporte Internacional (WRC):

Para más información sobre las correcciones en esta versión, consultad las Notas de Cambios de la Versión. La documentación de Caché y Ensemble incluye dichas Notas, así como el documento de

0
0 117