diff --git a/entity/WorkflowTask_entity/WorkflowTask_entity.aod b/entity/WorkflowTask_entity/WorkflowTask_entity.aod index f5bcf9949894d5335e68613b990e62b9066e0208..938fbcdc991e33b51be6bc7134499438ac1fbabd 100644 --- a/entity/WorkflowTask_entity/WorkflowTask_entity.aod +++ b/entity/WorkflowTask_entity/WorkflowTask_entity.aod @@ -27,9 +27,11 @@ </entityField> <entityField> <name>FORMDEFINITION</name> + <valueProcess>%aditoprj%/entity/WorkflowTask_entity/entityfields/formdefinition/valueProcess.js</valueProcess> </entityField> <entityField> <name>FORMRESULT</name> + <onValueChange>%aditoprj%/entity/WorkflowTask_entity/entityfields/formresult/onValueChange.js</onValueChange> </entityField> <entityField> <name>NAME</name> @@ -257,9 +259,6 @@ <isFilterable v="true" /> <isLookupFilter v="true" /> </jDitoRecordFieldMapping> - <jDitoRecordFieldMapping> - <name>FORMDEFINITION.value</name> - </jDitoRecordFieldMapping> <jDitoRecordFieldMapping> <name>FORMRESULT.value</name> </jDitoRecordFieldMapping> diff --git a/entity/WorkflowTask_entity/entityfields/formdefinition/valueProcess.js b/entity/WorkflowTask_entity/entityfields/formdefinition/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..8fc3f05f70c0f41c45cc8b15489f265bfd8695d4 --- /dev/null +++ b/entity/WorkflowTask_entity/entityfields/formdefinition/valueProcess.js @@ -0,0 +1,9 @@ +import("system.result"); +import("system.vars"); +import("system.workflow"); +import("system.neon"); + +//the value of this field can be set by the onValueChange process of FORMRESULT + +if (vars.get("$this.value") == null) + result.string(workflow.getFormProperties(vars.get("$field.UID"))); \ No newline at end of file diff --git a/entity/WorkflowTask_entity/entityfields/formresult/onValueChange.js b/entity/WorkflowTask_entity/entityfields/formresult/onValueChange.js new file mode 100644 index 0000000000000000000000000000000000000000..9e42cd8ca79fe0f490ba13b7c5a732bfe0c5f0d0 --- /dev/null +++ b/entity/WorkflowTask_entity/entityfields/formresult/onValueChange.js @@ -0,0 +1,25 @@ +import("system.result"); +import("system.vars"); +import("system.workflow"); +import("system.neon"); + +var taskId = vars.get("$field.UID"); +var newResult = vars.get("$local.value"); +var oldResult = vars.get("$field.FORMRESULT"); + +if (newResult && newResult !== oldResult) +{ + /* + * fieldListeners = all fields that are used inside a visibility expression + * -> if one of these fields is changed, set the new FORMDEFINITION + */ + var fieldListeners = JSON.parse(workflow.getFormFieldListeners(taskId)); + newResult = newResult ? JSON.parse(newResult) : {}; + oldResult = oldResult ? JSON.parse(oldResult) : {}; + var isRefreshRequired = fieldListeners.some(function (fieldId) + { + return newResult[fieldId] !== oldResult[fieldId]; + }); + if (isRefreshRequired) + neon.setFieldValue("$field.FORMDEFINITION", workflow.getFormProperties(taskId, newResult)); +} \ No newline at end of file diff --git a/entity/WorkflowTask_entity/recordcontainers/jdito/contentProcess.js b/entity/WorkflowTask_entity/recordcontainers/jdito/contentProcess.js index de6e83f10c3755c6281daacaedff352aeb93ba55..ed15981f641e6ef0941c2d5298ba177b24c8a080 100644 --- a/entity/WorkflowTask_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/WorkflowTask_entity/recordcontainers/jdito/contentProcess.js @@ -96,7 +96,6 @@ result.object((function () task.processDefinitionId, task.processInstanceId, Date.parse(task.createTime).toString(), - workflow.getFormProperties(task.id) || "", "", variables.USER_ID || "", task.description || "",