1

[我很欣赏这有点主观 - 但必须有人知道编写系统的知识来处理这种类型的要求。注意:我们使用 C#、.Net4 并且有 SP2010]

我一直在为自定义业务应用程序评估 SharePoint2010 和 WF4,这些应用程序涉及工作流,也需要后端系统交互。

(也可以选择既不是 SP2010 也不是 WF4,只需将状态更改写入 DB 并编写直接 Windows 服务来执行任何自动化阶段。)

对于大多数要求,SP2010 证明了非常陡峭的学习曲线和受限的功能......但是,对于工作流部分,尤其是它擅长的“列表和任务”,并且易于实施具有随附安全性的新列表是一个奖励.

那么,有没有办法在 WF4 中模拟其中的一些功能?

主意

MVC3 应用程序,用户的 AD 组决定了他们可以执行哪些“队列”和功能。
用户可以看到他们自己的请求和他们的状态等。

用于托管工作流的 WF4 服务,其中一些步骤是自动的。

示例 1

用户 NormalPerson (NP) 打开站点,点击“创建新请求”

表单允许他们从后端系统中查找数据(数千行,SP2010 在这方面遇到了严重的困难,特别是因为它需要多次搜索和过滤器/排序 - 然而,jQuery+DataTables+Ajax 使这变得简单)

NP 保存请求

WF4“获取”请求,设置为“需要批准”,将电子邮件发送到 BackOffice (BO) 组并持续到 DB(通过 BLL 交互)

BO 用户可以打开站点并查看“新请求”列表,打开一个并批准它。

WF4“获取”字段中的更改,将电子邮件发送到 NP 和案例管理组,保存到 DB。

CM 用户打开“等待操作”列表并执行操作(也更新后端系统),设置为已完成。

WF4“获取”更改并向NP发送确认,归档请求。

示例 2

NP 创建新请求

WF4 发送电子邮件,设置“需要批准”

BO 用户在列表中找到新请求,打开但拒绝

WF4 向 NP 发送带有请求链接的电子邮件

NP 打开链接,修改请求,保存

WF4 向博群发送“更新”邮件并标记为重新提交

BO 用户打开“重新提交”列表,选择项目并设置为“需要经理批准”

WF4 发送经理电子邮件

经理在他的列表中看到项目,打开并批准。

WF4 向 CM 组发送电子邮件.....照常进行。

示例 3

NP 保存新的请求

WF4 收到请求,其限制如此直接地通过适当的电子邮件发送到“CM”

CM用户拿起............照旧进行。

示例 4

NP 保存新的请求

WF4 收到请求,它不需要任何手动干预,因此更新后端系统(BLL/WCF 调用等)并设置为“已完成”并使用电子邮件等。

CM用户拿起............照旧进行。

示例 5

NP 保存新请求

WF4 收到请求,发送电子邮件并离开为“需要批准”

NP 在任何人处理它之前打开请求并取消它。

WF4 获取更改并将项目移动到“已取消”。

4

2 回答 2

0

您是否考虑过使用开源工作流引擎?这是一个列表:http: //java-source.net/open-source/workflow-engines

我对 Sharepoint 的体验非常糟糕。我对WF4一无所知。有这么多,而且因为它们是开源的,如果你需要扩展它,你可以自定义框架。

另一种可能性是使用 JIRA。虽然正式不是工作流工具,但它具有卓越的工作流功能。只需将每个请求视为不同类型的任务。

于 2012-10-30T05:03:54.077 回答
0

从您提供的示例中,我认为您可以使用 WF4 解决此问题。WF4 提供了出色的事务控制和流控制功能:

  • 对于 NP 启动的每个新请求,都会创建一个新的工作流实例。
  • 每个步骤(NP 提交请求,BO 批准等)都包含在 Transaction 范围内,从而确保将步骤中涉及的数据保存到 DB 中,而与后续步骤的结果无关。
  • 在每个步骤之后,工作流都会保存到数据库中(请注意您在此处的 WF 中使用的会话数据)
  • 当一个新步骤开始时,工作流的同一个实例会从数据库中产生,从而使流程独一无二。
  • 发送电子邮件通知只是封装了 SMTP 服务器使用的 Activity(C# 为此内置了对象和方法)。

SP2010 有一个限制,它基于工作流引擎的 .NET 3.5 实现(SP2013 应该支持 .NET 4.5)。我处理它的方式是使用SOA。WF4 借助工作流服务(它们是正常的工作流,但它们被包装在实现 WCF 功能的活动中)轻松地与Windows Communications Foundation集成。使用工作流服务,您可以通过 WCF 公开工作流,这意味着您可以像使用服务一样使用工作流,并从 SP2010 执行此操作,或者创建自己的 SP2010 工作流主机并从 SP Workflows 运行 WF(不完全确定最后一个事情,但我相信这是可能的)。

因此,结合 WF4 和 WCF,您可以构建一个按您希望的方式工作的解决方案。当然,您的解决方案的设计不仅取决于 WF4 以及您如何使用它,但我认为它是一个不错的选择。它还使您有机会从任何客户端(MVC、移动设备等)抽象流程。

如果您不想使用服务和实现 WCF 的所有其他注意事项,那么这种方法不是您想要的,我只是指出它是可能的。

希望这可以帮助。

于 2012-10-30T15:50:11.083 回答