Funzione ASBITSTREAM

La funzione di campo ASBITSTREAM genera un flusso di bit per la struttura ad albero secondaria di un campo fornito in base alle regole del programma di analisi proprietario del campo ed utilizza i parametri forniti dal chiamante per:
  • Codifica
  • CCSID
  • Serie di messaggi
  • Tipo di messaggio
  • Formato del messaggio
  • Opzioni
Questa funzione rimuove la limitazione della funzione BITSTREAM esistente, che può essere utilizzata solo su una struttura ad albero prodotta da un programma di analisi che appartiene ad un nodo di input

La funzione BITSTREAM viene conservata solo per la compatibilità con le versioni precedenti.

SINTASSI

Note:
  1. Ciascuna clausola può essere indicata una sola volta

ASBITSTREAM restituisce un valore di tipo BLOB che contiene una rappresentazione del flusso di bit del campo indicato da FieldReference e dai relativi child

L'algoritmo per questa operazione varia in base al programma di analisi ed alle opzioni specificate. Tutti i programmi di analisi supportano le seguenti modalità:
  • RootBitStream, in cui l'algoritmo di creazione del flusso di bit è lo stesso di quello utilizzato da un nodo di output. In questa modalità, si ottiene un risultato significativo solo se il campo indicato è all'inizio di una struttura ad albero secondaria con una struttura appropriata.
  • EmbeddedBitStream, in cui non solo l'algoritmo di generazione del flusso di bit è uguale a quello utilizzato da un nodo di output, ma lo sono anche
    • Codifica
    • CCSID
    • Serie di messaggi
    • Tipo di messaggio
    • Formato del messaggio
    sono determinati, se non specificati in modo esplicito, nello stesso modo in cui sono determinati dal nodo di output. Tali elementi sono determinati ricercando nei sibling precedenti di FieldReference, supponendo che essi rappresentino delle intestazioni.

    In questo modo, l'algoritmo per la determinazione di tali proprietà è essenzialmente uguale a quello utilizzato per la funzione BITSTREAM.

Alcuni programmi di analisi supportano anche la modalità FolderBitStream, che genera un flusso di bit valido per qualsiasi struttura ad albero secondaria, purché il campo indicato rappresenti una cartella.

In tutti i casi, il flusso di bit ottenuto può essere assegnato ad un'istruzione CREATE con una clausola PARSE, utilizzando gli stessi DOMAIN ed OPTIONS per riprodurre la struttura ad albero secondaria originaria.

Quando la funzione viene richiamata, vengono valutate tute le espressioni della clausola. Viene generata un'eccezione se una delle espressioni non risulta in un valore del tipo appropriato.

Se uno dei parametri è NULL, il risultato è NULL.

Clausola Tipo Valore predefinito
Opzioni integer RootBitStream & ValidateNone
Codifica integer 0
Ccsid integer 0
Serie di messaggi character Stringa di lunghezza zero
Tipo di messaggio character Stringa di lunghezza zero
Formato del messaggio character Stringa di lunghezza zero

Sebbene la clausola OPTIONS accetti qualsiasi espressione che restituisce un valore di tipo integer, è utile creare valori dell'opzione dall'elenco delle costanti fornite, utilizzando la funzione BITOR, solo se è richiesta più di un'opzione.

Una volta creato, il valore diventa un integer e può essere salvato in una variabile, passato come parametro ad una funzione oppure utilizzato direttamente in una chiamata ASBITSTREAM. L'elenco delle costanti definite globalmente è:
        Validate master options...
        ValidateContentAndValue
        ValidateValue		  -- Can be used with ValidateContent
        ValidateContent		-- Can be used with ValidateValue
        ValidateNone

        Validate failure action options...
        ValidateException
        ValidateExceptionList
        ValidateLocalError
        ValidateUserTrace

        Validate value constraints options...
        ValidateFullConstraints
        ValidateBasicConstraints

        Validate fix up options...
        ValidateFullFixUp
        ValidateNoFixUp
Note:
  1. L'opzione validateFullFixUp è riservata per un utilizzo futuro. La selezione di validateFullFixUp fornisce un funzionamento identico a validateNoFixUp.
  2. L'opzione validateFullConstraints è riservata per un utilizzo futuro. La selezione di validateFullConstraints fornisce un funzionamento identico a validateBasicConstraints.
  3. Per informazioni dettagliate relative alle opzioni di convalida, fare riferimento a Proprietà della convalida per i messaggi nel dominio MRM.

API C e Java equivalenti

Notare che le opzioni equivalenti non sono disponibili in:
  • Metodi MBElement dell'API del nodo plugin Java createElementAsLastChildFromBitstream() e toBitstream()
  • Metodi dell'API del nodo plugin C cniCreateElementAsLastChildFromBitstream() e cniElementAsBitstream.

E' possibile specificare una sola opzione da ciascun gruppo, con l'eccezione di ValidateValue e ValidateContent, che possono essere utilizzate insieme per ottenere il contenuto e la convalida del valore. Se non si specifica un'opzione all'interno di un gruppo, viene utilizzata l'opzione in grassetto.

La clausola ENCODING accetta qualsiasi espressione che restituisce un valore di tipo integer. Tuttavia, è utile generare i valori di codifica dall'elenco delle costanti fornite:
       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 utilizza la codifica del gestore code.

I valori utilizzati per la clausola CCSID seguono il normale sistema di numerazione. Ad esempio, 1200 = UCS-2, 1208 = UTF-8.

Inoltre, sono supportati i seguenti valori speciali:
       0
       -1
0 utilizza il CCSID del gestore code e -1 utilizza il CCSID determinato dal programma di analisi. Questo valore è riservato.

Per le clausole assenti, vengono utilizzati i valori predefiniti forniti. Utilizzare i valori predefiniti di codifica e CCSID perché essi utilizzano i valori delle impostazioni CCSID e di codifica del gestore code.

Allo stesso modo, utilizzare i valori predefiniti per ciascuna delle opzioni relative al formato, al tipo ed alla serie di messaggi, perché molti programmi di analisi non richiedono le informazioni relative al formato, al tipo ed alla serie di messaggi; è sufficiente qualsiasi valore valido.

Quando sono state valutate tutte le espressioni, viene creato il flusso di bit appropriato.
Nota: Poiché questa funzione dispone di un numero elevato di clausole, è supportata una sintassi alternativa in cui i parametri vengono forniti come un elenco separato da virgole e non per clausole denominate. In questo caso, le espressioni devono essere nell'ordine riportato di seguito:
ENCODING -> CCSID -> SET -> TYPE -> FORMAT -> OPTIONS

L'elenco può essere troncato in qualsiasi punto ed è possibile utilizzare un'espressione vuota per le clausole per cui non viene fornito un valore.

Esempi

      DECLARE options INTEGER BITOR(FolderBitStream, ValidateContent, 
                                    ValidateValue);
      SET result = ASBITSTREAM(cursor OPTIONS options CCSID 1208);
      SET Result = ASBITSTREAM(Environment.Variables.MQRFH2.Data,,1208
                               ,,,,options);
Concetti correlati
Panoramica di ESQL
Attività correlate
Sviluppo di ESQL
Gestione di messaggi XML di grandi dimensioni
Gestione dei messaggi XML e dei flussi di bit
Riferimenti correlati
Diagrammi di sintassi: tipi disponibili
Funzioni ESQL relative ai campi
Funzione BITSTREAM (obsoleta)
Code page supportate
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ak05510_