Mapper des données à l'aide d'un élément "group"
Ce scénario se base sur Créer un flux Lookup pour effectuer une jointure sur des données complémentaires et explique comment définir un élément en tant que group element dans le Map Editor du tXMLMap afin de regrouper les données de sortie. Pour plus d'informations concernant le regroupement des données de sortie à l'aide du composant tXMLMap, consultez Grouper les données de sortie.
L'objectif de ce scénario est de regrouper les IDs des clients et les informations relatives aux clients, selon l'État dans lequel ils résident. Vous devez reconstruire l'arborescence XML de la table de sortie Customer, en prenant en compte les facteurs suivants :
-
Les éléments relatifs à l'ID et au nom des clients doivent être situés sous l'élément répétable. Ils sont donc des sous-éléments de la boucle.
-
L'élément répétable et ses sous-éléments doivent dépendre directement de l'élément de groupe.
-
L'élément relatif aux informations d'État utilisé comme condition de groupe doit dépendre directement de l'élément de groupe.
-
L'élément de groupe ne peut pas être l'élément racine.
À partir de cette analyse, la structure XML des données de sortie doit se présenter comme suit. Le nœud customers est le nœud racine, le nœud customer est configuré comme l'élément de groupe et les données de sortie dont groupées selon l'élément LabelState
Pour qu'un élément de groupe agisse, les données XML à traiter doivent avoir été triées, par exemple via vos outils XML, autour de l'élément qui sera utilisé comme condition de regroupement. Dans cet exemple, les clients ayant un même ID d'État doivent être regroupés. Les données d'entrée du fichier XML Customer.xml doivent se présenter comme suit :
<?xml version="1.0" encoding="ISO-8859-15"?>
<Customers>
<Customer RegisterTime="2001-01-17 06:26:40.000">
<Name>
<id>1</id>
<CustomerName>Griffith Paving and Sealcoatin</CustomerName>
</Name>
<Address>
<CustomerAddress>talend@apres91</CustomerAddress>
<idState>2</idState>
</Address>
<Revenue>
<Sum1>67852</Sum1>
</Revenue>
</Customer>
<Customer RegisterTime="1987-02-23 17:33:20.000">
<Name>
<id>3</id>
<CustomerName>Glenn Oaks Office Supplies</CustomerName>
</Name>
<Address>
<CustomerAddress>1859 Green Bay Rd.</CustomerAddress>
<idState>2</idState>
</Address>
<Revenue>
<Sum1>1225.</Sum1>
</Revenue>
</Customer>
<Customer RegisterTime="2002-06-07 09:40:00.000">
<Name>
<id>2</id>
<CustomerName>Bill's Dive Shop</CustomerName>
</Name>
<Address>
<CustomerAddress>511 Maple Ave. Apt. 1B</CustomerAddress>
<idState>3</idState>
</Address>
<Revenue>
<Sum1>88792</Sum1>
</Revenue>
</Customer>
<Customer RegisterTime="1992-04-28 23:26:40.000">
<Name>
<id>4</id>
<CustomerName>DBN Bank</CustomerName>
</Name>
<Address>
<CustomerAddress>456 Grossman Ln.</CustomerAddress>
<idState>3</idState>
</Address>
<Revenue>
<Sum1>64493</Sum1>
</Revenue>
</Customer>
</Customers>