繁体   English   中英

从Microsoft Dynamics Nav调用外部API

[英]Calling an external API from Microsoft Dynamics Nav

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

阅读有关NAV的Web服务文档,很明显,NAV可以公开Web服务供其他软件使用。 但是,NAV可以使用第三方API吗? Web服务示例文档中 ,它说:

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

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

执行在Microsoft Dynamics导航中更容易开发和管理的任何类型的业务逻辑。

但是,我看不到任何数据写入示例。 似乎在公开Web服务页面或代码单元时 ,没有一种方法可以调用第三方API,并使用返回到NAV中的数据执行业务逻辑。 这实际上可行吗?

不幸的是,没有。

但是,您可以从Dynamics NAV的“开发客户端”中访问整个.NET框架-在定义变量时,请选择DotNetType

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

对于像这样的较小对象,我个人认为最简单的方法是将C#作为小型(控制台)应用程序编写,然后将其“转换”回Dynamics NAV。

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

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

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

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

  1. 编写外部包装器库(如@SeeSharp所述或所述 )。 然后在C / AL中将其用作DotNet或变量的Automation类型。
  2. 在C / AL中使用现有的库(例如“ Microsoft XML,v6.0” .XMLHTTP60)对您的Web服务进行http调用
  3. 做到Navision的风格
  4. 最后一个选择是编写控制台应用程序,它将使用您的Web服务,并使用shell从Nav调用它。 我知道这不是一个选择

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM