我们正在编写一个Web服务,需要从MS Dynamics查询有些复杂的数据集。通过“有点复杂”,我的意思是它需要查询实体层次结构的多个级别。 Dynamics oData实现将oData查询的深度限制为两个(即您可以查询父项和子项 - 但不能查询该子项的子项)。
前进的一种方法是通过制作成千上万的oData调用来实现实体层次结构,但这根本不具吸引力(有点破坏了服务器端数据库的整个目的)。
另一个问题是我们需要与许多不同的Dynamics系统进行交互,这些系统都不允许我们加载自定义.NET插件。它可能没关系,但我们用Java编写客户端代码,确实需要使用常规的REST类型调用。
我在想如果有一种方法可以在Dynamics中预定义一个复杂查询的数据报告,那么我们就可以通过REST接口查询该报告。到目前为止,我还没有找到办法做到这一点,我想我会把它扔给社区,看看是否有人有任何建议。
答案 0 :(得分:0)
您可以在NAV中创建Query对象,并将查询对象发布为Web服务 如果查询对象在NAV(NAV版本< 2013)中不可用,您可以创建代码单元,在其中生成数据集并将代码单元作为Web服务发布。 第三个选项是如果NAV在SQL服务器上运行,您可以在其中创建View / TempTable / Stored Procedure来创建数据集;或使用SQL Analysis Services
干杯!
答案 1 :(得分:0)
我们完全放弃了REST API并改为使用SOAP。从那里,我们可以做FetchXML并获得我们需要的东西。