Внутреннее API
В рамках работающего процесса, в области видимости каждого коннектора доступен объект ctx , который в свою очередь предоставляет доступ к системному API процесса. Данное API позволяет работать внутренними методами процесса, а также управлять workflow.
Свойства объекта ctx
Название
Описание
ctx.connector
Содержит схему текущего исполняемого коннектора
ctx.data
Содержит данные переданные текущему исполняемому коннектору от предыдущего коннектора.
ctx.workplace
Содержит название workplace
ctx.processID
Содержит id текущего процесса
Дополнительные свойства 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
Was this helpful?