Exemple de combinaison de données positionnelles et délimitées

Pourquoi et quand exécuter cette tâche

Cet exemple montre comment créer un schéma de fichier à plat afin d'analyser une combinaison de données positionnelles et de données délimitées. Pour créer un schéma de fichier à plat, vous devez d'abord analyser les données de fichier à plat afin de déterminer les zones et les noeuds à ajouter au schéma de fichier à plat. Dans cet exemple, vous créez un schéma de fichier à plat pour les deux lignes de données suivantes :

BuyRight Pharmacy;USACAMVI334;!389!22;34980;

Taylor Drugs;USANJWLB128;!778!23!523;5667;

Utilisez une approche descendante pour définir les enregistrements et les zones du schéma de fichier à plat, comme indiqué dans les étapes suivantes :

Procédure

  1. Créez un noeud racine :
    1. Dans l'onglet Projet, cliquez avec le bouton droit de la souris sur le dossier Schémas de fichier à plat et sélectionnez Nouveau schéma de fichier à plat. La boîte de dialogue Assistant de base apparaît.
    2. Entrez Ordre dans la zone Nom.
    3. Cliquez sur OK. L'éditeur de schéma de fichier à plat apparaît et le schéma de fichier à plat s'affiche sous le dossier Schémas de fichier à plat dans l'onglet Projet. En outre, un noeud racine de même nom apparaît dans l'onglet Agencement de schéma.
  2. Déterminez le niveau supérieur de structure dans les données. Dans cet exemple, la structure la plus large se compose de deux lignes, représentant chacune un enregistrement. Les deux enregistrements dans ces données de fichier à plat sont délimités par une fin de ligne située entre les deux enregistrements, comme illustré dans la Figure 1 :
    Figure 1. Exemple de combinaison 1 : les enregistrements du fichier sont délimités par la fin de ligne située entre les caractères qui constituent l'enregistrement.
  3. Configurez le noeud racine appelé Ordre pour analyser les enregistrements répétés enfant, à l'aide des critères suivants :
    • Séparez les données dans les enregistrements à l'aide d'un délimiteur.
    • Le document devrait se terminer par EOS (End Of Stream) car le dernier enregistrement ne se termine pas par un délimiteur.
    • Utilisez le délimiteur de fin de ligne pour séparer les enregistrements enfant.
    • Le délimiteur devrait être entre les données.
    • Enregistrements enfant répétés attendus.
    • Utilisez le délimiteur de fin de ligne pour séparer les enregistrements répétés enfant.

    A l'aide de ces critères, spécifiez les valeurs suivantes pour le panneau Propriétés de base et Délimiteurs du noeud Ordre, comme illustré dans la Figure 2 :

    Figure 2. Exemple de combinaison, panneau 1 où la structure est délimitée et la case Le document se termine par une fin de flux est cochée. L'option Extrémité de ligne est sélectionnée et la position du Délimiteur d'enfant est fixée à Entre..
  4. Ajoutez un noeud enfant au noeud racine afin de représenter les enregistrements. Dans l'onglet Agencement de schéma, cliquez avec le bouton droit sur le noeud Ordre. Dans le menus, sélectionnez Nouvel enfant > Enregistrement, entrez purchaseOrder et cliquez sur OK.
  5. Déterminez le niveau suivant de structure dans les données. Dans cet exemple, le niveau suivant de la structure sont les zones délimitées par des points-virgules, comme illustré dans la Figure 3 :
    Figure 3. Exemple de combinaison 2 : Les zones individuelles de l'enregistrement sont délimitées par des points-virgules.
  6. Configurez le noeud purchaseOrder pour analyser ces zones, comme décrit par les critères suivants :
    • Le noeud purchaseOrder peut avoir une ou plusieurs occurrences.
    • Analysez les données de l'enregistrement dans les zones enfant à l'aide d'un délimiteur.
    • Utilisez le point-virgule comme délimiteur de données.
    • Le délimiteur devrait être après les données.

    A l'aide de ces critères, spécifiez les valeurs suivantes pour le panneau Propriétés de base et Délimiteurs du noeud purchaseOrdre, comme illustré dans la Figure 4 :

    Figure 4. Exemple de combinaison panneau 2 : La structure est délimitée, Maximum sans limite et option Caractère sélectionnée. La position du délimiteur enfant est définie par Après.
  7. Ajoutez les zones du noeud purchaseOrder en cliquant avec le bouton droit de la souris sur le noeud purchaseOrder dans l'onglet Agencement de schéma et en sélectionnant l'option Nouveaux enfants dans la liste. La boîte de dialogue Ajout en bloc apparaît.
  8. Dans la boîte de dialogue Ajout en bloc, ajoutez tous les enregistrements enfant et les zones du noeud purchaseOrder :
    • Cliquez sur Ajouter et remplacez field1 par storeName. Conservez le Type de noeud Zone.
    • Cliquez sur Ajouter et remplacez field2 par originCode. Remplacez le Type de noeud par Enregistrement.
    • Cliquez sur Ajouter et remplacez field3 par items. Remplacez le Type de noeud par Enregistrement.
    • Cliquez sur Ajouter et remplacez field4 par orderID. Conservez le Type de noeud Zone.
    • Cliquez sur OK.
  9. Déterminez le niveau suivant de structure dans les données. Dans cet exemple, le niveau suivant de la structure est un ensemble de données positionnelles trouvées dans l'enregistrement originCode, comme illustré dans la Figure 5 :
    Figure 5. Exemple de combinaison 3 : originCode est une section de données positionnelles dans l'enregistrement délimité.
  10. Configurez l'enregistrement originCode afin qu'il soit positionnel :
    1. Dans l'onglet Agencement de schéma, cliquez sur le noeud originCode. Les Propriétés de base apparaissent.
    2. Dans la liste Structure, sélectionnez Positionnel.
  11. Ajoutez les zones positionnelles du noeud originCode en cliquant avec le bouton droit de la souris sur le noeud originCode dans l'onglet Agencement de schéma et en sélectionnant l'option Nouveaux enfants dans la liste. La boîte de dialogue Ajout en bloc s'ouvre.
  12. Dans la boîte de dialogue Ajout en bloc, ajoutez tous les enregistrements enfant et les zones du noeud originCode :
    1. Cliquez sur Ajouter et remplacez field1 par countryCode. Conservez le Type de noeud Zone.
    2. Cliquez sur Ajouter et remplacez field2 par stateCode. Conservez le Type de noeud Zone.
    3. Cliquez sur Ajouter et remplacez field3 par cityCode. Conservez le Type de noeud Zone.
    4. Cliquez sur Ajouter et remplacez field4 par storeCode. Conservez le Type de noeud Zone.
    5. Cliquez sur OK.
  13. Configurez les Propriétés de position de chaque zone positionnelle. Pour chaque enfant du noeud originCode, cliquez sur le noeud dans l'onglet Agencement de schéma et au bas du panneau des propriétés, définissez les valeurs des paramètres Décalage de zone et Longueur de zone, comme indiqué dans la liste suivante :
    • countryCode -
    • stateCode -
    • cityCode -
    • storeCode -

    Le Décalage de zone est calibré à partir de la position du caractère en cours pendant que la chaîne originCode est traitée et non pas depuis le début de la chaîne originCode pour chaque zone. Dans cet exemple, countryCode est traité et les trois premiers caractères de originString sont affectés à countryCode. Lorsque la valeur de stateCode est traitée, la position de caractère en cours est déjà la position 3 ; par conséquent, le Décalage de zone 1 de stateCode est ajouté à la position de caractère en cours pour obtenir le point de départ du traitement de la chaîne stateCode, comme illustré dans la Figure 6 :

    Figure 6. L'exemple de combinaison 4 montre l'emplacement du curseur en cours et le décalage de zone.
  14. Déterminez le niveau suivant de structure dans les données. Dans cet exemple, le niveau suivant de la structure correspond aux zones répétées délimitées par des points d'exclamation, comme illustré dans la Figure 7 :
    Figure 7. Exemple de combinaison 5 où les données délimitées sont indiquées par des points d'exclamation.
  15. Configurez le noeud items pour analyser les enregistrements répétés enfant, à l'aide des critères suivants :
    • Séparez les données dans les zones à l'aide d'un délimiteur.
    • Utilisez les points d'exclamation comme délimiteurs pour séparer les zones enfant.
    • Le délimiteur devrait être avant les données.
    • Une ou plusieurs zones enfant répétées sont possibles.
    • Utilisez les points d'exclamation comme délimiteurs pour séparer les zones répétées enfant.

    A l'aide de ces critères, spécifiez les valeurs suivantes pour le panneau Propriétés de base et Délimiteurs du noeud des éléments (items), comme illustré dans la Figure 8 :

    Figure 8. Exemple de combinaison panneau 3 où la position du délimiteur enfant est définie par Avant.
  16. Ajoutez la zone enfant répétée du noeud items en cliquant avec le bouton droit de la souris sur le noeud items dans l'onglet Agencement de schéma et en sélectionnant l'option Nouveaux enfants > Zone dans la liste. La boîte de dialogue Nouvelle zone apparaît.
  17. Dans le Nom de zone, entrez item et cliquez sur OK.
  18. Configurez le noeud item pour qu'il contienne une ou plusieurs occurrences, comme illustré dans la Figure 9 :
    Figure 9. Exemple de combinaison panneau 4 où le nombre maximal de répétitions est défini par Sans limite.
    Le schéma de fichier à plat est terminé et prêt à être testé.
  19. Copiez le texte suivant dans la sous-fenêtre gauche du panneau de test :

    BuyRight Pharmacy;USACAMVI334;!389!22;34980;

    Taylor Drugs;USANJWLB128;!778!23!523;5667;

    Ces données sont également fournies dans le fichier mixedData.txt. Si vous avez accepté les valeurs par défaut pendant l'installation de Studio, ce fichier se trouve dans le répertoire suivant : C:\Program Files\IBM\WebSphere Cast Iron Studio 3.X\Samples\FlatFileSchema
    Avertissement : N'ajoutez pas de retour chariot après la dernière ligne.
  20. Cliquez sur l'icône Test.
    Icône Test
    La boîte de dialogue Confirmation de sauvegarde apparaît.
  21. Cliquez sur Oui. La représentation XML suivante des données apparaît dans le panneau de test :
    <?xml version="1.0" encoding="UTF-8"?>
    <Order>
    	<purchaseOrder>
    		<storeName>BuyRight Pharmacy</storeName>
    		<originCode>
    			<countryCode>USA</countryCode>
    			<stateCode>CA</stateCode
    			<cityCode>MVI</cityCode>
    			<storeCode>334</storeCode>
    		</originCode>
    		<items>
    			<item>389</item>
    			<item>22</item>
    		</items>
    		<orderId>34980</orderId>
    	</purchaseOrder>
    	<purchaseOrder>
    		<storeName>Taylor Drugs</storeName>
    		<originCode>
    			<countryCode>USA</countryCode>
    			<stateCode>NJ</stateCode>
    			<cityCode>WLB</cityCode>
    			<storeCode>128</storeCode>
    		</originCode>
    		<items>
    			<item>778</item>
    			<item>23</item>
    			<item>523</item>
    		</items>
    		<orderId>5667</orderId>
    	</purchaseOrder>
    </Order>
  22. Dans l'onglet Agencement de schéma, cliquez sur le noeud item. Dans la sous-fenêtre droite du panneau de test, les données analysées dans le noeud item sont mises en évidence, comme illustré dans la Figure 10 :
    Figure 10. Le noeud item est mis en évidence
  23. Cliquez sur le noeud state pour afficher les données attribuées au noeud state.
    Remarque : Une implémentation de référence du schéma de fichier à plat Order est fournie dans le projet FlatFileSchemasExample. Pour afficher et ouvrir le projet FlatFileSchemasExample, suivez les étapes 1 et 2 de la section Exemple de groupe et cliquez deux fois sur le schéma de fichier à plat Order. Les noeuds du schéma de fichier à plat Order sont affichés dans l'onglet Agencement de schéma et les propriétés du noeud racine Order apparaissent dans le panneau droit.