在具有报告要求的应用程序中使用 Windows Workflow Foundation

发布于 2024-08-06 01:37:00 字数 609 浏览 4 评论 0原文

我非常想知道 WF 解决方案在应用程序中的可行性,其中企业所有者希望获得有关应用程序状态和数据的广泛报告功能。

我看到的主要问题是,WF 倾向于隐藏在工作流实例内序列化的数据,例如收件人列表,因此无法以我所知道的方式进行报告。

另一方面,如果将实例数据写出到外部资源(例如 SQL 表),那么您不是就放弃了随意更改工作流程的这一部分的能力(带走了 WF 的一个主要卖点) )?

在 .Net 3.5 的 WF 中,我了解 SqlTrackingService 可以提供有关工作流实例事件、活动事件和用户事件的原始数据。但是,我想知道将活动中的大量实例数据记录到用户事件的可扩展性。另外,我看到 SqlTrackingService 使用的架构看起来很难维护报告解决方案,尤其是在工作流程随着时间的推移而更新的情况下。我这里错了吗?

那么,当报告成为主要问题时,有人成功使用 WF 吗?如果是这样,我想听听它是如何完成的,WF是否仅隔离到应用程序的某些部分(具有不适用于报告的数据)等等......

也许,这只是一个关于报告的问题一般来说,在 BPM 解决方案中也是如此......

编辑:

我已经接受了 Maurice 的回答,因为他花时间回答了这个问题,但我仍然对对此的任何其他意见感兴趣!

I am wondering, very generally, about the feasibility of a WF solution in an application, where the business owners want extensive reporting capabilities on application state and data.

The main issue that I see is that WF tends to hide data, such as a recipient list, that is serialized inside the workflow instances, so it can't be reported on, in a way I'm aware of.

On the other hand, if the instance data is written out to an external resource such as a sql table, then haven't you just given up your ability to change that part of the workflow at will (taking away a major selling point for WF)?

In WF for .Net 3.5, I understand the SqlTrackingService can provide raw data about Workflow instance events, Activity events, and User events. But, I wonder about the scalability of logging a lot of instance data, in the activities, to User events. Also the schema I see that the SqlTrackingService uses looks like it would be hard to maintain a reporting solution on, especially if there are updates to the workflow over time. Am I wrong here?

So, has anyone out there successfully used WF when reporting was a major concern? If so, I'd like to hear about how it was done, if WF was isolated to only certain parts of the app (having data not applicable for reporting), and so on...

Perhaps, this is just a question about reporting in a BPM solution in general, as well...

EDIT:

I've accepted Maurice's answer because he took the time to answer it, but I'm still interested in any other opinions on this!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

花开浅夏 2024-08-13 01:37:00

将 SqlTrackingService 与跟踪配置文件结合使用的性能非常好,特别是当您启用事务日志记录时。基本上,您希望使用跟踪配置文件仅跟踪您真正感兴趣的事件。您还可以告诉它提取并记录特定的用户数据。

检索数据的主要方法不是通过 SQL,尽管这是可能的,并且对于某些查询(例如让所有工作流执行特定活动),而是通过 SqlTrackingQuery 类。这还将反序列化附加的用户数据。

Using the SqlTrackingService in combination with tracking profiles is quite performant, specially when you enable transactional logging. Basically you want to use the tracking profile to only track events you are really interested in. You can also tell it to extract and log specific pieces of user data.

The main way to retrieve the data is not through SQL, although that is possible and for some queries like give all workflows executing a specific activity, but the SqlTrackingQuery class. This will also deserialize the additional user data.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文