条件付きで異なるファイルパスにファイルをルーティング - Cloud - 8.0

Dynamic Router (メディエーション)

Version
Cloud
8.0
Language
日本語
Product
Talend Data Fabric
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Talend Studio
Content
ジョブデザインと開発 > サードパーティーシステム > ルーティングコンポーネント(メディエーション) > 動的ルーターコンポーネント(メディエーション)
データガバナンス > サードパーティーシステム > ルーティングコンポーネント(メディエーション) > 動的ルーターコンポーネント(メディエーション)
データクオリティとプレパレーション > サードパーティーシステム > ルーティングコンポーネント(メディエーション) > 動的ルーターコンポーネント(メディエーション)
Last publication date
2024-02-22

このシナリオは、Talend ESBTalend Data Services PlatformTalend MDM PlatformTalend Real-Time Big Data PlatformTalend Data Fabricにのみ適用されます。

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

このシナリオでは、人物情報を含む3つのファイルメッセージが、含まれている都市名に従って異なるエンドポイントにルーティングされます。

以下は、このユースケースで使われるXMLファイルの例です。

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>

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

JavaBeansの作成と使用については、Beansを使用をご覧ください。

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;
  } 
}