Diviser un message et renommer les sous-messages selon les informations contenues
Ce scénario s'applique uniquement à Talend ESB, Talend Data Services Platform, Talend MDM Platform, Talend Real-Time Big Data Platform et à Talend Data Fabric.
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 des fichiers XML utilisés 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 Utilisation des Beans.
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";
}
}