Diviser un message et renommer les sous-messages selon les informations contenues - 7.1

SetHeader - Mediation

author
Talend Documentation Team
EnrichVersion
7.1
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 Processing (Médiation) > Composants SetHeader (Médiation)
Gouvernance de données > Systèmes tiers > Composants Processing (Médiation) > Composants SetHeader (Médiation)
Qualité et préparation de données > Systèmes tiers > Composants Processing (Médiation) > Composants SetHeader (Médiation)
EnrichPlatform
Studio Talend

Ce scénario s'applique uniquement aux solutions Talend Open Studio for ESB, Talend Data Services Platform et Talend Data Fabric.

Pour plus d'informations concernant les technologies supportées par Talend, consultez Composants Mediation Talend.

Dans ce scénario, un message de fichier contenant des informations relatives à des personnes est divisé en sous-messages. Chaque sous-message est renommé selon le nom de la ville qu'il contient et est ensuite routé vers un autre endpoint.

Voici un exemple de fichier XML utilisé dans ce scénario :

<people>
    <person>
        <firstName>Pierre</firstName>
        <lastName>Dubois</lastName>
        <city>Paris</city>
    </person>
    <person>
        <firstName>Nicolas</firstName>
        <lastName>Yang</lastName>
        <city>Beijing</city>
    </person>
    <person>
        <firstName>Ellen</firstName>
        <lastName>Ripley</lastName>
        <city>Washington</city>
    </person>
</people>

Un Bean Java prédéfini, setFileNames, est appelé par le composant cSetHeader utilisé dans ce scénario pour définir un nom de fichier pour chaque message selon le nom de la ville qu'il contient. 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.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class setFileNames {
	public String getCityName(Document document) {
		NodeList cities = document.getDocumentElement().getElementsByTagName(
				"city");
		Element city = (Element) cities.item(0);
		String textContent = city.getTextContent();
			return textContent+".xml";
		}
}