PI Web APIはhttpsプロトコルでデータの収集、書き込みができます。
複数の属性、タグからBulkで値を取りたい、書きたい場合、StreamSetが使用できます。
Live Library PI Web API StreamSet
https://techsupport.osisoft.com/Documentation/PI-Web-API/help/controllers/streamset.html
値取得であればGetValueAdHocsにて複数のWebIDオブジェクトから値が取得できます。
Live Library PI Web API StreamSet > GetValueAdHocs
たとえば、複数のWebIDがわかっていれば以下書式で2つのStreamsから値が取得できます。
以下は"Available Memory GB"という属性と、タグの"sinusoid"から値を取得した例です。

複数StreamsのRecordedValuesが取得したい場合、GetRecordedAdHocが使用できます。
Live Library PI Web API StreamSet > GetRecordedAdHoc
また、Post Requestにより複数Streamsへの複数データの書き込みも可能です。
Live Library PI Web API StreamSet > UpdateValuesAdHoc
Bodyは以下のようになります。
{
"WebId": "P0HpFdn0K2z0uPQL0sTSJJEQWTAAAAS0hBU0hJTU9UT0U2NDQwXFRFU1Q5OTg",
"Items": [
{
"Timestamp": "2016-10-06T01:12:00Z",
"Good": true,
"Value": 100
},
{
"Timestamp": "2016-10-06T01:13:00Z",
"Value": 200
}
]
},
{
"WebId": "P0HpFdn0K2z0uPQL0sTSJJEQnjABAAS0hBU0hJTU9UT0U2NDQwXFRFU1Q5OTk",
"Items": [
{
"Timestamp": "2016-10-06T01:12:00Z",
"Value": 1
},
{
"Timestamp": "2016-10-06T01:13:00Z",
"Value": 2.5
}
]
}
]
"Good": true,などは省略可能です。
"Good": false,として書き込むと、”Set to Bad”という値としてPI Data Archiveに書き込まれます。 (PI Pointsに書き込んだ場合)
以下は実際にPostManで実行した例です。

上記のように複数Streamsの複数データを読み込む/書き込むことが可能です。
PostManについてや、PI Web APIの基本的な使い方は以下をご参照ください。
PI Web APIの使い方(基礎)
PI Web APIでは複数クエリをBatchでリクエストできる機能が提供されています。
PI Web API Batchリクエストの紹介
こちらと併せて使用すればよりパフォーマンス向上が図れます。
本ポストはJerome Lefebvreと一緒に作成しました。