在AstroZero服务编排或工作流中,引用的资源无法编辑
问题描述
已获取锁状态下,服务编排、BPM(工作流)中,引用的资源无法编辑。如下图所示,服务编排“命名空间__FlowA”中调用其他服务编排“命名空间__FlowB”,“命名空间__FlowA”处于已获取锁状态下,无法编辑调用资源“命名空间__FlowB”的入参和出参。
解决方法
最新版本AstroZero的服务编排、BPM流程编排只允许调用当前应用下的资源(例如脚本、服务编排、对象),不允许跨应用调用资源。
若老版本中创建的服务编排、BPM流程编排调用了不同应用下的资源,不会影响运行态效果,在开发环境的服务编排、BPM流程编排中无法编辑其调用的资源。
问题描述示例中,如果需要编辑“命名空间__FlowB”出参入参,处理思路为:如果多个应用需要调用某个共同的资源,建议在BO中新建公共资源,在应用里内部依赖或者外部依赖导入BO,再调用该资源。
- 创建BO,将需要调用的资源封装为BO中的公共接口。
- 参考创建BO中操作,创建一个标签和名称为“BOTest”的BO。
- 在BO中,新建需要调用的资源“命名空间__FlowC”,该资源与需要调用的资源“命名空间__FlowB”定义相同。
- 新建后,单击编辑器上方的,启用BO。
新建“命名空间__FlowC”后,该资源可见性默认为“公开”,表示在其他应用中可调用该资源。
- 参考图2和图3,在BO中新建公共接口,该接口用于封装“命名空间__FlowC”。
在BO开发页面中,单击左下角的“服务”新建API时,需要指定版本号,且接口区分“公共接口”和“私有接口”。
“公共接口”是提供REST接口给第三方系统或内部系统调用的,“私有接口”是提供SDK接口给内部系统调用的。本示例选择“公共接口”。
- 进入服务编排所属的应用,引入BO,在服务编排中使用BO图元调用接口,从而调用资源。
- 进入服务编排“命名空间__FlowA”所在的应用开发工作台,单击“Internal dependencies”或“External dependencies”旁的“+”,选择“BO服务”,添加“BOTest”。
添加后,在该应用的服务编排中,才可以调用BO服务。
- “Internal dependencies”为内部依赖文件夹,导入的BO服务或Native服务,在打包上层应用时也会随应用打包发布出去。
- “External dependencies”为外部依赖文件夹,导入的BO服务或Native服务,在打包上层应用时不会打包出去。
图4 应用中添加BO服务
图5 选择BO
- 参考图6,服务编排“命名空间__FlowA”改用BO图元,调用该公共接口,注意API类型选择“REST”。
- 进入服务编排“命名空间__FlowA”所在的应用开发工作台,单击“Internal dependencies”或“External dependencies”旁的“+”,选择“BO服务”,添加“BOTest”。