SharePoint でクライアント オブジェクト モデルと外部データを使用する方法の概要

SharePoint クライアント オブジェクト モデルを使用して SharePoint で Business Connectivity Services (BCS) を操作する方法を説明します。

SharePoint クライアント オブジェクト モデルとは

SharePoint のクライアント オブジェクト モデルは、サーバー オブジェクト モデルを表すクライアントベース ライブラリ セットです。 多様な開発のタイプに合わせて、3 種類の DLL にパッケージ化されています。 クライアント オブジェクト モデルには、サーバー API の主要な機能のほとんどが含まれています。 そのため、ブラウザー スクリプト, .NET Web アプリケーション、および Silverlight アプリケーションからも同じ種類の機能にアクセスできます。
外部データを操作する機能を強化および拡張するために、Business Connectivity Services (BCS) ではクライアント オブジェクト モデルが拡張され、機能が追加されました。

Get set upGet to work詳細情報

SharePoint クライアント オブジェクト モデルと外部データを使用する方法の概要

SharePoint クライアント オブジェクト モデル (CSOM) を使用してソリューションを開発するには、以下が必要です。

  • SharePoint

  • Visual Studio 2012

  • Office Developer Tools for Visual Studio 2012

開発環境を設定する方法については、「 SharePoint での BCS の開発環境のセットアップ」を参照してください。

クライアント オブジェクト モデルが提供する機能にアクセスするために必要なことは、プロジェクトで Microsoft.SharePoint.Client.Runtime.dll ファイルと Microsoft.SharePoint.Client.dll ファイルへの参照を追加することだけです。 また、グローバル アセンブリ キャッシュの次のような DLL を参照して、クライアント オブジェクト モデルを使用することもできます。

  • \\Program Files\\Common Files\\Microsoft Shared\\Web Server Extensions\\15\\isapi\\Microsoft.SharePoint.Client.Runtime.dll

  • \\Program Files\\Common Files\\Microsoft Shared\\Web Server Extensions\\15\\isapi\\Microsoft.SharePoint.Client.dll

SharePoint クライアント オブジェクト モデルの要点

SharePoint のクライアント オブジェクト モデルの詳細については、次の記事を参照してください。

表 1. クライアント オブジェクト モデルを理解するための中心的な概念

記事 説明
SharePoint の外部コンテンツ タイプ
外部コンテンツ タイプによって実現できる処理、および SharePoint で外部コンテンツ タイプの作成を始めるための必要事項を説明します。
SharePoint の Business Connectivity Services で OData ソースを使用する
OData ソースに基づいて外部コンテンツ タイプを作成し、そのデータを SharePoint コンポーネントまたは Office 2013 コンポーネントで使用する方法の概要を説明します。
SharePoint での適切な API セットの選択
サーバー オブジェクト モデル、多様なクライアント オブジェクト モデル、REST/OData web サービスなど、SharePoint で提供されている API の一部について説明します。
SharePoint .NET クライアント API リファレンス
ここでは、SharePointの .NET クライアント クラス ライブラリに関する情報を入手できます。
SharePoint JavaScript API リファレンス
ここでは、SharePointにおける JavaScript オブジェクト ライブラリに関する情報を入手できます。

クライアント オブジェクト モデルによって実現できる処理

SharePoint クライアント オブジェクト モデルを使用すると、SharePoint に含まれるデータを取得、更新、および管理できます。 SharePoint は、さまざまな形式でクライアント ライブラリを提供しているため、ほとんどの開発者にご利用いただけます。 スクリプト言語を使用している Web 開発者の場合、JavaScript でクライアント ライブラリが提供されています。 .NET 開発者の場合, .NET クライアント管理 DLL として提供されています。 Silverlight アプリケーションの開発者の場合、クライアント ライブラリは Silverlight DLL で提供されています。

SharePoint のクライアント オブジェクト モデルを使用して実現できる処理の詳細については、表 2 の記事を参照してください。

表 2. クライアント オブジェクト モデルと外部データを使用するための基本的なタスク

タスク 説明
SharePoint のクライアント ライブラリ コードを使用して基本的な操作を完了する
SharePoint クライアント オブジェクト モデルを使用して基本的な操作を実行するコードを記述する方法を説明します。
[方法] SharePoint のクライアント コード ライブラリを使用して外部データにアクセスする
SharePoint クライアント オブジェクト モデルを使用して、ブラウザーベースのスクリプトを使用して BCS を操作する方法を説明します。

次に、CSOM を使用して実現できるタスクの基本的な例をいくつか示します。

特定のエンティティを取得する

この例は、SharePoint からコンテキストを取得し、指定したデータ ソース エンティティを取得する方法を示しています。


ClientContext ctx = new ClientContext("http://sharepointservername"); 
Web web = ctx.Web; 
ctx.Load(web); 
Entity entity = ctx.Web.GetEntity("http://sharepointservername", "EntityName"); 
ctx.Load(entity); 
ctx.ExecuteQuery(); 

汎用的な呼び出し元を作成する

この例は、コード内で動作するエンティティ オブジェクトを作成できるように汎用的な呼び出し元を作成する方法を示しています。

LobSystem lobSystem = entity.GetLobSystem();
ctx.Load(lobSystem);

LobSystemInstanceCollection lobInstances = lobSystem.GetLobSystemInstances();
ctx.Load(lobInstances);
ctx.ExecuteQuery();

LobSystemInstance lsi;
foreach(LobSystemInstance lobInstance in lobInstances)
{
  if (lobInstance.Name.CompareTo("MyLOBSystemInstance") == 0)
  {
    lsi = lobInstance;
  }
}

if (null != lsi)
{
  entity.Execute("MethodInstanceName", lsi, Array.Empty<object>()); 
  ctx.Load(myObj); 
  ctx.ExecuteQuery();
}

ページ化された結果セットを取得する

次の例は、フィルターされ、ページ化されたデータセットを取得する方法を示しています。 この場合、ページ値は 50 です。


// Find filters for given Method Name. 
FilterCollection fCollection = entity.GetFilters("methodName"); 
ctx.Load(fCollection); 
ctx.ExecuteQuery(); 

fCollection.SetFilterValue("X.Y.Z.Country", 0, "India")
// Assuming that the "RowLimit" filter has the Limit filter type
fCollection.SetFilterValue("RowLimit", 0, 50)

EntityInstanceCollection eCollection = entity.FindFiltered(fCollection, 
"nameOfFinder", lsi); 
ctx.ExecuteQuery(); 

フィルターされた情報のクエリ

次の例は、フィルターされた結果セットを返す方法を示しています。 この場合、フィルターされるデータ列は X.Y.Z.Country フィードです。 "India" という値が含まれるデータが検索され、コレクションに格納されます。


// Find filters for given Method Name. 
FilterCollection fCollection = entity.GetFilters("methodName"); 
ctx.Load(fCollection); 
ctx.ExecuteQuery(); 

fCollection.SetFilterValue("X.Y.Z.Country", 0, "India")

EntityInstanceCollection eCollection = entity.FindFiltered(fCollection, 
"nameOfFinder", lsi); 
ctx.ExecuteQuery(); 

次の手順: クライアント オブジェクト モデルについての理解を深める

SharePoint でクライアント オブジェクト モデルを使用する方法の詳細については、表 3 を参照してください。

表 3. クライアント オブジェクト モデルの高度な概念

記事 説明
SharePoint BCS クライアント オブジェクト モデル リファレンス
SharePoint クライアント オブジェクト モデルを使用してクライアント側スクリプトを作成し、BCS で公開されている外部データにアクセスするために使用できるオブジェクトについてまとめています。

関連項目