diff --git a/packages/core/src/WorkflowExecute.ts b/packages/core/src/WorkflowExecute.ts index 8df3f913a163f..632c336ae3791 100644 --- a/packages/core/src/WorkflowExecute.ts +++ b/packages/core/src/WorkflowExecute.ts @@ -188,12 +188,19 @@ export class WorkflowExecute { for (let inputIndex = 0; inputIndex < connections.length; inputIndex++) { connection = connections[inputIndex]; - if (workflow.getNode(connection.node)?.disabled) continue; + const node = workflow.getNode(connection.node); + + if (node?.disabled) continue; + + if (node && pinData && pinData[node.name]) { + incomingData.push(pinData[node.name]); + } else { + incomingData.push( + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + runData[connection.node][runIndex].data![connection.type][connection.index]!, + ); + } - incomingData.push( - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - runData[connection.node][runIndex].data![connection.type][connection.index]!, - ); incomingSourceData.main.push({ previousNode: connection.node, }); diff --git a/packages/editor-ui/src/components/RunData.vue b/packages/editor-ui/src/components/RunData.vue index 6b92607ea71c3..92570ec96c6c7 100644 --- a/packages/editor-ui/src/components/RunData.vue +++ b/packages/editor-ui/src/components/RunData.vue @@ -959,6 +959,10 @@ export default mixins( return option + this.$locale.baseText('ndv.output.of') + (this.maxRunIndex+1) + itemsLabel; }, getDataCount(runIndex: number, outputIndex: number) { + if (this.pinData) { + return this.pinData.length; + } + if (this.node === null) { return 0; } diff --git a/packages/editor-ui/src/views/NodeView.vue b/packages/editor-ui/src/views/NodeView.vue index 2a83d08a3076a..d577ad5f1ff88 100644 --- a/packages/editor-ui/src/views/NodeView.vue +++ b/packages/editor-ui/src/views/NodeView.vue @@ -2234,6 +2234,10 @@ export default mixins( }); }, onNodeRun({ name, data, waiting }: { name: string, data: ITaskData[] | null, waiting: boolean }) { + const pinData = this.$store.getters.pinData; + + if (pinData && pinData[name]) return; + const sourceNodeName = name; const sourceNode = this.$store.getters.getNodeByName(sourceNodeName); const sourceId = sourceNode.id;