diff --git a/packages/editor-ui/src/Interface.ts b/packages/editor-ui/src/Interface.ts index 86eb5546bb..5e5be87948 100644 --- a/packages/editor-ui/src/Interface.ts +++ b/packages/editor-ui/src/Interface.ts @@ -353,7 +353,7 @@ export interface IExecutionPushResponse { export interface IExecutionResponse extends IExecutionBase { id: string; - data: IRunExecutionData; + data?: IRunExecutionData; workflowData: IWorkflowDb; executedNode?: string; } diff --git a/packages/editor-ui/src/components/CodeEdit.vue b/packages/editor-ui/src/components/CodeEdit.vue index 25f97b160e..cfe829099f 100644 --- a/packages/editor-ui/src/components/CodeEdit.vue +++ b/packages/editor-ui/src/components/CodeEdit.vue @@ -62,7 +62,7 @@ export default mixins( const executionData = this.$store.getters.getWorkflowExecution as IExecutionResponse | null; let runExecutionData: IRunExecutionData; - if (executionData === null) { + if (!executionData || !executionData.data) { runExecutionData = { resultData: { runData: {}, diff --git a/packages/editor-ui/src/components/NodeDetailsView.vue b/packages/editor-ui/src/components/NodeDetailsView.vue index 1b9bacfbed..ed6048eaa5 100644 --- a/packages/editor-ui/src/components/NodeDetailsView.vue +++ b/packages/editor-ui/src/components/NodeDetailsView.vue @@ -261,7 +261,7 @@ export default mixins( if (this.workflowExecution === null) { return null; } - const executionData: IRunExecutionData = this.workflowExecution.data; + const executionData: IRunExecutionData | undefined = this.workflowExecution.data; if (executionData && executionData.resultData) { return executionData.resultData.runData; } diff --git a/packages/editor-ui/src/components/OutputPanel.vue b/packages/editor-ui/src/components/OutputPanel.vue index d08a583db9..635afb939f 100644 --- a/packages/editor-ui/src/components/OutputPanel.vue +++ b/packages/editor-ui/src/components/OutputPanel.vue @@ -142,7 +142,10 @@ export default mixins( if (this.workflowExecution === null) { return null; } - const executionData: IRunExecutionData = this.workflowExecution.data; + const executionData: IRunExecutionData | undefined = this.workflowExecution.data; + if (!executionData || !executionData.resultData || !executionData.resultData.runData) { + return null; + } return executionData.resultData.runData; }, hasNodeRun(): boolean { diff --git a/packages/editor-ui/src/components/RunData.vue b/packages/editor-ui/src/components/RunData.vue index d530b2f133..8bf9a54020 100644 --- a/packages/editor-ui/src/components/RunData.vue +++ b/packages/editor-ui/src/components/RunData.vue @@ -554,7 +554,7 @@ export default mixins( if (this.workflowExecution === null) { return null; } - const executionData: IRunExecutionData = this.workflowExecution.data; + const executionData: IRunExecutionData | undefined = this.workflowExecution.data; if (executionData && executionData.resultData) { return executionData.resultData.runData; } diff --git a/packages/editor-ui/src/components/VariableSelector.vue b/packages/editor-ui/src/components/VariableSelector.vue index 331df87b49..fd8fb23697 100644 --- a/packages/editor-ui/src/components/VariableSelector.vue +++ b/packages/editor-ui/src/components/VariableSelector.vue @@ -506,7 +506,7 @@ export default mixins( const currentNodeData: IVariableSelectorOption[] = []; let tempOptions: IVariableSelectorOption[]; - if (executionData !== null) { + if (executionData !== null && executionData.data !== undefined) { const runExecutionData: IRunExecutionData = executionData.data; tempOptions = this.getNodeContext(this.workflow, runExecutionData, parentNode, activeNode.name, filterText) as IVariableSelectorOption[]; @@ -657,7 +657,7 @@ export default mixins( } as IVariableSelectorOption, ]; - if (executionData !== null) { + if (executionData !== null && executionData.data !== undefined) { const runExecutionData: IRunExecutionData = executionData.data; parentNode = this.workflow.getParentNodes(nodeName, inputName, 1); diff --git a/packages/editor-ui/src/components/mixins/workflowHelpers.ts b/packages/editor-ui/src/components/mixins/workflowHelpers.ts index 7cd4e81d4a..8fc15819fa 100644 --- a/packages/editor-ui/src/components/mixins/workflowHelpers.ts +++ b/packages/editor-ui/src/components/mixins/workflowHelpers.ts @@ -534,7 +534,7 @@ export const workflowHelpers = mixins( let connectionInputData = this.connectionInputData(parentNode, activeNode.name, inputName, runIndexParent, nodeConnection); let runExecutionData: IRunExecutionData; - if (executionData === null) { + if (executionData === null || !executionData.data) { runExecutionData = { resultData: { runData: {}, diff --git a/packages/editor-ui/src/store.ts b/packages/editor-ui/src/store.ts index 4463a5346d..1a8a6571a2 100644 --- a/packages/editor-ui/src/store.ts +++ b/packages/editor-ui/src/store.ts @@ -363,7 +363,7 @@ export const store = new Vuex.Store({ state.stateIsDirty = true; // If node has any WorkflowResultData rename also that one that the data // does still get displayed also after node got renamed - if (state.workflowExecutionData !== null && state.workflowExecutionData.data.resultData.runData.hasOwnProperty(nameData.old)) { + if (state.workflowExecutionData !== null && state.workflowExecutionData.data && state.workflowExecutionData.data.resultData.runData.hasOwnProperty(nameData.old)) { state.workflowExecutionData.data.resultData.runData[nameData.new] = state.workflowExecutionData.data.resultData.runData[nameData.old]; delete state.workflowExecutionData.data.resultData.runData[nameData.old]; } @@ -636,7 +636,7 @@ export const store = new Vuex.Store({ state.workflowExecutionData = workflowResultData; }, addNodeExecutionData(state, pushData: IPushDataNodeExecuteAfter): void { - if (state.workflowExecutionData === null) { + if (state.workflowExecutionData === null || !state.workflowExecutionData.data) { throw new Error('The "workflowExecutionData" is not initialized!'); } if (state.workflowExecutionData.data.resultData.runData[pushData.nodeName] === undefined) { @@ -645,7 +645,7 @@ export const store = new Vuex.Store({ state.workflowExecutionData.data.resultData.runData[pushData.nodeName].push(pushData.data); }, clearNodeExecutionData(state, nodeName: string): void { - if (state.workflowExecutionData === null) { + if (state.workflowExecutionData === null || !state.workflowExecutionData.data) { return; }