ワークフローを作成し、WorkflowInstance.Run() を介して実行しています。このワークフローには多数のブックマークがあり、現在のアイドル状態の原因となっているブックマークを照会できるようにしたいと考えています。
どうすればこれを行うことができますか?
ありがとう
ワークフローを作成し、WorkflowInstance.Run() を介して実行しています。このワークフローには多数のブックマークがあり、現在のアイドル状態の原因となっているブックマークを照会できるようにしたいと考えています。
どうすればこれを行うことができますか?
ありがとう
ワークフロー 4.0 の場合
WorkflowInstance からブックマークを取得できます
IEnumerable<BookmarkInfo> bookMarks = workflowInstance.GetAllBookmarks();
アクティブなブックマーク、つまり実際に何かを待っているブックマークのみがリストされます。待機中のアクティビティを通知する並行アクティビティのない順次ワークフロー。しかし、多くの場合、入力待ちのブックマークが複数存在します。どちらがアイドル状態を引き起こしたのかはわかりません。
WorkflowInstance.OnIdle イベントに何かを接続すると、より多くの情報を取得できる場合があります。これは真の .NET イベントではありませんが、同じことを達成します。アイドル状態になった理由を正確に説明することはできませんが、タイミングを知ることで詳細がわかることを願っています.
ワークフロー 3.0 用
これが役立つかどうかはわかりませんが、WorkflowInstance があるので、GetWorkflowQueueData() を呼び出して WorkflowQueueInfo オブジェクトのコレクションを要求できます。WorkflowQueueInfo クラスは、どのアクティビティがキューにサブスクライブされているか、およびキューにアイテムが含まれているかどうかを示します。アクティビティがサブスクライブされた空のキューは、必要なものを示すことができます。それらの活動は何かを待っていますが、何もすることがありません。それが探しているブックマークです。