次の方法で共有


チュートリアル: ビジネス データを使用した SharePoint での外部リストの作成

ビジネス データ接続 (BDC) サービスを使用すると、バックエンド サーバー アプリケーション、Web サービス、およびデータベースのビジネス データを SharePoint で表示できます。

このチュートリアルでは、サンプル データベースに含まれる連絡先に関する情報を返すという、BDC サービスのモデルを作成する方法について説明します。 次に、このモデルを使用して SharePoint に外部リストを作成します。

このチュートリアルでは、次の作業について説明します。

  • プロジェクトを作成する。

  • モデルにエンティティを追加する。

  • Finder メソッドを追加する。

  • SpecificFinder メソッドを追加する。

  • プロジェクトをテストする。

必須コンポーネント

このチュートリアルを実行するには、次のコンポーネントが必要です。

  • サポート対象エディションの Microsoft Windows および SharePoint。 詳細については、「SharePoint ソリューションの開発要件」を参照してください。

  • Visual Studio 2010 Professional または Visual Studio アプリケーション ライフサイクル管理 (ALM) のエディション

  • AdventureWorks サンプル データベースへのアクセス権。 AdventureWorks データベースのインストール方法の詳細については、「SQL Server Sample Databases (SQL Server サンプル データベース)」を参照してください。

Visual C++ プロジェクト

まず、BDC モデルを含むプロジェクトを作成します。

プロジェクトを作成するには

  1. Visual Studio 2010 を起動します。

  2. [新しいプロジェクト] ダイアログ ボックスを開き、使用する言語の [SharePoint] ノードを展開して、[2010] をクリックします。

  3. [テンプレート] ペインの [ビジネス データ接続モデル] を選択します。 プロジェクトに「AdventureWorksContacts」という名前を付け、[OK] をクリックします。

    SharePoint カスタマイズ ウィザードが表示されます。 このウィザードを使用すると、プロジェクトのデバッグに使用するサイトや、ソリューションの信頼レベルを選択できます。

  4. [完了] をクリックして、既定のローカル SharePoint サイトと既定のソリューションの信頼レベルを受け入れます。

プロジェクトへのデータ アクセス クラスの追加

プロジェクトにデータ アクセス クラスを追加するには

  1. [ツール] メニューの [データベースへの接続] をクリックします。

    [接続の追加] ダイアログ ボックスが表示されます。

  2. SQL Server AdventureWorks サンプル データベースとの接続を追加します。 詳細については、「接続の追加/変更 (Microsoft SQL Server)」を参照してください。

  3. ソリューション エクスプローラーで、プロジェクト ノードをクリックします。

  4. [プロジェクト] メニューの [新しい項目の追加] をクリックします。

  5. [インストールされたテンプレート] ペインで、[データ] ノードを選択します。

  6. [テンプレート] ペインの [LINQ to SQL クラス] をクリックします。

  7. [名前] ボックスに「AdventureWorks」と入力し、[追加] をクリックします。

    プロジェクトに .dbml ファイルが追加され、オブジェクト リレーショナル デザイナー (O/R デザイナー) が開きます。

  8. [表示] メニューの [サーバー エクスプローラー] をクリックします。

  9. サーバー エクスプローラーで、AdventureWorks サンプル データベースを示すノードを展開し、[テーブル] ノードを展開します。

  10. [Contact (Person)] テーブルを O/R デザイナーにドラッグします。

    エンティティ クラスが作成され、デザイン サーフェイスに表示されます。 このエンティティ クラスには、Contact (Person) テーブルの列にマップされるプロパティが含まれています。

BDC モデルからの既定のエンティティの削除

[ビジネス データ接続モデル] プロジェクトでは、Entity1 という名前の既定のエンティティがモデルに追加されます。 このエンティティを削除します。 後で、新しいエンティティを追加します。 空のモデルから始めることで、チュートリアルの完了までに必要な手順数を減らすことができます。

BDC モデルからの既定のエンティティを削除するには

  1. ソリューション エクスプローラーで、[BdcModel1] ノードを展開し、BdcModel1.bdcm ファイルをダブルクリックします。

  2. BDC デザイナーにビジネス データ接続モデル ファイルが開きます。

  3. デザイナーで [Entity1] を右クリックし、[削除] をクリックします。

  4. ソリューション エクスプローラーで Entity1.vb (Visual Basic の場合) または Entity1.cs (C# の場合) を右クリックし、[削除] をクリックします。

  5. Entity1Service.vb (Visual Basic の場合) または Entity1Service.cs (C# の場合) を右クリックし、[削除] をクリックします。

モデルへのエンティティの追加

モデルにエンティティを追加します。 Visual Studio ツールボックスのエンティティを BDC デザイナーにドラッグできます。

モデルにエンティティを追加するには

  1. [表示] メニューの [ツールボックス] をクリックします。

  2. ツールボックス[BusinessDataConnectivity] タブから、[エンティティ] を BDC デザイナーにドラッグします。

    新しいエンティティがデザイナーに表示されます。 EntityService.vb (Visual Basic の場合) または EntityService.cs (C# の場合) というプロジェクトにファイルが追加されます。

  3. [表示] メニューの [プロパティ ウィンドウ] をクリックします。

  4. プロパティ ウィンドウで、連絡先の [名前] を設定します。

  5. デザイナーのエンティティを右クリックし、[追加] をクリックし、[識別子] をクリックします。

    新しい識別子がエンティティに表示されます。

  6. プロパティ ウィンドウで、ContactID の識別子の名前を変更します。

  7. [型の名前] ドロップダウン リストの [System.Int32] をクリックします。

SpecificFinder メソッドの追加

BDC サービスで特定の連絡先を表示できるようにするには、SpecificFinder メソッドを追加する必要があります。 一覧の項目を選択し、[リボン] の [アイテムの表示] ボタンをクリックすると、BDC サービスによって SpecificFinder メソッドが呼び出されます。

[BDC メソッドの詳細] ウィンドウを使用して、SpecificFinder メソッドを Contact エンティティに追加します。 特定のエンティティを返すには、メソッドにコードを追加します。

SpecificFinder メソッドを追加するには

  1. BDC デザイナーで、[Contact] エンティティを選択します。

  2. [表示] メニューの [その他のウィンドウ] をクリックし、[BDC メソッドの詳細] をクリックします。

  3. [BDC メソッドの詳細] ウィンドウの [メソッドの追加] ドロップダウン リストから [SpecificFinder メソッドの作成] を選択します。

    次の要素がモデルに追加されます。 これらの要素は [BDC メソッドの詳細] ウィンドウに表示されます。

    • ReadItem というメソッド。

    • メソッドの入力パラメーター。

    • メソッドの戻り値パラメーター。

    • 各パラメーターの型記述子。

    • メソッドのメソッド インスタンス。

  4. [BDC メソッドの詳細] ウィンドウで、[Contact] 型記述子用に表示されるドロップダウン リストをクリックし、[編集] をクリックします。

    BDC エクスプローラーが開きます。 BDC エクスプローラーには、モデルを階層表示する機能があります。

  5. [プロパティ] ウィンドウで、[TypeName] プロパティの横に表示されるドロップダウン リストをクリックし、[現在のプロジェクト] タブをクリックして、[Contact] を選択します。

  6. BDC エクスプローラーで、[Contact] を右クリックし、[型記述子の追加] をクリックします。

    TypeDescriptor1 という新しい型記述子が BDC エクスプローラーに表示されます。

  7. プロパティ ウィンドウで、[名前] プロパティを「ContactID」に設定します。

  8. [TypeName] プロパティの横のドロップダウン リストをクリックし、[Int32] を選択します。

  9. [Identifier] プロパティの横のドロップダウン リストをクリックし、[ContactID] を選択します。

  10. 手順 6. を繰り返して、次の各フィールドについて型記述子を作成します。

    名前

    型名

    FirstName

    System.String

    LastName

    System.String

    Phone

    System.String

    EmailAddress

    System.String

    EmailPromotion

    System.Int32

    NameStyle

    System.Boolean

    PasswordHash

    System.String

    PasswordSalt

    System.String

  11. BDC デザイナーの [Contact] エンティティで、Readitem メソッドをダブルクリックします。

    コード エディターで、Contact のサービス コード ファイルが開きます。

  12. ContactService クラスで、ReadItem メソッドを次のコードに置き換えます。 このコードは次のタスクを実行します。

    • AdventureWorks データベースの Contacts テーブルのレコードを取得します。

    • Contact エンティティを BDC サービスに返します。

    注意

    ServerName フィールドの値を、使用するサーバーの名前に置き換えます。

    Public Shared Function ReadItem(ByVal contactID As Integer) As Contact
        Const ServerName As String = "MySQLServerName"
        Dim dataContext As AdventureWorksDataContext = _
            New AdventureWorksDataContext("Data Source=" & ServerName & _
                ";Initial Catalog=AdventureWorks;Integrated Security=True")
    
        Dim Contact As Contact = _
            (From TempContacts In dataContext.Contacts.AsEnumerable().Take(20) _
            Where TempContacts.ContactID = contactID _
            Select TempContacts).[Single]()
        Return Contact
    End Function
    
    public static Contact ReadItem(int contactID)
    {
        const string ServerName = "MySQLServerName";
        AdventureWorksDataContext dataContext = new AdventureWorksDataContext
              ("Data Source=" + ServerName + ";" +
               "Initial Catalog=AdventureWorks;Integrated Security=True");
    
        Contact Contact =
            (from contacts in dataContext.Contacts.AsEnumerable().Take(20)
             where contacts.ContactID == contactID
             select contacts).Single();
        return Contact;
    }
    

Finder メソッドの追加

BDC サービスで連絡先を一覧表示できるようにするには、Finder メソッドを追加する必要があります。 [BDC メソッドの詳細] ウィンドウを使用して、Finder メソッドを Contact エンティティに追加します。 エンティティのコレクションを BDC サービスに返すには、メソッドにコードを追加します。

Finder メソッドを追加するには

  1. BDC デザイナーで、[Contact] エンティティを選択します。

  2. [BDC メソッドの詳細] ウィンドウで、[ReadList] ノードを折りたたみます。

  3. ReadList メソッドの下に表示される [メソッドの追加] のドロップダウン リストの [Finder メソッドの作成] をクリックします。

    メソッド、戻り値パラメーター、および型記述子が追加されます。

  4. BDC デザイナーの [Contact] エンティティで、ReadList メソッドをダブルクリックします。

    コード エディターで、Contact のサービス コード ファイルが開きます。

  5. ContactService クラスで、ReadList メソッドを次のコードに置き換えます。 このコードは次のタスクを実行します。

    • AdventureWorks データベースの Contacts テーブルのデータを取得します。

    • Contact エンティティの一覧を BDC サービスに返します。

    注意

    ServerName フィールドの値を、使用するサーバーの名前に置き換えます。

    Public Shared Function ReadList() As IEnumerable(Of Contact)
        Const ServerName As String = "MySQLServerName"
        Dim dataContext As AdventureWorksDataContext = _
            New AdventureWorksDataContext("Data Source=" & ServerName & _
                ";Initial Catalog=AdventureWorks;Integrated Security=True")
    
        Dim Contacts As IEnumerable(Of Contact) = _
            From TempContacts In dataContext.Contacts.Take(20) _
                  Select TempContacts
        Return Contacts
    End Function
    
    public static IEnumerable<Contact> ReadList()
    {
        const string ServerName = "MySQLServerName";
        AdventureWorksDataContext dataContext = new AdventureWorksDataContext
              ("Data Source=" + ServerName + ";" +
               "Initial Catalog=AdventureWorks;Integrated Security=True");
    
        IEnumerable<Contact> Contacts =
            from contacts in dataContext.Contacts.Take(20)
            select contacts;
        return Contacts;
    
    }
    

プロジェクトのテスト

プロジェクトを実行すると、SharePoint サイトが開き、Visual Studio ではモデルがビジネス データ接続サービスに追加されます。 SharePoint に Contact エンティティを参照する外部リストを作成します。 AdventureWorks データベースに含まれる連絡先のデータが一覧表示されます。

注意

場合によっては、ソリューションをデバッグする前に SharePoint のセキュリティ設定を変更する必要があります。 詳細については、「Business Data Connectivity モデルのデザイン」を参照してください。

プロジェクトをテストするには

  1. F5 キーを押します。

    SharePoint サイトが開きます。

  2. [サイトの操作] メニューの [その他のオプション] をクリックします。

  3. [作成] ページの [外部リスト] をクリックし、[作成] をクリックします。

  4. カスタム リストに Contacts と名前を付けます。

  5. [外部コンテンツ タイプ] フィールドの横にある [参照] ボタンをクリックします。

  6. [外部コンテンツ タイプ ピッカー] ダイアログ ボックスの [AdventureWorksContacts.BdcModel1.Contact] をクリックし、[作成] をクリックします。

  7. [作成] をクリックして連絡先一覧を作成します。

    外部リストが作成されます。 AdventureWorks サンプル データベースの連絡先が外部リストに表示されます。

  8. SpecificFinder メソッドをテストするには、リスト内の連絡先をクリックします。

  9. リボンの [アイテム] タブをクリックします。

  10. [アイテム] タブで、[アイテムの表示] をクリックします。

    選択した連絡先の詳細情報がフォームに表示されます。

次の手順

SharePoint で BDC サービスのモデルを設計する方法の詳細については、次のトピックを参照してください。

参照

その他の技術情報

Business Data Connectivity モデルのデザイン

ビジネス データ接続モデルの作成

BDC モデルのデザイン ツールの概要

SharePoint へのビジネス データの統合