【问题标题】:Calling an external API from Microsoft Dynamics Nav从 Microsoft Dynamics Nav 调用外部 API
【发布时间】:2015-03-16 07:13:52
【问题描述】:

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

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

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

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

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

但是,我没有看到任何数据写入的示例。在web service pages or codeunits 的曝光中,似乎没有一种方法可以调用 3rd 方 API 并使用 NAV 中返回的数据执行业务逻辑。这真的可能吗?

【问题讨论】:

标签: web-services rest httprequest dynamics-nav


【解决方案1】:

不幸的是,没有。

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

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

对于像这样更小的东西,我个人认为用 C# 将其编写为小型(控制台)应用程序并将其“翻译”回 Dynamics NAV 最容易。

【讨论】:

    【解决方案2】:

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

    这些也可以是向 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 添加到您的 Web 服务中。
    3. 去做Navision style
    4. 最后一个该死的选择是编写控制台应用程序,该应用程序将使用您的 Web 服务并使用 shell 从 Nav 调用它。 这不是一个选项,我知道

    【讨论】:

      猜你喜欢
      • 2019-08-04
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2016-08-09
      • 2017-07-13
      • 1970-01-01
      相关资源
      最近更新 更多