Formati di carattere del mainframe
Nel progetto Transaction Integrator (TI) è possibile specificare il formato di caratteri mainframe che verrà creato dall'ambiente di runtime TI durante l'invio di dati al mainframe. Esistono due formati di caratteri mainframe supportati da TI:
PIC X(n) COBOL, o RPG A
PIC G(n) COBOL, o RPG G
Quando si creano parametri stringa, campi o colonne in TI Project, il formato del tipo di dati PIC X(n) o RPG A viene selezionato automaticamente.
Se necessario, è possibile usare il comando Proprietà per modificare il formato del carattere mainframe.
Se si seleziona il formato PIC X o RPG A per una stringa, l'ambiente di runtime TI converte questa stringa in una stringa di caratteri EBCDIC (Extended Binary Coded Decimal Interchange Code) o in una stringa di caratteri intermixed. In particolare, se il componente TI definito in TI Project viene assegnato a un ambiente remoto (RE) con una tabella codici EBCDIC, l'ambiente di runtime TI converte una stringa con un formato PIC X o RPG A in una stringa EBCDIC. Se il re del componente TI identifica una tabella codici DBCS (Double-Byte Character Set), l'ambiente di runtime TI converte una stringa con un formato PIC X come stringa intermixed (non supportata per RPG).
Se si seleziona il formato PIC G o RPG G per una stringa, l'ambiente di runtime TI converte sempre la stringa in una stringa DBCS. Pertanto, qualsiasi componente TI che utilizza una stringa con un formato PIC G o RPG G deve essere assegnato a un RE con una tabella codici DBCS.
Se un componente TI che utilizza una stringa con un formato PIC G o RPG G viene assegnato a una tabella codici RE con una tabella codici EBCDIC, l'ambiente di runtime TI segnala un errore di conversione quando tenta di convertire la stringa in o dal formato PIC G o RPG G. L'ambiente di runtime TI inserisce un messaggio di errore che descrive questo problema di conversione nel registro eventi di Windows e restituisce un errore all'applicazione client richiamata.
Nella tabella seguente viene riepilogato il modo in cui la selezione del formato stringa e della tabella codici controlla il tipo di conversione dei caratteri eseguita dall'ambiente di runtime TI.
Formato stringa | Tabella codici EBCDIC | Tabella codici DBCS |
---|---|---|
PIC X o RPG A | Stringa EBCDIC | Stringa intermixed |
PIC G o RPG G | L'ambiente di runtime TI segnala errori di conversione. | Stringa DBCS |
Valori delle dimensioni stringa
Il significato della dimensione di una stringa (la n parte del PIC X(n) o RPG A(n) e la n parte dei formati PIC G(n) o RPG G(n) è basata sul formato carattere in uso. Specificare la dimensione di una stringa nella pagina delle proprietà COBOL Definition in Transaction Integrator (TI) Project.You specify a string's dimension on the COBOL Definition property page in Transaction Integrator (TI) Project.
Il valore della dimensione per una stringa con un formato PIC G o RPG G fornisce il numero di caratteri a byte doppio utilizzati nella rappresentazione mainframe della stringa. Non viene aggiunta alcuna coppia di caratteri SO e SI quando viene convertita una stringa con un formato PIC G o RPG G.
Il valore della dimensione per una stringa con un formato PIC X o RPG A fornisce il numero di byte utilizzati nella relativa rappresentazione mainframe. Il numero di caratteri che è possibile inserire o prendere da una stringa formattata PIC X o RPG A varia a seconda del numero di :
Caratteri DBCS (Double-Byte Character Set), ognuno dei quali richiede due byte di spazio di archiviazione.
Sono necessarie coppie di caratteri SO e SI. Ogni coppia a due byte deve incapsulare ogni flusso contiguo di caratteri DBCS.
Gli sviluppatori che usano TI devono tenere conto di questa variabilità nelle dimensioni di una stringa mescolata quando specificano i valori delle dimensioni in TI Project.
Il numero di byte per una stringa convertita utilizzando una tabella codici EBCDIC con un formato PIC X o RPG A è identico al numero di caratteri perché nella stringa non sono presenti caratteri DBCS.
Tuttavia, per una stringa convertita utilizzando una tabella codici DBCS con un formato PIC X o RPG A, il numero effettivo di caratteri che possono essere inseriti in un determinato numero di byte varia. Ad esempio, se la conversione in o da UNICODE non richiede l'uso di caratteri DBCS , ovvero non viene usato alcun carattere SO e SI nella stringa del mainframe, ogni carattere occupa un singolo byte. Tuttavia, se i caratteri DBCS vengono visualizzati all'interno della stringa mainframe, sono necessarie le coppie di caratteri SO e SI.
Come l'Importazione guidata definisce le stringhe
Quando si usa l'Importazione guidata progetto Di Integrazione transazioni (TI) per importare una definizione host per creare nuovi metodi e recordset, la procedura guidata seleziona il formato di caratteri mainframe in base alla definizione host importata. Nella tabella seguente viene illustrato come la procedura guidata esegue il mapping di dichiarazioni COBOL diverse a una stringa.
Tipo COBOL | Tipo di stringa creata |
---|---|
PIC X(n) o RPG A | Stringa di dimensioni n byte |
PIC G(n) o RPG G | Stringa di dimensioni n caratteri |