/Methods/CreateMonitoredEvents

<< Click to Display Table of Contents >>

Navigation:  API MasterSCADA 4D > Подключение к исполнительной системе по JSON > JSON для HTTP-запросов > Описание JSON-запросов > Сообщения >

/Methods/CreateMonitoredEvents

CreateMonitoredEvents - запрос на добавление выборки в подписку. Выборка идентифицируется клиентом по clientHandle и определяет набор полей сообщений, значения которых необходимо возвращать клиенту, а также фильтр сообщений (условие на сообщения, которые необходимо возвратить).

Данные запроса

{"sessionId":<ID сессии>,

"subscriptionId":<ID подписки>,

"items":[ - массив добавляемых выборок:

       "clientHandle":1 - ID выборки, заданный клиентом

       "archiveId":0 - ID архива сообщений, если не 0, то возвращаются только те сообщения, которые назначены в данный архив

       "taskId":0 - номер задачи, которой принадлежит объект, генерирующий сообщения

       "itemId":111 - ID объекта, генерирующего сообщения

       "path":"" - путь внутри составного объекта ItemID (можно не задавать)

       "useArchive": true - признак того, что нужно получать уведомления в хронологическом порядке (отдельные записи для появления, исчезновения, квитирования)

       "fields":[ - массив полей выборки. В любой выборке должно присутствовать поле eventId (тип - строка)

           {"id":1, - ID поля (если поле нестандартное, то равен 0)

           "name":"Field01" - имя поля (для нестандартных полей, не имеющих ID)

           "type":"BOOL" - ST тип поля

           "typeHash":3 - хеш типа поля

            }]

"filter":[ - фильтр сообщений, массив условий:

  "field = value" - условие выборки, передается прозрачно от кодогенератора

]

]

}

Данные ответа

{"subscriptionId":<ID подписки>,

"items":[ - массив добавленных выборок:

{"clientHandle":1 - ID выборки, заданный клиентом

"statusCode":0 - код ошибки добавления данной выборки сообщений

"monitoredItemId":1} - ID выборки сообщений уникальный в рамках подписки. По нему в дальнейшем будут передаваться данные по запросу, адресуемому этой записью

]

}

Пример

Запрос

{"sessionId":"1234",

"subscriptionId":1,

"items":[

{"clientHandle":1,

"taskId":0,

"itemId":28012,

"fields":[

{"name":"EventId", "type":"STRING", "typeHash":4},

{"name":"Time", "type":"DATE_AND_TIME", "typeHash":2},

{"name":"Message", "type":"STRING", "typeHash":4},

{"name":"Severity", "type":"DINT", "typeHash":1},

{"name":"Acked", "type":"BOOL", "typeHash":3}],

"filter":[

"Active=true",

"Severity <= 100 or Severity >= 900"]

}]

}

Ответ

{"code":0, "subscriptionId":1,

"items":[{"clientHandle":1,

"statusCode":0,

"monitoredItemId":1

}]

}