2009-10-02 6 views
1

Мне интересно, в общем, о возможности решения WF в приложении, где владельцы бизнеса хотят иметь широкие возможности отчетности по состоянию и данным приложения.Использование Windows Workflow Foundation в приложениях с требованиями к отчетности

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

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

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

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

Возможно, это просто вопрос о сообщении в решении BPM в целом, а также ...

EDIT:

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

ответ

0

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

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

Смежные вопросы