各メッセージを一連のエンドポイントに条件付きでルーティング - 7.2

Routing Slip (メディエーション)

Version
7.2
Language
日本語 (日本)
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
Talend Studio
Content
ジョブデザインと開発 > サードパーティーシステム > ルーティングコンポーネント(メディエーション) > ルーティングスリップコンポーネント(メディエーション)
データガバナンス > サードパーティーシステム > ルーティングコンポーネント(メディエーション) > ルーティングスリップコンポーネント(メディエーション)
データクオリティとプレパレーション > サードパーティーシステム > ルーティングコンポーネント(メディエーション) > ルーティングスリップコンポーネント(メディエーション)

このシナリオは、Talend Open Studio for ESB、Talend ESB、Talend Data Services Platform、Talend MDM Platform、Talend Real Time Big Data Platform、Talend Data Fabricのみに適用されます。

Talendがサポートしているテクノロジーの詳細は、Talend Mediationコンポーネントを参照してください。

前のシナリオに基づくこのシナリオでは、ファイルシステムからの各メッセージは、含まれる都市名に従って異なるエンドポイントに連続的にルーティングされます。

このユースケースで使うすべてのファイルには、それらに含まれる都市名に基づいて名前が付けられます。以下は、2つの例の抜粋です。

Beijing.xml:

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

Paris.xml:

<person>
  <firstName>Pierre</firstName>
  <lastName>Dupont</lastName>
  <city>Paris</city>
</person>

このユースケースでは、事前定義されたJavaBean、setEndpointsが呼び出され、各メッセージに含まれる都市名に従ってエンドポイントURIを返すため、メッセージは次のようにルーティングされます。

  • 都市名Parisを含むメッセージは、最初にエンドポイントaにルーティングされ、次にエンドポイントbに、最後にエンドポイント cにルーティングされます。

  • 都市名Beijingを含むメッセージは、最初にエンドポイントcにルーティングされ、次にエンドポイントaに、最後にエンドポイント bにルーティングされます。

  • 他のメッセージはエンドポイントbに、次にエンドポイントcにルーティングされます。

JavaBeansの作成と使用については、 Talend Studioユーザーガイドを参照してください。

package beans;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class setEndpoints {
	public String helloExample(Document document) {
		NodeList cities = document.getDocumentElement().getElementsByTagName(
				"city");
		Element city = (Element) cities.item(0);
		String textContent = city.getTextContent();
		if ("Paris".equals(textContent)) {
			return "direct:a,direct:b,direct:c";
		} else if ("Beijing".equals(textContent)) { 
			return "direct:c,direct:a,direct:b";
		} else
			return "direct:b,direct:c";
	}
}