diff --git a/packages/editor-ui/src/components/ParameterInput.vue b/packages/editor-ui/src/components/ParameterInput.vue index 74c123b52..9f65d462e 100644 --- a/packages/editor-ui/src/components/ParameterInput.vue +++ b/packages/editor-ui/src/components/ParameterInput.vue @@ -276,7 +276,7 @@ export default mixins( returnValue = this.expressionValueComputed; } - if (returnValue !== undefined && this.parameter.type === 'string') { + if (returnValue !== undefined && returnValue !== null && this.parameter.type === 'string') { const rows = this.getArgument('rows'); if (rows === undefined || rows === 1) { returnValue = returnValue.toString().replace(/\n/, '|'); diff --git a/packages/workflow/src/Workflow.ts b/packages/workflow/src/Workflow.ts index 9bb8391ae..45854ce97 100644 --- a/packages/workflow/src/Workflow.ts +++ b/packages/workflow/src/Workflow.ts @@ -890,16 +890,16 @@ export class Workflow { // Execute the expression try { const returnValue = tmpl.tmpl(parameterValue, dataProxy.getDataProxy()); - if (typeof returnValue === 'object' && Object.keys(returnValue).length === 0) { - // When expression is incomplete it returns a Proxy which causes problems. - // Catch it with this code and return a proper error. - throw new Error('Expression is not valid.'); + if (returnValue !== null && typeof returnValue === 'object') { + if (Object.keys(returnValue).length === 0) { + // When expression is incomplete it returns a Proxy which causes problems. + // Catch it with this code and return a proper error. + throw new Error('Expression is not valid.'); + } + if (returnObjectAsString === true) { + return this.convertObjectValueToString(returnValue); + } } - - if (returnObjectAsString === true && typeof returnValue === 'object') { - return this.convertObjectValueToString(returnValue); - } - return returnValue; } catch (e) { throw new Error('Expression is not valid.');