通过WebApi更新数据
通过WebApi修改数据
ESWeb 中包含的测试接口定义如下:
接口的功能:更新示例数据库 ESSample 中的订单状态
请求地址:
与WebApi提取数据相同
请求参数:是如下形式的json,包含两个属性,orderNo表示订单号,state表示订单状态
{
"orderNo": "",
"state": ""
}
返回参数:是如下形式的json,其中如果 code=0,就表示调用成功
{
"code": "",
"description": ""
}
定义WebApi接口
1. 设计栏目下选中【WebApi】-【第三方接口】,点击【新建】,按下图所示输入“基本信息”内容。

2.点击【下一步】,设置"body参数":
点击【根据接口文档自动识别】按钮,输入第三方Api文档中的“Body参数”(不要求具体数据,只要保证结构正确即可)。 目前只支持json格式。

3.点击【识别】按钮。
我们看到 json 格式的参数,被整理成了更清楚易读的格式,类似于数据表,可以进一步指定每个参数的数据类型,依需要可修改“子集”、“显示名”、“类型”、“默认值”和“忽略引号”(勾选后构造请求参数json时,参数值两端不加引号);
实际上,第三方系统要求的参数json可能是十分复杂的,参数本身可能是另一个json,所以这里的【下一步】对参数的整理,能够识别复杂的嵌套情况,提取出来的数据表可能不止一个。

4.点击【下一步】,依需求点击【+】构造一个Headers(请求头)-请求头中需要的参数。

5.设置返回参数:将接口规定的返回参数粘贴到输入区域。

6.点击【自动识别】按钮,显示整理后的返回参数(需设置一个字段的成功返回值)。

7.点击【下一步】。
8.点击【确定】,完成WebApi定义。

指定接口的调用方式
首先:在示例中设计如下一个查询模板:

在 “订单状态同步”模板,新建提数公式“组合条件查询”,可提取输入的日期范围内要同步的订单信息。
定义WebApi调用
1.在模板上定义表间公式类型为“WebApi 调用”:输入公式名称后,点击【1 选择WebApi】在选择窗口,选择之前新建的“api_订单状态同步”WebApi。

2.点击【确定】,返回定义公式窗口,点击【4 请求数据】按钮。在弹出的窗口中,列出该接口要求的请求参数:Body参数、Query参数、Headers(如WebApi的“请求参数”中设置了请求头,此处则可设置请求头)。依图设置每个参数的填充表达式。

3.点击【确定】,点击【5 执行条件】,设置执行条件如下:

4.点击【确定】,设置应用时机,点击【保存】完成表间公式定义。

总结一下,我们通过定义一种特别类型的表间公式WebApi 调用,来描述如何调用一个接口,公式定义中的“请求数据”,类似于通常的提数公式中的“填充方式”,只不过,填充方式是规定如何把数据库中的数据提取出来填充到当前填充的表单上,而WebApi 调用的请求数据,规定了如何把Excel服务器中的数据,转换成接口需要的请求参数。
本例比较简单,未指定来源数据或筛选条件等,提供给接口的请求参数仅仅是当前表单上的数据,熟悉表间公式的用户,可以举一反三,根据实际需求任意组合。
以上是接口调用方式的定义环节,即告知Excel服务器存在这样一个外部系统的接口以及如何调用它,以下进入执行环节,我们来看一看WebApi 的应用效果。
应用WebApi 调用,修改数据
1. 我的工作台中填报“订单状态同步”模板,输入日期范围,点击【查询】按钮。
2. 修改订单状态为“已提交”。

3.执行“调用WebApi同步订单状态公式”。

4.查看对应订单状态修改成功。

假如看到这里,您产生了迷惑,更新ESSample 中的订单状态,用回写公式不行吗?用外部数据源不行吗?那我们就再次回顾一下WebApi 的作用:
WebApi 是用来通过“第三方”系统提供的Web api接口,对第三方系统进行数据同步。这里有两个关键词:
1)“第三方”。我们的例子只是为了演示,实际应用中的第三方系统,并不是勤哲Excel服务器的系统,而是企业内应用的某个其它系统。
2)“Webapi接口”,也就是说,这个要对接的第三方系统,只开放了web方式的调用url,我们是不能访问它的数据库的,所以不能利用外部数据源的方式进行整合。