次の方法で共有


ワークフロー タスク フォーム (Windows SharePoint Services)

ワークフローのタスク用のユーザー設定フォームを指定できます。ただし、タスクはコンテンツ タイプが割り当てられる SharePoint アイテムなので、コンテンツ タイプによって、タスクの種類で使用できるユーザー設定フォームが決まります。

ワークフロー タスクのコンテンツ タイプ

既定では、すべての SharePoint タスクの種類にコンテンツ タイプが割り当てられます。具体的にタスクの種類にコンテンツ タイプを割り当てなかった場合は、そのタスクの種類にはタスクの基本コンテンツ タイプが割り当てられます。すべてのタスクの種類のコンテンツ タイプは、WorkflowTask 基本コンテンツ タイプに基づいている必要があります。

基本コンテンツ タイプの詳細については、「コンテンツ タイプの基本的な階層」を参照してください。

コンテンツ タイプ用のカスタム新規作成、編集、および表示フォームを指定できます。Windows SharePoint Services は、ワークフロー タスクを表示するときに、適切なタスクのコンテンツ タイプについて指定されたユーザー設定フォームを使用します。

注意

プログラミングを容易にするために、開発者はタスクの種類のコンテンツ タイプを作成し、各タスクのコンテンツ タイプのスキーマを、指定されたタスク編集フォームのスキーマに正確に一致させるようにすることをお勧めします。このアプローチによって、プロパティの 1 対 1 のマッピングが実現され、追加の値を抽出するために拡張されたプロパティ フィールドを解析する必要がなくなります。

ワークフロー タスクのコンテンツ タイプを指定する

ワークフロー タスクのコンテンツ タイプを指定するには、2 つの方法があります。

すべてのワークフロー タスクの種類で単一のコンテンツ タイプを使用するには

  1. タスクのコンテンツ タイプのコンテンツ タイプ定義で、必要に応じて、カスタム編集フォームやカスタム表示フォームを指定する XMLDocument 要素を追加します。この XMLDocument 要素は、FormTemplates スキーマに従っている必要があります。編集フォームや表示フォームを次の値に設定します。

    <Edit>WkTaskIP.aspx</Edit>
    <Display>WkTaskIP.aspx</Display>
    

    コンテンツ タイプのユーザー設定フォームの指定の詳細については、「FormUrls スキーマの概要」を参照してください。

  2. ワークフロー テンプレート定義で、Workflow 要素の TaskListContentTypeId を、すべてのワークフロー タスクの種類に割り当てるコンテンツ タイプの ID を設定します。以下に例を示します。

    TaskListContentTypeId="0x01080100C9C9515DE4E24001905074F980F93160"  
    

ワークフロー タスクの種類ごとに異なるコンテンツ タイプを使用するには

  1. タスクのコンテンツ タイプのコンテンツ タイプ定義で、必要に応じて、カスタム編集フォームやカスタム表示フォームを指定する XMLDocument 要素を追加します。この XMLDocument 要素は、FormTemplates スキーマに従っている必要があります。編集フォームや表示フォームを次の値に設定します。

    <Edit>WkTaskIP.aspx</Edit>
    <Display>WkTaskIP.aspx</Display>
    

    コンテンツ タイプのユーザー設定フォームの指定の詳細については、「FormUrls スキーマの概要」を参照してください。

  2. CreateTaskWithContentType ワークフロー アクティビティを使用して、ワークフローにタスクを作成します。TaskId プロパティを使用してタスク ID を設定し、ContentTypeId プロパティを使用してタスクのコンテンツ タイプを指定します。

ワークフロー タスクの種類

ワークフローで作成されるタスクの種類を区別するには、ワークフロー内で各タスクの種類に整数の識別子を割り当てます。最初のタスクの種類は 0、2 番目のタスクの種類は 1 などです。これによって、各タスクの種類に、異なるコンテンツ タイプおよび異なるフォームを割り当てることができます。このタスクの種類の識別子は、特定のワークフロー内でのみ一意である必要があります。たとえば、タスクを作成するすべてのワークフローで識別子が 0 のタスクの種類を設定できますが、タスクの種類はすべてのワークフローで同じであるとは限りません。

ユーザーがタスクを編集するためのリンクをクリックすると、Windows SharePoint Services はワークフロー テンプレート定義を調べて、タスクのコンテンツ タイプを特定します。次に、コンテンツ タイプ定義を調べて、このコンテンツ タイプ用にカスタム編集フォームが指定されているかどうかを特定します。指定されている場合は、Windows SharePoint Services は指定されたフォームを表示します。カスタム編集フォームが指定されていない場合は、Windows SharePoint Services は既定の編集フォームのレンダリングを表示します。

コンテンツ タイプ定義の詳細については、「コンテンツ タイプ定義スキーマ」を参照してください。

カスタム コンテンツ タイプ フォームの種類

コンテンツ タイプ用の 2 種類のユーザー設定フォームを指定できます。

  • フォーム テンプレートは、SharePoint Web ページの 中心的な部分、つまりページの SharePoint フレーム要素 (通常、"枠" と呼ばれる) を除くすべてをレンダリングする .asmx コントロールです。ページの枠は、Windows SharePoint Services がレンダリングします。

    詳細については、「FormTemplates スキーマの概要」を参照してください。

  • フォーム ページは、SharePoint フレーム要素 (SharePoint の "枠") を含む、既定の SharePoint ページ全体を置き換える .aspx ページです。フォーム ページの場合、通常、SharePoint の枠に表示されるすべてのナビゲーション リンクやその他の要素を提供する必要があります。

    詳細については、「FormUrls スキーマの概要」を参照してください。

ワークフロー タスク フォームの処理

ユーザーがタスクを編集するためのリンクをクリックした場合、Windows SharePoint Services はタスクの種類のコンテンツ タイプを特定する必要があります。タスクが CreateTaskWithContentType ワークフロー アクティビティを使用して生成された場合、コンテンツ タイプはそのアクティビティによって指定されます。指定されていない場合、Windows SharePoint Services はワークフロー テンプレート定義を調べて、タスクのコンテンツ タイプを特定します。

次に、Windows SharePoint Services はコンテンツ タイプ定義を調べて、このコンテンツ タイプ用にカスタム編集フォームが指定されているかどうかを特定します。指定されている場合は、Windows SharePoint Services は指定されたフォームを表示します。

ワークフロー開発者は、タスク フォームに渡されるデータと、ユーザーがフォームを送信したときに発生するアクションについて責任を持つ必要があります。たとえば、開発者は、タスクを表す SPListItemXml プロパティを取得するようにフォームをプログラムし、その情報をデータ ソースとして使用できます。Windows SharePoint Services はタスクの XML をセカンダリ データ ソースとして常にフォームに渡します。

同様に、フォームが送信されたときに、フォームが AlterTask メソッドを呼び出して、SPListItem オブジェクトと更新されたデータをパラメータとして渡すようにすることをお勧めします。Windows SharePoint Services は、このメソッドが呼び出されると、OnTaskChanged イベントを発生させます。このイベントを処理するために、OnTaskChanged イベント アクティビティをワークフローに追加します。

See Also

概念

ワークフロー フォームの概要

ワークフローの関連付けおよび開始フォーム (Windows SharePoint Services)

ワークフロー変更フォーム (Windows SharePoint Services)