diff --git a/server-plugins/process-resources/src/index.ts b/server-plugins/process-resources/src/index.ts index f8dd3ccd84..af7cd7d991 100644 --- a/server-plugins/process-resources/src/index.ts +++ b/server-plugins/process-resources/src/index.ts @@ -75,7 +75,10 @@ import { Split, Subtract, Trim, - UpperCase + UpperCase, + EmptyArray, + ExecutionInitiator, + ExecutionStarted } from './transform' import { RunSubProcess, @@ -428,7 +431,10 @@ export default async () => ({ Insert, Remove, RemoveFirst, - RemoveLast + RemoveLast, + EmptyArray, + ExecutionInitiator, + ExecutionStarted }, rollbacks: { ToDoCloseRollback, diff --git a/server-plugins/process-resources/src/transform.ts b/server-plugins/process-resources/src/transform.ts index b2b372ba4e..1cf861cc1f 100644 --- a/server-plugins/process-resources/src/transform.ts +++ b/server-plugins/process-resources/src/transform.ts @@ -50,6 +50,9 @@ export async function Insert ( control: ProcessControl, execution: Execution ): Promise { + if (value == null) { + value = [] + } if (!Array.isArray(value)) return value if (props.value == null) return value const context = parseContext(props.value) @@ -68,6 +71,9 @@ export async function Remove ( control: ProcessControl, execution: Execution ): Promise { + if (value == null) { + value = [] + } if (!Array.isArray(value)) return value if (props.value == null) return value const context = parseContext(props.value) @@ -80,11 +86,17 @@ export async function Remove ( } export function RemoveFirst (value: Doc[], props: Record): Doc[] { + if (value == null) { + value = [] + } if (!Array.isArray(value)) return value return value.slice(1) } export function RemoveLast (value: Doc[], props: Record): Doc[] { + if (value == null) { + value = [] + } if (!Array.isArray(value)) return value return value.slice(0, -1) }