Importazione da COBOL: funzioni supportate

Nella tabella riportata di seguito viene descritta la modalità di condizionamento delle definizioni COBOL sulle impostazioni dello schema XML nel modello messaggio.

In alcuni tipi xsd è presente "-" dopo il tipo. Ciò indica che si tratta di un tipo semplice anonimo basato su tale tipo. Per le stringhe, lo scopo del tipo anonimo è aggiungere una restrizione di lunghezza; per i tipi numerici, lo scopo è aggiungere una restrizione di valore minima o massima.
Clausola COBOL Tipo di dati schemi XML Note
PIC A xsd:string-  
PIC G xsd:string-

Impostare il nome locale al momento della compilazione su ja_JP in Windows - Preferenze - Importazione - COBOL per elaborarlo.

PIC N xsd:string-

Impostare il nome locale al momento della compilazione su ja_JP in Windows - Preferenze - Importazione - COBOL per elaborarlo.

PIC X xsd:string-  
PIC 9(n) n = 1-4 xsd:short - DISPLAY, COMP o COMP-3
PIC 9(n) n = 5-9 xsd:int - DISPLAY, COMP o COMP-3
PIC 9(n) n = 10-18 xsd:long - DISPLAY, COMP o COMP-3
PIC 9(n) n = 19-31 xsd:integer - DISPLAY, COMP o COMP-3
PIC 9(n)V9(m) xsd:decimal - DISPLAY, COMP o qualsiasi virgola decimale virtuale COMP-3
COMP-1 xsd:float -  
COMP-2 xsd:double -  
Qualsiasi stringa modificata xsd:string-  
Qualsiasi numero modificato xsd:string- Ad esempio, PIC Z
VALUE Tutto E' possibile importare clausole VALUE di livello diverso da 88 come valori predefiniti dello schema (opzione della procedura guidata di importazione).

Nella tabella riportata di seguito viene descritta la modalità di condizionamento delle definizioni COBOL sulle funzioni CWF fisiche degli elementi creati nel modello messaggio.

Parola chiave COBOL Tipo fisico CWF Funzioni lunghezza CWF Altre funzioni CWF
PIC X(n)

PIC A(n)

Stringa a lunghezza fissa Lunghezza = n

Unità di lunghezza = byte

Giustificazione = giustificazione a sinistra

Carattere di riempimento = SPACE

PIC G(n)

PIC N(n)

Stringa a lunghezza fissa Lunghezza = n

Unità di lunghezza = Caratteri

Giustificazione = giustificazione a sinistra

Carattere di riempimento = SPACE

PIC 9(n) DISPLAY n=1-31 Decimale esterno Lunghezza = n

Unità di lunghezza = byte

Giustificazione = giustificazione a destra

Carattere di riempimento = "0"

Segnato = Non selezionato

Orientamento segnato = finale

PIC 9(n) COMP, COMP-4, COMP-5 o BINARY Numero intero Lunghezza = 2, 4 o 8 basata su n

Unità di lunghezza = byte

Segnato = Non selezionato

Orientamento segnato = vuoto

PIC 9(n) COMP-3 n=1-18 Decimale compresso Lunghezza = CEILING((n+1)/2)

Unità di lunghezza = byte

Segnato = Non selezionato

Orientamento segnato = vuoto

PIC S9(n) DISPLAY n=1-31 Decimale esterno Lunghezza = n

Unità di lunghezza = byte

Segnato = Selezionato

Orientamento segnato = finale

*Vedere la nota 1

PIC S9(n) COMP o COMP-3

n=1-18

Numero intero o decimale compresso Lunghezza = Fare riferimento alle definizioni COMP e COMP-3 riportate sopra

Unità di lunghezza = byte

Segnato = Selezionato

Orientamento segnato = vuoto

PIC 9(m)V9(n) DISPLAY n=1-31 Decimale esterno Lunghezza = n+m

Unità di lunghezza = byte

Segnato = Non selezionato

Orientamento segnato = finale

Virgola decimale virtuale = n

PIC 9(m)V9(n) COMP o COMP-3 Numero intero o decimale compresso Lunghezza = CEILING((n+m+1)/2) per COMP-3

Lunghezza = 2, 4 o 8 per COMP

Unità di lunghezza = byte

Segnato = Non selezionato

Orientamento segnato = vuoto

Virgola decimale virtuale = n

COMP-1 Float Lunghezza = 4

Unità di lunghezza = byte

Segnato = Selezionato

Orientamento segnato = vuoto

COMP-2 Float Lunghezza = 8

Unità di lunghezza = byte

Segnato = Selezionato

Orientamento segnato = vuoto

SYNC Valore float, numero intero o decimale compresso   Numero di elementi iniziali ignorati come appropriato

Numero di elementi finali ignorati come appropriato

Allineamento byte come appropriato

*Vedere la nota 2

Note:
  1. L'orientamento segnato è in grado di prendere uno dei seguenti valori in base alle parole chiave SEPARATE, LEADING o TRAILING nella definizione COBOL:
    • Iniziale
    • Valore separato iniziale
    • Finale
    • Valore separato finale
  2. La parola chiave SYNC provoca l'allineamento del campo in un limite di 1, 2, 4, o 8 byte. È possibile che ciò provochi l'aggiunta di "byte di tolleranza" prima o dopo il campo. Il numero di elementi iniziali ignorati è il numero dei byte aggiunti in precedenza; il numero di elementi finali ignorati è il numero dei byte aggiunti successivamente.

    Il numero di elementi finali e iniziali ignorati sono calcolati per ciascuno degli elementi importati dal programma di importazione indipendentemente dalla clausola SYNC. Dispongono di valori diversi da zero quando è presente la clausola SYNC.

    Se è presente un elemento ripetuto, il numero di elementi finali e iniziali ignorati vengono utilizzati per la prima ricorrenza dell'elemento ripetuto; per le ricorrenze successive viene utilizzato solo il numero di elementi finali ignorati.

    Consultare il materiale di riferimento COBOL per dettagli sui campi che richiedono l'allineamento dei byte.

  3. Il programma di importazione COBOL richiede che tutti i file importati contengano la sintassi corretta. Se ciò non avverrà, i risultati saranno imprevedibili.
  4. I tipi di dati COBOL, compresi POINTER, COMP-X, INDEX e PROCEDURE-POINTER, non sono supportati.
  5. Un file COBOL che contiene la parola chiave NATIVE provoca un errore e l'importazione non verrà effettuata.
  6. Gli elementi dati di livello 66 e 77 COBOL non sono importati.
  7. Non è possibile attribuire i valori binari esadecimali ai caratteri letterali non numerici. Non è possibile che risiedano nella sezioni LINKAGE SECTION importate dal programma di importazione COBOL. Sono in grado di risiedere in qualsiasi altro punto del file COBOL. In alternativa, è possibile convertire il valore esadecimale in una stringa di caratteri per PIC X o in un numero decimale per PIC 9.
  8. Se i nomi degli elementi sono in conflitto con le parole chiave in linguaggio Java, sono modificati con un prefisso dotato di un trattino basso singolo.
  9. Le estensioni orientate dell'oggetto di COBOL 85 non sono supportate. Ad esempio, OBJECT-REFERENCE non è supportato.
  10. Clausola COBOL OCCURS DEPENDING ON. Le proprietà CWF Allineamento byte, Numero di elementi iniziali ignorati e Numero di elementi finali ignorati degli elementi interni a tale struttura non sono configurate in modo corretto. E' necessario correggerle utilizzando l'editor dei messaggi.
  11. Quando nel file di origine COBOL importato è contenuto il valore QUOTE o QUOTES nella relativa clausola di una stringa immagine, il funzionamento predefinito prevede il completamento dei dati con virgolette doppie a meno che l'opzione di compilazione COBOL QUOTE non venga impostata su SINGLE nella pagina Opzioni di importazione della procedura guidata del programma di importazione COBOL.

Numeri decimali esterni segnati

Il componente CWF (Custom Wire Format) di WebSphere Message Broker fornisce supporto per modellare dati numerici utilizzando il formato dati decimali esterni (anche noto come decimali Zoned). In questo formato viene memorizzato un numero internamente come dati carattere decimali. Ad esempio, in un sistema in cui si utilizza il codice EBCDIC, il numero 1234 memorizzato in un campo decimale esterno a 4 byte viene memorizzato come la stringa di caratteri"1234" e la relativa rappresentazione esadecimale interna reale è F1F2F3F4.

Con numeri decimali esterni segnati, è possibile incorporare il segno nei dati reali modificando la prima metà del primo o dell'ultimo byte (in base all'utilizzo di una rappresentazione iniziale o finale del segno). Normalmente viene utilizzato "0xC" per rappresentare un numero positivo, "0xD" per rappresentare un numero negativo e "0xF" per rappresentare un numero non segnato.

Nota: In generale, è possibile utilizzare "0xA", "0xC", "0xE" o "0xF" per indicare un valore positivo e "0xB" o "0xD" per indicare un valore negativo. La rappresentazione preferita reale dipende dall'architettura hardware reale.

Su macchine ASCII sono presenti numerosi meccanismi per la rappresentazione interna di dati decimali esterni. Una rappresentazione ("Segno ASCII") utilizzata dalle macchine pSeries di IBM utilizza codici ASCII normali (compresi tra "0" [hex 30] e "9" [hex 39]) per la prima e l'ultima cifra dei numeri positivi e non segnati e i caratteri compresi tra "p" [hex 70] e "y" [hex 79] per i numeri negativi.

Un metodo alternativo (Firma EBCDIC personalizzata) viene utilizzato in altre macchine basate su codice ASCII. Questo utilizza gli stessi caratteri di una macchina basata su EBCDIC, sebbene la rappresentazione esadecimale interna reale sia diversa. Utilizzando tale tecnica la stringa di caratteri per le piattaforme EBCDIC e ASCII è identica. Sarà possibile ricevere un messaggio da una piattaforma EBCDIC (creato da un copybook COBOL in cui sono contenute voci come PIC XXX e PIC S999) e convertire l'intero messaggio in codice ASCII o viceversa. La stringa di caratteri che rappresenta il campo decimale esterno nel messaggio (in seguito alla conversione ASCII/EBCDIC) esegue la mappatura al punto di codice che rappresenta la firma corretta del decimale. Con questo metodo esiste una limitazione. I caratteri parentesi graffe sono varianti (ad esempio, dispongono di punti di codice differenti in code page EBCDIC differenti). Questo meccanismo funziona solo per le code page EBCDIC in cui i caratteri parentesi graffe "{" e "}" (utilizzati per rappresentare 0 segnati) dispongono dei punti di codice x'C0' e x'D0'. Ad esempio, funzionerà per code page 500 e non per code page 871 in cui le parentesi graffe dispongono di punti di codice X'8E' e X'9C.

In un ambiente ASCII (determinato dalla proprietà CCSID durante il runtime), il valore predefinito per l'input e l'output è la rappresentazione "Segno ASCII". E' possibile specificare la rappresentazione applicabile nel livello fisico CWF per attributi locali ed elementi locali dei tipi decimali, float e numeri interi.

Nota: Questa operazione è appropriata solo per gli elementi o gli attributi che dispongono di una rappresentazione fisica decimale esterna e che dispongono di un segno incorporato ("iniziale" o "finale") determinato dalla proprietà "Orientamento segnato".

Nella tabella riportata di seguito viene descritta la rappresentazione interna (valore esadecimale reale e di carattere) della prima e dell'ultima cifra dei numeri decimali esterni rispettivamente con un segno iniziale e un segno finale inclusi (incorporati). Nota: nella tabella non viene specificata la rappresentazione per valori non segnati, che sono 0x30-0x39 per ASCII e 0xF0-0xF9 per EBCDIC.

  Valori segnati positivi   Valori segnati negativi
Ambiente ASCII Ambiente EBCDIC Ambiente ASCII Ambiente EBCDIC
Cifra Firma ASCII Firma EBCDIC personalizzata   Firma ASCII Firma EBCDIC personalizzata  
0 0(30) {(7B) {(C0) p(70) }(7D) }(D0)
1 1(31) A(41) A(C1) q(71) J(4A) J(D1)
2 2(32) B(42) B(C2) r(72) K(4B) K(D2)
3 3(33) C(43) C(C3) s(73) L(4C) L(D3)
4 4(34) D(44) D(C4) t(74) M(4D) M(D4)
5 5(35) E(45) E(C5) u(75) N(4E) N(D5)
6 6(36) F(46) F(C6) v(76) O(4F) O(D6)
7 7(37) G(47) G(C7) w(77) P(50) P(D7)
8 8(38) H(48) H(C8) x(78) Q(51) Q(D8)
9 9(39) I(49) I(C9) y(79) R(52) R(D9)

Nella prossima tabella vengono forniti alcuni esempi per una serie di numeri semplici rappresentativi di ciò che è possibile inviare o ricevere utilizzando questi approcci.

  Segno iniziale Segno finale
  Ambiente ASCII Ambiente EBCDIC Ambiente ASCII Ambiente EBCDIC
Valore decimale Firma ASCII Firma EBCDIC personalizzata   Firma ASCII Firma EBCDIC personalizzata  
1234

31 32 33 34
"1234"

31 32 33 34
"1234"

F1 F2 F3 F4
"1234"

31 32 33 34
"1234"

31 32 33 34
"1234"

F1 F2 F3 F4
"1234"

+1234

31 32 33 34
"1234"

41 32 33 34
"A234"

C1 F2 F3 F4
"A234"

31 32 33 34
"1234"

31 32 33 44
"123D"

F1 F2 F3 C4
"123D"

-1234

71 32 33 34
"q234"

4A 32 33 34
"J234"

D1 F2 F3 F4
"J234"

31 32 33 74
"123t"

31 32 33 4D
"123M"

F1 F2 F3 D4
"123M"

7890

37 38 39 30
"7890"

37 38 39 30
"7890"

F7 F8 F9 F0
"7890"

37 38 39 30
"7890"

37 38 39 30
"7890"

F7 F8 F9 F0
"7890"

+7890

37 38 39 30
"7890"

47 38 39 30
"G890"

C7 F8 F9 F0
"G890"

37 38 39 30
"7890"

37 38 39 7B
"789{"

F7 F8 F9 C0
"789{"

-7890

77 38 39 30
"w890"

50 38 39 30
"P890"

D7 F8 F9 F0
"P890"

37 38 39 70
"789p"

37 38 39 7D
"789}"

F7 F8 F9 D0
"789}"

Concetti correlati
Creazione di modelli di messaggio
Il modello di messaggio
Attività correlate
Sviluppo di modelli di messaggio
Gestione di un file di definizione dei messaggi
Gestione degli oggetti del modello messaggio
Riferimenti correlati
Informazioni di riferimento del modello di messaggio
Proprietà dell'oggetto modello di messaggio
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ad06900_