工作流 订阅
工作流(Workflow),指“业务过程的部分或整体在计算机应用环境下的自动化”。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。在计算机中,工作流属于计算机支持的协同工作(CSCW)的一部分。后者是普遍地研究一个群体如何在计算机的帮助下实现协同工作的。工作流主要解决的主要问题是:为了实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。工作流概念起源于生产组织和办公自动化领域,是针对日常工作中具有固定程序活动而提出的一个概念,目的是通过将工作分解成定义良好的任务或角色,按照一定的规则和过程来执行这些任务并对其进行监控,达到提高工作效率、更好的控制过程、增强对客户的服务、有效管理业务流程等目的。尽管工作流已经取得了相当的成就,但对工作流的定义还没有能够统一和明确。Georgakopoulos给出的工作流定义是:工作流是将一组任务组织起来以完成某个经营过程:定义了任务的触发顺序和触发条件,每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以由一个或多个人与软件系统协作完成。1993年工作流管理联盟(Workflow Management Coalition,WfMC)作为工作流管理的标准化组织而成立,标志着工作流技术逐步走向成熟。WfMC对工作流给出定义为:工作流是指一类能够完全自动执行的经营过程,根据一系列过程规则,将文档、信息或任务在不同的执行者之间进行传递与执行。 展开全文
工作流(Workflow),指“业务过程的部分或整体在计算机应用环境下的自动化”。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。在计算机中,工作流属于计算机支持的协同工作(CSCW)的一部分。后者是普遍地研究一个群体如何在计算机的帮助下实现协同工作的。工作流主要解决的主要问题是:为了实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。工作流概念起源于生产组织和办公自动化领域,是针对日常工作中具有固定程序活动而提出的一个概念,目的是通过将工作分解成定义良好的任务或角色,按照一定的规则和过程来执行这些任务并对其进行监控,达到提高工作效率、更好的控制过程、增强对客户的服务、有效管理业务流程等目的。尽管工作流已经取得了相当的成就,但对工作流的定义还没有能够统一和明确。Georgakopoulos给出的工作流定义是:工作流是将一组任务组织起来以完成某个经营过程:定义了任务的触发顺序和触发条件,每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以由一个或多个人与软件系统协作完成。1993年工作流管理联盟(Workflow Management Coalition,WfMC)作为工作流管理的标准化组织而成立,标志着工作流技术逐步走向成熟。WfMC对工作流给出定义为:工作流是指一类能够完全自动执行的经营过程,根据一系列过程规则,将文档、信息或任务在不同的执行者之间进行传递与执行。
信息
应用学科
计算机科学、管理学
适用领域
云计算
中文名
工作流
外文名
Workflow
工作流工作流类型
工作流(WorkFlow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递工作流属于计算机支持的协同工作(Computer Supported Cooperative Work,CSCW)的一部分。后者是普遍地研究一个群体如何在计算机的帮助下实现协同工作的。许多公司采用纸张表单,手工传递的方式,一级一级审批签字,工作效率非常低下,对于统计报表功能则不能实现。而采用工作流软件,使用者只需在电脑上填写有关表单,会按照定义好的流程自动往下跑,下一级审批者将会收到相关资料,并可以根据需要修改、跟踪、管理、查询、统计、打印等,大大提高了效率,实现了知识管理,提升了公司的核心竞争力。 工作流2.0的定义是:实现工作过程管理的自动化、智能化和整合化。工作流2.0最主要的特征就是可以灵便的实现数据整合和数据统计,消除信息孤岛,既能实现OA办公系统内部工作流之间的数据整合,如借款与报销、预算与决算等,又能实现OA办公系统工作流与其他业务系统之间的数据整合,如HR、ERP、CRM等。工作流2.0能彻底的弥补工作流1.0的不足,它不但实现OA办公系统内部的数据整合,也实现OA办公系统和第三方应用系统之间的数据整合。如果给工作流1.0打上标签的话,那就是“无纸化、重复工作、流程孤岛、系统孤岛、数据孤岛”;工作流2.0对应的便是“智能化、效率质量提升、外部数据整合、消除信息孤岛、内部数据整合”。毫无疑问,工作流2.0更加智能,更加整合,能够实现数据的同步交换和共享的特征更受用户欢迎,能有效帮助企业简化多余流程,是未来工作流技术发展的方向。
收起全文
精华内容
下载资源
问答
  • 用Intellij idea开发工作流的入门项目,里面的代码非常详细,因为我在接触工作流的时候特别头疼,而且在网上找了各种资料都没有非常完整的代码,零零散散,让我花了非常多的精力来解决代码的问题,这里对工作流的...
  • activiti工作流文档,超详细,从0基础开始入门,包括数据库介绍、核心api等介绍,满足日常开发所需
  • web工作流设计-myflow

    热门讨论 2016-08-16 09:43:20
    web工作流设计-myflow:使用myflow.js进行设计工作流,基于web页面进行操作,里边包含删除按钮功能。
  • activity工作流

    热门讨论 2014-10-14 16:54:08
    activity工作流技术资源文件分享,主要内容包括activity的核心类,还有各个服务的详细介绍
  • Activiti工作流示例ActivitiDemo 本示例带有全部源码,详细使用Canvas动画演示了Activiti工作流引擎的使用。非常实用,非常先进和完整。希望您会喜欢。
  • snaker工作流引擎实例

    热门讨论 2015-06-29 14:21:35
    Snaker是一个基于Java的开源工作流引擎,适用于企业应用中常见的业务流程。本着轻量、简单、灵巧理念设计,定位于简单集成,多环境支持 轻量:核心代码行数大约7000行,强大的扩展性,支持Spring、Jfinal、Nutz...
  • ASP.NET RoadFlow工作流引擎源码

    热门讨论 2015-01-16 21:45:01
    基于角色的权限管理等先进设计理念 是您开发OA CRM HR 等企事业各种应用管理系统的最佳基础平台 路德软件兼承 “开放 分享 进步” 的原则 对RoadFlow 工作流引擎开源 希望与广大工作流开发者共同进步 二 功能介绍 1 ...
  • Java自己开发的一个工作流引擎例子

    热门讨论 2015-05-09 00:15:20
    最近项目中需要使用到工作流,然后上网搜到一个大神用Javascript写的一个工作流,感觉写的很屌。然后我将Javasc代码用Java改写了,并且用mysql建了数据库表,进行了测试,可以处理一些简单的流程。我觉得代码很有...
  • Html5+jquery实现的工作流设计器。剥离了原来的各种内部设置,做成了纯粹的设计器,通用性更广。 提供了常用的调用函数,以便大家可以在外部进行设置扩展。需要的朋友赶快下了。都是开源的js文件。 使用和说明,...
  • 工作流

    万次阅读 2018-10-17 10:10:54
    一、 什么是工作流  以请假为例,现在大多数公司的请假流程是这样的  员工打电话(或网聊)向上级提出请假申请——上级口头同意——上级将请假记录下来——月底将请假记录上交公司——公司将请假录入电脑  ...

    一、 什么是工作流

      以请假为例,现在大多数公司的请假流程是这样的

      员工打电话(或网聊)向上级提出请假申请——上级口头同意——上级将请假记录下来——月底将请假记录上交公司——公司将请假录入电脑

      采用工作流技术的公司的请假流程是这样的

      员工使用账户登录系统——点击请假——上级登录系统点击允许

      就这样,一个请假流程就结束了

      有人会问,那上级不用向公司提交请假记录?公司不用将记录录入电脑?答案是,用的。但是这一切的工作都会在上级点击允许后自动运行!

      这就是工作流技术。

      Georgakopoulos给出的工作流定义是:工作流是将一组任务组织起来以完成某个经营过程:定义了任务的触发顺序和触发条件,每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以由一个或多个人与软件系统协作完 
       
       
      二、 工作流技术的优点 
       
      从上面的例子,很容易看出

      工作流系统,实现了工作流程的自动化,提高了企业运营效率、改善企业资源利用、提高企业运作的灵活性和适应性、提高量化考核业务处理的效率、减少浪费(时间就是金钱)。

      而手工处理工作流程,一方面无法对整个流程状况进行有效跟踪、了解,另一方面难免会出现人为的失误和时间上的延时导致效率低下,特别是无法进行量化统计,不利于查询、报表及绩效评估。

      三、 Java开发者会为什么要学Activity工作流 
       
      在Java领域,JBPM和Activity是两个主流的工作流系统,而Activity的出现无疑将会取代JBPM(Activity的开发者就是从Jbpm开发者出来的)。

      四、 Activity工作流学习要点

      1、1个插件

      在Eclipse中安装Activity插件,让你可以在Eclipse中绘制Activity工作流图

      2、1个引擎

      ProcessEngine对象,Activity工作流引擎。这是Activiti工作的核心。负责生成流程运行时的各种实例及数据、监控和管理流程的运行。

      所有的操作都是从获取引擎开始的,所以一般会把引擎作为全局变量

    ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine();
    1
      3、1个配置文件

      activiti.cfg.xml。Activiti核心配置文件,配置流程引擎创建工具的基本参数和数据库连接池参数

      4、5种数据库表

      Activiti的后台是有数据库的支持,所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。用途也和服务的API对应。

      ACT_RE_*: ‘RE’表示repository。 这个前缀的表包含了流程定义和流程静态资源(图片,规则,等等)。

      ACT_RU_*: ‘RU’表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据,在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。

      ACT_ID_*: ‘ID’表示identity。 这些表包含身份信息,比如用户,组等等。

      ACT_HI_*: ‘HI’表示history。 这些表包含历史数据,比如历史流程实例,变量,任务等等。

      ACT_GE_*: 通用数据,用于不同场景下,如存放资源文件。 
      
      5、23张表

      不同的表存放不同方面的数据,有流程定义表、任务结点表、流程变量表、任务历史表等等。 
       
       
      6、5项Service

      不同的Service类对应不同的功能。

      比如TaskService,是activiti的任务服务类。可以从这个类中获取任务的信息。

      而HistoryService,则是activiti的查询历史信息的类。在一个流程执行完成后,这个对象为我们提供查询历史信息。

      7、7项基本操作

        设计流程图(各种组件,如连线、用户任务、网关)

        流程定义增删改查

        流程变量增删改查

        启动流程定义

        任务增删改查

        完成任务

        历史信息查询

      学习7项基本操作时只需在JavaSE下执行即可,当然,做web项目的时候就要考虑和SSH等开发框架结合的问题。当然,只有基本操作学会了,综合开发并不难。 
    --------------------- 
    作者:莱克寇丁 
    来源:CSDN 
    原文:https://blog.csdn.net/zbdxcyg/article/details/78519773?utm_source=copy 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • 表单式工作流功能模块设计方案

    千次阅读 2021-08-26 13:48:41
    最近一个项目中需要独自设计一个表单式工作流功能模块,在此将整个功能模块的设计思路分享出来。

    最近一个项目中需要独自设计一个表单式工作流功能模块,在此将整个功能模块的设计思路分享出来。



    1. 需求及分析

    此处所有的需求是建立在医院临床信息管理系统之上的。这里只分析关于表单式工作流功能模块的需求。

    关于表单式工作流功能模块的需求全部整理如下:

    • 1.一个患者在不同时期要填写的表单不同。
    • 2.每个患者的手术类型不同,也就意味着,每个患者的各个时期可能都不相同。
    • 3.每个时期需要单独填写多张表单,相同时期要填写表单的相同。
    • 4.在每个时期要填写的其中一张表单中,可能一条患者信息对应一条记录,也可能一条患者信息对应多条记录。比如在手术期的一张检查表单中,一条患者信息只对应一条记录,但是术后期的一张检查表单中,可能会有手术后30天的情况,也会有手术后60天的情况,也就是一条患者信息对应多条记录。
    • 5.对于某一个患者,要能单独的处理它的工作流(也就是不同时期的表单)。
    • 6.对于某一个时期,要能单独处理在这个时期的所有患者信息。
    • 7.对每张表单要有增删改查操作,在每个时期,都要能通过各种方式查询患者的信息。

    针对这些需求,对整个工作流功能模块初步的想法大概是这个样子:

    在这里插入图片描述

    • 1.每位患者可以绑定一个工作流程,称为表单式的工作流。
    • 2.每个流程由若干个节点组成。
    • 3.医生在一个时期处理完所有的表单后,点击完成该流程节点即可进入下一流程节点。
    • 4.医生还可以修改一个患者已经完成的流程节点的数据,但是无法查看还未达到的流程节点的数据。

    2. 功能实现分析

    上述要实现的表单式的工作流跟oa系统中的工作流不大一样,oa系统中的工作流一般是这样几个步骤:

    • 1.设计流程。上级设计一种办事的流程,其中包含若干个节点,一个节点代表着一个审批人,所有节点审批都通过后才算完成,一个节点不通过,就会被打回。
    • 2.发起流程。由普通员工发起一个流程申请,发起后,员工无法修改这张表单,随后这张表单会跟随流程一级一级审批。
    • 3.流程审批。有若干上级审批流程,点击审批通过,该表单就会进入下以流程节点,点审批失败,流程会终止或者打回。
    • 4.流程通过。所有流程通过之后,会得到流程通过的凭证,就可以拿着这个凭证去处理相关的事情。

    整个oa系统的工作流功能的核心就是多级审批机制,但我们需求中的表单式的工作流,并不设计审批机制,整个工作流的功能可以简单理解为:一条患者信息选择流程后会在各个时期不停流动,在一个时期需要填写非常多的表单,这些表单填写完成后,医生点击进入下一流程,患者信息即可进入下一流程,但是这条患者信息已经留在了每个时期的表单中,医生仍然可以查看和修改这条信息。

    oa式的工作流的实现非常复杂,市面上也有商业化和开源的工作流框架和引擎,但是针对我们这个需求来看,如果硬加使用,只会使整个业务更加复杂,因此,最好的办法就是自己设计一种简单工作流机制,实现上述全部的需求。

    3. 工作流结构设计

    根据上面的需求分析和功能实现的分析,设计的整个工作流结构如下:

    在这里插入图片描述

    • 每个工作流包含若干个节点。
    • 每个节点包含基本信息和若干个表单。
    • 每个患者绑定一个工作流,患者在每个工作流节点需要处理多张表单。

    4. 数据库设计

    4.1 总设计思路

    根据上面的分析,总的设计思路如下:

    • 每个不同的时期有一张主表,主要记载患者的id,每当有患者信息到达该节点时,记录患者的id,一共有两种方式记载。两种方式各有好处。综合考虑还是第1种方式最好。
      • 1.只记载患者信息的id。
      • 2.记载同步记载所有患者信息。
      • 不管使用哪种方法,都需要将患者的id作为主表的主键,这样方便查询子表中的信息。
      • 如果使用第1种方法,那么每张主表中其实主要就是吧包含主键。但在每个时期,都需要联合患者表一起查询数据。
      • 如果使用第2种方法,那么每张主表需要同步患者的所有信息,且不管在哪修改了患者信息,都需要在所有主表同步患者的消息。
    • 每个时期的若干小表都是主表的子表,包含该小表需要填写的所有数据字段,外键是主表的id。
    • 流程节点表中绑定一张主表。
      • 这样设计的好处就是,在每一个流程节点处,还能看到许多该流程节点的其它信息。
    • 工作流表绑定若干个流程节点。
    • 个患者绑定一个工作流,并且存储当前节点,下一节点。

    4.1 各时期主表设计

    各时期的主表主要干的事情就是存储患者信息的id,代表着患者正处于当前流程节点或者已经完成该流程节点。

    患者id模式

    • 这种模式很简单,基本上不需要什么字段。
    字段说明
    id患者id
    权限管理需要的其它字段

    同步所有患者信息模式

    • 这种方式需要同步主表的所有字段。
    字段说明
    id患者id
    患者表所有字段

    4.2 每个时期的若干小表

    存储基本信息,关键是外键是主表的id。

    字段说明
    id唯一id
    所有数据字段

    4.3 流程节点表

    主要是绑定主表,还可以添加一个时期的额外数据,比如一个时期的表单填写提示。

    字段说明
    id唯一id
    master_table主表名称
    权限控制相关字段
    该时期的其它数据字段

    4.4 工作流表

    在工作流表中绑定多个工作节点有两种方式:

    • 1.根据最多节点数目设置若干个节点字段,存储流程节点的id。
    • 2.设置一个字段,字符串拼接的形式,存储所有流程节点id。

    同样,两种方式各有好处:

    • 使用第1种方式,需要需求中最多节点个数完全确定,才方便设计合适的字段。
    • 使用第2种方式,可以存储任意个节点,但在拿出处理的时候有些麻烦。

    一个字段模式

    字段说明
    id唯一id
    process_name工作流名称
    process_des工作流描述
    process_ndoes所有节点id
    权限控制相关的其它字段

    多个字段模式

    • 其中哈希值主要用来工作流判重。
    字段说明
    id唯一id
    process_name工作流名称
    process_des工作流描述
    node_num节点数目
    process_hash工作流哈希值
    node1节点1
    node2节点2
    node3节点3
    若干节点
    权限控制相关的其它字段

    4.5 患者表

    患者表中和流程相关的一共三个字段:工作流id,当前节点id,下一节点id。其中存储下一节点id的做法类似单链表。

    字段说明
    id唯一id
    process_id工作流id
    current_node_id当前节点id
    next_node_id下一节点id
    所有数据字段

    5.接口设计

    5.1 针对工作流节点的接口

    • 1.新增工作流节点。

      • 需要保证工作流节点所绑定的主表id和名称是唯一的。
    • 2.修改工作流节点。

      • 如果修改了工作流绑定的主表,先要判断这个节点所在工作流是否被患者绑定,如果绑定了,那么将无法修改主表。
    • 3.删除工作流节点。

      • 需要保证该节点未绑定任何工作流。
    • 4.查询工作流节点。

      • 查询该节点的所有数据。

    5.2 针对工作流的接口

    • 1.新增工作流。

      • 需要保证工作流节点不重复,重复就会出错。
      • 需要保证节点数大于0.
      • 需要保证整条节点链表不重复。
      • 如果是多字段模式的,还需要检验是否依次填写节点。
    • 2.修改工作流。

      • 如果已经有患者绑定了工作流,那么将不能修改工作流的节点。
    • 3.删除工作流。

      • 如果已经有患者绑定了工作流,那么将不能删除工作流的节点。
    • 4.查询工作流。

      • 查询工作流的所有字段。

    5.3 针对患者的接口

    • CRUD操作略。

    • 查询患者流程信息。

      • 需要获取患者所处流程的所有节点信息。
      • 需要判断哪些节点已经完成,正处于哪个节点,哪些节点还未到达。
    • 患者流程通过。

      • 患者的信息将会插入下一节点对应的主表。
      • 修改患者当前节点,下一节点。

    6. 前端页面设计

    6.1 针对化患者信息处

    • 在操作一栏中能够处理患者的流程。
      在这里插入图片描述

    6.2 患者流程处理处

    在这里插入图片描述

    6.3 具体时期处

    在这里插入图片描述

    7.其它

    这种表单式工作流的设计,理论上是可以抽取出来成为一个独立的框架,待日后有时间精力再去尝试。


    ATFWUS 2021-08-26

    展开全文
  • jBPM4工作流示例jbpmDemo

    2017-02-16 20:06:20
    本示例是jBPM4工作流示例jbpmDemo,详细演示了jBPM4工作流引擎的使用,对工作流采用Canvas动画形象演示,非常实用。也非常先进和有趣。 希望您喜欢。
  • java工作流详解

    千次阅读 2020-08-04 18:21:41
    什么是工作流工作流:两个或两个以上的人,为了共同的目标,连续的以串行或并行的方式去完成某一业务。 业务:工作流所指业务涵盖了与经营相关的活动。 串行或并行:业务中的步骤也许以一步接着一步的方式进行...

    什么是工作流?

    工作流:两个或两个以上的人,为了共同的目标,连续的以串行或并行的方式去完成某一业务。

    业务:工作流所指业务涵盖了与经营相关的活动。

    串行或并行:业务中的步骤也许以一步接着一步的方式进行,我们称之为串行;或者由不同的人或组合根据不同的情况处理,我们称之为并行。

    两个或两个以上的人:如工作流的名称所表达的含义,一个人处理的业务不称其为工作流,只有任务从一个人"流"向另一个人的时候,才有工作流。

    共同的目标:个体参与工作流必须是为了同一个工作目标。如果个体处于两个相互独立的项目之中,不会产生工作流。

    由于上述定义也许包含了物质生产和产品,所以我们以"业务工作流"来强调所讨论的不仅仅是制造业,而是业务的自动化。

    将工作进程结构化,创建工作流过程如下:

    实现审批节点自定义

    可自定义流程的审批走向以及处理人员,支持在任何节点进行加审核或减审核,

    可以进行流程状态控制发布与停止。

    实现审批关系自定义

    可根据实际业务场景,将相关审批人员设置为审核关系或依次逐个处理。

    实现自动生成流程图

    一旦设置完成后,系统将在当条数据流程图,便于前台用户进行流程跟踪

     

    注意步骤之间的先后次序。

    如部分步骤是基于条件的,那就需要根据条件的不同区分不同的步骤。

    画出流程图,定义各个步骤的职能和参与者。

    创建完成子任务的各个步骤的表格、文件和详细指示。

    如你所见,工作流包括序列化的步骤和进程。任务按实现规定的规则和条件从一个步骤"流"向另一个步骤。

    工作流的问题

    在工作流自动化出现以前,所有的工作流都是通过手工实现的。较典型的是某项任务中的步骤要求参与者批阅文档或表格组成的文件。完成批阅及填写完表格中的相关内容后,文件被人工地传到下一步的执行者。需要对进程的参与者进行关于进程路由的培训,否则文件就会留在文件夹里得不到处理。对任务执行情况的监控必须四处打听究竟完成到了哪一步。没有简单的方法去了解任务是否拖延或文件是否丢失,也无法了解这种流程的成本到底是多少。手工工作流的处理方法存在如下的问题:

    高度依赖纸张

    劳动强度大

    流程不严密,任务执行不易贯彻

    无法对流程的过程进行监控

    无法度量进程时间和统计进程的成本

    工作流基本概念: 工作流的图形化

    工作流产品提供一种图形化的方法来描述和实现工作流进程。进程的每个步骤以一个图形化的图标来表示。通过对这些图标的连接,设计者就能够描述步骤之间的关系及路由。对每个步骤而言,设计者能够指定该步骤用户参与进程的界面和所需完成的任务所需的电子表格。

     

     

    工作流解决方案与传统管理软件的关系

    传统的管理软件注重解决企业应用层现存的问题(例如提高企业的资源配置率或提高单一员工的生产效率)。例如:EXCEL可以提高员工画表格的效率、财务软件可以规范财务人员的工作并提高帐目查询的效率、CRM可以规范客户管理从而使客户资源掌握在公司手中而不是被一部分业务人员把持并提高客户响应时间、ERP解决的是如何配置企业资源:使企业的人力资源、财力资源和物资资源能够根据业务的需求实现最大化配置。一个好的传统软件如果希望能自动化地在整个企业中应用起来,必须有一个强大的逻辑层,用以解决信息传递的逻辑判断和自动流转,这个时候就需要workflow的平台。

    workflow关注的是如何缩短流程闲置时间,从而提高企业的业务处理能力并使企业能够关注于真正对企业有意义的增值业务上。从建立企业神经系统的角度也许更能理解两者的区别。

    JNPF工作流程监控优势

    流程监控使用与查看所有人申请表以及审批的流程进度跟踪,显示当前流程状态,可以对正在审批、审批通过、审批驳回等状态进行查看详细信息,可以操作终止当条流程功能操作;当在流程监控里面可以查看到整个公司日常申请单。

     

    所以说:

    1、workflow和传统管理软件不是同一种软件,不具可比性;

    2、workflow对于已经有传统管理软件的企业的作用非常明显,可以籍此平台整合企业的各种应用系统,使之成为一个完整的企业级应用,也就是通常所说的EAI。

    3、具备workflow功能的管理软件(workflow与传统管理软件的结合)对于传统管理软件有绝对的优势;

    4、workflow可以根据企业的需要开发解决信息传递问题的流程以及帮助企业开发与现有应用系统的接口

    工作流自动化的意义

    减少滞后时间

    很多业务进程遵循90/10规则:典型的业务进程有90%的时间是"滞后"的。时间都被消耗在了任务的闲置、排队等待、发送过程及状况追踪上了。这些时间都被白白浪费掉了,对业务而言是无价值的。只有10%左右的时间被用于"进程处理"。生产力控制软件有助于降低进程处理的时间。然而,即使进程处理时间降低了50%,对整个进程时间的影响也只有5%。工作流自动化瞄准的是滞后时间。如果滞后时间减少50%,整个进程时间就能减少45%。这就是工作流自动化为什么是互联网络时代提高企业工作效率的关键。

    提高生产率——可通过下述方式提高生产率

    通过集中处理任务(客户端)减少任务时间;

    减少纸张工作和纸张的传递;

    加速信息流并通过连接数据库电子表单的方式减少出错;

    根据业务逻辑关系自动计算和传递数据给需要数据的人;

    追踪并组织所有的任务及所有参与工作流进程的个体,如任务处理延迟,则会自动发出提醒;

    报告和文档自动更新;

    减少对文书人员的依赖并最大限度地释放现有资源;

    重点处理增值业务--增值业务是现代组织的心脏。所有企业应当重点处理的是那些和企业方向相关的业务,以及如何优化这些流程使之具备竞争优势。

    追踪业务进程

    通过工作流自动化的软件,可以实现以图形化的方式对业务进程追踪,而不再需要通过电话、贴标签或其它的手工方式来确定例如采购订单、索引需求等等流程到底进行到了哪一步。

    监测效率

    如果无法对重要的工作流程进行监测,就无从谈及控制和提升。有些工作流自动化系统提供每一个流程的统计信息,包括了每一个步骤的时间和成本。通过这一功能,就有可能非常方便地实现流程的最优效果。

    减少纸张消耗

    很多公司每年花费在打印报表和复印上的办公纸张消耗费用动则数万元。而通过工作流自动化的改造能向"无纸办公"时代迈出坚实的一大步。而使原有表单的电子化,企业又可以节约很大一部分打印和存储的费用。北美的Winbond Electronics Corporation通过应用工作流自动化平台,短短四个月减少了70%的纸张消耗,大大节约了开销。

    展开全文
  • 疯狂Workflow讲义——基于Activiti的工作流应用开发书本完整代码,源码,缺点是没有pdf书。
  • activiti5工作流demo

    千次下载 热门讨论 2013-08-26 11:51:49
    咖啡兔的请假工作流实例,activiti5引擎,适合工作流初学者,非maven配置的
  • Activiti5.8+SpringMVC整合工作流案例

    热门讨论 2013-11-18 18:41:44
    一个在ERP项目中用到的工作流案例,拿来共享下,用的为Activiti5.8
  • Camunda工作流引擎一

    千次阅读 多人点赞 2020-07-07 22:38:03
    基于SpringBoot 应用 的 Camunda 工作流引擎 教程

    实习工作中需要用到工作流引擎,去实现业务审批流的功能模块,由于 Flowable 不支持 MariaDB (重要原因之一),所以项目中选择了 Camunda 工作流引擎。

    由于没有接触过工作流引擎,所以打算借此机会详细记录一下这个从 0 到 1 到学习过程。

    《Camunda工作流引擎一》
    《Camunda工作流引擎二》
    《Camunda工作流引擎三》

    本篇直接从应用开始,通过切实的使用感受来达到由浅入深的效果。

    Camunda 官网文档: https://docs.camunda.org/get-started/spring-boot/project-setup/

    网上关于 Camunda 的中文学习资料少之又少,但是可以先学习 Activiti(教程比较多),曲线学习 Camunda。

    关于工作流的一些概念和术语就不再本篇的范围了(网上很多)。

    启动 Camunda

    创建一个 SpringBoot 项目除了要用到的 ORM框架、数据库驱动等等,还要导入 Camunda 相关依赖:

    <!-- https://mvnrepository.com/artifact/org.camunda.bpm.springboot/camunda-bpm-spring-boot-starter-webapp -->
    <dependency>
        <groupId>org.camunda.bpm.springboot</groupId>
        <artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
        <version>3.4.4</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.camunda.bpm.springboot/camunda-bpm-spring-boot-starter-rest -->
    <dependency>
        <groupId>org.camunda.bpm.springboot</groupId>
        <artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
        <version>3.4.4</version>
    </dependency>
    

    application.yml 部分配置:

    spring:
      application:
        name: camunda-demo
      jackson:
        #设置返回前端的参数为驼峰的转换形式
        property-naming-strategy: SNAKE_CASE
        #日期格式化
        date-format: yyyy-MM-dd HH:mm:ss
        time-zone: GMT+8
     #数据源配置
      datasource:
        url: jdbc:mysql://127.0.0.1:3306/camunda?serverTimezone=Asia/Shanghai
        driver-class-name: com.mysql.cj.jdbc.Driver
        username: root
        password: 1234
    
    mybatis:
      configuration:
        map-underscore-to-camel-case: true
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    
    camunda:
      bpm:
        #配置账户密码来访问Camunda自带的管理界面
        admin-user:
          id: admin
          password: admin
          first-name: admin
        filter:
          create: All tasks
        #指定数据库类型
    #    database:
    #      type: mysql
        #禁止自动部署resources下面的bpmn文件
        auto-deployment-enabled: false
        #禁止index跳转到Camunda自带的管理界面,默认true
    #    webapp:
    #      index-redirect-enabled: false
    

    启动应用,访问 http://localhost:8080 (或者其他端口) 就可以看到管理界面,使用配置的账户密码登录:

    在这里插入图片描述

    到这里就算是踏出了重要的第一步!

    相关表结构介绍

    在成功启动 Camunda 之后,可以到数据库中看到其自动创建的 47 张表,之后每条流程实例的相关信息就会存放到这些表中!

    在这里插入图片描述

    act_ge_bytearray 资源(二进制数据)表

    列名类型长度小数点不是null主键注释
    id_varchar6400TRUE资源ID
    rev_int4320-1版本
    name_varchar2550-1资源名称
    deployment_id_varchar640-1部署ID
    bytes_bytea00-1文件内容
    generated_bool00-1
    tenant_id_varchar640-1租户ID
    type_int4320-1文件类型
    create_time_timestamp60-1创建时间
    root_proc_inst_id_varchar640-1根流程实例ID
    removal_time_timestamp60-1调动时间

    act_re_deployment 流程部署表

    列名类型长度小数点不是null主键注释
    id_varchar6400TRUE部署ID
    name_varchar2550-1部署名称
    deploy_time_timestamp60-1部署时间
    source_varchar2550-1资源
    tenant_id_varchar640-1租户ID

    act_re_procdef 流程定义表

    列名类型长度小数点不是null主键注释
    id_varchar6400TRUE流程定义ID
    rev_int4320-1流程定义版本(同一个流程同一个标识)
    category_varchar2550-1流程定义分类
    name_varchar2550-1流程定义名称
    key_varchar25500流程定义KEY
    version_int43200流程定义版本(同一个流程不同的版本)
    deployment_id_varchar640-1流程部署ID
    resource_name_varchar40000-1资源名称
    dgrm_resource_name_varchar40000-1流程图资源名称
    has_start_form_key_bool00-1是否包含启动表单KEY(t:true;f:false)
    suspension_state_int4320-1流程定义状态(激活:1/挂起:2)
    tenant_id_varchar640-1租户ID
    version_tag_varchar640-1版本标签
    history_ttl_int4320-1
    startable_bool000

    act_ru_execution 运行时流程实例(执行流)表

    类型长度小数点不是null注释
    id_varchar6400TRUE执行流ID
    rev_int4320-1版本
    root_proc_inst_id_varchar640-1根流程实例ID
    proc_inst_id_varchar640-1流程实例ID
    business_key_varchar2550-1业务KEY
    parent_id_varchar640-1父ID
    proc_def_id_varchar640-1流程定义ID
    super_exec_varchar640-1
    super_case_exec_varchar640-1
    case_inst_id_varchar640-1
    act_id_varchar2550-1节点定义ID
    act_inst_id_varchar640-1节点实例ID
    is_active_bool00-1是否可执行状态
    is_concurrent_bool00-1
    is_scope_bool00-1
    is_event_scope_bool00-1
    suspension_state_int4320-1实例状态(激活:1;挂起:2)
    cached_ent_state_int4320-1
    sequence_counter_int8640-1顺序计数器
    tenant_id_varchar640-1租户ID

    act_ru_identitylink 流程与身份关系表(执行流)

    运行时流程人员表,主要存储任务节点和参与者的相关信息。还有与其相对的 act_hi_identitylink 历史流程人员表。

    类型长度小数点不是null注释
    id_varchar6400TRUE任务参与ID
    rev_int4320-1版本
    group_id_varchar2550-1角色/组ID
    type_varchar2550-1类型(候选人:candidate;代理人:delegation)
    user_id_varchar2550-1用户ID
    task_id_varchar640-1任务ID
    proc_def_id_varchar640-1流程定义ID
    tenant_id_varchar640-1租户ID

    act_ru_task 运行时流程任务(节点)表(执行流)

    类型长度小数点不是null注释
    id_varchar6400TRUE执行任务ID
    rev_int4320-1版本
    execution_id_varchar640-1执行ID
    proc_inst_id_varchar640-1流程实例ID
    proc_def_id_varchar640-1流程定义ID
    case_execution_id_varchar640-1
    case_inst_id_varchar640-1
    case_def_id_varchar640-1
    name_varchar2550-1执行任务名称
    parent_task_id_varchar640-1父级任务ID
    description_varchar40000-1任务描述
    task_def_key_varchar2550-1任务定义KEY
    owner_varchar2550-1
    assignee_varchar2550-1签收人ID
    delegation_varchar640-1委托人ID
    priority_int4320-1优先权
    create_time_timestamp60-1创建时间
    due_date_timestamp60-1到期时间
    follow_up_date_timestamp60-1跟催时间
    suspension_state_int4320-1流程状态(激活:1;挂起:2)
    tenant_id_varchar640-1租户ID

    act_ru_variable 运行时流程参数(变量)表(执行流)

    还有与其相对的 act_hi_varinst 历史变量表。

    类型长度小数点不是null注释
    id_varchar6400TRUE运行变量ID
    rev_int4320-1版本
    type_varchar25500变量类型
    name_varchar25500变量名称
    execution_id_varchar640-1执行流ID
    proc_inst_id_varchar640-1流程实例ID
    case_execution_id_varchar640-1
    case_inst_id_varchar640-1
    task_id_varchar640-1任务ID
    bytearray_id_varchar640-1
    double_float8530-1
    long_int8640-1
    text_varchar40000-1
    text2_varchar40000-1
    var_scope_varchar640-1
    sequence_counter_int8640-1顺序计数器
    is_concurrent_local_bool00-1
    tenant_id_varchar640-1租户ID

    act_hi_procinst 流程实例(历史)表

    类型长度小数点不是null注释
    id_varchar6400TRUE历史流程实例ID
    proc_inst_id_varchar6400流程实例ID
    business_key_varchar2550-1业务KEY
    proc_def_key_varchar2550-1流程定义KEY
    proc_def_id_varchar6400流程定义ID
    start_time_timestamp600开始时间
    end_time_timestamp60-1结束时间
    removal_time_timestamp60-1移除时间
    duration_int8640-1持续时间
    start_user_id_varchar2550-1发起人
    start_act_id_varchar2550-1发起节点ID
    end_act_id_varchar2550-1结束节点ID
    super_process_instance_id_varchar640-1顶级流程实例ID
    root_proc_inst_id_varchar640-1根流程实例ID
    super_case_instance_id_varchar640-1
    case_inst_id_varchar640-1
    delete_reason_varchar40000-1删除原因
    tenant_id_varchar640-1租户ID
    state_varchar2550-1状态

    act_hi_detail 流程明细(历史)表

    类型长度小数点不是null注释
    id_varchar6400TRUE历史流程明细ID
    type_varchar25500类型
    proc_def_key_varchar2550-1流程定义KEY
    proc_def_id_varchar640-1流程定义ID
    root_proc_inst_id_varchar640-1根流程实例ID
    proc_inst_id_varchar640-1流程实例ID
    execution_id_varchar640-1执行流ID
    case_def_key_varchar2550-1
    case_def_id_varchar640-1
    case_inst_id_varchar640-1
    case_execution_id_varchar640-1
    task_id_varchar640-1任务ID
    act_inst_id_varchar640-1节点实例ID
    var_inst_id_varchar640-1参数实例ID
    name_varchar25500参数名称
    var_type_varchar640-1参数类型
    rev_int4320-1版本
    time_timestamp600时间
    bytearray_id_varchar640-1流数组ID
    double_float8530-1
    long_int8640-1
    text_varchar40000-1
    text2_varchar40000-1
    sequence_counter_int8640-1顺序计数器
    tenant_id_varchar640-1租户ID
    operation_id_varchar640-1操作ID
    removal_time_timestamp60-1移除时间

    act_hi_taskinst 历史任务实例表

    类型长度小数点不是null注释
    id_varchar6400TRUE历史任务实例表ID
    task_def_key_varchar2550-1任务定义KEY
    proc_def_key_varchar2550-1流程定义KEY
    proc_def_id_varchar640-1流程定义ID
    root_proc_inst_id_varchar640-1根流程实例ID
    proc_inst_id_varchar640-1流程实例ID
    execution_id_varchar640-1执行流ID
    case_def_key_varchar2550-1
    case_def_id_varchar640-1
    case_inst_id_varchar640-1
    case_execution_id_varchar640-1
    act_inst_id_varchar640-1节点实例ID
    name_varchar2550-1任务名称
    parent_task_id_varchar640-1父任务ID
    description_varchar40000-1描述
    owner_varchar2550-1
    assignee_varchar2550-1代理人
    start_time_timestamp600开始时间
    end_time_timestamp60-1结束时间
    duration_int8640-1持续时间
    delete_reason_varchar40000-1删除原因
    priority_int4320-1优先权
    due_date_timestamp60-1到期时间
    follow_up_date_timestamp60-1跟催日期
    tenant_id_varchar640-1租户ID
    removal_time_timestamp60-1移除时间

    act_hi_actinst 历史节点(行为)表

    类型长度小数点不是null注释
    id_varchar6400TRUE历史流程节点实例ID
    parent_act_inst_id_varchar640-1父流程节点实例ID
    proc_def_key_varchar2550-1流程定义KEY
    proc_def_id_varchar6400流程定义ID
    root_proc_inst_id_varchar640-1根流程实例ID
    proc_inst_id_varchar6400流程实例ID
    execution_id_varchar6400执行流ID
    act_id_varchar25500节点ID
    task_id_varchar640-1任务ID
    call_proc_inst_id_varchar640-1
    call_case_inst_id_varchar640-1
    act_name_varchar2550-1节点名称
    act_type_varchar2550-1节点类型
    assignee_varchar640-1代理人ID
    start_time_timestamp600开始时间
    end_time_timestamp60-1结束时间
    duration_int8640-1持续时间
    act_inst_state_int4320-1节点实例状态
    sequence_counter_int8640-1顺序计数器
    tenant_id_varchar640-1租户ID
    removal_time_timestamp60-1去除时间

    act_hi_attachment 历史附件表

    类型长度小数点不是null注释
    id_varchar6400TRUE附件ID
    rev_int4320-1版本
    user_id_varchar2550-1用户ID
    name_varchar2550-1附件名称
    description_varchar40000-1附件描述
    type_varchar2550-1附件类型
    task_id_varchar640-1任务ID
    root_proc_inst_id_varchar640-1根流程实例ID
    proc_inst_id_varchar640-1流程实例ID
    url_varchar40000-1附件路径
    content_id_varchar640-1附件内容ID
    tenant_id_varchar640-1租户ID
    create_time_timestamp60-1创建时间
    removal_time_timestamp60-1移除时间

    act_hi_comment 历史意见表

    类型长度小数点不是null注释
    id_varchar6400TRUE评论表ID
    type_varchar2550-1数据类型(任务事件记录:event;任务评论:comment)
    time_timestamp600数据产生时间
    user_id_varchar2550-1产生此数据用户ID
    task_id_varchar640-1任务ID
    root_proc_inst_id_varchar640-1根流程实例ID
    proc_inst_id_varchar640-1流程实例ID
    action_varchar2550-1该数据的操作标识
    message_varchar40000-1该评论(或者事件记录)数据的信息(文本)
    full_msg_bytea00-1该评论(或者事件记录)数据的信息(流)
    tenant_id_varchar640-1租户ID
    removal_time_timestamp60-1移除时间

    除此了上述重要的表结构以外,还有很多表 act_ge_property 属性数据表存储整个流程引擎级别的数据、 act_hi_detail 历史详情表提供历史变量查询、 act_id_group 用户组信息表、 act_id_user 用户信息表、 act_id_membership 用户与用户组对应信息表、 act_ru_job 运行时定时任务数据表 等等。。。碍于篇幅就先只赘述这些开发中较为常用的表,其他的数据表用到时再去看表定义即可。

    本篇重要的是成功启动应用,并对 Camunda 相关表有一个初步的印象,之后用到时不至于无从下手。

    下一篇会学习到,在本应用的基础上开发一个最基本 ”流程Demo“ 的过程!

    点赞+关注!评论送个人收集的Camunda学习资料+视频!


    菜鸟本菜,不吝赐教,感激不尽!

    更多题解源码和学习笔记:githubCSDNM1ng

    展开全文
  • 工作流流程实例迁移

    千次阅读 2020-02-02 20:09:35
    本文重点讲解Flowable的这些APi使用,以及对比Camunda工作流引擎流程实例迁移功能。 流程迁移API说明 流程迁移API服务类可以通过流程引擎类进行获取,如下所示: processMigrationService = processEngine....
  • 工作流(Workflow) -- 工作流简介

    万次阅读 多人点赞 2018-09-08 21:05:00
    ## 工作流引擎 ProcessEngine对象 这是Activiti工作的核心。负责生成流程运行时的各种实例及数据、监控和管理流程的运行。 工作流的API所有的调用都要用到工作流引擎。 数据库 Activiti的后台是有数据库的支持,...
  • activiti工作流简介

    万次阅读 2019-02-01 12:45:50
    工作流简介 工作流定义 工作流:  就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的...
  • 工作流设计详解

    千次阅读 2019-05-21 11:20:12
    工作流 概念: workflow流程性通知和审批控制,业务流程中、发送、提供附加信息或进行附加业务处理,两个或两个以上的人为共同目标,连续以并行或串行的方式完成某一业务。 工作流 设计: 按照业务规划流程图,...
  • 工作流模型分析

    千次阅读 2018-06-12 16:17:43
    本文档主要介绍几种常见工作流模型,以及流程嵌套和整合任务与活动活动(Activity)是WMFC 的标准模型元素,描述的是工作流中的一个逻辑步骤——“A description of a piece of work that forms one logical step ...
  • Activiti7工作流引擎介绍

    万次阅读 2019-02-19 19:27:31
    第1章 什么是工作流 1.1 工作流介绍 工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者 之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期...
  • 俯瞰开源工作流引擎Activiti

    万次阅读 多人点赞 2018-08-27 19:22:55
    Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM...
  • KNIME工作流的建立实验

    千次阅读 多人点赞 2021-03-10 07:48:53
    1. 实验相关知识 ...由菜单栏、快捷工具栏、KNIME Explorer(项目资源管理器)、Workflow Coach(社区推荐的工作流节点)、Node Repository(节点存储仓库)、Workflow Editor(工作流编辑区)、Node Descri
  • Activiti工作流

    千次阅读 2018-12-18 02:02:49
    Activiti工作流 一、Activiti介绍 1、Activiti 的概述 ​ 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或...
  • 力软敏捷开发框架工作流实现技术

    千次阅读 2019-05-28 10:16:49
    工作流管理联盟(WFMC)提出了一个工作流参考模型,约定了工作流系统的体系结构、应用接口及特性,主要目的是为了实现工作流技术的标准化和开放性。下面简要介绍系统中的各个部分,并对参考模型中的五类接口进行描述...
  • 手把手教你如何玩转自定义工作流(一)

    千次阅读 多人点赞 2019-04-26 21:33:24
    我:我就想多睡会,996的工作很累的(最近这个好像很火~!),让我多休息会把。 小白:不行,不行,你都多久没更新文章了,你的心不痛么? 我:好像是的,最近太忙,没有时间来写了。 我:怎么了?小白,你是无事不...
  • flowable工作流所有业务概念

    万次阅读 多人点赞 2021-09-27 09:58:47
    1.什么是工作流审批 根据本人的理解,就是审批流程管理。 2.什么是flowable 1.官方解释 官方解释如下: Flowable 项目提供了一套核心的开源业务流程引擎,这些引擎紧凑且高效。它们为开发人员、系统管理员和业务...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,259,364
精华内容 503,745
关键字:

工作流