请问有在线的流程设计器么?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2013-06-24
最后修改:2014-03-20
本功能依托于bboss分支和Activiti 5.12.0版本。 为activiti组件org.activiti.engine.repository.DeploymentBuilder增加以下接口方法: Deployment deploy(int deploypolicy); 参数deploypolicy为int类型,用来指定流程部署策略,有三个值: DeploymentBuilder.Deploy_policy_default DeploymentBuilder.Deploy_policy_upgrade DeploymentBuilder.Deploy_policy_delete 这三个值作为常量定义在部署接口org.activiti.engine.repository.DeploymentBuilder中。他们的含义分别为: DeploymentBuilder.Deploy_policy_default 没有执行完毕的旧版本实例任务仍然根据旧版本流程定义运行 DeploymentBuilder.Deploy_policy_upgrade 没有执行完毕的旧版本实例任务迁移到新版本流程定义运行 DeploymentBuilder.Deploy_policy_delete 直接取消没有执行完毕的旧版本实例任务 原来的部署接口方法任然保留: Deployment deploy(); 以下是两个简单的使用扩展接口部署流程示例: public Deployment deployProcDefByZip(String deploymentName, ZipInputStream processDef,int upgradepolicy) { DeploymentBuilder deploymentBuilder = processEngine .getRepositoryService().createDeployment().name(deploymentName); deploymentBuilder.addZipInputStream(processDef); /** * 参数upgradepolicy可以为以下常量值: * DeploymentBuilder.Deploy_policy_default * DeploymentBuilder.Deploy_policy_upgrade * DeploymentBuilder.Deploy_policy_delete * */ return deploymentBuilder.deploy(upgradepolicy); } public Deployment deployProcDefByPath(String deploymentName, String xmlPath, String jpgPath,int deploypolicy) { Deployment deploy = null; /** * 参数deploypolicy可以为以下常量值: * DeploymentBuilder.Deploy_policy_default * DeploymentBuilder.Deploy_policy_upgrade * DeploymentBuilder.Deploy_policy_delete * */ if(jpgPath != null && !jpgPath.equals("")) { deploy = repositoryService.createDeployment() .name(deploymentName).addClasspathResource(xmlPath) .addClasspathResource(jpgPath).deploy(deploypolicy); } else { deploy = repositoryService.createDeployment() .name(deploymentName).addClasspathResource(xmlPath).deploy(deploypolicy); } return deploy; } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2013-06-25
解决了这个问题,非常好啊。。。
|
|
返回顶楼 | |
发表时间:2013-06-26
这样容易出问题,你修改流程的时候还要去考虑会不会出问题。。。
我想activiti不做这种功能就是因为不同版本升级要考虑的事情太多 |
|
返回顶楼 | |
发表时间:2013-06-26
cjwkof 写道 这样容易出问题,你修改流程的时候还要去考虑会不会出问题。。。
我想activiti不做这种功能就是因为不同版本升级要考虑的事情太多 呵呵,什么情况下都可能出现问题,注意我们在文中提到了三种策略,一种是最常用的默认策略,一种是升级实例策略,一种是取消实例策略,每种策略都有他适用的场景。更新策略举个最简单的例子,当流程跑到中间某个环节时,跑不下去了,结果发现是流程定义有问题,这时候就会修改一流程定义,业务和前端程序都没修改,这样就可以在部署新流程时选择升级实例策略,将旧版实例全部升级到新版上来了。当然根据实际需要,也可以选择取消实例策略。 |
|
返回顶楼 | |
发表时间:2013-06-26
楼主考虑的很全面,新扩展的功能也是很多场景用到的,支持!
|
|
返回顶楼 | |
发表时间:2013-06-27
|
|
返回顶楼 | |
发表时间:2013-06-27
最后修改:2013-06-27
个人觉得楼主这样做意义不大,拿更新策略来说,难道你的应用上线时不做测试?还会出现旧流程跑到某个节点走不下去的情况?
|
|
返回顶楼 | |
发表时间:2013-06-27
运行时更改流程的情况还是比较多的,这个设计的意义很重大。。。。
|
|
返回顶楼 | |
发表时间:2013-06-27
最后修改:2013-06-27
Jacarri_Chan 写道
请问有在线的流程设计器么? 暂时没有做activiti的在线web流程设计器,不过activiti官方提供了一个activiti modler的web在线流程设计器,感兴趣可以去试用一下。 |
|
返回顶楼 | |
发表时间:2013-06-27
最后修改:2013-06-27
zuiyanwangyue 写道 个人觉得楼主这样做意义不大,拿更新策略来说,难道你的应用上线时不做测试?还会出现旧流程跑到某个节点走不下去的情况?
我只是举了个简单的例子而已,例子中的场景更适应于开发环境流程的调试场景,但是也不排除在实际生产环境下使用。 总之,流程实例升级特性一般更多地出现在很多商业bpm产品中,比如ibm bpm,oracle bpm,SoftAG bpm等,开源BPM中很少有提供这种便利功能的,这些商业产品动辄上百万的投资,非常昂贵,我只是希望在开源的产品中也能够具备这些便利的功能,从而为自己的项目提供更多的便利。 |
|
返回顶楼 | |