サンプルの DataSource.Provider クラスの作成
DataSource.Provider のいくつかのメソッドを拡張し、上書きするクラスが必要です。
DataSource.Provider クラスは、外部システムへの接続でサポートされているか、必要となる認証機能やその他の機能を Salesforce に伝えます。
1global class SampleDataSourceProvider extends DataSource.Provider {外部システムに認証が必要な場合、Salesforce で外部データソース定義またはユーザの個人設定から認証情報を提供できます。ただし、この例では簡略化のために外部システムに認証が不要であると宣言します。そのために、認証機能のリスト内の唯一のエントリとして AuthenticationCapability.ANONYMOUS を返します。
1override global List<DataSource.AuthenticationCapability>
2 getAuthenticationCapabilities() {
3 List<DataSource.AuthenticationCapability> capabilities =
4 new List<DataSource.AuthenticationCapability>();
5 capabilities.add(
6 DataSource.AuthenticationCapability.ANONYMOUS);
7 return capabilities;
8 }この例ではまた、外部システムで SOQL クエリ、SOSL クエリ、Salesforce 検索、データの更新/挿入、データの削除を許可することを宣言します。
- SOQL を許可するために、DataSource.Capability.ROW_QUERY 機能を宣言します。
- SOSL および Salesforce 検索を許可するために、DataSource.Capability.SEARCH 機能を宣言します。
- 外部データの更新/挿入を許可するために、DataSource.Capability.ROW_CREATE および DataSource.Capability.ROW_UPDATE 機能を宣言します。
- 外部データの削除を許可するため���、DataSource.Capability.ROW_DELETE 機能を宣言します。
1override global List<DataSource.Capability> getCapabilities()
2 {
3 List<DataSource.Capability> capabilities = new
4 List<DataSource.Capability>();
5 capabilities.add(DataSource.Capability.ROW_QUERY);
6 capabilities.add(DataSource.Capability.SEARCH);
7 capabilities.add(DataSource.Capability.ROW_CREATE);
8 capabilities.add(DataSource.Capability.ROW_UPDATE);
9 capabilities.add(DataSource.Capability.ROW_DELETE);
10 return capabilities;
11 }最後に、この例では、外部システムのスキーマを取得し、外部データのクエリと検索を処理する SampleDataSourceConnection クラスを指定します。
1override global DataSource.Connection getConnection(
2 DataSource.ConnectionParams connectionParams) {
3 return new SampleDataSourceConnection(connectionParams);
4 }
5}