Función ASBITSTREAM

La función del campo ASBITSTREAM genera una corriente de bits para el subárbol de un campo determinado según las normas del analizador que es el propietario del campo y utiliza los parámetros que ha proporcionado el canal de llamada:
  • Codificación
  • CCSID
  • Conjunto de mensajes
  • Tipo de mensaje
  • Formato del mensaje
  • Opciones
Esta función suprime de forma eficaz la limitación de la función BITSTREAM existente, que se puede utilizar solamente en un árbol generado por un analizador perteneciente a un nodo de entrada.

La función BITSTREAM se conserva solamente por motivos de compatibilidad con versiones anteriores.

SINTAXIS

Notas:
  1. Cada cláusula sólo puede aparecer una vez.

ASBITSTREAM devuelve un valor de tipo BLOB que contiene una representación de corriente de bits del campo al que apuntaReferenciaCampo y sus hijos.

El algoritmo para llevarlo a cabo varía de analizador a analizador y dependiendo de las opciones especificadas. Todos los analizadores dan soporte a las modalidades siguientes:
  • RootBitStream, en el que el algoritmo de generación de corriente de bits es el mismo que utiliza un nodo de salida. En esta modalidad, se obtiene un resultado significativo solamente si el campo al que se apunta está a la cabeza de un subárbol con una estructura adecuada.
  • EmbeddedBitStream, en la que el algoritmo de generación de corriente de bits no sólo es el mismo que el que utiliza un nodo de salida sino que también se determinan los campos
    • Codificación
    • CCSID
    • Conjunto de mensajes
    • Tipo de mensaje
    • Formato del mensaje
    si no se han especificado explícitamente del mismo modo que el nodo de salida. Esto es, se determinan buscando los elementos hermano anteriores de ReferenciaCampo presuponiendo que representan cabeceras.

    De este modo, el algoritmo para determinar estas propiedades es esencialmente el mismo que se utiliza para la función BITSTREAM.

Algunos analizadores también dan soporte a otra modalidad, FolderBitStream, que genera una corriente de bits significativos para cualquier subárbol, siempre que el campo apuntado represente una carpeta.

En todos los casos, la corriente de bits obtenida puede proporcionarse a una sentencia CREATE con una cláusula PARSE, utilizando los mismos DOMAIN y OPTIONS para reproducir el subárbol original.

Cuando se llama a la función, se evalúa cualquier expresión de la cláusula. Se genera una excepción si cualquiera de las expresiones no dan como resultado un valor del tipo apropiado.

Si cualquier parámetro es NULL el resultado es NULL.

Cláusula Tipo Valor por omisión
Opciones integer RootBitStream & ValidateNone
Codificación integer o
Ccsid integer o
Conjunto de mensajes character Serie de caracteres de longitud cero
Tipo de mensaje character Serie de caracteres de longitud cero
Formato del mensaje character Serie de caracteres de longitud cero

Aunque la cláusula OPTIONS acepta cualquier expresión que devuelve un valor de tipo entero, solo tiene sentido generar valores de opciones a partir de la lista de constantes suministradas, utilizando la función BITOR si se necesita más de una opción.

Una vez generado, el valor se convierte en un entero y puede guardarlo en una variable o pasarlo como un parámetro a una función, al igual que utilizarlo directamente en una llamada ASBITSTREAM. La lista de constantes definidas globalmente es:
        Opciones de validación maestras...
        ValidateContentAndValue
        ValidateValue		-- Se puede utilizar con ValidateContent
        ValidateContent		-- Se puede utilizar con ValidateValue
        ValidateNone

        Opciones de validación de acciones de error...
        ValidateException
        ValidateExceptionList
        ValidateLocalError
        ValidateUserTrace

       Opciones de validación de limitaciones de valores...
        ValidateFullConstraints
        ValidateBasicConstraints

       Opciones de validación de arreglos...
        ValidateFullFixUp
       ValidateNoFixUp
Notas:
  1. La opción validateFullFixUp se ha reservado para uso futuro. Al seleccionar validateFullFixUp, el comportamiento será el mismo que con validateNoFixUp.
  2. La opción validateFullConstraints se ha reservado para uso futuro. Al seleccionar validateFullConstraints, el comportamiento será el mismo que con validateBasicConstraints.
  3. Para obtener detalles completos sobre las opciones de validación, consulte Propiedades de validación para mensajes del dominio MRM.

APIs equivalentes Java y C

Tenga presente que las opciones equivalentes no están disponibles en:
  • Los métodos MBElement de API de nodo de plugin Java createElementAsLastChildFromBitstream() y toBitstream()
  • Los métodos de API de nodo de plugin C cniCreateElementAsLastChildFromBitstream() y cniElementAsBitstream.

Puede especificar solamente una opción de cada grupo, con la excepción ValidateValue y ValidateContent, que se pueden utilizar conjuntamente para obtener la validación de contenido y valor. Si no especifica una opción en un grupo, se utiliza la opción que está en negrita.

La cláusula ENCODING acepta cualquier expresión que devuelve un valor de tipo entero. No obstante, solo tiene sentido generar valores de codificación de la lista de constantes proporcionada:
       0
       MQENC_INTEGER_NORMAL
       MQENC_INTEGER_REVERSED
       MQENC_DECIMAL_NORMAL
       MQENC_DECIMAL_REVERSED
       MQENC_FLOAT_IEEE_NORMAL
       MQENC_FLOAT_IEEE_REVERSED
       MQENC_FLOAT_S390
0 utiliza la codificación del gestor de colas.

Los valores utilizados para la cláusula CCSID siguen el sistema de numeración normal. Por ejemplo, 1200 = UCS-2, 1208 = UTF-8.

Asimismo, se da soporte a los siguientes valores especiales:
       0
       -1
0 utiliza el CCSID del gestor de colas y -1 utiliza el CCSID, según lo determina el propio analizador. Este valor está reservado.

Si faltan cláusulas, se utilizan los valores por omisión dados. Se le recomienda que utilice los valores por omisión de codificación y CCSID debido a que toman los valores de los valores de codificación del gestor de colas y de CCSID.

Del mismo modo, utilice los valores por omisión para cada una de las opciones de tipo, formato y conjunto de mensajes porque muchos analizadores no necesitan información acerca del tipo, formato o conjunto de mensajes; por lo que cualquier valor es suficiente.

Cuando se evalúan las expresiones, se genera la corriente de bits adecuada.
Nota: Debido a que esta función tiene un gran número de cláusulas, se da soporte a una sintaxis alternativa en la que los parámetros se proporcionan en una lista separados por comas en lugar de mediante cláusulas con nombres. En este caso, las expresiones deben tener este orden:
ENCODING -> CCSID -> SET -> TYPE -> FORMAT -> OPTIONS

La lista se puede truncar en cualquier punto y se puede utilizar una expresión vacía para cualquier cláusula en la que no proporcione un valor.

Ejemplos

      DECLARE options INTEGER BITOR(FolderBitStream, ValidateContent, ValidateValue);
      SET result = ASBITSTREAM(cursor OPTIONS options CCSID 1208);
      SET Result = ASBITSTREAM(Environment.Variables.MQRFH2.Data,,1208,,,,options);
Conceptos relacionados
Visión general de ESQL
Tareas relacionadas
Desarrollo de ESQL
Manejar mensajes XML grandes
Trabajar con mensajes y corrientes de bits XML
Referencia relacionada
Diagramas de sintaxis: tipos disponibles
Funciones de campo ESQL
Función BITSTREAM (obsoleta)
Páginas de códigos soportadas
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ak05510_