Внутреннее API
В рамках работающего процесса, в области видимости каждого коннектора доступен объект ctx
, который в свою очередь предоставляет доступ к системному API процесса. Данное API позволяет работать внутренними методами процесса, а также управлять workflow.
Свойства объекта ctx
Дополнительные свойства ctx для коннекторов c типом webservice
При выполнении коннекторов с типом webservice объект ctx содержит дополнительные свойства и методы для работы с HTTP запросами.
Основные методы
ctx.getConnectorId(<id>)
Метод для получение коннектора процесса по его ID.
ctx.stopProcess() - остановка процесса
Метод для остановки выполнения процесса.
ctx.setHelper(<name>, <any>)
Метод для записи в глобальную область видимости контекста вспомогательных обработчиков.
После выполнения данного метода в коннекторах будет доступен новый обработчик.
ctx.setData(<object>)
Метод для установки передаваемых данных между коннекторами через контекст процесса.
После выполнения данного кода, следующий коннектор может получить массив пользователей от текущего коннектора.
При использовании метода setData в исходящей схеме должны обязательно быть описаны передаваемые данные, иначе они будут проигнорированы.
ctx.reject(<requeue>) - отменить выполнение следующих коннекторов
Метод предназначен для остановки выполнения следующих коннекторов. Аргумент requeue:
false - только отменяет выполнение следующих коннекторов
true - останавливает выполнение следующих коннекторов и ставит выполнение текущего коннектора опять в очередь
Этот метод может быть полезен например в случаях когда внутри текущего коннектора определяются условия выполнения и если они не отвечают необходимым значениям, то выполняется данный метод, для того чтобы остановить выполнение следующих коннекторов.
Методы для работы с DataStorage
ctx.storage.get(name, params)
Метод предназначен для получения данных их DataStorage.
ctx.storage.create(name, params)
Метод предназначен для создания записей в DataStorage
ctx.storage.update(name, params)
Метод предназначен для обновления записей в DataStorage
ctx.storage.remove(name, params)
Метод предназначен для удаления записей в DataStorage
ctx.storage.count(name, params)
Метод предназначен для подсчета количества записей в DataStorage
Методы для работы с шаблонами процесса
ctx.setTemplate(name, fn)
Метод позволяющий добавить шаблон в контекст процесса для последующего рендеринга его в вебхуках.
name - название шаблона
fn - функция рендеринга шаблона
ctx.renderTemplate(name, data)
Метод позволяющий выполнить рендеринг и получить html код предварительно созданного шаблона.
name - название шаблона
data - данные для передачи в шаблон
Методы для работы с вебхуками
ctx.response.json(data)
Метод позволяет ответить на HTTP запрос клиенту в формате json
ctx.response.plain(data)
Метод позволяет ответить на HTTP запрос клиенту в текстовом формате (text/plain)
ctx.response.html(data)
Метод позволяет ответить на HTTP запрос клиенту в формате html (text/html)
ctx.response.render(template, data)
Метод рендерит шаблон и отправляет данные клиенту в формате text/html
template - имя шаблона
data - данные, которые будут переданы в шаблон
Для выполнения данного, в контексте процесса должен быть создан шаблон. Воспользуйтесь готовыми коннекторами шаблонами (EJS или PUG), либо методами для работы с шаблонами.
ctx.response.redirect(url, code)
Метод позволяет выполнить переадресацию поступившого запроса на другой URL адрес.
url - адрес, куда будет перенаправлен клиент
code - статус код , по умолчанию 301
Last updated