DataServiсe. Удаление записи. Пример
Glossary Item Box
Общие положения
Веб-служба DataService приложения bpm'online является RESTful-сервисом, т.е. поддерживает передачу состояния представления (Representational State Transfer, REST). В общем случае REST является очень простым интерфейсом управления информацией без использования каких-то дополнительных внутренних прослоек, т.е. данные не нужно преобразовывать в какой-либо сторонний формат, например, XML. В простом RESTful-сервисе каждая единица информации однозначно определяется глобальным идентификатором, таким как URL. Каждый URL, в свою очередь, имеет строго заданный формат. Однако это не всегда удобно для передачи больших массивов данных.
В DataService данные автоматичеcки могут быть сконфигурированы в различные форматы данных, такие как XML, JSON, HTML, CSV и JSV. Структура данных определяется так называемыми контрактами данных. Полный перечень контрактов данных, используемых службой DataService, изложен в статье "Веб-служба DataService".
Контракт данных DeleteQuery
Для удаления раздела используется контракт данных DeleteQuery. Передача непосредственно данных в службу DataService осуществляется по HTTP-протоколу при помощи POST-запроса по следующему URL:
// Формат URL для POST-запроса к DataService на удаление данных. http(s)://[Адрес приложения bpm'online]/[Номер конфигурации]/dataservice/[Формат данных]/reply/DeleteQuery // Пример URL для POST-запроса к DataService на удаление данных. http(s)://example.bpmonline.com/0/dataservice/json/reply/DeleteQuery
Контракт данных DeleteQuery имеет иерархическую структуру с несколькими уровнями вложенности. В серверной части ядра приложения bpm'online он представлен классом DeleteQuery пространства имен Terrasoft.Nui.ServiceModel.DataContract библиотеки классов Terrasoft.Nui.ServiceModel.dll. Однако для простоты восприятия иерархическую структуру контракта данных DeleteQuery удобно представить в формате объекта JSON:
{ "RootSchemaName":"[Корневая схема]", "OperationType":[Тип операции с записью], "ColumnValues":[Значения колонок. Не используется.], "Filters":[Фильтры запроса] }
Основные свойства класса DeleteQuery и их возможные значения представлены в таблице 1.
Табл. 1. — Свойства класса DeleteQuery
Свойство | Тип | Описание | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
RootSchemaName | string | Строка, содержащая название корневой схемы объекта добавляемой записи. | ||||||||||
OperationType | QueryOperationType |
Тип операции с записью. Задается значением перечисления QueryOperationType пространства имен Terrasoft.Nui.ServiceModel.DataContract. Для InsertQuery устанавливается значение QueryOperationType.Insert. Значения перечисления QueryOperationType:
|
||||||||||
ColumnValues | ColumnValues | Содержит коллекцию значений колонок добавляемой записи. Унаследовано от родительского класса BaseQuery. В данном типе запросов не используется. | ||||||||||
Filters | Filters | Коллекция фильтров запросов. Имеет тип Filters, определенный в пространстве имен Terrasoft.Nui.ServiceModel.DataContract. |
Класс Filters определен в пространстве имен Terrasoft.Nui.ServiceModel.DataContract. Подробности о свойствах этого класса и пример его использования изложены в статье "DataService. Фильтрация данных".
ВАЖНО
Экземпляр класса запроса DeleteQuery обязательно должен содержать в свойстве Filters ссылку на корректно инициализированный экземпляр класса Filters. В противном случае будут удалены ВСЕ записи раздела.