从Microsoft Dynamics Nav调用外部API

时间:2015-03-16 07:13:52

标签: web-services rest httprequest dynamics-nav

我正在研究如何将Microsoft Dynamics NAV与我现有的REST API(基于Django REST Framework构建)集成。我想做的是通过REST API触发从NAV到CRUD对象的API调用。

阅读NAV的Web服务文档,似乎很明显NAV可以公开Web服务以供其他软件使用。但NAV可以使用第三方API吗?在web services examples documentation中,它说:

  

需要执行业务逻辑或从中读取数据的解决方案   Microsoft Dynamics NAV是Web服务实现的候选者。   这些也可以是将数据写入Microsoft Dynamics NAV的解决方案   并使用现有业务逻辑验证数据

此外,它还提供了以下如何使用Web服务的示例:

  

执行任何更容易开发的业务逻辑   在Microsoft Dynamics NAV中管理。

但是,我没有看到任何数据写入的例子。在web service pages or codeunits的曝光中,似乎没有办法调用第三方API并使用NAV中返回的数据执行业务逻辑。这实际上是可能的吗?

2 个答案:

答案 0 :(得分:2)

不幸的是,没有。

但您可以从Dynamics NAV的“开发客户端”中访问完整的.NET框架 - 定义变量时选择Type的{​​{1}}

它远非完美,所以对于较大的任务,我将创建AddIns或完全外部库(取决于版本)。

对于像这样小的东西,我个人觉得用C#作为小型(控制台)应用程序编写它并将其“转换”回Dynamics NAV是最容易的。

答案 1 :(得分:0)

如果您正在寻找调用Web服务的方法,那么为什么需要Nav Web服务?导航Web服务是一种调用导航的方法。

  

这些也可以是将数据写入Microsoft Dynamics NAV并使用现有业务逻辑验证数据的解决方案。

这意味着如果您调用已发布的Nav Web服务,则可以将数据传递给您的呼叫,并且数据将被验证并保存到Nav。所以这是关于如何将数据推送到Nav,而不是从外部系统拉出来。

如果要从Nav调用Web服务,请考虑以下选项:

  1. 编写外部包装库(如@SeeSharp或described所述)。然后在C / AL中将其用作DotNetAutomation类型的变量。
  2. 使用C / AL中的'Microsoft XML, v6.0'.XMLHTTP60等现有库,为您的网络服务http calls
  3. 执行Navision style
  4. 最后该死的选项是编写将使用您的Web服务的控制台应用程序,并使用shell从Nav调用它。 这不是一个选项,我知道