From 92cffbce2015793a045ae799d2f10548c463554f Mon Sep 17 00:00:00 2001 From: Sebastian Listl <s.listl@adito.de> Date: Wed, 25 Aug 2021 17:42:21 +0200 Subject: [PATCH] 1085288 workflow task complete action fix --- .../completemultipletasks/onActionProcess.js | 27 ++++++++++++++++--- .../completemultipletasks/stateProcess.js | 20 +++++++++++++- 2 files changed, 42 insertions(+), 5 deletions(-) diff --git a/entity/WorkflowTask_entity/entityfields/tableactions/children/completemultipletasks/onActionProcess.js b/entity/WorkflowTask_entity/entityfields/tableactions/children/completemultipletasks/onActionProcess.js index 9fa595c8bf..8924818c3b 100644 --- a/entity/WorkflowTask_entity/entityfields/tableactions/children/completemultipletasks/onActionProcess.js +++ b/entity/WorkflowTask_entity/entityfields/tableactions/children/completemultipletasks/onActionProcess.js @@ -6,10 +6,23 @@ import("system.vars"); var tasks = vars.get("$sys.selectionRows"); var currentUserId = EmployeeUtils.getCurrentUserId(); var refreshRequired = false; +var formTaskId = null; tasks.forEach(function (task) { - //tasks requiring form data can't be completed here - if ((!task["FORMDEFINITION"] || task["FORMDEFINITION"] == "null") && task["ISACTIVE"] == "true") + var taskForm = null; + if (!formTaskId) + { + try + { + taskForm = workflow.getFormProperties(task["UID"]); + } + catch (ex) {} + } + if (taskForm && taskForm != "null") + { + formTaskId = task["UID"]; + } + else { var taskId = task["#UID"]; if (!task["ASSIGNEE"]) @@ -19,5 +32,11 @@ tasks.forEach(function (task) } }); -if (refreshRequired) - neon.refreshAll(); \ No newline at end of file +if (formTaskId) +{ + neon.openContext("WorkflowTask", "WorkflowTaskForm_view", [formTaskId], neon.OPERATINGSTATE_EDIT, {}); +} +else if (refreshRequired) +{ + neon.refreshAll(); +} \ No newline at end of file diff --git a/entity/WorkflowTask_entity/entityfields/tableactions/children/completemultipletasks/stateProcess.js b/entity/WorkflowTask_entity/entityfields/tableactions/children/completemultipletasks/stateProcess.js index 5014ae2e21..d39aa258d2 100644 --- a/entity/WorkflowTask_entity/entityfields/tableactions/children/completemultipletasks/stateProcess.js +++ b/entity/WorkflowTask_entity/entityfields/tableactions/children/completemultipletasks/stateProcess.js @@ -1,11 +1,29 @@ +import("system.workflow"); import("system.result"); import("system.neon"); import("system.vars"); var tasks = vars.get("$sys.selectionRows"); +var formCount = 0; var isActive = tasks.every(function (task) { - return (!task["FORMDEFINITION"] || task["FORMDEFINITION"] == "null") && task["ISACTIVE"] == "true"; + if (task["ISACTIVE"] != "true") + { + return false; + } + try + { + var taskForm = workflow.getFormProperties(task["UID"]); + } + catch (ex) + { + taskForm = null; + } + if (taskForm && taskForm != "null") + { + formCount++; + } + return formCount <= 1; }); result.string(isActive ? neon.COMPONENTSTATE_EDITABLE : neon.COMPONENTSTATE_DISABLED); \ No newline at end of file -- GitLab