【问题标题】:Querying multiple project names Odata Feeds in Project Server 2013在 Project Server 2013 中查询多个项目名称 Odata 源
【发布时间】:2016-05-24 21:01:42
【问题描述】:

我正在尝试在我们的项目服务器的 Odata 源中查询多个项目,但到目前为止我没有成功。我能够获取单个项目名称,甚至排除它们,但是当我尝试查询多个项目名称时,我没有得到我想要的结果。也许我的语法是错误的。对此的任何帮助将不胜感激..

当我运行这个时,它会中断并告诉我 'and' 是一个未知的运算符:

http://$server/pwa/_api/ProjectData/Projects$filter=ProjectName -eq 'name1' and 'name2'

当我运行这个时,它会运行,但它仍然只查看一个值:

http://$server/pwa/_api/ProjectData/Projects$filter=ProjectName -eq 'name1' & 'name2'

根据这篇文章,上面使用 AND 的语句是正确的语法,但我被告知语法是错误的。

https://msdn.microsoft.com/en-us/library/ff478141.aspx

我什至还阅读了这篇文章,这是对 odata 查询的一般概述,但这并不能真正回答我的问题。

https://msdn.microsoft.com/en-us/library/office/jj163048.aspx

【问题讨论】:

    标签: asp.net rest odata ms-project-server-2013


    【解决方案1】:

    我认为您可能需要进行一些更改才能使其按您想要的方式工作:

    1. 根据 $metadata,PublishedProject 实体的属性名称是“Name”而不是“ProjectName”。
    2. 使用条件 AND 意味着项目名称必须等于 both 'name1' AND 'name2 '。我认为您真的想要条件 OR,以便项目名称等于 either 'name1' OR 'name2'
    3. 您需要两个由条件 OR 连接的完整表达式,以便过滤具有“name1”或“name2”的项目。
    4. '-eq' 是等式表达式的错误语法。删除连字符并仅使用“eq”(这显示在您链接到的 MSDN 页面上的示例中。)

    因此您的过滤器更改为:

    ?$filter=Name eq 'name1' or Name eq 'name2'
    

    或者,Url 编码形式:

    ?$filter=Name+eq+'name1'+or+Name+eq+'name2'
    

    或者,您可以在此查询中使用分组以使其更易于阅读:

    ?$filter=(Name eq 'name1') or (Name eq 'name2')
    

    免责声明:我只验证了这些过滤器示例适用于 Project Online 实例,而不是 2013 年。

    【讨论】:

      【解决方案2】:

      @RyanY 我刚刚意识到我做错了什么这是我使用的逻辑的问题。正如你所说,我的语法是错误的。我之前查过,没有人回复我的帖子。我刚才正要回答我自己的问题,我看到了你的帖子..lol

      为了得到我一直在寻找的结果,我所要做的就是发出这样的 REST 查询:

      http://$server/pwa/_api/ProjectData/Projects$filter=ProjectName eq 'name1' 或 ProjectName eq 'name2' 或 ProjectName eq 'name3'..ect

      我喜欢这个想法,顺便说一句,我会在将来使用它,它会更有条理:?$filter=(Name eq 'name1') or (Name eq 'name2')

      感谢您的反馈。我的真名也是瑞恩。真是巧合:)

      【讨论】:

        猜你喜欢
        • 2017-01-14
        • 1970-01-01
        • 1970-01-01
        • 2016-10-21
        • 1970-01-01
        • 2013-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多