こんにちは。CData Software Japan の色川です。
この記事では、CData Arc のデータソース系コネクタで利用できる「Lookup アクション」をご紹介します。
Lookup アクションの概要
あるデータソースから別のデータソースにデータを連携する途中に、マスタテーブルなどにある名称や金額、コードなどを検索・取得したい場面は多いですよね。Id やコードの値に応じて別のマスタテーブルやオブジェクトに保持されている名前を取得・変換する、などのシナリオは、どのような業種・業務でも頻繁に必要になるかと思います。
特にSaaS ではレコードの一意識別子(レコードのId など)がサービス側で自動採番されることが多いですが、データ更新する際など連携元で保持する値を基にSaaS の既存レコードの識別子(Id など)を取得したいケースは多いと思います。(Email アドレスを条件にSalesforce のLead を検索して該当するLead のId を取得したい、など)
CData Arc の「Lookup アクション」は、対象のデータソースから指定した条件に合致する単一の値を検索・取得し、その値をフロー処理中のメッセージに挿入します。
「Lookup アクション」は、SQL Server / Oracle / DB2 等の Database Connectors や、Salesforce / NetSuite / Shopify 等の多くの Application Connectors 、CData Driers とシームレスに連携できる CData コネクタ で利用することができます。
Lookup アクションの設定
Lookup アクションを利用するには、対象のデータソースに接続するコネクタでアクションを「Lookup」に選択します。
最初にLookup して取得した値を挿入する「宛先」を指定します。「宛先の種類」にはLookup して取得した値を、メッセージ中のどこに挿入するかを選択します。メッセージのペイロード(実際に処理されるデータ)に挿入する場合は、「XPath」を選択して、「宛先」には挿入先を示すXPath 式を記述します。
メッセージのペイロードではなく、メッセージのヘッダー(メッセージのメタデータ)に挿入する場合は、「ヘッダー」を選択して、「宛先」には挿入先を示すヘッダー名を記述します。
データソースに対してLookup を実行されるクエリは「ルックアップクエリ」に指定します。ルックアップクエリでは取得する「名前付きカラムは1つだけ」指定します。「ルックアップクエリ」ではコネクタにインプットされたメッセージの値をXPath 式で参照(${XPATH:/path/to/value}したり、インプットされたメッセージのメッセージヘッダーの参照(${HEADER:HeaderName})して、クエリの中で利用することができます。
Lookup アクションで取得できる値は単一に限られ、クエリの結果が複数の値を返す場合、そのまま扱うとエラーになります。指定したクエリが複数の値を返す可能性がある場合は「最初の結果を使用」を有効にします。
指定したクエリを実行した時に値が見つからない場合の挙動は「失敗」にする、「空文字を使用」などの選択肢から指定することができます。
キャッシュ
Lookup アクションが利用できる各コネクタでは、ルックアップのたびにデータソースに対して直接クエリを実行する代わりに、ローカルキャッシュに対してルックアップクエリを実行する機能を備えています。これは、特に大規模なデータセットに対するクエリのパフォーマンスを向上させたいときに有効です。
この機能を有効にするには「キャッシュを有効化」にチェックを入れ、必要に応じて、キャッシュのしきい値などのフィールドを設定します。クエリがキャッシュから結果を返さない場合、コネクタはデータソースに対して直接クエリを実行します。なお、ルックアップクエリに limit やoffset、groupby 句が含まれている場合、この機構は機能しません。
Lookup アクションの設定例
Lookup アクションの簡単な設定例をご紹介します。
下記のようなId、Code を持つテーブルがあるとして「フローで処理するメッセージに含まれるId の値を条件に、テーブルをLookup してCode を取得し、メッセージにCode という属性で挿入」したい場合、Lookup アクションを下記のように設定します。
[Table_Id_Code_Name テーブル]
[ルックアップクエリ]
Select Code From Table_Id_Code_Name where Id = ${XPATH:/Items/Item/Id}
[このコネクタへのインプットメッセージ]
[このコネクタからのアウトプットメッセージ]
Lookup アクションの参考記事
Lookup アクションの利用例については、これらの記事も参考にして頂けます。あわせてご覧ください。
CData Arc を使ってkintone のデータをDeepL で翻訳してSalesforce に連携する | CData Software Blog
CData Arc を使ってcyzen の訪問情報をSalesforce に登録 | CData Software Blog
まとめ
この記事では、CData Arc のデータソース系コネクタで利用できる「Lookup アクション」をご紹介しました。
CData Arc の「Lookup アクション」は、対象のデータソースから指定した条件に合致する単一の値を検索・取得して、その値をフロー処理中のメッセージに挿入できる、使い勝手の良いコネクタアクションです。Lookup アクションを使いこなしていただくと、Arc を利用した連携自動化の適用範囲も拡がると思います。ぜひ試してみてください。
CData Arc はシンプルで拡張性の高いコアフレームワークに、豊富なMFT・EDI・エンタープライズコネクタを備えたパワフルな製品です。CData Drivers との組み合わせで250を超えるアプリケーションへの連携を実現できます。必要な連携を低価格からはじめられる事も大きな特長です。
皆さんのつなぎたいシナリオでぜひ CData Arc を試してみてください。
この記事では CData Arc™ 2022 - 22.0.8462.0 を利用しています。
関連コンテンツ