# 华为云Astro轻应用服务编排概述
服务编排是华为云Astro轻应用的核心低代码开发能力，其核心价值是通过零代码/低代码快速组合功能、复用已有资源，帮助开发者高效构建业务流程。它是一种通过简单的拖拉拽式流程编排以及参数配置的方式，来进行服务开发的能力，并支持对已开发的服务重新进行组合编排。用户能够在服务编排编辑器内，以图形化编排的形式快速地进行服务的开发并扩展出更丰富的业务功能，同时能够与API接口进行绑定，以API的形式对外提供服务。
#### 为什么使用服务编排
通过服务编排，可以将已实现的脚本、服务编排等功能进行复用，只需要进行图形化编排以及相关参数配置，即可针对自身的独特业务需求并以流程的方式将所要实现的功能展现出来，甚至不需要有任何编程经验即可完成服务的开发，降低了开发难度提高了开发效率。
#### 服务编排基本能力
- 拖拉拽式编排流程 以往的传统编程，需要进行变量的声明并编写相应逻辑代码进行服务的开发。使用服务编排进行服务开发，能够通过拖拉拽的方式，将配置项创建的变量以及服务编排中提供的各种功能进行编排，并以流程的方式将服务所要实现的功能展现出来。整个开发过程中无需进行代码的编写，简单快捷，并能够图形化展示服务的逻辑。
  
- 逻辑处理 服务编排中提供了逻辑处理的图形化元件，包括赋值、循环、跳出循环、决策和等待。通过这些图元能够实现基本的逻辑处理，并图形化展示，便于开发者理解。
  
- 对象处理 服务编排中提供了对象处理的图形化元件，包括记录创建、记录查询、记录更新和记录删除。通过这些图元能够对通过平台创建的自定义对象或标准对象进行相应的增、删、改、查操作，简化处理对象数据的流程，提高开发效率。
  
- 服务单元组合脚本、原生服务、BO和第三方服务 服务单元组合用于集成平台已开发完成的各类服务，通过重新组合迅速扩展业务功能。服务编排中提供的图形化组件包括脚本、子服务编排、原生服务、BO和连接器，可直接将已实现的各类服务集成到当前编排流程中。
  
 
#### 服务编排与模块间调用关系
服务编排将平台提供的部分功能模块进行了封装，并提供了平台其他模块调用服务编排的能力，下面介绍其他模块与服务编排是如何进行相互调用的。
- 脚本
  - 在服务编排中，可通过配置脚本图元，选择当前应用中的脚本，进行脚本的调用。
  
  - 在脚本中，可以通过引入sys库，再执行"sys.invokeFlow(*{Flow_Name}*)"，进行服务编排的调用。其中，"Flow_Name"为服务编排的名称。
   

- 对象 在服务编排中，可以通过配置记录创建、查询、更新和删除图元，对当前应用中的对象记录进行增删改查。
  
- 标准页面 在标准页面的模型视图中，新建服务模型，能够绑定服务编排，进行服务编排的调用。
  
- 工作流 在工作流中，可以通过配置"调用服务编排"活动，选择相应的服务编排，进行服务编排的调用。
  
- API接口 在新建开放接口时，选择资源类型为"服务编排"，并选择相应的服务编排，即可将服务编排绑定到服务接口上，通过API接口进行服务编排的调用。
  
- BO 在服务编排中，调用BO进行使用，详情请参见[为华为云Astro轻应用服务编排添加BO图元](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9150.html)。
  
- 连接器 在服务编排中，调用与第三方系统对接的接口，如对接短信发送、云存储、系统中已定义的Action等，详情请参见[为华为云Astro轻应用服务编排添加连接器图元](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9152.html)。
  
服务编排中只允许调用当前应用工程下的资源，如对象、脚本。例如，服务编排A中需要调用脚本B，请确保A和B处于同一应用中。如果需要调用的资源不在同一应用中，则在服务编排A所在的应用中新建脚本B，或选择"使用已有脚本"导入脚本B，再在服务编排A中调用该脚本。
图1通过"使用已有脚本"导入脚本   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936100905.png "点击放大")
#### 服务编排调用约束
- 不允许在服务编排中，调用BO内的服务编排和脚本。
- 不允许跨BO调用脚本和服务编排。 例如，人员BO的服务编排不允许调用空间BO内的服务编排和脚本。
  
 
