diff --git a/.liquibase/Data_alias/changelog.xml b/.liquibase/Data_alias/changelog.xml
index e49dccc3c73aae94950bf4bf11553c95fe43a3ad..c6e5850fd70479d476d08004f41443e3471a5d31 100644
--- a/.liquibase/Data_alias/changelog.xml
+++ b/.liquibase/Data_alias/changelog.xml
@@ -22,5 +22,5 @@
     <include relativeToChangelogFile="true" file="basic/2021.0.0/changelog.xml"/>
 
     <!--enable this only when you definetly want to overwrite the existing data with demo records:-->
-    <!--<include relativeToChangelogFile="true" file="basic/_demoData/changelog.xml" context="example"/>-->
+    <include relativeToChangelogFile="true" file="basic/_demoData/changelog.xml" context="example"/>
 </databaseChangeLog>
diff --git a/entity/ClassificationAdmin_entity/ClassificationAdmin_entity.aod b/entity/ClassificationAdmin_entity/ClassificationAdmin_entity.aod
index 50832393a42e0ccb91f71e3946cb435fd76c68fc..70859b3cb7a3a16fe4f069267a297ad6f242c6fc 100644
--- a/entity/ClassificationAdmin_entity/ClassificationAdmin_entity.aod
+++ b/entity/ClassificationAdmin_entity/ClassificationAdmin_entity.aod
@@ -92,9 +92,17 @@
       <children>
         <entityActionField>
           <name>UpdateClassification</name>
-          <title>Recalculate all Classifications</title>
+          <title>Recalculate Classifications</title>
           <onActionProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/filterviewactiongroup/children/updateclassification/onActionProcess.js</onActionProcess>
           <iconId>VAADIN:AUTOMATION</iconId>
+          <tooltip>Use this to manually start the serverprocess after changes to the configuration of classifications. It will recalculate all outdated classifications.</tooltip>
+        </entityActionField>
+        <entityActionField>
+          <name>UpdateAllClassifications</name>
+          <title>Recalculate all Classifications</title>
+          <onActionProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/filterviewactiongroup/children/updateallclassifications/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:AUTOMATION</iconId>
+          <tooltip>Use this to manually start the serverprocess, which will this time recalculate all classifications. Do this after e.g importing data from elswhere where the outdated flag couldn't been set correctly</tooltip>
         </entityActionField>
       </children>
     </entityActionGroup>
diff --git a/entity/ClassificationAdmin_entity/entityfields/filterviewactiongroup/children/updateallclassifications/onActionProcess.js b/entity/ClassificationAdmin_entity/entityfields/filterviewactiongroup/children/updateallclassifications/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a8ccdd28ccba6f9fe16b69d57538c16dc9898ba3
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/filterviewactiongroup/children/updateallclassifications/onActionProcess.js
@@ -0,0 +1,24 @@
+import("system.process");
+import("system.question");
+import("system.text");
+import("system.translate");
+import("system.util");
+import("system.vars");
+
+var execute = question.askYesNo(translate.text("Start Serveprocess"), translate.text("Are you sure you want to recalculate all classifications using the current classificationgradings? This can take some time, since ALL classifications will get freshly calculated and updated if needed."), false);
+if(execute)
+{
+    
+    
+    var processConfig = process.createStartAsyncConfig()
+                                                        .setName("updateClassifications_serverProcess")
+                                                        .setUser( vars.get("$sys.user"))
+                                                        .setThreadPriority(process.THREADPRIORITY_LOW)
+                                                        .setTimerType(process.TIMERTYPE_SERVER)
+                                                        .setLocalVariables({"recalculateAll_param" : true});
+                                                        
+
+    process.startAsync(processConfig);
+
+    question.showMessage(translate.text("Serverprocess has been started"), question.INFORMATION, translate.text("Classification"));
+}
diff --git a/process/updateClassifications_serverProcess/process.js b/process/updateClassifications_serverProcess/process.js
index 4bcfa2bb2214469b5deeb45b9d371eef7fe66865..9bdf040f4cdf01020e69f43c32cce5f1b3817992 100644
--- a/process/updateClassifications_serverProcess/process.js
+++ b/process/updateClassifications_serverProcess/process.js
@@ -52,23 +52,36 @@ var table = "CLASSIFICATIONSTORAGE";
 var column = ["CLASSIFICATIONVALUE"];
 var runUpdating = 0;
 var singleRefresh = false;
+var recalculateAll = false;
+
 if(vars.exists("$local.refreshSingleRecord_param") && vars.get("$local.refreshSingleRecord_param"))
 {
     singleRefresh = vars.get("$local.refreshSingleRecord_param");
 }
-//all classificationgroups and their object_type that have atleast one classificationtype with the outdated flag set
-if(!singleRefresh)
+else if(vars.exists("$local.recalculateAll_param") && vars.get("$local.recalculateAll_param"))
+{
+    recalculateAll = vars.get("$local.recalculateAll_param");
+}
+
+
+if(singleRefresh)
 {
     outdatedGroupsAndObjectTypes = newSelect("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID, CLASSIFICATIONTYPE.FILTER")
                                         .from("CLASSIFICATIONTYPE")
-                                        .where("CLASSIFICATIONTYPE.OUTDATED", 1)
+                                        .where("CLASSIFICATIONTYPE.OBJECT_TYPE", vars.get("$local.ObjectType_param"))
                                         .table();
 }
-else
+else if(recalculateAll)
 {
     outdatedGroupsAndObjectTypes = newSelect("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID, CLASSIFICATIONTYPE.FILTER")
                                         .from("CLASSIFICATIONTYPE")
-                                        .where("CLASSIFICATIONTYPE.OBJECT_TYPE", vars.get("$local.ObjectType_param"))
+                                        .table();
+}
+else //all classificationgroups and their object_type that have atleast one classificationtype with the outdated flag set
+{
+    outdatedGroupsAndObjectTypes = newSelect("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID, CLASSIFICATIONTYPE.FILTER")
+                                        .from("CLASSIFICATIONTYPE")
+                                        .where("CLASSIFICATIONTYPE.OUTDATED", 1)
                                         .table();
 }
 
@@ -112,13 +125,25 @@ for (i = 0; i < outdatedGroupsAndObjectTypes.length; i++)
 }
 if(!singleRefresh)
 {
-    //object_type, object_rowId, classificationstorageId and the classificationstring (e.g. "ACB") of the classificationStorage datasets that habe the outdated flag set
-    outdatedStoredClassifications = newSelect("CLASSIFICATIONSTORAGE.OBJECT_TYPE, CLASSIFICATIONSTORAGE.OBJECT_ROWID, \n\
-                                                        CLASSIFICATIONSTORAGE.CLASSIFICATIONSTORAGEID, CLASSIFICATIONSTORAGE.CLASSIFICATIONVALUE")
-                                                    .from("CLASSIFICATIONSTORAGE")
-                                                    .where("CLASSIFICATIONSTORAGE.OUTDATED", 1)
-                                                    .orderBy("OBJECT_TYPE")
-                                                    .table();
+    if(recalculateAll)
+    {
+        outdatedStoredClassifications = newSelect("CLASSIFICATIONSTORAGE.OBJECT_TYPE, CLASSIFICATIONSTORAGE.OBJECT_ROWID, \n\
+                                                            CLASSIFICATIONSTORAGE.CLASSIFICATIONSTORAGEID, CLASSIFICATIONSTORAGE.CLASSIFICATIONVALUE")
+                                                        .from("CLASSIFICATIONSTORAGE")
+                                                        .where("CLASSIFICATIONSTORAGE.OUTDATED", 1)
+                                                        .orderBy("OBJECT_TYPE")
+                                                        .table();
+    }
+    else
+    {
+        //object_type, object_rowId, classificationstorageId and the classificationstring (e.g. "ACB") of the classificationStorage datasets that habe the outdated flag set
+        outdatedStoredClassifications = newSelect("CLASSIFICATIONSTORAGE.OBJECT_TYPE, CLASSIFICATIONSTORAGE.OBJECT_ROWID, \n\
+                                                            CLASSIFICATIONSTORAGE.CLASSIFICATIONSTORAGEID, CLASSIFICATIONSTORAGE.CLASSIFICATIONVALUE")
+                                                        .from("CLASSIFICATIONSTORAGE")
+                                                        .where("CLASSIFICATIONSTORAGE.OUTDATED", 1)
+                                                        .orderBy("OBJECT_TYPE")
+                                                        .table();
+    }
     helperObject = {};                                      
     if(outdatedStoredClassifications)
     {