Regole per specificare simboli ed elenchi di simboli

Ogni simbolo ha un nome e un valore. Seguire queste regole per selezionare il nome del simbolo e specificare i valori per i simboli, singolarmente o in un elenco di simboli.

Nomi simboli

Il nome di un simbolo deve contenere solo lettere maiuscole e minuscole, numeri e i caratteri speciali dollaro ($), sottolineatura (_), trattino (-), cancelletto (#), punto (.) e chiocciola (@). Il nome è sensibile al maiuscolo / minuscolo, quindi le lettere maiuscole sono considerate diverse dalle lettere minuscole.

Per includere un simbolo in un modello di documento, è possibile specificarlo come riferimento simbolo, che è il nome del simbolo preceduto da una e commerciale (&) e termina con un punto e virgola (;). In alternativa, è possibile specificare il nome del simbolo utilizzando il comando #echo . Quando si specifica il nome del simbolo nell'applicazione, non utilizzare la e commerciale e il punto e virgola. Ad esempio, il riferimento simbolo &mytitle; in un modello corrisponde al nome simbolo mytitle in un elenco di simboli.

Separatore in un elenco di simboli

L'opzione SYMBOLLIST nei comandi DOCUMENT CREATE e DOCUMENT SET specifica una stringa di caratteri composta da una o più definizioni con separatori a byte singolo. Per impostazione predefinita, il separatore simbolo è una e commerciale, ma è possibile sovrascriverlo utilizzando l'opzione DELIMITER sui comandi. Provare a scegliere un separatore simbolo che non verrà mai utilizzato all'interno di un valore simbolo nell'elenco simboli, poiché è richiesta una gestione speciale se si desidera utilizzare il separatore simbolo all'interno di un valore simbolo. È possibile utilizzare un carattere non stampabile.

Esistono diversi valori DELIMITER non consentiti. I valori non consentiti sono:
  • null (binario X'00 ')
  • shift in (binario X'0E' )
  • shift out (binario X'0F' )
  • spazio (binario X'40 ')
  • segno più (binario X'4E' )
  • colon (binario X'7A' )
  • uguale (binario X'7E' )
  • segno percentuale (binario X'6C' )
  • barra rovesciata (binario X'E0')

Caratteri speciali nei valori dei simboli

I valori dei simboli possono contenere qualsiasi carattere. Tuttavia, è richiesta una gestione speciale se è necessario includere i seguenti caratteri nei valori dei simboli:
  • Il segno più (+).
  • Il segno percentuale (%).
  • Il segno uguale (=).
  • Il carattere utilizzato come separatore di simboli per un elenco di simboli. La gestione speciale è richiesta solo per questo carattere quando la definizione del simbolo viene fornita in un elenco di simboli e non viene applicata quando si utilizza il comando DOCUMENT SET per impostare un singolo valore del simbolo con le opzioni SYMBOL e VALUE.

Nel valore del simbolo, è possibile utilizzare le sequenze di escape per includere caratteri come questi che hanno un significato speciale. Una sequenza di escape è costituita dal segno di percentuale, seguito da due caratteri che sono cifre esadecimali (ovvero, 0-9, a - f e A-F). Quando i valori dei simboli vengono inseriti nella tabella dei simboli, il simbolo di percentuale e le due cifre esadecimali che lo seguono vengono sostituiti dall'equivalente EBCDIC del singolo carattere ASCII indicato dalle due cifre.

Alcune utili combinazioni sono riportate nella Tabella 1 .
Tabella 1. Le sequenze di escape che possono essere utilizzate per rappresentare simboli speciali
Carattere Sequenza di escape
Segno più + %2B
Segno percentuale% 25%
Segno di uguale = %3D
E commerciale & (separatore simbolo predefinito) %26
Se i caratteri che seguono il segno di percentuale non sono due cifre esadecimali valide, il segno di percentuale e i seguenti caratteri vengono inseriti nella tabella dei simboli come appaiono nell'elenco dei simboli.

Se si preferisce non utilizzare le sequenze di escape, è possibile specificare l'opzione UNESCAPE nel comando DOCUMENT CREATE o DOCUMENT SET. Quando si specifica questa opzione, non viene eseguita alcuna conversione e i valori dei simboli vengono inseriti nella tabella dei simboli esattamente come sono stati immessi.

Tuttavia, l'opzione UNESCAPE non consente di includere il carattere utilizzato come separatore di simboli all'interno di un valore di simbolo in un elenco di simboli. Se si desidera utilizzare l'opzione UNESCAPE, scegliere un separatore simbolo che non verrà mai utilizzato all'interno di un valore simbolo. In alternativa, è possibile utilizzare le opzioni SYMBOL e VALUE nel comando DOCUMENT SET per specificare i valori simbolo che contengono il carattere utilizzato come separatore simbolo, poiché il separatore simbolo non ha un significato speciale quando viene usato nell'opzione VALUE.

Spazi nei valori dei simboli

Se si desidera includere un carattere spazio in un valore simbolo, CICS® consente di utilizzare una delle seguenti rappresentazioni:
  • Un carattere spazio.
  • Un segno percentuale seguito dalle cifre esadecimali 20 (%20).
  • Un segno più.
Una di queste rappresentazioni viene interpretata come uno spazio quando il valore del simbolo viene inserito nella tabella dei simboli. Ciò estende la specifica HTML per il tipo di contenuto application / x - www - form - urlencoded , che usa il segno più.

Tuttavia, non è possibile utilizzare un segno più o la sequenza di escape %20 per indicare un carattere spazio quando l'opzione UNESCAPE viene utilizzata per impedire a CICS di annullare l'escape dei valori dei simboli contenuti in un elenco di simboli o nell'opzione VALUE. In questi casi, è necessario utilizzare un carattere spazio per indicare uno spazio, poiché i segni più non vengono convertiti in spazi quando viene utilizzata l'opzione UNESCAPE.

Esempio: definizione di simboli senza sequenze di escape

Questo esempio mostra come passare i valori dei simboli al gestore documenti senza utilizzare le sequenze di escape. I valori dei simboli in questo elenco contengono i segni più incorporati, i segni di percentuale e le e commerciali, nessuno dei quali deve essere sottoposto all'elaborazione di unescape.
EXEC CICS DOCUMENT CREATE
DOCTOKEN(ATOKEN)
DELIMITER('!')
SYMBOLLIST('COMPANY=BLOGGS & SON!ORDER=NUTS+BOLTS')
LISTLENGTH(37)
UNESCAPED

In questo esempio, il simbolo COMPANY ha un valore di 'BLOGGS & SON 'e il simbolo ORDER ha un valore di 'NUTS + BOLTS'.

L'utilizzo di un carattere diverso dalla e commerciale come separatore simbolo indica che è possibile utilizzare una e commerciale in 'BLOGGS & SON'. Il separatore di simboli utilizzato in questo esempio è '!', ma è preferibile utilizzare un carattere non stampabile che non appare nel valore del simbolo.

L'utilizzo dell'opzione UNESCAPE garantisce che il segno più in 'NUTS + BOLTS' non venga convertito in spazio. Poiché è stata utilizzata l'opzione UNESCAPE, è necessario utilizzare un carattere spazio, piuttosto che un segno più, per indicare dove sono necessari spazi nel valore simbolo 'BLOGGS & SON'. Ciò significa che i dati non sono più conformi alla specifica per il tipo di contenuto application / x - www - form - urlencoded.