[PU9功能解说] 如何在经典功能中调用外部REST web服务?
在本文中,我们会给出一个示例,让你了解如何在经典功能中调用外部/对外的REST web services。在我们开始讲示例之前,用于这种情况的API名为ASYRRESTCLI,而所用的功能则是EXEC_REST _WS。
所以如果你在在线帮助网站搜索ASYRRESTCLI的话,你会看到以下内容:
[attach]4316[/attach]
请注意:这只是一个简单的示例(或许还有其他方法可以完成这个操作)。这个外部API调用将使用免费的JSON API [url]http://fixer.io/[/url](你可以通过访问他们的网站了解更多关于这个API的信息)。
这个例子的要求是:我们希望在采购订单记录中设置一个按钮来显示当前的汇率。
1. 打开功能: [b]管理→管理→Web服务→REST Web服务[/b]。
2. 点击“[b]新的REST Web服务[/b]”,创建一个新的REST web服务连接。
3. 如下所示,录入信息(关于每个字段中的信息,可以查看在线帮助)
[attach]4317[/attach]
4. 打开功能:[b]开发→脚本字典→窗体[/b]。
5. 选择窗体[b]OPOH[/b]。
6. 点击[[b]按钮/菜单[/b]]页签。
7. 如下所示,新录入一行。
[attach]4318[/attach]
8. 点击“[b]保存[/b]”,并“[b]审核[/b]”。
9. 打开功能:[b]参数设置→采购→录入交易→订单[/b]。
10. 选择你的录入交易,并点击“[b]审核[/b]”。
11. 打开功能:[b]开发→脚本字典→脚本→脚本编辑器[/b]。
12. 在[文件名称]字段录入[b]SPEPOH[/b]。
13. 录入以下代码。
[attach]4319[/attach]
$ACTION
Case ACTION
When "EXEBOUT" : Gosub BOUTON
Endcase
Return
##############
$BOUTON
If BOUT="3" ###### this is the code of our button in Window dictionary
# Contains the result header and body
Local Clbfile RESHEAD(0),RESBODY(0)
Local Integer RETVAL
# No additional parameter nor additional header value are given here (only the values given in ORDER definition are used)
Local Char PCOD(100)(1..10),PVAL(100)(1..10),HCOD(100)(1..10),HVAL(100)(1..10)
RETVAL=func ASYRRESTCLI.EXEC_REST_WS("ExchangeRate","GET","/latest",PCOD,PVAL,HCOD,HVAL,"{}", 0,"",RESHEAD, RESBODY)
If RETVAL=200 : infbox(RESBODY) : Else infbox("somwthing Went wrong") : Endif
Endif
Return
14. 点击“保存”,并“编译”。
15. 现在,打开功能:[b]采购→订单→订单[/b]。
16. 选择一个现有的采购订单。
17. 点击你新创建的那个按钮。
[attach]4320[/attach]
18. 点击这个按钮,将生成以下内容。
[attach]4321[/attach]
[b]总结:[/b]你可以使用和功能来执行一项对外的web服务调用。
页:
[1]