mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
feat(core): Add optional Error-Output (#7460)
Add an additional optional error output to which all items get sent that could not be processed.  Github issue / Community forum post (link here to close automatically): https://community.n8n.io/t/error-connector-for-nodes/3094 https://community.n8n.io/t/error-handling-at-node-level-detect-node-execution-status/26791 --------- Co-authored-by: OlegIvaniv <me@olegivaniv.com>
This commit is contained in:
@@ -1045,21 +1045,48 @@ export function getNodeOutputs(
|
||||
node: INode,
|
||||
nodeTypeData: INodeTypeDescription,
|
||||
): Array<ConnectionTypes | INodeOutputConfiguration> {
|
||||
let outputs: Array<ConnectionTypes | INodeOutputConfiguration> = [];
|
||||
|
||||
if (Array.isArray(nodeTypeData.outputs)) {
|
||||
return nodeTypeData.outputs;
|
||||
outputs = nodeTypeData.outputs;
|
||||
} else {
|
||||
// Calculate the outputs dynamically
|
||||
try {
|
||||
outputs = (workflow.expression.getSimpleParameterValue(
|
||||
node,
|
||||
nodeTypeData.outputs,
|
||||
'internal',
|
||||
{},
|
||||
) || []) as ConnectionTypes[];
|
||||
} catch (e) {
|
||||
throw new Error(`Could not calculate outputs dynamically for node "${node.name}"`);
|
||||
}
|
||||
}
|
||||
|
||||
// Calculate the outputs dynamically
|
||||
try {
|
||||
return (workflow.expression.getSimpleParameterValue(
|
||||
node,
|
||||
nodeTypeData.outputs,
|
||||
'internal',
|
||||
{},
|
||||
) || []) as ConnectionTypes[];
|
||||
} catch (e) {
|
||||
throw new Error(`Could not calculate outputs dynamically for node "${node.name}"`);
|
||||
if (node.onError === 'continueErrorOutput') {
|
||||
// Copy the data to make sure that we do not change the data of the
|
||||
// node type and so change the displayNames for all nodes in the flow
|
||||
outputs = deepCopy(outputs);
|
||||
if (outputs.length === 1) {
|
||||
// Set the displayName to "Success"
|
||||
if (typeof outputs[0] === 'string') {
|
||||
outputs[0] = {
|
||||
type: outputs[0],
|
||||
};
|
||||
}
|
||||
outputs[0].displayName = 'Success';
|
||||
}
|
||||
return [
|
||||
...outputs,
|
||||
{
|
||||
category: 'error',
|
||||
type: 'main',
|
||||
displayName: 'Error',
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
return outputs;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user