宣言型ソリューションの BCS 再利用可能コード コンポーネントを使用する

カスタム外部データ パーツおよびコード アクションを表示し、カスタム リボン マネージャーを使用することにより、中間宣言型の Outlook ソリューションをさらに拡張することができます。SharePoint 2010 SDK には、コード サンプル: AdventureWorks2008 宣言型 Outlook ソリューションの再利用可能コンポーネントが含まれます。

最終更新日: 2010年9月2日

適用対象: SharePoint Server 2010

このサンプルはカスタム リボン マネージャー、カスタム外部データ パーツ、およびコード アクションを定義します。これらのコード コンポーネントを作成する手順について、このトピックの「宣言型の Outlook ソリューションで再利用可能なコード コンポーネントを作成して使用する」セクションを参照してください。このトピックの最初の部分で、中間宣言型の Outlook ソリューションで、既存のコード コンポーネントを参照して使用する方法について説明します。2 番目の部分で、中間宣言型 Outlook ソリューションの再利用可能なコード コンポーネントを作成して使用する手順について説明します。

重要重要

ソリューションをパッケージ化する前に、宣言型のソリューションのための Solution Artifacts フォルダーに、これらのコード コンポーネントを定義する Microsoft .NET Framework アセンブリをコピーする必要があります。

概要: 中間宣言型 Outlook ソリューションの既存のコード コンポーネントを使用する

ユーザー設定コード アクションの使用

以下の例に示すように、OIR.config ファイルで、ユーザー設定コード アクションを使用することができます。

<Declarative:CodeMethodAction Name ="CreateTaskAction" MethodType ="Custom" 
  MethodName="NewCustomVisitTask" 
  QualifiedTypeName="ContosoCustomer.CustomCodeAction, ContosoCustomer, 
  Version=1.0.0.0, Culture=neutral, PublicKeyToken=e355b6f7ef818b12">
  <Declarative:Parameters>
    <Declarative:ConstantParameter Name="Para1" 
                                   Value="EditRelatedOrderHeader" 
                                   ValueType="System.String"/>
  </Declarative:Parameters>
</Declarative:CodeMethodAction>

レイアウトでのカスタム外部データ パーツの使用

レイアウト ファイルで、以下のコードに示すように、カスタム外部データ パーツを参照することができます。

<?xml version="1.0" encoding="utf-8" ?>
<Container ContainerType="Stack" 
  xmlns="https://schemas.microsoft.com/office/2009/05/BusinessApplications/Layout" 
  xmlns:loc="https://schemas.microsoft.com/office/2009/05/BusinessApplications/Localization">
  <CustomProperties />
  <Children>
    <OBPart DataSourceName="PrimaryEntityNameInContext" PartType="Custom" 
            Text="Related Order" FillParent="true" 
            QualifiedTypeName="ContosoCustomer.CustomOBPart, ContosoCustomer, 
            Version=1.0.0.0, Culture=neutral, PublicKeyToken=e355b6f7ef818b12">
      <CustomProperties />
    </OBPart>
  </Children>
</Container>

カスタム リボン マネージャーの使用

OIR.config ファイルで、以下のコードに示すように、カスタム リボン マネージャーを指定します。

<SolutionSettings SolutionId="ContosoSalesManager" 
                  SolutionDisplayName="Contoso Sales Manager" 
                  SolutionVersion="1.0.0.0" 
                  xsl:type="Declarative:DeclarativeSolutionSettings" 
                  CustomRibbonManager="ContosoCustomer.CustomRibbonManager, 
                  ContosoCustomer, Version=1.0.0.0, Culture=neutral, 
                  PublicKeyToken=e355b6f7ef818b12"/>

宣言型の Outlook ソリューションで再利用可能なコード コンポーネントを作成して使用する

このセクションには、再利用可能なコード コンポーネント、すなわちユーザー設定コード アクション、カスタム外部データ パーツ、およびカスタム リボン マネージャーを作成して使用するための手順が含まれます。このチュートリアルでソリューションを作成するには、このチュートリアルで変更するソリューション成果物を作成するために、まず「[チュートリアル] 中間宣言型 Outlook ソリューションの作成」の手順に従う必要があります。

このチュートリアルで使用するコード スニペットは以下のとおりです。

前提条件

ソリューションを作成、構築、展開するには

  1. Visual Studio 2010 で C# クラス ライブラリ プロジェクトを作成して、次にそれに「ContosoCustomer」という名前を付けます。

  2. プロジェクトに以下の参照を追加します。

    • Microsoft.Office.Interop.Outlook

    • Office

    • System.Windows.Forms

  3. Office インストール フォルダーから Microsoft Business Connectivity Services (BCS) に固有の以下のアセンブリを追加します (パスは、通常、C:\Program Files\Microsoft Office\Office14\ ですが、使用中の環境によって異なることがあります)。

    • Microsoft.BusinessData.dll

    • Microsoft.Office.BusinessApplications.Runtime.dll

    • Microsoft.Office.BusinessApplications.RuntimeUi.dll

  4. プロジェクトに新しいクラス ファイルを追加し、それに「CustomCodeAction.cs」と名前を付けます。

  5. CustomCodeAction.cs のコードを、「コード スニペット: ユーザー設定コード アクション」のコードで置換します。

  6. プロジェクトに新しいクラス ファイルを追加し、それに「CustomRibbonManager.cs」と名前を付けます。

  7. CustomRibbonManager.cs のコードを、「コード スニペット: カスタム リボン マネージャー」のコードで置換します。

  8. プロジェクトに新しいユーザー コントロールを追加し、それに「CustomOBPart.cs」と名前を付けます。

  9. CustomOBPart.cs ファイルのコードを表示し、「コード スニペット: カスタム外部データ パーツ」の最初の例のコードでその内容を置換します。

  10. CustomOBPart.Designer.cs のコードを「コード スニペット: カスタム外部データ パーツ」の 2 番目の例のコードで置換します。

  11. ソリューションに署名します。

    プロジェクトのプロパティの [署名] タブで、[アセンブリに署名] を選択して、次にキー ファイルを作成します。任意のキー ファイル名とパスワードを選択することができます。

  12. ソリューションをビルドします。

    これにより、プロジェクト フォルダーの bin\Debug (あるいは bin\Release) フォルダーでアセンブリが生成されます。

  13. アセンブリをソリューション成果物フォルダーにコピーします。アセンブリは、以前の手順でソリューションをビルドしたときに生成されています。

  14. ソリューション成果物フォルダーから OIR.config ファイルを開いて、OutlookContactCustomer の ContextDefinition 終了タグの前に以下のユーザー設定コード アクション XML を追加します。

    ソリューション成果物フォルダーは、「[チュートリアル] 中間宣言型 Outlook ソリューションの作成」の手順ですでに作成しています。

    <Declarative:CodeMethodAction Name ="EditRelatedOrderHeaderAction" 
                                  MethodType ="ShowTaskpaneLayout">
      <Declarative:Parameters>
        <Declarative:ConstantParameter Name="Para1" 
                                       Value="EditRelatedOrderHeader" 
                                       ValueType="System.String"/>
      </Declarative:Parameters>
    </Declarative:CodeMethodAction>
    <Declarative:CodeMethodAction 
      Name ="CreateTaskAction" MethodType ="Custom" 
      MethodName="NewCustomVisitTask" 
      QualifiedTypeName="ContosoCustomer.CustomCodeAction, ContosoCustomer, 
      Version=1.0.0.0, Culture=neutral, PublicKeyToken=e355b6f7ef818b12">
    </Declarative:CodeMethodAction>
    

    ユーザー設定コード アクション XML を編集します。CodeMethodAction 要素で、QualifiedTypeName 属性の値を、以前の手順でソリューションをビルドしたときに生成されたアセンブリの、CustomCodeAction の種類のアセンブリ修飾名で置換します。

  15. ソリューション成果物フォルダーから Ribbon.xml を開いて、tabs 要素内の以下のタブと CreateTaskAction のためのリボン ボタン定義を追加します。

    <tab idMso="TabContact">
      <group id="ContosoCustomerSalesGroupID"
             label="Contoso Customer Sales" getVisible="GetVisible" tag="Context[OutlookContactCustomer.ContosoCustomerSalesGroupID]">
        <button id="NewCustomerVisitTaskButton"
                     size="large"
                     label="New Customer Visit Task"
                     onAction="OnAction"
                     image="TaskItem.bmp"
                     getEnabled ="GetEnabled"
                     tag="Action[OutlookContactCustomer.CreateTaskAction]"
                      />
      </group>
    </tab>
    
  16. Ribbon.xml で、ContosoSalesSolutionTabID タブの ContosoCustomerSalesGroupID グループに EditRelatedOrderHeaderAction のための以下のリボン ボタン定義を追加します。

    <button id="EditRelatedOrderHeaderButton"
            size="large"
            label="Edit Customer Orders"
            onAction="OnAction"
            image="ArrowGreen.jpg"
            getEnabled ="GetEnabled"
            tag="Action[OutlookContactCustomer.EditRelatedOrderHeaderAction]"
    />
    
  17. 以下の XML の例で示すように、OIR.config ファイルで SolutionSettings 要素に CustomRibbonManager 属性を追加します。

    <SolutionSettings 
      SolutionId="ContosoSalesManager"
      SolutionDisplayName="Contoso Sales Manager"
      SolutionVersion="1.0.0.0"
      xsl:type="Declarative:DeclarativeSolutionSettings"
      CustomRibbonManager="ContosoCustomer.CustomRibbonManager, ContosoCustomer, 
      Version=1.0.0.0, Culture=neutral, PublicKeyToken=e355b6f7ef818b12"/>
    
  18. CustomRibbonManager 属性の値を、以前の手順でソリューションをビルドしたときに生成されたアセンブリの、CustomRibbonManager の種類のアセンブリ修飾名で置換します。

  19. ソリューション成果物フォルダーに EditRelatedOrderHeader.xml という名前のファイルを作成し、それに以下のカスタム外部データ パーツ XML の例を追加します。次に、ソリューション成果物フォルダーにそのファイルを保存します。

    <?xml version="1.0" encoding="utf-8" ?>
    <Container ContainerType="Stack"
      xmlns="https://schemas.microsoft.com/office/2009/05/BusinessApplications/Layout"
      xmlns:loc="https://schemas.microsoft.com/office/2009/05/BusinessApplications/Localization">
      <CustomProperties />
      <Children>
        <OBPart DataSourceName="PrimaryEntityNameInContext" PartType="Custom"
                Text="Related Order" FillParent="true"
                QualifiedTypeName="ContosoCustomer.CustomOBPart, ContosoCustomer, 
                Version=1.0.0.0, Culture=neutral, PublicKeyToken=e355b6f7ef818b12">
          <CustomProperties />
        </OBPart>
      </Children>
    </Container>
    
  20. EditRelatedOrderHeader.xml ファイルを編集します。OBPart 要素で、QualifiedTypeName 属性の値を、以前の手順でソリューションをビルドしたときに生成されたアセンブリの、CustomOBPart の種類のアセンブリ修飾名で置換します。

  21. OIR.config ファイルにレイアウトを追加します。OIR.config ファイルで、OutlookContactCustomer の ContextDefinition 終了タグの前の Layouts 要素内に以下を追加します。

    <Declarative:Layout Name="EditRelatedOrderHeader" 
                        LayoutFileName="EditRelatedOrderHeader">
    </Declarative:Layout>
    
  22. ソリューションをパッケージ化して、展開します。

    1. BCS ソリューション パッケージ ツール (英語) を開始します。

    2. ソリューションの名前とバージョンを入力し、ソリューションの種類として [Outlook Intermediate Declarative Solution] を選択します。

    3. [Source Folder Path] として、ソリューション成果物フォルダーを選択します。

    4. ローカル コンピューターでフォルダーを作成し、それを [Output Folder Path] として選択します。

    5. [Package] をクリックして、ソリューションをパッケージ化します。

    6. [Deploy] をクリックして、ソリューションを展開します。

注意

前述の XML の例では、既にそれぞれ CustomCodeAction、CustomRibbonManager、CodeMethodAction のための CustomOBPart クラス、CustomRibbonManager、OBPart XML 値のためのアセンブリ修飾名が含まれます。しかし、このソリューションのアセンブリに署名した後で PublicKeyToken 値が変化するため、アセンブリ修飾名の値を更新する必要があります。また、異なる名前空間名あるいはクラス名を使用した場合は、アセンブリ修飾名も異なるため、更新する必要があります。