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

by 色川穂高 | 2024年03月15日

CData Arc ハンズオンテキスト(シナリオ1-1)
 
この記事では「CData Arc ハンズオンセミナー ~はじめてのCData Arc~」の「シナリオ1-1」について進めていきます。
 

ハンズオン環境へサインイン

 
CData Arc のハンズオン環境には、こちらからサインインします。
 
http://localhost:8001/
  

ユーザー名 admin
パスワード ハンズオン環境のクレデンシャル情報を参照してください

 
 

ハンズオンのシナリオ

 
業務システムのデータストアなどで利用されているデータベースからSaaS へのデータ連携は、よくあるシナリオです。
 
このシナリオではMySQL から取得(Select)したデータをSalesforce に更新(Upsert)します。
 
ハンズオンのシナリオ
 
 

MySQL の構成

 
このシナリオでは、ハンズオン実行環境に構成されているMySQL のhandson スキーマの「顧客」テーブルからデータを取得します。
 
MySQL の構成
 
 

Salesforce の構成

 
このシナリオでは、ハンズオン用に用意されているSalesforce のLead オブジェクトへデータを更新します。
 
Salesforce の構成
 
ハンズオンセミナーでは参加される方が同一のSalesforce 組織へ更新しますので、更新結果はハンズオンセミナーで利用する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 コネクタは「データベース」カテゴリに含まれています。「データベース」カテゴリから「MySQL」を選択してフローキャンバスへ配置します。
 
MySQL コネクタ - 配置
 
コネクタID には任意の名称を設定することができます。何を行うコネクタか、分かりやすい名前を設定します。ここでは「MySQL_Customer_Select」と設定します。
 
MySQL コネクタ - 配置
 
 

接続の作成

 
MySQL への接続情報を作成します。「接続」の「作成」をクリックします。ここで作成した「接続」は、他のMySQL コネクタでも利用することができます。
 
MySQL コネクタ - 接続の作成
 
「接続の追加」ダイアログで、ハンズオンで利用するMySQL への接続を作成していきます。名前には任意の名称を設定することができます。識別しやすい名前を設定します。ここでは「MySQL_Handson」と設定します。
 
MySQL コネクタ - 接続の作成
 
接続に必要な以下の情報を設定します。
 
Server ハンズオン環境のクレデンシャル情報に従って設定します
Port 3306
Database ハンズオン環境のクレデンシャル情報に従って設定します
User ハンズオン環境のクレデンシャル情報に従って設定します
Password ハンズオン環境のクレデンシャル情報に従って設定します
 
設定したら「接続テスト」で確認します。「Success!」と表示されれば成功です。
 
MySQL コネクタ - 接続の作成
 
「接続の追加」をクリックして「接続を保存」します。
 
 

アクション

 
MySQL へのアクション(実行する操作)を選択します。このコネクタではデータを取得するので「Select」を選択します。
 
MySQL コネクタ - Select アクション
 
 

テーブル

 
MySQL からデータをSelect するテーブルを選択します。「+ 追加」をクリックして「テーブルの追加」ダイアログを開きます。
 
MySQL コネクタ - テーブルの追加
 
「顧客」テーブルを選択して「+追加」をクリックします。「テーブル」に「顧客」が追加され、「カラム」に「顧客」テーブルの列構成が反映されます。「フィルタ」「並べ替え」「クエリ」で取得設定を細かく指定することもできます。対象テーブルの構成次第では「高度な設定」により差分取得を利用することもできます。
 
MySQL コネクタ - テーブルの追加
 
MySQL コネクタ - テーブルの追加
 
MySQL コネクタ - テーブルの追加
 
「XML 出力をプレビュー」することで、コネクタからの出力データをプレビューすることができます。プレビューにより取得されるデータを簡単に確認することができます。
 
MySQL コネクタ - XML 出力をプレビュー
 
MySQL コネクタ - XML 出力をプレビュー
 
後続のXML Map コネクタの設定をより分かりやすく実施できるように「サンプルデータを保存」しておきます。「サンプルデータを保存」しておくと、XML Map のマッピングエディタ上で、データソース側にデフォルトのサンプルデータが表示された状態になりますので、マッピングを施す際にもより判断しやすくなります。
MySQL コネクタ - XML 出力をプレビュー
MySQL コネクタ - XML 出力をプレビュー

「変更を保存」をクリックして、コネクタの設定を保存します。これでMySQL コネクタの設定は完了です。
 
MySQL コネクタ
 

取得(受信)のテスト

 
実際にデータを取得できることを確認してみます。「アウトプット」タブの「受信」をクリックします。
 
MySQL コネクタ - 取得(受信)のテスト
 
MySQL コネクタでは、デフォルトでは取得したデータがレコード単位にメッセージファイルとして生成されます。
 
MySQL コネクタ - 取得(受信)のテスト
 
メッセージファイル名をクリックすると、データを確認することができます。
 
MySQL コネクタ - 取得(受信)のテスト
また各レコード左端の「+」で展開すると、CData Arc が自動的に付与するメッセージファイルのメタデータ(メッセージヘッダ)やログの内容を確認することができます。メッセージファイルやログはダウンロードすることもできます。
MySQL コネクタ - 取得(受信)のテスト
MySQL コネクタ - 取得(受信)のテスト
MySQL コネクタ - 取得(受信)のテスト
 
このようにCData Arc ではコネクタ単位に設定や動作を確認しながらフロー作成を進めることができます。
 
テストで取得(受信)したメッセージやログは、選択して「削除」できます。
 
MySQL コネクタ - 取得(受信)のテスト
 
MySQL コネクタ - 取得(受信)のテスト
 
 

Salesforce コネクタ

 
次に「Salesforce のLead オブジェクトへUpsert(データを更新)」するSalesforce コネクタを設定します。この連携フローのおわり(終点)となるコネクタです。
 
Salesforce コネクタ
 
 

配置

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

接続の作成

 
Salesforce への接続情報を作成します。「接続」の「作成」をクリックします。ここで作成した「接続」は、他のSalesforce コネクタでも利用することができます。
 
Salesforce コネクタ - 接続の作成
 
「接続の追加」ダイアログで、ハンズオンで利用するSalesforce への接続を作成していきます。名前には任意の名称を設定することができます。識別しやすい名前を設定します。ここでは「Salesforce_Handson」と設定します。
 
Salesforce コネクタ - 接続の作成
 
Salesforce コネクタでは、Salesforce との接続をOAuth 認証で確立します。「接続」をクリックすると、ブラウザが起動しSalesforce のログインページが表示されます。
 
Salesforce のログインページ
 
以下の情報を入力してログインします。
 
ユーザー名 ハンズオン環境のクレデンシャル情報に従って設定します
パスワード ハンズオン環境のクレデンシャル情報に従って設定します
 
 
CData Arc から対象のSalesforce 組織にはじめてアクセスするときには、接続アプリケーションへのアクセス許可が確認されます。アクセスを「許可」します。
 
接続アプリケーションへのアクセス許可
 
 
「Success!」と表示されれば成功です。
 
Salesforce コネクタ - 接続の作成
 
「接続の追加」をクリックして「接続を保存」します。
 
 

アクション

 
Salesforce へのアクション(実行する操作)を選択します。このコネクタではデータを更新するので「Upsert」を選択します。
 
Salesforce コネクタ - Upsert アクション
 
 

テーブル

 
Salesforce へデータを更新するテーブル(オブジェクト)を選択します。「+ 追加」をクリックして「テーブルの追加」ダイアログを開きます。
 
Salesforce コネクタ - テーブルの追加
 
Lead テーブル(オブジェクト)を選択して「+ 追加」をクリックします。テーブル(オブジェクト)は検索ボックスで絞り込むこともできます。
 
Salesforce コネクタ - テーブルの追加
 
「テーブル」に「Lead」が追加され、「カラム」にLead テーブル(オブジェクト)の構成が反映されます。ここでは「Upsert の有効化」や「Upsert のKey」を細かく指定することができます。
 
Salesforce コネクタ - テーブルの追加
 
ここでは、Upsert のKey にEmail を選択します。これで同じメールアドレスを持つデータは登録ではなく、既存データの更新として扱われます。
 
Salesforce コネクタ - テーブルの追加
 
「変更を保存」をクリックして、コネクタの設定を保存します。これでSalesforce コネクタの設定は完了です。
 
Salesforce コネクタ - テーブルの追加
 
 

XMLMap コネクタ

 
最後に「MySQL のデータをSalesforce へマッピング」するXMLMap コネクタを設定します。この連携フローのおわり(終点)となるコネクタです。
  
XMLMap コネクタは、CData Arc の中でも中核的なコネクタです。CData Arc は、データの操作と変換の中間形式としてXML を使用します。多くのコネクタは、さまざまな形式のファイルをXML に、またはその逆に変換します。さらにCData Arc はXML を使用してデータベースやSaaS などバックエンドシステムの入力と出力をモデル化します。この仕組みにより、様々なフォーマットのファイルやデータベース・SaaS などのバックエンドシステムをシームレスにつなぐことができます。
 
XMLMap コネクタ
 
 

配置

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

フロー設定

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

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

 
ここまでの操作で、MySQL コネクタでアウトプットされるデータ構造と、Salesforce コネクタにインプットされるデータ構造が構成されていますので、マッピングのソースファイル(変換元)とデスティネーションファイル(変換先)にそれぞれ選択して設定します。
 
XMLMap コネクタ - ソースファイル・デスティネーションファイル
 
XMLMap コネクタ - ソースファイル・デスティネーションファイル
 
ソースファイルとデスティネーションファイルを指定すると、マッピングエディタにデータ構造が反映され、同名項目同士などデフォルトのマッピングが施されます。
 
XMLMap コネクタ - マッピング
 
XML Map のマッピングエディタは豊富な機能を有しており、XML の値だけでなく属性(アトリビュート)も対象にすることができます。
 
ただ、このハンズオンのようにシンプルなシナリオだとXML の各項目の属性(アトリビュート)まで表示していると見通しがやや下がる面もあるかも知れません。そのようなときは「アトリビュートを表示」をOff にすることで各項目の値のみをシンプルに表示することができます。
 
XMLMap コネクタ - マッピング
 

マッピング

 
下記の項目を「ソース」から「宛先」にマッピングします。Salesforce ではデータの登録時にId が自動採番されます。このシナリオでは、MySQL 側の主キーである「顧客コード」はSalesforce Lead の「Description(説明)」に連携します。
 
ソース 宛先
顧客コード Description
メールアドレス Email
会社名 Company
LastName
FirstName
電話番号 Phone
 
 XMLMap コネクタ - マッピング
 
もし意図しない宛先にマッピングを施してしまった場合、「マッピングを削除」から取り消すことができます。
 
XMLMap コネクタ - マッピング
 

マッピング(式エディタ)

 
XMLMap コネクタでは、フォーマッタや条件、カスタムスクリプトなどを利用した高度なマッピング機能も利用できます。
 
ここでは「電話番号」を「Phone」にマッピングするときに「ハイフン(-)無し」に編集します。「Phone」項目の「式」をクリックして、エクスプレッションエディタ(式エディタ)を開きます。
 
XMLMap コネクタ - マッピング
 
XMLMap の式エディタでは、ArcScript のフォーマッタを利用してマッピング中にデータを動的に編集・加工することができます。ここでは replace フォーマッタを利用して「-」を除去します。
 
XMLMap コネクタ - マッピング
 
[xpath(電話番号) | replace('-', '')]
 
「変更を保存」をクリックして、コネクタの設定を保存します。これでXMLMap コネクタの設定は完了です。
 
XMLMap コネクタ - マッピング
 
 
式エディタで利用できるフォーマッタには、よく利用される文字列・日付・算術カテゴリの他に、ファイル操作や、XML やCSV を解析する操作で利用できるフォーマッタなどが豊富に備わっています。式エディタで利用できるArcScript のフォーマッタについては、こちら もご覧ください。
 
またXMLMap コネクタのマッピングではArcScript を利用した「カスタムスクリプト」の実行結果をマッピングの値として設定することもできます。シンプルなマッピングや式エディタでは実現が難しいビジネスロジックを含んだマッピングなどで力を発揮します。
 XMLMap コネクタ - マッピング  
ArcScript については、こちら や、ナレッジベース などもご覧ください。
 
CData Arc では設定したマッピングの結果をすぐにテストすることができる「テストマッピング」の機能が搭載されています。フォーマッタを利用して変換や編集をともなうマッピングを施している場合、その結果をすぐにテストできる「テストマッピング」の機能はとても便利です。
「マッピングをテスト」をクリックするとマッピングテストダイアログが表示されます。「サンプルデータを保存」しておくとデータソース側にテスト対象のデータとして設定された状態になります。テスト対象となる「データソース」欄には任意のデータを上書きして指定することも、任意のテストデータファイルをアップロードして指定することもできます。
 
XMLMap コネクタ - マッピングをテスト

「テスト」をクリックすると、マッピングを実行した結果が「宛先」欄に出力されます。このシナリオではPhone の項目がハイフンなしに編集できていることがすぐに確認できます。
 
XMLMap コネクタ - マッピングをテスト
 

フローの実行

 
これでシナリオの連携フローが完成しました。連携フローを手動で実行するときは、起点のコネクタでデータをアウトプット(受信)します。MySQL コネクタの「アウトプット」タブで「受信」を実行します。
 
フローの実行
 
 

実行結果の確認

 
受信に成功(Success)したメッセージファイルは、オートメーションの機構により、後続のXMLMap コネクタに渡されます(インプットされます)。
 
実行結果の確認
 
XMLMap コネクタの「インプット」「アウトプット」でMySQL コネクタから渡されたメッセージファイルがマッピングされ、アウトプットされていることが確認できます。
 
実行結果の確認
 
実行結果の確認
 
最後のSalesforce コネクタの「インプット」タブで、XMLMap コネクタから渡されたメッセージファイルで指定した処理(Upsert)に成功していることが確認できます。
 
実行結果の確認
 
コネクタ実行履歴の右端に表示される「詳しくはこちら」から、ログページ上で「フローの一連の流れ」として確認することもできます。
実行結果の確認
実行結果の確認
Salesforce 上での結果確認

Salesforce のリードオブジェクトの内容を確認してみます。このハンズオンでは複数の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 のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。