Руководтсво администратора/разработчика

Документация

Автоматизация бизнес-процессов

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)" - идентификатор запроса - сгенерированное случайное число
}

Пример:

{
 "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)"
}