【ノーコード】Access をSalesforce の外部オブジェクトとしてノーコード連携:API Server
CData API Server はAccess (および 250+ のデータソース)をOData API 化し、Salesforce やSalesforce モバイルアプリケーション(旧:Salesforce1)での利用を実現します。 この記事では、API Server を使ってAccess のデータを外部オブジェクトとしてSalesforce Connect に設定し、Salesforce の標準オブジェクトと同感覚で使用する方法を説明します。
API Server の設定
以下のリンクからAPI Server の無償トライアルをスタートしたら、セキュアなAccess OData サービスを作成していきましょう。
Access への接続
Salesforce Connect からAccess のデータを操作するには、まずAccess への接続を作成・設定します。
- API Server にログインして、「Connections」をクリック、さらに「接続を追加」をクリックします。
- 「接続を追加」をクリックして、データソースがAPI Server に事前にインストールされている場合は、一覧から「Access」を選択します。
- 事前にインストールされていない場合は、コネクタを追加していきます。コネクタ追加の手順は以下の記事にまとめてありますので、ご確認ください。
CData コネクタの追加方法はこちら >> - それでは、Access への接続設定を行っていきましょう!
-
Access接続の設定方法
ローカルファイルへの接続設定
ローカル環境からAccess への接続は非常にシンプルです。ConnectionType をLocal に設定することで、CRUD 操作(SELECT、INSERT、UPDATE、DELETE)をすべて実行できます。接続にはDataSource プロパティに以下のようなAcces sデータベースファイルのフルパスを指定します。
C:\Users\Public\Documents\MyDatabase.accdb
詳細な接続手順については、ヘルプドキュメントの「はじめに」セクションをご参照ください。
クラウドストレージ上のAccess ファイルへの接続設定
各種クラウドストレージに保存されているAccess ファイルへのアクセスにも対応しています。ただし、クラウド上のファイルに対するデータ操作は、INSERT、UPDATE、DELETE に制限されますのでご注意ください。
S3、Google Driver、OneDrive など、各種クラウドストレージ内のAccess ファイルへの接続方法はこちらの記事をご確認ください。
クラウド上のファイルを更新したい場合は、以下の手順で実施いただけます。
- 対応するCData ドライバーを利用し、クラウドサービスからAccess ファイルをダウンロード
- Access ドライバーを使用して、ローカル環境でファイルを編集
- クラウドサービス用ドライバーのストアドプロシージャを使用して、更新ファイルをアップロード
具体例として、SharePoint 上のファイルを更新する場合の手順をご紹介します。
- CData SharePoint ドライバーのDownloadDocument プロシージャを使用してファイルを取得
- CData Access ドライバーでファイルの更新を実施
- SharePoint ドライバーのUploadDocument プロシージャで更新内容を反映
DataSource 接続プロパティの設定について補足いたします。接続先のクラウドストレージを識別するための一意の接頭辞を指定し、続けて目的のファイルパスまたはフォルダパスを記述します。フォルダを指定した場合は1ファイルが1テーブルとして、単一ファイルの場合は単一テーブルとして扱われます。
- 接続情報の入力が完了したら、「保存およびテスト」をクリックします。
Access接続の設定方法
ローカルファイルへの接続設定
ローカル環境からAccess への接続は非常にシンプルです。ConnectionType をLocal に設定することで、CRUD 操作(SELECT、INSERT、UPDATE、DELETE)をすべて実行できます。接続にはDataSource プロパティに以下のようなAcces sデータベースファイルのフルパスを指定します。
C:\Users\Public\Documents\MyDatabase.accdb
詳細な接続手順については、ヘルプドキュメントの「はじめに」セクションをご参照ください。
クラウドストレージ上のAccess ファイルへの接続設定
各種クラウドストレージに保存されているAccess ファイルへのアクセスにも対応しています。ただし、クラウド上のファイルに対するデータ操作は、INSERT、UPDATE、DELETE に制限されますのでご注意ください。
S3、Google Driver、OneDrive など、各種クラウドストレージ内のAccess ファイルへの接続方法はこちらの記事をご確認ください。
クラウド上のファイルを更新したい場合は、以下の手順で実施いただけます。
- 対応するCData ドライバーを利用し、クラウドサービスからAccess ファイルをダウンロード
- Access ドライバーを使用して、ローカル環境でファイルを編集
- クラウドサービス用ドライバーのストアドプロシージャを使用して、更新ファイルをアップロード
具体例として、SharePoint 上のファイルを更新する場合の手順をご紹介します。
- CData SharePoint ドライバーのDownloadDocument プロシージャを使用してファイルを取得
- CData Access ドライバーでファイルの更新を実施
- SharePoint ドライバーのUploadDocument プロシージャで更新内容を反映
DataSource 接続プロパティの設定について補足いたします。接続先のクラウドストレージを識別するための一意の接頭辞を指定し、続けて目的のファイルパスまたはフォルダパスを記述します。フォルダを指定した場合は1ファイルが1テーブルとして、単一ファイルの場合は単一テーブルとして扱われます。
API Server のユーザー設定
次に、API Server 経由でAccess にアクセスするユーザーを作成します。「Users」ページでユーザーを追加・設定できます。やってみましょう。
- 「Users」ページで ユーザーを追加をクリックすると、「ユーザーを追加」ポップアップが開きます。
-
次に、「ロール」、「ユーザー名」、「権限」プロパティを設定し、「ユーザーを追加」をクリックします。
-
その後、ユーザーの認証トークンが生成されます。各ユーザーの認証トークンとその他の情報は「Users」ページで確認できます。
Access 用のAPI エンドポイントの作成
ユーザーを作成したら、Access のデータ用のAPI エンドポイントを作成していきます。
-
まず、「API」ページに移動し、
「 テーブルを追加」をクリックします。
-
アクセスしたい接続を選択し、次へをクリックします。
-
接続を選択した状態で、各テーブルを選択して確認をクリックすることでエンドポイントを作成します。
OData のエンドポイントを取得
以上でAccess への接続を設定してユーザーを作成し、API Server でAccess データのAPI を追加しました。これで、OData 形式のAccess データをREST API で利用できます。API Server の「API」ページから、API のエンドポイントを表示およびコピーできます。
Access のデータに外部データソースとしてアクセス
ここからは、API Server で生成したOData フィードにSalesforce から実際に接続してみます。
- Salsforce にログインし、[設定]→[統合]→[外部データソース]をクリックします。
- 「新規外部データソース」をクリックします。
- 次の値を入力してください。
- 外部データソース: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 トークン。
Access オブジェクトの同期
外部オブジェクトを作成したら、次のステップでAccess 外部オブジェクトのデータソース側の変更を反映させます。 Access テーブルの定義とAccess 外部オブジェクトの定義を同期する必要があります。
- 作成した外部オブジェクトをクリックします。
- [検証して同期]をクリックします。
- 外部オブジェクトとして作業するAccess テーブルを選択し、[同期]します。
Salesforce オブジェクトとしてAccess のデータにアクセス
以上でAccess を外部オブジェクトとして設定できたので、Salesforce の標準オブジェクトと同じようにアクセスできます。実際にアクセスしてみましょう。
-
フィルタリストビューで新しいタブを作成。
-
Access 外部オブジェクトの関連テーブルを標準セールスフォースオブジェクトのように表示。
-
Salesforce ダッシュボードからAccess データを取得・更新。
トラブルシューティング
よくある接続時の問題を解決するためには、以下のチェックリストを確認してみてください。
- サーバーがパブリックにアクセス可能なIP アドレスを持っていることを確認してください。関連して、オペレーティングシステム層でAPI Server が実行されているポートのファイアウォールが開いていることを確認する必要があります。アプリケーション層では、管理コンソールの設定 -> セキュリティタブで信頼できるIP アドレスを追加したことを確認してください。
- 商業的な信頼されたCA からのSSL 証明書で保護された接続を使用していることを確認してください。Salesforce は現在、自己署名証明書や内部CA を受け付けていません。
API Server をホストしているサーバーがTLS 1.1 以上を使用していることを確認してください。.NET 版のAPI Server を使用している場合は、API Server の組み込みサーバーを使用してこれを実現できます。
IIS を使用している場合、TLS 1.1 と 1.2 はサポートされていますが、デフォルトでは有効になっていません。これらのプロトコルを有効にするには、MSDN のハウツーとMicrosoft のページを参照してください。
Java 版を使用している場合、TLS 1.2 は Java 8 ではデフォルトで有効になっていますが、Java 6 または 7 ではそうではありません。これらの以前のバージョンを使用している場合は、Oracle のハウツーを参照してください。
おわりに
以上で、Salesforce の外部データソースとしてAccess のデータに直接接続できるようになりました。
API Server のご利用について質問などありましたら、問い合わせフォームよりお気軽にご相談ください。