2023年7月24日发(作者:)
⼯作流-bpmn流程图说明processprocess表⽰⼀整个流程,其中有两个主要属性:id:必填属性,将映射为FlowableProcessDefinition对象的key参数。可以使⽤RuntimeService中的startProcessInstanceByKey⽅法,使⽤id来启动这个流程定义的新流程实例。这个⽅法总会使⽤流程定义的最新部署版本。1ProcessInstance processInstance = rocessInstanceByKey("myProcess");请注意这与调⽤startProcessInstanceById⽅法不同。startProcessInstanceById⽅法的参数为Flowable引擎在部署时⽣成的字符串ID(可以通过调⽤()⽅法获取)。⽣成ID的格式为
key:version,长度限制为64字符。请注意限制流程_key_的长度,否则会抛出FlowableException异常,提⽰⽣成的ID过长。name:可选属性,将映射为ProcessDefinition的_name_参数。引擎本⾝不会使⽤这个参数。可以⽤于在⽤户界⾯上显⽰更友好的名字。startEvent(开始事件)sequenceFlow(顺序流)定义: 顺序流(sequence flow)是流程中两个元素间的连接器。在流程执⾏过程中,⼀个元素被访问后,会沿着其所有出⼝顺序流继续执⾏。这意味着BPMN 2.0的默认是并⾏执⾏的:两个出⼝顺序流就会创建两个独⽴的、并⾏的执⾏路径。顺序流需要有流程唯⼀的id,并引⽤存在的源与⽬标元素:
执⾏,流程会以并⾏⽅式继续⽹关⽹关(gateway)⽤于控制执⾏的流向(或者按BPMN 2.0的⽤词:执⾏的_“标志(token)”_)。⽹关可以_消费(consuming)_与_⽣成(generating)_标志。⽹关⽤其中带有图标的菱形表⽰。该图标显⽰了⽹关的类型。排他⽹关描述 排他⽹关(exclusive gateway)(也叫异或⽹关 XOR gateway,或者更专业的,基于数据的排他⽹关 exclusive data-basedgateway),⽤于对流程中的决策建模。当执⾏到达这个⽹关时,会按照所有出⼝顺序流定义的顺序对它们进⾏计算。选择第⼀个条件计算为true的顺序流(当没有设置条件时,认为顺序流为true)继续流程。 > 注 : 在Flowable中出⼝顺序流的含义与BPMN 2.0中的⼀般情况不⼀样。⼀般情况下,会选择所有条件计算为true的顺序流,并⾏执⾏。⽽使⽤排他⽹关时,只会选择⼀条顺序流。当多条顺序流的条件都计算为true时,会且仅会选择在XML中最先定义的顺序流继续流程。如果没有可选的顺序流,会抛出异常图⽰排他⽹关⽤内部带有’X’图标的标准⽹关(菱形)表⽰,'X’图标代表_异或_的含义。请注意内部没有图标的⽹关默认为排他⽹关。BPMN 2.0规范不允许在同⼀个流程中混合使⽤有及没有X的菱形标志。并⾏⽹关8.4.2. 并⾏⽹关描述⽹关也可以建模流程中的并⾏执⾏。在流程模型中引⼊并⾏的最简单的⽹关,就是并⾏⽹关(parallel gateway)。它可以将执⾏_分⽀(fork)_为多条路径,也可以_合并(join)_多条⼊⼝路径的执⾏。并⾏⽹关的功能取决于其⼊⼝与出⼝顺序流:分⽀: 所有的出⼝顺序流都并⾏执⾏,为每⼀条顺序流创建⼀个并⾏执⾏。合并: 所有到达并⾏⽹关的并⾏执⾏都会在⽹关处等待,直到每⼀条⼊⼝顺序流都到达了有个执⾏。然后流程经过该合并⽹关继续。> 请注意,如果并⾏⽹关同时具有多条⼊⼝与出⼝顺序流,可以同时具有分⽀与合并的⾏为。在这种情况下,⽹关⾸先合并所有⼊⼝顺序流,然后分裂为多条并⾏执⾏路径。与其他⽹关类型有⼀个重要区别:并⾏⽹关不计算条件。如果连接到并⾏⽹关的顺序流上定义了条件,会直接忽略该条件。图⽰并⾏⽹关,⽤内部带有’加号’图标的⽹关(菱形)表⽰,代表_与(AND)_的含义。包容⽹关可以把 包容⽹关(inclusive gateway) 看做排他⽹关与并⾏⽹关的组合。与排他⽹关⼀样,可以在包容⽹关的出⼝顺序流上定义条件,包容⽹关会计算条件。然⽽主要的区别是,包容⽹关与并⾏⽹关⼀样,可以同时选择多于⼀条出⼝顺序流。包容⽹关的功能取决于其⼊⼝与出⼝顺序流:分⽀: 流程会计算所有出⼝顺序流的条件。对于每⼀条计算为true的顺序流,流程都会创建⼀个并⾏执⾏。合并: 所有到达包容⽹关的并⾏执⾏,都会在⽹关处等待。直到每⼀条具有流程标志(process token)的⼊⼝顺序流,都有⼀个执⾏到达。这是与并⾏⽹关的重要区别。换句话说,包容⽹关只会等待可以被执⾏的⼊⼝顺序流。在合并后,流程穿过合并并⾏⽹关继续。请注意,如果包容⽹关同时具有多条⼊⼝与出⼝顺序流,可以同时具有分⽀与合并的⾏为。在这种情况下,⽹关⾸先合并所有具有流程标志的⼊⼝顺序流,然后为每⼀个条件计算为true的出⼝顺序流分裂出并⾏执⾏路径。 > 包容⽹关的汇聚⾏为⽐并⾏⽹关更复杂。所有到达包容⽹关的并⾏执⾏,都会在⽹关等待,直到所有“可以到达”包容⽹关的执⾏都“到达”包容⽹关。 判断⽅法为:计算当前流程实例中的所有执⾏,检查从其位置是否有⼀条到达包容⽹关的路径(忽略顺序流上的任何条件)。如果存在这样的执⾏(可到达但尚未到达),则不会触发包容⽹关的汇聚⾏为。基于事件的⽹关基于事件的⽹关(event-based gateway)提供了根据事件做选择的⽅式。⽹关的每⼀条出⼝顺序流都需要连接⾄⼀个捕获中间事件。当流程执⾏到达基于事件的⽹关时,与等待状态类似,⽹关会暂停执⾏,并且为每⼀条出⼝顺序流创建⼀个事件订阅。请注意:基于事件的⽹关的出⼝顺序流与⼀般的顺序流不同。这些顺序流从不实际 执⾏。相反,它们⽤于告知流程引擎:当执⾏到达⼀个基于事件的⽹关时,需要订阅什么事件。有以下限制:userTask(⽤户任务)⽤户任务(user task)⽤于对需要⼈⼯执⾏的任务进⾏建模。当流程执⾏到达⽤户任务时,会为指派⾄该任务的⽤户或组的任务列表创建⼀个新任务。
发布者:admin,转转请注明出处:http://www.yc00.com/web/1690213663a315826.html
评论列表(0条)