From c8c4df25bae2e78b7e214de43802506a9f02832c Mon Sep 17 00:00:00 2001
From: "S.Listl" <S.Listl@SLISTL.aditosoftware.local>
Date: Mon, 16 Dec 2019 16:36:44 +0100
Subject: [PATCH] WorkflowTask open next task after completion

---
 .../target_id/displayValueProcess.js          | 14 ++++-----
 .../recordcontainers/jdito/onUpdate.js        | 31 ++++++++++++++++++-
 .../OfferPreview_view/OfferPreview_view.aod   |  4 +--
 .../WorkflowTaskPreview_view.aod              |  1 +
 4 files changed, 40 insertions(+), 10 deletions(-)

diff --git a/entity/WorkflowTask_entity/entityfields/target_id/displayValueProcess.js b/entity/WorkflowTask_entity/entityfields/target_id/displayValueProcess.js
index 686f1278c3..94eee8c9a2 100644
--- a/entity/WorkflowTask_entity/entityfields/target_id/displayValueProcess.js
+++ b/entity/WorkflowTask_entity/entityfields/target_id/displayValueProcess.js
@@ -1,8 +1,8 @@
-import("system.result");
-import("Context_lib");
-import("system.vars");
-import("system.project");
+//import("system.result");
+//import("Context_lib");
+//import("system.vars");
+//import("system.project");
 
-var context = project.getContextStructure(vars.get("$field.TARGET_CONTEXT"));
-
-result.string(ContextUtils.loadContentTitle(context.entity, vars.get("$field.TARGET_ID")));
+//var context = project.getContextStructure(vars.get("$field.TARGET_CONTEXT"));
+//
+//result.string(ContextUtils.loadContentTitle(context.entity, vars.get("$field.TARGET_ID")));
diff --git a/entity/WorkflowTask_entity/recordcontainers/jdito/onUpdate.js b/entity/WorkflowTask_entity/recordcontainers/jdito/onUpdate.js
index 683bbc2172..2e2168e278 100644
--- a/entity/WorkflowTask_entity/recordcontainers/jdito/onUpdate.js
+++ b/entity/WorkflowTask_entity/recordcontainers/jdito/onUpdate.js
@@ -1,3 +1,4 @@
+import("system.neon");
 import("system.workflow");
 import("system.vars");
 
@@ -14,5 +15,33 @@ vars.get("$local.changed").forEach(function (field)
             break;
         case "FORMRESULT.value":
             workflow.completeTaskWithFormData(taskId, JSON.parse(value));
+            _openNextTaskIfExists(rowData["PROCESSINSTANCE_ID.value"], rowData["CREATE_TIME.value"]);
     }
-});
\ No newline at end of file
+});
+
+/*
+ * checks if a new task has been created for that process instance,
+ * if that's the case the new task will be opened
+ */
+function _openNextTaskIfExists (pProcessInstanceId, pCreateTime)
+{
+    var loadConfig = workflow.createConfigForLoadingTasks()
+        .processInstanceId(pProcessInstanceId);
+        
+    var startVal = {
+        id : null, 
+        createTime : new Date(+pCreateTime).toString()
+    };
+    var newestTask = JSON.parse(workflow.getTasks(loadConfig)).reduce(function (prev, curr)
+    {
+        var prevTime = Date.parse(prev.createTime);
+        var currTime = Date.parse(curr.createTime);
+        
+        return prevTime > currTime ? prev : curr;
+    }, startVal);
+    
+    if (newestTask.id !== null)
+    {
+        neon.openContext("WorkflowTask", "WorkflowTaskPreview_view", [newestTask.id], neon.OPERATINGSTATE_VIEW, null);
+    }
+}
\ No newline at end of file
diff --git a/neonView/OfferPreview_view/OfferPreview_view.aod b/neonView/OfferPreview_view/OfferPreview_view.aod
index 59bb4d5c7d..98ba7a7fb5 100644
--- a/neonView/OfferPreview_view/OfferPreview_view.aod
+++ b/neonView/OfferPreview_view/OfferPreview_view.aod
@@ -77,8 +77,8 @@
           <entityField>PROBABILITY</entityField>
         </entityFieldLink>
         <entityFieldLink>
-          <name>3317b73e-68e8-41a8-a678-89c7c7c8513e</name>
-          <entityField>SALESPROJECT_ID</entityField>
+          <name>c603a596-a305-4408-8918-90e6e2a49ca1</name>
+          <entityField>OBJECT_ROWID</entityField>
         </entityFieldLink>
         <entityFieldLink>
           <name>59daee43-0e79-49d8-a36a-5ce4c491def9</name>
diff --git a/neonView/WorkflowTaskPreview_view/WorkflowTaskPreview_view.aod b/neonView/WorkflowTaskPreview_view/WorkflowTaskPreview_view.aod
index cb542e7627..7e63a32901 100644
--- a/neonView/WorkflowTaskPreview_view/WorkflowTaskPreview_view.aod
+++ b/neonView/WorkflowTaskPreview_view/WorkflowTaskPreview_view.aod
@@ -2,6 +2,7 @@
 <neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.3" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.3">
   <name>WorkflowTaskPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <isSmall v="true" />
   <layout>
     <headerFooterLayout>
       <name>layout</name>
-- 
GitLab