
こんにちは。CData Software Japan の色川です。
先日「CData HubSpot Driver v24 で新しくサポートされたLeads オブジェクト」について書いた記事の中で、CData Arc でのシナリオの例として「(Leads を関連付ける)会社(Companies)などのId をLookup してリード(Leads)を登録する」といった自動化フローを紹介しました。
さっそく記事に関心をいただいた方から「会社(Companies)の登録がなければ新たに登録(あれば更新)した上で、その会社に関連付ける構成で、リード(Leads)の登録をするまでを、一連の流れで自動化することができますか」と相談をいただきました。
もちろん「会社(Companies)を登録・更新するフロー」と「会社(Companies)のId をLookup してリード(Leads)を登録するフロー」を別々に分けて作成・運用することもできますが、Arc の「成功パス」を利用すれば、比較的シンプルに単一のフローで自動化することもできます。
この記事では、CData Arc の「成功パス(Success Path)の応用的な利用例」として、HubSpot をデータソースに「関連する複数オブジェクトへのデータ登録を『成功パス』を利用した単一のフローで自動化」してみたいと思います。
Arc の成功パス
Arc の成功パス(Success Path)は、コネクタで正常に処理(送信)されたインプットファイルをルーティングするコネクタを指定できる機能です。

一般的なフローでは、あるデータソースへの更新(Upsert アクション)はフローの終端として構成されますが、成功パスを利用すると「あるデータソースへのUpsert が成功したメッセージを別のコネクタにルーティングして処理を実施する」といったフローを構成することができます。Arc の成功パス(Success Path)について、詳しくはこちらの記事を参考にしてください。
この記事では、先日の記事でご紹介した「Companies のId をLookup してLeads を登録する」フローをベースに、成功パス(Success Path)の応用的な利用例として「Companies に登録・更新が成功したインプットファイルを成功パスでルーティングし、Companies のId をLookup して、Leads を登録する」フローの例と、そのフローでポイントになる部分を中心に紹介していきます。
ベースとなるフロー構成
先日の記事では、Leads オブジェクトへのCData Arc でのシナリオの例として以下のようなフローを紹介しました。

上記のフローは「CSV ファイルに含まれるCompanies を識別できるデータ項目でCompanies をLookup してId を取得して、Lookup で得たCompanies のId とCSV に含まれるLeads を構成するデータ項目でLeads オブジェクトへ登録する」といった内容ですが、比較的シンプルに構成することができます。
フローを構成するコネクタは、それぞれ以下のような役割になっています。
コネクタ |
内容 |
File |
連携元データとなるCSV ファイルを取得する |
CSV |
取得したCSV ファイルをXML 形式に変換する |
CData |
Companies オブジェクトをLookup してId を取得する |
XML Map |
取得したId を含め、Leads への登録にマッピングする |
CData |
Leads オブジェクトへ登録する |
成功パス(Success Path)の応用的な利用例
先ほどのフローをベースに「会社(Companies)に登録がなければ新たに登録(あれば更新)」した上で、リード(Leads)の登録までを一連の流れで自動化したい場合、成功パス(Success Path)を利用すると比較的シンプルに構成することができます。具体的なフローとしては以下のようなイメージです。

上記のフローは「CSV ファイルに含まれるCompanies を構成・識別できるデータ項目でCompanies をUpsert して、Upsert に成功したインプットファイルを成功パスでルーティングした上で、インプットファイルの内容でCompanies をLookup してCompanies のId を取得して、Lookup で得たCompanies のId とCSV に含まれるLeads を構成するデータ項目でLeads オブジェクトへ登録する」といった内容になっています。
フローを構成するコネクタは、それぞれ以下のような役割になっています。
# |
コネクタ |
内容 |
1 |
File |
連携元データとなるCSV ファイルを取得する |
2 |
CSV |
取得したCSV ファイルをXML 形式に変換する |
3 |
XML Map |
2 と4 をマッピングする。5 以降で利用するデータ要素も追加してマッピングする。 |
4 |
CData |
Companies オブジェクトへ登録・更新して、成功したら5 へルーティングする |
5 |
CData |
Companies オブジェクトをLookup してId を取得する |
6 |
XML Map |
取得したId を含め、Leads への登録にマッピングする |
7 |
CData |
Leads オブジェクトへ登録する |
フローの後半(5 から7)はベースのフローとほとんど変わりません。このフローでポイントになるのは、以下(上記の3、4)の「Companies をUpsert して、Upsert に成功したインプットファイルを成功パスでルーティング」する部分ですね。

なお、入力に利用したCSV ファイルは会社(Companies)への登録に必要な最低限の情報なども加えて、以下のようなレイアウトで試しています。

HubSpot 側は、フローの結果を確認しやすいようにCompanies に1 つだけデータがある状況にして試しています。フローを実行した結果「Companies に1つ追加され、Leads には各Companies に関連付いたLeads を登録したい」イメージです。


この記事のポイント(成功パスの先で利用するデータの設定と、成功パスでのルーティング)
まず「成功パスでのルーティング」設定自体は簡単です。右Click で「成功パスを表示」したら成功パスの経路を示す緑色のフローを、ルーティングしたいコネクタに接続してください。


これで成功パスのルーティング自体は設定されましたが、もう1つポイントになるのは「成功パスの先で利用するデータの設定」です。この記事のシナリオの場合、ルーティングされた先(フローの後半)で、Leads への登録で利用するデータ項目(LeadName やLeadType、LeadLabel など)が必要になりますが、一般的な設定の流れでは3. のマッピングでは4. のCompanies へのUpsert に必要な項目しかマッピングされません。4. へのインプットファイルが、4. のUpsert アクションが成功した場合にルーティングされるメッセージ(データファイル)になりますので、この段階で「Leads への登録で利用するデータ項目」も含まれるように構成しておく必要があります。

このように「後続のコネクタ処理で利用したいデータを保持したい」場合、Arc ではメッセージヘッダーを利用することもできますが、レコード単位でデータとして扱いたい項目についてはXML Map コネクタの中でスキーマ編集をして追加しておくアプローチも便利です。この記事では、この方法でルーティングされた先(フローの後半)で利用する項目を設定します。操作としてはシンプルで、デフォルトで構成されたスキーマ(Upsert アクションで必要となるスキーマ)に対して、フローの後半で必要とする項目の分を「ノードを追加」してマッピングする流れです。
まずは「ノードを追加」します。

ノード名を指定して追加します。この記事では連携元の要素と同名で追加構成しました。

必要な項目数分を「ノードを追加」で構成します。

追加したノードに、それぞれの連携元のデータ項目をマッピングします。

前提として、Upsert アクションでは、アクションで指定しているデータモデルに沿う形で、インプットファイルからデータを読み取り、アクションを実行しますので「ノードを追加」で追加したデータ項目(Leads への登録で利用するデータ項目)はUpsert アクションでは特に利用されません。このフローは、これらの機能や振舞いを前提にして構成しているイメージです。
なお、成功パスでのルーティング先である、5. のLookup アクションでは、4. のUpsert アクションへのインプットファイルがルーティングされますので、そのデータ構造をサンプルファイルとして指定する形で、Lookup アクションを構成してください。

実際に、このフローを試してみると、期待したとおり、Companies にUpsert した上で(Companies 1つ追加され)、Leads には各Companies に関連付いたLeads を登録することができました。


まとめ
この記事では、CData Arc の「成功パス(Success Path)の応用的な利用例」として、HubSpot のLeads オブジェクトを使って、関連する複数オブジェクトへのデータ登録を単一のフローで自動化してみました。
今回は、先日の記事の流れから、HubSpot のLeads オブジェクトを例にしましたが、他のオブジェクト(例えば「Contact を登録・更新した上で関連するDeal を登録する」など、オブジェクト更新の後に「関連付け(Association)」をしたいようなフロー)にも応用できますし、この成功パスの機能自体は特定のデータソースに限らず利用することができます。特に「あるデータソースへのUpsert が成功した場合に別の何かを実行したい」といった場面で応用的に活用しやすい機能かも知れません。
もちろん、データの構成や量、その他さまざまな業務的な要件や制約によっては、フローを別々に分けて作成・運用する方がフィットするケースも多いと思いますが、この記事のような「成功パス」の応用的な利用例も知っておくと、アプローチを検討するときの選択肢が増えて便利だと思います。
CData Arc はシンプルで拡張性の高いコアフレームワークに、豊富なMFT・EDI・エンタープライズコネクタを備えたパワフルな製品です。CData Drivers との組み合わせで270を超えるアプリケーションへの連携を実現できます。
皆さんのつなぎたいシナリオでぜひ CData Arc を試してみてください。
CData Arc - セキュアなデータ連携とマネージドファイル転送(MFT)
製品を試していただく中で何かご不明な点があれば、テクニカルサポートへお気軽にお問い合わせください。
CData Software Japan - Support Form
この記事では CData Arc™ 2024 - 24.3.9159.0 を利用しています。
関連コンテンツ