[方法] ランタイム オブジェクト モデルの使用を開始する
ランタイム オブジェクト モデルは、ビジネス データ カタログのクライアントおよびアプリケーションによって使用するために設計されています。ランタイム オブジェクト モデルには 2 つの主要な機能があります。
ランタイム オブジェクト モデルは、基礎になっているデータ ソースを抽象化する直感的なオブジェクト指向のインターフェイスを提供します。このモデルにより、クライアントは、アダプタ固有のコーディングの枠組みを学習する必要がなくなり、クライアントは単一の簡略化された方法で、すべてのビジネス アプリケーションにアクセスできます。ランライム オブジェクト モデルなので、SAP アプリケーションのメソッドを呼び出すことは、Siebel のメソッドを呼び出すことや、SQL クエリを実行することと同様です。ただし、ビジネス データ カタログが、実際のメソッドの実行やバックエンドでの組み込みを実行するわけではありません。クライアントの呼び出しを、データベース用の適切な Microsoft ADO.NET プロバイダまたは Web サービス用の Web サービス プロキシに委任するだけです。
ランタイム オブジェクト モデルは、ビジネス データ カタログのメタデータ モデルに従っています。メタデータには 13 個のメタデータ オブジェクトがすべて定義されており、メタデータ リポジトリからオブジェクトを読み取り、メタデータ リポジトリに記述されているビジネス ロジックを実行することができます。ランタイム オブジェクト モデルはキャッシュされ、高速なので、メタデータ リポジトリに対して、メタデータ情報のクエリだけを行う必要があるクライアントは、このモデルを使用する必要があります。
ランタイム オブジェクト モデルは、Microsoft.SharePoint.Portal.dll の以下の名前空間で定義されています。
ここでは、ランタイム オブジェクト モデルを使用してメタデータ リポジトリを参照し、ビジネス アプリケーションのメソッドを実行する簡単な Microsoft Visual Studio 2005 コンソール アプリケーションを、Microsoft Visual C# で記述する方法を示します。
管理オブジェクト モデルの場合と同様に、ApplicationRegistry がランタイム オブジェクト モデルの最上位のオブジェクトです。このオブジェクトはビジネス データ カタログへのエントリ ポイントとして機能し、メタデータ オブジェクトの読み取りとメソッドの実行を可能にします。
注意
ビジネス データ カタログ機能は、最初はアプリケーション レジストリという名前が付けられていましたが、ビジネス データ カタログという名前になりました。オブジェクト モデルの中に ApplicationRegistry という用語があるのはこのためです。この用語を見かけたら、ビジネス データ カタログを指すことを思い出してください。
例
ビジネス データ カタログは、Microsoft Office SharePoint Server 2007 の共有サービスとして実装されており、共有サービス プロバイダと共有されます。このため、ApplicationRegistry オブジェクトを使用する前に、ビジネス データ カタログに関連付けられている共有サービス プロバイダを参照する必要があります。
次のコード例では、ビジネス データ カタログで使用する、ローカル サーバー ファーム内の既定の共有サービス プロバイダ (SSP) を設定し、ビジネス データ カタログに登録されているシステムの名前を表示する方法を示します。SSP を指定することが、ビジネス データ カタログと連携するコンソール アプリケーションを設定する最初の手順です。
共有リソース プロバイダを指定したら、次の例に示すように、ApplicationRegistry オブジェクトを使用して、ビジネス データ カタログに登録されている LOBSystemInstance オブジェクトを取得できます。
前提条件
共有サービス プロバイダが既に作成されていることを確認します。
コード内の定数値 EnterYourSSPNameHere を共有リソース プロバイダの名前に置き換えます。
プロジェクト参照
このサンプルを実行する前に、コンソール アプリケーション コード プロジェクトに以下のプロジェクト参照を追加します。
Microsoft.SharePoint
Microsoft.SharePoint.Portal
Microsoft.Office.Server
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using Microsoft.Office.Server.ApplicationRegistry.MetadataModel;
using Microsoft.Office.Server.ApplicationRegistry.Runtime;
using Microsoft.Office.Server.ApplicationRegistry.SystemSpecific;
using Microsoft.Office.Server.ApplicationRegistry.Infrastructure;
using WSSAdmin = Microsoft.SharePoint.Administration;
using OSSAdmin = Microsoft.Office.Server.Administration;
namespace Microsoft.SDK.SharePointServer.Samples
{
class GetStartedAndDisplaySystems
{
const string yourSSPName = "EnterYourSSPNameHere";
static void Main(string[] args)
{
SetupBDC();
DisplayLOBSystemsinBDC();
Console.WriteLine("Press any key to exit...");
Console.Read();
}
static void SetupBDC()
{
SqlSessionProvider.Instance().SetSharedResourceProviderToUse(yourSSPName);
}
static void DisplayLOBSystemsinBDC()
{
NamedLobSystemInstanceDictionary sysInstances = ApplicationRegistry.GetLobSystemInstances();
Console.WriteLine("Listing system instances...");
foreach (String name in sysInstances.Keys)
{
Console.WriteLine(name);
}
}
}
}