[PU9功能解说] 如何在经典功能中调用外部REST web服务?
在本文中,我们会给出一个示例,让你了解如何在经典功能中调用外部/对外的REST web services。
在我们开始讲示例之前,用于这种情况的API名为ASYRRESTCLI,而所用的功能则是EXEC_REST _WS。
所以如果你在在线帮助网站搜索ASYRRESTCLI的话,你会看到以下内容:
请注意:这只是一个简单的示例(或许还有其他方法可以完成这个操作)。这个外部API调用将使用免费的JSON API http://fixer.io/(你可以通过访问他们的网站了解更多关于这个API的信息)。
这个例子的要求是:我们希望在采购订单记录中设置一个按钮来显示当前的汇率。
1. 打开功能: 管理→管理→Web服务→REST Web服务。
2. 点击“新的REST Web服务”,创建一个新的REST web服务连接。
3. 如下所示,录入信息(关于每个字段中的信息,可以查看在线帮助)
4. 打开功能:开发→脚本字典→窗体。
5. 选择窗体OPOH。
6. 点击[按钮/菜单]页签。
7. 如下所示,新录入一行。
8. 点击“保存”,并“审核”。
9. 打开功能:参数设置→采购→录入交易→订单。
10. 选择你的录入交易,并点击“审核”。
11. 打开功能:开发→脚本字典→脚本→脚本编辑器。
12. 在[文件名称]字段录入SPEPOH。
13. 录入以下代码。
$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. 现在,打开功能:采购→订单→订单。
16. 选择一个现有的采购订单。
17. 点击你新创建的那个按钮。
18. 点击这个按钮,将生成以下内容。
总结:你可以使用和功能来执行一项对外的web服务调用。 |