diff --git a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod
index 229b95b4ebe7761a6317aba294634ce3b5c15ba1..cdd34f7a83ae307ac84241f755f061048aaa4942 100644
--- a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod
+++ b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod
@@ -6,6 +6,7 @@
   <grantCreateProcess>%aditoprj%/entity/WorkflowDefinition_entity/grantCreateProcess.js</grantCreateProcess>
   <grantDelete v="false" />
   <contentTitleProcess>%aditoprj%/entity/WorkflowDefinition_entity/contentTitleProcess.js</contentTitleProcess>
+  <afterUiInit>%aditoprj%/entity/WorkflowDefinition_entity/afterUiInit.js</afterUiInit>
   <iconId>VAADIN:DROP</iconId>
   <titlePlural>Workflow definitions</titlePlural>
   <recordContainer>jdito</recordContainer>
diff --git a/entity/WorkflowDefinition_entity/afterUiInit.js b/entity/WorkflowDefinition_entity/afterUiInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..7199fd35b05e991cb7f35e577f1a7e593a28c60e
--- /dev/null
+++ b/entity/WorkflowDefinition_entity/afterUiInit.js
@@ -0,0 +1,20 @@
+import("system.neon");
+import("system.vars");
+import("system.translate");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW && vars.get("$sys.viewmode") == neon.FRAME_VIEWMODE_DATASET)
+{
+    var filterOnlyUnfinished = {
+        type : "group",
+        operator : "AND",
+        childs : [{
+            type : "row",
+            name : "ISFINISHED",
+            operator : "EQUAL",
+            value : translate.text("No"),
+            key : "false",
+            contenttype : "BOOLEAN"
+        }]
+    };
+    neon.setFilter("Instances", JSON.stringify(filterOnlyUnfinished));
+}
\ No newline at end of file
diff --git a/entity/WorkflowInstanceHistory_entity/recordcontainers/jdito/contentProcess.js b/entity/WorkflowInstanceHistory_entity/recordcontainers/jdito/contentProcess.js
index 8d6c63918f747b83892fa9b2c25577f79822aea5..2497bd535e9bbaaa0cd1081ac17fd95bb531f76a 100644
--- a/entity/WorkflowInstanceHistory_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/WorkflowInstanceHistory_entity/recordcontainers/jdito/contentProcess.js
@@ -32,6 +32,8 @@ historicActivities.forEach(function (activity)
 {
     if (_isRelevant(activity))
     {
+        var activityTypeName = typeNameMap[activity.activityType] || activity.activityType;
+        
         history.push([
             activity.id,
             Date.parse(activity.endTime).toString(),
@@ -40,9 +42,9 @@ historicActivities.forEach(function (activity)
             activity.processInstanceId,
             activity.durationInMillis,
             activity.activityType,
-            typeNameMap[activity.activityType] || activity.activityType,
+            activity.activityName ? activityTypeName : "",
             _getIcon(activity.activityType),
-            activity.activityName || activity.activityType,
+            activity.activityName || activityTypeName,
             activity.taskId || "",
             activity.taskId ? "WorkflowTask" : ""
         ]);
@@ -52,6 +54,6 @@ historicActivities.forEach(function (activity)
 history = JditoFilterUtils.filterRecords(["UID", "END_TIME", "START_TIME", "PROCESSDEFINITION_ID", "PROCESSINSTANCE_ID", "DURATION", "ACTIVITY_TYPE", 
     "ICON", "ACTIVITY_NAME", "TASK_ID", "TARGET_CONTEXT"], history, vars.get("$local.filter").filter)
 
-ArrayUtils.sort2d(history, 2, false, true);
+ArrayUtils.sort2d(history, 1, false, true);
 
 result.object(history);
\ No newline at end of file
diff --git a/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod b/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod
index da870aa1abc3295fecc49a2b4aee503b3016845d..62e463e96d4c4d62711551525cd046b43cffb778 100644
--- a/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod
+++ b/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod
@@ -127,6 +127,7 @@
       <onActionProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/toggleactive/onActionProcess.js</onActionProcess>
       <iconId>VAADIN:PAUSE</iconId>
       <iconIdProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/toggleactive/iconIdProcess.js</iconIdProcess>
+      <stateProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/toggleactive/stateProcess.js</stateProcess>
       <titleProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/toggleactive/titleProcess.js</titleProcess>
     </entityActionField>
     <entityConsumer>
@@ -165,6 +166,26 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityField>
+      <name>ISFINISHED</name>
+      <title>Finished</title>
+      <contentType>BOOLEAN</contentType>
+      <dropDownProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/isfinished/dropDownProcess.js</dropDownProcess>
+    </entityField>
+    <entityConsumer>
+      <name>Variables</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>WorkflowVariableValue_entity</entityName>
+        <fieldName>VariablesOfInstance</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>WorkflowInstanceId_param</name>
+          <valueProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/variables/children/workflowinstanceid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
@@ -201,6 +222,10 @@
           <isFilterable v="true" />
           <isLookupFilter v="true" />
         </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>ISFINISHED.value</name>
+          <isFilterable v="true" />
+        </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
           <name>PROCESSDEFINITION_VERSION.value</name>
         </jDitoRecordFieldMapping>
diff --git a/entity/WorkflowInstance_entity/entityfields/isfinished/dropDownProcess.js b/entity/WorkflowInstance_entity/entityfields/isfinished/dropDownProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a5eec56c41ae0c48e898c88e9a5f81ab17c043af
--- /dev/null
+++ b/entity/WorkflowInstance_entity/entityfields/isfinished/dropDownProcess.js
@@ -0,0 +1,7 @@
+import("system.translate");
+import("system.result");
+
+result.object([
+    ["true", translate.text("Yes")],
+    ["false", translate.text("No")]
+]);
\ No newline at end of file
diff --git a/entity/WorkflowInstance_entity/entityfields/toggleactive/stateProcess.js b/entity/WorkflowInstance_entity/entityfields/toggleactive/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..5f3e54483a7ef8f8d26a8fc69ab420b9036ec60b
--- /dev/null
+++ b/entity/WorkflowInstance_entity/entityfields/toggleactive/stateProcess.js
@@ -0,0 +1,5 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.ISFINISHED") == "true" ? neon.COMPONENTSTATE_INVISIBLE : neon.COMPONENTSTATE_EDITABLE);
\ No newline at end of file
diff --git a/entity/WorkflowInstance_entity/entityfields/variables/children/workflowinstanceid_param/valueProcess.js b/entity/WorkflowInstance_entity/entityfields/variables/children/workflowinstanceid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..16c85500b5355a72548030867e3d300661e9d4aa
--- /dev/null
+++ b/entity/WorkflowInstance_entity/entityfields/variables/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/recordcontainers/jdito/contentProcess.js b/entity/WorkflowInstance_entity/recordcontainers/jdito/contentProcess.js
index 821b3eafb35d93e4ca5908702c63fc4581d2f339..7f18c8bc49ac9e336d2d1a1a7d9bca3c544e6d85 100644
--- a/entity/WorkflowInstance_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/WorkflowInstance_entity/recordcontainers/jdito/contentProcess.js
@@ -10,42 +10,48 @@ var workflowDefId = vars.get("$param.WorkflowDefinitionId_param");
 var workflowDefKey = vars.get("$param.WorkflowDefinitionKey_param");
 var idvalues = vars.get("$local.idvalues");
 
-var wfInstances;
+var loadConfig = workflow.createConfigForLoadingProcessInstances();
+var loadHistoricConfig = workflow.createConfigForLoadingHistoricInstances()
+    .finished(true);
+    
+var instances = [];
+var historicInstances = [];
 
 if (idvalues)
 {
-    var loadConfig = workflow.createConfigForLoadingProcessInstances()
-        .processInstanceIds(idvalues);
-    wfInstances = JSON.parse(workflow.getProcessInstances(loadConfig));
+    loadConfig.processInstanceIds(idvalues);
+    instances = JSON.parse(workflow.getProcessInstances(loadConfig));
+    
+    if (instances.length === 0)
+    {
+        loadHistoricConfig.processInstanceIds(idvalues);
+        historicInstances = JSON.parse(workflow.getHistoricProcessInstances(loadHistoricConfig));
+    }
     
     //TODO: find a way the id can be gotten here
     //after new-mode, only the workflow key is known, that means if with the given id
     //no instance could be found, search with the key and use the item with the latest startTime
-    if (wfInstances.length === 0)
-    {
-        var instances = _getInstances(null, idvalues[0]);
-        if (instances.length === 0)
-            wfInstances = [];
-        else
-        {
-            wfInstances = [instances.reduce(function (prev, curr)
-            {
-                if (Date.parse(prev.startTime) > Date.parse(curr.startTime))
-                    return prev;
-                return curr;
-            })];
-        }
-    }
+    if (instances.length === 0 && historicInstances.length === 0)
+        instances = _getNewestInstanceForKey(idvalues[0]);
 }
 else
 {
-    wfInstances = _getInstances(workflowDefId, workflowDefKey);
+    if (workflowDefId)
+    {
+        loadConfig.processDefinitionId(workflowDefId);
+        loadHistoricConfig.processDefinitionId(workflowDefId);
+    }
+    if (workflowDefKey)
+    {
+        loadConfig.processDefinitionKey(workflowDefKey);
+        loadHistoricConfig.processDefinitionKey(workflowDefKey);
+    }
+    
+    instances = JSON.parse(workflow.getProcessInstances(loadConfig)) || [];
+    historicInstances = JSON.parse(workflow.getHistoricProcessInstances(loadHistoricConfig)) || [];
 }
 
-if (!wfInstances)
-    wfInstances = [];
-
-wfInstances = wfInstances.map(function (instance)
+var mappingFn = function (instance)
 {
     return [
         instance.id,
@@ -55,23 +61,41 @@ wfInstances = wfInstances.map(function (instance)
         instance.processDefinitionId,
         instance.processDefinitionName,
         Date.parse(instance.startTime).toString(),
+        "false", //ISFINISHED
         instance.processDefinitionVersion,
         JSON.stringify(instance.processVariables),
         instance.active ? "VAADIN:AUTOMATION" : "VAADIN:ELLIPSIS_DOTS_H"
     ];
+}
+
+instances = instances.map(mappingFn);
+historicInstances = historicInstances.map(function (instance)
+{
+    var row = mappingFn.call(this, instance);
+    row[7] = "true"; //ISFINISHED
+    row[10] = "VAADIN:CHECK_CIRCLE_O"; //ICON
+    return row;
 });
 
-wfInstances = JditoFilterUtils.filterRecords(["UID", "KEY", "ISACTIVE", "PROCESSDEFINITIONNAME", "PROCESSDEFINITION_ID", "START_TIME"], wfInstances, vars.get("$local.filter").filter);
+instances = JditoFilterUtils.filterRecords(["UID", "NAME", "KEY", "ISACTIVE", "PROCESSDEFINITIONNAME", "PROCESSDEFINITION_ID", "START_TIME", "ISFINISHED"], 
+    instances.concat(historicInstances), vars.get("$local.filter").filter);
+
+result.object(instances);
 
-result.object(wfInstances);
 
-function _getInstances (pWorkflowDefId, pWorkflowKey)
+function _getNewestInstanceForKey (pWorkflowKey)
 {
-    var loadConfig = workflow.createConfigForLoadingProcessInstances();
-    if (pWorkflowDefId)
-        loadConfig.processDefinitionId(pWorkflowDefId);
-    if (pWorkflowKey)
-        loadConfig.processDefinitionKey(pWorkflowKey);
+    var loadConfig = workflow.createConfigForLoadingProcessInstances()
+        .processDefinitionKey(pWorkflowKey);
     
-    return JSON.parse(workflow.getProcessInstances(loadConfig));
+    var instances = JSON.parse(workflow.getProcessInstances(loadConfig));
+    if (instances.length === 0)
+        return [];
+    
+    return [instances.reduce(function (prev, curr)
+    {
+        if (Date.parse(prev.startTime) > Date.parse(curr.startTime))
+            return prev;
+        return curr;
+    })];
 }
\ No newline at end of file
diff --git a/entity/WorkflowVariableValue_entity/WorkflowVariableValue_entity.aod b/entity/WorkflowVariableValue_entity/WorkflowVariableValue_entity.aod
new file mode 100644
index 0000000000000000000000000000000000000000..f4124a87d165330171520990577aa16604ae5d0f
--- /dev/null
+++ b/entity/WorkflowVariableValue_entity/WorkflowVariableValue_entity.aod
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.13" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.13">
+  <name>WorkflowVariableValue_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <title>Variable</title>
+  <titlePlural>Variables</titlePlural>
+  <recordContainer>jdito</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+    </entityProvider>
+    <entityField>
+      <name>UID</name>
+    </entityField>
+    <entityField>
+      <name>VARIABLENAME</name>
+      <title>Name</title>
+    </entityField>
+    <entityField>
+      <name>VARIABLEVALUE</name>
+      <title>Value</title>
+    </entityField>
+    <entityField>
+      <name>TARGET_CONTEXT</name>
+    </entityField>
+    <entityParameter>
+      <name>Variables_param</name>
+      <expose v="true" />
+      <mandatory v="false" />
+    </entityParameter>
+    <entityProvider>
+      <name>VariablesOfInstance</name>
+      <dependencies>
+        <entityDependency>
+          <name>b10924d7-0ba4-4268-8b2f-383e7cf6045c</name>
+          <entityName>WorkflowInstance_entity</entityName>
+          <fieldName>Variables</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+    <entityParameter>
+      <name>WorkflowInstanceId_param</name>
+      <expose v="true" />
+    </entityParameter>
+  </entityFields>
+  <recordContainers>
+    <jDitoRecordContainer>
+      <name>jdito</name>
+      <contentProcess>%aditoprj%/entity/WorkflowVariableValue_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
+      <recordFieldMappings>
+        <jDitoRecordFieldMapping>
+          <name>UID.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>VARIABLENAME.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>VARIABLEVALUE.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>TARGET_CONTEXT.value</name>
+        </jDitoRecordFieldMapping>
+      </recordFieldMappings>
+    </jDitoRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/WorkflowVariableValue_entity/recordcontainers/jdito/contentProcess.js b/entity/WorkflowVariableValue_entity/recordcontainers/jdito/contentProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..5574a3401f809850e57a307416cdc4f2e6b8e943
--- /dev/null
+++ b/entity/WorkflowVariableValue_entity/recordcontainers/jdito/contentProcess.js
@@ -0,0 +1,25 @@
+import("system.workflow");
+import("system.result");
+import("system.vars");
+
+var variables = vars.exists("$param.Variables_param") && vars.getString("$param.Variables_param");
+var instanceId = vars.exists("$param.WorkflowInstanceId_param") && vars.get("$param.WorkflowInstanceId_param");
+if (variables)
+    variables = JSON.parse(variables);
+else if (instanceId)
+    variables = JSON.parse(workflow.getProcessInstanceVariables(instanceId));
+else
+    variables = {};
+
+var variableArr = [];
+for (let variableName in variables)
+{
+    variableArr.push([
+        variableName,
+        variableName,
+        variables[variableName],
+        variableName == "targetId" && variables.targetContext ? variables.targetContext : ""
+    ]);
+}
+
+result.object(variableArr);
\ No newline at end of file
diff --git a/neonContext/WorkflowVariableValue/WorkflowVariableValue.aod b/neonContext/WorkflowVariableValue/WorkflowVariableValue.aod
new file mode 100644
index 0000000000000000000000000000000000000000..4d95ea9b8a30d49bf0551dfe4cd9ded0ad2550fd
--- /dev/null
+++ b/neonContext/WorkflowVariableValue/WorkflowVariableValue.aod
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1">
+  <name>WorkflowVariableValue</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <entity>WorkflowVariableValue_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>4c37f119-d481-4ee3-b603-8c3674433174</name>
+      <view>WorkflowVariableValueFilter_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonView/WorkflowInstanceMain_view/WorkflowInstanceMain_view.aod b/neonView/WorkflowInstanceMain_view/WorkflowInstanceMain_view.aod
index 35b1c80acbe1d3e543a3eb5d60b1436c1ea81d54..2740af0ab9a4dc8f4750ab5387b9a8745487f1e8 100644
--- a/neonView/WorkflowInstanceMain_view/WorkflowInstanceMain_view.aod
+++ b/neonView/WorkflowInstanceMain_view/WorkflowInstanceMain_view.aod
@@ -24,5 +24,10 @@
       <entityField>#ENTITY</entityField>
       <view>WorkflowInstanceTasks_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>02ed2df2-ceec-428d-9701-fb05ec7cc2fb</name>
+      <entityField>Variables</entityField>
+      <view>WorkflowVariableValueFilter_view</view>
+    </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/WorkflowInstancePreview_view/WorkflowInstancePreview_view.aod b/neonView/WorkflowInstancePreview_view/WorkflowInstancePreview_view.aod
index c3615039fed7ac37b45a554c0ad5741b8bf9d93c..9bfc1201ca8b7e1268dee13a8b6ff58cdfd045a7 100644
--- a/neonView/WorkflowInstancePreview_view/WorkflowInstancePreview_view.aod
+++ b/neonView/WorkflowInstancePreview_view/WorkflowInstancePreview_view.aod
@@ -25,6 +25,10 @@
           <name>07d22984-7ac3-4683-a874-37e4bff04bef</name>
           <entityField>ISACTIVE</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>cccd0613-dcfb-423f-a9cd-a092361f540a</name>
+          <entityField>ISFINISHED</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>2d23b208-9e83-49fc-a29b-8939b4c6c972</name>
           <entityField>KEY</entityField>
diff --git a/neonView/WorkflowVariableValueFilter_view/WorkflowVariableValueFilter_view.aod b/neonView/WorkflowVariableValueFilter_view/WorkflowVariableValueFilter_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..6e6b3fe111c6c9e1414c8cafa00bc452c083800c
--- /dev/null
+++ b/neonView/WorkflowVariableValueFilter_view/WorkflowVariableValueFilter_view.aod
@@ -0,0 +1,29 @@
+<?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.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+  <name>WorkflowVariableValueFilter_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>Table</name>
+      <entityField>#ENTITY</entityField>
+      <isCreatable v="false" />
+      <isDeletable v="false" />
+      <isEditable v="false" />
+      <columns>
+        <neonTableColumn>
+          <name>2d0b7986-0751-4f4e-b3bd-b0b43ee86372</name>
+          <entityField>VARIABLENAME</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>e189efa8-c9c0-477f-a1ec-2c486aac40f9</name>
+          <entityField>VARIABLEVALUE</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>