【问题标题】:How to get filtered data returned using Pi Vision Web Api如何使用 Pi Vision Web Api 获取过滤后的数据
【发布时间】:2021-03-21 08:25:51
【问题描述】:

我正在尝试过滤使用 Pi 的 web api 时返回的数据。比如我有这个url结构,https://machinename/piwebapi/tables/tableId/data,它返回如下表数据:

{
   "Columns": {
      "Model": "String",
      "4WD": "Boolean",
      "TopSpeed": "Int32"
   },
   "Rows": [
     {
       "Model": "CarModel1",
       "4WD": true,
       "TopSpeed": 100
     },
     {
       "Model": "CarModel2",
       "4WD": false,
       "TopSpeed": 80
     }
  ]
}

我想通过 4WD 过滤此数据:true。

我已尝试通读此处的文档并使用许多不同的查询,但我没有看到基于值进行过滤的查询。 https://techsupport.osisoft.com/documentation/pi-web-api/help//controllers/table/actions/getdata.html

我也尝试过使用搜索查询,它可以根据值进行过滤,但是当表是 AF 对象时,我无法让 url 结构工作。 https://machinename/piwebapi/tables/search?databaseWebId=databaseId

是否可以过滤像这样的 url 结构,https://machinename/piwebapi/tables/tableId/data,以获得特定值?

【问题讨论】:

    标签: javascript pi osisoft


    【解决方案1】:

    根据OSIsoft's developer forum 的一些帖子,目前似乎不支持通过 PI Web API 过滤表数据:

    我也发现在查询 AF 表数据时无法指定任何 where 条件。据我了解,使用 AF 表的原因是为 AF 属性提供固定值或基于条件的值。

    AF 中的表通常用于为 AF 属性提供值 - 您的用例是否允许您搜索 AF 表填充的 AF 属性值?

    如果没有,您可以通过 JavaScript 在客户端过滤返回的 AF 表数据。我会谨慎使用这种方法,因为您需要注意该 AF 表中有多少数据将返回给客户端以进行进一步过滤。

    如果您的表是链接表(由 SQL Server 托管但在 AF 中可用的表或视图),您可以在创建 AF 表表示时使用参数,然后在 PI Web API 中使用leverage those parameters来电

    【讨论】:

    • 感谢您的评论。您的回答帮助我检查这不是一个好的解决方案。我还没有看到那个论坛,所以我会深入研究。我的情况是我需要返回由资产过滤的 AF 表的所有结果。我们正在尝试创建一个更加动态的表格,用户可以对其进行大量自定义(让他们选择他们想要查看的列等。)
    • 是的 - 你所描述的可能需要重新设计。好消息是 OSIsoft 平台中提供了一些不同的选项(如果需要)。祝你好运!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 2019-08-01
    • 2020-04-12
    • 1970-01-01
    • 2019-09-11
    相关资源
    最近更新 更多