承認に 1 つのワークフローを使用し、フィールドを更新するために別のワークフローを使用する場合、「現在のアイテムのフィールド変更を待機する」を使用して、承認が行われたときにフィールドを更新できます (承認済みコード 16、拒否済みコード 17、進行中コード 2 のいずれか)。以下に例を示します。
MomoApproval が 16 になるのを待ってから、Notification を Final に設定します。
SharePoint はワークフローに関連するフィールドを変更するため、承認が行われたときにこのコードは実行されません。このフィールドはリストのスキーマに属していません。したがって、ワークフロー ステータスの変更は、アイテム変更イベントをトリガーしません。アイテム変更イベントがないと、2 番目のワークフローはアイドル状態のままになり、「現在のアイテムのフィールド変更を待機する」アクションは役に立たないように見えます。SharePoint 2010 承認ワークフローのこの動作をバイパスするには、次の手順を実行します。
- SharePoint デザイナー 2010 を開く
- 作業しているサイトに移動します
- ワークフローをクリックします
- 承認ワークフローを右クリック
- [コピーして変更] をクリックします。
- 関連リストへ
- [既存のワークフローを関連付ける] をクリックします
- このワークフロー内で、[ワークフローの編集] をクリックし、[承認ワークフロー タスク] をクリックします。
- 単一のタスクの動作を変更をクリックします
- 完全なセクションに移動し、このアクション「タイトルを現在のアイテムに設定: タイトル」を追加します。
これにより、アイテム変更イベントをトリガーするリストのスキーマ内のタイトル フィールドが変更されますが、タイトルの値は同じままです。このアクションは、リストのデータ コンテンツには影響しません。これは、アクティビティの作成、ループ、ワークフローの一時停止と再起動などの他のソリューションと比較して、問題なく機能し、コストがかからない単純な回避策です。
ワークフローを作成したら、Visual Studio 2010 にインポートしてソリューションの一部にすることができます。次のリンクを参照してください: http://msdn.microsoft.com/en-us/library/ee231580.aspx
ワークフローの更新をお楽しみください
注:フィールドを更新しているワークフローは、リスト内で項目が変更されたときに開始するようにバインドする必要があります。
モハメド・ハケム