
# 创建"查询设备"服务编排
"查询设备"脚本创建完成后，创建一个"服务编排"，并在服务编排中引用脚本，改造和配置服务编排的输入输出参数，使其更适用于前端页面调用。
#### 操作步骤
1. 进入[创建"设备维修管理系统"应用](https://support.huaweicloud.com/bestpractice-astrozero/astrozero_07_1009.html)中创建的应用。
2. 在"Equipment"目录中，将鼠标放在"Flow"上，单击界面上出现的![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001432835090.png)，在弹出菜单中选择"服务编排"。
3. 选中"创建一个新的服务编排"，在"标签"和"名称"文本框中输入"queryEquipments"，并设置类型为"Autolaunched Flow"，单击"添加"。 
   系统实际创建的脚本名称为"***HW__*** queryEquipments"，"***HW__***"前缀由租户命名空间namespace决定。新建创建的服务编排，默认是当前用户锁定状态，可以进行编辑保存等操作。
   当编辑已有服务编排时，为防止编辑时多人篡改，编辑前请单击![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001433151978.png)进行锁定。
   
   
4. 定义服务编排用到的变量。 
   1. 单击页面右侧的![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001432835098.png)，再单击结构体中的"新增"，在弹出窗口中输入结构体类型名称"Equipment"，单击"保存"。
      图1创建私有结构体   
      ![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001483071901.png "点击放大") 
   
   2. 单击![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001482911621.png)，再单击"对象变量"后的"+"，在弹出窗口中定义私有结构体变量"equipments"，选中"是否为数组"（该变量将作为服务编排的输出参数，且因为查询结果可能是多条记录，所以要选）。单击"保存"，如[图2]所示。
      图2新增私有结构体变量   
      ![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001959721633.png "点击放大") 
   
   3. 单击"变量"后的"+"，设置参数名称为"name"。 单击变量后的"..."，选择"设置"，修改变量的名称、类型，选择默认值"{!$GlobalConstant.EmptyString}"信息，如[图4]所示。
      图3新增变量   
      ![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001433151998.png)
      图4设置变量   
      ![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001482911613.png "点击放大") 
   
   4. 重复上一步，定义[表1]中的其他变量。
       表1服务编排变量说明 
      | 变量唯一标识       | 描述       | 数据类型 | 默认值                            |
      |:---|:---|:---|:---|
      | name（上一步已定义） | 设备名称     | 文本   | {!$GlobalConstant.EmptyString} |
      | fullAddress  | 完整地址     | 文本   | {!$GlobalConstant.EmptyString} |
      | limit        | 分页查询的条目数 | 数字   | {!$GlobalConstant.Null}        |
      | start        | 分页查询开始条目 | 数字   | {!$GlobalConstant.Null}        |
      | total        | 查询到的总条目数 | 文本   | 不设置                            |
         
      
   
   
   
   
5. 在服务编排中添加并配置脚本图元。 
   1. 从左侧拖拽脚本图元到画布中。
   
   2. 修改图元的基本信息，"标签"和"名称"都设置为"queryEquipments"。
      图5设置脚本图元基本信息   
      ![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001485913545.png "点击放大") 
   
   3. 单击![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001483231393.png)，指定图元对应的脚本名称 （***HW__*** queryEquipments），并配置脚本的输入输出参数，如果下拉选项中没有目标脚本，请检查脚本是否已启用。
      单击"全局上下文"，显示变量列表。在"输入参数"中，单击"新增行"，在下拉框中选择输入参数、依次**拖拽**变量到输入参数的"源"下。
      在"输出参数"中，单击"新增行"，在下拉框中选择输出参数，并从变量和对象变量中拖拽"目标"，如[图6]所示。
      **请直接从全局上下文拖拽变量到输入输出参数下的对应位置，请勿手动输入，手动输入的值系统可能不识别。**
      图6拖拽脚本的输入输出参数   
      ![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001433151990.png "点击放大") 
   
   
   
   
6. 定义服务编排的输入、输出参数，并保存服务编排。 
   1. 在画布上，把鼠标放在起点图元![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001483231385.png)图元上，从"+"拖动鼠标，在起点图元和脚本图元间增加连线；即将当前脚本设置为服务编排的起始节点。
   
   2. 鼠标在画布空白处点一下，单击右侧![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001483071897.png)，设置服务编排的输入输出参数，如[图7]所示。
      图7拖拽服务编排的输入输出参数   
      ![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001483071905.png "点击放大") 
   
   3. 单击服务编排界面上方的![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001432992722.png)，保存服务编排。
   
   
   
   
7. 测试服务编排能否正常执行。 
   1. 单击服务编排编辑器上方的![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001432835094.png)，执行服务编排。
   
   2. 在"输入参数"中，输入测试数据，单击"运行"。 执行成功，界面上会返回设备对象中的全部信息，样例如下：
      图8返回样例   
      ![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001433151982.png "点击放大") 
   
   
   
   
8. （可选）在服务编排编辑器单击"跟踪"，可以查看到上一步的执行日志，方便定位错误。
9. 测试成功，单击服务编排编辑器上方的![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001483071909.png)，发布服务编排。
 
