持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天,点击查看活动详情
activiti中的一些概念
上回聊到activiti中的流程定义的概念,其中流程定义是用bpmn规范来描述的,而activiti中以ProcessDefinition来作为流程定义的对象。接下来看看流程实例是怎么样的。
activiti中流程实例
流程定义我们清楚了,但是流程跑起来之后,需要有个东西来描述流程当前的走向以及状态,以便用户查看以及排查问题,这个东西在activiti中使用流程实例(ProcessInstance)去表示的,它可以用来表示流程当前运行的状态,以及流程当前执行的节点信息,日志等。
如果这么讲还不清楚流程实例是做什么的话,我们来举个例子:
我们可以将流程定义看作菜谱,流程实例看作是用菜谱做出来的一道道真实的菜肴。菜谱规定了做菜所需要的材料以及做菜的步骤,但是菜谱本身不可以吃。菜谱的记录方式多种多样,如:将步骤记录在本子上可以作为菜谱、将做菜的步骤用计算机的记事本记录下来也可以算菜谱,但是无论以什么形式去记录这些东西,它本质上还是一串描述信息,无法作为真实的菜肴供人食用。而流程实例作为菜肴存在,是可以被人所享用的,我们根据菜谱规定的材料,以及做菜顺序,就可以做出真实可使用的菜。我们做菜的过程其实就是流程实例。每次做菜,我们放的调料量可能不一样,火候也可能不一样,那么流程实例也是一个道理,每个流程启动之后,用户输入的数据不一样,流程的走向也可以不一样,这就是和流程定义不一样的地方。
总的来说,流程定义相当于一串描述信息,而流程实例是一连串的动作。