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

最終更新日: 2008年5月30日

適用対象: SharePoint Server 2010

3 つの基本的な手順で、ワークフロー フォーム上で使用する Contact Selector コントロールを構成できます。

  1. フォームにコントロールを挿入し、必要に応じてコントロールの外観を設計します。

  2. コントロールのスキーマを構成します。コントロールをデータバインドするには、選択した連絡先を格納するためのデータ構造を作成する必要があります。

  3. ワークフロー コンテキスト データをセカンダリ データ ソースとして追加します。フォームは、指定されたユーザーの検証先となる SharePoint サイトを認識するために、このワークフロー コンテキストを必要とします。ワークフロー コンテキストには、ワークフローでのフォームの使用方法を基にした、フォーム ルールで使用できる情報も含まれています。

InfoPath 2007 フォームに Contact Selector コントロールを追加するには

  1. Microsoft Office InfoPath 2007 で、[コントロール] ウィンドウからフォームに [Contact Selector] コントロールをドラッグします。

    注意

    [Contact Selector] コントロールは、Microsoft Office SharePoint Server 2007 に含まれているカスタム ActiveX コントロールです。ワークフロー フォームで使用できるようにするには、[コントロール] ウィンドウに追加する必要があります。詳細については、「[方法] InfoPath に [Contact Selector] を追加する」を参照してください。

  2. コントロールをダブルクリックします。[Contact Selectorのプロパティ] ダイアログ ボックスの [データ] タブで、[フィールドまたはグループの名前] に、コントロールの名前を入力します。[OK] をクリックします。

  3. 必要に応じてコントロールの外観を設計します。

    Office InfoPath 2007 のコントロールの外観の設計の詳細については、Office InfoPath 2007 開発者向けドキュメントを参照してください。

[Contract Selector] コントロール スキーマを構成する

Contract Selector コントロールをデータバインドするには、各連絡先を表すコントロール内にデータ スキーマを作成する必要があります。各連絡先のスキーマは以下の形式で作成します。

<person>
  <DisplayName>user display name</DisplayName>
  <AccountId>DOMAIN/user account</AccountId>
  <AccountType>user or group type</AccountType>
</person>

次に例を示します。

<person>
  <DisplayName>Jane Doe</DisplayName>
  <AccountId>REDMOND/janed</AccountId>
  <AccountType>SPUser</AccountType>
</person>

以下はスキーマの要素です。

  • person   1 つの連絡先を表すスキーマのルート要素。

  • DisplayName   Windows SharePoint Services または Active Directory ディレクトリ サービス内の連絡先の表示名。

  • AccountId   この連絡先のドメインおよびユーザー アカウント識別子。

  • **AccountType **  この連絡先が表すアカウントの種類。

コントロールにこのデータ スキーマを作成するには、以下の手順に示すように、3 つのフィールドを含む person というグループを追加して構成する必要があります。

[Contract Selector] コントロールのスキーマを構成するには

  1. Office InfoPath 2007 で、前に説明したように、フォームに [Contact Selector] コントロールを挿入します。

  2. [Contact Selector] コントロールを選択し、[デザイン タスク] ウィンドウで [データ ソース] をクリックします。

  3. [Contact Selector] 名の隣の矢印をクリックし、ドロップダウン メニューで [追加] をクリックします。

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

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

    2. [種類] で、[グループ] を選択します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ワークフロー コンテキスト データのセカンダリ データ ソースとしての追加

指定された連絡先の検証先となる SharePoint サイトをフォームが認識するためには、ワークフロー コンテキスト スキーマをセカンダリ データ ソースとしてフォームに追加する必要があります。このコンテキスト スキーマには、指定された SharePoint サイトの URL が含まれます。また、スキーマには、フォームでルールおよびロジックをプログラミングする際に使用できるコンテキスト情報も含まれています。たとえば、コンテキスト情報には、ワークフロー内でフォームが使用される場所、またはフォームがサーバーで開かれるかクライアント コンピュータで開かれるかに基づいてフォーム ビューを切り替える場合に使用できるデータが含まれます。

Windows SharePoint Services がワークフローの一部としてフォームを読み込むときに、フォームのワークフロー コンテキスト スキーマにデータが設定されます。

スキーマは次のとおりです。

<Context 
isStartWorkflow="true"
isRunAtServer="false"
provideAllFields="true"
siteUrl=""
/>

以下はスキーマの要素です。

  • Context   フォームに渡されるワークフロー コンテキスト情報を表すルート要素。Context 要素には以下の属性があります。

  • isStartWorkflow   ブール値。フォームがワークフロー開始フォームとして使用されている場合は true。指定されたフォームを、ワークフロー関連付けフォームとワークフロー開始フォームの両方として使用できます。フォームは各ステージで異なるビューを表示できます。

  • isRunAtServer    ブール値。フォームがサーバーで開かれている場合は true。

  • provideAllFields    ブール値。ワークフローが開始する前にフォームがユーザーの操作の最終点として使用されている場合は true。つまり、フォームは、ワークフロー開始フォーム、または自動的に開始するように指定したワークフローのワークフロー関連付けフォームとして使用されています。

  • **siteUrl   **String。フォームを開いている SharePoint サイトの URL。

フォームにワークフロー コンテキスト データを追加するには、最初にコンテキスト スキーマを表す XML ファイルを作成してから、そのファイルをセカンダリ データ ソースとしてフォームにインポートする必要があります。

ワークフロー コンテキスト データをセカンダリ データ ソースとしてフォームに追加するには

  1. 任意の XML エディタで、Context.xml という名前の XML ファイルを作成します。このファイルは、ワークフロー コンテキスト スキーマを表します。以下の属性を持つ Context というノードが 1 つ含まれます。

    <Context 
    isStartWorkflow="true"
    isRunAtServer="false"
    provideAllFields="true"
    siteUrl=""
    />
    

    注意

    フォームは、最初の 3 つの属性に指定される実際の値を使用しません。これらの値は、属性がブール値データ型として定義されていることを示すためにのみ含まれています。

  2. ファイルをコンピュータに保存します。

  3. ワークフロー コンテキスト スキーマをセカンダリ データ ソースとしてフォームに追加します。

    1. Office InfoPath 2007 の [デザイン タスク] ウィンドウで、[データ ソース] を選択し、[データ接続の管理] をクリックします。

    2. [データ接続] ダイアログ ボックスで、[追加] をクリックします。

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

    4. [XML ドキュメント] を選択し、[次へ] をクリックします。

    5. Context.xml ファイルを保存した場所を選択して参照し、[開く] をクリックし、[次へ] をクリックします。

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

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

      Context.xml ファイルをフォーム テンプレートにリソース ファイルとして含めたら、このファイルは必要なくなります。このファイルをワークフロー ソリューションに含める必要はありません。

      注意

      Context.xml は、ワークフロー フォームのセカンダリ データ ソースとして必要です。提供されるデータがないと、[Contact Selector] コントロールは、入力された連絡先の検証先となる SharePoint サイトを判断できません。Context.xml をセカンダリ データ ソースとして追加しない場合は、フォームを開いたときにエラーが生成されます。

関連項目

タスク

[方法] InfoPath ワークフロー フォームをデザインする

[方法] InfoPath に [Contact Selector] を追加する

[方法] ワークフローの開始フォームおよび変更フォームで連絡先データにアクセスする

[方法] ワークフロー内の関連付けと開始のフォーム データにアクセスする

概念

ワークフローの InfoPath フォーム

InfoPath ワークフロー フォームで [Contact Selector] コントロールを使用する

その他の技術情報

How to: Access Contact Data in Workflow Edit Task Forms