#Code Snippet

0 Seguidores · 58 Publicaciones

Fragmento de código es un término de programación que se refiere a una pequeña región del código fuente, reutilizable código, máquina o texto. 

Artículo Kurro Lopez · ago 31, 2021 2m read

Como sabes, ObjectScript no tiene un comando o función de sistema FOREACH.
Pero tiene un amplio margen para la creatividad.

Pero la tarea es recorrer una matriz global o local y hacer algo PARA CADA elemento.

Hay dos posibles soluciones:

  • Crear una macro que genere las secuencias de código requeridas
  • Crear un comando extendido para realizar la acción.
0
0 157
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 172
Pregunta Yone Moreno · jun 30, 2021

Hola, buenos días.

Necesitaríamos orientación, guía o apoyo de ustedes para realizar lo siguiente:

Nuestro objetivo es: lograr que el fichero ".stream" NO se guarde, en la carpeta: /opt/ensemble/[Entorno]/stream

Tenemos un Servicio REST, un Proceso y una Operacion REST

Desde la Operacion al Proceso existe un Mensaje Response: Mensajes.Response.HistoriaClinica.GetInformeResponse

con un pdf definido como:

Property pdf As %GlobalCharacterStream;

Además, desde el Proceso al Servicio nuestro Mensaje Response es: Mensajes.Response.Informes.v02r00.obtenerCartillaVerdeDigitalResponse

1
0 246
Artículo Alberto Fuentes · feb 11, 2021 1m read

Hola a todos,

Compartimos hoy un truco que quizá le resulte útil a aquellos que tienen que trabajar con JavaScript embebido.

Si tienes que trabajar con CSP o Zen probablemente más de una vez has necesitado utilizar JavaScript embebido. Supón que tienes que programar algunos bucles, que utilizan los caracteres < o > en alguna expresión, por ejemplo:

&js< 
               var test = document.getElementById('seTest');
               for (var i = 0; i < test.options.length; i++) {

                              // hacer algo con test.options[i]...
               }             

>
0
0 147
Artículo Mathew Lambert · dic 18, 2020 2m read

Hace poco, tuve que generar una especificación en Swagger a partir de clases persistentes y en serie, así que ahora publico el código (no está completo, aún queda resolver las especificaciones de la aplicación, pero es un comienzo).

El código está disponible aquí.

Supongamos que tenemos estas clases:

0
0 323
Artículo Mathew Lambert · nov 25, 2020 17m read

Este artículo fue creado como efecto secundario de las preparaciones para un conjunto más extendido de artículos sobre la simple, pero útil, implementación de MapReduce en Caché. Estaba buscando una forma relativamente fácil de pasar argumentos a (potencialmente) múltiples objetivos mediante mecanismos de invocación remota. Y tras varios intentos, me di cuenta de que en el ObjectScript de Caché contamos con mecanismos muy potentes que podrían ser de utilidad para esto: dynamix dispatching para métodos y propiedades.

0
1 152
InterSystems Official Jose-Tomas Salvador · oct 21, 2020

¡Hola desarrolladores!

Una vez más os vengo a hablar de la extensión de ObjectScript para Visual Studio Code, y esta vez estamos muy contentos de poder anunciar ¡ la liberación de la versión 1.0 !

La comunidad se ha unido de un modo sin precedentes para entregar este producto con InterSystems, con la particularidad única de que una herramienta tan crítica para la productividad del desarrollador sería contruida en base a pruebas, feedback y código de la comunidad, desde el principio.

Novedades

0
0 172
Artículo Nancy Martínez · sep 25, 2020 4m read

Método: para descargar el archivo FTP desde Caché de InterSystems: Si tienes cualquier consulta, deja un mensaje por favor:

ClassMethod FTPDownload(myFTP = "", myUserName = "", myPassword = "", sFileLocation = "", dLocation = "", noOfdownloadFile = 1, sourceFileDel = 0)
{
 /*---------------------------------------------------------------------------------------------------------------------------
descargar el archivo según los requirimientos: FTP

Método: Resuable 

creado por: Sanjib Raj Pandey el 30/03/2018

0
0 246
Artículo Mathew Lambert · mayo 19, 2020 2m read

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 útil ejemplo para un Browser Client, pero sigue estando en el navegador.

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

0
0 147
Artículo Kurro Lopez · oct 8, 2019 4m read

Hola a todos:

En este artículo quiero compartir unas funciones con vosotros, que espero os sean útiles en algún momento.

Definiciones

DNI: Documento Nacional de Identidad. Se compone de diferentes series de números y letras, que acreditan la identidad y los datos personales del titular, así como la nacionalidad española. Ejemplo: 94494452X

NIE: Número de Identificación Extranjero: Es un código para extranjeros en España.

Si necesitas generar ejemplos, puedes generar ejemplos de DNI o NIE en el siguiente enlace:

https://generadordni.es/

Cálculo de letra de un número DNI

2
0 365
Artículo Dani Fibla · mar 24, 2020 4m read

¡Hola Comunidad!

En este artículo describiré e incluiré un ejemplo de cómo incrustar un archivo PDF externo en un segmento HL7, concretamente en el segmento OBX() de un mensaje ADT_A01 versión 2.3.1  .  Esto puede ser útil para  insertar imágenes u otros datos externos en un mensaje HL7. En este ejemplo, el nombre del archivo PDF a incrustar nos llega en el mensaje HL7 entrante en el campo OBX(1):ObservationValue.

Los requisitos básicos para este ejemplo son los siguientes:

1
0 593
Artículo Daniel Aguilar · feb 24, 2020 6m read

El tema del rendimiento de los bucles for/while en Caché ObjectScript surgió recientemente en una discusión, y me gustaría compartir algunas ideas/prácticas recomendadas con el resto de la comunidad. Aunque este es un tema básico por sí mismo, es útil conocer con cuales se obtiene un mayor rendimiento.

En resumen, las opciones más rápidas son los bucles que se iteran por $ListBuild, las listas que se forman con $ListNext o sobre un conjunto local mediante $Order.

Por ejemplo, consideraremos iterar un bucle por cada elemento de una cadena delimitada por comas.

1
0 373
Artículo Nancy Martínez · dic 18, 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):

0
0 254
Artículo Julio Francisco · nov 12, 2019 3m read

¡Hola Comunidad!
Solo por diversión, creé un script de bash que genera archivos csv a partir de un archivo exportado %GOGEN.
(%GOGEN es la herramienta para exportar globales para Cache 5.xx)
Al principio creí que sería muy simple con bash, pero...
- si se quiere tener un encabezado en el archivo csv
- si se exportan con GOGEN más globales juntos, no solo uno
- si se desea un archivo csv para cada global/índice que tiene el global...
El simple script de bash se pasa de 100 líneas de código. Si volviera a empezar con esto, usaría Python o Go, no bash.

Ejemplo:
Para un archivo EXPORTED.GLO

0
0 2181
Artículo Ricardo Paiva · nov 7, 2019 1m read

¡Hola!

Creo que lo más sencillo es (trabajando con un csv delimitado por ";"):


set file = ##class(%File).%New( "data.csv" )
    set sc = file.Open( "R" )
    if $$$ISERR(sc) quit    ; or do smth
    while 'file.AtEnd {
        set str=file.ReadLine()
        for i=1:1:$length( str, ";" ) {
            set id=$piece( str, ";" ,i )
            write !, id  // or do smth
        }
    }
    do file.Close()

Opciones posibles:

Distintas variantes de manejo de errores con código sc.

Introducir un bucle while dentro de un bloque try/catch.

¿Cuál es la tuya?

0
0 339
Artículo Estevan Martinez · oct 9, 2019 1m read

¡Hola Comunidad!

Tengo una pregunta para todos: en ObjectScript tenemos la variable cls para las clases y mac para el código, y ambas se compilan dentro de int en el código. ¿Hay alguna razón para utilizar mac en lugar de cls  para las clases no-persistentes?

En mi opinión, los beneficios de utilizar cls son:

1. Herencia y otras funciones de la Programación Orientada a Objetos (POO) 

2. Código auto-documentado 

En el caso de mac, una ventaja visible es que es más sencillo llamar al terminal:

do method^Utils(p1,p2)

frente a 

do ##class(Package.Utils).method(p1,p2)

¿Tú cuál prefieres utilizar y por qué?

0
0 174
Artículo Ricardo Paiva · sep 23, 2019 3m read

¡Hola a tod@s!

¿Alguna vez se han encontrado con una query de bajo rendimiento a la cual le falta algún dato para obtener el rendimiento deseado? ¿Han tenido la necesidad de llamar a una función desde una sentencia SQL? Me refiero a funciones definidas por el usuario, no a las funciones ya disponibles (como $LENGTH) o a las variables especiales (como $HOROLOG). Si es así, tenemos solución para esta necesidad - las 'funciones extrínsecas' o 'funciones definidas por el usuario'.

0
0 191
Artículo Nancy Martínez · jun 28, 2019 2m read

¡Hola Comunidad!

Las transformaciones DTL y las llamadas a los métodos GetValueAt/SetValueAt en los mensajes HL7 pueden truncar los campos que tengan más de 32K. Para evitar los truncamientos  en el caso en que los campos excedan los 32K, es posible utilizar los métodos GetFieldStreamRaw y StoreFieldStreamRaw. Un ejemplo frecuente en el que sucede el truncamiento, es el segmento OBX:5.  Se recomienda que  estos métodos se utilicen cuidadosamente, teniendo  en cuenta los detalles específicos que sean requeridos.

0
0 212
Artículo Jose-Tomas Salvador · mayo 30, 2019 2m read

¿Qué pasaría si pudieras serializar/deserializar objetos en cualquier formato: JSON, XML, CSV,...; siguiendo diferentes criterios, exportar/importar unas propiedades y no otras, transformar valores de una u otra forma antes de exportarlos/importarlos,... y todo ello sin tener que cambiar la definición de la clase? ¿No sería genial si pudieras hacer todo eso?

2
0 984