Есть ли у WF4 возможность поиска экземпляров?
У меня есть служба рабочего процесса WF4, развернутая в AppFabric. Есть ли какой-либо встроенный способ сделать общий поиск по всем в настоящее время активным экземплярам рабочего процесса?
Например, "получить мне список всех активных экземпляров, которые имеют переменную x = 5"?
Если бы кто-то мог указать мне правильное направление, это было бы очень ценно.
1 ответ
Вы можете сделать это, используя созданную базу данных WorklfowInstanceStore. Это будет иметь запись для каждого рабочего процесса, который выполняется. Далее вы можете настроить продвижение свойств, чтобы извлекать значения из рабочего процесса и сохранять их в базе данных. Представление System.Activities.DurableInstancing.InstancePromotedProperties позволит вам запрашивать значения и предоставлять InstanceId рабочего процесса.
Смотрите здесь пример того, как начать. Хороший способ извлечения значений без использования настраиваемого действия - использование участника отслеживания рабочего процесса.