Работа с данными контекста

Передача данных между коннекторами

В рамках контекста процесса, можно передавать данные между коннекторами. Как правило эти данные служат либо входными параметрами для выполнения бизнес логики коннектора, либо выходными данными, как результат выполнения бизнес логики коннектора.

Доступ к данным контекста в рамках коннектора осуществляется через обращение к свойству ctx.data

Как формируются данные в контексте

При инициализации данных перед выполнением коннектора, объект ctx.data формируется из данных ctx.connector.params (те данные которые были заполнены пользователем в настройках коннектора) и из данных, которые были переданы от предыдущего коннектора.

Такой подход позволяет сделать коннекторы более гибкими и всегда иметь возможность переопределить входные параметры в предыдущем коннекторе если это необходимо.

Prepare connector ctx.data
ctx.data = deepMerge(
    ctx.connector.params,
    previousConnectorData
);

В рамках основного кода коннектора или предобработчиков мы рекомендуем обращаться к данным, которые были установлены в настройках коннектора через ctx.data. Данный подход позволит задавать входные данные коннектора пользователям и всегда иметь возможность переопределить эти данные с помощью передачи их через контекст от предыдущего коннектора.

Передача данных следующему коннектору

Для того чтобы передать данные в следующий коннектор необходимо удостовериться, что описанная схема исходящих данных текущего коннектора и схема входных данных следующего коннектора соответствуют формату передаваемых данных и после этого вызвать метод ctx.setData(data)

First connector
const user = ctx.getUserById("some id");
ctx.setData({
    userId: user.id,
    email: user.email
});
Second connector
const { userId, email } = ctx.data;
// do something with data

Если схемы входных или исходящих данных не соответствуют передаваемым данным, то данные будут проигнорированы, либо будет выведена ошибка валидации данных.

Пример передачи данных и переопределения начальных значений

Первый коннектор запрашивает из БД пользователя

Второй коннектор отправляет email пользователю

В настройках коннектора можно задать данные для отправки письма (email, subject, message)

При соединении коннекторов, мы связали email из первого коннектора с email второго коннектора, а также name из первого коннектора с message второго коннектора.

Это переопределит значения email (john@domain.com) и subject (HelloJohn) заданные в настройках второго коннектора и письмо будет отправлено пользователю, который был получен в первом коннекторе

Last updated