
# 使用SOAP服务调用SOAP协议接口
当系统需要调用第三方提供的SOAP协议接口时，可以通过配置SOAP服务来实现，SOAP服务是第三方系统提供的，是一组模块化的SOAP接口，通过配置第三方提供的SOAP服务的URL进行调用。对接SOAP服务后，可以为服务添加动作，动作用于将第三方接口转换成华为云Astro轻应用可识别的，方便华为云Astro轻应用调用第三方接口。一个SOAP服务中可以包含一个或多个动作。例如，一个订单服务，可能包括创建订单、查询订单、修改订单和删除订单四个动作。在华为云Astro轻应用中，通过依次创建SOAP服务和SOAP动作，使得系统可以调用第三方提供的SOAP协议的接口，实现第三方提供的业务功能。
 #### 创建SOAP服务
用户可以通过手工创建SOAP服务，也可以直接导入第三方提供的WSDL文件创建SOAP服务。
- 方式一：手工创建SOAP服务 创建手工创建SOAP服务前，请提前获取第三方提供的WSDL文件和SOAP版本号、SOAP服务的URL地址、SOAP服务入参格式要求。
  1. 参考[登录华为云Astro轻应用应用设计器](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9004.html)中操作，登录应用设计器。
  
  2. 在左侧导航栏中，选择"集成"。
  
  3. 在"连接器 "中，单击"连接器实例"，进入连接器实例页面。
  
  4. 在类型中，选择"HTTP \> Soap服务"，进入Soap服务连接器页面。
  
  5. 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001914817382.png)，选择"创建"，进入创建Soap服务页面。
  
  6. 配置连接器信息，单击"保存"。
     图1配置页面   
     ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000002134522105.png "点击放大")
     表1基本信息参数说明 
     | 区域   | 参数      | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
     |:---|:---|:---|
     | 基本信息 | 标签      | 新建SOAP Service的标签名。 取值范围：1\~64个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                       |
     | 基本信息 | 名称      | 新建SOAP Service服务的名称，名称是SOAP Service服务在系统中的唯一标识。命名要求如下： - 长度不能超过64个字符，包括前缀命名空间的长度。 名称前的内容为命名空间，在华为云Astro轻应用中为了避免不同租户间数据的重名，租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间，创建后不支持修改。   - 必须以英文字母开头，只能由英文字母、数字或单下划线组成，且不能以下划线结尾。   |
     | 基本信息 | 服务地址    | 第三方提供SOAP服务的URL地址，请从第三方获取。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
     | 基本信息 | SOAP版本  | SOAP版本号，请从第三方获取。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
     | 基本信息 | 日期格式    | 若该SOAP服务的输入参数，包括Date类型且有固定的要求格式，则必须进行配置。 请确保华为云Astro轻应用提供的输入参数，符合第三方要求。例如，该SOAP服务存在Date类型输入参数，且要求格式为"YYYY-MM-DD"，此处必须配置为"YYYY-MM-DD"。                                                                                                                                                                                                                                                                                                                                   |
     | 基本信息 | 日期/时间格式 | 若该SOAP服务输入参数，包括DateTime类型且有固定的要求格式，则必须进行配置。 请确保华为云Astro轻应用提供的输入参数符合第三方要求。例如，该SOAP服务存在DateTime类型输入参数，且要求格式为"YYYY-MM-DD hh:mm:ss"，此处必须配置为"YYYY-MM-DD hh:mm:ss"。                                                                                                                                                                                                                                                                                                             |
     | 基本信息 | 描述信息    | 请根据实际需求，在输入框中输入服务的描述信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
     | 命名空间 | 名称      | SOAP Service中存在的命名空间名称，可自行定义。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
     | 命名空间 | 命名空间    | 配置为获取的WSDL文件中"targetNamespace"的取值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
     | 命名空间 | 描述      | 请根据实际需求，输入命名空间的描述信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
     | 命名空间 | 操作      | 单击操作列的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001946417913.png)或![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001915018752.png)，可复制或删除命名空间。                                                                                                                                                                                                                                                                                                      |
     | 配置操作 | 名称      | 配置操作信息，操作是指第三方提供的调用操作。此处配置的名称，必须和获取的WSDL文件中"operation name"的取值保持一致。                                                                                                                                                                                                                                                                                                                                                                                                                                          |
     | 配置操作 | 操作      | 单击操作列的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001914858832.png)或![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001946417933.png)，可复制或删除操作。                                                                                                                                                                                                                                                                                                        |
        
     
   
- 导入SOAP Package 通过导入WSDL文件，实现系统自动生成SOAP服务。执行导入操作前，请提前获取第三方提供的WSDL文件，并已压缩成zip格式。
  1. 参考[登录华为云Astro轻应用应用设计器](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9004.html)中操作，登录应用设计器。
  
  2. 在左侧导航栏中，选择"集成"。
  
  3. 在"连接器 "中，单击"连接器实例"，进入连接器实例页面。
  
  4. 在类型中，选择"HTTP \> Soap服务"，进入Soap服务连接器页面。
  
  5. 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001914866008.png)，选择"导入"，进入导入Soap包页面。
  
  6. 设置基本信息，并在"选择文件"中选择已压缩好的zip文件，单击"导入"。
     图2导入SOAP包配置页面   
     ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001915025936.png "点击放大")
     表2导入Soap包参数说明 
     | 参数      | 说明                                                                                                                                                                                                 |
     |:---|:---|
     | 文件名     | 需要导入的WSDL文件名称，请和获取的第三方提供的WSDL文件名保持一致。                                                                                                                                                              |
     | 目录      | 保存SOAP服务导入后，生成的结构体所属的分类。可直接在下拉选择已有的分类，也可以手动输入新的分类名称，创建新分类。                                                                                                                                         |
     | 日期格式    | 若该SOAP服务输入参数，包括Date类型且有固定的要求格式，则必须进行配置。 请确保华为云Astro轻应用提供的输入参数，符合第三方要求。例如，该SOAP服务存在Date类型输入参数，且要求格式为"YYYY-MM-DD"，此处必须配置为"YYYY-MM-DD"。                          |
     | 日期/时间格式 | 若该SOAP服务输入参数，包括DateTime类型且有固定的要求格式，则必须进行配置。 请确保华为云Astro轻应用提供的输入参数，符合第三方要求。例如，该SOAP服务存在DateTime类型输入参数，且要求格式为"YYYY-MM-DD hh:mm:ss"，此处必须配置为"YYYY-MM-DD hh:mm:ss"。 |
     | 选择文件    | 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001946429793.png)，将第三方提供的WSDL文件添加到此处。                                                                                   |
        
     
   
 
 #### 创建并启用SOAP动作
通过为SOAP服务添加动作，将第三方接口转换成华为云Astro轻应用可识别的内容，方便华为云Astro轻应用调用第三方接口。
1. 参考[登录华为云Astro轻应用应用设计器](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9004.html)中操作，登录应用设计器。
2. 在左侧导航栏中，选择"集成"。
3. 在"连接器 "中，单击"连接器实例"，进入连接器实例页面。
4. 在类型中，选择"HTTP \> Soap服务"，进入Soap服务连接器页面。
5. 在动作页签中，单击"新建"，进入新建SOAP操作页面。
   
   图3新建SOAP操作配置页面   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000002134522197.png "点击放大")
   表3新建SOAP操作参数说明 
   | 区域        | 参数       | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   |:---|:---|:---|
   | 基本信息      | 标签       | 新建SOAP动作的标签名。 取值范围：1\~64个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 基本信息      | 名称       | SOAP动作的名称，名称是动作在系统中的唯一标识，创建后不可修改。命名要求如下： - 长度不能超过64个字符，包括前缀命名空间的长度。 名称前的内容为命名空间，在华为云Astro轻应用中为了避免不同租户间数据的重名，租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间，创建后不支持修改。   - 必须以英文字母开头，只能由英文字母、数字或单下划线组成，且不能以下划线结尾。                                                                                                                      |
   | 基本信息      | SOAP操作   | 需要调用的SOAP操作。在创建SOAP服务时已配置，必须和获取的WSDL文件中的"operation name"取值保持一致。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   | 基本信息      | SOAP操作接口 | SOAP操作的接口名称，请和获取的WSDL文件中的"soapAction"取值保持一致。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | 基本信息      | 描述       | 根据实际需求，输入动作的描述信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 输入参数/输出参数 | 标签       | 新建参数的标签名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 输入参数/输出参数 | 名称       | 新建参数的名称，名称是参数在系统中的唯一标识。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | 输入参数/输出参数 | 数据类型     | 设置参数的数据类型，直接在下拉框中选择。 - 日期：日期类型，精度到天。  - 日期/时间：时间类型，精度到秒。  - 数字  - 字符串  - 布尔值：布尔类型，取值为"true"和"false"。  - 全局结构体   |
   | 输入参数/输出参数 | 命名空间     | "数据类型"设置为"全局结构体"时，需要设置输入参数所属的命名空间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | 输入参数/输出参数 | 结构体类型    | "数据类型"设置为"全局结构体"时，需要设置结构体的类型，可以使用系统提供的类型也可以自定义类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 输入参数/输出参数 | 描述       | 根据实际需求，在输入框中参数的描述信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | 输入参数/输出参数 | 必填       | 新增参数是否设置为必填参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 输入参数/输出参数 | 集合       | 新增参数是否设置为数组类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 输入参数/输出参数 | 操作       | 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001915053044.png)或![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001946452173.png "点击放大")，可复制或删除参数。                                                                                                                                                                                                                                                                                                                                                                                                          |
      
   
   
6. 在动作页签，单击该动作所在行的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001915034368.png)，启用SOAP动作。
 
#### 在服务编排中，调用动作
创建一个服务编排，通过在服务编排中调用SOAP服务中添加的动作，将第三方提供的业务功能集成到华为云Astro轻应用中使用。
1. 参考[登录华为云Astro轻应用应用设计器](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9004.html)中操作，登录应用设计器。
2. 在左侧导航栏中，选择"逻辑"。
3. 单击编排后![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001915059214.png)，设置服务编排的标签和名称，单击"添加"。
   
   图4添加一个服务编排   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001977216770.png "点击放大")
   
   
4. 在服务编排设计页面左侧，选择"连接器 \> Soap服务 \> *服务名* "，拖拽具体的SOAP服务图标至画布中。
5. 设置SOAP动作基本信息。 
   图5设置基本信息   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001914899274.png "点击放大")
   表4基本信息参数说明 
   | 参数           | 说明                                                                      |
   |:---|:---|
   | 标签           | 图元在页面展示的名称。                                                             |
   | 名称           | 图元在系统中的唯一标识，创建后不可修改。 取值范围：1\~80个字符。   |
   | 描述           | 根据实际需求，输入图元的描述信息。                                                       |
   | SOAP Service | SOAP服务的名称，选择[创建SOAP服务]中创建的内容。 |
      
   
   
6. 设置调用SOAP动作参数。 
   图6配置SOAP动作   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001915059246.png "点击放大")
   表5SOAP动作参数说明 
   | 参数   | 说明                                                                                                                                                                              |
   |:---|:---|
   | 动作   | 选择[创建并启用SOAP动作]中创建的动作。                                                                                                                |
   | 输入参数 | 设置输入参数，单击"新增行"，可进行添加。 在"目标"中，选择[5]中设置的输入参数，在"源"中设置对应的值。 |
   | 输出参数 | 设置输出参数，单击"新增行"，可进行添加。 在"目标"中，选择[5]中设置的输出参数，在"源"中设置对应的值。                          |
      
   
   
7. 单击服务编排设计器页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001914899290.png)，保存服务编排。
8. 保存成功后，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001946458377.png)，运行服务编排。
9. 在输入参数中，输入请求参数，单击"运行"，查看输出结果。
 
