`
sameseam
  • 浏览: 23172 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

工作流开发之任务回收

 
阅读更多

工作流技术起源于上世纪七十年代中期,兴起于九十年代,那时候一系列的规范和工作流原型系统从实验室开发出来,到今天工作流已经盛行。随着信息技术的发展和企业的发展,企业利用信息化对企业进行流程再造,进行精细化管理已经成为企业的核心竞争力之一。所以企业开发过程中工作流引擎必不可少。但是工作流引擎的技术门槛很高,一些中小软件企业不得不购买第三方软件平台,或者硬着头皮开发,但是随着JBPM的到来,给中小企业带来了利好消息。JBPM是一款基于PetriNet的工作流引擎,它可以通过可视化的建模来大大提高工作效率和流程的灵活定制。但毕竟JBPM只是一个框架或者说是一个应用平台的半成品,如果想达到我们应用到实际项目中,我们还需要对它进行大量包装,实现串签,并签,回退,跳转,并发子流程等等。可能回退和回收在国外不太使用,但在国内是非常有用的。这和我们的国情是分不开的。由于我国计算机起步比较晚,加之在企业中好多老员工还是公司骨干,但他们对计算机不是很熟悉,所以在办理任务时难免出错,这时回收就很重要了。因为他们不小心出错后可以及时收回,及时修改,这样就不会把错误往下传递,所以回收就尤为重要了。

把在这几年的平台架构开发中的得失和大家分享一下,不足之处欢迎大家拍砖:),这里首先与大家分享一下回收这个功能。以后会陆续介绍串签,并签,回退,跳转以及与短信,邮件的结合,与单位组织结构的结合,门户的结合等等。

JBPM回收分为以下几种情况:

回收的一个大原则是要回收任务的下一个任务还没有被办理,因为你发出去了任务,并且下一个人已经办理了这时就不能回收了。就好像你把烤鸭送给人家,如果人家还没吃你可以要回来,如果人家都吃到肚子里了你就不能要了。

1. 要回收的任务,与处于待办状态的任务处于同一节点。这时也分为两种情况此节点为串签节点或者此节点为并签节点。

此处稍微解释一下串签节点和并签节点:

串签节点:A节点在办理人中输入了“张三,李四,王五”,做为B(串签节点)的串签办理人,那么流程节点A结束后进入B,即B节点依次创建张三,李四,王五任务,也就是说A节点点击办理以后,B节点目前只生成“张三”的一个任务,当张三的任务办理后才生成李四的任务,以此类推。

并签节点:A个节点在办理人中输入了“张三,李四,王五”,做为B(并签节点)的并签办理人,那么流程节点A结束后进入BB节点同时生成张三,李四,王五三个任务。他们三者登录都能看到任务已经创建了。

1.1回收节点为并签节点

如果B为并签节点,那么只需直接将要回收的任务激活即可。

1.2回收节点为串签节点

如果B为串签节点,那么就需要将当前处于活动状态的任务取消,此时的取消不是通常的taskend,因为这样会触发一系列的后续任务的产生。因为这是串签节点(串签节点任务的依次产生就是通过taskend触发器来触发的)。所以我们用其他任何方法将当前活动任务置于非活动状态即可。然后将要回收的任务置于活动状态就可以了。

2. 要回收的任务,与处于待办状态的任务处于不同节点。此时的回收分为两种情况一种是流程中含有并发子流程即含有fork节点另一种是不含有fork节点。

2.1不含fork节点

比如A节点办理完任务了,发送到了B

不含有fork节点的情况相对简单,只要把当前处于待办任务节点的任务全部取消。当然当前待办任务节点可能又分成两种情况

a. 此任务节点为并签任务节点

b. 此任务为串签任务节点

如果为a的情况,那么将此任务节点所有的任务结束掉,并将其标注为此节点的任务为回收而不是由当前办理人办理即可,然后将token转到回收的任务节点即可。

如果为b的情况。参考1.2中的方法将任务终止。并且还要标明这个节点的串签任务是回收的而不是当前办理人办理的,因为每个公司或者个人开发串签功能的action都有所不同,所以这里只是讲公共的理论因素。保证了任务全部结束,然后这时转向到回收节点就可以了。

2.2fork节点的

如果流程中含有fork节点,那么就要注意你要回收的一定只是回收节点发出去的节点,

比如A发出任务后,到达B,C.此时B有将任务办理后发送到D节点,这时处于待办节点的有C,D。如果此时B想回收任务,那么理论上它只能回收D,因为只有D是它发出去的,此时要对待办任务做一个判断如果任务属于D则结束,C则不管。然后将D节点转向回B即可。同时这里也要注意D节点分为串签节点和并签节点两种情况。上面已经阐述过这两种情况,再此不再赘述。

以上虽然是针对JBPM讲的但如果自己开发平台也是可以参考的,因为理论的东西都是共通的。上面对于回收就先说这么多吧,希望对大家有帮助!

分享到:
评论

相关推荐

    基于工作流引擎的系统框架设计开发

    在开发基于工作流引擎的系统时,C#的强类型、垃圾回收机制和丰富的类库提供了良好的开发环境。 2.2 工作流引擎概述 工作流引擎是工作流管理系统的核心,它能够定义、执行和管理业务流程,实现任务的自动化分配、...

    介绍一款工作流引擎设计思路

    工作流引擎设计是一个复杂而关键的任务,涉及到许多方面的考量。工作流引擎的目的是为了帮助企业高效地管理和自动化工作流程,因此其设计必须以创造价值为核心,而非单纯追求技术特性。WfMC虽然定义了标准,但并没有...

    工作流 asp.net源码

    工作流ASP.NET源码是一个基于C#编程语言的软件开发资源,主要针对Web应用程序的开发。在ASP.NET框架下,工作流技术可以帮助开发者构建复杂的业务流程应用,它允许定义、执行和管理这些流程,使系统能够按照预定的...

    基于ASPNet技术和工作流技术的学生信息管理系统的研究与开发

    《基于ASP.NET技术和工作流技术的学生信息管理系统的研究与开发》 在信息技术日益发达的今天,学生信息管理系统的建设已经成为教育领域的重要课题。本系统利用先进的ASP.NET技术和工作流技术,旨在提升学生信息管理...

    java实现工作流

    固定电话装机业务作为传统电信业务之一,通过引入先进的信息技术,比如工作流技术,可以有效提升业务处理能力和服务水平。 本文档主要分为以下几个部分: 1. **概述**:介绍了选题背景和组织结构。 2. **所用相关...

    基于asp.net+C#开发的superflow工作流平台V5.8-20130417

    在V5.8版本中,该引擎可能支持多种工作流模型,如顺序流、分支、并行任务、审批节点等。开发者可以通过API或配置文件定义复杂的业务流程,引擎会自动处理流程中的任务分配、状态转移、事件触发等操作。 **用户界面...

    VS2010开发的图形化工作流OA

    新建工作 新建新的审批工作流,选定需要的工作新建即可 我的工作 个人发起的所有工作,包括已审批、未审批的所有工作 待办工作 需要当前用户进行办理或者审批的工作列表 已办工作 当前用户已经办理过的各项工作,...

    基于ASP.NET+C#开发的superflow工作流平台最新版本V5.2

    通过以上分析,我们可以看出"基于ASP.NET+C#开发的superflow工作流平台最新版本V5.2"是一个集成了多种技术、注重效率和安全性的企业级工作流解决方案。对于开发者来说,理解和掌握这些知识点对于深入学习和使用该...

    基于ASP.net的工作流系统源码.zip

    工作流系统通常需要与数据库进行交互,存储和检索工作流实例、任务和状态等信息。在ASP.NET中,可以使用Entity Framework或ADO.NET进行数据访问。开发者可能创建了SQL Server数据库,并通过C#编写ADO.NET或Entity ...

    jwfd开源工作流JDK1.8和WINDOWS7版本

    此外,JDK1.8还优化了并发处理,如Fork/Join框架和Parallel Streams,这对于处理大量并发任务的工作流引擎至关重要。 在Windows7操作系统上运行jwfd时,系统兼容性成为了一个重要的问题。由于早期版本的jwfd可能不...

    简单的C#工作流管理系统.zip

    工作流管理系统是一种自动化处理任务、流程和业务规则的软件,它通常涉及任务分配、审批流程、状态跟踪等多个环节。C#,作为微软.NET框架的主要开发语言,提供了丰富的库和工具来支持这样的系统开发。 首先,我们要...

    基于BS结构的Java可视化工作流定制软件

    "基于BS结构的Java可视化工作流定制软件"这个标题表明我们要讨论的是一款使用Java编程语言开发的,基于Browser/Server(B/S)架构的软件。这种架构通常意味着用户通过浏览器进行交互,而服务器端负责处理业务逻辑和...

    基于asp.net+C#实现的superflow工作流平台最新版本V5.8-20130507

    SuperFlow需要持久化工作流实例、任务和历史记录等数据。这通常涉及到数据库设计和访问,如使用SQL Server或其他关系型数据库。在V5.8版本中,可能会有新的数据存储优化,例如更快的数据检索速度,或者对大数据量的...

    ShareFlow企业工作流集成管理平台.pptx

    - **组件齐全**: 包括图形化定义、工作流引擎、流程监控、表单设计工具、查询设计器、报表设计工具以及二次开发接口等功能组件。 #### 四、主要功能模块 1. **图形化流程设计**: - 拖放式绘制流程图,简化了复杂...

    工作流程C#

    通过使用C#来实现工作流,我们可以利用.NET平台的强大功能,包括类型安全、垃圾回收以及丰富的类库支持。 1. **工作流基础**: - 工作流概念:工作流是一种描述业务过程的模型,包括活动(Actions)、状态(States...

    基于工作流网的分布式作业管理系统性能分析方法.pdf

    它是对Petri网的扩展,用来模拟实际工作流的过程,包括各种任务、流程和决策点。WF-net模型可以用来表示一个分布式作业管理系统中的作业流,它能描述作业流之间的关系和依赖,以及资源的分配和使用。 本文提出的...

    C#中实现内存回收

    然而,在实际开发中,我们可能会遇到程序运行过程中内存持续增加的问题,这可能是因为某些资源没有被正确地释放或者垃圾回收机制未能及时工作。本程序"MemoryCollectTest"旨在帮助开发者理解和实践如何在C#中强制...

    Activiti工作流学习资料.zip

    2:工作流的执行过程 演示程序:Activiti控制台 3:Activiti介绍 Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、...

    炼油化工装置循环系统能量回收水力透平研究与产品开发.rar

    总结来说,炼油化工装置循环系统能量回收水力透平的研究与产品开发是一项涉及流体动力学、材料科学、机械设计和系统集成的综合性工作。通过合理的设计和优化,水力透平能有效提高能源效率,减少能源浪费,对于实现...

    基于ASP.NET的客户关系OA进销存财务审批工作流HR和CRM系统源码.zip

    3. 办公自动化(OA):OA系统实现了日常办公流程的数字化和自动化,包括文档管理、任务分配、工作流审批、通知公告等功能。在ASP.NET框架下,可以构建灵活的工作流引擎,满足不同企业的个性化审批需求。 4. 进销存...

Global site tag (gtag.js) - Google Analytics