こんにちは。CData リードエンジニアの杉本です。
CData REST・Salesforce Driverとローコーディングのデータ統合ツールArcESBを使ってHRBCの顧客データを Salesforce に連携する方法を紹介します。
HRBC とは?
HRBCは人材ビジネスで事業拡大を目指す企業様に数多く導入されており、少人数から大規模まで現在と将来の事業にフィットできるクラウドベースのアプリケーションです。
自社WEBや各種求人媒体と連携し、求職者、スタッフの管理のCRM機能と求人案件管理を中心としたSFAの機能を併せ持ちます。
HRBC ではこのような各種データアクセスするためのHTTPベースの REST APIを提供しており、本記事ではこのAPIを活用して、Salesforceに連携を行えるようにします。
https://hrbcapi.porters.jp/hc/ja
ArcESB とは?
ArcESB はローコードでETL/EAIなどのデータ連携やEDIなどの企業間での各種取引情報連携を実現できるWebアプリケーションです。
今回はこのArcESBと CData ADO.NET Provider を組み合わせて、顧客データを各システム・サービスに連携するための方法を解説します。
この記事で実現するシナリオ
前述の通り、本記事ではHRBCから取得した顧客(Client)データを Salesforceの取引先企業にバッチ処理で連携する機能をローコードで開発します。
必要なもの
以下の製品のインストールが必要になります。すべて30日間のトライアルが提供されていますので、是非試してみてください。
事前準備
まず使用する製品をそれぞれインストールします。以下のページから、ArcESBの本体を入手できます。必要に応じて、Windows、Java/Linux、Cloud Hostedのバージョンから選択してください。なお、本記事ではWindowsベースで進めます。
https://www.arcesb.com/download/
インストールはそのままダイアログに従って進めれば大丈夫です。難しいところは特にありませんが、ログインする際のパスワード入力を求められる場所がありますので、忘れてしまわないように注意しましょう。
またArcESBには HRBC と Salesforce の接続用ライブラリが含まれていませんので、それらを個別で CData のサイトから入手し、インストールします。
それぞれ以下のURLから入手可能です。
https://www.cdata.com/jp/drivers/rest/ado/
https://www.cdata.com/jp/drivers/salesforce/ado/
REST データ処理用 RSDファイルの作成
次に、HRBC API を CData 各種 REST DeiverがSQLとして解釈できるように設定ファイルを作成します。
以下のGitHubから保存してください。
https://github.com/sugimomoto/CData.REST.HRBC
保存先フォルダは後ほど使用するので「C:\CData_REST\HRBC」といった書き込み可能な任意のフォルダに配置してください。
ArcESB にログイン
それでは、実際にArcESBを使って連携処理を開発していきます。
ArcESBが起動すると、以下のようにログイン画面が表示されるので、UserName:adminとインストール時に入力したパスワードを使って、ログインします。
ログイン後、「About」へ移動し、トライアルライセンスをアクティベーションします。以下はすでにアクティベーション済みの画面です。
ArcESBは「Flows」からデータ連携のデザイナー画面へ移動できます。
REST Connector を構成
Flows デザイナー画面に移動したら、それぞれのデータ処理コネクターを配置していきます。
まずは、HRBCの接続を構成しましょう。左側のConnection一覧から「Cloud Data」を選択し、キャンパスに配置します。
任意のConnector Id を入力し「+Create Connector」をクリックします。
Connector作成後、設定画面が出てくるので、DataSourceの一覧から「CData REST」を選択し、一旦保存します。
次に「Advanced」タブに移動し、LocationとOtherの項目に対して以下のように値を設定します。「app_id」「secret」「partition」にはあらかじめHRBCから受け取った値をセットしてください。
- Location:C:\CData_REST\HRBC;
- Other:app_id=XXXXXX;secret=XXXXX;redirect_url=http://localhost;partition=XXX;
次に取得したいテーブルを選択するために、MappingsのOutputから「+」ボタンをクリックします。
HRBC Connectorで使用できるテーブル一覧が出てくるので顧客データを取得できる「Client」を選択します。
次の画面に移動すると、取得する項目や諸条件を指定することができるMapping Editorに移ります。
今回は細かな設定は行いませんが、ここから特定の顧客データ、最新の顧客データだけ取得するといった条件を指定することが可能です。
Salesforce Connectorの構成
続いてHRBCと同様に Salesforce Connector も構成していきます。同じように「Cloud Data」を配置して構成します。
DataSourceは Salesforce を選択し、接続先となるSalesforce 環境の「User」「Password」「Security Token」を入力し、「Save Changes」をクリックします。
Salesforce にはデータ登録を行うため、Mappingsから「Input」を選択し「+」ボタンをクリックします。
対象のアプリ(テーブル)一覧がリストアップされるので、Account を選択します。
次の画面で登録する項目と処理方法(Upsertするかどうか)、Upsertする場合のKey項目を指定します。
今回はHRBCのIDを使う想定で、AccountNumberを指定しました。
以上で、HRBC と Salesforce のコネクター構成は完了です。
Mapping 作成
続いて、HRBC と Salesforce の項目を紐付けるための Mapping Connectorを配置します。
左の一覧から「XML Map」を選択し、キャンパスに配置します。
任意のConnector Idを入力し「+Create Connector」をクリックします。
Connector構成後、まずそれぞれのInputとOutputを紐付けます。以下のようにドラッグアンドドロップで、事前に作成した HRBC / Salesforce Connectorと紐付けて、画面右下にある保存ボタンをクリックすればそのままOKです。
次に、Mapの設定画面を開きます。接続が正常に構成されていれば、Source FileとDestination Fileが以下の様に入力されているはずです。
画面下で各項目のマッピングを行う領域が表示されているので、ここで項目をドラッグ・アンド・ドロップして、HRBCと Salesforceのアプリ項目一覧を紐付けていきます。
紐付け後、保存をすれば、設定完了です。
実行設定
最後にデータ連携の実行間隔を設定します。実行間隔の設定は、データ取得元である HRBC Connector の詳細画面から「Automation」タブで設定します。
Receiveのチェックボックスにチェックを入れて、IntervalとTimeを指定しましょう。以下の画面では、毎日に12時に起動する設定にしています。
実行方法
それでは構成したフローを実行してみます。
タイマー起動ではない、手動での実行は「Output」の「Receive」ボタンをクリックすることで可能です。
「Receive」ボタンをクリックすると、HRBCから顧客データが取得され、以下のようにArcESBにロードされたことがわかります。
最終的な処理結果は Salesforce Connector のInputタブから確認できます。ここで処理結果がSentになっていれば、Salesforce側に正常に処理が行われたことになります。
実際にHRBC・Salesforceのそれぞれの画面を見てみると、以下のように顧客データが登録されていることが確認できます。
おわりに
このように、ArcESBとHRBC/Salesforce ADO.NET Providerを活用することで、顧客データの連携処理を簡単に構築することができました。
CDataでは Salesforce 以外にも、SalesforceやDynamics 365といった様々な ADO.NET Providerを提供しています。是非任意のツール・サービスに接続するために試してもらえればと思います。