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

by 浦邊信太郎 | 2020年04月20日

本記事ではCData Arcを利用し、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のCData Arcを使いSalesforceとGaroonとの連携を実現します。 CData ArcはノーコードでETL/EAIなどのデータ連携やEDIなどの企業間での各種取引情報連携を実現できるWebアプリケーションです。

事前準備

必要なもの

  • Garoon
  • Salesforce
  • CData Arc
  • CData Garoon ADO.NET Provider
  • CData Salesforce ADO.NET Provider

CData Arcのインストール

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

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

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

CData Arcのフロー作成手順

コネクタの配置

今回は以下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

おわりに

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

f:id:urabe_shintaro:20200131184240p:plain

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

関連コンテンツ

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

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