文档首页/ Astro轻应用 AstroZero/ 常见问题/ 应用后端开发/ 在AstroZero服务编排或工作流中,引用的资源无法编辑
更新时间:2024-07-18 GMT+08:00
分享

在AstroZero服务编排或工作流中,引用的资源无法编辑

问题描述

已获取锁状态下,服务编排、BPM(工作流)中,引用的资源无法编辑。如下图所示,服务编排“命名空间__FlowA”中调用其他服务编排“命名空间__FlowB”,“命名空间__FlowA”处于已获取锁状态下,无法编辑调用资源“命名空间__FlowB”的入参和出参。

图1 服务编排中无法编辑

解决方法

最新版本AstroZero的服务编排、BPM流程编排只允许调用当前应用下的资源(例如脚本、服务编排、对象),不允许跨应用调用资源。

若老版本中创建的服务编排、BPM流程编排调用了不同应用下的资源,不会影响运行态效果,在开发环境的服务编排、BPM流程编排中无法编辑其调用的资源。

问题描述示例中,如果需要编辑“命名空间__FlowB”出参入参,处理思路为:如果多个应用需要调用某个共同的资源,建议在BO中新建公共资源,在应用里内部依赖或者外部依赖导入BO,再调用该资源。

  1. 创建BO,将需要调用的资源封装为BO中的公共接口。

    1. 参考创建BO中操作,创建一个标签和名称为“BOTest”的BO。
    2. 在BO中,新建需要调用的资源“命名空间__FlowC”,该资源与需要调用的资源“命名空间__FlowB”定义相同。
    3. 新建后,单击编辑器上方的,启用BO。

      新建“命名空间__FlowC”后,该资源可见性默认为“公开”,表示在其他应用中可调用该资源。

    4. 参考图2图3,在BO中新建公共接口,该接口用于封装“命名空间__FlowC”。

      在BO开发页面中,单击左下角的“服务”新建API时,需要指定版本号,且接口区分“公共接口”和“私有接口”。

      “公共接口”是提供REST接口给第三方系统或内部系统调用的,“私有接口”是提供SDK接口给内部系统调用的。本示例选择“公共接口”。

      图2 新建公共接口
      图3 封装“命名空间__FlowC”

  2. 进入服务编排所属的应用,引入BO,在服务编排中使用BO图元调用接口,从而调用资源。

    1. 进入服务编排“命名空间__FlowA”所在的应用开发工作台,单击“Internal dependencies”或“External dependencies”旁的“+”,选择“BO服务”,添加“BOTest”。
      添加后,在该应用的服务编排中,才可以调用BO服务。
      • “Internal dependencies”为内部依赖文件夹,导入的BO服务或Native服务,在打包上层应用时也会随应用打包发布出去。
      • “External dependencies”为外部依赖文件夹,导入的BO服务或Native服务,在打包上层应用时不会打包出去。
      图4 应用中添加BO服务
      图5 选择BO
    2. 参考图6,服务编排“命名空间__FlowA”改用BO图元,调用该公共接口,注意API类型选择“REST”。
      在服务编排“命名空间__FlowA”编辑器页面左侧,选择“BO”,从“Others”下拖拽1.a中定义的“BOTest”至画布。在画布中,选中BO图元,单击,在“BO”页面进行配置,使用BO图元调用接口。关于BO的详情介绍,请参见什么是BO
      图6 调用BO

相关文档