Использование Windows Workflow Foundation в приложениях с требованиями к отчетности - PullRequest
1 голос
/ 03 октября 2009

Мне очень интересно узнать о возможности WF-решения в приложении, где владельцы бизнеса хотят иметь широкие возможности для отчетов о состоянии приложения и данных.

Основная проблема, которую я вижу, заключается в том, что WF имеет тенденцию скрывать данные, такие как список получателей, которые сериализуются внутри экземпляров рабочего процесса, поэтому о них нельзя сообщать, как мне известно.

С другой стороны, если данные экземпляра записываются во внешний ресурс, такой как таблица sql, то неужели вы просто не отказались от своей возможности изменить эту часть рабочего процесса по своему усмотрению (лишив крупных продаж балл за WF)?

В WF для .Net 3.5 я понимаю, что SqlTrackingService может предоставлять необработанные данные о событиях экземпляра Workflow, событиях Activity и пользовательских событиях. Но меня интересует масштабируемость записи большого количества данных экземпляров в действиях в пользовательские события. Кроме того, схема, которую я вижу, которую использует SqlTrackingService, похоже, будет трудно поддерживать решение для создания отчетов, особенно если со временем будут обновляться рабочие процессы. Я здесь не прав?

Итак, кто-нибудь успешно использовал WF, когда отчетность была серьезной проблемой? Если это так, я хотел бы услышать о том, как это было сделано, если WF был изолирован только для определенных частей приложения (с данными, неприменимыми для отчетности), и так далее ...

Возможно, это всего лишь вопрос об отчетности в решении BPM в целом ...

EDIT:

Я принял ответ Мориса, потому что он нашел время, чтобы ответить на него, но меня все еще интересуют любые другие мнения по этому поводу!

1 Ответ

0 голосов
/ 03 октября 2009

Использование SqlTrackingService в сочетании с профилями отслеживания весьма эффективно, особенно если вы включаете ведение журнала транзакций. По сути, вы хотите использовать профиль отслеживания только для отслеживания событий, которые вам действительно интересны. Вы также можете указать, чтобы он извлекал и регистрировал определенные фрагменты пользовательских данных.

Основной способ извлечения данных не через SQL, хотя это возможно и для некоторых запросов, например, для всех рабочих процессов, выполняющих определенное действие, но для класса SqlTrackingQuery. Это также десериализует дополнительные пользовательские данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...