流程管理_流程管理软件 - CSDN
精华内容
参与话题
  • 5个步骤实现流程管理

    2020-08-25 18:12:47
    企业管理流程是企业内部控制解决方案研究和设计的基础,实现企业高效流程管理,对于企业良性发展具有重要战略意义。 实现流程管理,是摆在企业面前的一个刻不容缓、亟需解决的问题,也是企业彻底改善以往传统管理...

    老生常谈流程管理。企业管理流程是企业内部控制解决方案研究和设计的基础,实现企业高效流程管理,对于企业良性发展具有重要战略意义。

     

    实现流程管理,是摆在企业面前的一个刻不容缓、亟需解决的问题,也是企业彻底改善以往传统管理模式,使企业内部管控跃上新台阶的必经之路。

     

    作为管理系统的重要组成部分,目前的内部管控系统,更多的是与层级制的分权组织相适应,而较少有适应扁平化组织流程导向的内部控制系统的成熟模式。企业要实现流程化管理,需要完成以下5个步骤:

     

    1. 信息收集

    只有收集到准确和详细的信息,流程优化和设计的实施者才能够充分认识企业原有流程,了解原有流程的现状,发现原有流程中存在的问题,从而为今后工作的展开奠定良好的基础。所以,企业在识别原有流程时,首先要收集大量的关于原有流程的信息。

    其实很多流程管理系统(软件)都会有“展示页面”这一项,就是为了方便收集信息用的。它可以将以往的原有流程信息都展示出来。

     

    2. 识别、描述、设计

    企业在进行流程改进与设计前首先要识别企业中现有的流程,并且以一定的方式显性化,以发现流程中存在的问题,进而设计新的流程或改进原有流程,以达到大幅度提高企业效率的目的。

     

    3. 关键流程的选择

    通常情况下,一个企业内的流程有成百上千,这些流程大致可分为两种类型:一类是围绕职能线形组织运转的子流程,从单个部门内进行投入,并在这个部门形成产出;一类是跨职能流程,这类流程横跨多个职能部门,没有一个人对整个流程负全责。我们所要选择的关键流程应当是第二类跨职能流程。

     

    4. 选择需改进的关键流程

    每家企业都有很多关键流程,但并不是所有关键流程都存在问题,企业应当优先选择存在重大问题的关键流程进行改进。毕竟,企业的资源是有限的,我们应该有效利用资源。

     

    5. 确定改进关键点

    确定了需要改进的关键流程后,就需要对这些流程进行诊断。每个流程都是由一系列活动环节组成的,但并不是每一个环节都需要改进。因此,需要找出这些流程中导致绩效低下的关键点,然后分析造成问题的原因,从而开始流程的再设计。

    流程管理不是一个简单的流程图,或者是一个标准操作程序,就可以解决或处理的问题,而是必须通过公司决策机构、职能管理层及执行层不断摸索、不断提炼来得出的,是带有公司个性化的管理思路。当今市场上也有不少雀书、BPM’online等流程管理的软件平台,可以协助企业流程管理优化。但是具体的合适与否,还是需要管理者、使用者亲自试一试才有发言权。

    展开全文
  • 什么是业务流程管理BPM

    千次阅读 2011-09-05 22:03:15
    什么是业务流程管理 Business Process Management(BPM),即业务流程管理,是一套达成企业各种业务环节整合的全面管理模式,从流程管理作为切入点去改善企业的管理。BPM是指能够根据业务环境的变化,推进人与人之间...
    什么是业务流程管理
    Business Process Management(BPM),即业务流程管理,是一套达成企业各种业务环节整合的全面管理模式,从流程管理作为切入点去改善企业的管理。BPM是指能够根据业务环境的变化,推进人与人之间、人与系统之间以及系统与系统之间的整合及调整的经营方法与解决方案的IT工具。 通常以Internet方式实现信息传递、数据同步、业务监控和企业业务流程的持续升级优化,从而实现跨应用、跨部门、跨合作伙伴与客户的企业运作。显而易见,BPM不但涵盖了传统“工作流”的流程传递、流程监控的范畴,而且突破了传统“工作流”技术的瓶颈。通过对企业内部及外部的业务流程的整个生命周期进行建模、自动化、管理监控和优化, 使企业成本降低,利润得以大幅提升。BPM的推出,是企业管理理念的一次划时代飞跃。

    业务流程管理(BPM)从企业业务流程的整体高度定义、支持和管理企业信息交换,包括对员工、客户、合作伙伴、应用系统和数据库等的管理。BPM系统为管理人员提供监控能力,以便更好地了解和改进流程和业务绩效。需要注意的是,虽然业务绩效管理和业务流程管理对应的英文简称都是BPM,但不要把它们混为一谈。BPM 的快速发展归因于在今天的经济环境下,越来越多的企业认识到提高企业业务流程的效率和效益的重要性。BPM旨在通过优化流程来提升组织生产力和反馈效率,减少成本,并缩短循环时间。总而言之,一个高质量的BPM系统是企业赢利的关键,它可广泛地应用于不同的行业,如金融,电信,电力,制造业, 政府, 教育机构等。






    业务流程管理(BPM)业务动因和优势

    • 简化工作流程。
    • 政策组合自动化。
    • 改进对进行中的工作(WIP)的管理。
    • 提高流程效率。
    • 集中管理工作流任务。
    • 减少失误循环。

    • 提供实时流程状态反馈。



    业务流程管理(BPM)的风险

    • 业务流程管理(BPM)的最大挑战在于企业在实施按流程管理的新策略时所必须进行的企业文化调整。这也是企业须仔细斟酌和设计内部角色、结构和职责的主要原因,以便能够突出业务流程管理(BPM)的优势并将其最大化。
    • 确保您的业务流程管理(BPM)软件供应商能够清晰地解释流程设计中的利弊。
    • 企业不要忽略从项目开始就参与系统设计。从一开始参与项目,可使您有机会参与审核应用系统和用户界面,并从中获益。

    • 实施完毕并不意味业务流程管理(BPM)的终止。企业用户必须持续地管理和监控流程的执行。



    原文地址:http://luntan.erp100.com/thread-102429-1-1.html


    展开全文
  • 流程管理思想的发展: 第一阶段:科学管理和流程管理思想萌芽。 泰勒科学管理和福特流水线生产(解决企业内较低层次的车间操作流程问题),主要方法包括标准化生产/操作流程、减少产品类型用较少的流程实现大...

    流程定义:

       一组活动按照一定顺序组成的序列流,其顺序可以是串行、并行或者两者的任意组合模式。具备输入、活动、活动间相互作用、输出、流程的服务对象和价值六个要素。

    流程管理思想的发展:

       第一阶段:科学管理和流程管理思想萌芽。

        泰勒科学管理和福特流水线生产(解决企业内较低层次的车间操作流程问题),主要方法包括标准化生产/操作流程、减少产品类型用较少的流程实现大规模生产、零件标准化、流程专业化分工

       第二阶段:信息技术驱动的流程自动化

       哈默和钱皮提出BPR(business Process Reengineering)。业务流程强调顾客,强调从顾客的需求出发到满足顾客需求的端到端的整个过程。特定领域出现了业务流程参考模型,如供应链的SCOR模型。
        BPR过于激进====》BPI(business process improvement,业务流程改进)

      第三阶段:业务流程再造

      哈默和钱皮提出BPR(business Process Reengineering)。业务流程强调顾客,强调从顾客的需求出发到满足顾客需求的端到端的整个过程。特定领域出现了业务流程参考模型,如供应链的SCOR模型。
       BPR过于激进,出现了BPI(business process improvement,业务流程改进)

     第四阶段:业务流程为主导的管理思想

      业务流程比IT更重要,业务流程能够适应高速变化的环境,具有高柔性。BPM涵盖企业运营各个方面。其目标是企业应以流程话的思考方向,串联原本各自独立而未协调的经营活动,使串联后的经营活动成为具有增值的企业运营流程,并辅以IT技术手段使其落地运行。

    第五阶段:BPM管理思想与BPM治理思想的结合

    BPM治理的核心思想是“以治理为出发点,按照治理的理念去规划和实施BPM”,强调企业战略与BPM的结合。

    流程技术历史

    流程技术路线图

    工作流技术阶段:

    BPM技术阶段:

    BPMS(业务流程管理系统/套件):以业务流程为中心,全面串联企业的经营活动。出现web服务、SOA以及ESB(企业服务总线)等。

    BPM治理阶段:

    本质还是围绕BPM,为了提高BPM实施的成功率和投资回报率引入新的管理思想和技术。

    流程的分类研究

    安东尼模型:

    1、战略规划层:为最高管理层,负责企业整体战略目标的制定,绘制企业战略地图,为战略目标的实现进行一系列的规划和预算制定。业务流程治理所关注的工作。

    2、战术决策层:为中间管理层,为实现企业目标或者战略规划层所制定的战略目标,制定一系列技术、方法、手段的过程。BPM所关注的内容。

    3、业务处理层:具体执行层,WFM(工作流管理)的内容

    APQC企业流程分类:

    提出了跨行业、电力行业、消费品行业等十几个行业流程分类框架。流程分类框架目的在于:帮助人们从流程的角度理解企业运营、帮助人们梳理、管理和优化企业流程、在不同业务单元和部门间建立起共同的流程语言。

    两大类,十二个流程组。

    运营流程:愿景与战略的制定、产品和服务的设计和开发、产品和服务的市场营销和销售、产品和服务的交付、客户服务管理

    管理和支持流程:人力资源开发与管理、信息技术管理、财务管理、资产的获取建设与管理、企业风险合规和应变能力管理、外部关系管理、业务能力开发与管理。

    《流程管理》第三版企业流程分类

    流程在企业内的作用及成熟度

    流程支撑企业和组织的战略落地

    流程打通企业和组织的经脉


    流程保障企业和组织的敏捷性

    流程在企业内的成熟度

     

    流程、流程管理和流程技术的关系

    流程是企业和组织被管理和支撑的对象,承载着企业和组织的运营

    流程管理是管理领域的方法论,用这些方法来管理企业和组织内的流程

    流程技术则是对流程管理方法论的支撑和实现,将流程管理方法论实现为软件系统、软件工具

    展开全文
  • 业务流程管理

    2020-06-15 23:30:07
    信息化对产业的影响:信息技术改造和提升传统产业的结构和素质,包括经济结构、产业结构、产品结构。文档对BPM现状及发展趋势进行了讲解。
  • 流程管理

    2020-04-08 11:31:05
    文章目录基本概念什么是工作流什么是Activiti典型特点核心概念核心服务业界参考绘制流程流程图例流程定义任务图例事件图例网关图例结构图例注释图例连线图例图例属性公共属性流程定义开始事件(无)人工任务服务任务/...

    文章目录

    文章目录

    基本概念

    什么是工作流

    • 工作流:业务过程的部分或整体在计算机应用环境下的自动化
    • 工作流管理系统:工作流的定义和管理,按照在系统中预定义好的工作流规则进行工作流实例的执行。
    • 工作流管理系统的目标:管理工作流程以确保工作在正确的时间被期望的人员执行,在自动化进行的业务过程中插入人工的执行和干预。

    什么是Activiti

    Activiti是一个针对企业用户、开发人员、系统管理员的轻量级工作流业务管理平台,其核心是使用Java开发的快速、稳定的BPMN2.0流程引擎。LCP采用的是Activiti 6.0版本

    典型特点

    • 数据持久化,底层使用MyBatis
    • 引擎Service接口
    • 原生支持Spring
    • 流程设计器
    • 分离运行时与历史数据

    核心概念

    英文 中文 描述
    ProcessEngine 流程引擎 是Activiti工作的核心。负责生成流程运行时的各种实例及数据、监控和管理流程的运行。
    ProcessDefinition 流程定义 基于bpmn2.0标准,使用Activiti提供流程建模工具,绘制的工作流程图。包含了流程属性,节点定义和判断分支
    Activity/TaskDefine 活动/任务定义 流程定义中每一个任务节点的定义规范,包含名称,执行方式,表单变量等
    ProcessInstance 流程实例 代表流程定义的执行实例,一个流程实例包括了所有的运行节点,表达了从刚开始到结束的最大流程分支。一个流程定义可以创建多个流程实例
    Execution 流程执行 描述了流程执行的每一个节点。一个流程实例包含一个(串行)或多个(并行)流程执行
    Task 流程任务 流程执行到某任务环节时生成的任务信息,一个流程执行可能生成零个或一个任务
    Variable 流程变量 在流程执行或者任务执行的过程中传递的各类业务参数

    核心服务

    英文 中文 描述
    RepositoryService 仓库服务类 管理流程定义。用于管理流程仓库,例如部署、删除、读取流程资源。仓库是指流程定义文档的两个文件:bpmn文件和流程图片。
    IdentifyService 身份服务类 用户管理和查询用户、组之间的关系
    RuntimeService 流程执行服务类 可以从这个服务类中获取很多关于流程执行相关的信息
    TaskService 任务服务类 可以从这个类中获取任务的信息
    FormService 表单服务类 用于读取流程、任务相关的表单数据
    HistoryService 查询历史信息服务类 在一个流程执行完成后,这个对象为我们提供查询历史信息,例如流程实例、任务、活动、变量、附件。
    ManagementService 引擎管理服务类 和具体业务无关,主要可以查询引擎配置、数据库、作业等

    业界参考

    Activiti v5.21用户手册

    Activiti v5.22数据库结构参考

    绘制流程

    使用Activiti提供的流程建模工具Activiti Modeler,完成流程图的绘制
    在这里插入图片描述

    流程图例

    流程定义

    名称 描述 是否常用
    流程定义 为流程定义提供绘制区域

    任务图例

    名称 描述 是否常用
    人工任务 表示需要人工去执行的任务
    服务任务 不需要任何的人工干涉的自动执行的任务
    接收任务 当任务接收到信号的时开始执行的任务
    手工任务 手动任务定义了 BPM引擎之外的任务。用来对那些需要人来完成的工作进行建模。手工任务就是一个自动执行的任务。且无法使用taskservice查询
    脚本任务 通过指定脚本(script )和脚本格式(scriptFormat)定义一个脚本任务。多用于Java代码无法满足的场景,或者后期系统维护
    邮件任务 系统自动发送邮件的任务
    业务规则任务 调用Drool规则引擎来执行的任务
    Camel任务 调用Camel规则引擎来执行的任务
    Mule任务 调用Mule服务总线来执行的任务

    事件图例

    名称 描述 是否常用
    开始事件(均为捕获事件)
    开始事件(空) 必须要人工去启动一个流程
    开始事件(触发器) 在给定的时间点创建流程实例
    开始事件(信号) 使用具名信号启动流程实例
    开始事件(消息) 使用具名消息启动流程实例
    开始事件(错误) 使用建模业务异常启动流程实例
    边界事件(均为捕获事件,需附属于某个流程元素)
    边界出错事件 捕获子流程中抛出的错误,流程从本事件的外出连线继续执行
    边界定时事件 当流程到达节点时,定时器启动,捕获定时器事件并从本事件的外出连线继续执行
    边界信号事件 全局捕获同名信号,流程从本事件的外出连线继续执行
    边界消息事件 全局捕获同名消息,流程从本事件的外出连线继续执行
    边界取消事件 捕获子流程中的事务取消动作,并等待所有补偿事件完成后,流程从本事件的外出连线继续执行
    边界补偿事件 获取子流程中因取消(或其它原因)触发的补偿事件,流程从本事件的外出连线继续执行
    中间事件(可以单独作为流程元素存在于流程中的事件)
    捕获中间定时器事件 定时器启动,捕获定时器事件并从本事件的外出连线继续执行
    捕获中间信号事件 全局捕获同名信号,流程从本事件的外出连线继续执行
    捕获中间消息事件 全局捕获同名消息,流程从本事件的外出连线继续执行
    抛出中间信号事件 当流程到达该事件时,全局抛出命名信号,其他引用了同名信号的捕获事件将被触发
    抛出无触发的中间事件 当流程到达该事件时,全局抛出无定义的事件。不会触发任何捕获。多用于改变流程状态
    结束事件(均为抛出事件)
    结束事件(空) 到达该节点时流程引擎自动结束该流程实例
    结束事件(出错) 到达该节点时流程引擎自动结束该流程/子流程实例,并抛出出错事件
    结束事件(取消) 到达该节点时流程引擎自动结束该流程/子流程实例,并抛出出错事件
    结束事件(终止) 到达该节点时流程引擎自动结束该流程/子流程实例,并先后抛出取消事件与补偿事件

    网关图例

    名称 描述 是否常用
    单一网关 将所有出口顺序流按照它们定义的顺序进行计算。第一个条件计算为true的顺序流(当没有设置条件时,认为顺序流定义为true)会被选择用于继续流程
    并行网关 用于分支时,为每一个顺序流都创建一个并发分支;用于合并时,等待直到所有进入顺序流的分支都到达以后,流程通过本网关
    包含网关 用于分支时,为每一个条件计算为true的顺序流都创建一个并发分支;用于合并时,等待直到所有进入顺序流的分支都到达以后,流程通过本网关
    事件网关 为网关的每个外出顺序流连接一个中间捕获事件,基于事件判断选择第一个符合的进入后续的顺序流

    结构图例

    名称 描述 是否常用
    子流程 一个包含了节点,网关,事件的流程,同时也是更大流程的一部份
    子流程的事件 子流程所包含的各类事件
    调用活动 在一个流程中调用另一个独立的流程

    注释图例

    名称 描述 是否常用
    泳道
    泳道 用于区分不同业务角色所承担的项目节点任务
    区域 没有表头线的泳道
    文档注释
    文本关联 为界面各元素添加注释

    连线图例

    名称 描述 是否常用
    顺序跳转线 不同活动节点执行的顺序
    注释线 为元素关联文本说明

    图例属性

    公共属性

    名称 描述 是否常用
    ID 主键,全局唯一
    名称 对象名称
    事件监听器 在流程引擎执行的过程中触发某个事件时,事件监听器允许你去执行额外的java代码或者对指定的表达式求值。java代码需实现org.activiti.engine.delegate.event.ActivitiEventListener接口
    执行监听器 在流程实例执行的过程中触发某个事件时,执行监听器允许你去执行额外的java代码或者对指定的表达式求值。java代码需实现org.activiti.engine.delegate.ExecutionListener接口
    任务监听器 在流程任务执行的过程中触发某个事件时,任务监听器允许你去执行额外的java代码或者对指定的表达式求值。java代码需实现org.activiti.engine.delegate.TaskListener接口
    表单URL 当前界面元素所关联的PC端页面地址
    表单属性 为关联页面预定义的表单属性以及对应的值
    异步 在单独的线程/事务去执行
    排它性 确保同一个流程实例的异步任务在同一个独立的线程里执行

    流程定义

    名称 描述 是否常用
    ID 流程Key值
    名称
    流程描述 流程的描述说明
    流程作者 流程的创建者名称
    流程版本字符 流程版本号
    目标命名空间 生成xml描述文件的命名空间
    执行监听器
    事件监听器
    信号定义 定义当前流程的信号类型
    消息定义 定义当前流程的消息类型

    开始事件(无)

    名称 描述 是否常用
    ID
    名称
    执行监听器
    表单URL
    表单属性

    人工任务

    经改造,人工任务默认为多实例模式,以支持各类审批方式。

    名称 描述 是否常用
    ID
    名称
    审批方式 判定节点审批通过或不通过的计算方式
    审批方式变量 审批方式计算的边界值设定
    审批规则 节点办理人的选择规则
    加签 在当前节点临时添加审批人
    转交 将当前任务转移给其它人办理
    拒绝后通知审批人 当流程中途中止时,将相关信息通知已参与流程审批的所有人
    允许撤回 当前节点审批人,可将流程从下一节点回收至本节点
    表单URL
    表单属性
    到期的日期 当前级点的办理有效期
    优先级 节点办理优先级
    任务监听器
    执行监听器

    服务任务/接收任务

    名称 描述
    ID
    名称
    异步
    排它性
    执行监听器
    多实例类型 重复执行当前环节。None:无,
    Parallel:并行执行,Sequential:串行执行
    基数(多实例) 重复执行的次数
    集合(多实例) 循环的目标集合
    元素的变量(多实例) 从循环取值使用的变量名
    完成条件(多实例) 停止循环的条件计算表达式
    作为补偿 配合补偿事件触发时执行的节点
    类名(服务任务) 执行额外的java服务,java代码需实现
    org.activiti.engine.delegate.JavaDelegate
    org.activiti.engine.impl.delegate.ActivityBehavior接口
    表达式(服务任务) 通过UEL方法表达式指定执行额外的java服务,java代码需实现
    com.hand.hap.activiti.custom.IActivitiBean接口
    代理的表达式(服务任务) 使用类表达式指定执行额外的java服务,java代码需实现
    org.activiti.engine.delegate.JavaDelegate接口
    类的字段(服务任务) 实现为代理类的属性注入数据
    变量名结果(服务任务) 将服务执行结果分配给已经存在的或新的流程变量

    网关

    名称 描述 是否常用
    ID
    名称
    异步
    排它性
    流程顺序 判断计算的先后顺序

    结束事件(无)

    名称 描述 是否常用
    ID
    名称
    执行监听器

    顺序跳转线

    名称 描述 标例 是否常用
    ID
    名称
    跳转条件 使用流程变量判断计算表达式 ${isFixation == ‘Y’}
    执行监听器
    默认跳线 默认选择的线路

    执行监听器

    节点每被创建一次生成一个执行监听器。当流程存在并行时,或一个节点存在多实例模式时,将同时生成多个执行监听器

    监听事件

    名称 描述 是否常用
    start 进入节点时触发
    end 离开节点时触发
    take 连接下一个元素时触发

    代码绑定

    名称 描述 示例 是否常用
    类名 执行额外的java服务,java代码需实现org.activiti.engine.delegate.ExecutionListener接口 com.fsl.ams.carrier.workflow.WorkFlowBaseListener
    表达式 通过UEL方法表达式指定执行额外的java服务,java代码需实现com.hand.hap.activiti.custom.IActivitiBean接口,方法将传入org.activiti.engine.delegate.DelegateExecution类型参数 ${repairSubmitListener.submit(execution)}
    代理的表达式 使用类表达式指定执行额外的java服务,java代码需实现org.activiti.engine.delegate.JavaDelegate接口 com.fsl.ams.carrier.workflow.WorkFlowBaseDelegate

    属性注入

    名称 描述 是否常用
    字段名 注备执入注入的字段名称
    字符串的值 静态单行字符串
    字符串 静态多行字符串
    表达式 从流程变量或者通过UEL方法表达式指定执行额外的java服务获取值

    任务监听器

    一个作业任务对应一个任务监听器。

    监听事件

    名称 描述 是否常用
    create 创建任务时触发
    assignment 分配任务时触发
    complete 完成任务时触发
    delete 删除任务时触发

    代码绑定

    名称 描述 示例 是否常用
    类名 执行额外的java服务,java代码需实现org.activiti.engine.delegate.TaskListener接口 com.fsl.ams.carrier.workflow.WorkFlowBaseListener
    表达式 通过UEL方法表达式指定执行额外的java服务,java代码需实现com.hand.hap.activiti.custom.IActivitiBean接口,方法将传入org.activiti.engine.delegate.DelegateTask类型参数 ${repairSubmitListener.submit(task)}
    代理的表达式 使用类表达式指定执行额外的java服务,java代码需实现org.activiti.engine.delegate.JavaDelegate接口 com.fsl.ams.carrier.workflow.WorkFlowBaseDelegate

    属性注入

    名称 描述 是否常用
    字段名 注备执入注入的字段名称
    字符串的值 静态单行字符串
    字符串 静态多行字符串
    表达式 从流程变量或者通过UEL方法表达式指定执行额外的java服务获取值

    表单属性

    为关联页面预定义的表单属性以及对应的值,以表单变量的方式存储。

    名称 描述 是否常用
    Id 表单属性的识别码
    表单名 表单属性的描述
    类型 表单属性的数据类型,目前支持string、long、boolean、date、enum
    表达式 过UEL方法表达式指定执行额外的java服务
    变量 从流程变量中获取值
    日期模式 当选择date类型时,显示的日期格式
    Id(枚举) 当选择enum类型时,逐个设定的枚举项的Id
    名称(枚举) 当选择enum类型时,逐个设定的枚举项的名称
    必需 参数是否不可为空
    可读 参数是否可读
    可写 参数是否可写

    人工任务

    人工任务面板上的各类属性,大部份均以表单属性的方式存储

    |表单变量Id|表单名|类型||
    |:—|:—|:—|
    |approveResult|approveResult|enum|审批按钮|
    |APPROVAL_STRATEGY|参见审批方式|string|审批方式|
    |WFL_NUM|实际值|string|审批方式变量|
    |APPROVAL_CANDIDATE_RULE|参见审批规则|enum|审批规则|
    |ACT_AUTO_CARBON_COPY|Y|string|拒绝后通知审批人|
    |ACT_REVOKE_ENABLE_FLAG|Y|string|允许撤回|
    |APPROVAL_ACTION| |enum|审批动作|
    |枚举Id|枚举表单名|备注||
    |ADD_SIGN_FLAG|Y|加签||
    |DELEGATE_FLAG|Y|转交||

    审批按钮

    隶属于approveResult表单变量的枚举值

    枚举Id 枚举表单名 备注
    APPROVED 同意 默认内置,流程流转到下一节点
    APPROVED 提交 功能和同意一致,可与APPROVED\_TO\_SUBMIT表单变量配合使用
    REJECTED 拒绝 默认内置,流程直接结束
    REJECTED 撤销 功能和拒绝一致,可与REJECTED\_TO\_CANCEL表单变量、hideCancelBtn流程变量配合使用名随意
    REBUT_FIRST 驳回 驳回到第一节点
    REBUT_SELECT 指定驳回 驳回到已审批节点(特定某节点/选择可驳回节点)
    ADD_SIGN 加签 单独配置,将流程转交给指定人审批,通过后再自行审批
    DELEGATE 转交 单独配置,将流程转交给指定人代替本人审批

    审批按钮扩展

    表单变量Id 表单名 类型 备注
    APPROVED_TO_SUBMIT 任意指定 string 和提交按钮一起使用,将审批记录同步调整显示为提交
    REJECTED_TO_CANCEL 任意指定 string 和撤销按钮一起使用,将审批记录同步调整显示为撤销
    REBUT_TO 指定驳回的节点key string 和指定驳回一起使用,直接驳回到设置的节点
    CANNOT_REBUTED 不允许被驳回 string 和指定驳回一起使用,表示该节点不可被选择驳回

    审批方式

    人工任务默认采用多实例的方式实现了会签。多实例变量如下

    变量名 描述
    nrOfApproved 同意的数量
    nrOfRejected 拒绝的数量
    nrOfInstances 总数量
    WFLNUM 通过比例标准

    审批方式如下

    代码 描述 通过条件 备注
    ONE_APPROVAL 任一人同意 ${nrOfApproved>0} 改名
    ONE_APPROVAL_OR_REJECT 任一人同意或者拒绝 ${ nrOfApproved>0
    ALL_APPROVAL 全部同意 ${nrOfRejected>0} 改名
    ALL_APPROVAL_OR_REJECT 全部同意或者拒绝 ${nrOfApproved ==WFL_NUM
    PROPORTION_PERSON 一定比例同意 ${nrOfApproved/nrOfInstances>=WFL_NUM
    PROPORTION_PERSON_A_O_R 一定比例同意或者拒绝 ${nrOfApproved/nrOfInstances>=WFL_NUM
    FEW_PERSON 一定人数同意 ${nrOfApproved >=WFL_NUM
    FEW_PERSON_APPROVAL_OR_REJECT 一定人数同意或者拒绝 ${nrOfApproved >=WFL_NUM
    WFL_CHAIN 外挂审批链 WFL_CHAIN

    在这里插入图片描述

    审批规则

    通用规则

    |代码|描述|表达式|是否传参|参数描述|
    |:—|:—|:—|:—|
    |逐级审批|||||
    |SUBMITTER|申请者自己|initiatorUNIT_CHIEF{initiator}|否|查找申请者工员编码审批| |UNIT\_CHIEF|部门领导|{empService.getDeptDirector(depEmpCode)}|是|传入指定员工编码,按序查找选择"派驻"、“挂职锻炼”、“借调”、“支援"的非主岗。如果以上都不存在,则查找其主岗。之后查找所选岗位对应的部门,如果存在主持人的,由主持人审核,否则由主要负责人审核|
    |PARENT_UNIT_CHIEF|上级部门领导|empService.getParDeptDirector(supEmpCode)""""""""APPOINTED_PART_FIRST{empService.getParDeptDirector(supEmpCode)}|是|传入指定员工编码,按序查找选择"派驻"、"挂职锻炼"、"借调"、"支援"的非主岗。如果以上都不存在,则查找其主岗。之后查找所选岗位对应部门的上级部门,如果存在主持人的,由主持人审核,否则由主要负责人审核| |APPOINTED\_PART\_FIRST|优先指定部门分管领导|{empService.queryPartPerson(empCode)}|是|传入指定员工编码,按序查找选择"派驻”、“挂职锻炼”、“借调”、"支援"的非主岗。如果以上都不存在,则查找其主岗。之后查找所选岗位对应部门,如果存在分管领导的,由分管领导审批,否则查找上级部门。如果存在主持人的,由主持人审核,否则由主要负责人审核|
    |UNIT_CHIEF_DEPT|部门领导|empService.getDirectorByDept(dirDeptCode)PARENT_UNIT_CHIEF_DEPT{empService.getDirectorByDept(dirDeptCode)}|是|传入指定部门编码,如果存在主持人的,由主持人审核,否则由主要负责人审核| |PARENT\_UNIT\_CHIEF\_DEPT|上级部门领导|{empService.getParDirectorByDept(parDirDeptCode)}|是|传入指定部门编码,查找其上级部门,如果存在主持人的,由主持人审核,否则由主要负责人审核|
    |APPOINTED_PART_FIRST_DEPT|优先指定部门分管领导|empService.getPartDirectorByDept(partDirDeptCode)FUNCTION_DEPT{empService.getPartDirectorByDept(partDirDeptCode)}|是|传入指定部门编码,如果存在分管领导的,由分管领导审批,否则查找上级部门。如果存在主持人的,由主持人审核,否则由主要负责人审核| |FUNCTION\_DEPT|职能主担|{empService.queryByFunctionAndOrg(functionAndDeptCode)}|是|传入部门编码与职能编码,查找对应员工审批|
    |指定审批|||||
    |APPOINTED_EMPLOYEE|指定人|employeeCodeAPPOINTED_POSITION{employeeCode}|否|查找事先设定的员工编码,查找对应员工审批| |APPOINTED\_POSITION|指定岗位|{empService.getPositionEmp(positionCode)}|否|查找事先设定的岗位编码,查找对应员工审批|
    |APPOINTED_ROLE|指定角色|empService.getRoleEmp(roleCode)DYNAMIC_EMPLOYEE{empService.getRoleEmp(roleCode)}|否|查事先设定的角色编码,查找对应员工审批| |动态审批||||| |DYNAMIC\_EMPLOYEE|动态多人|{empService.queryPersonEmp(processInstanceId)}|是|传入当前流程实例Id,查找动态设定的员工编码,查找对应员工审批|
    |DYNAMIC_POSITION|动态多岗位|empService.queryPositionEmp(processInstanceId)IdDYNAMIC_ROLE{empService.queryPositionEmp(processInstanceId)}|是|传入当前流程实例Id,查找动态设定的岗位编码,查找对应员工审批| |DYNAMIC\_ROLE|动态多角色|{empService.queryRoleEmp(processInstanceId)}|是|传入当前流程实例Id,查找动态设定的角色编码,查找对应员工审批|

    职能主担

    当多个部门共用同一个工作流的时候,传统的按角色/岗位的审批规则,当前节点的办理人将会收到所有部门的待办任务。默认情况下无法做到按部门区分,本部门的办理人只接收本部门的待办任务。通过引入职能主担的设定,可以应对这样的业务场景,实现更加灵活的待办任务审批机制。

    • 配置数据字典WFL.MAIN_FUNCTION,设定所需的职能主担编码与名称

    在这里插入图片描述

    • 为各级部门配置各职能主担办理人。在审批过程中,当本部门职能主担编码未配置办理人时,系统将会自动向上级部门查找本职能主担的办理人完成办理。如果找至最高级部门后(公司级),仍然无法找到办理人的,流程将会挂起。

    在这里插入图片描述

    • 流程图节点的审批规则配置为职能主担

    在这里插入图片描述

    • 由于当前无法改造流程设计器,请去职能主担配置页,为每个节点设定绑定的职能主担

    在这里插入图片描述

    • 如下一节点(不论是同意还是驳回)是职能主担,需在代码中使用流程变量的方式,触发对应的职能主担规则
    变量名称 类型 变量值结构 描述
    functionAndDeptCode string 当前流程下一节点key#部门code 首先执行流程到下一节点,然后通过节点key找到目标节点,进而找到绑定的职能主担,通过部门code筛选出目标部门职能主担绑定人,作为下一节点的待办人。可以使用delegateTask.getTaskDefinitionKey()方法动态获取流程节点key
    当前流程实例id#部门code 首先执行流程到下一节点,然后通过当前流程实例id找到当前办理节点,进而找到绑定的职能主担,通过部门code筛选出目标部门职能主担绑定人,作为下一节点的待办人
    functionAndDeptCodeFirst string 第一节点key#部门code 流程驳回到第一节点,且第一节点是职能主担的,首先执行流程到第一节点,然后通过节点key找到目标节点,进而找到绑定的职能主担,通过部门code筛选出目标部门职能主担绑定人,作为第一节点的待办人

    执行流程

    创建并启动流程

    通常第一个节点需要作为一个独立的发起申请节点,其具备办理功能,来支持流程可驳回至第一个节点的需求。流程发起后应通过API操作直接到达第二个节点。

    在这里插入图片描述

    示例代码

    @Autowire
    private IExtensionActivitiTransactionalService extensionActivitiTransactionalService;
    
    @Autowire
    private IActivitiService activitiService;
    
    ProcessInstanceCreateRequest instanceCreateRequest = new ProcessInstanceCreateRequest();
    // 设置流程主键(业务主键、业务单号)
    instanceCreateRequest.setBusinessKey(System.currentTimeMillis() + "");
    // 设置流程编码
    instanceCreateRequest.setProcessDefinitionKey("ACTIVITI_TEST");
    
    // 添加流程变量
    RestVariable empCode = new RestVariable();
    empCode.setName("empCode");
    empCode.setValue("014574");
    List<RestVariable> variables = new ArrayList<>(1);
    variables.add(empCode);
    instanceCreateRequest.setVariables(variables);
    
    // 启动流程
    ProcessInstanceResponse processInstanceResponse = activitiService.startProcess(createRequestContext(request), instanceCreateRequest);
    // 完成第一个节点(通常第一个节点作为发起申请节点,流程启动后自动完成)
    extensionActivitiTransactionalService.autoApprovedFirstTask(processInstanceResponse.getId(), null);
    

    业务办理

    PC端

    点击待办进入到业务处理页面。本页使用模板嵌套方案,将流程公共信息,审批信息,审批意件录入,审批按钮等显示在外层页面,使用iframe技术将业务表单嵌套进来显示。

    节点业务表单地址配置的地址不包含系统根路径。

    类型 地址
    系统根路径 https://dingtest.fslgz.com/ams/
    配置路径 repair/ams_own_asset_repair_approve.html
    最终访问路径 https://dingtest.fslgz.com/ams/repair/ams_own_asset_repair_approve.html?node=7&businessKey=ZCW201911150003

    在这里插入图片描述

    移动端

    办理人从钉钉端通过待办列表打开办理页面。与PC端类似,外层模板使用iframe技术,嵌套展示移动端业务页面。移动端业务页面地址需单独配置,否则系统提示“当前界面元系较多,请前往PC端办理”

    属性 说明
    应用Id 钉钉App的Id。如不填,则取本应用的默认钉钉AppId。用于发送钉钉任务通知
    地址 移动端办理页面的地址,路径起始地址不包含系统根路径

    在这里插入图片描述

    审批按钮管理

    隶属于approveResult表单变量的枚举值

    枚举Id 枚举表单名 备注
    APPROVED 同意 默认内置,流程流转到下一节点
    APPROVED 提交 功能和同意一致,可与APPROVED_TO_SUBMIT表单变量配合使用
    REJECTED 拒绝 默认内置,流程直接结束
    REJECTED 撤销 功能和拒绝一致,可与REJECTED_TO_CANCEL表单变量、hideCancelBtn流程变量配合使用名随意
    REBUT_FIRST 驳回 驳回到第一节点
    REBUT_SELECT 指定驳回 驳回到已审批节点(特定某节点/选择可驳回节点)
    ADD_SIGN 加签 单独配置,将流程转交给指定人审批,通过后再自行审批
    DELEGATE 转交 单独配置,将流程转交给指定人代替本人审批

    审批动作管理

    设定了审批历史里的审批动作记录

    编码 名称 备注
    APPROVED 同意 默认内置,流程流转到下一节点
    APPROVED 提交 与同意功能一致
    REBUT_FIRST 驳回 驳回到第一节点
    REBUT_SELECT 指定驳回 驳回到已审批节点(特定某节点/选择可驳回节点)
    ADD_SIGN 加签 单独配置,将流程转交给指定人审批,通过后再自行审批
    DELEGATE 转交 单独配置,将流程转交给指定人代替本人审批
    REJECTED 拒绝 默认内置,直接结束流程
    REJECTED 撤销 申请人取消申请的流程,和拒绝功能一致
    JUMP 跳转 将流程跳转至指定环节
    RECALL 撤回 发起人主动撤回流程
    AUTO_DELEGATE 自动转交 自动将流程转交给指定人处理
    CARBON_COPY 抄送 将处理结果告知指定人

    抄送人管理

    手工选择

    在流程办理过程中手工选择抄送人

    在这里插入图片描述

    预先配置

    在流程定义时,在节点上配置自动抄送人。默认当流程进入某环节前工作流引擎自动发出抄送,如果需要当节点审批通过时抄送,需要在节点上添加表单变量配置:

    表单变量Id 表单名 类型 备注
    CC_AFTER_CREATE N string 默认值为Y任务创建后即发送抄送,N表示节点审批通过时发送抄送

    界面配置

    抄送类型 说明
    指定人 按账户配置抄送人
    指定岗位 按组织中的岗位配置抄送人
    指定角色 按系统中的角色配置抄送人
    指定职能主担 按系统中的职能主担配置抄送人,需要添加流程变量:functionAndDeptCodeCc,用法和审批规则–职能主担一致

    在这里插入图片描述

    办理人管理

    基于审批规则

    基于预设的审批规则自动完成办理人的选择工作

    在这里插入图片描述

    动态设置审批人

    设置变量

    需在流程执行过程中传入流程变量processInstanceId。发起人节点调用autoApprovedFirstTask方法完成首节点自动审批时,已自动进行了processInstanceId变量赋值。参见工作流扩展Service接口。

    RestVariable processInstanceId = new RestVariable();
    processInstanceId.setName("processInstanceId");
    processInstanceId.setValue(Long.valueOf(result.getId()));
    processInstanceId.setType("long");
    restVariables.add(processInstanceId);
    

    新增审批人

    • 请求地址:/lcp/wfl/next/node/person/addOne?_csrf=${_csrf.token}

    • 请求方式:Post

    • 请求格式:application/json

    • 请求参数:
      |字段|说明|
      |:—|:—|
      |wflNextNodePersonId|主键ID|
      |prcId|当前流程实例ID|
      |type|类型,人APPOINTED_EMPLOYEE,角色APPOINTED_ROLE,岗位APPOINTED_POSITION|
      |value|审批人的值,如果存在多个值,以逗号分割,如:“A0001,A0002,A0003”|

    • 请求示例:

    {
      "prcId":"12345",
      "type":"APPOINTED_EMPLOYEE",
      "value":"A0001,A0002,A0003"
    }
    

    修改审批人(覆盖式修改)

    • 请求地址:/lcp/wfl/next/node/person/updateOne?_csrf=${_csrf.token}

    • 请求方式:Post

    • 请求格式:application/json

    • 请求参数:
      |字段|说明|
      |:—|:—|
      |wflNextNodePersonId|主键ID|
      |prcId|当前流程实例ID|
      |type|类型,人APPOINTED_EMPLOYEE,角色APPOINTED_ROLE,岗位APPOINTED_POSITION|
      |value|审批人的值,如果存在多个值,以逗号分割,如:“A0001,A0002,A0003”|

    • 请求示例:

    {
        "wflNextNodePersonId":"123456789",
        "prcId":"12345",
        "type":"APPOINTED_EMPLOYEE",
        "value":"A0001,A0002,A0003"
    }
    

    查询审批人(当前节点)

    • 请求地址:/lcp/wfl/next/node/person/selectByDto?_csrf=${_csrf.token}

    • 请求方式:Post

    • 请求格式:application/json

    • 请求参数:
      |字段|说明|
      |:—|:—|
      |prcId|当前流程实例ID|

    • 请求示例:

    {
        "prcId":"12345"
    }
    

    删除审批人

    • 请求地址:/lcp/wfl/next/node/person/deleteByIds?_csrf=${_csrf.token}

    • 请求方式:Post

    • 请求格式:application/json

    • 请求参数:
      |字段|说明|
      |:—|:—|
      |wflNextNodePersonId|主键ID|

    • 请求示例:

    [
        {"wflNextNodePersonId":"12345"},
        {"wflNextNodePersonId":"23456"},
        {"wflNextNodePersonId":"34567"}
    ]
    

    任务节点自动审批

    自动审批触发事件:自动审批在任务(task)创建事件后触发。

    有条件自动审批

    如果流程当前人工任务节点审批人集合小于或等于上一个最后完成审批的人工任务节点审批人集合时,当前节点可自动审批通过。比如节点1审批人为(000123,000124),节点2审批人为(000123),节点2审批人集合是节点1审批人集合的子集,所以节点2可以自动审批通过。需添加以下表单变量

    表单变量Id 表单名 类型 备注
    CAN_BE_AUTO_APPROVED Y string 配置了此变量后,符合自动审批条件时,系统会自动审批通过

    无条件自动审批

    不论之前的审批人是谁,本流程任务节点都需要无条件自动审批通过时,需添加以下表单变量

    表单变量Id 表单名 类型 备注
    ALWAYS_AUTO_APPROVED Y string 配置了此变量后,系统会自动审批通过

    自动审批意见

    如果需要配置自动审批时的审批意见,可以添加以下表单变量

    表单变量Id 表单名 类型 备注
    AUTO_APPROVED_COMMENT 审批意见 string 配置了此变量后,自动审批时,审批意见是这个配置的值(默认是:审批人与上一节点相同,节点自动审批通过)

    保存数据

    表单数据

    被iframe技术嵌套的业务表单面,需实现executeWorkFlowTask函数。外层的流程页,会调用此函数完成业务数据保存后,继续执行后续流程操作。

    var executeWorkFlowTask = function(actionCallBack,p) {
    	$.ajax({
    		url: "${base.contextPath}/wfl/vacation/save",
    		type: "POST",
    		dataType: "json",
    		contentType: "application/json",
    		data: kendo.stringify(viewModel.model),
    		success: function (args) {
    			actionCallBack.call(window.parent,p);
    		}
    	});
    }
    

    流程变量

    同理,在表单页面,需实现getFormProperties函数。外层的流程页,会调用此函数完成流程变量保存后,继续执行后续流程操作。

    function getFormProperties() {
    	var data = {"test":"Y"};
            return data;
    }
    

    流程处理

    在执行监听器或任务监听器的回调事件里,完成对应的逻辑处理。

    执行监听

    public class MergeEndListener implements IActivitiBean {
    	public void doSomething(DelegateExecution delegateExecution) {
    		delegateExecution.setVariable("var", "value");
    	}
    }
    

    DelegateExecution参数说明如下

    方法 说明
    关联管理
    getId 获取执行Id
    getProcessInstanceId 获取流程实例Id
    getRootProcessInstanceId 获取根流程实例Id
    getProcessInstanceBusinessKey 获取流程实例业务关键字
    getProcessDefinitionId 获取流程定义Id
    getCurrentActivityId 获了当前活动Id
    执行管理
    getParentId 获取父执行Id
    getSuperExecutionId 获取外部执行Id
    getTenantId 获取租户Id
    get/setCurrentFlowElement 获取/设置流程元素
    getParent 获取父回调参数
    getExecutions 获取子回调参数
    setActive 设置执行是否激活
    isActive 获取执行是否激活
    isEnded 获取执行是否结束
    setConcurrent 设置执行是否并行执行
    isConcurrent 获取执行是否并行执行
    isProcessInstanceType 获取执行是否是流程实例
    inactivate 挂起执行
    isScope 是否是范围执行
    setScope 获取/设置范围执行
    isMultiInstanceRoot 是否是多实例根执行
    setMultiInstanceRoot 设置为多实例根执行
    事件管理
    get/setEventName 获取/设置事件名称
    get/setCurrentActivitiListener 获取/设置事件监听器
    变量管理
    getVariables 获取流程变量。明细参见流程执行接口
    setVariable 设置流程变量
    hasVariables 判断是否包含命名流程变量
    removeVariable 删除流程变量

    任务监听

    public class ScrapActivitiListener implements IActivitiBean {
    	public void doSomething(DelegateTask delegateTask) {
    		delegateTask.setVariable("var", "value");
    	}
    }
    

    DelegateTask参数说明如下

    方法 说明
    任务管理
    getId 获取任务Id
    get/setName 获取/设置任务名称
    get/setDescription 获取/设置任务描述
    get/setPriority 获取/设置任务优先级
    get/setDueDate 获取/设置任务持续期
    get/setCategory 获取/设置任务分类
    get/setFormKey 获取/设置表单地址
    getDelegationState 获取转交状态
    getCreateTime 获取任务创建时间
    isSuspended 任务是否挂起
    getTenantId 获取租户Id
    关联管理
    getProcessInstanceId 获取流程实例Id
    getExecutionId 获取执行Id
    getProcessDefinitionId 获取流程定义Id
    getTaskDefinitionKey 获取任务定义Id
    getExecution 获取任务对应的执行监听器
    getCurrentActivitiListener 获取当前的事件监听器
    getEventName 获取事件名称
    办理管理
    get/setOwner 获取/设置任务所有人
    get/setAssignee 获取/设置任务指派人
    add/deleteCandidateUser/Users 新增/删除候选人
    add/deleteCandidateGroup/Group 新增/删除候选人组
    getCandidates 获取候选人
    add/deleteUser/GroupIdentityLink 新增/删除参与人/组
    变量管理
    getVariables 获取流程变量。明细参见流程执行接口
    setVariable 设置流程变量
    hasVariables 判断是否包含命名流程变量
    removeVariable 删除流程变量

    流程变量

    可以在回调函数内获取或设置命名流程变量,帮助完成业务逻辑

    变量名称 变量值 类型 描述
    hideCancelBtn Y string 隐藏拒绝或撤销按钮
    approveResult APPROVED/REJECTED string 判断当前节点的执行结果是否是拒绝,APPROVED:同意/驳回/撤回,REJECTED:拒绝
    isRebutAction Y string 判断是否是驳回操作,为Y时表示是驳回
    isRecallAction Y string 判断是否是撤回操作,为Y时表示是撤回

    示例

    String approveResult = execution.getVariable("approveResult")
    execution.getVariable("isRebutAction")
    execution.getVariable("isRecallAction")
    

    撤回管理

    流程已进行到下一步,因某种原因,上个节点的办理人将任务主动拿回至本节点的动作。

    单步撤回

    • 当流程处于第一个节点时,发起者可在【我发起的列表】里撤回流程
    • 当在节点上勾选可撤回后,下一环节未结束前,本节点办理人都可在【我参与的列表】里找到这条流程记录,主动撤回
    • 如果节点上勾选可撤回,且此节点办理人为本流程的发起人,则本节点办理人(流程发起人)除了可在【我参与的列表】里撤回,还可在【我发起的列表】里找到这条流程记录,主动撤回。两个撤回动作是等价的。

    连续撤回

    如果一段连续的节点都由同一人审批,则在撤回时,从当前流程停留节点向前数,直接可撤回至最后一个勾选了可撤回的节点。

    案例1

    A->B->C->D->E
    B、C、D节点由同一人办理,B、C、D节点勾选了可撤回,当前流程停留在E节点。则D节点办理人点击撤回时,流程将撤回至B节点
    

    案例2

    A->B->C->D->E
    B、C、D节点由同一人办理,C、D节点勾选了可撤回,当前流程停留在E节点。则D节点办理人点击撤回时,流程将撤回至C节点
    

    案例3

    A->B->C->D->E
    B、C、D节点由同一人办理,B、C节点勾选了可撤回,当前流程停留在E节点。则D节点办理人不可撤回
    

    催办管理

    人工催办

    流程结束前,流程发起者,在【我发起的流程】的列表中,可以通过催办功能,向流程当前办理者发送催办通知。办理人完成待办后催办通知消息会被撤回。

    模板编码 LCP_WFL_DD_TODO_URGE_NOTIFY
    参数
    startName 发起者姓名
    businessKey 单据号码
    approvalNode 审批环节名称
    customContent 自定义内容区

    通知模板如下

    在这里插入图片描述

    发送的通知样例如下

    在这里插入图片描述

    自动催办

    在流程设计中,可以为人工任务节点的’到期的日期’属性中,设置任务的持续时间。在任务创建时即开始计算时间。默认每天早上8点20,系统检查当任务停留时间超过设定值时,系统将自动向当前办理者发送催办通知。办理人完成待办后催办通知消息会被撤回。

    固定值

    属性值设置应符合ISO8601格式标准中的时间段表示法

    表示符描述如下

    符合 描述
    Y
    M
    D
    H
    M
    S
    P 前缀
    T 日期与时间的分隔符

    示例如下

    表达式 说明
    PT50M 50分钟
    PT8H 8小时
    P1Y3M5DT6H7M30S 一年三个月五天六小时七分三十秒

    动态值

    属性值还可设置为一个流程变量。通过在办理过程中动态赋值,实现对节点的办理时间管控。比如从 dateVariable 变量中获取值可以这样设置:${dateVariable}。属性值也需符合ISO8601格式标准。

    在这里插入图片描述

    定时任务

    1、开启定时任务,定时获取催办通知:

    在这里插入图片描述

    界面效果

    设置了到期日期的待办任务效果:

    在这里插入图片描述

    督办管理

    任务超过了设置的时间,会根据配置,向上寻找各级领导,给满足条件的领导发送督办通知。这里上级领导的查找逻辑与工作流保持一致。

    参数设置

    人工任务节点配置表单变量 TIME_OUT_CONFIG 的枚举值

    枚举Id 枚举表单名 备注
    1 超时时间 timeout (小时,可以是小数) 一级部门超过超时时间点 timeout 个小时时间
    2 超时时间 timeout (小时,可以是小数) 二级部门超过超时时间点 timeout 个小时时间
    3 超时时间 timeout (小时,可以是小数) 三级部门超过超时时间点 timeout 个小时时间
    4 超时时间 timeout (小时,可以是小数) 四级部门超过超时时间点 timeout 个小时时间
    5 超时时间 timeout (小时,可以是小数) 五级部门超过超时时间点 timeout 个小时时间

    注:

    • 如果是在开始节点配置以上表单变量值,可以作为全局默认值,这样可以不用每个任务节点都进行配置。
    • 人工任务节点配置的优先级高于开始节点的配置。如果某节点某级领导不需要发送通知,则可配置为-1
    • 对于没有配置的部门等级,则不会给这个等级的部门领导发送通知
      在这里插入图片描述

    定时任务

    门户系统配置定时任务(业务系统无需配置),定时向配置了系统集成的系统获取超时任务数据,然后给对应的领导发送汇总的督办通知:

    在这里插入图片描述

    界面效果

    默认每天早上9点发送督办通知,发送前会将前期的督办通知撤回。发送的通知样例如下

    在这里插入图片描述

    查看详情PC端样例如下:

    在这里插入图片描述

    查看详情手机钉钉端打开样例如下:
    在这里插入图片描述

    打开会话

    手机端打开通知的详情链接,可以点击进入办理人的聊天会话,并且会将提示语复制到粘贴板,可以进入会话后直接粘贴内容发送给办理人。

    任务通知

    任务通知,在系统通知功能的基础上,定制化了功能按钮

    功能按钮 电脑端 移动端
    办理(待办)/ 查看(抄送) 打开PC端处理界面 找开移动端地址配置微应用,否则弹出请去PC端办理的提示
    所有待办 打开PC门户系统首页 打开风神工作台微应用

    参数配置

    当将 activiti.dd.todo.open 参数设置为Y时,待办人会在钉钉上收到待办任务提醒。如果当前节点配置了移动端参数的应用Id,则以配置的应用身份发送消息,否则使用本应用的默认钉钉AppId身份发送消息。

    activiti.dd.todo.open=Y
    dingtalk.default.agentid=273559687
    

    待办通知

    办理人完成待办后待办通知消息会被撤回

    模板编码 LCP_WFL_DD_TODO_NOTIFY
    参数
    startName 发起者姓名
    businessKey 单据号码
    approvalNode 审批环节名称
    customContent 自定义内容区

    在这里插入图片描述

    发送的通知样例如下
    在这里插入图片描述

    抄送通知

    办理人抄送确认已读后待办通知消息会被撤回

    模板编码 LCP_WFL_DD_COPY_NOTIFY
    参数
    copyFrom 发起者姓名
    businessKey 单据号码
    copyNode 抄送环节名称
    customContent 自定义内容区

    在这里插入图片描述

    发送的通知样例如下
    在这里插入图片描述

    办理通知

    流程审批人在审批时可以选择是否将审批意见通过钉钉工作消息的方式通知申请人,审批页中此选项默认勾选,也可以通过表单变量配置默认不勾选。
    在这里插入图片描述

    通知模板:

    模板编码 LCP_WFL_DD_APPLY_PROCESS_NOTIFY
    参数
    approver 申请人:名称(工号)
    businessKey 单据号码
    action 审批动作
    approvalNode 审批节点
    comment 审批意见

    在这里插入图片描述

    通知效果:
    在这里插入图片描述

    通过配置表单变量取消默认勾选:

    表单变量Id 表单名 类型 备注
    COMMENT_NOTIFY_DEFAULT N string 配置了此变量后,选项默认不勾选

    完成通知

    流程完成办理后,系统自动向申请人发送流程完成办理的通知。

    模板编码 LCP_WFL_DD_APPLY_FINISH_NOTIFY
    参数
    businessKey 单据号码
    sendTime 发起时间
    customContent 自定义通知内容

    在这里插入图片描述

    通知效果:

    在这里插入图片描述

    自定义通知

    使用流程变量的方式,完成标题与内容的自定义。设置的变量将同时影响待办通知、抄送通知、催办通知。

    • 使用流程变量 EXT_NOTIFY_TITLE,追加自定义通知标题
    • 使用流程变量 EXT_NOTIFY_CONTENT,追加自定义通知内容
    RestVariable customTitle = new RestVariable();
    customTitle.setName(ActivitiConstant.EXT_NOTIFY_TITLE);
    customTitle.setValue("我是自定义标题");
    
    RestVariable customContent = new RestVariable();
    customContent.setName(ActivitiConstant.EXT_NOTIFY_CONTENT);
    List<WflCustomNotifyData> customNotifyDataList = new ArrayList<>(2);
    customNotifyDataList.add(new WflCustomNotifyData("变量1", "值1-4548643212313235465"));
    customNotifyDataList.add(new WflCustomNotifyData("变量2", "值2-AAAaaa"));
    customContent.setValue(customNotifyDataList);
     
    variables.add(customTitle);
    variables.add(customContent);
    instanceCreateRequest.setVariables(variables);
    

    发送的通知样例如下
    在这里插入图片描述

    标准服务接口

    com.hand.hap.activiti.service.IActivitiService

    工作流查询

    方法 说明
    List getProcessNodes(IRequest request, String processDefinitionId) 根据流程实例id,查询节点信息
    List getUserTaskFromModelSource(IRequest request, String modelId) 根据modelId,查询人工任务信息
    String getEmployeeName(String userId) 根据员工id获取员工姓名
    String getGroupName(String groupId) 根据groupid获取组名
    TaskResponseExt getTaskDetails(IRequest request, String taskId) 根据taskid获取当前用户可查看的节点详情
    TaskResponseExt getTaskDetails(IRequest request, String taskId, boolean isAdmin) 根据taskid获取当前节点详情
    HistoricProcessInstanceResponseExt getInstanceDetail(IRequest request, String processInstanceId) 根据流实例id,查询流程实例详情
    DataResponse queryTaskList(IRequest iRequest, TaskQueryRequest taskQueryRequest,Map<String, String> requestParams) 查询当前用户节点任务详情
    public DataResponse queryProcessInstances(IRequest iRequest, HistoricProcessInstanceQueryRequest historicProcessInstanceQueryRequest, Map<String, String> requestParams, boolean showRetract) 查询流程实例详情
    DataResponse queryHistoricTaskInstances(IRequest iRequest, HistoricTaskInstanceQueryRequest queryRequest, @RequestParam Map<String, String> allRequestParams) 查询历史节点详情
    List queryException(ActiviException exception, int page, int pagesize) 查询工作流异常信息

    工作流操作

    方法 说明
    ProcessInstanceResponse startProcess(IRequest iRequest, ProcessInstanceCreateRequest createRequest) 开启流程
    Model deployModel(String modelId) 根据模型id,部署流程
    void completeTask(IRequest request, Task taskEntity, TaskActionRequestExt actionRequest) 执行审批动作,并发送消息到相关人
    void delegateTask(IRequest request, Task taskEntity, TaskActionRequestExt actionRequest) 执行转交任务动作,并发送消息到相关人
    void carbonCopy(IRequest request, Task taskEntity, TaskActionRequestExt actionRequest) 执行抄送任务动作,并发送消息到相关人
    void resolveTask(IRequest request, Task taskEntity, TaskActionRequestExt actionRequest) 被委派人处理完成任务,并发送消息到相关人
    void jumpTo(IRequest request, Task taskEntity, TaskActionRequestExt actionRequest) 节点跳转,并发送消息到相关人
    void executeTaskAction(IRequest request, String taskId, TaskActionRequestExt taskActionRequest, boolean isAdmin) 执行工作流动作,审批/拒绝/加签/抄送/节点跳转等(区分是否管理员),并发送消息到相关人
    Boolean isStartRecall(String procId, String employeeCode) 校验是否是发起人撤回流程
    Boolean isTaskRecall(String procId, String employeeCode) 校验节点能否被撤回
    void taskRecall(IRequest iRequest, String procId, String employeeCode) 节点撤回
    void startRecall(IRequest iRequest, String procId, String employeeCode) 发起撤回
    void executeTaskByAdmin(IRequest request, String procId, TaskActionRequestExt taskActionRequest) 管理员处理节点审批动作
    List processInstanceForecast(IRequest request, String processInstanceId) 计算当前流程状态
    void saveException(String taskId, ActivitiException exception) 保存工作流异常数据
    void deleteDeployment(String deploymentId, Boolean cascade) 根据部署id删除工作流的所有数据
    void deleteProcessInstance(String processInstanceId) 终止流程
    void processCarbonCopyRead(String processInstanceId, String employeeCode) 使抄送已读

    扩展服务接口

    非事务型

    com.fsl.lcp.activiti.service.IExtensionActivitiService,独立与前置事务的执行

    方法 说明
    UserTask getFirstUserTaskByProcId(String procId) 根据流程实例id,获取第一个人工节点
    List getActivitiNodeByProcId(String procId) 根据流程实例id获取已审批过的节点信息
    String autoApprovedToTargetTask(String procId, String taskKey) 根据流程实例id,节点key,自动审批到指定节点(该节点不审批)
    String autoApprovedToEnd(String procId) 根据流程实例id,自动审批至流程结束
    UserTask getRebutToTask(String procId, String taskKey) 根据流程实例id和当前节点key,得到设置的指定驳回的人工节点的信息.
    List getCanRebutNodeByProcId(String procId) 根据流程实例id,获取已审批过的+可以驳回的节点信息.
    UserTask getFirstUserTaskByProcKey(String procKey) 根据流程key,获取第一个人工节点.
    Collection getUserTaskByProcKey(String procKey) 根据流程key,获取所有人工节点.信息.

    事务型

    com.fsl.lcp.activiti.service.IExtensionActivitiTransactionalService,参与前置事务一起执行

    方法 说明
    List getNodeDetailByProcId(String procId) 根据流程实例id获取当前节点详情
    void autoApprovedTask(String currentTaskId, String empCode) throws TaskActionException 根据taskid,员工号,自动审批节点
    ProcessInstanceResponse startProcess(IRequest iRequest, String businessKey, String processDefinitionKey, List variables) throws Exception 根据irequest,业务key,流程key,流程变量,开启流程
    ProcessInstanceResponse startProcess(String empCode, String businessKey, String processDefinitionKey, List variables) throws Exception 根据申请人员工号,业务key,流程key,流程变量,开启流程
    void autoApprovedFirstTask(String procId, List restVariablesAdd) throws TaskActionException 根据流程id,流程变量,自动审批第一个节点

    官方服务接口

    仓库服务

    org.activiti.engine.RepositoryService

    方法 说明
    发布管理
    createDeployment 发布流程
    deleteDeployment 删除发布
    setDeploymentCategory 设置发布分类
    setDeploymentKey 设置发布关键字
    getDeploymentResourceNames 获取布署资源清单
    getResourceAsStream 获取指定布署和资源的输入流
    changeDeploymentTenantId 修改布署的租户属性
    查询管理
    createProcessDefinitionQuery 创建流程定义查询
    createDeploymentQuery 创建发布查询
    流程定义管理
    getProcessDefinition 获取流程定义对象
    suspendProcessDefinition 挂起流程定义
    activateProcessDefinition 激活流程定义
    isProcessDefinitionSuspended 流程定义是否挂起
    setProcessDefinitionCategory 设置流程定义分类
    isActiviti5ProcessDefinition 是否是Activiti5版本的流程定义
    addCandidateStarterUser 添加流程创建者候选人
    addCandidateStarterGroup 添加流程创建者候选组
    deleteCandidateStarterUser 删除流程创建者候选人
    deleteCandidateStarterGroup 删除流程创建者候选组
    getIdentityLinksForProcessDefinition 获取流程创建者信息。创建者类型参见流程执行接口
    getProcessModel 获取流程BPMN描述文件的二进制流
    getBpmnModel 获取流程BPMN描述文件
    getProcessDiagram 获取流程图二进制流
    getProcessDiagramLayout 获取流程图布局
    模型管理
    newModel 创建模型
    saveModel 修改模型
    deleteModel 删除模型
    getModel 获取模型
    addModelEditorSource 基于可编辑模型创建模型
    addModelEditorSourceExtra 基于可编辑模型扩展部份创建模型
    getModelEditorSource 获取可编辑模型
    getModelEditorSourceExtra 获取可编辑模型扩展部份
    createModelQuery 创建模型查询
    validateProcess 验证模型

    流程服务

    org.activiti.engine.RuntimeService

    方法 说明
    流程管理
    startProcessInstanceBy 启动工作流
    deleteProcessInstance 删除流程实例
    suspendProcessInstance 挂起流程
    activateProcessInstance 激活流程
    getActiveActivityIds 获取等待中的
    trigger 发送一个外部信号至目标流程实例(可用于接收任务)
    updateBusinessKey 更新业务主键
    setProcessInstanceName 设置流程实例名称
    办理管理
    addUser/addGroup 为当前处理节点添加办理人/组。assignee:办理人/被加签者,candidate:候选者(认领),carbonCopy:被抄送者,owner:拥有者(加签),starter:创建者,participant:参与者
    deleteUser/deleteGroup 为当前处理节点删除办理人/组
    数据管理
    getVariables 获取流程变量,Variable为流程变量(关联根执行Id,即流程实例Id存储,生命周期贯穿整个流程),VariableLocal为执行变量(关联当前执行Id存储,生命周期只存在于当前的节点执行)
    hasVariable 判断是否包含流程变量
    setVariable 设置流程变量
    removeVariable 删除流程变量
    getDataObjects 获取数据对象,DataObject为流程数据对象,DataObjectsLocal为执行数据对象
    查询管理
    createExecutionQuery 创建执行查询
    createProcessInstanceQuery 创建流程查询
    事件管理
    signalEventReceived 触发流程实例的捕获中间信号事件
    messageEventReceived 触发流程实例的捕获中间消息事件
    addEventListener 为流程实例添加事件监听器
    removeEventListener 为流程实例移除事件监听器
    dispatchEvent 抛出指定事件
    getProcessInstanceEvents 获取流程实例当前的事件监听器
    子流程管理
    getEnabledActivitiesFromAdhocSubProcess 获取子流程活动的节点
    executeActivityInAdhocSubProcess 执行子流程指定节点
    completeAdhocSubProcess 完成子流程

    任务服务

    org.activiti.engine.TaskService

    方法 说明
    任务管理
    newTask 创建任务
    saveTask 保存任务
    deleteTask 删除任务
    complete 完成任务
    delegateTask 转交任务
    resolveTask 被委派人完成任务
    setPriority 设置任务优先级
    setDueDate 设置任务持续时长
    办理管理
    getIdentityLinksForTask 获取当前任务关联的办理人。办理人类型参见流程执行接口
    addUserIdentityLink 添加任务办理人
    addGroupIdentityLink 添加任务办理组
    deleteUserIdentityLink 删除任务办理人
    deleteGroupIdentityLink 删除任务办理组
    addCandidateUser 添加任务候选人
    addCandidateGroup 添加任务候选组
    deleteCandidateUser 删除任务候选人
    deleteCandidateGroup 删除任务候选组
    setAssignee 强制任务领取(签收任务)
    claim 任务领取(签收任务),如果当前已认领,则抛异常
    unclaim 解绑签收
    setOwner 设置任务所有者(转交)
    查询管理
    createTaskQuery 创建任务查询
    数据管理
    setVariable 设置流程变量。细节参见流程执行对应接口
    getVariable 获取流程变量
    hasVariable 判断是否包含流程变量
    removeVariable 删除流程变量
    getDataObjects 获取数据对象
    注释管理
    addComment 添加流程/任务注释
    getComment 获取流程/任务注释
    deleteComments 删除流程/任务注释
    getTaskComments 获取任务注释
    getProcessInstanceComments 获取流程注释
    事件管理
    getTaskEvents 获取任务监听器
    getEvent 获取监听器
    附件管理
    createAttachment 创建附件
    saveAttachment 更新附件
    getAttachment 获取附件
    deleteAttachment 删除附件
    getTaskAttachments 获取任务附件
    getProcessInstanceAttachments 获取流程实例附件
    子任务管理
    getSubTasks 获取子任务

    表单服务

    org.activiti.engine.FormService

    方法 说明
    开始节点
    getStartFormData 获取开始节点的表单数据
    submitStartFormData 使用指定的表单数据启动工作流实例
    getRenderedStartForm 获取已经完成渲染的开始节点表单
    getStartFormKey 获取开始节点的表单路径
    任务节点
    getTaskFormData 获取任务节点的表单数据
    submitTaskFormData 使用指定的表单数据完成任务节点
    getRenderedTaskForm 获取已经完成渲染的任务节点表单
    getTaskFormKey 获取任务节点的表单路径
    通用
    saveFormData 保存表单数据

    历史查询

    org.activiti.engine.HistoryService

    方法 说明
    通用查询
    createHistoricProcessInstanceQuery 查询当前和已经结束的流程实例信息
    createHistoricActivityInstanceQuery 查询当前和已经结束的节点的单一执行信息
    createHistoricTaskInstanceQuery 查询当前和已经结束的任务实例的信息
    createHistoricVariableInstanceQuery 查询当前和已经结束的流程变量或任务变量的最新值
    createHistoricDetailQuery 查询当前和已经结束的流程实例,活动实例或任务实例有关的多种信息
    指定查询
    getHistoricIdentityLinksForProcessInstance 查询指定流程实例的所有参与者
    getHistoricIdentityLinksForTask 查询指定任务的所有参与者
    createProcessInstanceHistoryLogQuery 查询指定流程实例的信息,包含这个流程实体所有的其他数据,如task、评论等信息
    删除管理
    deleteHistoricProcessInstance 删除指定流程实例历史数据
    deleteHistoricTaskInstance 删除指定任务历史数据

    官方实体

    流程定义

    org.activiti.engine.repository.ProcessDefinition

    方法 说明
    getId 获取主键
    getCategory 获取流程分类
    getName 获取流程名称
    getKey 获取流程关键字
    getDescription 获取流程描述
    getVersion 获取流程版本
    getResourceName 获取流程资源名称
    getDeploymentId 获取流程布署Id
    getDiagramResourceName 获取流程图资源名称
    hasStartFormKey 是否对应有开始表单路径
    hasGraphicalNotation 流程是否有图形化定义
    isSuspended 是否挂起
    getTenantId 获取租户Id
    getEngineVersion 获取流程引擎版本

    流程实例

    org.activiti.engine.runtime.ProcessInstance

    方法 说明
    getProcessDefinitionId 获取流程定义Id
    getProcessDefinitionName 获取流程定义名称
    getProcessDefinitionKey 获取流程定义关键字
    getProcessDefinitionVersion 获取流程定义版本
    getDeploymentId 获取流程布署Id
    getBusinessKey 获取业务关键字
    isSuspended 是否挂起
    getProcessVariables 获取流程变量
    getTenantId 获取租户Id
    getName 获取流程实例名称
    getDescription 获取流程实例描述
    getLocalizedName 获取流程本地化名称
    getLocalizedDescription 获取流程本地化描述
    getStartTime 获取流程启动时间
    getStartUserId 获取流程发起人Id

    流程执行

    org.activiti.engine.runtime.Execution

    方法 说明
    getId 区取执行Id
    isSuspended 是否挂起
    isEnded 是否结束
    getActivityId 获取活动Id
    getProcessInstanceId 获取流程实例Id
    getParentId 获取父执行Id
    getSuperExecutionId 获取外部执行Id
    getRootProcessInstanceId 获取根流程实例Id
    getTenantId 获取租户Id
    getName 获取名称
    getDescription 获取描述

    节点任务

    org.activiti.engine.task.TaskInfo

    方法 说明
    getId 获取Id
    getName 获取任务名称
    getDescription 获取任务描述
    getPriority 获取任务优先级
    getOwner 获取任务所有者
    getAssignee 获取任务执行者
    getProcessInstanceId 获取流程实例Id
    getExecutionId 获取流程执行Id
    getProcessDefinitionId 获取流程定义Id
    getCreateTime 获取任务创建时间
    getTaskDefinitionKey 获取任务定义Id
    getDueDate 获取持续时间
    getCategory 获取分类
    getParentTaskId 获取父任务Id
    getTenantId 获取租户Id
    getFormKey 获取表单路径
    getTaskLocalVariables 获取任务本地变量
    getProcessVariables 获取流程变量
    getClaimTime 获取任务领取时间
    getDelegationState 获取转交状态
    isSuspended 是否挂起

    办理流程

    PC端浏览器

    分类办理

    配置编码为DB_WFL_ALL的仪表盘,首页按各个系统独立显示各自的当前登录人的待办,抄送,发起,参与任务数量与列表链接

    在这里插入图片描述

    打开各个业务系统的业务办理菜单,也能够独立显示当前登录人的待办,抄送,发起,参与任务数量与列表链接
    在这里插入图片描述

    综合待办

    配置编码为PORTAL_DD_TODO的仪表盘,首页将显示当前登录人在所有系统里的待办任务清单
    在这里插入图片描述

    PC端钉钉

    钉钉工作台

    打开钉钉工作台,在右侧显示当前登录人在当前组织的所有系统的待办任务清单
    在这里插入图片描述

    钉钉待办事项

    打开钉钉工作台,在右上角选择组织后,打开当前登录人所有系统的待办、发起、参与列表清单

    在这里插入图片描述

    钉钉通知

    使用待办通知,催办通知,抄送通知等各类通知,点击办理,完成流程办理

    在这里插入图片描述

    移动端

    参数配置

    当将 activiti.dd.process.open 参数设置为Y时,待办人会在钉钉上收到待办任务。

    activiti.dd.process.open = Y
    

    黑名单和白名单:配置工号,多个使用英文逗号进行分隔,配置后将会根据黑白名单进行过滤。不在黑名单并且在白名单中的人员,或者不在黑名单并且白名单配置为空时的人员可以接收到钉钉待办任务。

    activiti.dd.process.blacklist=014651,014575
    activiti.dd.process.whitelist=000001,000002
    

    钉钉工作台

    打开钉钉工作台,在右上角选择组织后,打开当前登录人所有系统的待办、发起、参与列表清单

    在这里插入图片描述

    钉钉通知

    使用待办通知,催办通知,抄送通知等各类通知,点击办理,完成流程办理

    在这里插入图片描述

    分类办理

    使用风神工作台,分类管理当前登录人在各个业务系统的待办、抄送、发起、参与列表清单
    在这里插入图片描述

    管理流程

    流程设计

    提供了工作流模型的增删改查的基本功能

    功能名称 说明
    新建 创建一个新的工作流模型
    编辑 修改一个已存在的工作流模型
    发布 将新建或修改后的工作流模型发布至流程中心。相同模型版本号会随着发布逐步提升。发布成功后,之前运行中的流程仍然使用旧版本流转。新发起的流程按照新版本流转
    删除 删除已存在的工作流模型。删除后不影响系统新旧流程的正常执行
    导出 将当前版本的工作流模型导出为符合BPMN2.0规范的xml文档
    上传 将符合BPMN2.0规范的xml文档导入至系统
    抄送配置 预先为每个节点提前配置抄送人
    职能主担本置 为审批规则为职能主担的节点配置具体的职能主担
    移动端配置 为节点配置移动端审批的页面地址

    流程列表
    在这里插入图片描述

    流程监控

    提供了工作流实例启停的基本管理功能

    功能名称 说明
    挂起 暂停执行当前的工作流实例
    启动 恢复执行当前的工作流实例
    转交 将当前工作流节点变更给指定人办理
    跳转 将当前工作流变更到指定节点办理
    终止 停止执行当前的工作流实例

    监控列表
    在这里插入图片描述

    流程日志

    部署日志

    提供了工作流布署的版本管理与布署日志功能

    功能名称 说明
    查看 查看指定发布版本工作流的流程信息,部署信息,预览图
    删除 删除指定版本的工作流布署。这会删除所有正在运行当前版本的工作流实例

    部署列表
    在这里插入图片描述

    部署明细

    在这里插入图片描述

    执行日志

    提供了工作流执行时的错误日志功能

    日志列表
    在这里插入图片描述

    日志明细
    在这里插入图片描述

    流程办理

    我待办的流程

    在本页面管理我的待办任务

    功能名称 说明
    办理 进入明细页面办理业务

    在这里插入图片描述

    我发起的流程

    在本页面管理我发起的工作流程

    功能名称 说明
    撤回 将流程从下一节点取回至本节点重新办理
    催办 发送通知催促流程当前办理人尽快处理业务
    流程ID超链接 查看工作流程明细

    在这里插入图片描述

    我参与的流程

    在本页面管理我参与审批的工作流程

    功能名称 说明
    撤回 将流程从下一节点取回至本节点重新办理
    流程ID超链接 查看工作流程明细

    在这里插入图片描述

    抄送我的流程

    在本页面管理知会我的工作流程

    功能名称 说明
    流程ID超链接 查看工作流程明细

    在这里插入图片描述

    所有待办的流程

    在本页面管理业务系统所有的待办任务。只有系统管理员及以上人员才可访问本页面

    功能名称 说明
    办理 进入明细页面办理业务

    在这里插入图片描述

    所有的流程

    在本页面管理系统所有的流程。只有系统管理员及以上人员才可访问本页面

    功能名称 说明
    流程ID超链接 查看工作流程明细

    在这里插入图片描述

    钉钉流程管理

    由于某些原因,导致用户的钉钉待办列表里有一些待办项一直存在,系统无法自动移除,可以手动使用以下接口进行查询和移除。

    查询钉钉待办

    查询用户所有的钉钉待办

    服务地址
    综测环境 https://dingtest.fslgz.com/portal/api/restful/dd/process/task/list?employeeCode={}
    业测环境 https://app-uat.fslgz.com/portal/api/restful/dd/process/task/list?employeeCode={}
    正式环境 https://app.fslgz.com/portal/api/restful/dd/process/task/list?employeeCode={}
    请求
    请求方式 Content-Type
    GET application/json;charset=UTF-8
    属性 说明 类型 是否必须
    employeeCode 员工编码 Long
    agentId 发送待办时使用的钉钉应用ID String
    响应
    属性 说明
    success true成功/false失败
    code 异常编码
    message 异常描述
    row 钉钉接口返回数据对象

    返回结果示例如下

    {
        {
        "row": {
            "hasMore": true,
            "list": [
                {
                    "forms": [
                        {
                            "content": "1578557452692",
                            "title": "单据号码"
                        },
                        {
                            "content": "利德羽(014574)",
                            "title": "申请人"
                        },
                        {
                            "content": "2020-01-09 16:10:56",
                            "title": "申请时间"
                        }
                    ],
                    "instanceId": "001eee39-58db-44ee-b40a-784b8252a089",
                    "taskId": "63219681099",
                    "title": "LCP-测试申请",
                    "url": "https://dingtest.fslgz.com/lcpbase/dd_handle.html?url=https%3A%2F%2Fdingtest.fslgz.com%2Flcpbase%2F%2Factiviti%2Fdd_task_detail.html%3FtaskId%3D812545*processInstanceId%3D812501"
                },
                {
                    "forms": [
                        {
                            "content": "EE",
                            "title": "单行输入框"
                        }
                    ],
                    "instanceId": "d42a10a4-ca6b-4668-965d-fbb161116543",
                    "taskId": "63017224722",
                    "title": "谢丽杰提交的LCP_BASE测试",
                    "url": "https://aflow.dingtalk.com/dingtalk/mobile/homepage.htm?corpid=ding6b6ffebcd75ef63335c2f4657eb6378f&dd_share=false&showmenu=true&dd_progress=false&back=native&procInstId=d42a10a4-ca6b-4668-965d-fbb161116543&taskId=63017224722&swfrom=onebox&dinghash=approval&dd_from=onebox#approval"
                }
            ]
        },
        "success": true
    }
    }
    

    移除钉钉待办

    通过接口可以将业务系统同步至钉钉的待办完成,移出待办列表。需要去任务发出的系统执行待办移除。

    服务地址
    综测环境 https://dingtest.fslgz.com/portal/api/restful/dd/process/task/remove?employeeCode={}&businessKey={}
    业测环境 https://app-uat.fslgz.com/portal/api/restful/dd/process/task/remove?employeeCode={}&businessKey={}
    正式环境 https://app.fslgz.com/portal/api/restful/dd/process/task/remove?employeeCode={}&businessKey={}
    请求
    请求方式 Content-Type
    GET application/json;charset=UTF-8
    属性 说明 类型 是否必须
    employeeCode 员工编码 Long
    businessKey 待办单据号码,如果想要移除一个用户的所有待办,这里可以给值:all String
    agentId 发送待办时使用的钉钉应用ID String
    响应
    属性 说明
    success true成功/false失败
    code 异常编码
    message 异常描述

    返回结果示例如下

    {
        "message": "成功移除 1 条待办数据",
        "success": true
    }
    

    移除效果

    在这里插入图片描述

    流程数据

    数据管理策略

    在工作流实例的整个生命周期中,历史表同时保存历史和实时数据,运行表始终只保留实时数据,提高数据库查询性能。

    历史表 创建工作流 更新工作流 完成工作流
    ACT_HI_PROCINST 增加 更新 更新
    ACT_HI_ACTINST 增加 更新&增加 更新
    ACT_HI_TASKINST 增加 更新&增加 更新
    ACT_HI_COMMENT 增加 更新&增加 更新
    运行表
    ACT_RU_EXECUTION 增加 删除&增加 删除
    ACT_RU_TASK 增加 删除&增加 删除

    流程查询

    新增查询视图,获取流程当前状态

    视图 v_wfl_query_info
    字段 说明
    PROC_INST_ID_ 流程实例id
    STATUS 当前流程实例状态,运行中,挂起中,已结束
    BUSINESS_KEY 当前流程实例的业务key
    task_name 流程实例当前节点名称
    task_KEY 流程实例当前节点key
    task_create_time 流程实例当前节点创建时间
    create_time 当前流程实例开始时间
    end_time 当前流程实例结束时间

    界面如下

    在这里插入图片描述

    代码如下

    SELECT
      are.id_ PROC_INST_ID_,
      IF (are.SUSPENSION_STATE_ = 1,'运行中','挂起中') STATUS,
      any_value (are.BUSINESS_KEY_) BUSINESS_KEY,
      any_value (art.name_) task_name,
      any_value (art.TASK_DEF_KEY_) task_KEY,
      any_value (art.create_time_) task_create_time,
      any_value (concat(he1. NAME,'(',ari.USER_ID_,')')) starter,
      GROUP_CONCAT(
        DISTINCT concat(
          he2. NAME,
          '(',
          art.assignee_,
          ')'
        )
      ) current_node_handler,
      any_value (are.START_TIME_) create_time,
      NULL end_time
    FROM
      act_ru_task art
      LEFT JOIN act_ru_execution are ON art.proc_inst_id_ = are.proc_inst_id_
      LEFT JOIN act_ru_identitylink ari ON ari.PROC_INST_ID_ = art.PROC_INST_ID_
      LEFT JOIN hr_employee he1 ON ari.USER_ID_ = he1.EMPLOYEE_CODE
      LEFT JOIN hr_employee he2 ON art.assignee_ = he2.EMPLOYEE_CODE
    WHERE
      ari.TYPE_ = 'starter'
      AND are.BUSINESS_KEY_ IS NOT NULL 
    GROUP BY
      PROC_INST_ID_
     
    UNION
     
    SELECT
      ahp.id_ PROC_INST_ID_,
      '已结束' STATUS,
      any_value (ahp.BUSINESS_KEY_) BUSINESS_KEY,
      '' task_name,
      '' task_KEY,
      '' task_create_time,
      any_value ( concat(he1. NAME,'(',ahp.start_USER_ID_,')')) starter,
      '' current_node_handler,
      any_value (ahp.start_time_) create_time,
      any_value (ahp.end_time_) end_time
    FROM
      act_hi_procinst ahp
      LEFT JOIN hr_employee he1 ON ahp.start_USER_ID_ = he1.EMPLOYEE_CODE
    WHERE
      ahp.end_time_ IS NOT NULL
    GROUP BY
      PROC_INST_ID_
    

    历史记录

    历史流程实例表

    CT_HI_PROCINST

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    PROC_INST_ID_ 流程实例ID键 varchar(64) NO 流程实例ID键
    BUSINESS_KEY_ 业务主键 varchar(255) YES 业务主键,业务表单的ID
    PROC_DEF_ID_ 流程定义ID varchar(64) NO 流程定义ID
    START_TIME_ 开始时间 datetime(3) NO 开始时间
    END_TIME_ 结束时间 datetime(3) YES 结束时间
    DURATION_ 耗时 bigint(20) YES 耗时
    START_USER_ID_ 起草人 varchar(255) YES 起草人
    START_ACT_ID_ 开始节点ID varchar(255) YES 开始环节ID
    END_ACT_ID_ 结束节点ID varchar(255) YES 结束环节ID
    SUPER_PROCESS_INSTANCE_ID_ 父流程实例ID varchar(64) YES 父流程实例ID
    DELETE_REASON_ 删除原因 varchar(4000) YES 删除原因
    TENANT_ID_ 租户ID varchar(255) YES 租户ID
    NAME_ 名称 varchar(255) YES 名称

    历史节点表

    ACT_HI_ACTINST

    历史活动信息。这里记录流程流转过的所有节点,与HI_TASKINST不同的是,taskinst只记录usertask内容

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    PROC_DEF_ID_ 流程定义ID varchar(64) NO 流程定义ID
    PROC_INST_ID_ 流程实例ID varchar(64) NO 流程实例ID
    EXECUTION_ID_ 执行实例ID varchar(64) NO 执行实例ID
    ACT_ID_ 节点ID varchar(255) NO 节点定义ID
    TASK_ID_ 节点实例ID varchar(64) YES 默认值 NULL,其他节点类型实例ID在这里为空
    CALL_PROC_INST_ID_ 调用外部的流程实例ID varchar(64) YES 默认值NULL,调用外部流程的流程实例ID
    ACT_NAME_ 节点名称 varchar(255) YES 默认值 NULL,节点定义名称
    ACT_TYPE_ 节点类型 varchar(255) NO 如startEvent、userTask
    ASSIGNEE_ 签收人 varchar(255) YES 默认值 NULL,节点签收人
    START_TIME_ 开始时间 datetime(3) NO version版本,2016-11-15 11:30:00
    END_TIME_ 结束时间 datetime(3) NO 默认值 NULL,2016-11-15 11:30:00
    DURATION_ 耗时 bigint(20) YES 默认值 NULL,毫秒值
    TENANT_ID_ 租户标识 varchar(255) YES 默认值

    历史流程任务表

    ACT_HI_TASKINST

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    PROC_DEF_ID_ 流程定义ID varchar(64) YES 流程定义ID
    TASK_DEF_KEY_ 节点定义ID varchar(255) YES 节点定义ID
    PROC_INST_ID_ 流程实例ID varchar(64) YES 流程实例ID
    EXECUTION_ID_ 执行实例ID varchar(64) YES 执行实例ID
    NAME_ 名称 varchar(255) YES 名称
    PARENT_TASK_ID_ 父节点实例ID varchar(64) YES 父节点实例ID
    DESCRIPTION_ 描述 varchar(4000) YES 描述
    OWNER_ 实际签收人 任务的拥有者 varchar(255) YES 签收人(默认为空,只有在委托时才有值)
    ASSIGNEE_ 签收人或被委托 varchar(255) YES 签收人或被委托
    START_TIME_ 开始时间 datetime(3) NO 开始时间
    CLAIM_TIME_ 提醒时间 datetime(3) YES 提醒时间
    END_TIME_ 结束时间 datetime(3) YES 结束时间
    DURATION_ 耗时 datetime(3) YES 耗时
    DELETE_REASON_ 删除原因 varchar(4000) YES completed、deleted
    PRIORITY_ 优先级别 int(11) YES 优先级别
    DUE_DATE_ 过期时间 datetime(3) YES 过期时间,表明任务应在多长时间内完成
    FORM_KEY_ 节点定义的formkey varchar(255) YES desinger节点定义的form_key属性
    CATEGORY_ 类别 varchar(255) YES 类别
    TENANT_ID_ 租户ID varchar(255) YES 租户ID

    历史流程人员表

    ACT_HI_IDENTITYLINK

    任务参与者数据表,主要存储历史节点参与者的信息。

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    GROUP_ID_ 用户组ID varchar(255) YES 用户组ID
    TYPE_ 类型 varchar(255) YES assignee、candidate、owner、starter、participant
    USER_ID_ 用户ID varchar(255) YES 用户ID
    TASK_ID_ 节点实例ID varchar(64) YES 节点实例ID
    PROC_INST_ID_ 流程实例ID varchar(64) YES 流程实例ID

    历史意见表

    ACT_HI_COMMENT

    历史意见表

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    TYPE_ 类型 varchar(255) YES 类型:event(事件)、comment(意见)
    TIME_ 时间 datetime(3) NO 填写时间
    USER_ID_ 用户ID varchar(255) YES 填写人ID
    TASK_ID_ 节点实例ID varchar(64) YES 默认值 NULL
    PROC_INST_ID_ 流程实例ID varchar(64) YES 默认值 NULL
    ACTION_ 行为类型 varchar(255) YES 默认值 NULL,值为下列内容中的一种:AddUserLink、DeleteUserLink、AddGroupLink、DeleteGroupLink、AddComment、AddAttachment、DeleteAttachment
    MESSAGE_ 基本内容 varchar(4000) YES 默认值 NULL,用于存放流程产生的信息,比如审批意见
    FULL_MSG_ 全部内容 longblob YES 附件地址

    流程历史变量表

    ACT_HI_VARINST

    流程历史变量表

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    PROC_INST_ID_ 流程实例ID varchar(64) YES 流程实例ID
    EXECUTION_ID_ 执行实例ID varchar(64) YES 执行实例ID
    TASK_ID_ 节点实例ID varchar(64) YES 节点实例ID
    NAME_ 名称 varchar(255) NO 名称
    VAR_TYPE_ 参数类型 varchar(100) YES jpa-entity、boolean、bytes、serializable、自定义type(根据你自身配置)、CustomVariableType、date、double、integer、jpa-entity、long、null、short、string
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    BYTEARRAY_ID_ 字节表ID varchar(64) YES ACT_GE_BYTEARRAY表的主键
    DOUBLE_ double double YES 存储DoubleType类型的数据
    LONG_ long bigint(20) YES 存储LongType类型的数据
    TEXT_ 文本 varchar(4000) YES 存储变量值类型为String,如此处存储持久化对象时,值jpa对象的class
    TEXT2_ 文本 varchar(4000) YES 此处存储的是JPA持久化对象时,才会有值。此值为对象ID
    CREATE_TIME_ 创建时间 datetime(3) YES 创建时间
    LAST_UPDATED_TIME_ 最新更改时间 datetime(3) YES 最新更改时间

    历史附件表

    ACT_HI_ATTACHMENT

    历史附件表。

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    USER_ID_ 用户ID varchar(255) YES 默认值 NULL,用户标识
    NAME_ 名称 varchar(255) YES 默认值 NULL
    DESCRIPTION_ 描述 varchar(4000) YES 默认值 NULL
    TYPE_ 类型 varchar(255) YES 默认值 NULL,附件类型
    TASK_ID_ 节点实例ID varchar(64) YES 默认值 NULL
    PROC_INST_ID_ 流程实例ID varchar(64) YES 默认值 NULL,
    URL_ URL附件地址 varchar(4000) YES 默认值 NULL,附件地址
    CONTENT_ID_ 字节表的ID varchar(64) YES 默认值 NULL,ACT_GE_BYTEARRAY的ID
    TIME_ 乐观锁 datetime(3) YES 默认值 NULL

    历史详情表

    ACT_HI_DETAIL

    历史详情表:流程中产生的变量详细,包括控制流程流转的变量,业务表单中填写的流程需要用到的变量等。

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    TYPE_ 类型 varchar(255) NO 默认值 NULL,表单:FormProperty,参数:VariableUpdate
    PROC_INST_ID_ 流程实例ID varchar(64) YES 默认值 NULL,附件类型
    EXECUTION_ID_ 执行实例ID varchar(64) YES 默认值 NULL,附件类型
    TASK_ID_ 节点实例ID varchar(64) YES 默认值 NULL,附件类型
    ACT_INST_ID_ 节点实例ID varchar(64) YES 默认值 NULL,附件类型
    NAME_ 名称 varchar(255) NO 默认值 NULL,附件类型
    VAR_TYPE_ 参数类型 varchar(255) YES 默认值 NULL, jpa-entity、boolean、bytes、serializable(可序列化)、自定义type(根据你自身配置)、CustomVariableType、date、double、integer、long、null、short、string,
    TIME_ 时间 datetime(3) NO 默认值 NULL,创建时间
    BYTEARRAY_ID_ 字节表ID varchar(64) YES 默认值 NULL,ACT_GE_BYTEARRAY表的ID
    DOUBLE_ Double double YES 默认值 NULL,存储变量类型为Double
    LONG_ Long bigint(20) YES 默认值 NULL,存储变量类型为long
    TEXT_ Text varchar(40000) YES 默认值 NULL,存储变量值类型为String
    TEXT2_ Text varchar(40000) YES 默认值 NULL,此处存储的是JPA持久化对象时,才会有值。此值为对象ID

    运行记录

    运行时流程执行实例表

    ACT_RU_EXECUTION

    流程执行记录表。

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    PROC_INST_ID_ 流程实例ID varchar(64) YES 流程实例ID
    BUSINESS_KEY_ 业务主键ID varchar(255) YES 业务主键ID
    PARENT_ID_ 父节点实例ID varchar(64) YES 父节点实例ID
    PROC_DEF_ID_ 流程定义ID varchar(64) YES 流程定义ID
    SUPER_EXEC_ varchar(64) YES
    ACT_ID_ 节点实例ID varchar(255) YES 节点实例ID即ACT_HI_ACTINST中ID
    IS_ACTIVE_ 是否存活 tinyint(4) YES 是否存活
    IS_CONCURRENT_ 是否并行 tinyint(4) YES 是否为并行(true/false)
    IS_SCOPE_ tinyint(4) YES
    IS_EVENT_SCOPE_ tinyint(4) YES
    SUSPENSION_STATE_ 是否挂起 int(11) YES 挂起状态(1:激活、2:挂起)
    CACHED_ENT_STATE_ int(11) YES
    TENANT_ID_ 租户ID varchar(255) YES 租户ID
    NAME_ 名称 varchar(255) YES 名称
    LOCK_TIME_ timestamp(3) YES

    运行时任务节点表

    ACT_RU_TASK

    行时任务数据表。

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    EXECUTION_ID_ 执行实例ID varchar(64) YES 执行实例ID
    PROC_INST_ID_ 流程实例ID varchar(64) YES 流程实例ID
    PROC_DEF_ID_ 流程定义ID varchar(64) YES 流程定义ID
    NAME_ 节点定义名称 varchar(255) YES 节点定义名称
    PARENT_TASK_ID_ 父节点实例ID varchar(64) YES 父节点实例ID
    DESCRIPTION_ 描述 varchar(4000) YES 节点定义描述
    TASK_DEF_KEY_ 节点定义的KEY varchar(255) YES 任务定义的ID
    OWNER_ 实际签收人 varchar(255) YES 拥有者(一般情况下为空,只有在委托时才有值)
    ASSIGNEE_ 签收人或委托人 varchar(255) YES 签收人或委托人
    DELEGATION_ 委托类型 varchar(64) YES DelegationState分为两种:PENDING,RESOLVED,如无委托则为空。
    PRIORITY_ 优先级别 int(11) YES 优先级别,默认为:50
    CREATE_TIME_ 创建时间 timestamp(3) YES 创建时间
    DUE_DATE_ 过期时间 datetime(3) YES 过期时间
    CATEGORY_ 类别 varchar(255) YES 类别
    SUSPENSION_STATE_ 是否挂起 int(11) YES (1:代表激活、2:代表挂起)
    TENANT_ID_ 租户ID varchar(255) YES 租户ID
    FORM_KEY_ 节点定义的formkey varchar(255) YES 表单KEY

    运行时流程人员表

    ACT_RU_IDENTITYLINK

    任务参与者数据表,主要存储当前节点参与者的信息。

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    GROUP_ID_ 用户组ID varchar(255) YES 用户组ID
    TYPE_ 类型 varchar(255) YES assignee、candidate、owner、starter、participant
    USER_ID_ 用户ID varchar(255) YES 用户ID
    TASK_ID_ 节点实例ID varchar(64) YES 节点实例ID
    PROC_INST_ID_ 流程实例ID varchar(64) YES 流程实例ID
    PROC_DEF_ID_ 流程定义ID varchar(64) YES 流程定义ID

    运行时流程变量数据表

    ACT_RU_VARIABLE

    运行时流程变量数据表。

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    TYPE_ 类型 varchar(255) NO jpa-entity、boolean、bytes、serializable、自定义type(根据你自身配置)、CustomVariableType、date、double、integer、jpa-entity、long、null、short、string
    NAME_ 名称 varchar(255) NO 变量名称
    EXECUTION_ID_ 执行实例ID varchar(64) YES 执行实例ID
    PROC_INST_ID_ 流程实例ID varchar(64) YES 流程实例ID
    TASK_ID_ 节点实例ID varchar(64) YES 节点实例ID(Local)
    BYTEARRAY_ID_ 字节表ID varchar(64) YES ACT_GE_BYTEARRAY的ID_
    DOUBLE_ Double double YES 存储变量类型为Double
    LONG_ Long bigint(20) YES 存储变量类型为Long
    TEXT_ Text varchar(4000) YES ‘存储变量值类型为String,如此处存储持久化对象时,值jpa对象的class
    TEXT2_ Text varchar(4000) YES 此处存储的是JPA持久化对象时,才会有值。此值为对象ID

    监听信息表

    ACT_RU_EVENT_SUBSCR

    throwEvent、catchEvent时间监听信息表。

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    EVENT_TYPE_ 类型 varchar(255) NO 事件类型
    EVENT_NAME_ 名称 varchar(255) YES 事件名称
    EXECUTION_ID_ 执行实例ID varchar(64) YES 执行实例ID
    PROC_INST_ID_ 流程实例ID varchar(64) YES 流程实例ID
    ACTIVITY_ID_ 活动实例ID varchar(64) YES 活动实例ID
    CONFIGURATION_ 配置 varchar(255) YES 流程定义的Namespace就是类别
    CREATED_ 是否创建 timestamp(3) NO 默认值,当前系统时间戳(CURRENT_TIMESTAMP(3))
    PROC_DEF_ID_ 流程定义ID varchar(64) YES 流程定义ID
    TENANT_ID_ 租户ID varchar(255) YES 租户ID

    运行任务

    运行时定时任务数据表

    ACT_RU_JOB

    运行时定时任务数据表。

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    TYPE_ 类型 varchar(255) NO 类型
    LOCK_EXP_TIME_ 锁定释放时间 timestamp(3) YES 锁定释放时间
    LOCK_OWNER_ 挂起者 varchar(255) YES 挂起者
    EXCLUSIVE_ tinyint(1) YES
    EXECUTION_ID_ 执行实例ID varchar(64) YES 执行实例ID
    PROCESS_INSTANCE_ID_ 流程实例ID varchar(64) YES 流程实例ID
    PROC_DEF_ID_ 流程定义ID varchar(64) YES 流程定义ID
    RETRIES_ int(11) YES
    EXCEPTION_STACK_ID_ 异常信息ID varchar(64) YES 异常信息ID
    EXCEPTION_MSG_ 异常信息 varchar(4000) YES 异常信息
    DUEDATE_ 到期时间 timestamp(3) YES 到期时间
    REPEAT_ 重复 varchar(255) YES 重复
    HANDLER_TYPE_ 处理类型 varchar(255) YES 处理类型
    HANDLER_CFG_ 处理标识 varchar(4000) YES 处理标识
    TENANT_ID_ 租户ID varchar(255) YES 处理

    模型与定义

    流程设计模型部署表

    ACT_RE_MODEL

    流程设计器设计流程后,保存数据到该表。

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    NAME_ 名称 varchar(255) YES 部署文件名称
    KEY_ key varchar(255) YES 例如:http://www.mossle.com/docs/activiti/
    CATEGORY_ 分类 varchar(255) YES 分类
    CREATE_TIME_ 创建时间 datetime(3) YES 创建时间
    LAST_UPDATETIME 最新修改时间 datetime(3) YES 最新修改时间
    VERSION_ 版本 int(11) YES 版本
    META_INFO_ 元数据 varchar(4000) YES 以json格式保存流程定义的信息
    DEPLOYMENT_ID_ 部署ID varchar(64) YES 部署ID
    EDITOR_SOURCE_VALUE_ID_ varchar(64) YES ACT_GE_BYTEARRAY的ID
    EDITOR_SOURCE_EXTRA_VALUE_ID_ varchar(64) YES ACT_GE_BYTEARRAY的ID
    TENANT_ID_ 租户ID varchar(255) YES 租户ID

    部署信息表

    ACT_RE_DEPLOYMENT

    部署流程定义时需要被持久化保存下来的信息。

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    NAME_ 名称 varchar(255) YES 部署文件名称
    CATEGORY_ 类别 varchar(255) YES 类别
    TENANT_ID_ 租户ID varchar(255) YES 租户ID
    DEPLOY_TIME_ 部署时间 datetime(3) YES 部署时间

    流程定义数据表

    ACT_RE_PROCDEF

    业务流程定义数据表。此表和ACT_RE_DEPLOYMENT是多对一的关系,即,一个部署的bar包里可能包含多个流程定义文件,每个流程定义文件都会有一条记录在ACT_REPROCDEF表内,每个流程定义的数据,都会对于ACT_GE_BYTEARRAY表内的一个资源文件和PNG图片文件。和ACT_GE_BYTEARRAY的关联是通过程序用ACT_GE_BYTEARRAY.NAME与ACT_REPROCDEF.NAME完成的,在数据库表结构中没有体现。

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    CATEGORY_ 类别 varchar(255) YES 流程定义的Namespace就是类别
    NAME_ 名称 varchar(255) YES 名称
    KEY_ key varchar(255) NO 流程定义的ID
    VERSION_ 版本 int(11) NO 版本
    DEPLOYMENT_ID_ 部署表ID varchar(64) YES 部署表ID
    RESOURCE_NAME_ bpmn文件名称 varchar(4000) YES 流程bpmn文件名称
    DGRM_RESOURCE_NAME_ png图片名称 varchar(4000) YES 流程图片名称
    DESCRIPTION_ 描述 varchar(4000) YES 描述
    HAS_START_FORM_KEY_ 是否存在开始节点formKey tinyint(4) YES start节点是否存在formKey(0:否、1:是)
    HAS_GRAPHICAL_NOTATION_ tinyint(4) YES
    SUSPENSION_STATE_ 是否挂起 int(4) YES 1 激活 2挂起
    TENANT_ID_ 租户ID varchar(255) YES 租户ID

    用户组织

    用户组信息表

    ACT_ID_GROUP

    用来存储用户组信息。

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    NAME_ 名称 varchar(255) YES 名称
    TYPE_ 类型 varchar(255) YES 类型

    用户信息表

    ACT_ID_USER

    表结构说明

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    FIRST_ varchar(64) YES
    LAST_ varchar(64) YES
    EMAIL_ 邮箱 varchar(64) YES 邮箱
    PWD_ 密码 varchar(64) YES 密码
    PICTURE_ID_ 图片ID varchar(64) YES 头像

    用户扩展信息表

    ACT_ID_INFO

    用户扩展信息表。

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    USER_ID_ 用户ID varchar(64) YES 用户ID
    TYPE_ 类型 varchar(64) YES userinfo 固定值
    KEY_ varchar(255) YES location、phone、skype等
    VALUE_ varchar(255) YES location、phone、skype等对应的值
    PASSWORD_ longblob YES 密码
    PARENT_ID_ 租户ID varchar(255) YES 租户ID

    用户与用户组关系信息表

    ACT_ID_MEMBERSHIP

    用来保存用户的分组信息。

    字段名称 描述 数据类型 Nullable 取值说明
    USER_ID_ 用户ID varchar(64) NO 用户ID
    GROUP_ID_ 用户组ID varchar(64) NO 用户组ID

    其它

    二进制数据表

    ACT_GE_BYTEARRAY

    保存流程定义图片和xml、Serializable(序列化)的变量,即保存所有二进制数据,特别注意类路径部署时候,不要把svn等隐藏文件或者其他与流程无关的文件也一起部署到该表中,会造成一些错误(可能导致流程定义无法删除)。

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    NAME_ 名称 varchar(255) YES 部署文件名称,如 mail.bpmn、mail.png、mail.bpmn20.xml
    DEPLOYMENT_ID_ 部署ID varchar(64) YES 部署表ID
    BYTES_ 字节 longblob YES 部署文件
    GENERATED_ 是否是引擎生成 tinyint(4) YES 0:为用户生成,1:为Activiti生成。

    属性数据表

    ACT_GE_PROPERTY

    属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录。

    字段名称 描述 数据类型 Nullable 取值说明
    NAME_ 主键 varchar(64) NO schema.version、schema.history、next.dbid
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    VALUE_ varchar(300) YES 例如:5.、create(5.)

    事件日志表

    ACT_EVT_LOG

    Activiti 事件日志表。

    字段名称 描述 数据类型 Nullable 取值说明
    LOG_NR_ 主键 bigint(20) NO 自增长
    TYPE_ 类型 varchar(64) YES 类型
    PROC_DEF_ID_ 流程定义ID varchar(64) YES 流程定义ID
    PROC_INST_ID_ 流程实例ID varchar(64) YES 流程实例ID
    EXECUTION_ID_ 执行实例ID varchar(64) YES 执行实例ID
    TASK_ID_ 节点实例ID varchar(64) YES 节点实例ID
    TIME_STAMP_ 时间戳 timestamp(3) NO 时间戳
    USER_ID_ 用户ID varchar(255) YES 用户ID
    DATA_ 一些额外参数 longblob YES 例如 IP地址 等。
    LOCK_OWNER_ 挂起者 varchar(255) YES 暂时没有用到
    LOCK_TIME_ 挂起时间 timestamp(3) YES 暂时没有用到
    IS_PROCESSED_ 是否处理过了 tinyint(4) YES 暂时没有用到

    流程定义扩展表

    ACT_PROCDEF_INFO

    关联ACT_GE_BYTEARRAY与PROC_DEFID表。

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    PROC_DEF_ID_ 流程定义ID varchar(64) NO 流程定义ID
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    varchar(64) YES 密码
    PICTURE_ID_ 图片ID varchar(64) YES 头像

    用户扩展信息表

    ACT_ID_INFO

    用户扩展信息表。

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    USER_ID_ 用户ID varchar(64) YES 用户ID
    TYPE_ 类型 varchar(64) YES userinfo 固定值
    KEY_ varchar(255) YES location、phone、skype等
    VALUE_ varchar(255) YES location、phone、skype等对应的值
    PASSWORD_ longblob YES 密码
    PARENT_ID_ 租户ID varchar(255) YES 租户ID

    用户与用户组关系信息表

    ACT_ID_MEMBERSHIP

    用来保存用户的分组信息。

    字段名称 描述 数据类型 Nullable 取值说明
    USER_ID_ 用户ID varchar(64) NO 用户ID
    GROUP_ID_ 用户组ID varchar(64) NO 用户组ID

    其它

    二进制数据表

    ACT_GE_BYTEARRAY

    保存流程定义图片和xml、Serializable(序列化)的变量,即保存所有二进制数据,特别注意类路径部署时候,不要把svn等隐藏文件或者其他与流程无关的文件也一起部署到该表中,会造成一些错误(可能导致流程定义无法删除)。

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    NAME_ 名称 varchar(255) YES 部署文件名称,如 mail.bpmn、mail.png、mail.bpmn20.xml
    DEPLOYMENT_ID_ 部署ID varchar(64) YES 部署表ID
    BYTES_ 字节 longblob YES 部署文件
    GENERATED_ 是否是引擎生成 tinyint(4) YES 0:为用户生成,1:为Activiti生成。

    属性数据表

    ACT_GE_PROPERTY

    属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录。

    字段名称 描述 数据类型 Nullable 取值说明
    NAME_ 主键 varchar(64) NO schema.version、schema.history、next.dbid
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    VALUE_ varchar(300) YES 例如:5.、create(5.)

    事件日志表

    ACT_EVT_LOG

    Activiti 事件日志表。

    字段名称 描述 数据类型 Nullable 取值说明
    LOG_NR_ 主键 bigint(20) NO 自增长
    TYPE_ 类型 varchar(64) YES 类型
    PROC_DEF_ID_ 流程定义ID varchar(64) YES 流程定义ID
    PROC_INST_ID_ 流程实例ID varchar(64) YES 流程实例ID
    EXECUTION_ID_ 执行实例ID varchar(64) YES 执行实例ID
    TASK_ID_ 节点实例ID varchar(64) YES 节点实例ID
    TIME_STAMP_ 时间戳 timestamp(3) NO 时间戳
    USER_ID_ 用户ID varchar(255) YES 用户ID
    DATA_ 一些额外参数 longblob YES 例如 IP地址 等。
    LOCK_OWNER_ 挂起者 varchar(255) YES 暂时没有用到
    LOCK_TIME_ 挂起时间 timestamp(3) YES 暂时没有用到
    IS_PROCESSED_ 是否处理过了 tinyint(4) YES 暂时没有用到

    流程定义扩展表

    ACT_PROCDEF_INFO

    关联ACT_GE_BYTEARRAY与PROC_DEFID表。

    字段名称 描述 数据类型 Nullable 取值说明
    ID_ 主键 varchar(64) NO 主键ID
    PROC_DEF_ID_ 流程定义ID varchar(64) NO 流程定义ID
    REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
    INFO_JSON_ID_ 主键 varchar(64) YES ACT_GE_BYTEARRAY的ID
    展开全文
  • 详解IBPS-流程管理

    千次阅读 2018-10-15 10:04:02
    详解IBPS-流程管理 企业的使命是为顾客创造价值,而为顾客创造价值的便是流程。 表面上看,企业组织是以业务和职能部门来划分的,但实际上起作用的是流程。没有哪一个部门单独的活动能够创造价值,只有将所有...
  • 【项目经理成长之路】怎么使用visio 2016画泳道图 跨职能流程图 从入门到精通 前言 在做项目过程中,项目经理经常需要画一些流程图,以此来表述某个业务的流程走向,非常简明清晰。在需求调研阶段、需求规格说明书...
  • 流程管理思想

    千次阅读 2014-11-30 17:42:46
    1. 出现  随着当今世界高速运转变化,企业、组织周围的一切环境,包括社会、政治、经济、技术等等环境,也都在高速地发生着...对企业管理而言,如何实现敏捷的企业流程,真正实现拥抱变化,实现大象也能起舞的理念,
  • 为了支撑企业流程管理及流程穿越的实施,需要系统平台提供流程快速开发平台能力。
  • 业务流程管理工具的概览和比较分析 简介: 目前比较流行的工作流开发管理工具众多,包括 JBPM、PegaSystems、Software AG(SAG)、IBM Content Management、IBM BPMN 7、FileNet 等。如何选择更符合用户需求,并且...
  • 制造业的业务流程管理BPM

    千次阅读 2013-08-13 15:02:20
    为有效协同铺平道路 执行总结 当今制造商们面临着来自许多不同利益相关者的压力。监管者、股东、客户和供应商都影响着运营。一个组织快速地察觉并适应这些压力的能力是一个丰富的竞争优势的源泉。...
  • 最好的BPM软件是最重要的大型业务解决方案,因为业务竞争力取决于流程管理。业务流程管理(BPM)是使组织的工作流程更加高效,有效并适应业务环境变化的系统化过程。业务流程是为达到特定组织目的和价值目标而由不同...
  • Java开源Saas开发框架+Activiti流程管理=JSAAS 1.SAAS云应用场景 SAAS云应用近几年来越来越火,这得益于国内云计算的基础设施的发展,如以前我们开发应用所需要的硬件计算资源、平台的操作系统、互联网IP、带宽及...
  • 移动端App开发流程管理

    千次阅读 2017-06-21 09:19:03
    一款应用的开发大体流程如下: 1、项目立项:产品经理 2、需求确认:产品经理(业务逻辑说明文档) 3、业务确认:产品经理,技术经理,架构师 4、业务架构:技术经理,架构师(业务流程文档) 5、UI确认:产品经理,...
  • NC外部统一流程管理平台方案

    千次阅读 2017-03-29 10:51:40
    企业应用开发,审批流程,业务表单
  • JBPM4.4业务流程管理框架详细解读

    万次阅读 热门讨论 2016-05-26 18:55:01
    1. 什么是JBPM4.4业务流程管理框架? JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。 相关...
  • 六大ITIL运维流程管理模式分析

    千次阅读 2012-11-29 13:41:51
    而ITIL运维流程管理模式主要有以下几个方面。   服务台   作为用户与IT部门的惟一连接点,服务台能够确保用户找到帮助其解决问题和请求的相关人员。服务台不仅负责处理事故、问题和客户的询问,同时还为其它...
  • 业务流程管理模型优化设计

    千次阅读 2015-07-01 08:21:40
    在需求的驱动下,对业务流程管理模型进行优化,分析业务、表单、工作流三者关系,给出优化的设计方案。
  • 前几年信息化过程是以功能实现为主,用户流程不明确,则软件上就不定流程,让用户随意确定流程。软件就是完全模仿用户手工的工作方式。这可以算是无流程或随意流程的做法。 现在的政府和企业信息化过程,必然会涉及...
  • java中的工作流流程管理和流转思路

    千次阅读 2015-08-13 09:35:32
    在做某个管理项目时,被要求实现一套流程管理,比如请假的申请审批流程等,在参考了很多资料,并和同事讨论后,得到了一个自主实现的流程管理。    以下提供我的设计思路,知道了思路,实现起来就简单很多了...
1 2 3 4 5 ... 20
收藏数 866,369
精华内容 346,547
关键字:

流程管理