Router des fichiers vers différents emplacements selon des conditions - 7.3

Dynamic Router (Mediation)

Version
7.3
Language
Français (France)
Product
Talend Data Fabric
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for ESB
Talend Real-Time Big Data Platform
Module
Studio Talend
Content
Création et développement > Systèmes tiers > Composants Routing (Médiation) > Composants Dynamic Router (Médiation)
Gouvernance de données > Systèmes tiers > Composants Routing (Médiation) > Composants Dynamic Router (Médiation)
Qualité et préparation de données > Systèmes tiers > Composants Routing (Médiation) > Composants Dynamic Router (Médiation)

Ce scénario s'applique uniquement à Talend Open Studio for ESB, Talend ESB, Talend Data Services Platform, Talend MDM Platform, Talend Real Time Big Data Platform et Talend Data Fabric.

Pour plus de technologies supportées par Talend, consultez Composants Mediation de Talend.

Dans ce scénario, trois fichiers de messages contenant des informations concernant des personnes sont routés vers différents endpoints selon le nom de ville qu'ils contiennent.

Les exemples ci-dessous sont des extraits de fichiers XML d'exemple utilisés dans ce scénario :

Message_1.xml :

<person>
  <firstName>Ellen</firstName>
  <lastName>Ripley</lastName>
  <city>Washington</city>
</person>

Message_2.xml :

<person>
  <firstName>Peter</firstName>
  <lastName>Green</lastName>
  <city>London</city>
</person>

Message_3.xml :

<person>
  <firstName>Alice</firstName>
  <lastName>Yang</lastName>
  <city>Beijing</city>
</person>

Un bean Java prédéfini, setDynaURI, est appelé dans ce scénario pour retourner les URI des endpoints selon le nom de ville contenu dans chaque message. Par exemple, le message contenant le nom de la ville de Washington, il sera routé vers l'endpoint Washington, etc.

Pour plus d'informations concernant la création et l'utilisation de Bean Java, consultez le Guide d'utilisation de Studio Talend.

package beans;

import org.apache.camel.Exchange;
import org.apache.camel.Header;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class setDynaURI {

 public String setURI(Document document,
      @Header(Exchange.SLIP_ENDPOINT) String previous) {
    if(previous!=null){
     return null;
    }
  NodeList cities = document.getDocumentElement().getElementsByTagName(
    "city");
  Element city = (Element) cities.item(0);
  String textContent = city.getTextContent();
   return "direct:"+textContent;
  } 
}