外部コンテンツ タイプの間に関連付けを追加する

最終更新日: 2010年5月4日

適用対象: SharePoint Server 2010

この記事の内容
関連付けの最も一般的なタイプ: 一対多
関連付けと BDC
SharePoint Designer 2010 でサポートされている関連付け
データベースベース対 Web サービスベースの外部コンテンツ タイプの関連付け
関連付けを作成する外部コンテンツ タイプの選択
逆方向の関連付け
ユーザー インターフェイスでの関連付けの表示

実際のシナリオでは、特定のビジネス エンティティの関連情報または補足情報を頻繁に検索する必要があります。たとえば、顧客プロファイルの追加情報 (その顧客が行った最近の注文、普段その顧客が購入する上位 5 つの製品など) を検索したい場合があります。Microsoft Business Connectivity Services (BCS) では、2 つの外部コンテンツ タイプを関連付けて、このようなシナリオをサポートすることができます。2 つの関連する外部コンテンツ タイプをリンクする概念は、関連付けと呼ばれます。

関連付けの最も一般的なタイプ: 一対多

関連付けの最も一般的なタイプは、一対多、つまりマスター/詳細の関連付けです。従来の顧客/注文の例に従うと、関連付けを定義するときに、Business Connectivity Services では次のシナリオが可能になります。

  • 顧客プロファイルを調べるとき、その顧客によって送信された注文を参照できます (マスター/詳細レポート)。

  • 注文を参照しているとき、その注文を行った顧客の詳細に移動できます。

  • 注文を作成するときは、その注文に顧客を割り当てる必要がありますが、注文作成フォームで顧客の主キー (識別子) を推測しなくても、利用可能な既存の顧客リストから顧客を選択できます。顧客が選択されたら、主キーではなく顧客の名前を参照できます。

  • 注文を参照するとき、その注文を行った顧客の詳細を参照できます (逆引き参照)。

関連付けと BDC

関連付けは、Business Data Connectivity (BDC) service のメソッド インスタンスです。関連付けは、親および子の外部コンテンツ タイプへのポインターと、クライアントが親外部コンテンツ タイプから子外部コンテンツ タイプを取得できるようにするビジネス ロジック (MethodInstance オブジェクト) へのポインターを保持します。関連付けのトラバーサルは、外部システム上のメソッド呼び出しです。

Association メソッド インスタンスには、SourceEntity インスタンスの識別子値に対応するスロットと、DestinationEntity インスタンスの識別子値に対応するスロットが含まれています。このため、十分な入力用 TypeDescriptor オブジェクトを、各外部コンテンツ タイプ (Association メソッド内の Association にあるソース) のそれぞれの識別子に対応する識別子でタグ付けする必要があります。入力用 TypeDescriptor オブジェクトの IdentifierName 属性は、BDC に、メソッドを実行する前に適切な EntityInstance の識別子を挿入するように伝えます。たとえば AssociationMethodInstance では、ユーザーは、取得したいソース EntityInstance の識別子値をおそらく提供しています。BDC では、すべての既定値を使用してこのパラメーターを完全にインスタンス化した後に、その値をこのスロットに挿入します。

BDC モデルでは、Association ロジック (MethodInstance) が、任意の外部コンテンツ タイプ (ソースまたは移行先) に存在します。また移行先外部コンテンツ タイプが Association メソッド インスタンスを含む LobSystem に属している場合は、関連しない外部コンテンツ タイプ上に存在します。Microsoft SharePoint Designer 2010 では関連付けを作成できますが、関連付けは移行先外部コンテンツ タイプで定義される必要があります。

BDC では、複数のソース外部コンテンツ タイプ シナリオと 1 つの移行先コンテンツ タイプ シナリオもサポートします。SharePoint Designer 2010 では、このような関連付けはサポートされていません。

BDC では、外部キーのない関連付けもサポートします。外部キーのない関連付けは、ファーストクラスの関連付けではありません。顧客を返す Web メソッドを検討します。顧客のフィールドの 1 つは、顧客アドレスに対するキーです。キーが与えられている場合は、アドレスを返す別の Web メソッドも検討します。このメソッドを顧客/アドレスの Association メソッドとして (場合によってはアドレスの SpecificFinder と一緒に) 使用できます。外部キー擬似関連付けでは、このメソッドのターゲットがアドレスであると判断し、返された顧客からアドレスのキーを取得して、次にこの関連付け Method を呼び出してアドレスを自動的に返します。

注意注意

BDC モデルでは、外部キー疑似関連付けをサポートしますが、SharePoint Designer 2010 ではサポートしません。したがって、SharePoint Designer を使用して外部キー疑似関連付けをモデル化することはできません。

SharePoint Designer 2010 でサポートされている関連付け

SharePoint Designer 2010外部のコンテンツ タイプ デザイナーで作成できる関連付けのタイプは、一対多の関連付けと自己参照型の関連付けです。自己参照型の関連付けは、同じ外部コンテンツ タイプの関連インスタンスです。これらの関連付けはすべて外部キーに基づきます。

外部キーを使用しないで多対多の関連付けを作成するか、複数の関連外部コンテンツ タイプとの関連付けを作成する場合は、XML エディターか Visual Studio 2010 を使用して手動で作成する必要があります。Visual Studio 2010 の外部のコンテンツ タイプ デザイナーを確認するか、関連付けの作成方法のデモを表示する場合は、Boris Scholl のビデオ「Using the SharePoint Business Data Connectivity Designer in VS 2010 (英語)」をご覧ください。

データベースベース対 Web サービスベースの外部コンテンツ タイプの関連付け

データベースベースの外部コンテンツ タイプでは、他の操作の作成に使用するテーブルと同じテーブルで関連付けを作成します。Web サービスベースの外部コンテンツ タイプでは、適切な Web メソッドで関連付けを作成します。詳細については、以下のトピックを参照してください。

注意注意

データベース テーブルでは逆方向の関連付けは作成できません。詳細については、「逆方向の関連付け」を参照してください。

関連付けを作成する外部コンテンツ タイプの選択

関連付けの作成の準備ができるまでに、(対応するアイテムの読み取り操作とリストの読み取り操作を使用して) 2 つの外部コンテンツ タイプが作成されています。SharePoint Designer外部のコンテンツ タイプ デザイナーを使用すると、他の操作と同じように、関連付けを宣言して作成できます。親外部コンテンツ タイプに対する外部キーを持つ外部コンテンツ タイプに関連付けを作成します。たとえば、顧客が複数の注文を行う顧客/注文シナリオについて考えてみましょう。各注文には、価格、数量、日付などのフィールドの他に、注文を行った顧客の名前が一覧表示されているフィールドがあります。このフィールドは外部キー フィールドですが、この情報は注文に含まれているため、SharePoint Designer で注文外部コンテンツ タイプを開いて、そこで関連付けを作成します。

データベースベースの外部コンテンツ タイプについては、他の操作を作成したときと同じテーブルを右クリックして、そのテーブルで関連付けを作成します。詳細については、「[方法] 2 つのデータベース テーブル ベースの外部コンテンツ タイプ間の関連付けを追加する」を参照してください。Web ベースの外部コンテンツ タイプについては、関連付け用のメソッドを右クリックします。詳細については、「[方法] 2 つの Web サービス ベースの外部コンテンツ タイプ間の関連付けを追加する」を参照してください。

逆方向の関連付け

ほとんどの場合、外部キーに基づいて親アイテム (マスター) の関連アイテム (詳細) を表示する前方向の関連付けがあるはずです。ただし場合によっては、特定の注文が属する顧客を表示するなど、特定のアイテムのマスター アイテムを表示する必要があります。これには、逆方向の関連付けを作成する必要があります。つまり SharePoint Designer の関連付けは、外部コンテンツ タイプの複数アイテムを取得するのに対し、逆方向の関連付けは、関連する外部コンテンツ タイプの単一のアイテムを取得します。

ユーザー インターフェイスでの関連付けの表示

2 つの外部コンテンツ タイプ間の関連付けを作成すると (「[方法] 2 つのデータベース テーブル ベースの外部コンテンツ タイプ間の関連付けを追加する」を参照)、SharePoint Designer 2010 のユーザー インターフェイスと SharePoint サイトの次の場所で、これらの関連付けを表示できます。

  • 外部リスト フォーム: 関連付けが最もわかりやすいのが外部リスト フォームです。たとえば、注文に対応する顧客の選択に外部アイテム ピッカーを使用できます。このフォームでは、顧客の既存のリストから顧客を選択できます。外部リストが Outlook または SharePoint Workspace と同期されている場合は、リッチ クライアント バージョンの選択がフォームに表示され、それを使用して注文を作成することもできます。

    図 1. 外部アイテム ピッカー

    顧客用外部アイテム選択が含まれる新しい発注書フォーム

    どちらの場合も、顧客の選択時に、外部システムの顧客を特定するために、番号よりも意味のあるわかりやすい表示名を外部アイテム ピッカー コントロールに表示します。たとえば顧客名や、SharePoint Designer でタイトル フィールドとしてタグ化されているフィールドなどを表示します。

  • プロファイル ページ: 関連付けを定義した後に、顧客の注文が顧客のプロファイル ページにどのように表示されるかに注目してください。同じように、注文のプロファイル ページで逆方向の関連付けが定義されている場合は、それを使用して移動し顧客の詳細な情報を確認できます。

    図 2. 顧客のプロファイル ページでの注文

    顧客の注文リスト

  • ビジネス データ Web パーツ: ビジネス データ リストおよびビジネス データ関連リストの Web パーツは関連付けを利用し、図 3 にあるような興味深いシナリオを有効にできます。このシナリオでは、上部のビジネス データ リスト部分に一連の顧客が表示され、顧客を選択するとき、ビジネス データ関連リスト部分に関連する注文が表示されます。

    図 3. ビジネス データ Web パーツ

    ビジネス データ リストとビジネス データ関連リスト

関連項目

タスク

[方法] 2 つの Web サービス ベースの外部コンテンツ タイプ間の関連付けを追加する

[方法] 2 つのデータベース テーブル ベースの外部コンテンツ タイプ間の関連付けを追加する