В Нейро42 можно использовать связывание элементов данных для доступа к элементам, которые были созданы на предыдущих шагах рабочего процесса. Это особенно важно при работе с узлом Code, так как он позволяет программно управлять данными и ссылками между элементами.
Большинство узлов автоматически связывает каждый выходной элемент с соответствующим входным элементом, формируя цепочку данных. Если нужно, вы можете “откатываться” по этой цепочке и получать информацию о предыдущих элементах. Для концептуального понимания смотрите раздел Концепция связывания элементов. Здесь мы сосредоточимся на практическом применении в узле Code.
Когда требуется ручное связывание элементов
Нейро42 автоматически управляет linking для одного входного элемента. Однако, если у вас несколько входных элементов, бывают ситуации, когда нужно явно указывать связь с элементами. Это актуально в следующих случаях:
- Вы создаете новые элементы, которые не связаны с исходными.
- Вы возвращаете новые элементы из узла.
- Вы хотите самостоятельно контролировать связи между элементами.
Для всех остальных сценариев платформа управляет связыванием автоматически.
Как задать связывание вручную
Чтобы явно привязать новый элемент к исходному, используется поле pairedItem. Оно указывает индекс входного элемента, с которым связан выходной элемент.
Пример структуры элемента с указанием pairedItem:
[
{
«json»: {
«field1»: «значение»,
«field2»: «значение»
},
«pairedItem»: 0
}
]
Здесь pairedItem: 0 означает, что этот выходной элемент связан с первым элементом из входных данных.
Пример использования pairedItem НУЖНЫ ПРИМЕРЫ
Допустим, у нас есть входные данные:
[
{«id»: «23423532», «name»: «Jay Gatsby»},
{«id»: «23423533», «name»: «José Arcadio Buendía»},
{«id»: «23423534», «name»: «Max Sendak»},
{«id»: «23423535», «name»: «Zaphod Beeblebrox»},
{«id»: «23423536», «name»: «Edmund Pevensie»}
]
Если мы создаем новые элементы с добавлением нового поля:
newItems = [];
for(let i=0; i<items.length; i++){
newItems.push({
«json»: {
«name»: items[i].json.name,
«aBrandNewField»: «New data for item » + i
}
});
}
return newItems;
В этом случае связь с исходными элементами теряется, так как pairedItem не указан.
Чтобы сохранить связь, добавляем pairedItem:
newItems = [];
for(let i=0; i<items.length; i++){
newItems.push({
«json»: {
«name»: items[i].json.name,
«aBrandNewField»: «New data for item » + i
},
«pairedItem»: i
});
}
return newItems;
Теперь каждый новый элемент связан с исходным элементом, что позволяет в дальнейшем использовать выражение: $(«<node-name>»).item для получения данных предыдущего элемента.