この記事では「CData Arc ハンズオンセミナー ~はじめてのCData Arc~」の「シナリオ1-1」について進めていきます。
ハンズオン環境へサインイン
CData Arc のハンズオン環境には、こちらからサインインします。
http://localhost:8001/
ユーザー名 |
admin |
パスワード |
ハンズオン環境のクレデンシャル情報を参照してください |
ハンズオンのシナリオ
業務システムのデータストアなどで利用されているデータベースからSaaS へのデータ連携は、よくあるシナリオです。
このシナリオではMySQL から取得(Select)したデータをSalesforce に更新(Upsert)します。
MySQL の構成
このシナリオでは、ハンズオン実行環境に構成されているMySQL のhandson スキーマの「顧客」テーブルからデータを取得します。
Salesforce の構成
このシナリオでは、ハンズオン用に用意されているSalesforce のLead オブジェクトへデータを更新します。
ハンズオンセミナーでは参加される方が同一のSalesforce 組織へ更新しますので、更新結果はハンズオンセミナーで利用するSalesforce 組織に用意されている「私のリード」リストビューを確認してください。
連携フローの概要
このシナリオでは、このような連携フローを作成していきます。
|
コネクタ |
設定内容 |
1 |
MySQL |
MySQL からデータを取得(Select) |
2 |
XMLMap |
1 と3 をマッピング |
3 |
Salesforce |
Salesforce へデータを更新(Upsert) |
ワークスペースの作成
CData Arc では、目的の異なる連携フローを分離できるように、任意の「ワークスペース」を作成することができます。ワークスペースを作成するにはフローページの「ワークスペースを追加」をクリックします。
ワークスペース名には任意の名称を設定することができます。何のためのワークスペースか、分かりやすい名前を設定します。ここでは「MySQL_to_Salesforce」と設定します。
このシナリオでは、この「MySQL_to_Salesforce」ワークスペースにフローを作成していきます。
MySQL コネクタ
最初に「MySQL のcustomer テーブルからSelect(データを取得)」するMySQL コネクタを設定します。この連携フローのはじまり(起点)となるコネクタです。
コネクタは右上の「+追加」から選択や検索をして追加することができます。またフローキャンバス上での右クリックなどからも追加することができます。
コネクタID には任意の名称を設定することができます。何を行うコネクタか、分かりやすい名前を設定します。ここでは「MySQL_Customer_Select」と設定します。
このコネクタが実行するアクションも指定します。ここではデータを取得するための「Select」アクションを選択して「+コネクタを作成」します。
接続の作成
作成したコネクタの設定に移ります。最初にMySQL への接続情報を作成します。「接続」の「作成」をクリックします。ここで作成した「接続」は、他のMySQL コネクタでも利用することができます。
「接続の追加」ダイアログで、ハンズオンで利用するMySQL への接続を作成していきます。名前には任意の名称を設定することができます。識別しやすい名前を設定します。ここでは「MySQL_Handson」と設定します。
接続に必要な以下の情報を設定します。
Server |
ハンズオン環境のクレデンシャル情報に従って設定します |
Port |
3306 |
Database |
ハンズオン環境のクレデンシャル情報に従って設定します |
User |
ハンズオン環境のクレデンシャル情報に従って設定します |
Password |
ハンズオン環境のクレデンシャル情報に従って設定します |
設定したら「接続テスト」で確認します。「Success!」と表示されれば成功です。
「接続の追加」をクリックして「接続を保存」します。
アクション
MySQL へのアクション(実行する操作)は先ほど選択した「Select」アクションで構成されています。なお、あとからアクションを変更することもできます。
テーブル
MySQL からデータをSelect するテーブルを選択します。「+ 追加」をクリックして「テーブルの追加」ダイアログを開きます。
「顧客」テーブルを選択して「+追加」をクリックします。「テーブル」に「顧客」が追加され、「カラム」に「顧客」テーブルの列構成が反映されます。「フィルタ」「並べ替え」「クエリ」で取得設定を細かく指定することもできます。対象テーブルの構成次第では「高度な設定」により差分取得を利用することもできます。
「XML 出力をプレビュー」することで、コネクタからの出力データをプレビューすることができます。プレビューにより取得されるデータを簡単に確認することができます。
後続のXML Map コネクタの設定をより分かりやすく実施できるように「サンプルデータを保存」しておきます。「サンプルデータを保存」しておくと、XML Map のマッピングエディタ上で、データソース側にデフォルトのサンプルデータが表示された状態になりますので、マッピングを施す際にもより判断しやすくなります。
「変更を保存」で、コネクタの設定を保存します。これでMySQL コネクタの設定は完了です。
取得(受信)のテスト
実際にデータを取得できることを確認してみます。「アウトプット」タブの「受信」をクリックします。
MySQL コネクタでは、デフォルトでは取得したデータがレコード単位にメッセージファイルとして生成されます。
メッセージファイル名をクリックすると、データを確認することができます。
また各レコード左端の「+」で展開すると、CData Arc が自動的に付与するメッセージファイルのメタデータ(メッセージヘッダ)やログの内容を確認することができます。メッセージファイルやログはダウンロードすることもできます。
このようにCData Arc ではコネクタ単位に設定や動作を確認しながらフロー作成を進めることができます。
テストで取得(受信)したメッセージやログは、選択して「削除」できます。
Salesforce コネクタ
次に「Salesforce のLead オブジェクトへUpsert(データを更新)」するSalesforce コネクタを設定します。この連携フローのおわり(終点)となるコネクタです。
コネクタは右上の「+追加」から選択や検索をして追加することができます。またフローキャンバス上での右クリックなどからも追加することができます。今回はフローキャンバス上での右クリックから「+コネクタを追加」してみましょう。
コネクタID には任意の名称を設定することができます。何を行うコネクタか、分かりやすい名前を設定します。ここでは「Salesforce_Lead_Upsert」と設定します。
このコネクタが実行するアクションも指定します。ここではデータを更新するための「Upsert」アクションを選択して「+コネクタを作成」します。
接続の作成
作成したコネクタの設定に移ります。最初にSalesforce への接続情報を作成します。「接続」の「作成」をクリックします。ここで作成した「接続」は、他のSalesforce コネクタでも利用することができます。
「接続の追加」ダイアログで、ハンズオンで利用するSalesforce への接続を作成していきます。名前には任意の名称を設定することができます。識別しやすい名前を設定します。ここでは「Salesforce_Handson」と設定します。
Salesforce コネクタでは、Salesforce との接続をOAuth 認証で確立します。「接続」をクリックすると、ブラウザが起動しSalesforce のログインページが表示されます。
以下の情報を入力してログインします。
ユーザー名 |
ハンズオン環境のクレデンシャル情報に従って設定します |
パスワード |
ハンズオン環境のクレデンシャル情報に従って設定します |
CData Arc から対象のSalesforce 組織にはじめてアクセスするときには、接続アプリケーションへのアクセス許可が確認されます。アクセスを「許可」します。
「Success!」と表示されれば成功です。
「接続の追加」をクリックして「接続を保存」します。
アクション
Salesforce へのアクション(実行する操作)は先ほど選択した「Upsert」アクションで構成されています。なお、あとからアクションを変更することもできます。
テーブル
Salesforce へデータを更新するテーブル(オブジェクト)を選択します。「+ 追加」をクリックして「テーブルの追加」ダイアログを開きます。
Lead テーブル(オブジェクト)を選択して「+ 追加」をクリックします。テーブル(オブジェクト)は検索ボックスで絞り込むこともできます。
「テーブル」に「Lead」が追加され、「カラム」にLead テーブル(オブジェクト)の構成が反映されます。ここでは「Upsert の有効化」や「Upsert のKey」を細かく指定することができます。
ここでは、Upsert のKey にEmail を選択します。これで同じメールアドレスを持つデータは登録ではなく、既存データの更新として扱われます。
「変更を保存」をクリックして、コネクタの設定を保存します。これでSalesforce コネクタの設定は完了です。
XMLMap コネクタ
最後に「MySQL のデータをSalesforce へマッピング」するXMLMap コネクタを設定します。この連携フローのおわり(終点)となるコネクタです。
XMLMap コネクタは、CData Arc の中でも中核的なコネクタです。CData Arc は、データの操作と変換の中間形式としてXML を使用します。多くのコネクタは、さまざまな形式のファイルをXML に、またはその逆に変換します。さらにCData Arc はXML を使用してデータベースやSaaS などバックエンドシステムの入力と出力をモデル化します。この仕組みにより、様々なフォーマットのファイルやデータベース・SaaS などのバックエンドシステムをシームレスにつなぐことができます。
作成済みコネクタの後続として配置したいコネクタは、作成済みコネクタのアウトプット横にある「+」から、後続のコネクタとして作成することもできます。今回はMySQL コネクタの後続としてコネクタを追加してみましょう。
コネクタID には任意の名称を設定することができます。何を行うコネクタか、分かりやすい名前を設定します。ここでは「XMLMap_Customer_to_Lead」と設定します。
MySQL コネクタの後続として作成しているため、入力元であるソースファイルは選択することができますが、この段階では出力先であるデスティネーションファイルを選択することができません。コネクタ設定を一度閉じ、XML Map コネクタからの出力先をフローとして接続します。
これでXML Map コネクタのデスティネーションファイルも選択することができるようになりました。続いてマッピングに進みます。
ソースファイルとデスティネーションファイルを選択すると、マッピングエディタにデータ構造が反映され、同名項目同士などデフォルトのマッピングが施されます。
XML Map のマッピングエディタは豊富な機能を有しており、XML の値だけでなく属性(アトリビュート)も対象にすることができます。
ただ、このハンズオンのようにシンプルなシナリオだとXML の各項目の属性(アトリビュート)まで表示していると見通しがやや下がる面もあるかも知れません。そのようなときは「アトリビュートを表示」をOff にすることで各項目の値のみをシンプルに表示することができます。
マッピング
下記の項目を「データソース」から「宛先」にマッピングします。Salesforce ではデータの登録時にId が自動採番されます。このシナリオでは、MySQL 側の主キーである「顧客コード」はSalesforce Lead の「Description(説明)」に連携します。
データソース |
宛先 |
顧客コード |
Description |
メールアドレス |
Email |
会社名 |
Company |
姓 |
LastName |
名 |
FirstName |
電話番号 |
Phone |
もし意図しない宛先にマッピングを施してしまった場合、「マッピングを削除」から取り消すことができます。
マッピング(式エディタ)
XMLMap コネクタでは、フォーマッタや条件、カスタムスクリプトなどを利用した高度なマッピング機能も利用できます。
ここでは「電話番号」を「Phone」にマッピングするときに「ハイフン(-)無し」に編集します。「Phone」項目の「式」をクリックして、エクスプレッションエディタ(式エディタ)を開きます。
XMLMap の式エディタでは、ArcScript のフォーマッタを利用してマッピング中にデータを動的に編集・加工することができます。ここでは replace フォーマッタを利用して「-」を除去します。
[xpath(電話番号) | replace('-', '')]
「変更を保存」でコネクタの設定を保存します。これでXMLMap コネクタの設定は完了です。
式エディタで利用できるフォーマッタには、よく利用される文字列・日付・算術カテゴリの他に、ファイル操作や、XML やCSV を解析する操作で利用できるフォーマッタなどが豊富に備わっています。式エディタで利用できるArcScript のフォーマッタについては、こちら もご覧ください。
またXMLMap コネクタのマッピングではArcScript を利用した「カスタムスクリプト」の実行結果をマッピングの値として設定することもできます。シンプルなマッピングや式エディタでは実現が難しいビジネスロジックを含んだマッピングなどで力を発揮します。
ArcScript については、こちら や、ナレッジベース などもご覧ください。
CData Arc では設定したマッピングの結果をすぐにテストすることができる「テストマッピング」の機能が搭載されています。フォーマッタを利用して変換や編集をともなうマッピングを施している場合、その結果をすぐにテストできる「テストマッピング」の機能はとても便利です。
「マッピングをテスト」をクリックするとマッピングテストダイアログが表示されます。「サンプルデータを保存」しておくとデータソース側にテスト対象のデータとして設定された状態になります。テスト対象となる「データソース」欄には任意のデータを上書きして指定することも、任意のテストデータファイルをアップロードして指定することもできます。
「テスト」をクリックすると、マッピングを実行した結果が「宛先」欄に出力されます。このシナリオではPhone の項目がハイフンなしに編集できていることがすぐに確認できます。
フローを整列させたいときには「オートフォーマット」が便利です。
作成した連携フローについて情報を記録・共有したい場合には「メモ」が便利です。
「メモ」はその名の通り、作成したフローに関連する情報を、フローキャンパスの好きな場所に記録できる機能です。連携フローを作成した目的や背景、設計意図や選択・判断などフロー構成のみからでは分からない情報をフリーテキストの形式で記録・共有することができます。
作成したメモは配置の位置変更や、表示の開閉切替なども自由に行うことができます。
ワークスペースの検索バーでは構成済みのメモを検索することができます。
フローの実行
これでシナリオの連携フローが完成しました。連携フローを手動で実行するときは、先ほどのように起点のコネクタでデータをアウトプット(受信)する以外に、トリガー開始の「手動で受信」からも実行することができます。今回はトリガー開始の「手動で受信」を実行します。
実行結果の確認
MySQL コネクタののアウトプットタブを確認すると受信に成功が確認できます。受信に成功(Success)したメッセージファイルは、オートメーションの機構により、後続のXML Map コネクタに渡されます(インプットされます)。
XMLMap コネクタの「インプット」「アウトプット」でMySQL コネクタから渡されたメッセージファイルがマッピングされ、アウトプットされていることが確認できます。
最後のSalesforce コネクタの「インプット」タブで、XMLMap コネクタから渡されたメッセージファイルで指定した処理(Upsert)に成功していることが確認できます。
コネクタ実行履歴の右端に表示される「詳細を表示」から、ログページ上で「フローの一連の流れ」として確認することもできます。
Salesforce 上での結果確認
Salesforce のリードオブジェクトの内容を確認してみます。このハンズオンでは複数のSalesforce アカウントがそれぞれリードを登録しているので「私のリード」ビューで自分が連携を実行したデータが登録されているかを確認します。
フローの自動実行
CData Arc にはスケジューリング実行するための機能が標準で搭載されています。開発・テストが完了した連携フローを自動で定期的に実行したいときに便利です。スケジュール実行はフローの起点となるコネクタで「受信オートメーション」を有効にすることで設定します。この設定は「トリガーを開始」の「オートメーションを有効化」からも開く事ができます。
このシナリオのフローを、1時間に1度、毎時0分に自動実行する場合は、MySQL コネクタの「オートメーション」タブで下記のように設定します。
ここまでのまとめ
これで「CData Arc ハンズオンセミナー ~はじめてのCData Arc~」の「シナリオ1-1」が完了しました。
ハンズオンテキスト
シナリオ1-1
この記事では CData Arc™ 2024 - 24.2.8985.0 を利用しています。
関連コンテンツ