Scénario : Router des fichiers vers différents emplacements selon des conditions - 6.4

Dynamic Router - Mediation

author
Talend Documentation Team
EnrichVersion
6.4
EnrichProdName
Talend Data Fabric
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for ESB
Talend Real-Time Big Data Platform
task
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)
EnrichPlatform
Studio Talend

Ce scénario s'applique uniquement aux solutions Talend avec ESB.

Pour plus d'informations concernant les technologies supportées par Talend, consultez Composants Mediation 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 URIs 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.

Pour plus d'informations concernant la création et l'utilisation de Beans Java, consultez le Guide utilisateur du 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;
  } 
}