API Server を使ってJSON のOData サービスを作成し、クラウドアプリケーションからのアクセスを可能にします。Salesforce からJSON のOData サービスを外部オブジェクトとして設定して利用します。
CData API Server はJSON (および 220+ の他のクラウドデータソース)をOData API 化し、Salesforce の画面やSalesforce1 のようなモバイルアプリケーションでの利用を実現します。
この記事では、API Server によりJSON データを外部オブジェクトとしてSalesforce Connect に設定して、Salesforce の標準オブジェクトと同感覚で使用する方法を説明します。
※製品について詳しい情報をご希望の方は以下からお進みください。
- JSON にほかのBI、ETL、開発ツールから接続したい:JSON データ連携ガイドおよびチュートリアルのリストへ
- API Server について詳細を知りたい:API Serverページへ
- ほかのデータソースに連携したい:CData Drivers 一覧へ
- ドライバーの30日の無償トライアル版を使いたい:トライアル版ダウンロードページへ
- 製品の利用やライセンスについて相談したい:sales@cdata.co.jp までメールにてご相談ください。
API Server の設定
次のステップに従い、セキュアなJSON OData サービスを立ち上げます:
デプロイ
API Server はサーバー上で稼働します。Windows 版は、製品に組み込まれているスタンドアロンのサーバーかIIS に配置して稼働させることができます。Java 版では、Java servlet コンテナにAPI Server のWAR ファイルを配置します。 デプロイの詳細は製品ヘルプを参照してください。API Server をAzure、Amazon EC2、Heroku にデプロイする方法はKB に記事があります。
JSON への接続
サーバーへのデプロイ後に、API Server の管理コンソールで[設定]→[接続]から新しい接続を追加してJSON を追加します。 JSON への接続に必要な認証情報を入力します。接続のテストを行い、接続を確認して、設定を保存します。
データソースへの認証については、ヘルプドキュメントの「はじめに」を参照してください。本製品は、JSON API を双方向データベーステーブルとして、JSON ファイルを読み取り専用ビュー(ローカル ファイル、一般的なクラウドサービスに保存されているファイル、FTP サーバー)としてモデル化します。HTTP Basic、Digest、NTLM、OAuth、FTP などの主要な認証スキームがサポートされています。詳細はヘルプドキュメントの「はじめに」を参照してください。
URI を設定して認証値を入力したら、DataModel を設定してデータ表現とデータ構造をより厳密に一致させます。
DataModel プロパティは、データをどのようにテーブルに表現するかを制御するプロパティで、次の基本設定を切り替えます。
- Document(デフォルト):JSON データのトップレベルのドキュメントビューをモデル化します。本製品 は、ネストされたオブジェクト配列を集約されたJSON オブジェクトとして返します。
- FlattenedDocuments:ネストされた配列オブジェクトと親オブジェクトを、単一テーブルに暗黙的に結合します。
- Relational:階層データから個々の関連テーブルを返します。テーブルには、親ドキュメントにリンクする主キーと外部キーが含まれています。
リレーショナル表現の設定についての詳細は、ヘルプドキュメントの「JSON データのモデリング」を参照してください。また、以下の例で使用されているサンプルデータも確認できます。データには人や所有する車、それらの車に行われたさまざまなメンテナンスサービスのエントリが含まれています。
接続を確立後、[設定]→[リソース]の画面でJSON からOData API として公開するエンティティを選択します。
API Server のユーザー設定
[設定]→[ユーザー]からAPI にアクセスできるユーザーの認証設定を行います。API Server はトークンでの認証を行うことができます。 IP アドレスでAPI へのアクセスを制限することも可能です。デフォルトではローカルマシンからのアクセスのみが許可されています。SSL の設定も可能です。
JSON データにOData サービスとしてアクセス
次のステップでAPI Server で生成されたOData フィードを接続します。
- Salsforce にログインし、[設定]→[開発]→[外部システムへの接続を管理する]をクリックします。
- [新規外部データソース]をクリックします。
- Enter values for the following properties:
- 外部データソース: Salesforce ユーザインターフェースに表示する表示ラベル
- 名前: 一意の識別子
- 種別: "Salesforce Connect: OData 4.0" を選択。
URL: API Server のOData エンドポイントのURL を設定します。フォーマットは、https://your-server:your-port.rsc.
です。プレーンテキストはテストのみに使用し、本番ではTSL の仕様を推奨します。
- [書き込み可能外部オブジェクト]オプションにクリックを入れます。
形式メニューでは、JSON を選択します。
- 認証セクションで、次のプロパティを設定します:
- ID 種別: 組織のすべてのメンバーが同じ認証情報でAPI Server にアクセスする場合には[指定ユーザー]を指定します。組織のメンバーがそれぞれの認証情報を使う場合には[ユーザ]を指定します。
- 認証プロトコル: ベーシック認証には、[パスワード認証]を選択します。
- 証明書: Salesforce からサーバーへの通信を暗号化し認証するには証明書を指定します。
- ユーザ名: API Server に登録されたユーザー名。
- パスワード: ユーザーのAuth トークン。

JSON オブジェクトの同期
外部オブジェクトを作成したら、次のステップでJSON 外部オブジェクトのデータソース側の変更を反映させます。 JSON テーブルの定義とJSON 外部オブジェクトの定義を同期する必要があります。
- 作成した外部オブジェクトをクリックします。
- [検証して同期]をクリックします。
- 外部オブジェクトとして作業するJSON テーブルを選択し、[同期]します。

Salesforce オブジェクトとしてJSON データにアクセス
JSON を外部オブジェクトとして設定したので、Salesforce 標準オブジェクトと同じようにアクセスが可能になりました。
-
フィルタリストビューで新しいタブを作成:
-
JSON 外部オブジェクトの関連テーブルを標準セールスフォースオブジェクトのように表示する:
-
Salesforce dashboard からJSON データをCRUD できます:
トラブルシューティング
以下によく質問がある接続の問題についてリストします:
- サーバーがインターネットにつながるIP アドレスを有していること。アプリケーションレイヤーでそのIP アドレスからのアクセスが許可されていること。
API Server をホスティングしているサーバーがTLS 1.1 以上を使っていること。Windows 版のAPI Server の組み込みサーバーはこれに準拠しています。
IIS の場合には、TLS 1.1 および1.2 がサポートされていますが、デフォルトでは有効化されていません。 これらのプロトコルを有効化するにはhow-to on MSDN および Microsoft technical referenceを参照してください。
Java 版の場合、Java 8では、TLS 1.2 がデフォルトでサポートされていますが、Java 6、7 ではサポートされていません。 もしJava 7以前のベージョンを利用している場合、 this Oracle how-to を参照してください。