【问题标题】:How to apply Entity_Filter as OR in Dynamics NAV WebService如何在 Dynamics NAV WebService 中应用 Entity_Filter 作为 OR
【发布时间】:2015-12-18 05:20:17
【问题描述】:

我正在使用 Dynamics NAV 2009 WebService (SOAPish)。具体我说的是ReadMultiple方法MSDNA

filterArray 采用 Entity_Filter 对象的数组。每个 Entity_Filter 都有一个 FieldCriteria 属性。

现在我想知道,如何将过滤器应用为 OR not and。

例如,我通过了两个过滤器:

Entity_Filter { Field: "Name", Criteria: "*banana*" }
Entity Filter { Field: "Color", Criteria: "yellow"}

如果我将它发送到 ReadMultiple,我会得到所有名称中包含“香蕉”的条目黄色。我该怎么做才能获得所有名称中包含“香蕉”的条目黄色?

【问题讨论】:

    标签: web-services soap microsoft-dynamics dynamics-nav-2009


    【解决方案1】:

    很遗憾,无法对记录应用“OR”过滤器。 ReadMultiple 方法以与 C/AL 方法 SETFILTER 或 SETRANGE 相同的方式应用过滤器。它必须在两个单独的请求中完成。

    再想一想,您可以在单个请求中完成,但需要使用 Linq 的 OData 服务:

    NAV nav = new NAV(new Uri("http://ServerName:Port/DynamicsNAV71/OData/Company('Your Company Name')"));
    nav.Credentials = CredentialCache.DefaultCredentials;
    var items = from i in nav.ItemsList where i.Name.Equals("Banana") || i.Color.Equals("Yellow") select i;
    

    “ItemsList”是“页面”类型的 OData Web 服务

    【讨论】:

    • OData 是否可用于 NAV2009(不是 R2)?
    • 我做了一些研究,但似乎 OData 是为 NAV2013 引入的,所以我想这对 NAV2009(不是 R2)不起作用:/太糟糕了。
    • 不行,2009年没有OData服务。看来只能2次请求才能取到数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多