Accéder au contenu principal

Considérations Cobol

Alors qu'il est possible de travailler avec des fichiers Cobol à l'aide de la représentation spécifique Cobol, ces fichiers peuvent également être gérés avec la représentation Flat (Plate). Cette section décrit certains facteurs à prendre en compte lorsque vous travaillez avec des fichiers Cobol à l'aide de la représentation Flat (Plate).

Les propriétés pour l'importateur Cobol sont :
  • Character Encoding (Encodage de caractères) - Spécifie l'encodage de caractères pour les données à traiter. Pour le Cobol IBM, l'encodage sera généralement de type EBCDIC, comme CP037 ou IBM037. Pour les autres environnements, l'encodage plus standard ASCII (UTF-8) sera généralement utilisé. Pour plus d'informations, consultez Encodage des caractères.

  • Copybook format (Format du copybook) - Spécifie le format de la source du copybook. S'il n'existe pas de numéros de séquence, utilisez l'option Free form (Forme libre). S'il existe des numéros de séquence, utilisez les spécifications de colonne pour indiquer où commence la source réelle (après le numéro de séquence et le caractère de continuation). Les valeurs de colonne standard sont celles par défaut.

  • Is each record separated by a newline character? (Les enregistrements sont-ils tous séparés par un saut de ligne ?) - Spécifiez cette propriété dans les (rares) cas où chaque enregistrement est séparé par un saut de ligne qui n'est pas spécifié dans la définition Cobol. Autrement dit, les données sont une combinaison de nombreux enregistrements positionnels, chacun étant séparé par un caractère de saut de ligne. Si vous utilisez cette propriété, l'élément Record (Enregistrement) dans la structure générée possédera un saut de ligne comme terminateur. Si vous le souhaitez, vous pouvez remplacer le saut de ligne par une autre suite de caractères.

  • Les structures de référence doivent-elles être créées avec la structure principale ? - Si vous cochez cette case, les structures supplémentaires créées seront des structures de référence. La structure principale hérite de la structure de référence. Il existe une structure de référence pour le copybook et d'autres structures de référence pour les clauses REDEFINES (REDÉFINIT) (choix). Dans les clauses REDEFINES (REDÉFINIT), chaque alternative devient une structure de référence unique.

L'importateur Cobol génère des structures pour chaque définition d'enregistrement de niveau supérieur dans le copybook importé.

Le tableau suivant montre comment les éléments de données Cobol élémentaires sont mappés aux types de données, en se basant sur leurs clauses USAGE (UTILISATION) et PICTURE (IMAGE). Dans un souci de simplicité, le tableau utilise les abréviations suivantes :
  • BINARY (BINAIRE) - Un élément avec COBOL USAGE BINARY (UTILISATION COBOL BINAIRE), COMP, COMP-4 ou COMP-5.

  • PACKED-DECIMAL (DÉCIMAL-CONDENSÉ) - Un élément avec COBOL USAGE COMP-3 (UTILISATION COBOL COMP-3) or PACKED-DECIMAL (DÉCIMAL-CONDENSÉ).

  • ZONED-DECIMAL (DÉCIMAL-ZONÉ) - Un élément avec COBOL USAGE DISPLAY (AFFICHAGE DE L'UTILISATION COBOL), dont la clause PICTURE (IMAGE) contient uniquement les symboles 9, V, S ou P.

 

Type de données

Format de données

BINARY (BINAIRE), signé, totalChiffres < 5

Short (16) - Court (16)

-

BINARY (BINAIRE), non signé, totalChiffres < 5

Unsigned Short (16) - Court non signé (16)

-

BINARY (BINAIRE), signé, totalChiffres < 10

Integer (32) - Entier (32)

-

BINARY (BINAIRE), non signé, totalChiffres < 10

Unsigned Integer (32) - Entier non signé (32)

-

BINARY (BINAIRE), totalChiffres < 19

Long (64)

-

PACKED-DECIMAL (DÉCIMAL-CONDENSÉ), signé

Decimal (Décimal)

DF_DEC_PACKED_SIGNED

PACKED-DECIMAL (DÉCIMAL-CONDENSÉ), non signé

Decimal (Décimal)

DF_DEC_PACKED

COMP-1

Float (32)

-

COMP-2

Double (64)

-

ZONED-DECIMAL (DÉCIMAL-ZONÉ), signé, SIGN LEADING SEPARATE (SÉPARÉ AVANT SIGN)

Decimal (Décimal)

DF_DEC_ZONED_LEADING_SEP

ZONED-DECIMAL (DÉCIMAL-ZONÉ), signé, SIGN LEADING SEPARATE (AVANT SIGN)

Decimal (Décimal)

DF_DEC_ZONED_LEADING

ZONED-DECIMAL (DÉCIMAL-ZONÉ), signé, SIGN LEADING SEPARATE (SÉPARÉ APRÈS SIGN)

Decimal (Décimal)

DF_DEC_ZONED_TRAILING_SEP

ZONED-DECIMAL (DÉCIMAL-ZONÉ), signé, SIGN LEADING SEPARATE (APRÈS SIGN)

Decimal (Décimal)

DF_DEC_ZONED

ZONED-DECIMAL (DÉCIMAL-ZONÉ), non signé

Decimal (Décimal)

-

DISPLAY (AFFICHAGE), BLANK WHEN ZERO (VIDE QUAND ZÉRO)

Decimal (Décimal)

DF_DEC_BWZ

DISPLAY (AFFICHAGE), autres symboles PICTURE (IMAGE)

String

-
L'importateur Cobol supporte les fonctionnalités Cobol suivantes :
  • Numeric Scaling (Mise à l'échelle numérique) - Le caractère décimal implicite V dans la clause PICTURE (IMAGE) est implémenté à l'aide de la propriété Decimal Places de l'élément.

  • Level 88 (Niveau 88) - Les clauses Level 88 (Niveau 88) sont supportées à l'aide d'un type d'élément Value (Valeur) pour l'élément (comme pour les valeurs de code). Le nom de la clause Level 88 (Niveau 88) est inclus comme description de l'élément de valeur.

  • OCCURS DEPENDING ON (OCCURRENCES EN FONCTION DE) - Cette fonctionnalité définira le nombre minimal et maximal d'occurrences en fonction de la fourchette d'occurrences spécifiée. Pour implémenter la portion DEPENDING ON, utilisez une fonction FixedLoop.

  • REDEFINES (REDÉFINIT) - La clause REDEFINES (REDÉFINIT) est implémentée à l'aide du type de groupe Choice. Type de groupe de l'élément parent de l'élément contenant la fonction prenant la valeur de l'élément dont dépend l'occurrence.La clause REDEFINES (REDÉFINIT) est configurée à Choice. Chaque élément avec une clause REDEFINES (REDÉFINIT) est une branche du choix. Voir ci-dessous pour les restrictions concernant cette clause.

    Vous pouvez utiliser l'expression IsPresent pour définir la condition utilisée pour déterminer la clause REDEFINES (REDÉFINIT) (membre du Choice) à rendre disponible lors de la lecture de l'entrée. Par défaut, une expression Constant IsPresent est générée pour chaque membre du Choice, le premier membre possédant la valeur true (vrai), et les autres membres possédant la valeur false (faux). Ces valeurs peuvent facilement être modifiées si vous souhaitez sélectionner un membre différent sans condition.

  • REDEFINES Record Types (Types d'enregistrement avec la clause REDÉFINIT) - Lorsque les enregistrements sont redéfinis avec la clause REDEFINES (REDÉFINIT), pour chaque membre du Choice (voir ci-dessus), si le premier champ possède une seule constante de niveau 88, un initiateur sera généré pour le champ et la longueur du champ sera réduite par la taille de la constante niveau 88 (en général, à zéro). Cela permet au Reader et au Writer plats de consommer ou de générer ces champs en fournissant le bon enregistrement.

  • Binaire VS Character - Newline (Caractère - Saut de ligne) fonction prenant la valeur de l'élément - Si tout l'encodage pour les données est déterminé comme étant un caractère, la détection d'un saut de ligne séparant les enregistrements est ajoutée de façon facultative (et par défaut) à la structure pendant l'import. Assurez-vous que le saut de ligne dans les propriétés de la représentation soit correct pour le type de données que vous importez. Par défaut, le caractère de nouvelle ligne sera un saut de ligne.

Ci-dessous, quelques problèmes et restrictions liés à l'import du Copybook Cobol :
  • Alignment or SYNCHRONIZED (Alignement ou SYNCHRONISÉ) - Aucun ajustement n'est effectué lorsque les valeurs SYNCHRONIZED (SYNCHRONISÉ) sont rencontrées. Par ailleurs, aucune tentative n'est effectuée pour aligner les données binaires comme cela peut l'être requis pour certaines architectures. Les données binaires doivent être ajustées pour être alignées sur la limite 32-bits la plus proche dans l'enregistrement. Cependant, cela dépend du compilateur et de la plateforme utilisée. Si un ajustement est requis, vous devez procéder manuellement en ajoutant le remplisseur approprié.

  • Level 88 for Non-leaf Elements (Niveau 88 pour les éléments non leaf) - Les valeurs du niveau 88 ne sont pas supportées pour les éléments non leaf. Un avertissement sera retourné et les valeurs seront ignorées.

  • REDEFINES Padding (Remplissage REDÉFINIT) - Aucun remplissage supplémentaire n'est ajouté aux sous-arbres d'éléments impliqués dans une clause REDEFINES (REDÉFINIT). Si vous traitez des enregistrements positionnels de longueur fixe sans délimiteurs de ligne, vous devez vous assurer que le remplissage approprié soit renseigné (en utilisant en général les déclarations FILLER (REMPLISSEUR)) pour aligner les lignes.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.