Artículo
· 3 ago, 2023 Lectura de 4 min

Cómo habilitar control de código fuente para interoperabilidad en IRIS con IPM y git-source-control

¡Hola Comunidad!

Como sabéis, las soluciones de Interoperabilidad de InterSystems IRIS contienen diferentes elementos de la solución, como: producciones, reglas de negocio, procesos, transformaciones de datos, mapeos de registros, etc. Y a veces podemos crear y modificar estos elementos con herramientas visuales en la UI. Y por supuesto necesitamos una forma práctica y sólida de controlar el código fuente con los cambios realizados con herramientas de UI.

Durante mucho tiempo, esto era un proceso de configuración manual (exportar clase, elemento, global, etc.) o engorroso, por lo que el tiempo ahorrado con la automatización del control de fuentes de la UI competía con el tiempo perdido en configurar y mantener la configuración.

Ahora ese problema ya no existe. Con dos enfoques: desarrollo "package first" y uso del paquete IPM git-source-control, de @Timothy Leavitt.

Os explico los detalles a continuación.

Descargo de responsabilidad: esto se refiere a un enfoque de desarrollo del lado del cliente, cuando los elementos de la producción de Interoperabilidad son los archivos en el repositorio.

Así que este artículo no será nada largo, porque la solución es extraordinariamente sencilla.

Supongo que desarrolláis con Docker y una vez generáis con IRIS la imagen Docker del entorno de desarrollo, cargáis la solución como un módulo IPM. Esto se llama desarrollo "Package first" y podéis ver el artículo enlazado a esta publicación. La idea básica es que la imagen Docker del entorno de desarrollo con IRIS carga la solución como un paquete, como se ha implementado en el servidor del cliente.

Para hacer un entorno de desarrollo "package first" para vuestra solución, añadid un archivo module.xml al repositorio, describid todos sus elementos y llamad al comando "zpm load "repositorio/carpeta" durante la fase de construcción de la imagen Docker.

Puedo demostrar la idea con la plantilla de ejemplo: IRIS Interoperability template y su module.xml. Así es como se carga el paquete durante la construcción de Docker:

zpm "load /home/irisowner/irisdev/ -v":1:1

Aquí tenéis el iris.script utilizado en el ejemplo. 

Fijaos en las dos líneas siguientes, colocadas antes de cargar el control de fuente del paquete. Por ello, el control de fuente empieza a funcionar automáticamente para TODOS los elementos de interoperabilidad en el paquete, y los exportará en las carpetas adecuadas en el formato adecuado:

zpm "install git-source-control"
do ##class(%Studio.SourceControl.Interface).SourceControlClassSet("SourceControl.Git.Extension")

¿Cómo es posible?

Porque desde hace poco la app git-source-control es compatible con los paquetes IPM para control de fuente que se cargan en modo desarrollador. Lee la carpeta que hay que exportar e importa la estructura de fuentes desde el archivo module.xml. @Timothy Leavitt puede facilitar más detalles.

Si comprobamos en el terminal la lista de módulos IPM después de que se construya el entorno, podemos ver que el módulo cargado está, de hecho, en modo desarrollador:

USER>zpm
=============================================================================
|| Welcome to the Package Manager Shell (ZPM).                             ||
|| Enter q/quit to exit the shell. Enter ?/help to view available commands ||
=============================================================================
zpm:USER>list
git-source-control      2.1.0
interoperability-sample 0.1.2 (DeveloperMode)
sslclient               1.0.1
zpm:USER>

¿Lo probamos? 

Cloné este repositorio, lo abrí en VSCode y construí la imagen. A continuación probé la UI de Interoperabilidad y el control de fuente. Hago un cambio en la UI e inmediatamente aparece en el apartado de cambios realizados en el código fuente y puedo ver las diferencias:

¡Funciona! ¡Eso es todo! 

Como conclusión, lo que se necesita para que podáis tener control de código fuente para los elementos de la UI de Interoperabilidad en vuestro proyecto:

1. Añadir dos líneas en iris.script mientras se construye la imagen Docker:

zpm "install git-source-control"
do ##class(%Studio.SourceControl.Interface).SourceControlClassSet("SourceControl.Git.Extension")

Y cargar vuestra solución como un módulo a continuación, por ejemplo como aquí:

zpm "load /home/irisowner/irisdev/ -v":1:1

2. O se puede empezar uno nuevo creando un repositorio desde la plantilla de Interoperabilidad.
 

¡Gracias por leerme! Vuestros comentarios son bienvenidos.

Comentarios (0)1
Inicie sesión o regístrese para continuar