C# 使用WF4构建;工作队列“;和用户分配?与SP2010类似

C# 使用WF4构建;工作队列“;和用户分配?与SP2010类似,c#,workflow,workflow-foundation-4,sharepoint-workflow,C#,Workflow,Workflow Foundation 4,Sharepoint Workflow,[我理解这有点主观-但必须有人具备处理此类需求的书写系统知识。注意:我们使用C#、.Net4和SP2010] 我一直在评估SharePoint2010和WF4的定制业务应用程序,包括工作流,它们也需要后端系统交互 (也可以选择既不使用SP2010也不使用WF4,只需将状态更改写入DB并直接写入windows服务即可完成任何自动阶段。) SP2010被证明是一个非常陡峭的学习曲线,对于大多数需求来说,它的功能都受到限制……然而,对于工作流部分,尤其是它擅长的“列表和任务”,实现一个新的列表以及随之

[我理解这有点主观-但必须有人具备处理此类需求的书写系统知识。注意:我们使用C#、.Net4和SP2010]

我一直在评估SharePoint2010和WF4的定制业务应用程序,包括工作流,它们也需要后端系统交互

(也可以选择既不使用SP2010也不使用WF4,只需将状态更改写入DB并直接写入windows服务即可完成任何自动阶段。)

SP2010被证明是一个非常陡峭的学习曲线,对于大多数需求来说,它的功能都受到限制……然而,对于工作流部分,尤其是它擅长的“列表和任务”,实现一个新的列表以及随之而来的安全性是一个额外的好处

那么,有没有一种方法可以在WF4中模拟这些功能呢

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

WF4服务承载工作流,其中一些步骤是自动的

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

表单允许他们从后端系统中查找数据(数千行,SP2010很难做到这一点,特别是因为它需要多次搜索和筛选/排序-然而,jQuery+DataTables+Ajax使这一点变得简单)

NP保存请求

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

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

WF4“获取”字段中的更改,向NP和案例管理组发送电子邮件,并持续发送到DB

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

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

例2 NP创建新请求

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

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

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

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

WF4向Bo集团发送“更新”电子邮件,并标记为重新提交

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

WF4发送经理电子邮件

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

WF4向CM组发送电子邮件…..如前所述继续

例3 NP保存新请求

WF4收到请求后,会直接通过适当的电子邮件发送给“CM”,这是不受限制的

CM用户拿起……像以前一样继续

例4 NP保存新请求

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

CM用户拿起……像以前一样继续

例5 NP保存新请求

WF4获取请求、发送电子邮件并以“需要批准”的形式离开

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


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

您考虑过使用开源工作流引擎吗?以下是一份清单:

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


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

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

  • 对于NP启动的每个新请求,都会创建一个新的工作流实例
  • 每个步骤(NP提交请求、BO批准请求等)都包含在一个事务范围内,从而确保该步骤中涉及的数据保存到DB中,与后续步骤的结果无关
  • 在每一步之后,工作流都会被持久化到数据库中(请注意您在WF中使用的会话数据)
  • 启动新步骤时,将从数据库中引发相同的工作流实例,从而使流程唯一
  • 发送电子邮件通知只不过是封装SMTP服务器使用的一种活动(C#为此内置了对象和方法)
SP2010有一个限制,它基于工作流引擎的.NET 3.5实现(SP2013应该支持.NET 4.5)。我的方法是使用SOA。借助工作流服务,WF4可以轻松地与Windows Communications Foundation集成(工作流服务是正常的工作流,但它们包装在实现WCF功能的活动中)。使用工作流服务,您可以通过WCF公开工作流,这意味着您可以像使用服务一样使用工作流,并从SP2010执行此操作,或者创建您自己的SP2010工作流主机并从SP工作流运行工作流(不完全确定最后一件事,但我相信这是可能的)

因此,结合WF4和WCF,您可以构建一个按您想要的方式工作的解决方案。当然,您的解决方案的设计不仅取决于WF4以及您如何使用它,而且我认为这是一个很好的选择。它还为您提供了从任何客户端(MVC、mobile等)抽象流程的机会

如果您不想使用服务和实现WCF的所有其他考虑因素,那么这种方法不是您想要的,我只是指出它是可能的


希望这能有所帮助。

我分享您迄今为止的SharePoint体验……但我真的需要一个C#引擎,并努力寻找一个免费、良好且支持良好的引擎!祝你好运我还没见过这种情况