複数の変数に同時に書き込む
- 更新日2025-08-27
- 4分で読める
必要な権限: VariableWrite
process1のvariable1とvariable2を更新するには、以下のフォーマットを使用します。
POST http://my_server:3580/nivariable/BatchWrite
JSONデータをPOST送信する
[{
"Url"
: "ni.var.psp://localhost/process1/variable1", "Value"
: "false"
}, {
"Url"
: "ni.var.psp://localhost/process1/variable2", "Value"
: "\"this is a new string value\""
}]
XMLデータをPOST送信する
<?xml version="1.0" encoding="utf-8"?>
<BatchWriteArguments>
<BatchWriteArgument>
<Url>ni.var.psp://localhost/process1/variable1</Url>
<Value>false</Value>
</BatchWriteArgument>
<BatchWriteArgument>
<Url>ni.var.psp://localhost/process1/variable2</Url>
<Value>this is a new string value</Value>
</BatchWriteArgument>
</BatchWriteArguments>
すべての変数の書き込みが成功すると、サーバは応答本文に空の配列を含んだ以下の応答を返します。
HTTP/1.1 200 OK
応答本文 (JSON)
[]
応答本文 (XML)
<?xml version="1.0" encoding="utf-8"?>
<BatchWriteErrors>
</BatchWriteErrors>
いずれかの変数書き込みが失敗した場合、応答にはエラー説明が含まれます。たとえば、variable2が書き込み不可の場合、サーバは以下の応答を返します。
HTTP/1.1 200 OK
応答本文 (JSON)
[{
"Url"
: "ni.var.psp://localhost/process1/variable2", "Error"
: {
"code"
: "", "message"
: {
"lang"
: "en-us", "value"
: "ni.var.psp://localhost/process1/variable2 is not writable"
}
}]
応答本文 (XML)
<?xml version="1.0" encoding="utf-8"?>
<BatchWriteErrors>
<BatchWriteError>
<Url><ni.var.psp://localhost/process1/variable2</Url>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<code>0</code>
<message xml:lang="en-US">"ni.var.psp://localhost/process1/variable2 is not writable"</message>
</error>
</BatchWriteError>
</BatchWriteErrors>
メモ 各バッチは選択されたすべての書き込み可能変数に書き込み、失敗したすべての書き込みに関してエラーを返します。1つの書き込みが失敗しても、バッチ書き込み全体は停止しません。