こんにちは。CData Software Japanリードエンジニアの杉本です。
先日 CData Driver ラインナップでも人気のデータソースである「スマレジ」が、SaaS ベースで提供されるデータハブサービス CData Connect に正式追加されました!
今回はこの追加されたスマレジのデータソースを使って、CData Connect が得意とする連携の一つ「Salesforce Connect によるスマレジ連携」を紹介したいと思います。
Salesforce Connect とは?
Salesforce Connect は Salesforce 外に保存されているデータの表示、検索、変更を可能にするフレームワークです。
Salesforceにデータの実体は無いものの、あたかもSalesforce上のデータかのように扱うことができる、仮想オブジェクトと言えるような機能です。
CData Connect とは?
CData Connect は、SaaS ベースで提供されるデータハブサービスです。Salesforce、NetSuite、Dynamics、Marketo、kintone など多様なSaaS にBI、アナリティクス、iPaaS、ノーコード開発プラットフォームからアクセスするための仮想エンドポイントです。連携方法が異なるSaaS をMySQL、SQL Server、OData の3種類のインターフェースに仮想化することで、データ連携をシンプルに実現します。
"SQL as a Service" といっていいかもしれません。
今回は CData Connectが持つ3つのインターフェースのうちの一つである「OData」を使って、Salesforce Connectと連携します。
これにより、例えば以下のようなスマレジの商品データや会員データなどを
Salesforce上のデータかのうようにシームレスに扱うことができるようになります。
接続手順
それでは早速手順を解説していきます。
CData Connect にSalesforce データを接続
まず CData Connect (旧CloudHub) のアカウントを取得します。
CData Connect はSaaS ですので、アカウントを取得したらインストールやホスティングなどなく、ブラウザからログインすることですぐに使用開始です。
早速ブラウザからCData Connect にログインします。「DATABASE」タブから仮想データベースを設定していきます。まずは接続するデータソースであるスマレジ のアイコンをクリックします。
データソース接続画面が開くので、データソース毎の認証情報を入力します。スマレジ の場合はAccess Token、Contract Id を入力することでデータにアクセスすることができます。
Access Token、Contract Id の取得方法は以下の記事を参考にしてみてください。
スマレジの接続を追加後、Salesforceと連携したいスマレジのデータソースをODataのテーブルとして定義します。
「ODATA」タブに移動し「Add Tables」をクリック
先程作成したスマレジのDatabaseを選択し
任意のテーブルを選択します。今回は会員データが可能されている「Customers」を選択しました。
各テーブルの詳しい情報は、以下のヘルプで参照できます。
http://cdn.cdata.com/help/UXF/jp/jdbc/pg_alltables.htm
次に公開するOperation(操作方法)とカラムを選択します。今回はデフォルトのまま進めます。
追加が完了すると、APIタブでODataのエンドポイントとして対象のリソースが公開されます。
最後に公開したデータにアクセスできるユーザーとトークンを作成します。「USERS」タブからユーザーを作成するとトークンが生成されます。
Salesforce Connectの設定
続いて Salesforce Connect 側の設定を行いましょう。Salesforce Connectの設定は外部データソースの定義から行います。
Salesforceの設定画面に移動し、「インテグレーション」→「外部データソース」をクリックします。
外部データソース一覧から「新規外部データソース」を選択し
以下のようにCData Connectへの接続情報を入力し、保存します。
プロパティ名 | 値 | 備考 |
---|---|---|
外部データソース | 例)CDataConnect | 任意の外部データソース表示名を指定します。 |
名前 | 例)CDataConnect | 外部データソースの一意名称を指定します。 |
種別 | Salesforce Connect: OData 4.0 | OData 4.0を指定します。 |
URL | 例)https://www.cdatacloud.net/salesforce/api.rsc/ | CData Connect の ODataエンドポイントを指定します。 |
ID種別 | 指定ユーザ | |
認証プロトコル | パスワード認証 | |
ユーザ名 | 例)admin | CDataConnectで作成したユーザーのIDを指定します。 |
パスワード | 例)YOUR_PASSWORD | CDataConnectで作成したユーザーのトークンを指定します。 |
保存後、外部オブジェクトを作成します。
外部オブジェクトは手動で作成してマッピングする方法と、OData の Metadataから読み取って自動的に生成する方法の2パターンが存在します。
今回は前者の方法で自動的に外部オブジェクトを生成してみます。「検証して同期」をクリックします。
うまく接続が成功していればここで先程定義したテーブルの一覧が表示されます。該当のテーブルを選択して、「同期」を行います。これで外部オブジェクトが生成されます。
外部オブジェクトの画面に移動すると、生成された外部オブジェクトが確認できます。
合わせてタブの設定で生成した外部オブジェクトを表示するように設定しておきましょう。
これで、Salesforce 上のデータかのようにスマレジのデータが扱えるようになりました。
表示項目も調整すると、しっかりとデータが参照できていることがわかります。
TransactionHeads を表示する場合のポイント
最後にいくつかスマレジデータをSalesforce Connect上で扱うためのTipsを紹介します。
TransactionHeads:取引データに関しては、データの更新機能の都合上CData Connet上で複合キーのようにデータが設定されています。
しかしながら、Salesforce Connect上では一つのキーしか認められていないため、この定義が邪魔になってしまいます。
そこで以下のようにTansactionHeadを一意に指定できる「TransactionHeadId」の項目だけをキーにすることでSalesforce上でも正常にデータを表示できるようになります。
キーの調整方法ですが、以下のようにテーブルの編集ボタンをクリックすることで実行できます。
このテーブル定義の中で各カラムのキー情報「key="true"」という項目が存在するので、「TransactionHeadId」のみをKeyとして設定しましょう。
また、TransactionHeadsでもう一つ注意しなければいけないのは、APIの制約です。
TransactionHeadsは必ずデータの取得に条件をつけなければいけません。
例えばTransactionDateTimeの日付で30日間の範囲の指定をしなければいけません。そのため、普通に一覧を表示しようとするとエラーメッセージが表示されます。
この回避方法は簡単で、以下のように検索条件で日付の範囲指定をすれば、データを取得することができます。
他にも複合キーが存在するテーブルがいくつかあるので、データを表示する際は注意しましょう。
スマレジのTransaction 系のAPI 制限を回避するクエリ方法はこちらにまとめております。