宣言型ソリューションの 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 ソリューションの作成」の手順に従う必要があります。
このチュートリアルで使用するコード スニペットは以下のとおりです。
前提条件
Microsoft Office 2010 と Microsoft Visual Studio 2010 が同じコンピューターにインストールされている
ソリューションを作成、構築、展開するには
Visual Studio 2010 で C# クラス ライブラリ プロジェクトを作成して、次にそれに「ContosoCustomer」という名前を付けます。
プロジェクトに以下の参照を追加します。
Microsoft.Office.Interop.Outlook
Office
System.Windows.Forms
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
プロジェクトに新しいクラス ファイルを追加し、それに「CustomCodeAction.cs」と名前を付けます。
CustomCodeAction.cs のコードを、「コード スニペット: ユーザー設定コード アクション」のコードで置換します。
プロジェクトに新しいクラス ファイルを追加し、それに「CustomRibbonManager.cs」と名前を付けます。
CustomRibbonManager.cs のコードを、「コード スニペット: カスタム リボン マネージャー」のコードで置換します。
プロジェクトに新しいユーザー コントロールを追加し、それに「CustomOBPart.cs」と名前を付けます。
CustomOBPart.cs ファイルのコードを表示し、「コード スニペット: カスタム外部データ パーツ」の最初の例のコードでその内容を置換します。
CustomOBPart.Designer.cs のコードを「コード スニペット: カスタム外部データ パーツ」の 2 番目の例のコードで置換します。
ソリューションに署名します。
プロジェクトのプロパティの [署名] タブで、[アセンブリに署名] を選択して、次にキー ファイルを作成します。任意のキー ファイル名とパスワードを選択することができます。
ソリューションをビルドします。
これにより、プロジェクト フォルダーの bin\Debug (あるいは bin\Release) フォルダーでアセンブリが生成されます。
アセンブリをソリューション成果物フォルダーにコピーします。アセンブリは、以前の手順でソリューションをビルドしたときに生成されています。
ソリューション成果物フォルダーから 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 の種類のアセンブリ修飾名で置換します。
ソリューション成果物フォルダーから 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>
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]" />
以下の 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"/>
CustomRibbonManager 属性の値を、以前の手順でソリューションをビルドしたときに生成されたアセンブリの、CustomRibbonManager の種類のアセンブリ修飾名で置換します。
ソリューション成果物フォルダーに 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>
EditRelatedOrderHeader.xml ファイルを編集します。OBPart 要素で、QualifiedTypeName 属性の値を、以前の手順でソリューションをビルドしたときに生成されたアセンブリの、CustomOBPart の種類のアセンブリ修飾名で置換します。
OIR.config ファイルにレイアウトを追加します。OIR.config ファイルで、OutlookContactCustomer の ContextDefinition 終了タグの前の Layouts 要素内に以下を追加します。
<Declarative:Layout Name="EditRelatedOrderHeader" LayoutFileName="EditRelatedOrderHeader"> </Declarative:Layout>
ソリューションをパッケージ化して、展開します。
BCS ソリューション パッケージ ツール (英語) を開始します。
ソリューションの名前とバージョンを入力し、ソリューションの種類として [Outlook Intermediate Declarative Solution] を選択します。
[Source Folder Path] として、ソリューション成果物フォルダーを選択します。
ローカル コンピューターでフォルダーを作成し、それを [Output Folder Path] として選択します。
[Package] をクリックして、ソリューションをパッケージ化します。
[Deploy] をクリックして、ソリューションを展開します。
注意
前述の XML の例では、既にそれぞれ CustomCodeAction、CustomRibbonManager、CodeMethodAction のための CustomOBPart クラス、CustomRibbonManager、OBPart XML 値のためのアセンブリ修飾名が含まれます。しかし、このソリューションのアセンブリに署名した後で PublicKeyToken 値が変化するため、アセンブリ修飾名の値を更新する必要があります。また、異なる名前空間名あるいはクラス名を使用した場合は、アセンブリ修飾名も異なるため、更新する必要があります。