InfoPath における [連絡先の選択] コントロール(Contact Selector) の利用

今回は、VSTO からは外れてしまう内容です。

この「[連絡先の選択] コントロール」は知られているはずなのですが、以外と情報が流通していないようなので、このブログで取り上げたいと思います。

InfoPath では SharePoint Server との連携で ActiveDirectory のユーザーやグループ情報を検索、表示してくれるコントロールを利用することが可能です。

このコントロールを利用することで、ワークフローに関連する承認者などの選択をユーザーにおこなわせることが可能です。

image

左はじの「アドレス帳からユーザーを追加」ボタンで以下のダイアログが表示され、ユーザーやグループを検索可能です。(図1)

右はじの「名前の確認」ボタンはログオン名からユーザー情報を検索し表示させることが可能です。(図2)

上記により、ユーザー情報を別なコントロールに渡すなどの処理が可能です。(図3)

図1

image

図2

 image

詳細と手順は以下のページに記載しているのですが、正直、分かりづらいので、図にまとめておきたいと思います。

[連絡先の選択] コントロール 

https://msdn.microsoft.com/ja-jp/library/ms496491.aspx

図3

image

手順:

1. InfoPath のコントロールタスクウィンドウの下部から [カスタム コントロールの追加と削除] をクリックする。

image

2. 以下のダイアログボックスから、[追加] をクリックする。

image

3. [カスタム コントロールの追加ウィザード] で [Active X コントロール] を選択し [次へ] をクリックする。

image

4.[Active X コントロールの選択] で "Contact Selector" を選択し [次へ] をクリックする。

image 

5. [インストール オプションの設定] で "cab ファイルを含めない" を選択し [次へ] をクリックする。

image

6. [バインドするプロパティの設定]で "Value" を選択し [次へ] をクリックする。

image

7. [データ型オプションの設定] で "フィールドまたはグループ(すべてのデータ型)"を選択し [完了] をクリックする。

image

8.最後の画面を閉じて、[カスタム コントロールの追加ウィザード] で "Contact Selector" が選択することを確認してダイアログを閉じます。

9.コントロールタスクウィンドウの下部から、"Contact Selector" を選択し、InfoPath フォームにドラッグアンドドロップします。

image 

image

10. [フィールドまたはグループの追加] ダイアログ ボックスで、以下のプロパティを持つグループを作成します。

  1. [名前] に「Person」と入力します。
  2. [種類] で、[グループ] を選択します。
  3. [繰り返し] を選択します。
  4. [OK] をクリックします。

image

11.[Person] グループをクリックし、ドロップダウン メニューで [追加] をクリックします。

以下のプロパティを持つフィールドを追加します。

  1. [名前] に「DisplayName」と入力します。

  2. [種類] で、[フィールド (要素) ] を選択します。

  3. [データ型] で、[テキスト (string) ] を選択します。

  4. [繰り返し] を選択します。

  5. [OK] をクリックします。

image

12. [Person] グループをクリックし、前の手順の説明に従い、フィールドをもう 2 つ追加します。

  1. [名前] では、最初のフィールドに「AccountId」、2 番目のフィールドに「AccountType」と入力します。

  2. [種類] では、各フィールドに対して [フィールド (要素) ] を選択します。

  3. [データ型] では、各フィールドに対して [テキスト (string) ] を選択します。

  4. 各フィールドに対して [繰り返し] を選択します。

image

image

13. データソースが以下のように構成されたことを確認します。

image

14. 以下のデータを Context.xml ファイルとして保存します。

siteUrl = "" には任意の SharePoint サイトの URL を記述します。(例 https://test)

<Context
isStartWorkflow="true"
isRunAtServer="false"
provideAllFields="true"
siteUrl=""
/>
15.データソースタスクウィンドウの下部から、[データ接続の管理] をクリックします。

image

16.[データ接続]ダイアログから、[追加]ボタンをクリックします。

image

17.[データ接続ウィザード]の[新しいデータ接続先]で"データの受信" を選択し [次へ] をクリックします

image

18. [データソース] で "XML ドキュメント" を選択します。

image

19. "XML データ ファイルの詳細" で先ほど作成した Context.xml を参照し、[次へ] をクリックします。

image

20. [フォーム テンプレートのリソース ファイルとしてデータを含める] を選択し、[次へ] をクリックします。

image

21.データ接続名として「Context」と入力し、[フォームを開くとき自動的にデータを取得する] が選択されていることを確認します。[完了] をクリックし、[閉じる] をクリックします。

image

22. [プレビュー] を実行し、[連絡先の選択] コントロールが正常に動作するかを確認します。

というわけで、[連絡先の選択] コントロールをご紹介させていただきました。

技術情報の確認などをおこないたい場合は上記から辿ることも可能ですが、以下の項目で詳細を確認可能です。

[方法] InfoPath 2007 に [連絡先の選択] を追加する

[方法] InfoPath ワークフロー フォーム上の [連絡先の選択] コントロールを構成する