レプリケーター アクティビティを使用して SharePoint ワークフローを開発し、承認者ごとにカスタム アクティビティをレプリケートします。カスタム アクティビティは、特定のユーザーの承認ブランチを実装します。これには、CreateTask、While、OnTaskChanged、および CompleteTask アクティビティを含む従来の形式があります。
1 人の承認者が承認を拒否することを選択し、ワークフローが終了した後に実行をキャンセルするように、レプリケーターで UntilCondition をセットアップします。この問題は、現在の状態で「ハング」する他の未完了のタスクで発生します。タスクを開いたときに、この状態は表示されません。
タスクのステータスを Cancelled に設定するために、Replacator の後に UpdateAllTasks を配置しました。ただし、CompleteTask (却下されたタスクの場合) と UpdateAllTasks の間にイベント アクティビティがないため、UpdateAllTask アクティビティは却下されたタスクに対しても Canceled を設定します。
質問、UpdateAllTasks の前に CompleteTask によって行われた保留中の変更をフラッシュするにはどうすればよいですか?
あるいは、そのようなワークフローを実装する別の方法があるかもしれません。UpdateTask でカスタム アクティビティの Cancel ハンドラを実装する方法を考えていました。しかし、それを実装する方法がわからず、拒否の場合に実行するキャンセルハンドラーに伝えます。