
# 变量及输入输出参数配置
变量是可以变化的量，即可以被赋值所改变的参数。某个具体的服务编排中一般都会涉及输入输出变量，本节介绍在服务编排中如何创建普通变量、集合变量、结构体变量、配置输入输出参数等内容。
#### 创建普通变量或者集合变量
1. 参考[如何开发服务编排](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0601.html)中操作，进入服务编排编辑器页面。
2. 在服务编排编辑器页面右侧，选择![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126449.png)。
3. 在全局上下文页面，单击"变量"后的加号。 
   图1创建变量   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126441.png "点击放大")
   
   
4. 单击新增变量后的"..."，选择"设置"。
5. 设置页面参数，单击"保存"。 
   图2配置变量   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960286233.png "点击放大")
   
   表1变量参数说明 
   | 参数    | 参数说明                   |
   |:---|:---|
   | 名称    | 新建变量的名称。               |
   | 数据类型  | 新建变量的数据类型，直接在下拉框中选择即可。 |
   | 默认值   | 变量的默认取值。               |
   | 描述    | 新建变量的描述信息。             |
   | 是否为数组 | 是否为数组型变量即集合变量。         |
      
   
   
 
#### 创建常量
1. 参考[如何开发服务编排](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0601.html)中操作，进入服务编排编辑器页面。
2. 在服务编排编辑器页面右侧，选择![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047136.png)。
3. 在全局上下文页面，单击"常量"后的加号。 
   图3单击常量后的加号   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126445.png)
   
   
4. 单击新增常量后的"..."，选择"设置"。
5. 设置页面参数，单击"保存"。 
   图4配置常量   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932887744.png "点击放大")
   表2常量参数说明 
   | 参数   | 参数说明                              |
   |:---|:---|
   | 名称   | 新建常量的名称。                          |
   | 数据类型 | 常量的数据类型，直接在下拉框中选择即可。              |
   | 值    | 新建常量的取值。                          |
   | 描述   | 该常量的描述信息。                         |
   | 外部使用 | 若勾选该选项，表示该变量为外部使用变量，编译时不校验其是否被使用。 |
      
   
   
 
#### 创建公式变量
公式变量主要用于变量赋值，表达式计算，参数传递等。
1. 参考[如何开发服务编排](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0601.html)中操作，进入服务编排编辑器页面。
2. 在服务编排编辑器页面右侧，选择![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047156.png)。
3. 在全局上下文页面，单击"公式"后的加号。 
   图5单击公式后的加号   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047144.png)
   
   
4. 设置页面参数，单击"保存"。 
   图6配置公式变量   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932887768.png)
   表3公式变量参数说明 
   | 参数   | 参数说明                                                                                                                                                                 |
   |:---|:---|
   | 名称   | 新建公式变量的名称。                                                                                                                                                           |
   | 数据类型 | 公式变量的数据类型，直接在下拉框中选择即可。                                                                                                                                               |
   | 描述   | 新增公式变量的描述信息。                                                                                                                                                         |
   | 外部使用 | 勾选该选项，表示该变量为外部使用变量，编译时不校验其是否被使用。                                                                                                                                     |
   | 表达式  | 设置新增变量的表达式。 若表达式中需要运用公式，可根据需要双击"公式"区域中系统预置的公式，该公式会显示在右侧"表达式"区域中。当表达式中需要有变量参数时，可从变量区域中直接选择变量拖入到表达式中。 |
      
   
   
 
#### 创建私有结构体
服务编排中如果涉及复杂结构体参数，可以先创建全局或私有结构体，并用作参数类型。
创建全局结构体和私有结构体后，再参考[创建对象变量/结构体变量/事件变量]中操作，创建全局结构体变量和私有结构体变量，作为服务编排的参数类型。
![](https://support.huaweicloud.com/usermanual-astrozero/public_sys-resources/note_3.0-zh-cn.png)
全局结构体是通过全局视图进行创建的，即在经典版应用设计器左侧列表中，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960286285.png "点击放大")，选择"逻辑 \> 全局结构体"，进行创建。
1. 参考[如何开发服务编排](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0601.html)中操作，进入服务编排编辑器页面。
2. 在服务编排编辑器页面右侧，选择![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047112.png)。
3. 在私有结构体页面，单击"新增"。 
   该"私有结构体"页面有两个"新增"按钮，单击上面的"新增"按钮，是通过设置页面参数新建私有结构体。单击下面的"新增"按钮，是通过输入JSON Schema类型的数据源码定义私有结构体。
   图7添加私有结构体类型   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932887720.png "点击放大")
   
   
4. （若上一步单击"私有结构体"页面上方的"新增"按钮，请执行该步骤）设置页面参数。 
   - 在"基本信息"中，输入结构体名字、描述信息。
   
   - 在"结构体成员"中，设置自定义成员变量，包括设置成员变量的名称、数据类型、是否必填、是否是集合和描述信息等。单击"新增"，可增加成员变量，支持设置全局结构体或私有结构体成员变量。当私有结构体的成员变量包含结构体类型时，您需要提前定义成员结构体。例如，下图中成员变量"hobby"为私有结构体类型，需要提前创建"create"私有结构体。
   
   
   图8配置私有结构体   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047148.png "点击放大")
   
   
5. （若上一步单击"私有结构体"页面下方的"新增"按钮，请执行该步骤）在"创建JSON Schema"页面中，定义结构体名称，在"JSON源码"中输入数据源码，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960286241.png)，系统会进行校验，转换成服务编排中的结构体类型，单击"保存"。
   
   图9创建JSON Schema   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126477.png "点击放大")
   数据源码示例如下：
   ```
   {
   "name": "xiaoming",
   "age": 18,
   "father": {
   "name": "daliu",
   "gender":"male"
   },
   "brother": {
   "name": "xiaolei",
   "gender":"male"
   }
   }
   ```
   创建成功后，页面显示如下。
   图10创建成功   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047108.png "点击放大")
   该方式创建的结构体中，包含成员结构体时，成员结构体具体定义不会在界面显示，且其他结构体不可引用。
   JSON结构体支持嵌套，例如上述创建的"family"结构体，在"JSON Schema结构体"区域再次单击"新增"，新增"company"结构体，里面"ceo"嵌套引用"family"结构体，如下图所示，在定义结构体输入值时，您可以输入"$"符号，选择当前服务编排中的其它结构体进行嵌套引用。
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047152.png "点击放大")
   
   
 
 #### 创建对象变量/结构体变量/事件变量
1. 参考[如何开发服务编排](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0601.html)中操作，进入服务编排编辑器页面。
2. 在服务编排编辑器页面右侧，选择![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126453.png)。
3. 在全局上下文页面，单击"对象变量"后的加号。 
   图11单击对象变量后的加号   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126485.png)
   
   
4. 设置页面参数。 
   图12配置对象变量   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047172.png "点击放大")
   表4参数说明 
   | 参数    | 参数说明                                                                                                                                                                                                                                                                 |
   |:---|:---|
   | 对象    | 变量的类型为对象变量。                                                                                                                                                                                                                                                          |
   | 全局结构体 | 变量的类型为全局结构体。                                                                                                                                                                                                                                                         |
   | 私有结构体 | 变量的类型为私有结构体。                                                                                                                                                                                                                                                         |
   | 事件    | 变量的类型为事件变量。                                                                                                                                                                                                                                                          |
   | 名称    | 新建变量的名称。                                                                                                                                                                                                                                                             |
   | 对象    | 请选择具体的对象。 选择"对象"类型时，该参数才会显示。                                                                                                                                                                                                      |
   | 全局结构体 | 请选择具体的全局结构体。 选择"全局结构体"类型时，该参数才会显示。 全局结构体是通过全局视图进行创建的，即在经典版应用设计器左侧列表中，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047120.png "点击放大")，选择"逻辑 \> 全局结构体"，进行创建。 |
   | 私有结构体 | 请选择具体的私有结构体。 选择"私有结构体"类型时，该参数才会显示。                                                                                                                                                                                              |
   | 事件    | 请选择具体的事件。选择"事件"类型时，成员变量为事件的自定义字段，不包括系统预置的标准字段。 选择"事件"类型时，该参数才会显示。                                                                                                                                                                 |
   | 默认值   | 变量的默认取值。                                                                                                                                                                                                                                                             |
   | 描述    | 该变量的描述信息。                                                                                                                                                                                                                                                            |
   | 是否为数组 | 是否为数组变量，即集合变量。                                                                                                                                                                                                                                                       |
      
   
   
 
#### 配置服务编排的输入输出参数
1. 参考[如何开发服务编排](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0601.html)中操作，进入服务编排编辑器页面。
2. 在服务编排设计器中，单击起始图元。
3. 在右侧菜单，选择![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047104.png)。
4. 从全局上下文页面中，拖拽已定义的参数到相应的入参和出参区域，设置服务编排的入参和出参。 
   图13设置服务编排的入参和出参   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047168.png "点击放大")
   
   
 
