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

工作流系统的历史记录(ZZ)

 
阅读更多

博客园上的一个工作流系统的构建,个人觉得写得很好! 

http://www.cnblogs.com/webreport/tag/java%E5%B7%A5%E4%BD%9C%E6%B5%81/

在工作流系统中,业务流程按流程引擎定义的模型规则,定义成流程的一个一个节点。当流程实例运行时,流转到流程的各个节点,通过执行动作之类的操作提交关联的业务表单,导向流程的下一个节点,同时修改流程实例的状态,达到流程的流转。流程实例每流转一次,都会将当前节点的信息写入一个历史轨迹表,同时将下一节点的信息写入当前步骤表。当流程实例流转多次后,根据历史轨迹表的记录,就能追踪到此流程实例的实际运行轨迹。

      工作流系统的数据主要分为流程数据和业务数据,流程的历史轨迹表仅仅记录的是流程的数据,与业务数据业务表单无关,甚至是流程的上下文数据也记录不了。当流程实例在追踪历史轨迹的时候,作为监控使用,或者是历史步骤的再现,经常需要将此轨迹节点上关联的业务表单重新装入,查看监控当时的流程状态和业务状态。但流程的轨迹表仅记录的是流程的节点步骤信息。业务表的信息是不记录的,业务表记录的再现,只能通过流程数据和业务数据的关联去查找。查找出的业务记录只有一个最后的状态,如果流程的多个节点对此业务数据做过修改,那么就很难在各个轨迹节点中还原出当时的状态。可能可以通过类似同一张单据在流程的多节点中流转的方式来达到,但如果多节点写了同一个字段的信息,就根本区别不出是流程的那个节点做的修改了,因为业务表没有记录轨迹。
   
      总结一下,实际上流程系统中的历史轨迹表,只记录的是流程实例运行的各节点的轨迹,没有记录业务数据的轨迹。
   
      当流程监控的时候要求对业务表的记录也做出精确的监控,那肯定需要建立业务表的轨迹表(或叫日志表),此业务轨迹表当属于业务系统的表,不属于工作流系统表。并且在业务轨迹表中增加一个 流程轨迹id字段 ,用于和流程的轨迹相关联。当流程流转时,产生流程的历史轨迹,同时也产生业务轨迹表的记录,并将流程的历史轨迹表记录id写入业务轨迹表中。当流程监控时,显示流程历史轨迹的同时,也可以通过轨迹表的id字段 关联出业务轨迹表中的业务记录,再现出当时的业务数据状态。此为流程轨迹表主键ID的一种用法。
   
      流程轨迹表的主键id,是流程实例运行轨迹的一个唯一标志,与流程节点的id不一样,流程节点的id是流程定义节点中的唯一标识,流程实例运行时,同一个节点,通过回退,循环,主动取回等可能会多次运行。但轨迹表的主键id则肯定是唯一的,流程实例的每次流转都会生成轨迹表的新记录。当流程运行到节点上,关联的业务表单填写的是多条业务记录时,如主从表的录入,从表在流程的不同节点上多次填写。当流程监控时,需要再现出每个节点关联的从表业务记录时,就定位不了业务记录。如果在业务从表中增加一个 流程轨迹主键id 字段,在流程节点提交的时候,将此轨迹id写入 业务从表中,就能将流程的轨迹和业务从表记录关联起来了。此处如果写入业务从表的是流程节点id是不行的,流程回退,取回,一个节点重复执行时,就标识不了了。  此为流程轨迹主键id的另一种用法。
   
       流程轨迹主键id 还有一种更为巧妙的用法,作为流程主动取回后,再次发送,流程下一节点是否可执行的判断标志。流程实例的每次执行操作之前将流程轨迹id传递到前台,等待用户执行操作。提交操作时,取道页面传递回来的轨迹主键id,和流程轨迹表中当前步骤的轨迹id相比较,如果一致,则可以继续操作,如果不同,则表示流程轨迹已经发生了变化,需要再次打开链接重新执行此节点的操作。

分享到:
评论

相关推荐

    base zz zz zz zz

    base zz zz zz zz zz base zz zz zz zz zz base zz zz zz zz zz base zz zz zz zz zz

    中医大夫助理信息系统 zz-doctor

    《中医大夫助理信息系统 zz-doctor 深度解析》 中医大夫助理信息系统“zz-doctor”是一款基于Android平台的应用程序,旨在为中医医生提供智能化、便捷化的诊疗辅助工具。通过深入剖析这款应用的源码,我们可以了解...

    ZZ-2022006 建筑智能化系统安装与调试赛项赛题.zip

    《ZZ-2022006 建筑智能化系统安装与调试赛项赛题》 本赛题主要针对中职学生,旨在提升他们在建筑智能化领域的专业技能和实践能力。建筑智能化系统安装与调试赛项是现代建筑业的重要组成部分,随着科技的发展,智能...

    中医大夫助理信息系统zz-doctor.rar

    综上所述,中医大夫助理信息系统zz-doctor是一款集患者管理、病历记录、方剂推荐和药材查询等功能于一体的综合性工具,旨在提升中医诊疗工作的专业化和智能化水平。尽管系统可能存在部分未验证的功能,但其核心模块...

    应用广泛的嵌入式操作系统——ZZ-Linux.pdf

    应用广泛的嵌入式操作系统——ZZ-Linux.pdf

    springboot-基于java的招聘求职系统-886zz792.zip

    标题中提到的“springboot-基于java的招聘求职系统-886zz792.zip”暗示了这个压缩包是与一个基于Spring Boot框架和Java语言开发的招聘求职系统相关。Spring Boot是一个开源的Java基础框架,用于简化新Spring应用的...

    android应用源码zz-doctor中医大夫助理信息系统.rar

    【标题】"android应用源码zz-doctor中医大夫助理信息系统.rar"揭示了这是一份针对Android平台开发的应用程序源代码,专门设计用于辅助中医大夫进行日常工作。这个系统可能集成了病症诊断、处方建议、病例记录等多种...

    精典源码之zz-doctor中医大夫助理信息系统(简化版).rar

    医生可以根据病情为患者开出个性化的处方,系统能自动检查药物间的配伍禁忌,并能记录历史处方以便复用或参考。 3. **药材库管理**:包含药材的名称、性味归经、功效、用法用量等信息,方便医生查询和选择药材。...

    vue-zz-oa.zip 尚硅谷 ao办公系统

    此外,AO办公系统可能还内置了一些自动化的工作流程和智能决策支持系统,这些功能可以帮助企业简化工作流程,提高工作效率。系统的操作界面可能直观易用,响应速度快,符合现代企业用户对于办公系统的基本需求。 ...

    ZZ561401.CAB

    ZZ561401.CAB ZZ561401.CAB ZZ561401.CAB

    zz-doctor中医大夫助理信息系统(简化版)

    总的来说,"zz-doctor中医大夫助理信息系统(简化版)"是中医领域的一次技术创新,它将信息技术与传统医学紧密结合,旨在提高诊疗效率,提升服务质量,同时也为中医大夫提供了强大的工具支持,让他们的工作更加便捷、...

    ZZ其他非流动资产.xls

    ZZ其他非流动资产

    wincc AX NF ZZ

    wincc SIMATIC WinCC是第一个使用最新的32位技术的过程监视系统,具有良好的开放性和灵活性。 从面市伊始,用户就对SIMATIC WinCC印象深刻。

    制造业数据治理主数据管理系统建设方案 zz.pptx

    制造业数据治理主数据管理系统建设方案 zz.pptx

    zz-doctor中医大夫助理信息系统.zip

    此外,由于中医诊疗过程中重视望闻问切,尤其是脉象的判断,因此,一个成熟的中医大夫助理信息系统还应具备记录和分析脉象数据的功能。通过集成的传感器和智能算法,系统可以对患者的脉象进行采集和分析,为医生提供...

    ZZ-2022010 机器人技术应用赛项赛题.zip

    5. **机械臂控制**:对于涉及到机械臂的任务,参赛者需要理解其工作原理,学会如何编程控制机械臂完成精确的动作,如抓取、搬运等。 6. **实时控制系统**:机器人常常需要在实时环境下运行,因此参赛者需要理解实时...

    基于java的招聘求职系统-886zz792.zip

    该系统的数据库文档详细记录了系统所使用的数据库结构设计,包括了各个数据表的设计目的、字段定义、数据类型以及表间的关系等重要信息,这对于理解整个系统的数据流转和存储至关重要。开发文档则详尽描述了系统开发...

    Android应用源码之zz-doctor中医大夫助理信息系统

    《Android应用源码解析:zz-doctor中医大夫助理信息系统》 在移动开发领域,Android操作系统以其开源、灵活的特性,成为开发者们的重要选择。本文将深入探讨一款名为"zz-doctor"的中医大夫助理信息系统的Android...

    综采面回撤三角区ZZ7200/18/36型支架电液系统设计

    针对综采面回撤三角区的特殊工况,该支架通过其独特的设计与电液控制系统,不仅显著提高了工作效率,也改善了工人的劳动条件,更确保了作业安全。 ZZ7200/18/36型支架在综采面回撤三角区的应用,实现了对端头顶板的...

    基于java的招聘求职系统_886zz792.zip

    另一个文件“springboot开发文档.docx”顾名思义,是关于整个招聘求职系统开发过程的详细记录。它不仅描述了开发的每个阶段,还包括了设计决策、关键算法的选择和实现过程中的各种考虑。这样的文档对于理解系统的...

Global site tag (gtag.js) - Google Analytics