1

我正在尝试过滤使用 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 过滤这些数据:是的。

我尝试通读此处的文档并使用许多不同的查询,但我没有看到基于值进行过滤的查询。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,以获得特定值?

4

1 回答 1

2

根据OSIsoft 开发者论坛的一些帖子,目前似乎不支持通过 PI Web API 过滤表数据:

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

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

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

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

于 2020-12-11T18:06:29.097 回答