在AstroZero服务编排、工作流中,引用的资源无法编辑
问题描述
已获取锁状态下,服务编排、BPM(工作流)中,引用的资源无法编辑。如下图所示,服务编排“命名空间__FlowA”中调用其他服务编排“命名空间__FlowB”,“命名空间__FlowA”处于已获取锁状态下,无法编辑调用资源“命名空间__FlowB”的入参和出参。
![](https://support.huaweicloud.com/astrozero_faq/zh-cn_image_0000001891073385.png)
解决方法
最新版本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”。
应用后端开发 所有常见问题
- 如何区分不同账户间的数据库对象?
- 在AstroZero对象中删除字段重建后,引用的地方报错
- 如何刷新AstroZero对象的布局页面?
- 如何彻底删除AstroZero对象目录树中的数据?
- AstroZero系统预置的owner字段,用于记录什么用户?
- AstroZero脚本中可使用哪些资源?
- AstroZero脚本编写只支持TS,不支持JS吗?
- 在AstroZero脚本中执行sql语句时,可以不用@useObject修饰数据对象吗?
- 在AstroZero脚本中,如何返回zip压缩文件内容?
- 如何通过AstroZero脚本,导出xls文件让用户下载?
- AstroZero脚本中是否支持multipart/form-data请求?
- AstroZero服务编排中涉及数据操作的脚本图元,在其他图元操作失败的情况下,是否可以回滚?
- 事件触发的AstroZero服务编排,发送事件后,服务编排没有运行?
- 在AstroZero服务编排、工作流中,引用的资源无法编辑
- 如何实现某一资源被多个AstroZero应用的服务编排调用?
- 在AstroZero服务编排中,可以跨应用引用资源?
- 在AstroZero服务编排、工作流或脚本中,邮件发送功能不可用?
- AstroZero开发者如何使用自己的邮箱发送邮件?
more