Como desarrolladores de interfaces, a menudo nos hacen preguntas que requieren investigar grandes cantidades de mensajes. Por ejemplo, durante una reunión reciente, nuestro jefe de proyectos me preguntó cuántos sitios estaban utilizando realmente nuestra nueva interfaz de pedidos.
Normalmente, intentaría copiar la salida del Visor de Mensajes para pegarla en Excel o simplemente generaría un informe de mensajes para cada sitio individual que estuviera haciendo pedidos y usaría el conteo de mensajes devuelto...
Una idea implementada desde el portal de Ideas de InterSystems. Simplemente haced clic en el botón Export as CSV en la barra de botones de IRIS Whiz para descargar la búsqueda actual como un archivo CSV, facilitando su manipulación en Excel o Sheets.
Opción 2 - Sofisticada: Analizar
En este caso, acababa de completar la herramienta de análisis en mi extensión de navegador Iris Whiz.
Al añadir el valor de PV1-3.2 a los criterios de búsqueda de mensajes en el Visor de Mensajes, podía ejecutar fácilmente el informe, hacer clic en analyse y tener esta información al instante en un gráfico de tipo donut, sin necesidad de exportar nada.
Después, el jefe de proyecto quiso saber qué tipos de exámenes estaban solicitando esos sitios. Añadí el valor de OBR-4.2 a mis criterios de búsqueda y volví a ejecutar el informe. Al hacer clic en el botón de análisis, ahora podía ver los sitios que hacían pedidos y los exámenes solicitados. (Cada criterio de búsqueda de mensajes se presenta como un gráfico tipo donut, añadido al final de la sección de gráficos en la página de análisis).
Y llegó la tercera pregunta:
¿Qué sitios están solicitando qué pedidos?
Al hacer clic en el gráfico interactivo de tipo donut, pude visualizar los datos en la parte de Data Viewer de la página de análisis. Otro clic en el botón de filtro dentro de esta caja aplicó esta selección de datos como un filtro para todos los gráficos, lo que significó que el gráfico tipo donut de exámenes ahora mostraba únicamente los exámenes solicitados por ese sitio.
Gráfico de sitios y gráfico de exámenes filtrados por sitio:
Y finalmente, la pregunta más difícil:
¿Cuándo está ocurriendo todo esto?
Revisar manualmente los tiempos de los mensajes en la página del Visor de Mensajes para ver cuándo se están realizando los pedidos no era una opción viable...
Afortunadamente, había añadido un gráfico de línea temporal a la página de análisis.
Eliminé el filtro y hice clic en el botón Show on Line Graph (activado como "On" para el gráfico de **PV1-3** en la captura de pantalla anterior) para mostrar los datos de los sitios en el gráfico de línea temporal ubicado en la parte superior de la página.
Un par de capturas de pantalla después, pudimos enviar este informe a nuestros sitios para que confirmaran la cantidad de pedidos realizados cada día y aseguraran que todo estaba funcionando como se esperaba.
Estos informes debían ejecutarse semanalmente, pero, por suerte para mí, esta tarea se volvió sencilla, especialmente cuando la combiné con la función de búsquedas guardadas en la página del Visor de Mensajes, lo que me permitió no tener que recordar qué criterios de búsqueda añadir.
Puntos finales
1. Datos sensibles: Los datos de la búsqueda en el Visor de Mensajes se envían a una nueva pestaña del navegador y, tan pronto como se cierra, desaparecen, por lo que no hay que preocuparse por datos sensibles guardados en el navegador. Si queréis guardar un informe, utilizad la funcionalidad predeterminada de InterSystems para Búsquedas Guardadas y simplemente ejecutad el informe nuevamente más adelante. Había planeado un mecanismo para guardar búsquedas desde la página de análisis, pero no llegó a esta versión.
2. Velocidad: La página de análisis funciona a partir de la búsqueda de mensajes y no he establecido límites estrictos en la cantidad de datos que puede mostrar. Cuantos más mensajes y criterios de búsqueda añadáis, más lenta será la página de análisis. Teniendo esto en cuenta, añadí un aviso emergente si intentáis cargar más de 200 mensajes, lo que os permite elegir si queréis cargar el gráfico de barras en la parte superior de la página o no.
El gráfico de barras muestra cada mensaje como un cuadro seleccionable. Al hacer clic en uno de estos cuadros, el mensaje se añadirá a la caja de Selected Messages en el visor de datos (a la izquierda de la página). Luego podéis hacer clic en el botón View Selected Messages para abrir estos mensajes en una nueva página y aprovechar las funciones de comparación de mensajes de la extensión.
Cuando hagáis clic en este botón, intentad no seleccionar demasiados mensajes. Un máximo de 10 debería estar bien.
Cargar el gráfico de barras con grandes conjuntos de datos de decenas de miles definitivamente no será bueno para vuestro navegador, pero he dejado esta decisión en manos del usuario.
I'm often being asked, especially related to technical bonuses we encourage for every Open Exchange contest why do we constantly give bonuses for Docker, IPM and ObjectScript Quality pass.
In fact, this is very easy to answer.
Why Docker?
Docker increases maintainability and collaboration opportunities for your project. Indeed, if it is dockerized, everyone (other than an initial developer) is able to set the development environment for the project and make sure it does what it promises; it is easy to make changes to fix an issue or add a new feature. See more in my article on using Docker with InterSystems IRIS. All the basic IRIS templates on Open Exchange go with Docker.
Docker is a free tool and can be installed both on Mac and Windows platforms (the most common amongst developers).
Why IPM?
If your IRIS solution is not a pure Python or ODBC/JDBC thing but contains interoperability and/or ObjectScript resources, you'll have a question about how your solution will end up on a target IRIS Server of your customer. Ideally, with minimal manual involvement but rather by the customer or a developer (if it is a developer tool). The solution is the set of instructions to be made by your customer, that could contain a number of manual steps happily done. The success of your product being installed properly depends a lot on the fewer steps you have in the installation instructions.
In this case, IPM is ideal as it minimizes the installation procedure to one command, "install package-name," executed by the customer in a target namespace. Also IPM is useful not only for a customer but for the developer him/herself e.g. in a CI/CD procedure or/and a unit-testing pipeline. Learn more about IPM: IPM, documentation, and the first article about IPM, videos.
IPM is free and is being actively supported by the InterSystems team led by @Timothy Leavitt .
Why ObjectScript Quality?
ObjectScirpt language, even being compiled, still allows obvious bugs and potentially causes problems if certain guidelines are not being followed. The Solution for this is a linter tool that analyzes ObjectScript code vs a set of rules, provided by ObjectScript Quality Tool by Lite Solutions.
To have your public ObjectScript code automatically analyzed, you need to add only one file. After that, the analysis of your code will be reported here. Also, see more in this article.
ObjectScript Quality analysis is free for public ObjectScript code.