14-部署流程定义方式

部署信息和流程定义针对的表不一样,部署信息针对的是act_re_deployment,流程定义针对的是act_re_procdef。每部署一次都会往act_re_deployment插入一条信息,而且还会往act_re_procdef插入一条信息,并且act_re_procdef的信息还有外键DEPLOYMENT_ID_。所以它们之间有区别也有联系,有一个外键关联。

部署可以认为是添加的操作,没有修改的功能,只有增删查,为什么框架没有提供修改功能?因为修改功能会产生一系列的问题。

如果把流程定义的项目经理审批删除了,那么意味着从提交请假申请直接走到了部门经理审批。那么原先已经启动的正在执行的流程你让它怎么走?可能有一些流程走到第一个节点,有一些流程走到第二个节点,有一些流程走到第三个节点,那样就会产生问题了。所以这个时候如果提供修改功能的话,你清洗原文之后,可能原因由很多流程之外执行,他们还按照老的流程执行,这样会产生很多问题。所以框架并没有这样设计,没有提供修改功能。那我这个图就是画错了要修改,你可以重新部署一个。这个框架做的还是比较智能的,你原先在这个流程修改之前已经提供的那个流程,还按照老的流程去执行。而现在最新的是最下面的版本最高的流程,它会自动按照最新的去执行。如果这个流程图你画错了,你可以重新去设计一个新的或者重新部署一下,后面的人再使用这个流程的时候,会自动选择最新的。而这个流程修改之前已经启动的那些流程,还是按照原先的流程去执行,大概是这么一个效果啊。

所以这边没有修改流程定义这个代码。

有输入流就可以做文件下载了。只要得到输入流就有办法把它下载下来。

 * 启动流程实例
  * 方式一:根据流程定义的id启动
  * 方式二:根据流程定义的Key启动(自动选择最新版本的流程定义启动流程实例)

如果流程定义有很多个版本(同一个流程定义被修改之后(或者不被修改)启动了很多次流程实例),那么按照流程定义的Key值(Key值都是一样的)启动流程实例会自动按照最新的版本(VERSION_最大的那个)启动。如果后面你又部署了一个请假流程,它还是按照最新的那个启动流程实例。所以按照流程定义的Key启动流程实例更加实用一点,框架会自动帮助我们选择最新的流程定义来启动流程实例。

直接将流程向下执行一步  张三将请假申请提交给李四,李四不在公司,那就意味着李四没有办法登录我们这个系统去审批,李四不审批后面王五也审批不了,这个时候我们可以告诉管理员让他登录一下系统,管理员登录系统不是让他把这个任务办了,是手动去干预一下这个任务,让这个流程继续向下执行一步,走到下一个节点,那就意味着我们跳过了李四这一步,就是这么一个需求。那么一般我们知道,我们在分配权限的时候,只有管理员可以做这个事情,要是谁都能做这个事情那就完了,自己给自己全都走完了所有流程了。所以这个功能我们是需要控制的,一般人不可以做这个事情的。我们可以告诉管理员让他去手动地干预一下这个流程的执行。

虽然读取的是zip压缩文件,但是框架把资源文件写入数据库的时候把压缩文件给解开了

原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/6404145.html