CData Software Blog

クラウド連携のCData Software の技術ブログです。

Salesforceに登録されたスケジュール情報をGaroonに同期する

本記事ではArcESBを利用し、SalesforceからGaroonへデータを読み込む方法を紹介します。

Garoon

サイボウズ社のGaroonは中堅・大規模組織向けのグループウェアで、5200社を超える導入実績があります。

garoon.cybozu.co.jp

シナリオ

今回はSalesforceのスケジュールデータをGaroonに取り込みます。 Salesforceのスケジュールデータを下に示します。

f:id:urabe_shintaro:20200313101430p:plain

構成

今回のシステム構成を以下に示します。

f:id:urabe_shintaro:20200313101356p:plain

CDataのArcESBを使いSalesforceとGaroonとの連携を実現します。 ArcESBはノーコードでETL/EAIなどのデータ連携やEDIなどの企業間での各種取引情報連携を実現できるWebアプリケーションです。

事前準備

必要なもの

ArcESBのインストール

ArcESBダウンロードページから、ArcESBの本体を入手できます。 必要に応じて、WindowsJava/Linux、Cloud Hostedのバージョンから選択してください。 ダウンロードしたインストーラを起動し、インストールウィザードに従ってインストールしてください。

CData ADO.NET Providerのインストール

ArcESBがSalesforce、Garoonとの接続を行うライブラリとしてCData ADO.NET Providerをインストールします。 それぞれ以下からダウンロードし、インストールウィザードに従ってインストールしてください。

ArcESBのフロー作成手順

コネクタの配置

今回は以下3つのコネクタを使用します。

  • CDataコネクタ (Salesforceからのデータ入力用)
  • CDataコネクタ (Garoonへのデータ出力用)
  • XML Mapコネクタ

以下のようにコネクタを配置して接続してください。 コネクタを配置する際に名前を設定します。 今回はSalesforce接続用CDataコネクタを「Salesforce」、Garoon接続用CDataコネクタを「Garoon」、XML Mapコネクタを「SFtoGaroon」としました。

f:id:urabe_shintaro:20200313101518p:plain

CData Salesforceコネクタの設定

CDataコネクタ「Salesforce」をクリックし設定画面を開きます。 「Data Source」で「CData Salesforce」を選択してください。

接続情報の設定

Salesforceへの接続情報を設定してください。 Salesforceへの接続にはUser, Password, SecurityTokenの設定が必要です。

f:id:urabe_shintaro:20200313141047p:plain

「Test Connection」を押すと接続をテストできます。

データの選択

Salesforceから出力するデータを選択します。 設定画面下の「Mappings」で「Output」を選択してください。 「+」(Add Mapping)ボタンを押し、「Table or View」をクリックするとテーブル一覧が表示されます。

f:id:urabe_shintaro:20200313102147p:plain

今回はSalesforceのスケジュールデータの「予定の名前(Subject)」、「予定開始日(StartDateTime)」、「予定終了日(EndDateTime)」をコピーします。 まずスケジュールデータが格納されている「Event」テーブルを選択し「Next」をクリックします。

f:id:urabe_shintaro:20200313102037p:plain

フィールドの選択画面でSubject, StartDateTime, EndDateTimeの3つをチェックします。

f:id:urabe_shintaro:20200313102330p:plain

チェックが完了したら「Save」をクリックして画面を閉じてください。

CData Garoonコネクタの設定

CDataコネクタ「Garoon」をクリックし設定画面を開きます。 「Data Source」で「CData Garoon」を選択してください。

接続情報の設定

Garoonへの接続情報を設定してください。 Garoon APIへの接続にはUser, Password, URLの設定が必要です。

f:id:urabe_shintaro:20200313140901p:plain

二段階認証でBasic認証を設定している場合はBasic Auth PasswordとBasic Auth Userも設定してください。 Basic認証の設定項目は「Advanced」タブの「Authentication」セクションにあります。

f:id:urabe_shintaro:20200313140943p:plain

ここでも「Test Connection」を押すと接続をテストできます。

データの選択

Garoonへ入力するデータを選択します。 設定画面下の「Mappings」で「Input」を選択してください。 「+」(Add Mapping)ボタンを押し、「Table or View」をクリックするとテーブル一覧が表示されます。

f:id:urabe_shintaro:20200313115024p:plain

スケジュールデータが格納されている「Event」テーブルを選択し「Next」をクリックします。

f:id:urabe_shintaro:20200313102600p:plain

Salesforceから読み込む「予定の名前(Subject)」、「予定開始日(StartDateTime)」、「予定終了日(EndDateTime)」に加え、 Eventテーブルへのレコード挿入時の必須項目であるStartTimeZone, EndTimeZone, EventTypeをチェックします。 また、Attendeesも必須項目ですが、ここではチェックしません。

f:id:urabe_shintaro:20200313102754p:plain

チェックが完了したら「Save」をクリックして画面を閉じてください。

特殊項目の設定

GaroonのAttendees(出席者)はJson形式の値を要求します。 今回はAttendeesに固定値として以下のユーザを設定します。

[
  {
    "id": "2",
    "name": "admin",
    "type": "USER",
    "code": "admin"
  }
]

しかし、後述するXML MapではJson形式の固定値を設定できません。 そのため、ここでは出力フォーマットを直接書き換えて固定値を設定します。

Eventテーブルの「</>」(Code)をクリックしてください。

f:id:urabe_shintaro:20200313112921p:plain

ここで出力フォーマットを設定します。 以下のように項目を加えて、上記のユーザデータを設定してください。

f:id:urabe_shintaro:20200313102902p:plain

編集が完了したら「Save」をクリックして画面を閉じてください。

XML Mapコネクタの設定

フローの右端にある保存ボタンを押すとフローが保存されます。 フローを保存した後にXML Mapコネクタを開くと、下図のようにデータ入力元の「Source File」とデータ出力先の「Destination File」が設定された状態になります。

f:id:urabe_shintaro:20200313104512p:plain

「Mappings」では入力項目と出力項目とのマッピングを設定します。 今回は以下の通りマッピングを設定します。 StartTimeZone, EndTimeZone, EventTypeはGaroonのEventテーブルへのレコード挿入時に必須のフィールドなので、何らかの値をマッピングする必要があります。 ここではそれぞれ固定値を設定します。

出力データ(Garoon)
StartDateTime SalesforceのStartDateTime
EndDateTime SalesforceのEndDateTime
Subject SalesforceのSubject
StartTimeZone "Asia/Tokyo"
EndTimeZone "Asia/Tokyo"
EventType "Regular"

各項目をマウスオーバーしたときに表示される「Expression」ボタンをクリックすると値を入力する画面が表示されます。

f:id:urabe_shintaro:20200313104544p:plain

固定値を指定する場合はその値を入力します。入力項目の値を反映させる場合は「Dynamic Content」の項目名をクリックします。

f:id:urabe_shintaro:20200313104815p:plain

ここでは上のマッピングに従って下図の通り設定してください。

f:id:urabe_shintaro:20200313104941p:plain

データの送信

CData Salesforceコネクタの「Output」タブにある「Recieve」を押すとフローが起動します。

f:id:urabe_shintaro:20200313104958p:plain

結果の確認

データ取り込み前のスケジュール画面は下図の通りです。

f:id:urabe_shintaro:20200313105108p:plain

データ取り込み後の画面を表示します。 SalesforceのスケジュールデータがGaroon上に反映されていることが確認できます。

f:id:urabe_shintaro:20200313105055p:plain

おわりに

今回はArcESBを使ってSalesforceからGaroonへスケジュールデータの取り込みを行いました。 CData Driversと組み合わせることで、Garoonと200を超えるクラウドサービスとのデータ連携がノーコードで実現できます。

f:id:urabe_shintaro:20200131184240p:plain

Garoonのデータ連携をお考えの方はぜひご検討ください。