Este apartado proporciona información específica para trabajar con mensajes que pertenezcan al dominio BLOB y que sean analizados por el analizador BLOB.
El contenido de un mensaje BLOB no se puede manipular debido a que no tiene una estructura predefinida. No obstante, puede hacer referencia a su contenido utilizando su posición conocida dentro de la corriente de bits, y procesar el mensaje con un conocimiento mínimo sobre su contenido.
El analizador del texto del mensaje BLOB no crea una estructura de árbol del mismo modo que otros analizadores de textos de mensajes. Tiene un elemento raíz BLOB, que tiene un elemento hijo llamado también BLOB, que contiene los datos.
Puede hacer referencia al contenido de un mensaje utilizando subseries si conoce la ubicación de una parte de la información dentro de los datos BLOB. Por ejemplo, la siguiente expresión identifica el décimo byte del texto del mensaje.
InputBody.BLOB.BLOB[10]
La siguiente expresión hace referencia a 10 bytes de datos del mensaje empezando en la posición 10:
SUBSTRING(InputBody.BLOB.BLOB from 10 for 10)
Este ejemplo explica cómo manipular un mensaje BLOB de longitud variable. En el ejemplo se supone que se ha configurado un flujo de mensajes que recibe un mensaje BLOB de longitud variable, analiza algunos de los campos invocando el analizador MRM y direcciona el mensaje de salida a la cola de mensajes correcta basándose en la información analizada.
El mensaje de entrada está en formato BLOB y se da por supuesto que contiene nulos NULL ('x00') insertados, por lo que no puede definirse como terminado por nulo.
Este ejemplo muestra el ESQL necesario para:
De este modo, puede definir el modelo de mensaje con un campo de longitud de entero seguido del mensaje BLOB.
Este ejemplo también muestra cómo convertir el mensaje BLOB a CWF, procesar el mensaje y quitar el campo de longitud añadido.
En este ejemplo el registro de entrada tiene el siguiente formato:
Este campo se utiliza como un entero para direccionar el mensaje a colas distintas, según criterios definidos por el cliente.
Defina un nuevo mensaje BLOB_Example que incluya los siguientes elementos y tipos:
Este apartado explica las características del flujo de mensajes. Si desea implementar este flujo de ejemplo, deberá completar la definición del flujo de mensajes (por ejemplo, creando los tres subflujos para sustituir los nodos de salida utilizados aquí para gestionar casos de falsedad, desconocimiento y anomalía) y proporcionar el soporte necesario para su despliegue y ejecución (por ejemplo, creando las colas de entrada y de salida en el gestor de colas correspondiente al intermediario para el que se despliega el flujo).
Este subflujo maneja un mensaje que tiene el formato esperado (la prueba realizada en el nodo Filter ha devuelto el valor true (verdadero)). El mensaje satisfactorio se graba en la cola de salida en su formato original; el mensaje vuelve a convertirse en BLOB desde MRM y los cuatro bytes que se añadieron (campo B_LEN) se eliminan.
Para este subflujo: