我正在尝试过滤使用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
}
]
}
我想通过四轮驱动来过滤这些数据:真的。
我试着阅读了这里的文档,并使用了许多不同的查询,但我没有看到一个基于值进行过滤的查询。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,对于特定值?
根据OSIOSoft开发者论坛的一些帖子,目前似乎不支持通过PI-Web API过滤表数据:
在查询AF表数据时,我也没有办法指定任何where条件。据我所知,拥有AF表格的原因是为AF属性提供固定值或基于条件的值。
AF中的表格通常用于为AF属性提供值-您的用例是否允许您搜索由AF表格填充的AF属性值?
如果没有,您可以通过JavaScript在客户端过滤返回的AF表数据。我会谨慎使用这种方法,因为你需要注意AF表中有多少数据会返回给客户端进行进一步过滤。
如果表是链接表(由SQL Server托管但在AF中可用的表或视图(,则可以在创建AF表表示时使用参数,然后在PI Web API调用中利用这些参数