
# 开发服务编排
服务编排(Flow)是基于图元拖拽式开发业务逻辑的一种方式，分为两类：Autolauched Flow和 Event Trigger。
- Autolaunched Flow：自启动Flow，在接口调用后会立即执行Flow模型定义的逻辑。
- Event Trigger：事件触发的Flow，则会在事件触发时才会开始执行Flow模型定义的逻辑。
#### 背景信息
服务编排是一种通过简单的拖拉拽式流程编排以及参数配置的方式来进行服务开发的能力。开发者能够在服务编排编辑器内以图形化编排的形式快速地进行服务的开发并扩展出更丰富的业务功能，同时能够与API接口进行绑定，以API的形式对外提供服务。
通过服务编排，也可以将已实现的脚本、服务编排等功能进行复用，只需要进行图形化编排以及相关参数配置，即可针对您自己的独特业务需求并以流程的方式将业务需求所要实现的功能展现出来，甚至不需要有任何编程经验即可完成服务的开发，降低了开发难度提高了开发效率。
#### 场景描述
本节以调用[开发脚本](https://support.huaweicloud.com/devg-isdp-Intel/seddev_018.html)中的脚本（addAccruedLeaveRecord1）开发一个服务编排为例，描述开发服务编排（addAccruedLeaveRecord）的过程。
#### 操作步骤
1. 创建服务编排。 
   1. 如[图1]所示，在应用的开发页面，选择存放服务编排的目录（控制逻辑），单击目录对应的![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001514424322.png)，选择"服务编排"。
      图1创建服务编排   
      ![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001514104770.png) 
   
   2. 在弹出的"添加服务编排"页面，如[图2]所示，选择创建一个新的添加服务编排，输入"标签"和"名称"为"addAccruedLeaveRecord"，"类型"选择"Autolauched Flow"，单击"添加"。
      创建完成后，自动进入编辑页面。
      图2添加服务编排   
      ![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001565184305.png "点击放大") 
   
   
   
   
2. 创建该服务编排的入参和出参变量。由于该服务编排封装的是脚本，则该服务编排的入参和出参的字段类型和字段名与脚本保持一致。 
    表1服务编排变量 
   | **量类型**      | **参数名**       | **Data Type** | **Input/Output Type** |
   |:---|:---|:---|:---|
   | 普通变量Variable | personCode    | 文本            | Input Only            |
   | 普通变量Variable | personName    | 文本            | Input Only            |
   | 普通变量Variable | shiftId       | 文本            | Input Only            |
   | 普通变量Variable | shiftName     | 文本            | Input Only            |
   | 普通变量Variable | recallStart   | 文本            | Input Only            |
   | 普通变量Variable | recallEnd     | 文本            | Input Only            |
   | 普通变量Variable | bpmName       | 文本            | Input Only            |
   | 普通变量Variable | bpmLable      | 文本            | Input Only            |
   | 普通变量Variable | bpmInstanceId | 文本            | Input Only            |
   | 普通变量Variable | recallReason  | 文本            | Input Only            |
   | 普通变量Variable | statusCode    | 文本            | Output Only           |
   | 普通变量Variable | message       | 文本            | Output Only           |
      
   1. 如[图3]所示，在服务编排编辑器页面右侧单击![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001514424314.png)，在全局上下文页面单击"变量"后的加号。
      图3全局上下文   
      ![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001514104766.png) 
   
   2. 如[图4]所示，单击新增变量后的![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001565264669.png)，选择"设置"。
      图4设置变量   
      ![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001565264653.png) 
   
   3. 如[图5]所示，配置普通变量"personCode"，参数配置说明请参见[表2]，配置完成后单击"保存"。
      图5配置普通变量   
      ![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001514424318.png "点击放大")
       表2参数说明 
      | **参数** | **参数说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | **如何配置**          |
      |:---|:---|:---|
      | 名称     | 变量名称，必填。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 直接输入"personCode"。 |
      | 数据类型   | 变量的数据类型。必填。支持以下几种。 - 文本  - 数字  - 货币  - 日期  - 日期/时间  - 复选框   | 从下拉列表选择"文本"。      |
      | 默认值    | 变量的默认取值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 不用配置。             |
      | 描述     | 该变量的描述说明。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 选填项，建议填写该变量的作用。   |
      | 是否为数组  | 是否为数组型变量即集合变量。                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 不勾选。              |
         
      
   
   4. 参考[2.a]\~[2.c]配置[表1]中其他普通变量。
   
   5. 如[图6]所示，在服务编排编辑器页面右侧单击![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001565024409.png)，按照[表1]从全局上下文页面中拖曳参数到相应的入参和出参区域。
      图6配置出入参   
      ![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001514104778.png "点击放大") 
   
   6. 如[图7]所示，拖拽"基本"下"脚本"图标至画布中，松开鼠标左键。
      图7添加脚本网元   
      ![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001565384561.png "点击放大") 
   
   7. 如[图8]所示，选择脚本，单击![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001565024393.png)，配置网元基本信息。
      图8配置网元基本信息   
      ![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001514264354.png "点击放大") 
   
   8. 如[图9]所示，单击![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001514104774.png)，选择调用的脚本，单击![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001514104762.png)，自动映射同名出入参。
      图9配置调用的脚本   
      ![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001513945194.png "点击放大") 
   
   9. 如[图10]所示，连接元素。
      图10连接元素   
      ![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001565384549.png) 
   
   10. 单击页面上方的![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001565264665.png)，保存服务编排。
   
   
   
   
3. 调试服务编排。 
   如[图11]所示，单击页面上方的![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001565024397.png)，输入参数后单击"运行"。
   图11运行   
   ![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001565264657.png "点击放大")
   如[图12]所示，检查输出页签的调试结果是否符合预期。
   图12输出结果   
   ![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001565024401.png "点击放大")
   
   
4. 启用服务编排。 
   单击页面上方的![](https://support.huaweicloud.com/devg-isdp-Intel/zh-cn_image_0000001565024405.png)，启用服务编排。
   ![](https://support.huaweicloud.com/devg-isdp-Intel/public_sys-resources/note_3.0-zh-cn.png)
   编排服务开发完成后，可以封装成一个接口，供调用，具体请参见[如何自定义调用服务编排的URL](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0042.html)。
   
   
 
