Dynamics Ax 2012中调用外部web服务
2016-12-12 13:15
148 查看
Dynamics Ax 2012中调用外部web服务
不同系统的功能集成,多用的web service或wcf或是轻量级的web api ,调用方式虽然有所不同,但原理基本上都是相似的其他语言的调用方式,在这里不多做说明,我们主要讨论在Dynamics Ax 2012中进行外部服务的调用,没有在以前的版本中进行测试,需要的人可以自行去测试。
先说web api的调用
web api的调用其实就是网页的访问和解析,在ax 2012里提供网页请求和响应的类RetailCommonWebAPI ,通过它可以进行网页请求的提交和响应数据的获取,其本质也是用的.net framework里的HttpWebRequest和HttpWebResponse,熟悉C#的人使用起来应该是毫无压力,具体访问和解析的方法是根据实际情况来决定的,不做过多说明,来一个小例子简单演示一下。
RetailCommonWebAPI web=RetailCommonWebAPI::construct(); RetailWebResponse response; ; response = web.makeRequest("http://www.baidu.com"); info(response.parmData());
web service和wcf的服务调用
在ax里用x++代码直接调用的方式,目前暂时是没办法实现的,只有用C#的代码进行中转来实现,可以简单的用C#来写一个dll文件,然后在ax里添加引用,然后用x++代码来进行调用就可以了。
只是在调用的过程中,发现总是会有一个错误,导致代码运行失败,最后查阅相关文档,才找到解决办法。
参考微软官方说明 :Walkthrough: Calling an External Web Service from X++ [AX 2012]
也就是说在C#类型进行构造的时候 ,用普通 的new是无法成功创建的,需要使用的方式 :
clientType = CLRInterop::getType("BingSearch.ServiceReferences.BingV2ServiceReference.BingPortTypeClient"); // Use the AifUtil class to create an instance of the service client object. _client = AifUtil::CreateServiceClient(clientType);
这样得到的对象就可以正常使用了,暂时手上没有代码,就不上演示的例子了。
相关文章推荐
- Dynamics AX 2012 R2 外部程序运行在没有AD的环境(如PDA) 调用AX服务
- Dynamics AX 2012 R2 安装 AIF IIS上的Web服务
- 从 ASPX 页面进行 Web 服务调用时的性能考虑
- 使用vbscript脚本调用web服务
- 在asp.net 2.0中的web.config文件中调用外部文件
- atlas(1)调用简单web服务
- 如何:从 Web 服务客户端上进行异步调用
- 使用vbscript脚本调用web服务
- 1.1与2.0异步调用Web服务简单示例
- 动态调用web服务
- 动态调用web服务
- 使用 AJAX 调用SOAP Web 服务,第 2 部分: 扩展 Web 服务客户机
- 使用vbscript脚本调用web服务
- 使用vbscript脚本调用web服务
- Web和证书服务:建立电子商务外部网
- 使用 AJAX 调用 SOAP Web 服务,第 1 部分: 构建 Web 服务客户机
- 从 ASPX 页面进行 Web 服务调用时的性能考虑
- 从 ASPX 页面进行 Web 服务调用时的性能考虑
- ASPX页Web服务调用性能优化
- 在asp.net 2.0中的web.config文件中调用外部文件