CData Arc ハンズオンテキスト(シナリオ1-1)

by 色川穂高 | 2023年10月25日

 
この記事では「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 コネクタを設定します。この連携フローのはじまり(起点)となるコネクタです。
 
 
 

配置

 
MySQL コネクタは「データベース」カテゴリに含まれています。「データベース」カテゴリから「MySQL」を選択してフローキャンバスへ配置します。
 
 
コネクタID には任意の名称を設定することができます。何を行うコネクタか、分かりやすい名前を設定します。ここでは「MySQL_Customer_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 コネクタを設定します。この連携フローのおわり(終点)となるコネクタです。
 
 
 

配置

 
Salesforce コネクタは「その他」カテゴリに含まれています。「その他」カテゴリから「Salesforce」を選択してフローキャンバスへ配置します。
 
 
コネクタID には任意の名称を設定することができます。何を行うコネクタか、分かりやすい名前を設定します。ここでは「Salesforce_Lead_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 などのバックエンドシステムをシームレスにつなぐことができます。
 
 
 

配置

 
XMLMap コネクタは「コア」カテゴリに含まれています。「コア」カテゴリから「XML Map」を選択してフローキャンバスへ配置します。
 
 
コネクタID には任意の名称を設定することができます。何を行うコネクタか、分かりやすい名前を設定します。ここでは「XMLMap_Customer_to_Lead」と設定します。
  
 
 

フロー設定

 
コネクタ間の流れを設定していきます。まず「MySQL コネクタからXMLMap コネクタ」にフローをつなぎます。
 
 
次に「XMLMap コネクタからSalesforce コネクタ」にフローをつなぎます。
 
 
これでXMLMap コネクタでは、どのコネクタからインプットされ、どのコネクタへアウトプットするかが理解されるようになります。
 
 

ソースファイル・デスティネーションファイル

 
ここまでの操作で、MySQL コネクタでアウトプットされるデータ構造と、Salesforce コネクタにインプットされるデータ構造が構成されていますので、マッピングのソースファイル(変換元)とデスティネーションファイル(変換先)にそれぞれ選択して設定します。
 
 
 
ソースファイルとデスティネーションファイルを指定すると、マッピングエディタにデータ構造が反映され、同名項目同士などデフォルトのマッピングが施されます。
 
 
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)したメッセージファイルは、オートメーションの機構により、後続のXMLMap コネクタに渡されます(インプットされます)。
 
 
XMLMap コネクタの「インプット」「アウトプット」でMySQL コネクタから渡されたメッセージファイルがマッピングされ、アウトプットされていることが確認できます。
 
 
 
最後のSalesforce コネクタの「インプット」タブで、XMLMap コネクタから渡されたメッセージファイルで指定した処理(Upsert)に成功していることが確認できます。
 
 
コネクタ実行履歴の右端に表示される「詳しくはこちら」から、ログページ上で「フローの一連の流れ」として確認することもできます。
Salesforce 上での結果確認

Salesforce のリードオブジェクトの内容を確認してみます。このハンズオンでは複数のSalesforce アカウントがそれぞれリードを登録しているので「私のリード」ビューで自分が連携を実行したデータが登録されているかを確認します。
 
 
 
 

フローの自動実行

 
CData Arc にはスケジューリング実行するための機能が標準で搭載されています。開発・テストが完了した連携フローを自動で定期的に実行したいときに便利です。スケジュール実行はフローの起点となるコネクタで「受信オートメーション」を有効にすることで設定します。
 
 
このシナリオのフローを、1時間に1度、毎時0分に自動実行する場合は、MySQL コネクタの「オートメーション」タブで下記のように設定します。
 
受信 有効
受信間隔 Hourly
毎時何分 0
 
 

ここまでのまとめ

 
これで「CData Arc ハンズオンセミナー ~はじめてのCData Arc~」の「シナリオ1-1」が完了しました。
 
 
シナリオ1-1
 
 

この記事では CData Arc™ 2023 - 23.3.8698.0 を利用しています。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。