View Categories

Comando ReadXML

Descripción General  #

El comando ReadXML te ayuda a extraer información de archivos XML y guardarla en variables para tus automatizaciones.

  • ¿Cómo funciona? El comando lee un archivo XML, busca la parte que le indiques y toma su valor.

  • ¿Qué puedo extraer? Puedes obtener cualquier tipo de información: texto, números, fechas o incluso otras estructuras XML que estén dentro del archivo.

  • ¿Para qué sirve? El dato extraído se guarda en una variable, lista para que la uses en tu robot digital.

Ejemplo de Uso Rápido #

Imagina que recibes un archivo XML con la información de un producto. Dentro de este archivo, hay una etiqueta llamada <nombre_producto>. Con el comando «ReadXML», podrías decirle a STELA: «Busca en este archivo XML la etiqueta <nombre_producto> y guarda lo que encuentres en una variable llamada nombreDelProducto«.  Así de fácil, tendrás el nombre del producto listo para usar en tu automatización.

Parámetros y Opciones #
  • Archivo XML: Debes indicar la ruta completa del archivo XML que quieres procesar.
  • Campo: Aquí defines exactamente qué información quieres extraer. Usarás una «ruta» para guiar a STELA hasta el dato que necesitas. Por ejemplo, para obtener el valor de la etiqueta <precio> que está dentro de <producto>, la ruta sería /producto/precio.
  • Variable: Dale un nombre a la variable en la que STELA guardará el dato extraído. Luego, podrás usar esta variable en otros comandos y acciones de tu flujo de trabajo.. 
Ejemplos de Uso Avanzado #
  1. Extrayendo un valor específico dentro de una estructura: Imagina un archivo XML con información de varios ítems. Cada ítem tiene un <id> y un <nombre>. Si solo necesitas el nombre del ítem con un <id> específico, puedes usar la ruta adecuada dentro del parámetro «Elemento» para llegar directamente a ese valor y guardarlo en una variable. Por ejemplo, si el XML tiene una estructura como <items><item><id>123</id><nombre>Producto A</nombre></item></items>, podrías configurar el comando para extraer el texto dentro de la etiqueta <nombre> del <item> cuyo <id> sea 123.
  2. Obteniendo un bloque completo de información anidada: A veces, la información que necesitas no es un simple texto, sino un conjunto de datos relacionados dentro de una sección del XML. Por ejemplo, podrías tener una sección <direccion> con sub-etiquetas como <calle>, <numero>, <ciudad>. Con «ReadXML», puedes extraer todo el contenido dentro de la etiqueta <direccion> y guardarlo en una variable.
  3. Trabajando con XML embebido (en dos pasos): A veces un archivo XML puede contener otro XML dentro de una de sus etiquetas. Si necesitas acceder a información dentro de este «XML anidado», primero usarás «ReadXML» para extraer el XML completo embebido y guardarlo en una variable. Luego, en un segundo paso, utilizarás otro comando «ReadXML», pero esta vez indicando como «Archivo XML» la variable donde guardaste el XML embebido, y especificando la ruta al dato que necesitas dentro de él. 
Ventajas de uso #
  • Flexibilidad: Permite extraer cualquier tipo de información de un archivo XML, adaptándose a diferentes estructuras y niveles de anidamiento.
  • Reutilización: Los datos extraídos se almacenan en variables, lo que facilita su reutilización en distintas partes de la automatización.
  • Integración: Facilita la integración de datos externos en tus procesos automatizados, permitiendo trabajar con una amplia variedad de formatos de datos.
Errores Comunes y Soluciones #
  • Ruta incorrecta: Si STELA no encuentra el elemento que especificaste, es probable que la ruta que ingresaste en el parámetro no sea correcta. Solución: Revisa cuidadosamente la estructura de tu archivo XML y asegúrate de que la ruta coincida exactamente con la ubicación del dato que quieres extraer, incluyendo las mayúsculas y minúsculas.
  • Archivo XML no encontrado: Si la ruta del archivo que indicaste en el parámetro «Archivo XML» es incorrecta o el archivo no existe en esa ubicación, STELA no podrá leerlo. Solución: Verifica que la ruta del archivo sea correcta y que el archivo esté accesible para STELA.
Casos de Uso #
  • Automatización de la extracción de datos de informes: Si recibes reportes en formato XML regularmente, usa el comando ReadXML para extraer los datos importantes y generar tus propios informes o alimentar otras aplicaciones.
  • Procesar respuestas de servicios web: Extrae datos de respuestas XML de servicios web y úsalos para tomar decisiones o crear reportes.
  • Procesamiento de archivos de configuración: Lee archivos XML de configuración y obtén los valores necesarios para personalizar el comportamiento de tus automatizaciones.
  • Captura de datos visuales estructurados: Si tienes información visual que se guarda en formato XML, usa ReadXML para extraer los datos de forma estructurada y utilizarlos en tus flujos de trabajo.
Ejemplos #

Proceso detallado:

Damos como ejemplo el siguiente archivo XML:

Si deseamos obtener el dato en «Items», podemos utilizar el comando ReadXML y especificar que nos de el dato que se encuentra en /Document/Data/Items (ruta al valor a leer).

También podemos solicitar toda la información contenida dentro de «Verification». Al formar una ruta similar a la anterior, le pedimos que nos devuelva la información en /Document/Data/Verification, lo que nos permitirá guardar los datos de ID, Code, Date y Time que se encuentran dentro del nodo «Verification».

Ahora, todos estos son datos cuyos valores son texto (o nodos que contienen valores que son texto). Sin embargo, los archivos XML también permiten poner como valor de un nodo un XML embebido, como se muestra en el siguiente ejemplo:

En este caso, ahora existe un campo Description en /Document/Data/Description cuyo valor no es un texto, sino otro XML embebido. Afortunadamente, para facilitar la explicación, Notepad++ resalta este tipo de datos en naranja.

El problema surge al intentar obtener un valor del XML embebido, como por ejemplo, el dato de Prefix. No podemos utilizar la ruta /Document/Data/Description/Info/Data/Control/OtherInfo/Prefix, donde la primera parte en celeste sería la ruta para acceder al XML embebido, y luego la ruta en naranja sería la ruta dentro del XML embebido.

Solución: Dado que no podemos acceder directamente al dato que queremos, necesitamos realizar el proceso en dos pasos. Primero, vamos a obtener toda la información del XML embebido completo utilizando el comando ReadXML. Luego, usaremos ese dato como si fuera un XML independiente y aplicaremos el procedimiento normal para buscar el dato en Prefix que deseamos.

Ejemplo 1:

Primero, repasemos cómo es el caso normal del comando ReadXML en STELA, leyendo el campo Ítems del archivo anterior.

ReadXML

Al indicar la ruta al archivo, STELA va a leer ese archivo XML y buscar el dato en el nodo /Document/Data/Items, para luego guardarlo en la variable @DatoXML.

Ejemplo 2

En este caso, queremos obtener todo el XML embebido en lugar de un valor específico. El proceso sigue siendo el mismo: solicitaremos el valor del nodo Description de la misma manera que lo haríamos para cualquier otro dato.

Ahora nos va a guardar en la variable @DatoXML_2 el XML embebido que se encuentra en Description.

Ahora, teniendo el XML embebido almacenado dentro de una variable, lo que debemos hacer para completar el proceso es tomar ese XML y solicitar el dato de Prefix que queríamos.

La diferencia con los ejemplos anteriores es que ahora no utilizamos el archivo original como XML de entrada. En cambio, pasaremos como entrada el XML que tenemos almacenado en la variable @DatoXML_2, que obtuvimos en el paso anterior y sabemos que contiene el XML embebido.

Con eso, al indicar la ruta al nodo Prefix, que ahora es un nodo normal de texto, obtendremos su valor.

Evidencia

Al ejecutar el proceso, se puede observar cómo STELA lee los archivos y almacena la información deseada en las variables correspondientes para cada uno de los pasos.

(Valores de las 3 variables usadas en el _wrk_datos.TMP)

Deja una respuesta