ir a la publicación Jose-Tomas Salvador · 21 nov, 2022 Yo creo que en el Kahoot hubo hasta codazos!! La verdad es que estuvo genial poder compartir experiencias y sobre todo vernos después de casi 3 años... y las exposiciones super interesantes... personalmente me quedé con ganas de más... y los que exponían ya ni hablamos (David Cano y Carlos Fernández de Roche y Florencio López y Mario del Pozo por Arisnova)... yo creo que si no los paran aún seguían. Estuvo genial. A ver si repetimos.
ir a la publicación Jose-Tomas Salvador · 11 oct, 2022 Seguro que hay todavía mucho %ZEN.proxyObject por ahí. ¡¡Nunca es tarde si la dicha es buena!! La única precaución es que %ZEN.proxyObject es una clase de sistema... Si la modificamos, hay que preservarla en las actualizaciones y validar que no haya cambiado o hacer un merge... de otro modo perderemos los cambios nuestros o las correcciones de producto. Por "IRIS-izarlo" un poco... aunque no tan automático como lo que presentas, podemos también alterar temporalmente los tipos en los %Library.DynamicObject. set obj = {} set objB = {} set objB.phone = 961000000 set obj.phone = 91001001 set obj.nombre = "Luis" set obj.objetoB = objB set orig = obj.%GetSerial() //si queremos preservar el valor original do obj.%Set("phone",obj.phone,"string") do objB.%Set("phone",objB.phone,"string") do obj.%ToJSON() set obj = obj.%SetSerial(orig) //para volver al objeto JSON original do obj.%ToJSON() Resultado: {"phone":"91001001","nombre":"Luis","objetoB":{"phone":"961000000"}} {"phone":91001001,"nombre":"Luis","objetoB":{"phone":961000000}} Igual sería interesante ver todas las posibilidades de formateo de las antiguas clases %ZEN y ver si están cubiertas por %Dynamic*, %JSON.Adaptor y %JSON.Formatter,... y, si no,... pues igual toca funcionalidad nueva en OpenExchange! :
ir a la publicación Jose-Tomas Salvador · 26 sep, 2022 El material online de eLearning de InterSystems no deja de mejorar. Cierto que viene con subtítulos, pero si aún así prefieres material en español, también tienes el curso on-line que preparé hace algo más de un año, aquí.
ir a la publicación Jose-Tomas Salvador · 5 abr, 2022 Buen artículo!! Una pregunta... ¿en qué momento ocurre la autenticación en cada escenarioy y cuales serían los actores?
ir a la publicación Jose-Tomas Salvador · 18 feb, 2022 A tener en cuenta... las variables creadas vía indirección son variables públicas aunque se utilicen dentro de un procedimiento (en este caso dentro de un método de clase donde ProcedureBlock = 1 por defecto). Por tanto, para que no estén accesibles a la salida del método, debemos hacer un kill.
ir a la publicación Jose-Tomas Salvador · 17 feb, 2022 Prueba esto: ClassMethod Indirection() { set TABLES(0)="EVEN" set TABLES(1)="ODD" for i=1:1:100 { set table = TABLES((i#2)) set @table@(i)=i } zw @table set evenTotal=0 set i="" for { set i=$ORDER(@table@(i)) QUIT:i="" set evenTotal = evenTotal+@table@(i) } zwrite evenTotal}
ir a la publicación Jose-Tomas Salvador · 18 ene, 2022 Hola, acabo de añadir un PDF con las diapositivas que utilicé en el tutorial. Siéntete libre de utilizarlas. Sí te pido que, si lo haces, incluyas un link referenciando a este post en la Comunidad. Por cierto, para los que me habéis comentado, efectivamente tenía el repositorio de ejemplos en GitHub marcado como privado... ya está accesible: Repositorio GitHub - Ejemplos
ir a la publicación Jose-Tomas Salvador · 14 dic, 2021 Actualmente se está investigando. En lo que concierne a tecnología de InterSystems, toda la información sobre este tema se puede encontrar aquí.
ir a la publicación Jose-Tomas Salvador · 30 nov, 2021 Como ya extiendes de %XML.Adaptor, directamente pueden utilizarse las funcionalidades de esa clase para obtener el XML, por ejemplo: do objectTest.XMLExportToString(.xml) write xml que ya te generará: <Test><Person><name>John</name><age>22</age></Person><Address><location>New York NY 10036</location></Address></Test>
ir a la publicación Jose-Tomas Salvador · 25 nov, 2021 Muy interesante para tener una visión general de estas soluciones que ofrece IRIS. Para quien no lo haya visto, @Alberto Fuentes lo muestra en vivo en este Webinar.
ir a la publicación Jose-Tomas Salvador · 15 nov, 2021 No damos la importancia que debemos a las copias de seguridad. Creo que esto va a ahorrar más de un quebradero de cabeza!
ir a la publicación Jose-Tomas Salvador · 4 nov, 2021 Parecía que no, pero finalmente llega el momento de cerrar este tutorial de ObjectScript... Publico hoy el Capítulo 6 - ¿Qué pasa con SQL?, dedicado al acceso SQL a IRIS Data Plataform y cierre de este tutorial. Lo he centrado particularmente en los 2 mecanismos básicos de tratar SQL en ObjectScript, de forma estática, embebiendo SQL en el código ObjectScript, o dinámica, a través de las clases del paquete %SQL. Por supuesto, hay muuuucho más que contar y aprender... os invito a navegar por esta comunidad, por la sección de formación de InterSystems, por los cursos online gratuitos, por la sección del desarrollador, a visualizar los webinars que periodicamente realizamos y, si tenéis la opción, complementar vuestra formación con un curso oficial. Ah.. y no olvidéis que la documentación es vuestra amiga! Ahí encontraréis explicaciones en detalle y multitud de ejemplos que os ayudarán a avanzar. En fin... poco más que decir. Para mí ha sido toda una experiencia.... sobre todo la post-producción 😰😉... Espero que os haya sido útil... Con haber ayudado a unos pocos, habrá valido la pena. Happy coding!!
ir a la publicación Jose-Tomas Salvador · 29 oct, 2021 Ya están disponibles las nuevas imágenes con la clave extendida en el InterSystems Container Registry. Puedes descargarte las imágenes nuevas ejecutando: docker pull containers.intersystems.com/intersystems/iris-community:2021.1.0.215.3 docker pull containers.intersystems.com/intersystems/iris-community-arm64:2021.1.0.215.3 docker pull containers.intersystems.com/intersystems/irishealth-community:2021.1.0.215.3 docker pull containers.intersystems.com/intersystems/irishealth-community-arm64:2021.1.0.215.3
ir a la publicación Jose-Tomas Salvador · 11 oct, 2021 Hola Kurro... estos links concretos te funcionan a ti? Creo que los asistentes asociados al New... en el Studio sólo generan el código fuente y lo entregan al editor del Studio... Pero el VSCode no recoge bien esa salida y la muestra tal que así: <template> <![CDATA[ BODY##www.intersystems.com:template_delimiter##Include %occInclude /// %Installer Manifest MyApp.MyInstaller Class MyApp.MyInstaller { /// Definición de manifiesto. XData MyManifest [ XMLNamespace = INSTALLER ] { <Manifest> <Namespace> <Configuration> <Database> <!-- Your Manifest code here --> </Database> </Configuration> </Namespace> </Manifest> } /// Este es un generador de métodos cuyo código es generado por XGL. ClassMethod setup(ByRef pVars, pLogLevel As %Integer = 3, pInstaller As %Installer.Installer, pLogger As %Installer.AbstractLogger) As %Status [ CodeMode = objectgenerator, Internal ] { #; Permitir que nuestro documento XGL genere código para este método. Quit ##class(%Installer.Manifest).%Generate(%compiledclass, %code, "MyManifest") } } ##www.intersystems.com:template_delimiter##CLASS##www.intersystems.com:tem... ]]> </template> De aquí sí que podríamos extraer el fuente generado... desde el ##Include hasta "MyManifest")}}... pero es un poco engorroso. En el caso de los Complementos (Add-ins) que automatizan la generación de clases, sí que funcionan prácticamente igual que en el Studio...
ir a la publicación Jose-Tomas Salvador · 27 sep, 2021 Bueno, ha tardado más de 3 semanas en salir del horno pero aquí lo tienes, calentito, calentito, el Capítulo 5 - Objetos, penúltimo de este tutorial de ObjectScript. En él nos introducimos ya en la parte de Orientación a Objetos. Me ha quedado un pelín largo para mi gusto, algo más de 2 horas, así que tómatelo con tranquilidad, trocealo a tu gusto,...o ¡qué narices!, ¡dale caña y ponle el turbo al video! Espero que lo disfrutes y te sirva de ayuda. Ah... recien metido en el horno el Capítulo 6, en el que te contaré un poquito qué pasa con SQL y como también ObjectScript lo incorpora de forma nativa... con él cerraré ya este tutorial. A ver lo que tarda en hacerse. ¡Hasta un rato!
ir a la publicación Jose-Tomas Salvador · 23 sep, 2021 Efectivamente se trata de un bug que ya fué corregido. Aparecerá próximamente en la versión 2021.3 de IRIS. Si alguien más se lo encuentra y necesita resolverlo antes, contactad con soporte y os ayudarán.
ir a la publicación Jose-Tomas Salvador · 13 sep, 2021 Hola, la mayoría de los componentes de interoperabilidad son clases, así que se puede utilizar ZPM sin problemas. Hay otros componentes relacionados con la interoperabilidad que no son clases y que ZPM también soporta: .LUT - Tablas de Lookup .ESD - para Ens.Config.DefaultSettings .X12 - para documentos X12 Si utilizas esos componentes, lo tendrás ubicados por defecto en el directorio i14y de tu proyecto. Aquí tienes una plantailla que puedes usar: interoperability-sample.
ir a la publicación Jose-Tomas Salvador · 9 jul, 2021 En IRIS puedes decidir cual es el nombre con que se proyecta una propiedad en SQL utilizando el cualificador SqlFieldName al definir la propiedad en la clase: https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=RO... Igualmente, podrías utilizar directamente el nombre en su formato digamos SQL, fist_name en la propia definición de la clase... simplemente inclúyelo entre comillas: Property "first_name" as %String De este modo, tanto la propiedad en Objetos, como la columna en SQL se llamarían igual... A mí esta segunda opción me gusta menos, porque obliga a utilizar esa propiedad entre comillas en nuestro código cuando la manipulemos como propiedad de un objeto ... Si sólo atacas IRIS desde el punto de vista relacional, te da más igual.
ir a la publicación Jose-Tomas Salvador · 25 jun, 2021 Hola, habría varias opciones. Quizá la más habitual: 1. Instalar un servidor web público (Windows, Linux). 2. Conectarlo a InterSystems IRIS. 2. Habilitar HTTPS en el servidor web. LA forma más sencilla es Let's Encrypt. Otra opción sería utilizar un proxy server en docker. Como Guillaume Rongier hace en este ejemplo publicado en GitHub: https://github.com/grongierisc/Https-Proxy-IRIS-Docker o este de Lorenzo Scalese: https://github.com/lscalese/isc-webgateway-letsencrypt
ir a la publicación Jose-Tomas Salvador · 17 jun, 2021 EXPLAIN es también un comando SQL soportado por InterSystems IRIS. Se puede llamar desde la shell como cualquier otro comando. Igualmente, para el ver el plan tambien se puede hacer en el Explorador SQL, pulsando el botón "Mostrar Plan" con la sentencia SQL en cuestión.