diff --git a/entity/Employee_entity/Employee_entity.aod b/entity/Employee_entity/Employee_entity.aod
index f2886451072955e29b55f5fad1fc2ff36bc23909..02dd23fc479b26facfb2dd620d47660db1dabb5e 100644
--- a/entity/Employee_entity/Employee_entity.aod
+++ b/entity/Employee_entity/Employee_entity.aod
@@ -315,10 +315,21 @@
     </entityField>
     <entityProvider>
       <name>EmployeesByUserId</name>
+      <dependencies>
+        <entityDependency>
+          <name>1d000ca2-f27e-47d2-95e2-ee14771c4ced</name>
+          <entityName>WorkflowTask_entity</entityName>
+          <fieldName>Employees</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+    <entityProvider>
+      <name>EmployeesByShortUserId</name>
       <lookupIdfield>SHORT_UID</lookupIdfield>
       <dependencies>
         <entityDependency>
-          <name>2b6d7d96-365d-44a0-a457-4d7a08ae18a5</name>
+          <name>8b02831c-e831-4314-8ea3-d913c3394db2</name>
           <entityName>ObjectProxy_entity</entityName>
           <fieldName>Employees</fieldName>
           <isConsumer v="false" />
diff --git a/entity/ObjectProxy_entity/ObjectProxy_entity.aod b/entity/ObjectProxy_entity/ObjectProxy_entity.aod
index a3a700d304a772f674d73558e7a9c4d330bfabb6..7fc341423909b4e43556249cedbede03f4e760c4 100644
--- a/entity/ObjectProxy_entity/ObjectProxy_entity.aod
+++ b/entity/ObjectProxy_entity/ObjectProxy_entity.aod
@@ -144,7 +144,7 @@
       <dependency>
         <name>dependency</name>
         <entityName>Employee_entity</entityName>
-        <fieldName>EmployeesByUserId</fieldName>
+        <fieldName>EmployeesByShortUserId</fieldName>
       </dependency>
     </entityConsumer>
     <entityConsumer>
diff --git a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod
index 7a08e145424bf057bbb9823bbbdd4dae3f2e1eb7..af9fd22b989f07c45cb9dcfa406c6a7703a28ab1 100644
--- a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod
+++ b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod
@@ -55,6 +55,7 @@
     </entityField>
     <entityConsumer>
       <name>Instances</name>
+      <selectionMode>MULTI</selectionMode>
       <dependency>
         <name>dependency</name>
         <entityName>WorkflowInstance_entity</entityName>
diff --git a/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod b/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod
index 26156dbf3d70b8b9630bc74cd883cb87467cdf39..f07f8f2577b2aeeb9e1fa108f79f83e9fa63181d 100644
--- a/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod
+++ b/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod
@@ -3,7 +3,7 @@
   <name>WorkflowInstance_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <title>Workflow instance</title>
-  <grantUpdate v="false" />
+  <contentTitleProcess>%aditoprj%/entity/WorkflowInstance_entity/contentTitleProcess.js</contentTitleProcess>
   <titlePlural>Workflow instances</titlePlural>
   <recordContainer>jdito</recordContainer>
   <entityFields>
@@ -34,6 +34,7 @@
       <title>Key</title>
       <consumer>WorkflowDefinitions</consumer>
       <mandatory v="true" />
+      <stateProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/key/stateProcess.js</stateProcess>
     </entityField>
     <entityField>
       <name>ISACTIVE</name>
@@ -44,11 +45,13 @@
     <entityField>
       <name>PROCESSDEFINITION_ID</name>
       <title>Workflow definition</title>
+      <state>READONLY</state>
     </entityField>
     <entityField>
       <name>START_TIME</name>
       <title>Start date</title>
       <contentType>DATE</contentType>
+      <state>READONLY</state>
     </entityField>
     <entityParameter>
       <name>WorkflowDefinitionKey_param</name>
@@ -66,6 +69,7 @@
     <entityField>
       <name>PROCESSDEFINITION_VERSION</name>
       <title>Version</title>
+      <state>READONLY</state>
     </entityField>
     <entityField>
       <name>PROCESSVARIABLES</name>
@@ -75,7 +79,14 @@
       <dependency>
         <name>dependency</name>
         <entityName>WorkflowTask_entity</entityName>
+        <fieldName>InstanceTasks</fieldName>
       </dependency>
+      <children>
+        <entityParameter>
+          <name>WorkflowInstanceId_param</name>
+          <valueProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/tasks/children/workflowinstanceid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityConsumer>
       <name>WorkflowDefinitions</name>
@@ -97,7 +108,7 @@
     </entityParameter>
     <entityField>
       <name>NAME</name>
-      <title>Process</title>
+      <title>Name</title>
     </entityField>
     <entityField>
       <name>STARTUSER_ID</name>
@@ -110,6 +121,32 @@
       <name>TargetIdFilter_param</name>
       <expose v="true" />
     </entityParameter>
+    <entityActionField>
+      <name>toggleActive</name>
+      <title>${WORKFLOW_SUSPEND}</title>
+      <onActionProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/toggleactive/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:PAUSE</iconId>
+      <iconIdProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/toggleactive/iconIdProcess.js</iconIdProcess>
+      <titleProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/toggleactive/titleProcess.js</titleProcess>
+    </entityActionField>
+    <entityConsumer>
+      <name>FinishedTasks</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>WorkflowTask_entity</entityName>
+        <fieldName>FinishedInstanceTasks</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>WorkflowInstanceId_param</name>
+          <valueProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/finishedtasks/children/workflowinstanceid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>IncludeServiceTasks_param</name>
+          <valueProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/finishedtasks/children/includeservicetasks_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
@@ -118,11 +155,15 @@
       <isSortable v="true" />
       <contentProcess>%aditoprj%/entity/WorkflowInstance_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
       <onInsert>%aditoprj%/entity/WorkflowInstance_entity/recordcontainers/jdito/onInsert.js</onInsert>
+      <onUpdate>%aditoprj%/entity/WorkflowInstance_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
       <onDelete>%aditoprj%/entity/WorkflowInstance_entity/recordcontainers/jdito/onDelete.js</onDelete>
       <recordFieldMappings>
         <jDitoRecordFieldMapping>
           <name>UID.value</name>
         </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>NAME.value</name>
+        </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
           <name>KEY.value</name>
         </jDitoRecordFieldMapping>
diff --git a/entity/WorkflowInstance_entity/contentTitleProcess.js b/entity/WorkflowInstance_entity/contentTitleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..28fd67de270b497ba718dd4e91766bd22936f67e
--- /dev/null
+++ b/entity/WorkflowInstance_entity/contentTitleProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.NAME"));
\ No newline at end of file
diff --git a/entity/WorkflowInstance_entity/entityfields/finishedtasks/children/includeservicetasks_param/valueProcess.js b/entity/WorkflowInstance_entity/entityfields/finishedtasks/children/includeservicetasks_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..40effa0178464da0c7850912345f19c7fa95975a
--- /dev/null
+++ b/entity/WorkflowInstance_entity/entityfields/finishedtasks/children/includeservicetasks_param/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string(true);
\ No newline at end of file
diff --git a/entity/WorkflowInstance_entity/entityfields/finishedtasks/children/workflowinstanceid_param/valueProcess.js b/entity/WorkflowInstance_entity/entityfields/finishedtasks/children/workflowinstanceid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..16c85500b5355a72548030867e3d300661e9d4aa
--- /dev/null
+++ b/entity/WorkflowInstance_entity/entityfields/finishedtasks/children/workflowinstanceid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.UID"));
\ No newline at end of file
diff --git a/entity/WorkflowInstance_entity/entityfields/key/stateProcess.js b/entity/WorkflowInstance_entity/entityfields/key/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c46bde21b66c0861e49513d4aaf76395b788d63f
--- /dev/null
+++ b/entity/WorkflowInstance_entity/entityfields/key/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW
+    ? neon.COMPONENTSTATE_EDITABLE
+    : neon.COMPONENTSTATE_READONLY
+);
diff --git a/entity/WorkflowInstance_entity/entityfields/tasks/children/workflowinstanceid_param/valueProcess.js b/entity/WorkflowInstance_entity/entityfields/tasks/children/workflowinstanceid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..16c85500b5355a72548030867e3d300661e9d4aa
--- /dev/null
+++ b/entity/WorkflowInstance_entity/entityfields/tasks/children/workflowinstanceid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.UID"));
\ No newline at end of file
diff --git a/entity/WorkflowInstance_entity/entityfields/toggleactive/iconIdProcess.js b/entity/WorkflowInstance_entity/entityfields/toggleactive/iconIdProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..df6997e15ceeb5d704f0a029446885cbafc6df0e
--- /dev/null
+++ b/entity/WorkflowInstance_entity/entityfields/toggleactive/iconIdProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.result");
+
+if (vars.get("$field.ISACTIVE") != "true")
+    result.string("VAADIN:PLAY");
\ No newline at end of file
diff --git a/entity/WorkflowInstance_entity/entityfields/toggleactive/onActionProcess.js b/entity/WorkflowInstance_entity/entityfields/toggleactive/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..69968d3ecc90c6126cd30f0105670703422e3e87
--- /dev/null
+++ b/entity/WorkflowInstance_entity/entityfields/toggleactive/onActionProcess.js
@@ -0,0 +1,9 @@
+import("system.logging");
+import("system.neon");
+import("system.workflow");
+import("system.vars");
+
+logging.log(workflow.getFinishedActivities(vars.get("$field.UID")))
+
+//workflow.setProcessInstanceActive(vars.get("$field.UID"), vars.get("$field.ISACTIVE") != "true");
+//neon.refreshAll();
\ No newline at end of file
diff --git a/entity/WorkflowInstance_entity/entityfields/toggleactive/titleProcess.js b/entity/WorkflowInstance_entity/entityfields/toggleactive/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..1190b49c80d69f279b738e6ca5245163b02eb05e
--- /dev/null
+++ b/entity/WorkflowInstance_entity/entityfields/toggleactive/titleProcess.js
@@ -0,0 +1,6 @@
+import("system.translate");
+import("system.vars");
+import("system.result");
+
+if (vars.get("$field.ISACTIVE") != "true")
+    result.string(translate.text("Resume"));
\ No newline at end of file
diff --git a/entity/WorkflowInstance_entity/recordcontainers/jdito/contentProcess.js b/entity/WorkflowInstance_entity/recordcontainers/jdito/contentProcess.js
index fa6930da974f88d066111b73f6a3345c788ae81d..d00f8a1e0fb4728cd2326182e92251fd45e49261 100644
--- a/entity/WorkflowInstance_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/WorkflowInstance_entity/recordcontainers/jdito/contentProcess.js
@@ -49,6 +49,7 @@ wfInstances = wfInstances.map(function (instance)
 {
     return [
         instance.id,
+        instance.name || instance.processDefinitionName,
         instance.key,
         instance.active,
         instance.processDefinitionId,
diff --git a/entity/WorkflowInstance_entity/recordcontainers/jdito/onInsert.js b/entity/WorkflowInstance_entity/recordcontainers/jdito/onInsert.js
index 0c2f12489ab8ca2bab6589150163ed8cb3e1876e..3975809ce4509fe845840bb112b3c80d857f996f 100644
--- a/entity/WorkflowInstance_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/WorkflowInstance_entity/recordcontainers/jdito/onInsert.js
@@ -8,7 +8,9 @@ import("system.process");
 
 var variables = JSON.parse(vars.getString("$param.ProcessVariables_param"));
 var targetIdFilter = vars.get("$param.TargetIdFilter_param") ? JSON.parse(vars.getString("$param.TargetIdFilter_param")) : null;
-var processKey = vars.get("$local.rowdata")["KEY.value"];
+var rowdata = vars.get("$local.rowdata");
+var processKey = rowdata["KEY.value"];
+var instanceName = rowdata["NAME.value"];
 
 if (Array.isArray(variables.targetId) && variables.targetId.length > 0)
     _startForIds(variables.targetId.slice(), variables);
@@ -46,7 +48,9 @@ function _startForIds (pTargetIds, pVariables)
     pTargetIds.forEach(function (id) 
     {
         pVariables.targetId = id;
-        workflow.startProcessByKey(processKey, pVariables);
+        var instanceId = workflow.startProcessByKey(processKey, pVariables);
+        if (instanceName)
+            workflow.setProcessInstanceName(instanceId, instanceName);
     });
 }
 
diff --git a/entity/WorkflowInstance_entity/recordcontainers/jdito/onUpdate.js b/entity/WorkflowInstance_entity/recordcontainers/jdito/onUpdate.js
new file mode 100644
index 0000000000000000000000000000000000000000..5d6495cb655cfd99f6ddca7b73595ab413e0aaf7
--- /dev/null
+++ b/entity/WorkflowInstance_entity/recordcontainers/jdito/onUpdate.js
@@ -0,0 +1,19 @@
+import("system.vars");
+import("system.workflow");
+
+var processInstanceId = vars.get("$local.uid");
+var rowdata = vars.get("$local.rowdata");
+vars.get("$local.changed").forEach(function (field)
+{
+    var value = rowdata[field];
+    switch (field)
+    {
+        case "NAME.value":
+            if (value)
+                workflow.setProcessInstanceName(processInstanceId, value);
+            break;
+        case "ISACTIVE.value":
+            workflow.setProcessInstanceActive(processInstanceId, value == "true");
+            break;
+    }
+});
\ No newline at end of file
diff --git a/entity/WorkflowTask_entity/WorkflowTask_entity.aod b/entity/WorkflowTask_entity/WorkflowTask_entity.aod
index b065b5f71b49883cb51682443c90645a31035c3b..d0ef3808faa7b55695e5e7bab66f20d398167c43 100644
--- a/entity/WorkflowTask_entity/WorkflowTask_entity.aod
+++ b/entity/WorkflowTask_entity/WorkflowTask_entity.aod
@@ -6,6 +6,7 @@
   <grantCreate v="false" />
   <grantUpdateProcess>%aditoprj%/entity/WorkflowTask_entity/grantUpdateProcess.js</grantUpdateProcess>
   <grantDelete v="false" />
+  <imageProcess>%aditoprj%/entity/WorkflowTask_entity/imageProcess.js</imageProcess>
   <titlePlural>Tasks</titlePlural>
   <recordContainer>jdito</recordContainer>
   <entityFields>
@@ -39,6 +40,8 @@
     </entityField>
     <entityField>
       <name>PROCESSINSTANCE_ID</name>
+      <linkedContext>WorkflowInstance</linkedContext>
+      <displayValueProcess>%aditoprj%/entity/WorkflowTask_entity/entityfields/processinstance_id/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>CREATE_TIME</name>
@@ -69,9 +72,28 @@
     </entityField>
     <entityProvider>
       <name>InstanceTasks</name>
+      <dependencies>
+        <entityDependency>
+          <name>5913327f-1bb4-48b8-846e-639274290cee</name>
+          <entityName>WorkflowInstance_entity</entityName>
+          <fieldName>Tasks</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>OnlyFinishedTasks_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>IncludeServiceTasks_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityParameter>
       <name>WorkflowInstanceId_param</name>
+      <expose v="true" />
     </entityParameter>
     <entityField>
       <name>DESCRIPTION</name>
@@ -86,6 +108,7 @@
     <entityField>
       <name>ASSIGNEE</name>
       <title>Responsible</title>
+      <consumer>Employees</consumer>
     </entityField>
     <entityField>
       <name>DUEDATE</name>
@@ -133,6 +156,45 @@
       <name>PRIORITY</name>
       <title>Priority</title>
     </entityField>
+    <entityField>
+      <name>ICON</name>
+      <colorProcess>%aditoprj%/entity/WorkflowTask_entity/entityfields/icon/colorProcess.js</colorProcess>
+      <contentType>IMAGE</contentType>
+    </entityField>
+    <entityConsumer>
+      <name>Employees</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Employee_entity</entityName>
+        <fieldName>EmployeesByUserId</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityParameter>
+      <name>OnlyFinishedTasks_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityProvider>
+      <name>FinishedInstanceTasks</name>
+      <dependencies>
+        <entityDependency>
+          <name>d5d39281-0183-42fa-960a-01347cddc85a</name>
+          <entityName>WorkflowInstance_entity</entityName>
+          <fieldName>FinishedTasks</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>OnlyFinishedTasks_param</name>
+          <valueProcess>%aditoprj%/entity/WorkflowTask_entity/entityfields/finishedinstancetasks/children/onlyfinishedtasks_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityParameter>
+      <name>IncludeServiceTasks_param</name>
+      <expose v="true" />
+    </entityParameter>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
@@ -205,6 +267,9 @@
         <jDitoRecordFieldMapping>
           <name>PRIORITY.value</name>
         </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>ICON.value</name>
+        </jDitoRecordFieldMapping>
       </recordFieldMappings>
     </jDitoRecordContainer>
   </recordContainers>
diff --git a/entity/WorkflowTask_entity/entityfields/claimtask/stateProcess.js b/entity/WorkflowTask_entity/entityfields/claimtask/stateProcess.js
index 594cc7db76282f79dec45bc8a5a4c80330f44a84..04ba44f544d41224a2f95cb67d83cfd7a675ce79 100644
--- a/entity/WorkflowTask_entity/entityfields/claimtask/stateProcess.js
+++ b/entity/WorkflowTask_entity/entityfields/claimtask/stateProcess.js
@@ -3,7 +3,7 @@ import("Employee_lib");
 import("system.vars");
 import("system.result");
 
-result.string(vars.get("$field.ASSIGNEE") == EmployeeUtils.getCurrentUserId()
+result.string(vars.get("$field.ASSIGNEE") || vars.get("$field.ISACTIVE") != "true"
     ? neon.COMPONENTSTATE_DISABLED
     : neon.COMPONENTSTATE_EDITABLE
 );
\ No newline at end of file
diff --git a/entity/WorkflowTask_entity/entityfields/completetask/onActionProcess.js b/entity/WorkflowTask_entity/entityfields/completetask/onActionProcess.js
index d91dfb391e1f2bf6a270a6db816d9ec2a412ab59..96372c6aa064aa0a95d9de2b1229ff821162f463 100644
--- a/entity/WorkflowTask_entity/entityfields/completetask/onActionProcess.js
+++ b/entity/WorkflowTask_entity/entityfields/completetask/onActionProcess.js
@@ -8,10 +8,9 @@ var params = {
     "TaskTitle_param" : vars.get("$field.NAME")
 };
 if (formDefinition)
-    neon.openContext("WorkflowTask", null, uids, neon.OPERATINGSTATE_EDIT, params);
+    neon.openContext("WorkflowTask", "WorkflowTaskForm_view", uids, neon.OPERATINGSTATE_EDIT, params);
 else
 {
     workflow.completeTask(vars.get("$field.UID"), {});
-    //if you try to open the task now, it will display "Task done"
-    neon.openContext("WorkflowTask", "WorkflowTaskPreview_view", uids, neon.OPERATINGSTATE_VIEW, params);
+    neon.refreshAll();
 }
\ No newline at end of file
diff --git a/entity/WorkflowTask_entity/entityfields/completetask/stateProcess.js b/entity/WorkflowTask_entity/entityfields/completetask/stateProcess.js
index 16def1966dcf13e8827fffc966b484470ebb7ef8..09d872a1afdb7bfe15c20cacccefab4652743b32 100644
--- a/entity/WorkflowTask_entity/entityfields/completetask/stateProcess.js
+++ b/entity/WorkflowTask_entity/entityfields/completetask/stateProcess.js
@@ -2,4 +2,10 @@ import("system.neon");
 import("system.vars");
 import("system.result");
 
-result.string(vars.get("$field.PROCESSINSTANCE_ID") ? neon.COMPONENTSTATE_EDITABLE : neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
+var state = neon.COMPONENTSTATE_EDITABLE;
+if (vars.get("$field.ISACTIVE") != "true")
+    state = neon.COMPONENTSTATE_DISABLED;
+else if (!vars.get("$field.PROCESSINSTANCE_ID"))
+    state = neon.COMPONENTSTATE_INVISIBLE;
+    
+result.string(state);
\ No newline at end of file
diff --git a/entity/WorkflowTask_entity/entityfields/finishedinstancetasks/children/onlyfinishedtasks_param/valueProcess.js b/entity/WorkflowTask_entity/entityfields/finishedinstancetasks/children/onlyfinishedtasks_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..40effa0178464da0c7850912345f19c7fa95975a
--- /dev/null
+++ b/entity/WorkflowTask_entity/entityfields/finishedinstancetasks/children/onlyfinishedtasks_param/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string(true);
\ No newline at end of file
diff --git a/entity/WorkflowTask_entity/entityfields/icon/colorProcess.js b/entity/WorkflowTask_entity/entityfields/icon/colorProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..1d7d551d30b8348e6adf0bf24e0f88d569981f13
--- /dev/null
+++ b/entity/WorkflowTask_entity/entityfields/icon/colorProcess.js
@@ -0,0 +1,6 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+if (vars.get("$field.ISACTIVE") != "true")
+    result.string(neon.READONLY_COLOR);
\ No newline at end of file
diff --git a/entity/WorkflowTask_entity/entityfields/processinstance_id/displayValueProcess.js b/entity/WorkflowTask_entity/entityfields/processinstance_id/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..af629bbe6276b7f807a6eff7704669acd1f2813d
--- /dev/null
+++ b/entity/WorkflowTask_entity/entityfields/processinstance_id/displayValueProcess.js
@@ -0,0 +1,7 @@
+import("Context_lib");
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if (vars.get("$sys.viewmode") == neon.FRAME_VIEWMODE_DATASET)
+    result.string(ContextUtils.loadContentTitle("WorkflowInstance_entity", vars.get("$field.PROCESSINSTANCE_ID")));
diff --git a/entity/WorkflowTask_entity/grantUpdateProcess.js b/entity/WorkflowTask_entity/grantUpdateProcess.js
index 086d90789389925e12b95a35080bbeda561d121b..ea6f76e26e3327a7743b691715d2a8fbcf07a7f3 100644
--- a/entity/WorkflowTask_entity/grantUpdateProcess.js
+++ b/entity/WorkflowTask_entity/grantUpdateProcess.js
@@ -1,4 +1,4 @@
 import("system.result");
 import("system.vars");
 
-result.string(vars.get("$field.FORMDEFINITION") != "");
\ No newline at end of file
+result.string(vars.get("$field.ISACTIVE") == "true");
\ No newline at end of file
diff --git a/entity/WorkflowTask_entity/imageProcess.js b/entity/WorkflowTask_entity/imageProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..f86b12ac2a9815380d0355d333a56acb87083bb0
--- /dev/null
+++ b/entity/WorkflowTask_entity/imageProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.ICON"));
\ 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 a39ff9cc437f005db187284b4f87b8b6b73b0931..44b94eb5a22d111d8f6a558c1210ad40589910ed 100644
--- a/entity/WorkflowTask_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/WorkflowTask_entity/recordcontainers/jdito/contentProcess.js
@@ -18,32 +18,54 @@ result.object((function ()
         return [];
     
     var isOnlyForCurrentUser = vars.exists("$param.OnlyForCurrentUser_param") && vars.get("$param.OnlyForCurrentUser_param") == "true";
+    var processInstanceId = vars.exists("$param.WorkflowInstanceId_param") && vars.get("$param.WorkflowInstanceId_param");
+    var onlyFinished = vars.exists("$param.OnlyFinishedTasks_param") && vars.get("$param.OnlyFinishedTasks_param") == "true";
+    var includeServiceTasks = vars.exists("$param.IncludeServiceTasks_param") && vars.get("$param.IncludeServiceTasks_param") == "true";
 
-    var loadConfig = workflow.createConfigForLoadingTasks();
-    var tasks;
-
-    if (vars.get("$local.idvalues") && vars.get("$local.idvalues")[0])
+    var loadConfig = onlyFinished
+        ? workflow.createConfigForLoadingHistoricTasks().finished(true)
+        : workflow.createConfigForLoadingTasks();
+        
+    var taskIds = vars.get("$local.idvalues");
+    
+    if (taskIds)
     {
-        var taskId = vars.get("$local.idvalues")[0];
-        loadConfig = workflow.createConfigForLoadingTask()
-            .taskId(taskId);
-
-        //TODO: there shouldn't be an error
-        try {
-            tasks = [JSON.parse(workflow.getTask(loadConfig))];
-        } 
-        catch (err) 
-        {
-            //This can happen if the task is done, then it can't be loaded. If that's the case, return a dummy row
-            var taskTitle = vars.exists("$param.TaskTitle_param") && vars.get("$param.TaskTitle_param") || "";
-            return [[taskId, translate.text("Task done"), taskTitle, "", vars.get("$sys.date"), "", "", "", "", "", "", "", "", "", "", "", "", "", ""]];
-        }
+        loadConfig.taskIds(taskIds);
     }
-    else 
+    else
     {
     //    if (isOnlyForCurrentUser)
     //        loadConfig.candidateIdentifier(EmployeeUtils.getCurrentUserId());
-        tasks = JSON.parse(workflow.getTasks(loadConfig));
+        if (processInstanceId)
+            loadConfig.processInstanceId(processInstanceId);
+    }
+    
+    var tasks = JSON.parse(onlyFinished
+        ? workflow.getHistoricTasks(loadConfig)
+        : workflow.getTasks(loadConfig));
+    
+    //it is possible that a task is requested that was just finished -> if a task with given id could not be found, try to load it from historic tasks
+    if (tasks.length === 0 && taskIds && taskIds.length > 0 && !onlyFinished)
+    {
+        onlyFinished = true;
+        loadConfig = workflow.createConfigForLoadingHistoricTasks().taskIds(taskIds);
+        tasks = JSON.parse(workflow.getHistoricTasks(loadConfig));
+    }
+    
+    if (includeServiceTasks && onlyFinished && processInstanceId)
+    {
+        JSON.parse(workflow.getFinishedActivities(processInstanceId)).forEach(function (activity)
+        {
+            if (activity.activityType == "serviceTask" && activity.activityName)
+                tasks.push({
+                    id : activity.id,
+                    name : activity.activityName,
+                    createTime : activity.startTime,
+                    processDefinitionId : activity.processDefinitionId,
+                    processInstanceId : activity.processInstanceId,
+                    icon : "VAADIN:AUTOMATION"
+                });
+        });
     }
     
     var assigneeCache = {
@@ -59,7 +81,14 @@ result.object((function ()
     
     tasks = tasks.map(function (task)
     {
-        var variables = JSON.parse(workflow.getTaskVariables(task.id));
+        var variables = JSON.parse(workflow.getTaskVariables(task.id)) || {};
+        var icon = "NEON:STATUS_NOT_ASSIGNED";
+        if (task.icon)
+            icon = task.icon;
+        else if (onlyFinished)
+            icon = "NEON:STATUS_DONE";
+        else if (task.assignee)
+            icon = "NEON:STATUS_ASSIGNED";
         
         return [
             task.id,
@@ -69,7 +98,7 @@ result.object((function ()
             Date.parse(task.createTime).toString(),
             workflow.getFormProperties(task.id),
             "",
-            variables.USER_ID,
+            variables.USER_ID || "",
             task.description || "",
             task.category || "",
             task.assignee || "",
@@ -78,15 +107,18 @@ result.object((function ()
             task.owner || "",
             variables.targetContext || "",
             variables.targetId || "",
-            task.claimTime,
-            task.active,
-            task.priority
+            task.claimTime || "",
+            task.active || "false",
+            task.priority || "",
+            icon
         ];
     });
 
     tasks = JditoFilterUtils.filterRecords(["UID", "NAME", "PROCESSDEFINITION_ID", "PROCESSINSTANCE_ID", 
         "CREATE_TIME", "FORMDEFINITION", "USER", "DESCRIPTION", "CATEGORY", "ASSIGNEE", "", "DUEDATE", "OWNER"], tasks, vars.get("$local.filter").filter);
-
+    
+    //order by creation date
+    tasks.sort(function (a, b) {return b[4] - a[4];});
 
     return tasks;
 })());
\ No newline at end of file
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index 84872d990b162fc0e49cd6b31bea6cb924a0244e..a46bccfc522e26ede99e03bbce6315956bab5a2f 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -6086,6 +6086,15 @@
     <entry>
       <key>${ORDER_CANCELLED}</key>
     </entry>
+    <entry>
+      <key>Claim task</key>
+    </entry>
+    <entry>
+      <key>${WORKFLOW_SUSPEND}</key>
+    </entry>
+    <entry>
+      <key>Resume</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
   <sqlModels>
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index d42a18b9fdfd7686d66e43e7bee581f7bc410243..71dd431448097b4b1de45e450c630490e3dc0b7f 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -74,6 +74,10 @@
       <key>Claim task</key>
       <value>Aufgabe annehmen</value>
     </entry>
+    <entry>
+      <key>Finished tasks</key>
+      <value>Abgeschlossene Aufgaben</value>
+    </entry>
     <entry>
       <key>Data imported.</key>
       <value>Daten wurden importiert.</value>
@@ -145,6 +149,10 @@
       <key>Education, Teaching and Reasearch</key>
       <value>Bildung, Lehre und Forschung</value>
     </entry>
+    <entry>
+      <key>${WORKFLOW_SUSPEND}</key>
+      <value>Anhalten</value>
+    </entry>
     <entry>
       <key>Start workflow</key>
       <value>Vorgang starten</value>
@@ -693,6 +701,10 @@
       <key>The person is already associated with another employee!</key>
       <value>Die Person ist bereits mit einem anderen Mitarbeiter verknüpft!</value>
     </entry>
+    <entry>
+      <key>Resume</key>
+      <value>Fortsetzen</value>
+    </entry>
     <entry>
       <key>Transmission</key>
       <value>Ãœbermittlung</value>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index 4ad089740903b8b4b7f22efa4d1f2bb42d3ee089..f18070fcf2e4e37bf8940a0ddf263487dd3dbbca 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -6143,6 +6143,16 @@
     <entry>
       <key>${CANCELLED}</key>
     </entry>
+    <entry>
+      <key>Claim task</key>
+    </entry>
+    <entry>
+      <key>${WORKFLOW_SUSPEND}</key>
+      <value>Suspend</value>
+    </entry>
+    <entry>
+      <key>Resume</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonContext/WorkflowTask/WorkflowTask.aod b/neonContext/WorkflowTask/WorkflowTask.aod
index 393e8d9457d9cbe0ba1419449ab910182c55c1c2..43d132be624cda19f5b5575b6b380b6902c17bbf 100644
--- a/neonContext/WorkflowTask/WorkflowTask.aod
+++ b/neonContext/WorkflowTask/WorkflowTask.aod
@@ -3,7 +3,6 @@
   <name>WorkflowTask</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterView>WorkflowTaskFilter_view</filterView>
-  <editView>WorkflowTaskForm_view</editView>
   <previewView>WorkflowTaskPreview_view</previewView>
   <entity>WorkflowTask_entity</entity>
   <references>
@@ -23,5 +22,13 @@
       <name>c10f6321-3d85-4c95-b9ec-0f6d5b91fb95</name>
       <view>WorkflowTaskOwn_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>bf1d15ff-a0dc-401f-874a-342e8195eb29</name>
+      <view>WorkflowTaskList_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>a86af6be-5e80-4e4c-8717-76976ff192b9</name>
+      <view>WorkflowTaskFinishedList_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonView/WorkflowInstanceEdit_view/WorkflowInstanceEdit_view.aod b/neonView/WorkflowInstanceEdit_view/WorkflowInstanceEdit_view.aod
index 9cde51ce7ca7d31f097d68a4ce1596be43a998ba..316636b189bd9e0c6f9825a97b424ce580e717e2 100644
--- a/neonView/WorkflowInstanceEdit_view/WorkflowInstanceEdit_view.aod
+++ b/neonView/WorkflowInstanceEdit_view/WorkflowInstanceEdit_view.aod
@@ -18,6 +18,10 @@
           <name>1a8b8257-0502-4ac4-8cc9-7fb7734570b4</name>
           <entityField>KEY</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>dc692ed7-3c26-42ab-b251-ce1f1e438e6b</name>
+          <entityField>NAME</entityField>
+        </entityFieldLink>
       </fields>
     </genericViewTemplate>
   </children>
diff --git a/neonView/WorkflowInstanceFilter_view/WorkflowInstanceFilter_view.aod b/neonView/WorkflowInstanceFilter_view/WorkflowInstanceFilter_view.aod
index 0b6285e26f43c98e86d53ac8d4e5c903e0ff0561..f8ce8e1dd5e400fc80d467ad14e0b1c41b22f7fe 100644
--- a/neonView/WorkflowInstanceFilter_view/WorkflowInstanceFilter_view.aod
+++ b/neonView/WorkflowInstanceFilter_view/WorkflowInstanceFilter_view.aod
@@ -13,12 +13,12 @@
       <name>Table</name>
       <entityField>#ENTITY</entityField>
       <linkedColumns>
-        <element>PROCESSDEFINITION_ID</element>
+        <element>NAME</element>
       </linkedColumns>
       <columns>
         <neonTableColumn>
           <name>c5d2c47a-5b20-49c9-b49c-5aee951ce2db</name>
-          <entityField>PROCESSDEFINITION_ID</entityField>
+          <entityField>NAME</entityField>
         </neonTableColumn>
         <neonTableColumn>
           <name>d8f5093e-d547-4276-ae46-536182bffbc0</name>
diff --git a/neonView/WorkflowInstancePreview_view/WorkflowInstancePreview_view.aod b/neonView/WorkflowInstancePreview_view/WorkflowInstancePreview_view.aod
index e4b9bacc9a79ae889fd38afbcbf412f6e10e2e7c..868ba90fa28ba0302b28212612e0232a097ad889 100644
--- a/neonView/WorkflowInstancePreview_view/WorkflowInstancePreview_view.aod
+++ b/neonView/WorkflowInstancePreview_view/WorkflowInstancePreview_view.aod
@@ -11,8 +11,8 @@
   <children>
     <cardViewTemplate>
       <name>Card</name>
-      <titleField>PROCESSDEFINITION_ID</titleField>
-      <subtitleField>KEY</subtitleField>
+      <titleField>NAME</titleField>
+      <subtitleField>PROCESSDEFINITION_ID</subtitleField>
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
@@ -39,5 +39,15 @@
         </entityFieldLink>
       </fields>
     </genericViewTemplate>
+    <neonViewReference>
+      <name>def92a6c-f556-4e4f-917b-82c3940afcc4</name>
+      <entityField>Tasks</entityField>
+      <view>WorkflowTaskList_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>908012ad-82d7-45c0-9a4b-ba6e00cc1e8c</name>
+      <entityField>FinishedTasks</entityField>
+      <view>WorkflowTaskFinishedList_view</view>
+    </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/WorkflowTaskFilter_view/WorkflowTaskFilter_view.aod b/neonView/WorkflowTaskFilter_view/WorkflowTaskFilter_view.aod
index d88575a489cf43d6d98d95bc218cc59938ea7c1a..713eaa5b4492d8e71c66cf7b88632032481c8ccd 100644
--- a/neonView/WorkflowTaskFilter_view/WorkflowTaskFilter_view.aod
+++ b/neonView/WorkflowTaskFilter_view/WorkflowTaskFilter_view.aod
@@ -11,11 +11,16 @@
   <children>
     <tableViewTemplate>
       <name>Table</name>
+      <iconField>#IMAGE</iconField>
       <entityField>#ENTITY</entityField>
       <linkedColumns>
         <element>NAME</element>
       </linkedColumns>
       <columns>
+        <neonTableColumn>
+          <name>54e2e8a6-98e5-4ab7-ac04-c29b10d3d662</name>
+          <entityField>ICON</entityField>
+        </neonTableColumn>
         <neonTableColumn>
           <name>e6c73b5b-1ae0-4337-9c83-39f9fc0b1469</name>
           <entityField>NAME</entityField>
diff --git a/neonView/WorkflowTaskFinishedList_view/WorkflowTaskFinishedList_view.aod b/neonView/WorkflowTaskFinishedList_view/WorkflowTaskFinishedList_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..e6459eea522db154460e9b3ff57f1bf0a257350e
--- /dev/null
+++ b/neonView/WorkflowTaskFinishedList_view/WorkflowTaskFinishedList_view.aod
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.4" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.4">
+  <name>WorkflowTaskFinishedList_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <drawerLayout>
+      <name>layout</name>
+      <layoutCaption>Finished tasks</layoutCaption>
+    </drawerLayout>
+  </layout>
+  <children>
+    <actionListViewTemplate>
+      <name>ActionList</name>
+      <titleField>NAME</titleField>
+      <descriptionField>DESCRIPTION</descriptionField>
+      <iconField>ICON</iconField>
+      <entityField>#ENTITY</entityField>
+    </actionListViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/WorkflowTaskForm_view/WorkflowTaskForm_view.aod b/neonView/WorkflowTaskForm_view/WorkflowTaskForm_view.aod
index f3da1166d81dad97f3f4cc0d2752d4a72d58d8a3..f2c71adb10f43333cf7ddad3edec995572c48cc1 100644
--- a/neonView/WorkflowTaskForm_view/WorkflowTaskForm_view.aod
+++ b/neonView/WorkflowTaskForm_view/WorkflowTaskForm_view.aod
@@ -13,6 +13,7 @@
       <name>DynamicForm</name>
       <formDefinition>FORMDEFINITION</formDefinition>
       <formResult>FORMRESULT</formResult>
+      <editMode v="true" />
       <entityField>#ENTITY</entityField>
     </dynamicFormViewTemplate>
   </children>
diff --git a/neonView/WorkflowTaskList_view/WorkflowTaskList_view.aod b/neonView/WorkflowTaskList_view/WorkflowTaskList_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..0b947c2441a30b8eeab491412bb6488d2925135f
--- /dev/null
+++ b/neonView/WorkflowTaskList_view/WorkflowTaskList_view.aod
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.4" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.4">
+  <name>WorkflowTaskList_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <drawerLayout>
+      <name>layout</name>
+      <layoutCaption>Tasks</layoutCaption>
+    </drawerLayout>
+  </layout>
+  <children>
+    <actionListViewTemplate>
+      <name>ActionList</name>
+      <titleField>NAME</titleField>
+      <descriptionField>DESCRIPTION</descriptionField>
+      <iconField>ICON</iconField>
+      <entityField>#ENTITY</entityField>
+    </actionListViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/WorkflowTaskOwn_view/WorkflowTaskOwn_view.aod b/neonView/WorkflowTaskOwn_view/WorkflowTaskOwn_view.aod
index e61fa34cdf84d3f197bb108feb0970c9a50f383f..81f088cc89efb44b04048cc9ce8e478a7de5b320 100644
--- a/neonView/WorkflowTaskOwn_view/WorkflowTaskOwn_view.aod
+++ b/neonView/WorkflowTaskOwn_view/WorkflowTaskOwn_view.aod
@@ -32,11 +32,16 @@
   <children>
     <tableViewTemplate>
       <name>Table</name>
+      <iconField>#IMAGE</iconField>
       <entityField>#ENTITY</entityField>
       <linkedColumns>
         <element>NAME</element>
       </linkedColumns>
       <columns>
+        <neonTableColumn>
+          <name>6d59e221-bdca-49e9-9909-ed7a777e9116</name>
+          <entityField>ICON</entityField>
+        </neonTableColumn>
         <neonTableColumn>
           <name>2debfca6-7aaf-48b6-8b8f-2310c0513229</name>
           <entityField>CREATE_TIME</entityField>
diff --git a/neonView/WorkflowTaskPreview_view/WorkflowTaskPreview_view.aod b/neonView/WorkflowTaskPreview_view/WorkflowTaskPreview_view.aod
index 661e81ca14968a258618510742be351d5ba1bb80..c1b72bdced59c396b186f6030b07ae88a73f5310 100644
--- a/neonView/WorkflowTaskPreview_view/WorkflowTaskPreview_view.aod
+++ b/neonView/WorkflowTaskPreview_view/WorkflowTaskPreview_view.aod
@@ -12,8 +12,9 @@
   <children>
     <cardViewTemplate>
       <name>Card</name>
+      <iconField>ICON</iconField>
       <titleField>NAME</titleField>
-      <subtitleField>PROCESSDEFINITION_ID</subtitleField>
+      <subtitleField>PROCESSINSTANCE_ID</subtitleField>
       <favoriteAction1>completeTask</favoriteAction1>
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>