função ASBITSTREAM

A função de campo ASBITSTREAM gera um fluxo de bits para a subárvore de um campo especificado, de acordo com as regras do analisador que possui o campo e utilizando os parâmetros fornecidos pelo responsável pela chamada para:
  • Codificação
  • CCSID
  • Conjunto de Mensagens
  • Tipo de Mensagem
  • Formato de Mensagem
  • Opções
Esta função efetivamente remove a limitação da função BITSTREAM existente, que pode ser utilizada apenas em uma árvore produzida por um analisador pertencente a um nó input

A função BITSTREAM é mantida apenas para retrocompatibilidade.

SINTAXE

Notas:
  1. Cada cláusula pode ocorrer apenas uma vez

O ASBITSTREAM retorna um valor do tipo BLOB que contém uma representação de fluxo de bits do campo apontado por FieldReference e seus filhos

O algoritmo para fazer isso varia de analisador para analisador e de acordo com as opções especificadas. Todos os analisadores suportam os seguintes modos:
  • RootBitStream, no qual o algoritmo de geração do fluxo de bits é igual ao utilizado por um nó output. Neste modo, um resultado significativo é obtido apenas se o campo apontado estiver no topo de uma subárvore com uma estrutura apropriada.
  • EmbeddedBitStream, no qual o algoritmo de geração de fluxo de bits não só é o mesmo do utilizado por um nó output, mas também
    • Codificação
    • CCSID
    • Conjunto de Mensagens
    • Tipo de Mensagem
    • Formato de Mensagem
    são determinados, se não estiverem explicitamente especificados, da mesma forma que o nó output. Ou seja, eles são determinados pela pesquisa de irmãos anteriores de FieldReference na suposição de que representam cabeçalhos.

    Dessa forma, o algoritmo para determinar estas propriedades é essencialmente igual ao utilizado para a função BITSTREAM.

Alguns analisadores também suportam outro modo, FolderBitStream, que gera um fluxo de bits significativo para qualquer subárvore, desde que o campo apontado represente uma pasta.

Em todos os casos, o fluxo de bits obtido possui a característica que pode ser fornecida a uma instrução CREATE com a cláusula PARSE, utilizando o mesmo DOMAIN e OPTIONS para reproduzir a subárvore original.

Quando a função for chamada, quaisquer expressões de cláusula serão avaliadas. Será emitida uma exceção se qualquer uma das expressões não resultar em um valor de tipo apropriado.

Se qualquer parâmetro for NULL, o resultado será NULL.

Cláusula Type Valor Padrão
Opções integer RootBitStream & ValidateNone
Codificação integer 0
Ccsid integer 0
Conjunto de Mensagens caractere Cadeia de comprimento zero
Tipo de Mensagem caractere Cadeia de comprimento zero
Formato de Mensagem caractere Cadeia de comprimento zero

Embora a cláusula OPTIONS aceite qualquer expressão que retorna um valor de tipo inteiro, ela apenas é significativa para gerar valores de opções da lista de constantes fornecidas, utilizando a função BITOR se mais de uma opção for requerida.

Depois de gerado, o valor se torna um inteiro e pode ser salvo em uma variável ou transmitido como um parâmetro para uma função, além de estar sendo utilizado diretamente em uma chamada ASBITSTREAM. A lista de constantes definidas globalmente é:
        Validate master options...
        ValidateContentAndValue
        ValidateValue		  -- Pode ser utilizado com ValidateContent
        ValidateContent		-- Pode ser utilizado com ValidateValue
        ValidateNone

        Validate failure action options...
        ValidateException
        ValidateExceptionList
        ValidateLocalError
        ValidateUserTrace

        Validate value constraints options...
        ValidateFullConstraints
        ValidateBasicConstraints

        Validate fix up options...
        ValidateFullFixUp
       ValidateNoFixUp
Notas:
  1. A opção validateFullFixUp é reservada para utilização futura. A seleção de validateFullFixUp fornece comportamento idêntico a validateNoFixUp.
  2. A opção validateFullConstraints é reservada para utilização futura. A seleção de validateFullConstraints fornece comportamento idêntico a validateBasicConstraints.
  3. Para obter detalhes completos sobre as opções de validação, consulte Propriedades de Validação para Mensagens no Domínio MRM.

APIs Equivalentes a C e Java

Observe que as opções equivalentes não estão disponíveis em:
  • Os métodos MBElement da API do nó do plugin Java createElementAsLastChildFromBitstream() e toBitstream()
  • Os métodos da API do nó de plugin C cniCreateElementAsLastChildFromBitstream() e cniElementAsBitstream.

Apenas uma opção de cada grupo pode ser especificada, com exceção de ValidateValue e ValidateContent, que podem ser utilizados juntos para obter a validação de conteúdo e valor. Se você não especificar uma opção em um grupo, a opção em negrito será utilizada.

A cláusula ENCODING aceita qualquer expressão que retorne um valor de tipo integer. No entanto, apenas será significativo gerar valores de codificação a partir da lista de constantes fornecidas:
       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 a codificação do gerenciador de filas.

Os valores utilizados para a cláusula CCSID seguem o sistema de numeração normal. Por exemplo, 1200 = UCS-2, 1208 = UTF-8.

Além dos seguintes valores especiais, são suportados:
       0       -1
0 utiliza o CCSID do gerenciador de filas e -1 utiliza os CCSID's conforme determinado pelo próprio analisador. Este valor está reservado.

Para cláusulas ausentes, são utilizados os valores padrão especificados. Utilize o CCSID e os valores padrão de codificação, porque eles utilizam seus valores a partir da codificação e das definições de CCSID do gerenciador de filas.

Da mesma forma, utilize os valores padrão para cada uma das opções de conjunto de mensagens, tipo e formato, pois muitos analisadores não requerem informações sobre conjunto de mensagens, tipo ou formato; portanto, qualquer valor válido é suficiente.

Quando todas as expressões forem avaliadas, o fluxo de bits apropriado será gerado.
Nota: Como esta função possui um grande número de cláusulas, uma sintaxe alternativa é suportada, na qual os parâmetros são fornecidos como uma lista separada por vírgulas em vez de separada por cláusulas denominadas. Neste caso, as expressões devem estar na seguinte ordem:
ENCODING -> CCSID -> SET -> TYPE -> FORMAT -> OPTIONS

A lista pode ser truncada em qualquer ponto e uma expressão totalmente vazia pode ser utilizada para quaisquer cláusulas nas quais você não fornece um valor.

Exemplos

      DECLARE options INTEGER BITOR(FolderBitStream, ValidateContent,
                                    ValidateValue);
            SET result = ASBITSTREAM(cursor OPTIONS options CCSID 1208);
      SET Result = ASBITSTREAM(Environment.Variables.MQRFH2.Data,,1208
                               ,,,,options);
Conceitos relacionados
Visão Geral do ESQL
Tarefas relacionadas
Desenvolvendo ESQL
Tratando de Grandes Mensagens XML
Trabalhando com Mensagens e Fluxos de Bits XML
Referências relacionadas
Diagramas de Sintaxe: Tipos Disponíveis
Funções de Campo ESQL
Função BITSTREAM (Reprovada)
Páginas de Códigos Suportadas
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ak05510_