为保护已产生实例的流程正常运转,处于不同版本状态的流程给予建模人员的操作权限是不同的,AWS的流程版本分为三个互斥状态:
在建模设计时,不同版本开放的设计权限不同。
设计状态版本(DESIGN) | 发布状态版本(RUN/RELEASE) | 关闭状态版本(CLOSED) |
---|---|---|
- 全设计功能 - 全属性配置 - 删除校验 |
- 部分设计功能 -全属性配置 - 结构保护 |
- 全只读 |
设计状态版本(DESIGN) | 发布状态版本(RUN/RELEASE) | 关闭状态版本(CLOSED) |
---|---|---|
- 全功能 | - 全功能 | - 未运行完的实例继续运行 |
当用户拥有该流程启动权限,在新建流程实例时,以下版本均可视:
流程级别为
子流程
的流程不可直接使用。
对于API开发者,这是一个重要概念。每个流程(包括不同的版本)模型都会分配一个不重复的流程定义ID
,当流程模型被创建多个版本时,设计器会取第1个版本作为流程版本ID
。
我们假设一个A流程的版本结构如下:
流程定义ID | 流程版本ID | 版本号 |
---|---|---|
aaa | aaa | 1.0 |
bbb | aaa | 2.0 |
ccc | aaa | 3.0 |
要为A流程创建实例,API代码可能如下:
SDK.getProcessAPI().createProcessInstance("aaa", uid, title);
如上场景是我们推荐的,即送入流程版本ID
作为启动流程API的processDefId
参数值。当用户停用了1.0版本,部署2.0版本时,createProcessInstance方法仍然能够智能的对应到bbb
模型。也就是说,流程版本ID
的出现,避免了开发者硬代码对特定流程模型的锁定。
如果将bbb
或者ccc
作为API参数值,createProcessInstance方法会强行执行该版本的模型定义,无论该流程是否有了新的版本。
在设计器查看流程版本ID:
使用API查询流程的版本ID:
//送入一个流程模型ID,获得该模型的版本ID
SDK.getRepositoryAPI().getProcessVerId(processDefId);
完整的AWS PaaS系统包括DEV
、QAS
和PRD
三类部署环境,分别用于应用开发、质量保证和生产运行。与其他AWS PaaS的元数据模型一样,在DEV或QASdist
打包的版本升级到PRD
环境时,含有受管(Managed)
的流程模型将直接覆盖到生产环境。