ワークフロー変更フォーム (Microsoft SharePoint Server 2010)
最終更新日: 2010年4月7日
適用対象: SharePoint Server 2010
ある時点でアイテムに実行中のワークフローをユーザーに変更させることができます。このためにユーザーに提示されるオプションを変更といいます。この場合、変更のパラメータを指定できる変更フォームを作成することができます。
また、Microsoft InfoPath 2010 ワークフロー変更フォームを作成することもできます。しかし、既定では、このような変更フォームはサーバーサイドのフォームとしてのみ動作します。InfoPath 2010 の対称フォームとして設計されている場合でも、Microsoft Office 2010 クライアント アプリケーションでは表示されません。
ワークフロー変更フォームの概念の詳細については、Windows SharePoint Services 3.0 SDK の「ワークフロー変更フォーム (SharePoint Foundation)」を参照してください。
変更フォームを指定する
ワークフローで使用する各 InfoPath 2010 変更フォームには、独自の GUID が必要です。SharePoint Server 2010 は、この GUID を使用してユーザーによって選択された変更と適切なフォームを一致させます。
変更フォームを指定する場合は、次のデータを設定する必要があります。
EnableWorkflowModification アクティビティで、ModificationId プロパティを、変更用に生成した GUID に設定します。
ワークフロー テンプレートの定義で、Workflow 要素の ModificationURL 属性を次の値に設定します。
ModificationUrl="_layouts/WFMod.aspx"
これは、SharePoint Server 2010 に含まれる .aspx ページです。InfoPath 2010 ワークフロー変更フォームをホストするために、Office InfoPath Forms Services Web パーツが含まれます。
ワークフロー テンプレート定義 XML の Metadata 要素に 2 つの要素を追加します。1 つ目の要素は、Modification_GUID_FormURN 要素 (Workflow) です。この guid は、変更フォーム用に生成した GUID です。この要素を変更フォームの URN に設定します。次に例を示します。
<Modification_GUID_FormURN> urn:schemas-microsoft-com:office:infopath:workflow:ReviewRouting-Modify </Modification_GUID_FormURN>
2 つ目の要素は Modification_Guid_Name です。この guid は変更フォーム用に生成した GUID です。この要素は変更を反映したい名前に設定します。SharePoint Server 2010 では、ワークフロー ステータス ページの変更リンクのリンク テキストとして、この名前が表示されます。次に例を示します。
<Modification_GUID_Name>Add a New Reviewer</Modification_GUID_Name>
ワークフロー定義スキーマの詳細については、Microsoft SharePoint 2010 Software Development Kit (SDK) の「ワークフロー定義」を参照してください。
変更フォームの処理
ユーザーがワークフロー変更リンクをクリックすると、SharePoint Server 2010 は Workflow 要素の ModificationURL 属性を検証して、読み込むフォームを決定します。Office InfoPath 2007 フォームの場合、開発者はこの値を "_layouts/WFMod.aspx" に設定します。SharePoint Server 2010 はこのページを読み込み、ページは SharePoint Server 2010 によって渡された変更 GUID に基づいて、適切な Modification_GUID_FormURN 要素 (Workflow) 要素を検証します。ページは指定された InfoPath ワークフロー変更フォームを読み込みます。また、フォームのプライマリ データ ソースとして、EnableWorkflowModification アクティビティの ContextData プロパティからコンテキスト データをフォームに渡します。
重要 |
---|
EnableWorkflowModification アクティビティの ContextData プロパティは、変更フォーム XML スキーマに準拠した XML を含んでいる必要があります。 これは、フォームにコンテキスト データを渡していない場合でも該当します。このような場合、XML にデータが含まれていなくても、変更フォーム XML スキーマに準拠した XML を指定する必要があります。指定しないと、WFMod.aspx ページが予期した XML 文字列を読み込み中の変更フォームに渡せなくなり、変更フォームの読み込みが失敗します。 |
ユーザーが変更フォームを送信すると、WFMod.aspx ページは ModifyWorkflow メソッドを呼び出し、ワークフロー インスタンス ID と更新されたコンテキスト情報を渡します。
SharePoint Server 2010 は、ModifyWorkflow メソッドが呼び出されると、OnWorkflowModified イベントを起動します。イベントと変更を処理するために、OnWorkflowModified イベント アクティビティをワークフローに追加します。このイベントの ContextData プロパティには、変更フォームによって送信された XML が含まれます。
関連項目
概念
SharePoint Server 2010 でのワークフロー
ワークフローの関連付けと初期化フォーム (Microsoft SharePoint Server 2010)
ワークフロー タスク フォーム (Microsoft SharePoint Server 2010)