【问题标题】:Is it possible to query all companies via ODATA in Dynamics Nav 2016是否可以通过 Dynamics Nav 2016 中的 ODATA 查询所有公司
【发布时间】:2017-10-17 13:22:07
【问题描述】:

我编写了以下代码来查询 Dynamics Nav 2016 中的 ODATA 端点。我通过创建 ODATA connected service 来做到这一点。我在 URL 中传递了一个公司名称:

var navision = new Navision(
    new Uri("http://navision:7048/navision/OData/Company('Company1')"));

foreach (var foo in await navision.Foo.ExecuteAsync())
{
    Console.WriteLine(foo.Name);
}

是否可以查询Navision中的所有公司?当我省略 URL 的 /Company(...) 部分时,我得到一个错误:

DataServiceClientException:无法处理请求,因为找不到默认的 Microsoft Dynamics NAV 公司。您可以在服务配置文件中指定一个默认公司,也可以为每个租户指定一个,也可以添加“company=[name]”形式的查询字符串。您可以通过访问默认的 OData Web 服务公司来查看可用的公司。有关详细信息,请参阅帮助中的“OData Web 服务”。

【问题讨论】:

  • 不。不同的公司意味着不同的桌子。 Nav 不会为您加入。
  • 把它作为答案@MakSim,:)
  • 请调查System service 以实现此目的。这是一项 SOAP 服务,但我不知道是否存在与 OData 等效的服务?

标签: c# web-services odata microsoft-dynamics dynamics-nav


【解决方案1】:

不同的公司在 SQL 上意味着物理上不同的表,名称如[dbo].[CompanyName$TableName]。 Nav 不会为您加入。如果您使用租户,这些表甚至会位于每个租户的单独数据库中。

所以你需要查询每家公司,然后合并获取的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-17
    • 2014-01-29
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多