Microsoft InfoPath を使用して外部リスト フォームをカスタマイズする
最終更新日: 2010年4月16日
適用対象: SharePoint Server 2010
Microsoft Business Connectivity Services (BCS) は、外部リストから、アイテムを表示、作成、および編集するための既定の SharePoint フォームを自動的に生成します。しかし、これらの基本的な Web パーツフォームでのカスタマイズ オプションは限定されています。複雑なカスタマイズを実行する、あるいはフォームに宣言ルールやビジネス ロジックを追加する場合は、Microsoft InfoPath 2010 フォームを使用して、外部リストの既定の SharePoint Create、View、Update フォームを置換することができます。
InfoPath フォームで既定の SharePoint フォームを置換するには
ブラウザーで、外部リストに移動します。
Server リボンで、[一覧の編集] をクリックします。外部リストが Microsoft SharePoint Designer 2010 で開きます。
リボンで、図 1 に示すように、[InfoPath でフォームをデザイン] ボタンをクリックします。
図 1. InfoPath フォームで既定の SharePoint フォームを置換する
ユーザー設定タイプなどのアイテムで、必要に応じてフォームをデザインします。簡単なフィールドのためのコントロールは自動生成されます。しかし、複合型の場合は、ツールボックスからコントロールを適宜ドラッグして使用する必要があります。
作業を完了したら、[ファイル] メニューから [クイック発行] をクリックして、サーバーにフォームを再発行します。
これで、外部リストに移動して、アイテムを作成あるいは表示することができます。表示されるフォームは、既定の SharePoint フォームではなく、新しい InfoPath フォームです。
フォームの外観のカスタマイズ
InfoPath を使用して、外部リスト フォームの表示と動作をカスタマイズすることができます。「InfoPath 2010 - Customize a SharePoint List Form (英語)」のビデオでは、InfoPath 製品チームのプログラム マネージャーである Daniel Broekman が、InfoPath 2010 を使用してすばやく SharePoint リスト フォームをカスタマイズする方法を説明しています。ビデオと同じ手順に従えば、InfoPath フォームで既定の SharePoint 外部リスト フォームを置換して、表示と動作を変更するためにカスタマイズすることができます。
フォームへの宣言ルールあるいはビジネス ロジックの追加
コードを作成せずに、InfoPath によって、フォームに宣言ルールあるいはビジネス ロジックを追加することができます。たとえば、郵便番号の入力を 5 桁の数字 (12345) に制限したり、あるいはユーザーに特定の形式で電話番号を入力させたりするためにルールを作成することができます。「InfoPath 2010 - Customize a SharePoint List Form」は、フォームに宣言ルールとビジネス ロジックを追加する方法についても説明しています。
複合型のレンダリング
SharePoint フォームを InfoPath 2010 フォームで置換するのにもっとも役立つシナリオは、外部システムで定義される複合型をレンダリングし編集するときです。たとえば、Address が、外部コンテンツ タイプの SpecificFinder によって返されるフィールドであるとします。この Address フィールドは、図 2 で示すように、複数のサブタイプを含む外部システムでの複合型である可能性があります。
図 2. SharePoint Designer 2010 における複合型
SharePoint Designer で表示される警告に注意してください。Microsoft Business Connectivity Services (BCS) が、SpecificFinder の戻り値パラメーターにこの種類の複合型を検出した場合は、通常の SharePoint 外部リスト フォームのこのフィールドを無視します。図 3 は、この Address 複合型を含む外部リストの既定の [アイテムの表示] ページを示します。Address フィールドが無視されて、フォームに表示されていない点に注意してください。また、Address が外部システムでの Create あるいは Update 操作のための必須フィールドの場合、顧客アイテムを作成あるいは編集することはできません。
図 3. 複合型を含む外部リストの既定の [アイテムの表示] ページ
このような場合、フォームを InfoPath に変換することができます。SpecificFinder が、複合型 (この例では Address) を持っているため、Business Connectivity Services は、必須フィールドとコントロールのすべてを持つフォームを作成するわけではありません。その代わりに、図 4 に示すように、フォームにフィールドを追加しない空白の InfoPath フォームを作成します。
図 4. 空白の InfoPath フォーム
この問題を解決するには、作業ウィンドウの [フィールド] セクションから [dataFields] フィールドをドラッグします。しかし、これは、複合型のサブタイプのすべてが InfoPath で使用可能なコントロールを使用して表示できる場合に限り、実行できます。たとえば、Address の例では、そのすべてのサブタイプは [テキスト] フィールド コントロールを使用して表示することができます。
複合型 (あるいはユーザー設定型)、またはそのサブタイプの 1 つが、InfoPath で使用可能なコントロールのどれを使用しても表示できない場合は、そのフィールドを表示するために、カスタム InfoPath コントロールをデザインして、それを使用する必要があります。カスタム InfoPath コントロールを追加した場合は、サーバーにフォームを発行することはできません。
フォームをデザインした後で、フォームを保存して、現在の場所にクイック発行をすることができます。外部リスト フォームが開いて、すべてのフィールドを表示します。図 5 は、InfoPath に変換された後の、外部リスト View Item フォームを示します。ここで必要な操作は、フォームのデザイン領域に [dataFields] コントロールをドラッグするだけです。
図 5. InfoPath に変換された外部リスト View Item フォーム
Address フィールドとそのすべてのサブタイプが表示される点に注意してください。外部コンテンツ タイプが Create と Update 操作を定義している場合は、外部リスト フォームを使用して、顧客アイテムを作成および編集することができます。
外部アイテムピッカー コントロールの埋め込み
顧客のリストから John という顧客を選ぶなど、ユーザーが外部アイテムを選択する必要があるシナリオでは、InfoPath 2010 は、外部アイテム ピッカーのためのピッカーをフォームに埋め込むためのコントロールを提供します。外部アイテム ピッカーは、サーバーとリッチ クライアント Microsoft Office アプリケーションで、外部アイテムのための選択および解決機能を提供します。
外部キーを含む外部コンテンツ タイプのための外部リスト フォームと BDC メタデータ ストアで、外部コンテンツ タイプのための関連付けを設定した場合、Business Connectivity Services はそのフィールドのためのフォームに選択コントロールを自動的に追加します。たとえば、顧客と発注のシナリオを考えてください。外部コンテンツ タイプと関連付けは既に設定済みとします。発注外部リスト フォームを InfoPath にアップサイズした場合、Business Connectivity Services は、既定で発注フォームに CustomerID フィールドのための外部アイテム ピッカー コントロールを配置します。これにより、ユーザーは、発注に関する作業をするときに、必要な顧客を簡単に検索できるようになります。
しかし、SpecificFinder が 1 つあるいは複数の複合型を持っているために、自動生成された InfoPath フォームが空白の場合、リボンから外部アイテム ピッカー コントロールをドラッグして、必要なプロパティを設定する必要があります。詳細については、「[方法] InfoPath フォームに外部アイテム ピッカー コントロールを埋め込む」を参照してください。
フォームのために複数のビューを作成する
外部リスト InfoPath フォームは、複数のビューを持つことができます。これは、外部システムで、作成後のフィールドが更新できないライト ワンスのシナリオで特に役立ちます。このような場合、Create 操作のためのビューと、Update 操作のための読み取り専用ビューの 2 つのビューを作成することができます。フォームの適切なビューを表示するために、Create と Edit のための .aspx ページを更新することができます。
分離コードあるいはルールの追加
最後に、InfoPath フォームに分離コードあるいはルールを追加することができます。InfoPath フォームに分離コードを追加する方法の詳細については、「InfoPath 2010 Developer Reference for Form Templates」を参照してください。InfoPath フォームにルールを追加する方法については、InfoPath 2010 ヘルプを参照してください。データ入力で追加のビジネス ロジックを実行するために分離コードあるいはルールを追加することができます。たとえば、入力された郵便番号がアメリカの有効な郵便番号であることを確認したり、国 / 地域コードが有効であることを確認したりするために、分離コードあるいはルールを追加することができます。外部システムあるいは BDC メタデータ ストアにアクセスするために、コードで Business Connectivity Services オブジェクト モデルを使用することもできます。分離コードを含むフォームは、クライアントでの完全信頼と、管理者権限を必要とします。
重要 |
---|
|