zoukankan      html  css  js  c++  java
  • 工作流系统之二十七 .net工作流系统集成自定义表单

    .net工作流系统集成自定义表单

    工作流系统一般都包含工作流引擎,工作流引擎是对业务流程的抽象,是实现流程自动化的微内核,利用工作流引擎的基本元素能搭建出各种各样的流程,但仅限于流程,不涉及到业务实现。

    流程的每个节点上可以挂接需要处理的业务模块,例如一个简单的报销流程,如下图:在填写报销单的流程节点上,就可以挂接上 填写报销单 这样一个业务模块;到审批的节点上,挂接 审批报销单模块。
       
      
    工作流引擎是不负责这些具体业务模块的实现的,否则就不是对业务流程的抽象了。

    这些具体业务模块的实现,可以是开发人员做好的一些业务模块,也可以是用一些表单工具做的自定义业务表单。

    无论是定制的业务模块,还是利用表单工具做的自定义表单,都需要在这些模块中集成流程。

    好的工作流引擎都应该是封装好的,对外仅提供调用的api函数。这样才能方便的将流程与业务模块集成在一起。

    工作流引擎对外提供的api应该包含:
    流程的初始化函数:给定一个具体的业务流程名称,启动流程,获得一个流程实例id.
    流程的执行函数  :给定一个具体的流程实例id, 执行他的任务,使得流程递进,达到流程的流转。
    获得与修改流程实例的状态:获得与修改一个具体流程实例的状态。指流程实例的 激活,挂起,与 完成 等状态。
    获得流程定义任意节点的信息:获得指定流程指定节点的任务信息,包括流程定义的属性,自定义信息等等。
    。。。。。。。

    在业务模块中,嵌入流程引擎的api函数的调用,启动一个流程,或 通过给定的流程实例id,去执行它的当前任务,将当前任务提交,使得流程流转。当然,业务模块的业务数据提交和流程的流转应该保持在一个事务中,达到流程的长事务一致性。

    下面以eworkflow.net+eform.net为例,说明.net工作流系统与自定义表单系统的集成。
    还是以报销流程为例,先将业务流程转换成eworkflow的流程。(流程图如上图中简单报销流程)

    再设计好业务表,这里我们设计了两张表,报销主表和明细表。


    从上面的流程中可以看出,需要有报销单填写模块,和审核模块。
    用eform画好 报销单,如下:

    注:eworkflow .net工作流系统中已经集成好了eform .net自定义表单系统了。表单属性中 选择 工作流工具栏

    工作流工具栏也是用eform设计的一个页面,此页面中已经做好了和流程的集成。在表单提交到后台保存的之后,再执行流程的相应动作,达到流程的递进。


    用eform画好 报销单的审核 如下:(同样在表单属性中,选择 工作流工具栏)


    画好的页面保存在workflow\example_dj\目录中。


    在流程设计器中,打开报销流程,在相应节点上挂接好 业务表单。

    这样报销流程就设计好了,可以启动执行了。
    有更细一些的控制,就在流程设计器中打开报销流程,修改流程节点的属性,或修改流程的流转。


    在eform自定义表单系统的代码中已经有通用的模块集成了eworkflow .net工作流系统了,所以不需要再写代码调用流程api了。

  • 相关阅读:
    Centos7 keepalived 修改日志路径
    mysql 双主复制 centos7
    CentOs 7 安装mysql5.7.18(二进制版本)
    oracle、mysql新增字段,字段存在则不处理
    mysql+ibatis 批量插入
    oracle+ibatis 批量插入-支持序列自增
    oracle 批量插入-支持序列自增
    sftp上传
    java
    mysql
  • 原文地址:https://www.cnblogs.com/webreport/p/1845951.html
Copyright © 2011-2022 走看看