WebService 规则调用
webService 规则可以通过 URL 调用其他 V 平台系统 WebService 或通过 URL 调用第三方 WebService ,得到执行结果。
1. 功能介绍
webService 规则可以通过 URL 调用其他 V 平台系统 WebService 或通过 URL 调用第三方 WebService ,得到执行结果。
下面将通过 2 个不同的场景,讲解 WebService 规则的使用:
第一个例子是调用 V 规范服务方类型的 webService,实现将输入参数赋值给输出参数。
第二个例子是调用第三方类型的 webService,实现的功能是获得天气预报 WebServices 支持的洲、国内外省份和城市信息。
2. 场景一:V 规范服务类型
在开发系统中,创建构件方法
webServiceRule(webService发布API)
,该 API 方法将作为 webService 服务发布,可通过调用 webService 规则远程执行该方法,也可以通过VWS_CallWebService(调用webservice服务构件方法)
API引用该方法。info通过
VWS_CallWebService(调用webservice服务构件方法)
API 调用 webService 服务发布方法的具体使用,可以参考:WebService 发布 。在本案例中,构件方法
webServiceRule(webService发布API)
主要简单实现将入参赋值给出参的配置逻辑,在实际场景中,可以按需配置。(1)方法输入
(2)方法输出
(3)规则配置
① 给界面实体/控件/变量赋值【inputName→outputName】
② 实体间复制记录【inputEntity→outputEntity】
在执行平台中,设置构件方法
webServiceRule(webService发布API)
发布,其他 V 服务才可以调用,本服务可以调用。info【WS服务管理】菜单的设置,参考:WebService 发布 。
(1)发布服务
设置服务之后,需要发布服务,才产生对应的
wsdl
服务地址,并且被调用。(2)服务地址获取
发布后,可以通过 服务地址/services 查看已发布 V WebService 列表,点击
wsdl
地址查看最终的服务地址。① 查看 V WebService 列表
② 获取服务地址
在本案例中,通过同一个 V 服务调用webService服务方法,在实际项目中,可以在不同 V 服务调用该方法。
下面,定义构件方法
callWebService01(调用webService(V规范))
。(1)方法输入
(2)方法输出
(3)规则配置
① 新增实体记录【inputVarEntity-名称1】
② 新增实体记录【inputVarEntity-名称2】
③ 调用WebService(V规范)
参数注意事项
- 入参
- 出参
(1)入参个数要与所调用的 webService 方法的入参个数一致。
(2)调用 webService 提供的方法时,输入参数是按照次序去匹配,而不是输入参数的名称。
(3)当类型为实体时,手动写入的实体字段名一定要与 webService 的输入参数实体中的字段名一致。
(1)手动写的返回值名要与所调用的 webService 的返回参数名一致,目标参数的类型要与 webService 的返回值类型一致。
(2)当返回参数类型为实体时,字段名也要与webService返回的实体参数中段一致,否则会因匹配不上获取不到值。
通过窗体定义,调用构件方法
callWebService01(调用webService(V规范))
,显示对应的返回值。按钮事件配置:
部署预览,点击【调用webService】按钮,查看效果。
3. 场景二:第三方服务类型
本案例调用第三方类型的 webService,实现的功能是获得天气预报 WebServices 支持的洲、国内外省份和城市信息。
- 第三服务 wsdl 地址:"http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl";
- 第三服务 wsdl 地址对应的方法:
getSupportProvince
——无输入参数; 返回数据:一个一维字符串数组 String(),内容为洲或国内省份的名称。
参数注意事项(1)入参
- 根据第三方 webService 的 wsdl 文档获取需要调用的方法的输入参数个数、类型和次序。
- 在使用【 webService 规则】调用服务提供的方法时,需要注意输入参数的个数、类型和次序要对应得上。
(2)出参
- 第三方法返回值和 V 规范的返回值有些不同,返回的数据会转换成
json
的格式,只能用 文本类型 接收数据。在本案例中,定义构件方法
callWebService02(调用webService(第三方))
调用该 webService 方法。(1)方法输出
编码 | 名称 | 类型 | 初始值 | 描述 |
---|---|---|---|---|
outputVarValue | 输出值 | 文本 | 用于接收第三服务 wsdl 地址对应方法的返回值 |
(2)规则配置——调用WebService(第三方)