Formats de caractères sur les mainframes
Dans Le projet d’intégrateur de transactions (TI), vous pouvez spécifier le format de caractères mainframe que l’environnement d’exécution TI créera lors de l’envoi de données au mainframe. Deux formats de caractères mainframe sont pris en charge par TI :
PIC X(n) COBOL ou RPG A
PIC G(n) COBOL, ou RPG G
Lorsque vous créez des paramètres de chaîne, des champs ou des colonnes dans TI Project, le format de type de données PIC X(n) ou RPG A est sélectionné automatiquement.
Si nécessaire, vous pouvez utiliser la commande Propriétés pour modifier le format des caractères mainframe.
Si vous sélectionnez le format PIC X ou RPG A pour une chaîne, l’environnement d’exécution TI convertit cette chaîne en chaîne de caractères EBCDIC (Extended Binary Coded Decimal Interchange Code) ou en chaîne de caractères mélangées. Plus précisément, si le composant TI que vous définissez dans TI Project est affecté à un environnement distant (RE) avec une page de codes EBCDIC, l’environnement d’exécution TI convertit une chaîne au format PIC X ou RPG A en chaîne EBCDIC. Si le RE du composant TI identifie une page de codes de jeu de caractères codés sur deux octets (DBCS), l’environnement d’exécution TI convertit une chaîne au format PIC X en chaîne mixte (non prise en charge pour RPG).
Si vous sélectionnez le format PIC G ou RPG G pour une chaîne, l’environnement d’exécution TI convertit toujours la chaîne en chaîne DBCS. Par conséquent, tout composant TI qui utilise une chaîne avec un format PIC G ou RPG G doit être affecté à un RE qui a une page de codes DBCS.
Si un composant TI utilisant une chaîne avec un format PIC G ou RPG G est affecté à un RE qui a une page de codes EBCDIC, l’environnement d’exécution TI signale une erreur de conversion lorsqu’il tente de convertir la chaîne au format PIC G ou RPG G. L’environnement d’exécution TI place un message d’erreur décrivant ce problème de conversion dans le journal des événements Windows et retourne une erreur à l’application cliente appelante.
Le tableau suivant récapitule la façon dont la sélection du format de chaîne et de la page de codes contrôle le type de conversion de caractères effectuée par l’environnement d’exécution TI.
Format chaîne | Page de codes EBCDIC | Page de codes DBCS |
---|---|---|
PIC X ou RPG A | Chaîne EBCDIC | Chaîne mixte |
PIC G ou RPG G | L’environnement d’exécution TI signale des erreurs de conversion. | Chaîne DBCS |
Valeurs de dimension de chaîne
La signification de la dimension d’une chaîne (la partie n du PIC X(n) ou RPG A(n) et la partie n des formats PIC G(n) ou RPG G(n)) est basée sur le format de caractère utilisé. Vous spécifiez la dimension d’une chaîne dans la page de propriétés DÉFINITION COBOL dans le projet Transaction Integrator (TI).
La valeur de dimension d’une chaîne au format PIC G ou RPG G donne le nombre de caractères codés sur deux octets utilisés dans la représentation mainframe de la chaîne. Aucune paire de caractères SO et SI n’est ajoutée lorsqu’une chaîne au format PIC G ou RPG G est convertie.
La valeur de dimension d’une chaîne au format PIC X ou RPG A indique le nombre d’octets utilisés dans sa représentation mainframe. Le nombre de caractères pouvant être placés dans ou extraits d’une chaîne mise en forme PIC X ou RPG A varie en fonction du nombre de :
Caractères de jeu de caractères codés sur deux octets (DBCS), chacun d’entre eux nécessitant deux octets de stockage.
Paires de caractères SO et SI nécessaires. Chaque paire de deux octets doit encapsuler chaque flux contigu de caractères DBCS.
Les développeurs utilisant TI doivent prendre en compte cette variabilité dans la taille d’une chaîne mélangée lorsqu’ils spécifient des valeurs de dimension dans TI Project.
Le nombre d’octets d’une chaîne convertie à l’aide d’une page de codes EBCDIC au format PIC X ou RPG A est identique au nombre de caractères, car il n’y a pas de caractères DBCS dans la chaîne.
Toutefois, pour une chaîne convertie à l’aide d’une page de codes DBCS au format PIC X ou RPG A, le nombre réel de caractères pouvant être placés dans un nombre donné d’octets varie. Par exemple, si la conversion vers ou à partir d’UNICODE ne nécessite pas l’utilisation de caractères DBCS (autrement dit, aucun caractère SO et SI n’est utilisé dans la chaîne mainframe), chaque caractère occupe un seul octet. Toutefois, si des caractères DBCS apparaissent dans la chaîne de l’ordinateur mainframe, les paires de caractères SO et SI sont nécessaires.
Comment l’Assistant Importation définit les chaînes
Lorsque vous utilisez l’Assistant Importation de projet d’intégrateur de transactions (TI) pour importer une définition d’hôte afin de créer de nouvelles méthodes et jeux d’enregistrements, l’Assistant sélectionne le format de caractère mainframe en fonction de la définition d’hôte importée. Le tableau suivant montre comment l’Assistant mappe différentes déclarations COBOL à une chaîne.
Type COBOL | Type de chaîne créée |
---|---|
PIC X(n) ou RPG A | Chaîne de taille n octets |
PIC G(n) ou RPG G | Chaîne de taille n caractères |