Руководтсво администратора/разработчика
Документация
Автоматизация бизнес-процессов
Automator
Automator - это дополнительное программный интерфейс, который позволяет осуществлять сервисные операции с данными. Он не заменяет API, а дополняет его операциями, напрямую не связанными с операциями работы с объектами. Используется в основном в триггерах, для осуществления дополнительных операций с объектами (увеличения поля, очистка поля, изменения статуса и т.д.).
Синтаксис
Дополнительный инструмент осуществления операций с объектами
Automator - это программный интерфейс для работы с данными, запущенный в GUI сервиса по адресу адрес_сайта/проект/gui/automator.
Используетс в основном в триггерах, как набор расширенных операций с данными, полученными в триггер при возникновении события, но может использоваться отдельно, как интерфейс работы с объектами.
Адрес запроса: /automator (в триггерах используется сокращенный адрес запроса к automator-у)
Тип запроса: POST (в текущей реализации)
Тело запроса:
{
"jsonrpc": jsonrpc,
"method": method,
"params": params,
"id": id
}
- jsonrpc - тип запроса в формате jsonrpc, необязательный параметр. Значение по-умолчанию: 2.0
- method - название метода, который будет вызван и обработан (см.ниже)
- params - параметры, в json-формате, для каждого метода запроса
- id - идентификатор запроса. Используется для идентификации результатов запросов при параллельной отправки. По умолчанию можно использьзовать @-функцию случайного числа - @Rand(int)
Например:
{
"jsonrpc": "2.0",
"method":"increment",
"params":{"field":"_countGet","uid":"@Obj(UID)"},
"id":"@Rand(int)"
}
Ответ приходит в формате jsonrpc.
Например:
{"jsonrpc": "2.0", "result": 19, "id": 1, "error",""}
где:
- result - результат выполения
- id - идентификатор запроса, который был отправлен. Если id не указан при отправке запроса, то id будет иметь пустое значение.
sendmail
Отправка email-письма
Используется для отправки электронных писем.
Тело запроса:
{
"jsonrpc": "2.0",
"method":"sendmail",
"params":{
"server": "",
"port": "",
"user": "",
"pass": "",
"from": "",
"to": "",
"subject": "",
"message":"",
"turbo":""
},
"id":"@Rand(int)" - идентификатор запроса - сгенерированное случайное число
}
- params - синтаксис параметров соответствуют фунции sendmail (смотреть подробнее).
Пример:
{
"jsonrpc": "2.0",
"method":"delete",
"params":{
"server": "smtp.gmail.com",
"port": "587",
"user": "userserver",
"pass": "pass",
"from": "Иванов [ivanov@mail.ru]",
"to": "Петров Петр [petrov@mail.ru], Сидоров Иван [sidorov@mail.ru]",
"subject": "Хорошее письмо",
"message":"Текст сообщения в текстовом формате, html-формате или ссылка на сформированное письмо",
"turbo":""
},
"id":"@Rand(int)"
}
increment
Увеличение значения на +1 указанного поля
Используется для увеличения заданного поля на один (1) в основном в качестве счетчиков просмотров или других операций надо объектами.
Тело запроса:
{
"jsonrpc": "2.0",
"method":"increment",
"params":{
"field": field, - идентификатор (id) поля
"uid": uid - uid-объекта
},
"id":"@Rand(int)" - идентификатор запроса - сгенерированное случайное число
}
- field - идентификатор (id) поля, в котором находится значение, которое мы увеличиваем на один (1);
- uid - uid-объекта, в котором мы увеличим значение поля. В основном используется @-фукнция для подставовки uid-объекта или массива объектов (при триггере на запрос) в которых будет увеличено значение поля.
Пример:
В данном примере будет увеличено значение поля _countGet для объекта, uid которого будет получен через использование функции @Obj, применимой к переданному в триггер объекту или массиву объектов.
{
"jsonrpc": "2.0",
"method":"increment",
"params":{"field":"_countGet","uid":"@Obj(UID)"},
"id":"@Rand(int)"
}
delete
Удаление объекта по uid(s)
Используется для удаления объектов, переданных в триггер после запроса.
Тело запроса:
{
"jsonrpc": "2.0",
"method":"delete",
"params":{
"uids": uids - uid-ы объектов на удаление (возможна передача нескольких uid-ов, разделенных запятой (,)
},
"id":"@Rand(int)" - идентификатор запроса - сгенерированное случайное число
}
- uids - uid-ы объектов на удаление. В основном используется @-фукнция для подставовки uid-объекта или массива объектов (при триггере на запрос), которые будут удалены.
Пример:
В данном примере триггер срабатывает на вызов запроса. Результаты запроса передаются в триггер, где через @-функцию мы получаем uid-ы объектов, и передаем их на удаление в Automator используя метод delete. Обратите внимание, что в данном примере будут получены uid-ы всех переданных в триггер объектов, которые будут удалены.
{
"jsonrpc": "2.0",
"method":"delete",
"params":{"uids":"@Obj(UID)"},
"id":"@Rand(int)"
}
Пример:
В данном примере триггер также срабатывает на вызов запроса, но задача у нас удалить все объекты, которые были связаны с полученными в триггер объетами через поле _myLinkObjs. В этом случае в функцию automator-а можно передать список всех связанных объектов, которые были выбраны у всех полученных в триггер объектов.
Напоминаем, что при связывании объектов, uid-ы хранятся в поле SRC разделенных запятой (,) при множественном выборе.
{
"jsonrpc": "2.0",
"method":"delete",
"params":{"uids":"@FieldSrc('_myLinkObjs')"},
"id":"@Rand(int)"
}