从动态导航调用外部 API Microsoft



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

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

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

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

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

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

不幸的是不是,没有。

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

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

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

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

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

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

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

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

最新更新