管理流程_项目管理流程 - CSDN
精华内容
参与话题
  • 一个完整的项目管理流程包括什么?

    千次阅读 2019-03-06 00:26:16
    在企业项目管理过程中,一个完整的项目流程主要分为以下几步:项目启动阶段,规划阶段,执行阶段,监控阶段,收尾阶段。 ①项目启动阶段 首先,企业需要有确定的目标,这个目标要可执行、可拆解甚至可衡量,输入...

    在企业项目管理过程中,一个完整的项目流程主要分为以下几步:项目启动阶段,规划阶段,执行阶段,监控阶段,收尾阶段。

    ①项目启动阶段

    首先,企业需要有确定的目标,这个目标要可执行、可拆解甚至可衡量,输入初始状态的企业,输出符合目标描述的企业。

    ②规划阶段

    项目规划阶段包括确定工作任务,任务分解,安排优先级,预算成本和风险管理。

    项目计划和控制是项目管理的主线,贯穿项目管理的全过程。为了使一个项目成功任务,必须有一个良好的计划与控制。

    任务分解就是项目管理中的WBS原则:从项目目标开始分解,逐层下降,每下降一层,代表对项目工作的更详细的定义,将任务分解到不能再分为止。

    成本管理是为了保证完成项目的实际成本、费用不超过预算成本、费用的管理过程。项目成本=任务执行成本+管理成本。它包括资源的配置,成本、费用的预算以及费用的控制等项工作。风险管理则涉及项目可能遇到各种不确定因素。它包括风险识别,风险量化,制订对策和风险控制等。

    ③执行阶段

    现在为止项目已经万事俱备了,开始着手项目的实施。开始具体分配任务,确认每个任务的开始/截止时间、优先级等。

    Worktile的任务面板

    在执行管理中最重要的沟通管理,成员之间的有效沟通,是为了确保项目的信息的合理收集和传输所需要实施的一系列措施,它包括沟通规划,信息传输和进度报告等。

    Worktile的群组聊天界面

    ④监控阶段

    监控项目工作是跟踪、审查和报告项目进展,以实现项目管理计划中确定的绩效目标的过程。最常用的就是用甘特图监控项目进度。

    Worktile的时间组件

    ⑤收尾阶段

    结束项目是完结项目管理所有活动以正式结束项目或阶段的过程。在项目结束后,项目经理需要审查以前各阶段的收尾信息,确保所有项目工作已完成。

     

    现在有多公司用项目管理软件做项目管理,既能实现公司化管理,又能提高工作效虑。您可以点击【Worktile官网】免费注册试用,帮助企业做好项目管理。

    展开全文
  • IT项目管理流程总结·二十三

    千次阅读 2018-12-28 19:32:28
    IT行业的项目管理流程一般包括为五个部分:项目的启动、项目的计划、项目的实施和控制过程、项目的收尾和项目的后续维护。本章就依这五个部分进行详细的介绍。 1 项目启动过程组 图1 PDCA流程图 2 项目管理计划...

    IT行业的项目管理流程一般包括为五个部分:项目的启动、项目的计划、项目的实施和控制过程、项目的收尾和项目的后续维护。本章就依这五个部分进行详细的介绍。

    1 项目启动过程组

    图1 PDCA流程图

    2 项目管理计划过程组

    项目管理计划是项目的主计划或称为总体计划,它确定了执行、监控和结束项目的方式和方法,包括项目需要执行的过程、项目的生命周期、里程碑和阶段划分等全局性内容。

    项目管理家记述了如下内容:

    (1)所使用的项目管理过程

    (2)每个特定项目管理过程的实施程度

    (3)完成这些过程的工具盒技术的描述

    (4)选择的项目的生命周期和相关的项目阶段

    (5)如何用选定的过程来管理具体的项目,包括过程之间的依赖与交互关系和基本的输入输出等

    (6)如何执行工作来完成项目目标

    (7)如何监督和控制变更

    (8)如何实施配置管理

    (9)如何维护项目绩效基线的完整性

    (10)与项目干系人进行沟通的要求和技术

    (11)为项目选择的生命周期模型,对于多阶段项目,要包括所定义阶段是如何划分的

    (12)为了解决某些遗留问题和未来的决策,对于其内容、严重程度和紧迫程度进行的关键管理评审

     

    计划过程组包括以下三点内容

    (1)制定项目管理计划。这一过程用于定义、准备、集成和协调所有分计划,并将他们合并成整体的项目管理计划。项目管理计划知道项目的执行,是监督和控制过程的依据。

    (2)编制项目范围管理计划。这一过程用于确定定义、验证和控制范围的方法,以及如何建立和定义工作分解结构的方法,把这些方法写在范围管理计划内。

    (3)范围定义。这一过程用于指定一个作为未来项目决策基础的详细的范围说明书。

    3 IT项目综合计划模板

    (1)项目整体介绍

    工期类比估算表、项目活动计划表、项目进度计划表、

    里程碑计划及其跟踪表、所需资源清单及费用估算表、成本类比估算表、

    按模块估计的成本估算表、基于费用科目的成本估算表、项目年度用款计划表、

    IT项目质量指标框架模板、IT项目综合计划模板

    (2)项目管理过程

    IT项目质量保证计划模板、关键质量活动一览表、项目人员需求申请表、

    项目人员需求一览表、面试记录表、面试人员一览表、

    项目成员审核表、项目组工作说明书、项目成员岗位工作说明书、

    岗位说明书一览表、IT项目团队知识地图、项目成员开发知识地图、

    项目成员责任分配矩阵、IT项目综合计划模板

    (3)项目组织介绍

    项目成员培训需求调查表、项目培训计划表、培训课程安排一览表、

    项目文档分类表、项目干系人的沟通需求分析表、项目信息接收责任明细表、

    项目信息收集责任明细表、项目成员联络表、单个风险损值至评估表、

    一个项目风险对项目主要目标的风险影响对照表、项目所有风险一览表、单个风险应对计划表

    风险应对计划一览表、IT项目综合计划模板

    (4)工作包、进度和预算

    硬件产品请购单、软件产品请购单、项目采购计划明细、

    采购招标书模板、采购投标书模板、供应商财务状况调查表、

    供应商评估表、供应商选择标准示意表、采购中标通知书、

    采购落标通知书、IT项目综合计划模板

    (5)技术过程说明

    项目范围说明书、软件需求调查表、需求分析说明书、系统设计任务书

    4 项目执行过程组

    执行过程组是实现整个项目的关键阶段,实际上就是完成在项目管理计划中确定的工作,以达到项目目标所必需的各个过程所组成。这个项目过程组不仅包括项目管理计划实施的各个过程,也包括协调人员和资源的过程。这个项目过程组还会涉及在项目范围说明书中定义的范围,以及经批准的对范围的变更。

    执行过程组包括以下内容:指导和管理项目执行、执行质量保证

    5 项目监督和控制过程组

    项目实施的过程,项目经理需要时刻监控项目的进展的情况,检查项目的进展是否与原计划实施一直,也就是五大过程组当中的监督和控制过程组。其主要的目的就是监督项目执行情况,在发现问题的时候及时采取措施保证项目达到预期目标。

    监督和控制过程组包括:对照项目管理计划来监督正在进行的项目活动,确认项目执行情况与项目管理计划的符合性。及时评估引起变更的因素,确保只有经过书面批准的变更才被实施。

    项目监督和控制过程组包括的具体内容如下:

    (1)监督和控制项目工作

    (2)整体变更控制

    (3)范围验证

    (4)范围变更控制

    (5)进度控制

    (6)成本控制

    (7)质量控制

    (8)管理项目团队

    (9)绩效报告

    (10)管理项目干系人

    (11)风险监督和控制

    (12)合同管理

    6 项目收尾过程组

    项目收尾过程主要包括:项目收尾和合同收尾。

    (1)项目验收

    项目验收,也称范围核实或移交。它是检查项目计划规定范围内各项工作或活动是否已全部完成,可交付结果是否令人满意,并将检查结果记录在验收文件中的一系列活动。项目的正式验收包括:验收项目产品、文档及已经完成的交付结果。

    项目验收的标准是指判断项目产品是否合乎项目目标的根据。项目验收的一般标准包括:项目合同书、国际惯例、国家标准、行业标准、国家和企业的相关政策和法规。

    (2)项目验收的依据

    工作成果和成果说明。

    (3)系统测试

    系统测试也叫做初验,承建单位完成项目后,首先要在项目组内根据合同文件对系统进行详细的自检测试,并在测试的过程中形成完整的自检文档。

    (4)系统试运行

    (5)系统文档验收

    系统集成项目介绍

    系统集成项目最终报告

    信息系统说明手册

    信息系统维护手册

    软硬件产品报验材料、安装资料、测试资料、验收资料等

    (6)项目总结

    总结得失成败。

    项目总结内容:项目进度、项目质量、项目成本、项目风险、项目资源、项目范围、项目沟通、项目采购、项目文档、项目评价、遗留亟待解决问题、 经验教训及建议。

    (7)项目评估

    评估的基本原则:

    客观、科学、公正的原则

    综合全面评价的原则

    项目之间的可比性原则

    定量分析和定性分析相结合的原则

    技术分析和经济分析相结合的原则

    微观效益分析与宏观效益分析相结合的原则

     

    项目评估的主要内容:经济效益、客户满意度、后续项目指标要求、内部满意度

     

    项目审计是审计机构依据国家的法令和财务制度、企业的经营方针、管理标准和规章制度,对项目的活动用科学的方法和程序进行审核检查,判断其是否合法、合理有效的一种活动。项目审计是对项目管理工作的全面检查,包括项目的文件记录、管理的方法和程序、财产情况、预算和费用支出情况以及项目工作的完成情况。

    项目审计程序:审计启动工作,建立项目审计标准,实施项目审计,报告审计结果并对项目各方面提出改进建议,项目审计终结并出具审计报告。

    (8)项目维护

    软件项目的后续工作:软件系统的修改、软件升级、后续技术支持

    系统集成项目的后续工作:信息系统日常维护工作、硬件产品的更新、信息系统的新需求

    (9)团队转移

    对项目成员发送亲笔签名的感谢信

    对项目成员的贡献加以总结和评述

    对项目成员的的不足予以指出并提出改进建议

    对项目成员的未来工作给予一定的建议

    提醒项目发起人对突出贡献的项目团队成员予以奖励和表彰

    物质奖励

    7 项目过程的交互

    (1)项目过程组之间的交互

    (2)项目管理过程图

    2004年美国项目管理协会提出了项目管理44个管理过程。这44个过程有两种分类方式,一个是按照发生的时间先后分成的“启动、计划、执行、控制、收尾”,另一类的方法是按照同类知识合并为整体管理、范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、采购管理和风险管理等9大知识领域。

    展开全文
  • 业务流程管理:过去,现在,未来

    千次阅读 2004-11-12 14:48:00
    业务流程管理:过去,现在,未来《世界计算机》IT.ICXO....越来越多的工作流运行依赖于流程模型驱动的信息系统,如工作流管理系统Staffware、企业资源计划系统SAP和Bann,还有许多领域特殊的信息系统。难以想象与流程

      业务流程管理:过去,现在,未来

    世界计算机IT.ICXO.COM ( 日期:2004-04-27 09:48)

    信息技术已改变了企业内部和企业之间的业务流程。越来越多的工作流运行依赖于流程模型驱动的信息系统,如工作流管理系统Staffware、企业资源计划系统SAP和Bann,还有许多领域特殊的信息系统。

    难以想象与流程无关的企业信息系统。尽管运用信息技术来帮助业务流程的管理早已被咨询顾问和软件开发人员炒作,但一个更基本的方法则却被忽略了。直至90年代,研究人员才开始研究业务流程管理系统的基础。结果有许多问题有待解决。此外, 网络服务(Web Services)之类的新技术发展也引出了新问题。

    趋势

    为了将工作流管理置于合适的环境来讨论,先看看它的发展趋势。60年代,信息系统基于小型的操作系统,功能也有限。由于既无通用,也无领域相关的软件,这些系统主要由特定的应用程序构成。从那时起,每年都有提供新功能的软件产品出现。如今的操作系统比60年代提供了更多的功能,数据库管理系统提供了定制应用的功能。

    这种趋势导致从注重程序设计转向复杂软件系统的集成。挑战不再是单个模块的编程,而是把四个层面的软件模块连接,使其协同工作。另一个趋势是从数据到流程的转移。70和80年代是数据驱动的方法占主流,信息技术主要用作存取信息,结果数据建模成为信息系统构造的始点。

    业务流程的建模经常被忽视,流程不得不适应信息技术。业务流程重组等管理理论的发展体现了对流程的重视,使得系统工程师更趋向流程驱动的方法。最近值得提及的趋势是从仔细规划设计转向重新设计和组织增长型的方式。由于因特网及其标准的无处不在,信息系统也不断变化。很少有系统从头构建。已有的部分应用经常会在新的系统中使用, 使得软件开发更加动态化。

    业务流程管理系统是一种面向流程的信息系统,即超越单个任务自动化的系统。如工作流管理系统Staffware、MQSeries和 COSA,案例处理系统FLOWer。值得注意的是主要的ERP系统也提供了工作流管理的模块。SAP、Baan、PeopleSoft、Oracle和 JD Edwards的工作流引擎可被视为集成的业务流程管理系统。

    把业务流程的管理独立成一个单独的组件的思想是与以上三个趋势一致的。业务流程管理系统可避免把工作流固化在定制的应用程序中,支持从程序设计到应用组装的转变。此外还支持面向流程、流程再设计以及组织增长(organic growth)。目前的工作流管理系统可用来集成已有的应用,支持通过仅改变流程图的流程变化。

    工作流管理系统

    尽管工作流管理联盟(WfMC)做了很大的努力,但基于不同范例(paradigms)的工作流管理系统仍使用多种语言和概念。大多数的产品使用专用而不是一种工具无关的语言。一些工作流管理系统是基于Petri网的,但增加了产品相关的扩展和限制。其他的系统使用了一种完全不同的机制。如IBM的MQSeries工作流使用主动和被动的线程,而非拖肯(token)传递。不同的工具的差别是明显的。导致工作流规范不能达成共识的原因之一是业务流程的描述方式的多样化。

    缺乏通用的组织“理论”和标准商务流程建模概念解释了工作流语言间差别的合理性。更重要的是,不同工作流产品的比较更多促进产品的发布(dissemination),而非对工作流语言能力的指责。在艾恩德霍芬工业大学(Eindhoven University of Technology)和昆士兰州工业大学(Queensland University of Technology)的共同努力下,一个新的用来比较和评价工作流的系统被开发。这个框架基于一个全面的模式(pattern)集,考虑了对工作流管理系统更客观的评价。

    我们已收集了大约30个工作流模式,并采取其中的20个比较15个工作流管理系统(COSA、Visual Workflow、Staffware、Verve Workflow、I-Flow、InConcert、Changengine、 SAP R/3 Workflow、 Eastman和FLOWer)。如果您需要更多的信息,请访问http://www.tm.tue.nl/it/research/patterns.

    网络服务组件语言(Composition Languages)

    在电子商务领域同时出现了两个趋势,它们引发了实现跨组织业务流程自动化的机遇和压力。一个趋势是技术的推动力,产生于基于XML的标准和因特网的使能技术。另一个趋势是从商务角度改善流程效率的需要。网络泡沫后,通过自动化跨企业的业务流程来充分利用因特网技术的潜力变得紧迫起来。网络服务的目标就是利用XML和互联网集成能在web上发布、定位和调用的应用。

    一个网络服务的典型实例是Galieo系统,它将42,000多个旅行代理连接到37个汽车租赁公司、47,000个旅馆和350个旅游承办商。为了真正集成跨企业流程,利用标准的消息和协议支持简单的交流已不能满足需求。商务交流需要由直观的流程模型驱动的长时间(long-running)交互过程。这就需要Web Services组件语言,如BPEL4WS、WSFL、 XLANG、WSCI和 BPML。

    采用网络服务组件语言的开发主要是由IBM、Microsoft、Sun、BEA、 SAP和Intalio等软件提供商驱动的,结果出现了许多功能重复的标准。当更仔细地考虑这些标准时,它们很明显都基于现有的产品,如WSFL基本上是IBM的Flowmark/MQ Series工作流语言的复制品。许多软件供应商参与的标准往往是不同观点的一种妥协,这样的标准导致不精确以及不必要的复杂。如工作流管理联盟的XPDL使软件供应厂商有各自的解释标准(使标准变得毫无用处)。BPEL4WS融入了WSFL和XLANG两种标准,使得这种语言十分复杂。

    通过这些观察,寻找一些比较网络服务组件语言的客观测度是有用的。对于这些语言的控制流方面,可以利用工作流研究的一些结果。比较BPEL4WS、BPML、WSCI、XLANG和WSFL等标准的一种方法是使用http://www.tm.tue.nl/it/research/patterns上的工作流模式。最近此站点在20种基本工作流模式的基础上,增加了对BPEL4WS、BPML、WSCI、XLANG 和 WSFL等多种语言的评价。

    结论

    BPMI是提出网络服务组件标准的组织之一。BPMI.org定义了业务流程建模语言BPML (Business Process Modeling Language)和业务流程查询语言BPQL (Business Process Query Language)等开放的规范,它们利用即将推出的企业流程管理系统BPMS(Business Process Management Systems),促进电子商务流程标准化管理,就象SQL使用现有的数据库管理系统实现了企业数据的标准化管理。

    类似SQL的网络服务标准是雄心勃勃的目标。如历史展示的那样,这样的标准不会在厂商推广自己产品的过程中出现。想当初Chen提出的实体-关系模型(Entity-Relationship model)和Codd的关系模型(Relational Model)促进了SQL等语言的产生。虽然存在集表示、简单、形式语义(Petri网和过程代数)于一体的流程建模技术(比较.Petri网和过程代数),软件行业却忽略这些技术。结果世界面临着太多的标准,它们主要由具体产品和/或商业利益驱动的。结束这种状况的唯一途径是忽略那些不使用已有流程建模技术的标准提议。这使软件提供商重视实际问题而非产生新的问题。

    原文作者:Wil M.P. van der Aalst,著名的工作流专家、教授

    来源:AMT
    作者:赵卫东 陈春犁

    展开全文
  • 流程管理

    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
    展开全文
  • 互联网项目管理流程(SOP)总结

    万次阅读 2017-12-01 14:28:33
    无规矩不成方圆。 项目角色产品经理(PM) 后台开发(RD) 前端开发(FE) 系统测试(QA)项目周期主要的环节包括 :需求评审、项目开发、提测、系统测试、发布上线等 序号 环节 主R(responsible) ...
  • 项目管理流程整理

    千次阅读 2018-07-25 19:19:11
    管理一个项目包括: 识别需求 确定清晰而能实现的目标 平衡质量、范围、时间和成本四方面互不相让的要求 使具体任务、计划和方法适用于各个项目干系人不同的需求和期望 项目经理职责与能力: 职责: 履行合同...
  • 26个流程:战略管理、需求管理、服务组合管理、变更评估、设计协作管理、服务验证与测试、转换规划与支持、访问管理、事件管理、事态管理、请求履行、问题管理、资产与配置管理、变更管理、发布与部署管理、服务级别...
  • 学生管理系统流程分析图

    万次阅读 多人点赞 2012-08-25 09:51:11
    学生管理系统基本完成,上一篇我的博客写了关于我在写学生管理系统的一些常见错误的总结 这是原文链接http://blog.csdn.net/yudandan10/article/details/7905428  这篇博客主要写写关于学生管理...
  • 管理信息系统——数据流程图例题

    万次阅读 2014-06-02 13:11:35
    1.请根据某采购部门如下的订货过程,绘制数据流程图。 采购部门收到仓库的采购单后,先查阅订货合同单,若发现已订货,则向供货单位 发催货单,否则填写订货单,发给供货单位。 采购部门收到供货单位的到货通知后...
  • 学生信息管理系统—流程

    千次阅读 2019-08-30 17:26:57
    前言:今天回顾了一下学生信息管理系统,对学生信息管理系统再一次进行了梳理,并画了流程...学籍管理流程图 注:其余的窗体和学籍管理窗体的逻辑是一样的,所以就画了一个学籍管理窗体来代表后面的一些窗体。 ...
  • 流程梳理

    万次阅读 2014-04-15 11:06:44
    流程梳理很多CIO和我联系希望我讲讲流程管理流程和IT结合的事。因为CIO们在推进IT项目时候,不理解业务流程、企业业务流程不清晰、业务流程和IT功能怎么结合使用,这些问题给IT项目的推进带来了很大的阻碍,所以...
  • 项目研发的全过程管理是一个极其复杂的流程,在实际应用中,禅道又可以单独作为需求管理,项目任务管理,bug管理工具来使用,因此,禅道的操作流程可以分为多个小的管理流程。从需求管理的角度...
  • 变更控制流程图(PMP第五版)

    万次阅读 2013-08-23 13:05:12
  • 软件测试流程图&Bug管理流程

    千次阅读 2017-07-06 15:47:31
    软件测试流程图: 缺陷(Bug)管理流程图:
  • 权限管理流程

    千次阅读 2014-01-13 08:58:55
    以下是认证(检查一个在Sesion中是否有usre),验证(是否具有某个资源的访问的权限:) 登录过程: 显示菜单的过程:
  • 企业流程运行现状评估的5个维度

    千次阅读 2018-05-11 13:32:13
    一、流程评估的目的导致企业经营不佳、竞争力差、管理失控等多种问题的原因是非常综合的,主要源自于战略(执行)、流程设计,也有流程执行等诸多原因。1、应该通过流程评估探寻战略问题,检验企...
  • 六大ITIL运维流程管理模式分析

    千次阅读 2012-11-29 13:41:51
    企业IT运维管理系统的建设可以帮助企业最大限度的降低运营成本,提高运营效率。目前较为流行的是ITIL标准。而ITIL运维流程管理模式主要有以下几个方面。   服务台   作为用户与IT部门的惟一连接点,服务台能够...
  • 完整的ERP流程图大全

    千次阅读 2008-02-01 13:15:00
    完整的ERP流程图大全http://bbs.ctocio.com.cn/thread-37130-1-1.html企业销售管理业务的第一层数据流图 3销售基础数据管理业务数据流图(第二层数据流) 4销售计划管理业务数据流图(第二层数据流) 4销售订单管理...
  • ITIL学习笔记——ITIL核心流程

    万次阅读 2018-06-20 16:31:05
    英国商务部OGC于2000年,对ITIL在原有基础上做了补充完善,形成了由6个模块组成的ITIL框架:业务...服务提供Service delivery包括:服务级别管理IT财务管理IT服务持续性管理可用性管理能力管理服务支持Service su...
  • BPM那些事儿——开源BPM引擎

    万次阅读 2015-08-20 18:24:23
    BPM是Business Process Management的英文字母缩写,即业务流程管理。BPM的核心是通过对企业运营的业务流程的梳理、改造、监控、优化来获得利益的最大化。而BPM软件就是针对这种管理方式而产生的,是为了帮助企业实现...
1 2 3 4 5 ... 20
收藏数 859,333
精华内容 343,733
关键字:

管理流程