赛捷软件论坛's Archiver

lynn.yu 发表于 2018-3-14 11:09

[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]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.