#ObjectScript

2 Seguidores · 233 Publicaciones

InterSystems ObjectScript es un lenguaje de programación para operar con datos mediante cualquier modelo de datos que se encuentre en InterSystems Data Platform (Objetos, relacionales, valores clave, documentos, globales) y desarrollar lógica empresarial para aplicaciones del lado del servidor en InterSystems Data Platform.

Consultar la documentación.

Artículo Maria Gladkov · mar 27, 2023 3m read

¡Hola a todos!  

En este artículo, me gustaría revisar las extensiones de VS Code que uso para trabajar con InterSystems y que hacen mi trabajo mucho más cómodo. Estoy segura de que este artículo será útil para aquellos que acaban de empezar su viaje aprendiendo las tecnologías de InterSystems. Y también espero que pueda resultar útil para los desarrolladores más experimentados, con muchos años de experiencia, y les descubra nuevas posibilidades cuando usen VS Code para desarrollo.

Os recomiendo a todos los que trabajáis con InterSystems que instaléis estas extensiones y en este artículo os mostraré cómo usar algunas de ellas.

0
0 332
InterSystems Official Luis Angel Pérez Ramos · mar 27, 2023 3m read

Me gustaría adelantaros una mejora sobre cómo generamos e invocamos el código de los métodos en IRIS 2023.1.

Una clase en IRIS se compone de dos componentes de runtime principales:

  1. Descriptor de Clase (Class Descriptor) - Una lista de métodos muy optimizada, propiedades, parámetros de clase que configura y parametriza la clase, junto con atributos asociados con cada uno de estos, por ejemplo configuración pública/privada.
  2. Código de ObjectScript (ObjectScript code) - Un conjunto de rutinas que contienen el código de ObjectScript para ser ejecutado cuando se invoca un método.
1
0 154
InterSystems Official Jose-Tomas Salvador · feb 22, 2023

Comenzando este año 2023, hemos programado una serie de cursos oficiales sobre InterSystems IRIS que iremos realizando a lo largo del año. Los cursos se impartirán on-line y ya están abiertos para que os podáis registrar si estáis interesados (hasta un máximo de 10 personas por curso, quorum mínimo 5 asistentes). Toda la información está disponible en nuestro sitio web: Formación en el aula virtual | InterSystems

0
0 134
Anuncio Alberto Fuentes · feb 16, 2023

Para todos aquellos que aún utilizáis el IDE Studio para programar con ObjectScript y vais a pasar por el proceso de migración a VS Code, ¿sabíais que hay una sección en la documentación de VS Code justo para vosotros? Echad un vistazo al apartado Migración desde Studio. Incluye los siguientes aspectos:

  • Edición del lado del servidor y control de código fuente
  • Proyectos de Studio
  • Importación de definiciones de servidor desde el Registro de Windows
  • Carga de fragmentos de código de Studio y colores de sintaxis

Y ahora hay una sección llamada Atajos de teclado, que muestra los atajos equivalentes en VS Code a los que estéis acostumbrados, para que las manos no tengan que dejar el teclado. En muchos casos el atajo es el mismo, por lo que no será necesario re-aprender. Y recordad, todos los atajos en VS Code son configurables por el usuario, por lo que tendréis un nivel de control que Studio nunca ofreció.

0
0 134
Pregunta Yone Moreno · feb 2, 2023

Buenos días,

Por favor necesitamos su asistencia.

Podrían indicarnos los pasos a seguir para entender el porqué en un entorno X cuando apuntamos por POSTMAN a su URL del Servicio Rest:

http://XXXX:XXXX/aplicaciones/scs/cconcertadostest/almacenarImagen
 

El Log del Servicio nos indic


Alert 2023-02-02 13:54:56.854 $System.Status.GetErrorText(sc): ERROR <EnsDICOM>DataElementNotFound: The DataElement at property reference 'TransferSyntaxUID' does not exist  167955423
Alert 2023-02-02 13:54:56.854 sc: 0 è<EnsDICOM>DataElementNotFoundTransferSyntaxUID«ESBCHUIMI›-e^zGetValueAt+15^EnsLib.
1
0 118
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
Anuncio Esther Sanchez · nov 28, 2022

¡Hola desarrolladores!

Si os gustan los famosos concursos de Adviento "Advent of Code", con sus retos de programación diarios hasta el día de Navidad, os encantará nuestra versión.

➡️ Participad en el Advent of Code 2022 de InterSystems y podréis ganar alguno de los premios en metálico que hay para los ganadores. ¡Animaos a poner a prueba vuestros conocimientos de ObjectScript! 😄


1
0 162
Artículo Nancy Martínez · nov 14, 2022 2m read

¡Amigos!

Hace poco encontré en la Comunidad varios comandos de ObjectScript de una única línea y creo que estaría genial no perderlos y recopilar más.

Por eso he decidido recoger unos cuantos ejemplos, ponerlos en este proyecto en Open Exchange, y compartirlos con vosotros!

Así es como podéis usarlos.

1. Crear la configuración SSL del cliente

set $namespace="%SYS", name="DefaultSSL" do:'##class(Security.SSLConfigs).Exists(name) ##class(Security.SSLConfigs).Create(name)

Útil si necesitáis leer contenido de una URL.

No os olvidéis volver al namespace anterior.

0
0 156
Artículo Luis Angel Pérez Ramos · oct 28, 2022 8m read

Acceso a Producción Programática

Para editar producciones programáticamente (interfaces) puedes usar una combinación de APIs de Interoperabilidad y consultas SQL.

Namespace actual

Es importante conocer el namespace y la producción en la que estás trabajando.

// Object script 
// El namespace activo se guarda en esta variable
$$$NAMESPACE 
// Imprimir el namespace
Write $$$NAMESPACE
# Python
import iris
# Este método retorna el namespace activo
iris.utils._OriginalNamespace()
# Imprimir el namespace
print(iris.utils.
0
1 184
Pregunta Jose-Tomas Salvador · oct 21, 2022

Buenos días, tardes, noches,... wink

Una pequeña reflexión/pregunta para hoy... es una realidad que las nuevas versiones de IRIS for Health son cada vez más potentes en cuanto a capacidades FHIR. Permiten consumir recursos FHIR con extrema facilidad, podemos crear conexiones con end-points de servidores FHIR externos muy facilmente y hacer que IRIS actúe de passthrough o que consuma esos recursos... o, más aún, podemos definir y poner en funcionamiento un repositorio FHIR, literalmente, en menos de 5 minutos.

Sin embargo, hay una cosa que echo en falta en proyectos de tipo FHIR Façade, cuando tenemos que implementar una capa FHIR sobre un sistema que "no habla" FHIR. Se trata de la posiblidad de tener ayuda en nuestro IDE (Studio o VS Code) a la hora de codificar la lógica que crearía el o los objetos dinámicos (%DynamicObject) que representan los recursos FHIR que queremos definir...

3
0 136
Artículo Nancy Martínez · oct 18, 2022 1m read

¡Hola desarrolladores!

Para mí, una de las peores cosas de ObjectScript es tener que escribir la sentencia ##class(Class).Method() para llamar a un método de clase en código o en un terminal. Incluso envié una idea para simplificarlo en ObjectScript.

¡Pero! Hay una nueva funcionalidad en VSCode ObjectScript que acaba de ser añadida al plugin - ¡Copy Invocation!

Solo hay que poner el cursor sobre el enlace Copy Invocation que aparece encima de cada método de clase del código, hacer clic en él y la invocación se copia en el buffer:

Pegadlo donde queráis que se ejecute.

USER>w ##class(dc.sample.
0
0 179
Anuncio Esther Sanchez · sep 21, 2022

Si no sabes por dónde empezar a aprender ObjectScript... ¡te lo ponemos fácil!

Acabamos de actualizar el curso “Getting Started with InterSystems ObjectScript” ("Introducción a InterSystems ObjectScript") con tres nuevos vídeos de 5 minutos + un ejercicio final para ayudarte a recapitular todo lo que has aprendido.

Contenido del curso:

🤝 Introducción a InterSystems ObjectScript

🤿 Análisis a fondo de los comandos y las funciones

🤔 Entendiendo los tipos de datos y las variables

👨‍💻 Creando una definición de clase

Ya puedes hacer el curso completo aquí:

🎓Getting Started with InterSystems ObjectScript >>🎓
 

Nota.- La formación oficial de InterSystems es en inglés. Si prefieres la formación en español:

1
0 196
Artículo Nancy Martínez · ago 19, 2022 1m read

¡Hola desarrolladores!

Me gustaría compartir con vosotros un truco útil para presentar código de ObjectScript en ficheros Script en VSCode.

Los ficheros Script son simplemente ficheros con líneas de ObjectScript que introducimos en cualquier sitio, por ejemplo en IRIS durante el procedimiento Docker baking.

Caso de uso típico - este es el Scriptfile

este es el Dockerfile donde lo introducimos.

Y así es como se ve normalmente en VSCode:

Screenshot 2021-08-05 at 09 51 06

Podría ser más elegante, ¿verdad?

0
0 152
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 190
Artículo Ricardo Paiva · jul 7, 2022 15m read

Si tuvieras la oportunidad de cambiar algo en el Visualizador de Mensajes de Interoperabilidad en IRIS, ¿qué harías?

Después de publicar el artículo Panel de Control "IRIS History Monitor", recibí algunos comentarios muy interesantes y varias peticiones. Una de ellas fue un Visualizador de Mensajes mejorado.
 
Si aún no lo has hecho, echa un vistazo al proyecto: merece la pena que le dediques un rato, y además ganó el 3er premio (Bronce) a Los mejores desarrolladores y aplicaciones de InterSystems Open Exchange en 2019.
 
Empecé a pensar algunas ideas sobre lo que me gustaría incluir en el "nuevo" Visualizador de Mensajes pero ¿cómo podría mostrar estos recursos de la forma más rápida y sencilla?
0
0 189
Artículo Muhammad Waseem · jun 28, 2022 3m read

¡Hola Comunidad!

Recientemente, migré una serie de repositorios de Objectscript de formato XML a UDL. Después de la migración, me decepcionó un poco la presentación en la interfaz web de GitLab.

Dado que la sintaxis de Objectscript es compatible con GitHub, pensé que también sería compatible con GitLab. Desafortunadamente, la librería utilizada por GitLab para resaltar el código no tiene una extensión para admitir Objectscript.

GitLab usa la librería Rouge, que puede resaltar más de 200 idiomas. Es una librería escrita en Ruby (consulta la página de GitHub), pero Objectscript no está en la lista.

0
0 179
Artículo Muhammad Waseem · jun 14, 2022 2m read

Esta es una comparación creada en Python y Objectscript en InterSystems IRIS.

El objetivo es comparar la velocidad para enviar y recibir mil solicitudes/mensajes desde un BP a un BO en Python y en Objectscript.

Consultar https://github.com/LucasEnard/benchmark-python-objectscript para más información.

IMPORTANTE : Aquí están los resultados del tiempo en segundos, para enviar 1000 mensajes de ida y vuelta desde un bp a un bo usando Python, Graph Objectscript y Objectscript.

Los mensajes de cadena se componen de diez variables de cadena.

0
0 100
Artículo Muhammad Waseem · jun 1, 2022 3m read

¡Hola comunidad!

Esta publicación es una introducción a mi aplicación iris-fhir-client en Open Exchange.

Usando Python embebido y con la ayuda de la librería fhirpy, iris-fhir-client puede conectarse a cualquier servidor FHIR abierto.
Obten información de recursos por terminal y mediante el uso de la aplicación web CSP.

0
0 325
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
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 Pierre-Yves Duquesnoy · mayo 3, 2022 14m read

Encontrar errores en tu código o examinar un comportamiento inesperado es el principal objetivo de la depuración.

Trataré de actualizar las herramientas tradicionales aparte de las ayudas que tienen Studio, VScode, Serenji... Las herramientas básicas que han estado ahí antes de que tu EDI preferido lo utilizara en segundo plano.

0
2 201
Anuncio David Reche · mayo 3, 2022

Hola comunidad, os anuncio el lanzamiento de la versión 1.8.0 de la extensión VS Code, que contiene las siguientes mejoras y correcciones de fallos que paso a resumir.

La más importante es el soporte a archivos de proyecto del lado del servidor, es una funcionalidad similar a la de los proyectos de Studio, como los más viejos del lugar recordarán. Si trabajas en el lado del cliente, VS Code ya tiene buenas funcionalidades para la gestión de proyectos. Puedes simplemente usar una carpeta como un proyecto, o usar workspaces multi-raíz. Pero si trabajas en el lado del servidor, podrás apreciar algunas mejoras en la gestión de artefactos. Puedes saber más en el nuevo capítulo Projects de la documentación.

0
0 148
Artículo Rizmaan Marikar · abr 21, 2022 13m read

Hay varias maneras de generar ficheros Excel usando tecnología InterSystems: por ejemplo utilizando informes generados con InterSystems Reports, o los antiguos informes ZEN, o incluso haciendo uso de librerías Java de terceros. Las posibilidades son casi infinitas.

Pero, ¿qué pasa si quieres crear una sencilla hoja de cálculo sólo con ObjectScript? (sin aplicaciones de terceros)

En mi caso, necesito generar informes que contengan muchos datos sin procesar (a los financieros les encantan), pero mi antiguo informe ZEN fallaba y me da lo que me gusta llamar un "archivo con cero bytes". Básicamente, Java se queda sin memoria y provoca una sobrecarga en el servidor de informes.

0
0 199
Anuncio David Reche · abr 6, 2022

InterSystems anuncia la versión 2.0.0 del Language Server para VS Code. Language Server incrementa la extensión VS Code ObjectScript para ofrecer un mejor resaltado de sintaxis, documentación embebida, autocompletado de código y más.

Todos los detalles están disponibles en el archivo README del repositorio de GitHub. La versión 2.0.0 añade soporte a varias arquitecturas de plataformas, incluyendo M1 Macs! También reduce el tamaño del paquete, mejora el coloreado del SQL y arregla otros problemas que se detallan en el CHANGELOG. 

0
0 161
Anuncio David Reche · abr 5, 2022

Me complace anunciar el lanzamiento de la versión 1.4.4 de la extensión VS Code, que contiene las siguientes mejoras y correcciones de fallos. Los enlaces que llevan a las issues de GitHub han sido corregidos. Como siempre, si ya tienes la extensión instalada, VS Code debería actualizar automáticamente tu extensión. Si no la tienes instalada, sigue estas instrucciones para empezar. 

Registro de cambios

0
0 142
Artículo Daniel Aguilar · feb 25, 2022 6m read

Hola!

Llevaba un tiempo queriendo dedicarle un rato para implementar alguna DLL o algo que pudiese usar desde Caché y al final he sacado un huequillo, si te interesa poder producir mensajes que se envíen a Kafka de una manera rápida estás en el lugar adecuado ;-)

Antes de daros la chapa con lo que vamos a ver os hago un resumen para que decidáis si os puede interesar leer el artículo.

En este artículo nos vamos a centrar "solo" en la parte de producir mensajes y enviarlos a Kafka:

¿Cómo funciona?

Uso una DLL de .Net (Netframework 4.

0
0 1010
Artículo Marcio Pereira · feb 23, 2022 9m read

En proyectos de software orientados a objetos son utilizados comúnmente patrones de proyecto para resolución de problemas. Si usted desarrolla en COS, este artículo tendrá sentido para su día a día.

En proyectos de software orientados a objetos son utilizados comúnmente patrones de proyectos para la resolución de problemas que pueden ocurrir con frecuencia en determinados contextos.

0
0 420