Read from Variable Format File

Read from Variable Format File lit des données à partir d'un fichier contenant des enregistrements dont la mise en page varie. Chaque enregistrement est lu en tant que champ de liste. Vous pouvez spécifier la balise qui indique le type d'enregistrement parent et tous les autres types d'enregistrement deviendront des champs de liste sous le parent.

Les fichiers de format variable présentent les caractéristiques suivantes :

  • Les enregistrements dans le fichier contiennent des champs différents et des nombres de champs différents.
  • Chaque enregistrement doit contenir une balise (généralement un nombre) identifiant le type d'enregistrement.
  • Les relations hiérarchiques sont prises en charge.

Exemple de fichier au format variable

Cet exemple présente un fichier de format variable contenant des informations sur la vérification de l'activité de compte de deux clients, Joe Smith et Anne Johnson. Dans cet exemple, le fichier est un fichier délimité qui utilise la virgule comme délimiteur de champ.

001   Joe,Smith,M,100 Main St,555-234-1290
100   CHK12904567,12/2/2007,6/1/2012,CHK
200   1000567,1/5/2012,Fashion Shoes,323.12
001   Anne,Johnson,F,1202 Lake St,555-222-4932
100   CHK238193875,1/21/2001,4/12/2012,CHK
200   1000232,3/5/2012,Blue Goose Grocery,132.11
200   1000232,3/8/2012,Trailway Bikes,540.00

Le premier champ dans chaque enregistrement contient la balise qui identifie le type d'enregistrement et, par conséquent, le format de l'enregistrement :

  • 001 : enregistrement de client
  • 100 : enregistrement de compte
  • 200 : enregistrement de transaction de compte

Pour les fichiers délimités, il est courant que la valeur de balise (001, 100, 200) consiste en un nombre d'octets fixe au début de l'enregistrement, comme indiqué dans l'exemple ci-dessus.

Chaque enregistrement est doté de son propre format :

  • 001 : Prénom,Nomdefamille,Sexe,Adresse,NuméroTéléphone
  • 100 : IDdeCompte,DateD'ouverture,DateD'expiration,TypeDeCompte
  • 200 : IDdeTransaction,DateDeTransaction,Fournisseur,Montant

Le format d'enregistrement 100 (enregistrement de compte) est un enfant de l'enregistrement 001 précédent et le format d'enregistrement 200 (enregistrement de transaction de compte) est un enfant de l'enregistrement 100 précédent (enregistrement de compte). Ainsi, dans le fichier d'exemple, le compte de Joe Smith, CHK12904567, présentait une transaction datant du 05/01/12 d'un montant de 323,12 chez Fashion Shoes. De même, le compte d'Anne Johnson, CHK238193875, présentait deux transactions, l'une du 05/03/12 chez Blue Goose Grocery et l'autre du 08/03/12 chez Trailway Bikes.

Onglet de propriétés du fichier

Nom de l'option Description

Server name

Indique si le fichier que vous sélectionnez comme entrée figure sur l'ordinateur exécutant Enterprise Designer ou sur le serveur Spectrum™ Technology Platform. Si vous sélectionnez un fichier sur l'ordinateur local, le nom du serveur sera Mon ordinateur. Si vous sélectionnez un fichier sur le serveur, le nom du serveur sera Spectrum™ Technology Platform.

Nom de fichier

Indique le chemin du fichier. Cliquez sur le bouton d'ellipse (...) pour accéder au fichier souhaité.

Vous pouvez lire plusieurs fichiers en utilisant un caractère générique pour lire les données de plusieurs fichiers du répertoire. Les caractères génériques * et ? sont pris en charge. Par exemple, vous pouvez utiliser *.csv pour lire tous les fichiers portant une extension .csv placés dans le répertoire. Pour que plusieurs fichiers puissent être lus, tous doivent présenter la même mise en page (les mêmes champs aux mêmes emplacements). Tout enregistrement ne correspondant pas à la mise en page indiquée dans l'onglet Champs est traité comme un enregistrement non conforme.

Lors de la lecture d'un fichier à partir d'un serveur de fichiers HDFS, les formats de compression pris en charge sont les suivants :
  1. GZIP (.gz)
  2. BZIP2 (.bz2)
Remarque : L'extension du fichier indique le format de compression à utiliser pour décompresser le fichier.
Avertissement : Si le Spectrum™ Technology Platform est en cours d'exécution sur les systèmes Unix ou Linux, rappelez-vous que les noms de fichiers et les chemins sur ces plates-formes sont sensibles à la casse.

Type d'enregistrement

Le format des enregistrements dans le fichier. Sélectionnez l'un des éléments suivants :

Séquence de lignes
Un fichier texte dans lequel les enregistrements sont séparés par un caractère de fin de ligne (EOL) comme un retour chariot ou un retour à la ligne (CR ou LF) et chaque champ dispose d'une position de caractère fixe de départ et de fin.
Largeur fixe
Un fichier texte dans lequel chaque enregistrement est un nombre déterminé de caractères de longueur, et chaque champ dispose d'une position de caractère de départ et de fin fixe .
Délimité
Un fichier texte dans lequel les enregistrements sont séparés par un caractère de fin de ligne (EOL) comme un retour chariot ou un retour à la ligne (CR ou LF) et chaque champ est séparé par un caractère désigné comme une virgule.

Encodage des caractères

L'encodage du fichier texte. Sélectionnez l'un des éléments suivants :

CP1252
Cet encodage est également connu sous le nom de jeu de caractères Windows-1252 ou simplement Windows. Il s'agit d'un super ensemble d'ISO-8859-1, qui utilise la plage de codes 128-159 pour afficher des caractères supplémentaires non inclus dans le jeu de caractères ISO-8859-1.
UTF-8
Prend en charge tous les caractères Unicode et est rétrocompatible avec le format ASCII. Pour plus d'informations sur UTF, reportez-vous à unicode.org/faq/utf_bom.html.
UTF-16
Prend en charge tous les caractères Unicode, mais n'est pas rétrocompatible avec le format ASCII. Pour plus d'informations sur UTF, reportez-vous à unicode.org/faq/utf_bom.html.
US-ASCII
L'encodage des caractères en fonction de l'ordre alphabétique anglais.
UTF-16BE
Encodage UTF-16 avec sérialisation d'octets gros-boutiste (octet le plus significatif en premier).
UTF-16LE
Encodage UTF-16 avec sérialisation d'octets petit-boutiste (octet le moins significatif en premier).
ISO-8859-1
Chiffrement de caractères ASCII utilisé habituellement pour les langues européennes occidentales. Également désigné par l'acronyme Latin-1.
ISO-8859-3
Chiffrement de caractères ASCII utilisé habituellement pour les langues européennes méridionales. Également connu sous le nom Latin-3.
ISO-8859-9
Chiffrement de caractères ASCII utilisé habituellement pour la langue turque. Également connu sous le nom Latin-5.
CP850
Une page de code ASCII utilisée pour écrire les langues européennes occidentales.
CP500
Une page de code EBCDIC utilisée pour écrire les langues européennes occidentales.
Shift_JIS
Un encodage de caractères pour la langue japonaise.
MS932
Extension Microsoft de Shift_JIS permettant d'inclure les caractères spéciaux NEC, la sélection NEC des extensions IBM et les extensions IBM.
CP1047
Une page de code EBCDIC avec le jeu de caractères Latin-1 complet.

Longueur d'enregistrement

Pour les fichiers à largeur fixe, précise le nombre exact de caractères dans chaque enregistrement.

Séparateur de champs

Indique le caractère utilisé pour séparer des champs dans un fichier délimité.

Par exemple, cet enregistrement utilise une barre verticale (|) comme séparateur de champ :

7200 13TH ST|MIAMI|FL|33144

Ces caractères disponibles à définir en tant que séparateurs de champs sont :

  • Espace
  • Tabulation
  • Virgule
  • Point (.)
  • Point-virgule
  • Conduite

Si le fichier utilise un caractère différent comme séparateur de champ, cliquez sur le bouton de sélection pour sélectionner un autre caractère délimiteur.

Séparateur de balises Indique le caractère placé après le champ de balise pour démarquer le champ d'identification pour chaque enregistrement dans un fichier délimité. Un séparateur de balises doit être un caractère unique.

Par défaut, les caractères suivants sont disponibles comme séparateurs de balises :

  • Espace
  • Tabulation
  • Virgule
  • Point (.)
  • Point-virgule
  • Conduite

Si le fichier utilise un caractère différent comme séparateur de balises, cliquez sur le bouton d'ellipse pour ajouter et sélectionner un séparateur de balises personnalisé.

Remarque : Par défaut, le caractère Séparateur d'enregistrements est le même que le caractère Séparateur de champs sélectionné. Pour activer ce champ et sélectionner un caractère différent, décochez la case Identique au séparateur de champs.
Identique au séparateur de champs Indique si le séparateur de balises est le même que le séparateur de champs. Décochez cette case pour sélectionner un caractère différent comme séparateur de balises.
Remarque : Par défaut, cette case est cochée et le champ Séparateur de balises est désactivé.

Qualificateur de texte

Le caractère utilisé pour entourer les valeurs de texte dans un fichier délimité.

Par exemple, cet enregistrement utilise des guillemets doubles (") en tant que qualificateur de texte.

"7200 13TH ST"|"MIAMI"|"FL"|"33144"

Ces caractères disponibles à définir en tant que qualificateurs de texte sont :

  • Guillemets simples (')
  • Guillemets doubles (")

Si le fichier utilise un délimiteur de texte, cliquez sur le bouton de sélection pour sélectionner un autre caractère délimiteur.

Séparateur d'enregistrements

Indique le caractère utilisé pour séparer des enregistrements dans un fichier séquentiel ligne par ligne ou délimité. Ce champ n'est pas disponible si vous activez la case Utiliser EOL par défaut.

Les paramètres de séparateur d’enregistrements disponibles sont :

Unix (U+000A)
Un caractère de saut de ligne sépare les enregistrements. Il s'agit du séparateur d'enregistrement standard pour les systèmes Unix.
Macintosh (U+000D)
Un caractère de retour chariot sépare les enregistrements. Il s'agit du séparateur d'enregistrement standard pour les systèmes Macintosh.
Windows (U+000D U+000A)
Un retour chariot suivi d'un saut de ligne sépare les enregistrements. Il s'agit du séparateur d'enregistrement standard pour les systèmes Windows.

Si votre fichier utilise un séparateur d'enregistrement, cliquez sur le bouton de sélection pour sélectionner un autre caractère séparateur.

Nom de la balise racine

Balise à utiliser pour les enregistrements qui représentent la valeur parent d'autres types d'enregistrement. Par exemple, si vous disposez de trois types d'enregistrement 001, 100 et 200, et que les types d'enregistrement 100 et 200 sont les enfants du type d'enregistrement 001, 001 est la balise racine.

Utiliser des balises de largeur fixe

Détermine si une quantité fixe d'espace doit être allouée au début de chaque enregistrement afin d'y placer la balise d'enregistrement. Par exemple, ce qui suit présente un fichier avec les balises 001, 100 et 200 dans un champ de largeur fixe :

001   Joe,Smith,M,100 Main St,555-234-1290
100   CHK12904567,12/2/2007,6/1/2012,CHK
200   1000567,1/5/2012,Mike's Shoes,323.12

Position de départ de la balise

Si vous cochez la case Utiliser des balises de largeur fixe, cette option spécifie la position dans chaque enregistrement dans lequel la balise commence. Par exemple, si la balise commence au quatrième caractère de l'enregistrement, vous indiquerez 4.

Largeur de balise

Si vous cochez la case Utiliser des balises de largeur fixe, cette option indique le nombre d'espaces à allouer pour les balises commençant à la position indiquée dans le champ Tag start position. Par exemple, si vous indiquez 3 dans le champ Tag start position et 7 dans le champ Tag width, les positions 4 à 10 seront prises en considération dans la balise de l'enregistrement. La valeur que vous indiquez doit être suffisamment élevée pour inclure tous les caractères du nom de balise le plus long.

La valeur dans le champ Tag width est automatiquement augmentée si vous allongez le nom dans le champ Root tag name.

La largeur de balise maximale est de 1 024.

Utiliser EOL par défaut

Indique que le séparateur d'enregistrements du fichier est le caractère de fin de ligne (EOL) par défaut utilisé sur le système d'exploitation sur lequel le serveur Spectrum™ Technology Platform est exécuté.

Ne sélectionnez pas cette option si le fichier utilise un caractère EOL qui est différent du caractère EOL par défaut utilisé sur le système d'exploitation du serveur. Par exemple, si le fichier utilise un EOL Windows, mais que le serveur fonctionne sous Linux, ne cochez pas cette option. Au lieu de cela, sélectionnez l'option Windows dans le champ Record separator.

Traiter les enregistrements avec moins de champs que ce qui est défini comme incorrect

Si vous activez cette option, le format des enregistrements enfant contenant moins de champs qu'un enregistrement complet est considéré incorrect. Lorsqu'un enregistrement au format incorrect est détecté, le traitement passe à la balise racine suivante, en ne tenant pas compte de toutes les balises enfant intermédiaires. Une exception est écrite dans le journal contenant des informations sur les enregistrements enfant au format incorrect accompagnés d'un numéro de ligne.

Remarque : Le format des enregistrements est toujours considéré incorrect dans les situations suivantes, que vous activiez cette option ou non.
  • La balise est inconnue
  • La ligne est vide
  • Une balise ne contient aucun donnée
  • Un enregistrement avec une balise qui est l'enfant d'une autre balise apparaît immédiatement après un enregistrement avec une balise racine

Onglet Champs

L'onglet Champs spécifie les caractéristiques de chaque champ lu à partir du fichier.

L'onglet Exécution

Nom du champ Description

Nom de fichier

Affiche le nom de fichier sélectionné dans le premier onglet.

Enregistrement de départ

Si vous voulez ignorer les enregistrements au début du fichier lors de la lecture des enregistrements dans le dataflow, spécifiez le premier enregistrement que vous souhaitez lire. Par exemple, si vous voulez sauter les 50 premiers enregistrements dans un fichier, spécifiez 51. Le 51ème enregistrement sera le premier enregistrement lu dans le dataflow.

Tous les enregistrements

Sélectionnez cette option si vous souhaitez lire tous les enregistrements à partir de l'enregistrement spécifié dans le champ Starting record jusqu'à la fin du fichier.

Nombre max d'enregistrements

Sélectionnez cette option si vous souhaitez uniquement lire un certain nombre d'enregistrements à partir de l'enregistrement spécifié dans le champ Starting record. Par exemple, si vous voulez lire les 100 premiers enregistrements, sélectionnez cette option et entrez 100.