diff --git a/entity/AddressValidation_entity/recordcontainers/jdito/contentProcess.js b/entity/AddressValidation_entity/recordcontainers/jdito/contentProcess.js
index d782ec9683521eb6af3261a4f67050ea15a4f652..70bcb62de39fd2d5e04dcdaf5f8bc1689a1342bf 100644
--- a/entity/AddressValidation_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/AddressValidation_entity/recordcontainers/jdito/contentProcess.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.result");
 import("WsValidation_lib");
 import("system.vars");
diff --git a/entity/AppointmentLink_entity/entityfields/appointment_id/valueProcess.js b/entity/AppointmentLink_entity/entityfields/appointment_id/valueProcess.js
index 4532c7c8eac7523c1f221d8aa6a1ba54bc7f313e..843fd3965cd3ab565f5827391dd5f4ae3a82959c 100644
--- a/entity/AppointmentLink_entity/entityfields/appointment_id/valueProcess.js
+++ b/entity/AppointmentLink_entity/entityfields/appointment_id/valueProcess.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.vars");
 import("system.result");
 
diff --git a/entity/Appointment_entity/Appointment_entity.aod b/entity/Appointment_entity/Appointment_entity.aod
index 090f081659e84f3274c7f9bbecd47f7914dbe8a8..78cbee09a0b4c7e088ab9d3942c2f9fecf04e9d9 100644
--- a/entity/Appointment_entity/Appointment_entity.aod
+++ b/entity/Appointment_entity/Appointment_entity.aod
@@ -1,203 +1,202 @@
-<?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.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
-  <name>Appointment_entity</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <documentation>%aditoprj%/entity/Appointment_entity/documentation.adoc</documentation>
-  <title>Termin</title>
-  <afterUiInit>%aditoprj%/entity/Appointment_entity/afterUiInit.js</afterUiInit>
-  <recordContainer>jdito</recordContainer>
-  <entityFields>
-    <entityField>
-      <name>SUMMARY</name>
-      <title>Betreff</title>
-      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/summary/valueProcess.js</valueProcess>
-      <onValueChange>%aditoprj%/entity/Appointment_entity/entityfields/summary/onValueChange.js</onValueChange>
-      <onValueChangeTypes>
-        <element>MASK</element>
-        <element>PROCESS</element>
-        <element>PROCESS_SETVALUE</element>
-      </onValueChangeTypes>
-    </entityField>
-    <entityField>
-      <name>DESCRIPTION</name>
-    </entityField>
-    <entityField>
-      <name>CLASSIFICATION</name>
-      <dropDownProcess>%aditoprj%/entity/Appointment_entity/entityfields/classification/dropDownProcess.js</dropDownProcess>
-      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/classification/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>BEGIN</name>
-      <selectionMode>SINGLE</selectionMode>
-      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/begin/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>END</name>
-      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/end/valueProcess.js</valueProcess>
-    </entityField>
-    <entityFieldGroup>
-      <name>STARTEND</name>
-      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/startend/valueProcess.js</valueProcess>
-      <description>FIELDGROUP</description>
-      <fields>
-        <element>BEGIN</element>
-        <element>END</element>
-      </fields>
-    </entityFieldGroup>
-    <entityField>
-      <name>STATUS</name>
-      <dropDownProcess>%aditoprj%/entity/Appointment_entity/entityfields/status/dropDownProcess.js</dropDownProcess>
-    </entityField>
-    <entityField>
-      <name>LOCATION</name>
-    </entityField>
-    <entityField>
-      <name>REMINDER_CHECK</name>
-      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/reminder_check/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>REMINDER</name>
-      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/reminder/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>CATEGORIES</name>
-      <dropDownProcess>%aditoprj%/entity/Appointment_entity/entityfields/categories/dropDownProcess.js</dropDownProcess>
-    </entityField>
-    <entityField>
-      <name>ATTENDEES</name>
-      <dropDownProcess>%aditoprj%/entity/Appointment_entity/entityfields/attendees/dropDownProcess.js</dropDownProcess>
-      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/attendees/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>TRANSPARENCY</name>
-      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/transparency/valueProcess.js</valueProcess>
-    </entityField>
-    <entityActionGroup>
-      <name>PartStatActionGroup</name>
-      <children>
-        <entityActionField>
-          <name>accept</name>
-          <title>accept</title>
-          <onActionProcess>%aditoprj%/entity/Appointment_entity/entityfields/partstatactiongroup/children/accept/onActionProcess.js</onActionProcess>
-          <actionOrder v="0" />
-          <iconId>VAADIN:CHECK</iconId>
-        </entityActionField>
-        <entityActionField>
-          <name>decline</name>
-          <title>decline</title>
-          <description></description>
-          <onActionProcess>%aditoprj%/entity/Appointment_entity/entityfields/partstatactiongroup/children/decline/onActionProcess.js</onActionProcess>
-          <iconId>VAADIN:CLOSE</iconId>
-        </entityActionField>
-        <entityActionField>
-          <name>tentative</name>
-          <title>tentative</title>
-          <onActionProcess>%aditoprj%/entity/Appointment_entity/entityfields/partstatactiongroup/children/tentative/onActionProcess.js</onActionProcess>
-          <iconId>VAADIN:QUESTION</iconId>
-        </entityActionField>
-      </children>
-    </entityActionGroup>
-    <entityProvider>
-      <name>#PROVIDER</name>
-      <recordContainer>jdito</recordContainer>
-    </entityProvider>
-    <entityParameter>
-      <name>MasterEntry_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityField>
-      <name>ORGANIZER</name>
-    </entityField>
-    <entityField>
-      <name>RRULE</name>
-      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/rrule/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>RECURRENCEID</name>
-      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/recurrenceid/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>SAFESCOPEFIELD</name>
-    </entityField>
-    <entityField>
-      <name>MASTERBEGIN</name>
-    </entityField>
-    <entityField>
-      <name>MASTEREND</name>
-    </entityField>
-    <entityField>
-      <name>UID</name>
-      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/uid/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>ATTENDEESLENGTH</name>
-    </entityField>
-    <entityField>
-      <name>ICON</name>
-    </entityField>
-    <entityParameter>
-      <name>Entry_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>AnyObjectRowid_param</name>
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>AnyObjectType_param</name>
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityConsumer>
-      <name>AppointmentLinks</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AppointmentLink_entity</entityName>
-        <fieldName>Links</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>AppointmentId_param</name>
-          <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/appointmentlinks/children/appointmentid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-  </entityFields>
-  <recordContainers>
-    <jDitoRecordContainer>
-      <name>jdito</name>
-      <title>jdito</title>
-      <description></description>
-      <jDitoRecordAlias>_____SYSTEMALIAS</jDitoRecordAlias>
-      <contentProcess>%aditoprj%/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
-      <onInsert>%aditoprj%/entity/Appointment_entity/recordcontainers/jdito/onInsert.js</onInsert>
-      <onUpdate>%aditoprj%/entity/Appointment_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
-      <onDelete>%aditoprj%/entity/Appointment_entity/recordcontainers/jdito/onDelete.js</onDelete>
-      <recordFields>
-        <element>UID.value</element>
-        <element>ATTENDEESLENGTH.value</element>
-        <element>BEGIN.value</element>
-        <element>END.value</element>
-        <element>SUMMARY.value</element>
-        <element>ORGANIZER.value</element>
-        <element>ATTENDEES.value</element>
-        <element>STATUS.value</element>
-        <element>LINKS.value</element>
-        <element>DESCRIPTION.value</element>
-        <element>LOCATION.value</element>
-        <element>ICON.value</element>
-        <element>CLASSIFICATION.value</element>
-        <element>TRANSPARENCY.value</element>
-        <element>CATEGORIES.value</element>
-        <element>REMINDER.value</element>
-        <element>REMINDER_CHECK.value</element>
-        <element>RRULE.value</element>
-        <element>RECURRENCEID.value</element>
-        <element>SAFESCOPEFIELD.value</element>
-        <element>MASTERBEGIN.value</element>
-        <element>MASTEREND.value</element>
-      </recordFields>
-    </jDitoRecordContainer>
-  </recordContainers>
-</entity>
+<?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.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
+  <name>Appointment_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <documentation>%aditoprj%/entity/Appointment_entity/documentation.adoc</documentation>
+  <title>Termin</title>
+  <afterUiInit>%aditoprj%/entity/Appointment_entity/afterUiInit.js</afterUiInit>
+  <recordContainer>jdito</recordContainer>
+  <entityFields>
+    <entityField>
+      <name>SUMMARY</name>
+      <title>Betreff</title>
+      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/summary/valueProcess.js</valueProcess>
+      <onValueChange>%aditoprj%/entity/Appointment_entity/entityfields/summary/onValueChange.js</onValueChange>
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+        <element>PROCESS_SETVALUE</element>
+      </onValueChangeTypes>
+    </entityField>
+    <entityField>
+      <name>DESCRIPTION</name>
+    </entityField>
+    <entityField>
+      <name>CLASSIFICATION</name>
+      <dropDownProcess>%aditoprj%/entity/Appointment_entity/entityfields/classification/dropDownProcess.js</dropDownProcess>
+      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/classification/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>BEGIN</name>
+      <selectionMode>SINGLE</selectionMode>
+      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/begin/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>END</name>
+      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/end/valueProcess.js</valueProcess>
+    </entityField>
+    <entityFieldGroup>
+      <name>STARTEND</name>
+      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/startend/valueProcess.js</valueProcess>
+      <description>FIELDGROUP</description>
+      <fields>
+        <element>BEGIN</element>
+        <element>END</element>
+      </fields>
+    </entityFieldGroup>
+    <entityField>
+      <name>STATUS</name>
+      <dropDownProcess>%aditoprj%/entity/Appointment_entity/entityfields/status/dropDownProcess.js</dropDownProcess>
+    </entityField>
+    <entityField>
+      <name>LOCATION</name>
+    </entityField>
+    <entityField>
+      <name>REMINDER_CHECK</name>
+      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/reminder_check/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>REMINDER</name>
+      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/reminder/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>CATEGORIES</name>
+      <dropDownProcess>%aditoprj%/entity/Appointment_entity/entityfields/categories/dropDownProcess.js</dropDownProcess>
+    </entityField>
+    <entityField>
+      <name>ATTENDEES</name>
+      <dropDownProcess>%aditoprj%/entity/Appointment_entity/entityfields/attendees/dropDownProcess.js</dropDownProcess>
+    </entityField>
+    <entityField>
+      <name>TRANSPARENCY</name>
+      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/transparency/valueProcess.js</valueProcess>
+    </entityField>
+    <entityActionGroup>
+      <name>PartStatActionGroup</name>
+      <children>
+        <entityActionField>
+          <name>accept</name>
+          <title>accept</title>
+          <onActionProcess>%aditoprj%/entity/Appointment_entity/entityfields/partstatactiongroup/children/accept/onActionProcess.js</onActionProcess>
+          <actionOrder v="0" />
+          <iconId>VAADIN:CHECK</iconId>
+        </entityActionField>
+        <entityActionField>
+          <name>decline</name>
+          <title>decline</title>
+          <description></description>
+          <onActionProcess>%aditoprj%/entity/Appointment_entity/entityfields/partstatactiongroup/children/decline/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:CLOSE</iconId>
+        </entityActionField>
+        <entityActionField>
+          <name>tentative</name>
+          <title>tentative</title>
+          <onActionProcess>%aditoprj%/entity/Appointment_entity/entityfields/partstatactiongroup/children/tentative/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:QUESTION</iconId>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
+    <entityProvider>
+      <name>#PROVIDER</name>
+      <recordContainer>jdito</recordContainer>
+    </entityProvider>
+    <entityParameter>
+      <name>MasterEntry_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityField>
+      <name>ORGANIZER</name>
+    </entityField>
+    <entityField>
+      <name>RRULE</name>
+      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/rrule/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>RECURRENCEID</name>
+      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/recurrenceid/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>SAFESCOPEFIELD</name>
+    </entityField>
+    <entityField>
+      <name>MASTERBEGIN</name>
+    </entityField>
+    <entityField>
+      <name>MASTEREND</name>
+    </entityField>
+    <entityField>
+      <name>UID</name>
+      <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/uid/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>ATTENDEESLENGTH</name>
+    </entityField>
+    <entityField>
+      <name>ICON</name>
+    </entityField>
+    <entityParameter>
+      <name>Entry_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>AnyObjectRowid_param</name>
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>AnyObjectType_param</name>
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityConsumer>
+      <name>AppointmentLinks</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AppointmentLink_entity</entityName>
+        <fieldName>Links</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>AppointmentId_param</name>
+          <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/appointmentlinks/children/appointmentid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+  </entityFields>
+  <recordContainers>
+    <jDitoRecordContainer>
+      <name>jdito</name>
+      <jDitoRecordAlias>_____SYSTEMALIAS</jDitoRecordAlias>
+      <contentProcess>%aditoprj%/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
+      <onInsert>%aditoprj%/entity/Appointment_entity/recordcontainers/jdito/onInsert.js</onInsert>
+      <onUpdate>%aditoprj%/entity/Appointment_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
+      <onDelete>%aditoprj%/entity/Appointment_entity/recordcontainers/jdito/onDelete.js</onDelete>
+      <title>jdito</title>
+      <description></description>
+      <recordFields>
+        <element>UID.value</element>
+        <element>ATTENDEESLENGTH.value</element>
+        <element>BEGIN.value</element>
+        <element>END.value</element>
+        <element>SUMMARY.value</element>
+        <element>ORGANIZER.value</element>
+        <element>ATTENDEES.value</element>
+        <element>STATUS.value</element>
+        <element>LINKS.value</element>
+        <element>DESCRIPTION.value</element>
+        <element>LOCATION.value</element>
+        <element>ICON.value</element>
+        <element>CLASSIFICATION.value</element>
+        <element>TRANSPARENCY.value</element>
+        <element>CATEGORIES.value</element>
+        <element>REMINDER.value</element>
+        <element>REMINDER_CHECK.value</element>
+        <element>RRULE.value</element>
+        <element>RECURRENCEID.value</element>
+        <element>SAFESCOPEFIELD.value</element>
+        <element>MASTERBEGIN.value</element>
+        <element>MASTEREND.value</element>
+      </recordFields>
+    </jDitoRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/Appointment_entity/entityfields/attendees/valueProcess.js b/entity/Appointment_entity/entityfields/attendees/valueProcess.js
deleted file mode 100644
index bc78b4d9d3d55e3ce2a327d8c5e5fde3a0698eb6..0000000000000000000000000000000000000000
--- a/entity/Appointment_entity/entityfields/attendees/valueProcess.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import("system.neon");
-import("system.vars");
-import("system.calendars");
-import("system.result");
-
-/**
- * Following if() is only for passing param-parts from "new Appointment"-Dialog to AppointmentEditViewTemplate
- */
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.Entry_param"))
-{
-    var event = JSON.parse(vars.getString("$param.Entry_param"));
-
-    if(event[calendars.AFFECTEDUSERS])
-        result.string(event[calendars.AFFECTEDUSERS]);
-}
\ No newline at end of file
diff --git a/entity/Appointment_entity/entityfields/status/dropDownProcess.js b/entity/Appointment_entity/entityfields/status/dropDownProcess.js
index 42a85014d1701b3016bb7513e10b8a9ca43b5c16..47902887f361fe18ae37574854e5bd2a0bffa20e 100644
--- a/entity/Appointment_entity/entityfields/status/dropDownProcess.js
+++ b/entity/Appointment_entity/entityfields/status/dropDownProcess.js
@@ -1,21 +1,11 @@
-import("system.result");
-import("system.translate");
-import("system.calendars");
-
-if( calendars.getBackendType() != calendars.BACKEND_EXCHANGEWS )
-{
-    result.object([ 
-            [calendars.STATUS_CONFIRMED, translate.text("Confirmed")],
-            [calendars.STATUS_TENTATIVE, translate.text("Tentative")],
-            [calendars.STATUS_CANCELLED, translate.text("Cancelled")]
-          ]);
-}
-else 
-{
-    result.object( [ 
-            //[calendars.STATUS_BUSY, translate.text("Gebucht")],
-            [calendars.STATUS_TENTATIVE, translate.text("Tentative")],
-            [calendars.STATUS_OOF, translate.text("OutOfOffice")],
-            [calendars.STATUS_FREE, translate.text("Free")] 
-          ] );
-}
\ No newline at end of file
+import("system.result");
+import("system.translate");
+import("system.calendars");
+
+result.object([ 
+        [calendars.STATUS_CONFIRMED, translate.text("Confirmed")],
+        [calendars.STATUS_CANCELLED, translate.text("Cancelled")],
+        [calendars.STATUS_TENTATIVE, translate.text("Tentative")],
+        [calendars.STATUS_OOF, translate.text("OutOfOffice")],
+        [calendars.STATUS_FREE, translate.text("Free")] 
+      ]);
\ No newline at end of file
diff --git a/entity/Appointment_entity/recordcontainers/jdito/onDelete.js b/entity/Appointment_entity/recordcontainers/jdito/onDelete.js
index 49d8f3beef61ff3c6aaeedf862c74f89a0620438..80fb7869b5f59190558797549e7717b73da53db4 100644
--- a/entity/Appointment_entity/recordcontainers/jdito/onDelete.js
+++ b/entity/Appointment_entity/recordcontainers/jdito/onDelete.js
@@ -7,6 +7,7 @@ if (vars.exists("$param.Entry_param"))
 {
     var entry = JSON.parse(vars.getString("$param.Entry_param"));
     var reccurenceid = entry[calendars.RECURRENCEID];
-    if (reccurenceid == undefined) reccurenceid = null;
+    if (reccurenceid == undefined) 
+        reccurenceid = null;
     calendars.removeEntryByUID(calendars.VEVENT, vars.get("$sys.user"), entry[calendars.ID], reccurenceid)
 }
\ No newline at end of file
diff --git a/entity/AttributeRelation_entity/entityfields/alter/children/edit/onActionProcess.js b/entity/AttributeRelation_entity/entityfields/alter/children/edit/onActionProcess.js
index 29e10aa3f5c2a6a3246b668ed1fbaf7275ebad63..aa6e8903ba7a47e108b893ef2da692305e44624e 100644
--- a/entity/AttributeRelation_entity/entityfields/alter/children/edit/onActionProcess.js
+++ b/entity/AttributeRelation_entity/entityfields/alter/children/edit/onActionProcess.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("ObjectRelation_lib");
 import("system.neon");
 import("system.vars");
diff --git a/entity/AttributeRelation_entity/entityfields/value/dropDownProcess.js b/entity/AttributeRelation_entity/entityfields/value/dropDownProcess.js
index 4e5ce667697b5b82e30b247100e6bf8ac94ccb25..7fff32ea3e3cd6ec08ffa32a0060f011364f857a 100644
--- a/entity/AttributeRelation_entity/entityfields/value/dropDownProcess.js
+++ b/entity/AttributeRelation_entity/entityfields/value/dropDownProcess.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.translate");
 import("system.db");
 import("system.result");
diff --git a/entity/AttributeRelation_entity/recordcontainers/jdito/contentProcess.js b/entity/AttributeRelation_entity/recordcontainers/jdito/contentProcess.js
index 0793c38ad2f30cfcbaa07f177b100722f69d9a16..3804e14480140e44859b3a2f277dfe564eebece7 100644
--- a/entity/AttributeRelation_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/AttributeRelation_entity/recordcontainers/jdito/contentProcess.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.util");
 import("Util_lib");
 import("system.vars");
diff --git a/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js b/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js
index afc7197e97741a8914e184539f8ec6933eab979a..783ef19d531a8fd29a553d7a1bdc7ba879c3a11d 100644
--- a/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.datetime");
 import("system.util");
 import("system.db");
diff --git a/entity/AttributeUsage_entity/entityfields/max_count/onValidation.js b/entity/AttributeUsage_entity/entityfields/max_count/onValidation.js
index cfec392b7024d4f7c6113dfc840fb39aa8b6e96f..96735194f37f6ce825c6d1ad41109100193ae56f 100644
--- a/entity/AttributeUsage_entity/entityfields/max_count/onValidation.js
+++ b/entity/AttributeUsage_entity/entityfields/max_count/onValidation.js
@@ -1,13 +1,15 @@
-import("system.result");
-import("system.vars");
-import("system.translate");
-import("Entity_lib");
-
-var maxCount = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.MAX_COUNT"));
-
-if (maxCount)
-{
-    maxCount = Number(maxCount);
-    if (maxCount <= 0 || maxCount != Math.floor(maxCount)) //when specified, max count must can't be negative, zero or not an integer
-        result.string(false);
-}
+import("system.result");
+import("system.vars");
+import("system.translate");
+import("Entity_lib");
+
+var maxCount = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.MAX_COUNT"));
+
+if (maxCount)
+{
+    maxCount = Number(maxCount);
+    if (maxCount <= 0)
+        result.string(translate.text("Maximal count must be one or higher"));
+    else if (maxCount != Math.floor(maxCount))
+        result.string(translate.text("Maximal count has to be a whole number"));
+}
diff --git a/entity/AttributeUsage_entity/entityfields/min_count/onValidation.js b/entity/AttributeUsage_entity/entityfields/min_count/onValidation.js
index 36ddf1f1fdf60592f1f46cec7c9983495ccb9e6c..2f28221a1b6275fe7bf3dc84a2fe25b49f54f1c7 100644
--- a/entity/AttributeUsage_entity/entityfields/min_count/onValidation.js
+++ b/entity/AttributeUsage_entity/entityfields/min_count/onValidation.js
@@ -1,13 +1,13 @@
-import("system.result");
-import("system.vars");
-import("system.translate");
-import("Entity_lib");
-
-var minCount = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.MIN_COUNT"));
-
-if (minCount)
-{
-    minCount = Number(minCount);
-    if (minCount < 0 || minCount != Math.floor(minCount)) //when specified, max count must can't be negative or not an integer
-        result.string(false);
-}
+import("system.result");
+import("system.vars");
+import("system.translate");
+import("Entity_lib");
+
+var minCount = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.MIN_COUNT"));
+
+if (minCount)
+{
+    minCount = Number(minCount);
+    if (minCount < 0 || minCount != Math.floor(minCount)) //when specified, max count must can't be negative or not an integer
+        result.string(translate.text("Minimal count must be a positive whole number"));
+}
diff --git a/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js b/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js
index 7e1362aa7c3ee46625377c8b4900398d8433d334..07f1feb61f65e6c284ced7ec8ef5911ae7b7d397 100644
--- a/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("Util_lib");
 import("JditoFilter_lib");
 import("KeywordRegistry_basic");
diff --git a/entity/CampaignAddParticipants_entity/recordcontainers/jdito/onInsert.js b/entity/CampaignAddParticipants_entity/recordcontainers/jdito/onInsert.js
index dfe9d2cc49d0f8eca37575b7bfb56e313f7e26c5..34147650e0d817d4b6948d420b5f59169c399c1f 100644
--- a/entity/CampaignAddParticipants_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/CampaignAddParticipants_entity/recordcontainers/jdito/onInsert.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.vars");
 import("system.db");
 import("system.util");
diff --git a/entity/CampaignAnalysis_entity/entityfields/costsperparticipant/valueProcess.js b/entity/CampaignAnalysis_entity/entityfields/costsperparticipant/valueProcess.js
index 4a29c1d9492f5767026ff32787a8d4f95adeb6e9..ccd043074d5d151f5226b40cc450c4e510e13657 100644
--- a/entity/CampaignAnalysis_entity/entityfields/costsperparticipant/valueProcess.js
+++ b/entity/CampaignAnalysis_entity/entityfields/costsperparticipant/valueProcess.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.result");
 import("system.vars");
 
diff --git a/entity/CampaignAnalysis_entity/entityfields/remainingruntime/valueProcess.js b/entity/CampaignAnalysis_entity/entityfields/remainingruntime/valueProcess.js
index c192c54243cfbf9352f12123d470e865a700f515..ea4ff36878e8b5f9fdc5a1e5f3412f5d1e6cb193 100644
--- a/entity/CampaignAnalysis_entity/entityfields/remainingruntime/valueProcess.js
+++ b/entity/CampaignAnalysis_entity/entityfields/remainingruntime/valueProcess.js
@@ -1,6 +1,5 @@
 import("Date_lib");
 import("system.datetime");
-import("system.logging");
 import("system.vars");
 import("system.result");
 
diff --git a/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js b/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js
index 2b4f523926b9ec4c9690d04b39c57a218cd7d63a..ef4b32c6c5801121bfac2c42c138c3b10ee5d2d9 100644
--- a/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js
+++ b/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js
@@ -1,7 +1,6 @@
-import("system.neon");
-import("system.logging");
-import("Campaign_lib");
-import("system.vars");
-
-var stepId = CampaignUtils.getDefaultCampaignStep(vars.get("$field.CAMPAIGN_ID"));
+import("system.neon");
+import("Campaign_lib");
+import("system.vars");
+
+var stepId = CampaignUtils.getDefaultCampaignStep(vars.get("$field.CAMPAIGN_ID"));
 neon.setFieldValue("$field.CAMPAIGNSTEP_ID", stepId);
\ No newline at end of file
diff --git a/entity/CampaignParticipant_entity/entityfields/contact_id/linkedContextProcess.js b/entity/CampaignParticipant_entity/entityfields/contact_id/linkedContextProcess.js
index 5937a308883298d47b5e2feac75c30b1975f61aa..2e504d63e3b5a3f71b54b072798b3ad09c50984b 100644
--- a/entity/CampaignParticipant_entity/entityfields/contact_id/linkedContextProcess.js
+++ b/entity/CampaignParticipant_entity/entityfields/contact_id/linkedContextProcess.js
@@ -1,6 +1,5 @@
-import("system.logging");
-import("system.vars");
-import("system.result");
-import("Contact_lib");
-
+import("system.vars");
+import("system.result");
+import("Contact_lib");
+
 result.string(ContactUtils.getContextByContactId(vars.getString("$field.CONTACT_ID")));
\ No newline at end of file
diff --git a/entity/CampaignParticipant_entity/entityfields/contact_id/valueProcess.js b/entity/CampaignParticipant_entity/entityfields/contact_id/valueProcess.js
index b1f0c22e179404f5a3c61a56eed1779a80cb3331..7a0567f685002323c521639e56667e945aa30d91 100644
--- a/entity/CampaignParticipant_entity/entityfields/contact_id/valueProcess.js
+++ b/entity/CampaignParticipant_entity/entityfields/contact_id/valueProcess.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.result");
 import("system.vars");
 
diff --git a/entity/CampaignParticipant_entity/entityfields/filterviewactiongroup/children/setsteptoparticipantselection/onActionProcess.js b/entity/CampaignParticipant_entity/entityfields/filterviewactiongroup/children/setsteptoparticipantselection/onActionProcess.js
index 840b658a0b90b2a2ecf183c0438dc912309fd66f..990e188be561f4bb2b8ea73b668b16b25a65e5ab 100644
--- a/entity/CampaignParticipant_entity/entityfields/filterviewactiongroup/children/setsteptoparticipantselection/onActionProcess.js
+++ b/entity/CampaignParticipant_entity/entityfields/filterviewactiongroup/children/setsteptoparticipantselection/onActionProcess.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.vars");
 import("system.neon");
 import("Campaign_lib");
diff --git a/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/conditionProcess.js b/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/conditionProcess.js
index 4711d4f3131afab1a3be94a265cfeea89650caf1..a9971811a54d5b707ba3b11b10f93682ff0ca93a 100644
--- a/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/conditionProcess.js
+++ b/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/conditionProcess.js
@@ -1,19 +1,18 @@
-import("system.logging");
-import("system.result");
-import("system.vars");
-
-var resultValue;
-if(vars.get("$param.CampaignId_param") != null && vars.get("$param.CampaignId_param") != "")
-{
-    resultValue = "CAMPAIGN_ID = '" + vars.get("$param.CampaignId_param") + "'";
-    
-    if(vars.get("$param.CampaignStepId_param") != null && vars.get("$param.CampaignStepId_param") != "")
-        resultValue += " AND CAMPAIGNSTEP_ID = '" + vars.get("$param.CampaignStepId_param") + "'";
-    
-    result.string(resultValue);
-}
-else if(vars.get("$param.CampaignStepId_param") != null && vars.get("$param.CampaignStepId_param") != "")
-    {
-        resultValue = "CAMPAIGNSTEP_ID = '" + vars.get("$param.CampaignStepId_param") + "'";
-        result.string(resultValue);
+import("system.result");
+import("system.vars");
+
+var resultValue;
+if(vars.get("$param.CampaignId_param") != null && vars.get("$param.CampaignId_param") != "")
+{
+    resultValue = "CAMPAIGN_ID = '" + vars.get("$param.CampaignId_param") + "'";
+    
+    if(vars.get("$param.CampaignStepId_param") != null && vars.get("$param.CampaignStepId_param") != "")
+        resultValue += " AND CAMPAIGNSTEP_ID = '" + vars.get("$param.CampaignStepId_param") + "'";
+    
+    result.string(resultValue);
+}
+else if(vars.get("$param.CampaignStepId_param") != null && vars.get("$param.CampaignStepId_param") != "")
+    {
+        resultValue = "CAMPAIGNSTEP_ID = '" + vars.get("$param.CampaignStepId_param") + "'";
+        result.string(resultValue);
     }
\ No newline at end of file
diff --git a/entity/CampaignStep_entity/entityfields/campaign_id/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaign_id/valueProcess.js
index e9f19f672c6564fd172bcea97a3497bfddfae479..b91c3634ae7fa3229e120ed364433b3f7787b276 100644
--- a/entity/CampaignStep_entity/entityfields/campaign_id/valueProcess.js
+++ b/entity/CampaignStep_entity/entityfields/campaign_id/valueProcess.js
@@ -1,8 +1,7 @@
-import("system.neon");
-import("system.logging");
-import("system.result");
-import("system.vars");
-
-//For creation of new Step in CampaignMainView
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.campaignId_param") && vars.get("$param.campaignId_param"))
+import("system.neon");
+import("system.result");
+import("system.vars");
+
+//For creation of new Step in CampaignMainView
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.campaignId_param") && vars.get("$param.campaignId_param"))
     result.string(vars.get("$param.campaignId_param"));
\ No newline at end of file
diff --git a/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignstepid_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignstepid_param/valueProcess.js
index a185eb0f0666c03f9cbc341d2c59c94c67a3bbdb..3c2f1c06fcaf51951f47bcf15233d0571e35ea6f 100644
--- a/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignstepid_param/valueProcess.js
+++ b/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignstepid_param/valueProcess.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.result");
 import("system.vars");
 
diff --git a/entity/Campaign_entity/entityfields/remainingruntime/valueProcess.js b/entity/Campaign_entity/entityfields/remainingruntime/valueProcess.js
index 5764de796a52fb09f739c71f03f25e2f64c78b1a..f8e3c2a6b08b0cb958eda2019deee866cbd158bb 100644
--- a/entity/Campaign_entity/entityfields/remainingruntime/valueProcess.js
+++ b/entity/Campaign_entity/entityfields/remainingruntime/valueProcess.js
@@ -1,6 +1,5 @@
 import("Date_lib");
 import("system.datetime");
-import("system.logging");
 import("system.vars");
 import("system.result");
 
diff --git a/entity/ClassificationAdmin_entity/ClassificationAdmin_entity.aod b/entity/ClassificationAdmin_entity/ClassificationAdmin_entity.aod
index 7acf0adec7325b650bd1a3f2704b2d3c1120e4ae..48a89e78e1848a7d7ea4ec6549800305ea89e945 100644
--- a/entity/ClassificationAdmin_entity/ClassificationAdmin_entity.aod
+++ b/entity/ClassificationAdmin_entity/ClassificationAdmin_entity.aod
@@ -1,58 +1,163 @@
-<?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.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
-  <name>ClassificationAdmin_entity</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <icon>VAADIN:LIST_OL</icon>
-  <title>Classification</title>
-  <grantView v="true" />
-  <grantCreate v="false" />
-  <grantUpdate v="false" />
-  <grantDelete v="false" />
-  <contentTitleProcess>%aditoprj%/entity/ClassificationAdmin_entity/contentTitleProcess.js</contentTitleProcess>
-  <usePermissions v="true" />
-  <titlePlural>Classifications</titlePlural>
-  <recordContainer>jdito</recordContainer>
-  <entityFields>
-    <entityProvider>
-      <name>#PROVIDER</name>
-    </entityProvider>
-    <entityField>
-      <name>UID</name>
-      <title>Usage</title>
-      <consumer>KeywordClassificationTypes</consumer>
-      <displayValueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/uid/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityConsumer>
-      <name>ClassificationsAdmin</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Classification_entity</entityName>
-        <fieldName>ClassificationsAdministration</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>KeywordClassificationTypes</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/keywordclassificationtypes/children/containername_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-  </entityFields>
-  <recordContainers>
-    <jDitoRecordContainer>
-      <name>jdito</name>
-      <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
-      <contentProcess>%aditoprj%/entity/ClassificationAdmin_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
-      <recordFields>
-        <element>UID.value</element>
-      </recordFields>
-    </jDitoRecordContainer>
-  </recordContainers>
-</entity>
+<?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.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
+  <name>ClassificationAdmin_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>VAADIN:LIST_OL</icon>
+  <title>Classification</title>
+  <grantDeleteProcess>%aditoprj%/entity/ClassificationAdmin_entity/grantDeleteProcess.js</grantDeleteProcess>
+  <contentTitleProcess>%aditoprj%/entity/ClassificationAdmin_entity/contentTitleProcess.js</contentTitleProcess>
+  <titlePlural>Classifications</titlePlural>
+  <recordContainer>jdito</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+    </entityProvider>
+    <entityField>
+      <name>UID</name>
+      <title>Usage</title>
+      <consumer>KeywordClassificationTypes</consumer>
+      <displayValueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/uid/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>CLASSIFICATIONID</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationid/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>CLASSIFICATIONSCORE_ID</name>
+      <title>Selection</title>
+      <consumer>ClassificationScores</consumer>
+      <searchable v="false" />
+      <titleProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationscore_id/titleProcess.js</titleProcess>
+      <displayValueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationscore_id/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityParameter>
+      <name>ClassificationType_param</name>
+      <expose v="true" />
+      <mandatory v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>ObjectType_param</name>
+      <expose v="true" />
+      <mandatory v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>ObjectRowid_param</name>
+      <expose v="true" />
+      <mandatory v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityField>
+      <name>CLASSIFICATIONTYPEID</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationtypeid/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>CLASSIFICATIONGROUP</name>
+      <contentType>TEXT</contentType>
+      <groupable v="true" />
+      <mandatoryProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroup/mandatoryProcess.js</mandatoryProcess>
+      <dropDownProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroup/dropDownProcess.js</dropDownProcess>
+      <textInputAllowed v="true" />
+      <searchable v="false" />
+      <titleProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroup/titleProcess.js</titleProcess>
+      <displayValueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroup/displayValueProcess.js</displayValueProcess>
+      <onValidation>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroup/onValidation.js</onValidation>
+    </entityField>
+    <entityField>
+      <name>CLASSIFICATIONTYPE_ID</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationtype_id/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>OBJECT_ROWID</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/object_rowid/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>OBJECT_TYPE</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/object_type/valueProcess.js</valueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>KeywordClassificationTypes</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/keywordclassificationtypes/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>ClassificationScores</name>
+      <state>EDITABLE</state>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ClassificationScore_entity</entityName>
+        <fieldName>ClassificationScores</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ClassificationGroup_param</name>
+          <valueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationscores/children/classificationgroup_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ClassificationTypeId_param</name>
+          <valueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationscores/children/classificationtypeid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ClassificationType_param</name>
+          <valueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationscores/children/classificationtype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>CLASSIFICATIONTYPE</name>
+      <title>Usage</title>
+      <consumer>KeywordClassificationTypes</consumer>
+      <groupable v="true" />
+      <mandatory v="true" />
+      <searchable v="true" />
+      <stateProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationtype/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationtype/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationtype/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>SCORETYPE</name>
+      <title>Scoretype</title>
+      <mandatory v="true" />
+      <displayValueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/scoretype/displayValueProcess.js</displayValueProcess>
+    </entityField>
+  </entityFields>
+  <recordContainers>
+    <jDitoRecordContainer>
+      <name>jdito</name>
+      <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
+      <isFilterable v="true" />
+      <isRequireContainerFiltering v="true" />
+      <contentProcess>%aditoprj%/entity/ClassificationAdmin_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
+      <onInsert>%aditoprj%/entity/ClassificationAdmin_entity/recordcontainers/jdito/onInsert.js</onInsert>
+      <onUpdate>%aditoprj%/entity/ClassificationAdmin_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
+      <onDelete>%aditoprj%/entity/ClassificationAdmin_entity/recordcontainers/jdito/onDelete.js</onDelete>
+      <recordFields>
+        <element>UID.value</element>
+        <element>CLASSIFICATIONID.value</element>
+        <element>CLASSIFICATIONGROUP.value</element>
+        <element>CLASSIFICATIONSCORE_ID.value</element>
+        <element>CLASSIFICATIONTYPEID.value</element>
+        <element>CLASSIFICATIONTYPE_ID.value</element>
+        <element>OBJECT_TYPE.value</element>
+        <element>OBJECT_ROWID.value</element>
+        <element>SCORETYPE.value</element>
+        <element>CLASSIFICATIONTYPE.value</element>
+      </recordFields>
+    </jDitoRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationgroup/displayValueProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationgroup/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a5717eabb76417046c488939aadcfa7beb915dcd
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationgroup/displayValueProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.translate");
+import("system.result");
+
+result.string(translate.text(vars.get("$this.value")));
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationgroup/dropDownProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationgroup/dropDownProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b20aec8464c2cf6ef40ac4cca818b4a99105a6f6
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationgroup/dropDownProcess.js
@@ -0,0 +1,12 @@
+import("Classification_lib");
+import("system.neon");
+import("system.vars");
+import("system.db");
+import("system.result");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    var classificationType = vars.get("$field.CLASSIFICATIONTYPE")
+    if (classificationType)
+        result.object(ClassificationUtils.getAllGroups(classificationType, true));
+}
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationgroup/mandatoryProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationgroup/mandatoryProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7bbc5aa02d8beaf00c4458e4297646209f00ad91
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationgroup/mandatoryProcess.js
@@ -0,0 +1,5 @@
+import("system.neon");
+import("system.result");
+import("system.vars");
+
+result.object(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT);
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/classificationgroup/onValidation.js b/entity/ClassificationAdmin_entity/entityfields/classificationgroup/onValidation.js
similarity index 85%
rename from entity/Classification_entity/entityfields/classificationgroup/onValidation.js
rename to entity/ClassificationAdmin_entity/entityfields/classificationgroup/onValidation.js
index 92e2b5ca5600d35b28d68c43b20a43f97f5aefc3..54c0a302da1fbc5e4e536a7ffd0f80778cc1986c 100644
--- a/entity/Classification_entity/entityfields/classificationgroup/onValidation.js
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationgroup/onValidation.js
@@ -5,7 +5,7 @@ import("system.vars");
 import("Classification_lib");
 import("Entity_lib");
 
-if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT && vars.exists("$param.IsAdminMode_param") && vars.get("$param.IsAdminMode_param") == "1")
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
 {
     var newGroup = ProcessHandlingUtils.getOnValidationValue();
     
diff --git a/entity/Classification_entity/entityfields/classificationgroup/titleProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationgroup/titleProcess.js
similarity index 56%
rename from entity/Classification_entity/entityfields/classificationgroup/titleProcess.js
rename to entity/ClassificationAdmin_entity/entityfields/classificationgroup/titleProcess.js
index 69092d7e4eb7d0499152f2b6c7f91cc0d3352e2b..de080516afe4fe1620bf99bbd2dd36fe97d7e62a 100644
--- a/entity/Classification_entity/entityfields/classificationgroup/titleProcess.js
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationgroup/titleProcess.js
@@ -3,7 +3,7 @@ import("system.translate");
 import("system.vars");
 import("system.result");
 
-if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.IsAdminMode_param") && vars.exists("$param.IsAdminMode_param") == "1") 
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) 
 {
     result.string(translate.text("Group"));
 }
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationscore_id/displayValueProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationscore_id/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c4b352e1b6d58a78c7d1d9a1d8c6cc20df770045
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationscore_id/displayValueProcess.js
@@ -0,0 +1,9 @@
+import("system.translate");
+import("Sql_lib");
+import("system.db");
+import("system.result");
+
+// TODO: loadEntity / #Title
+result.string(translate.text(db.cell(SqlCondition.begin()
+        .andPrepareVars("CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID", "$field.CLASSIFICATIONSCORE_ID")
+        .buildSql("select TITLE from CLASSIFICATIONSCORE", "1=2"))));
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationscore_id/titleProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationscore_id/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7865e4544cd6eaba5d15e15937bffca31e2675fa
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationscore_id/titleProcess.js
@@ -0,0 +1,9 @@
+import("system.neon");
+import("system.result");
+import("system.vars");
+import("system.translate");
+
+if (vars.get("$sys.recordstate") && vars.get("$sys.recordstate") != neon.OPERATINGSTATE_VIEW)
+{
+    result.string(translate.text(vars.get("$field.SCORETYPE")));
+}
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationscores/children/classificationgroup_param/valueProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationscores/children/classificationgroup_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..199c2e918d4673239e59167d4b95f64bbe9a3331
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationscores/children/classificationgroup_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.CLASSIFICATIONGROUP"));
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationscores/children/classificationtype_param/valueProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationscores/children/classificationtype_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..d3275a8eaa916bbbb9604617cb2fb5385bc01cfe
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationscores/children/classificationtype_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.CLASSIFICATIONTYPE"))
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationscores/children/classificationtypeid_param/valueProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationscores/children/classificationtypeid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b11d099579d9bf35111e31b13a41336731c28540
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationscores/children/classificationtypeid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.CLASSIFICATIONTYPEID"));
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationtype/displayValueProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationtype/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e56601c615178505648345adeb253d9b3dea9e77
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationtype/displayValueProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("system.vars");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string(KeywordUtils.getViewValue($KeywordRegistry.classificationType(), vars.get("$this.value")));
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationtype/stateProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationtype/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..bcc88cc57c128d8971d6880133fb2584129a802e
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationtype/stateProcess.js
@@ -0,0 +1,11 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+}
+else
+{
+    result.string(neon.COMPONENTSTATE_READONLY);
+}
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationtype/valueProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationtype/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..2bccd5eb7fbb2311971da0e6ae2ed3b56ed21268
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationtype/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    result.string(vars.get("$param.ClassificationType_param"));
+}
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationtype_id/valueProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationtype_id/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..3886bb2dbefafdfd50c83b824fe2c1efd190f31e
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationtype_id/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if ((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) && !vars.get("$this.value"))
+{
+    result.string(vars.get("$field.CLASSIFICATIONTYPEID"));
+}
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationtypeid/valueProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationtypeid/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..16c47d8b58490ac63829673a531ffce4e6896745
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationtypeid/valueProcess.js
@@ -0,0 +1,10 @@
+import("system.util");
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    var newId = util.getNewUUID();
+    result.string(newId);
+}
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/object_rowid/valueProcess.js b/entity/ClassificationAdmin_entity/entityfields/object_rowid/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..d15a596ff1090502ac8cd6afd63e12893ce05625
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/object_rowid/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT && !vars.get("$this.value"))
+{
+    result.string(vars.get("$param.ObjectRowid_param"));
+}
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/object_type/valueProcess.js b/entity/ClassificationAdmin_entity/entityfields/object_type/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b532aa65a135891c68363e05f02e3420967f409a
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/object_type/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT && !vars.get("$this.value"))
+{
+    result.string(vars.get("$param.ObjectType_param"));
+}
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/scoretype/displayValueProcess.js b/entity/ClassificationAdmin_entity/entityfields/scoretype/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a5717eabb76417046c488939aadcfa7beb915dcd
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/scoretype/displayValueProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.translate");
+import("system.result");
+
+result.string(translate.text(vars.get("$this.value")));
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/grantDeleteProcess.js b/entity/ClassificationAdmin_entity/grantDeleteProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6a0202d0b06e410bc42a2aa04aef955c32e8c6e5
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/grantDeleteProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.db");
+import("system.vars");
+import("Sql_lib");
+
+result.object(parseInt(db.cell(SqlCondition.begin()
+                        .andPrepare("CLASSIFICATION.CLASSIFICATIONTYPE_ID", vars.get("$field.CLASSIFICATIONTYPEID"))
+                        .buildSql("select count(*) from CLASSIFICATION", "1=2"))) <= 0);
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/recordcontainers/jdito/contentProcess.js b/entity/ClassificationAdmin_entity/recordcontainers/jdito/contentProcess.js
index 04f641a1be6f91691b20d0f11cfe4edc4a818fc3..ce320096bfa92f4c1ea28d16935cc21f2886749a 100644
--- a/entity/ClassificationAdmin_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/ClassificationAdmin_entity/recordcontainers/jdito/contentProcess.js
@@ -1,4 +1,49 @@
-import("system.result");
+import("JditoFilter_lib");
+import("Classification_lib");
+import("system.vars");
+import("Sql_lib");
 import("system.db");
+import("system.result");
+
+var classificationId;
+var classificationTypeId;
+
+// if the id starts with "C," it is a classificationId. If it starts with "T,", it is a classificationtypeId
+if (vars.exists("$local.idvalues") && vars.get("$local.idvalues") && vars.get("$local.idvalues").length > 0)
+{
+    var selected = vars.get("$local.idvalues")[0].split(",");
+    if (selected.length == 2)
+    {
+        if (selected[0] == 'C')
+            classificationId = selected[1]
+        else if (selected[0] == 'T')
+            classificationTypeId = selected[1]
+    }
+}
+
+var cond = SqlCondition.begin()
+                .andPrepareVars("CLASSIFICATIONTYPE.CLASSIFICATIONTYPE", "$param.ClassificationType_param")
+                .andPrepareIfSet("CLASSIFICATION.CLASSIFICATIONID", classificationId)
+
+
+
+if (!classificationId)
+{
+    cond.andPrepareIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationTypeId);
+}
+
+if (vars.exists("$local.filter") && vars.get("$local.filter"))
+{
+    var filter = vars.get("$local.filter");
+    if (filter.filter)
+        cond.andSqlCondition((JditoFilterUtils.getSqlCondition(filter.filter, "CLASSIFICATION", undefined, {
+             CLASSIFICATIONTYPE : "CLASSIFICATIONTYPE.CLASSIFICATIONTYPE"
+        })));
+}
 
-result.object([[""]]);
\ No newline at end of file
+result.object(db.table(cond.buildSql("select case when CLASSIFICATIONID is not null then 'C,' || CLASSIFICATIONID else 'T,' || CLASSIFICATIONTYPEID end, CLASSIFICATIONID, CLASSIFICATIONGROUP, CLASSIFICATIONSCORE_ID, CLASSIFICATIONTYPEID, CLASSIFICATIONTYPE_ID, OBJECT_TYPE, OBJECT_ROWID, SCORETYPE, CLASSIFICATIONTYPE.CLASSIFICATIONTYPE from CLASSIFICATION \n\
+                right join CLASSIFICATIONTYPE on " + db.translateCondition(SqlCondition.begin()
+                    .and("CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPEID")
+                    .andPrepareVars("CLASSIFICATION.OBJECT_TYPE", "$param.ObjectType_param")
+                    .andPrepareVars("CLASSIFICATION.OBJECT_ROWID", "$param.ObjectRowid_param").build()), "1=1", "order by CLASSIFICATIONGROUP asc"))
+                );
\ No newline at end of file
diff --git a/entity/Classification_entity/recordcontainers/jdito/onDelete.js b/entity/ClassificationAdmin_entity/recordcontainers/jdito/onDelete.js
similarity index 100%
rename from entity/Classification_entity/recordcontainers/jdito/onDelete.js
rename to entity/ClassificationAdmin_entity/recordcontainers/jdito/onDelete.js
diff --git a/entity/Classification_entity/recordcontainers/jdito/onInsert.js b/entity/ClassificationAdmin_entity/recordcontainers/jdito/onInsert.js
similarity index 100%
rename from entity/Classification_entity/recordcontainers/jdito/onInsert.js
rename to entity/ClassificationAdmin_entity/recordcontainers/jdito/onInsert.js
diff --git a/entity/ClassificationAdmin_entity/recordcontainers/jdito/onUpdate.js b/entity/ClassificationAdmin_entity/recordcontainers/jdito/onUpdate.js
new file mode 100644
index 0000000000000000000000000000000000000000..5670bb7047472418457c8b8bee5aee74dd215a4c
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/recordcontainers/jdito/onUpdate.js
@@ -0,0 +1,54 @@
+import("Classification_lib");
+import("system.neon");
+import("system.util");
+import("Sql_lib");
+import("system.db");
+import("system.vars");
+
+var changed = vars.get("$local.changed");
+
+// check if it already exists. Else it only exists as ScoreType but has no Classification-Entry
+if (vars.get("$field.CLASSIFICATIONID"))
+{
+    if (vars.get("$field.CLASSIFICATIONSCORE_ID"))
+    {
+         db.updateData("CLASSIFICATION", ["CLASSIFICATIONSCORE_ID"], null, [
+            vars.get("$field.CLASSIFICATIONSCORE_ID")
+        ], SqlCondition.equals("CLASSIFICATION.CLASSIFICATIONID", vars.get("$field.CLASSIFICATIONID"), "1=2"));
+    }
+    else
+    {
+        db.deleteData("CLASSIFICATION", SqlCondition.equals("CLASSIFICATION.CLASSIFICATIONID", vars.get("$field.CLASSIFICATIONID")));
+    }
+}
+else if (vars.get("$field.CLASSIFICATIONSCORE_ID"))
+{
+    var newId = util.getNewUUID();
+    db.insertData("CLASSIFICATION", ["CLASSIFICATIONID", "OBJECT_TYPE", "OBJECT_ROWID", "CLASSIFICATIONTYPE_ID", "CLASSIFICATIONSCORE_ID"], null, [
+        newId,
+        vars.get("$field.OBJECT_TYPE"),
+        vars.get("$field.OBJECT_ROWID"),
+        vars.get("$field.CLASSIFICATIONTYPE_ID"),
+        vars.get("$field.CLASSIFICATIONSCORE_ID"),
+    ]);
+    
+    neon.setFieldValue("$field.CLASSIFICATIONID", newId);
+}
+
+// update classificationgroup-name and scoretype-name if they were changed
+changed.forEach(function(change) 
+{
+    switch (change)
+    {
+        case "CLASSIFICATIONGROUP.value":
+            var oldGroupName = ClassificationUtils.getGroupFromDb(vars.get("$field.CLASSIFICATIONTYPEID"));
+            var newGroupName = vars.get("$field.CLASSIFICATIONGROUP");
+
+            ClassificationUtils.changeGroupName(oldGroupName, newGroupName, vars.get("$field.CLASSIFICATIONTYPE"))
+        case "SCORETYPE.value":
+            var classificationTypeId = vars.get("$field.CLASSIFICATIONTYPEID");
+            var newScoreName = vars.get("$field.SCORETYPE");
+
+            ClassificationUtils.changeScoreName(newScoreName, classificationTypeId);
+    }
+})
\ No newline at end of file
diff --git a/entity/ClassificationScore_entity/ClassificationScore_entity.aod b/entity/ClassificationScore_entity/ClassificationScore_entity.aod
index 938ac430214198d3b9fc048bd9d7f3ab49c7c8cd..e299b4b560e9249ad1bb854468aed7ddd9d40c37 100644
--- a/entity/ClassificationScore_entity/ClassificationScore_entity.aod
+++ b/entity/ClassificationScore_entity/ClassificationScore_entity.aod
@@ -1,138 +1,130 @@
-<?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.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
-  <name>ClassificationScore_entity</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <title>Possible Value</title>
-  <contentTitleProcess>%aditoprj%/entity/ClassificationScore_entity/contentTitleProcess.js</contentTitleProcess>
-  <titlePlural>Possible Values</titlePlural>
-  <recordContainer>db</recordContainer>
-  <entityFields>
-    <entityProvider>
-      <name>#PROVIDER</name>
-    </entityProvider>
-    <entityField>
-      <name>CLASSIFICATIONSCOREID</name>
-      <valueProcess>%aditoprj%/entity/ClassificationScore_entity/entityfields/classificationscoreid/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>TITLE</name>
-      <title>Title</title>
-      <mandatory v="true" />
-    </entityField>
-    <entityField>
-      <name>CLASSIFICATIONTYPE_ID</name>
-      <valueProcess>%aditoprj%/entity/ClassificationScore_entity/entityfields/classificationtype_id/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/ClassificationScore_entity/entityfields/classificationtype_id/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>SORT</name>
-      <title>Sorting</title>
-      <mandatory v="true" />
-    </entityField>
-    <entityField>
-      <name>SCORE</name>
-      <title>Score</title>
-      <contentType>NUMBER</contentType>
-      <outputFormat>#,##0.00</outputFormat>
-      <inputFormat>#,##0.00</inputFormat>
-      <mandatory v="true" />
-      <onValidation>%aditoprj%/entity/ClassificationScore_entity/entityfields/score/onValidation.js</onValidation>
-    </entityField>
-    <entityProvider>
-      <name>ClassificationScores</name>
-      <dependencies>
-        <entityDependency>
-          <name>85ff242d-a743-413f-8112-6d589baa30de</name>
-          <entityName>Classification_entity</entityName>
-          <fieldName>ClassificationScores</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-      <children>
-        <entityParameter>
-          <name>ClassificationGroup_param</name>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-          <mandatory v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ClassificationTypeId_param</name>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-          <mandatory v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ClassificationType_param</name>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-          <mandatory v="true" />
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityParameter>
-      <name>ClassificationTypeId_param</name>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityField>
-      <name>MaxValue</name>
-      <valueProcess>%aditoprj%/entity/ClassificationScore_entity/entityfields/maxvalue/valueProcess.js</valueProcess>
-    </entityField>
-    <entityParameter>
-      <name>ClassificationGroup_param</name>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>ClassificationType_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-  </entityFields>
-  <recordContainers>
-    <dbRecordContainer>
-      <name>db</name>
-      <alias>Data_alias</alias>
-      <conditionProcess>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <orderClauseProcess>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <onDBDelete>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>e2fecaf8-bc95-4a4d-bd96-88731568b1a4</name>
-          <tableName>CLASSIFICATIONSCORE</tableName>
-          <primaryKey>CLASSIFICATIONSCOREID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
-      <recordFieldMappings>
-        <dbRecordFieldMapping>
-          <name>CLASSIFICATIONSCOREID.value</name>
-          <recordfield>CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>SCORE.value</name>
-          <recordfield>CLASSIFICATIONSCORE.SCORE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>SORT.value</name>
-          <recordfield>CLASSIFICATIONSCORE.SORT</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>TITLE.value</name>
-          <recordfield>CLASSIFICATIONSCORE.TITLE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>CLASSIFICATIONTYPE_ID.value</name>
-          <recordfield>CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>CLASSIFICATIONTYPE_ID.displayValue</name>
-          <expression>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/recordfieldmappings/classificationtype_id.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
-      </recordFieldMappings>
-    </dbRecordContainer>
-  </recordContainers>
-</entity>
+<?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.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
+  <name>ClassificationScore_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <title>Possible Value</title>
+  <contentTitleProcess>%aditoprj%/entity/ClassificationScore_entity/contentTitleProcess.js</contentTitleProcess>
+  <titlePlural>Possible Values</titlePlural>
+  <recordContainer>db</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+    </entityProvider>
+    <entityField>
+      <name>CLASSIFICATIONSCOREID</name>
+      <valueProcess>%aditoprj%/entity/ClassificationScore_entity/entityfields/classificationscoreid/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>TITLE</name>
+      <title>Title</title>
+      <mandatory v="true" />
+    </entityField>
+    <entityField>
+      <name>CLASSIFICATIONTYPE_ID</name>
+      <valueProcess>%aditoprj%/entity/ClassificationScore_entity/entityfields/classificationtype_id/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/ClassificationScore_entity/entityfields/classificationtype_id/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>SORT</name>
+      <title>Sorting</title>
+      <mandatory v="true" />
+    </entityField>
+    <entityField>
+      <name>SCORE</name>
+      <title>Score</title>
+      <contentType>NUMBER</contentType>
+      <outputFormat>#,##0.00</outputFormat>
+      <inputFormat>#,##0.00</inputFormat>
+      <mandatory v="true" />
+      <onValidation>%aditoprj%/entity/ClassificationScore_entity/entityfields/score/onValidation.js</onValidation>
+    </entityField>
+    <entityProvider>
+      <name>ClassificationScores</name>
+      <children>
+        <entityParameter>
+          <name>ClassificationGroup_param</name>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ClassificationTypeId_param</name>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ClassificationType_param</name>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityParameter>
+      <name>ClassificationTypeId_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityField>
+      <name>MaxValue</name>
+      <valueProcess>%aditoprj%/entity/ClassificationScore_entity/entityfields/maxvalue/valueProcess.js</valueProcess>
+    </entityField>
+    <entityParameter>
+      <name>ClassificationGroup_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>ClassificationType_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+  </entityFields>
+  <recordContainers>
+    <dbRecordContainer>
+      <name>db</name>
+      <alias>Data_alias</alias>
+      <conditionProcess>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <orderClauseProcess>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
+      <onDBDelete>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
+      <linkInformation>
+        <linkInformation>
+          <name>e2fecaf8-bc95-4a4d-bd96-88731568b1a4</name>
+          <tableName>CLASSIFICATIONSCORE</tableName>
+          <primaryKey>CLASSIFICATIONSCOREID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
+      <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>CLASSIFICATIONSCOREID.value</name>
+          <recordfield>CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>SCORE.value</name>
+          <recordfield>CLASSIFICATIONSCORE.SCORE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>SORT.value</name>
+          <recordfield>CLASSIFICATIONSCORE.SORT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>TITLE.value</name>
+          <recordfield>CLASSIFICATIONSCORE.TITLE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>CLASSIFICATIONTYPE_ID.value</name>
+          <recordfield>CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>CLASSIFICATIONTYPE_ID.displayValue</name>
+          <expression>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/recordfieldmappings/classificationtype_id.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+      </recordFieldMappings>
+    </dbRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/Classification_entity/Classification_entity.aod b/entity/Classification_entity/Classification_entity.aod
index 05231fb10e018861951e09c8e59b0a15c8ec689c..7bc6976a58db9b987ee7130d9886f3d71a082560 100644
--- a/entity/Classification_entity/Classification_entity.aod
+++ b/entity/Classification_entity/Classification_entity.aod
@@ -1,221 +1,179 @@
-<?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.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
-  <name>Classification_entity</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <title>Classification</title>
-  <grantDeleteProcess>%aditoprj%/entity/Classification_entity/grantDeleteProcess.js</grantDeleteProcess>
-  <afterOperatingState>%aditoprj%/entity/Classification_entity/afterOperatingState.js</afterOperatingState>
-  <titlePlural>Classifications</titlePlural>
-  <recordContainer>jdito</recordContainer>
-  <entityFields>
-    <entityProvider>
-      <name>#PROVIDER</name>
-    </entityProvider>
-    <entityField>
-      <name>CLASSIFICATIONID</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationid/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>CLASSIFICATIONSCORE_ID</name>
-      <title>Selection</title>
-      <consumer>ClassificationScores</consumer>
-      <searchable v="false" />
-      <titleProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationscore_id/titleProcess.js</titleProcess>
-      <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationscore_id/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityParameter>
-      <name>ClassificationType_param</name>
-      <expose v="true" />
-      <mandatory v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>ObjectType_param</name>
-      <expose v="true" />
-      <mandatory v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>ObjectRowid_param</name>
-      <expose v="true" />
-      <mandatory v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityProvider>
-      <name>Classifications</name>
-      <dependencies>
-        <entityDependency>
-          <name>6274acfa-3dbf-4a9b-8926-2a2d1ff80d6d</name>
-          <entityName>Salesproject_entity</entityName>
-          <fieldName>Classifications</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-      <children>
-        <entityParameter>
-          <name>IsAdminMode_param</name>
-          <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classifications/children/isadminmode_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityField>
-      <name>CLASSIFICATIONTYPEID</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationtypeid/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>CLASSIFICATIONGROUP</name>
-      <contentType>TEXT</contentType>
-      <mandatoryProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationgroup/mandatoryProcess.js</mandatoryProcess>
-      <dropDownProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationgroup/dropDownProcess.js</dropDownProcess>
-      <textInputAllowed v="true" />
-      <searchable v="false" />
-      <groupable v="true" />
-      <titleProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationgroup/titleProcess.js</titleProcess>
-      <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationgroup/displayValueProcess.js</displayValueProcess>
-      <onValidation>%aditoprj%/entity/Classification_entity/entityfields/classificationgroup/onValidation.js</onValidation>
-    </entityField>
-    <entityField>
-      <name>CLASSIFICATIONTYPE_ID</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationtype_id/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>OBJECT_ROWID</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/object_rowid/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>OBJECT_TYPE</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/object_type/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>UID</name>
-      <searchable v="false" />
-    </entityField>
-    <entityConsumer>
-      <name>ClassificationScores</name>
-      <state>INVISIBLE</state>
-      <stateProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationscores/stateProcess.js</stateProcess>
-      <dependency>
-        <name>dependency</name>
-        <entityName>ClassificationScore_entity</entityName>
-        <fieldName>ClassificationScores</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ClassificationGroup_param</name>
-          <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationscores/children/classificationgroup_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ClassificationTypeId_param</name>
-          <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationscores/children/classificationtypeid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ClassificationType_param</name>
-          <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationscores/children/classificationtype_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityActionField>
-      <name>edit</name>
-      <onActionProcess>%aditoprj%/entity/Classification_entity/entityfields/edit/onActionProcess.js</onActionProcess>
-    </entityActionField>
-    <entityField>
-      <name>CLASSIFICATIONTYPE</name>
-      <title>Usage</title>
-      <consumer>KeywordClassificationTypes</consumer>
-      <mandatory v="true" />
-      <searchable v="true" />
-      <groupable v="true" />
-      <stateProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationtype/stateProcess.js</stateProcess>
-      <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationtype/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationtype/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityProvider>
-      <name>ClassificationsAdministration</name>
-      <dependencies>
-        <entityDependency>
-          <name>67603e12-a23a-4f3f-9fcd-b128bd5f9b5f</name>
-          <entityName>ClassificationAdmin_entity</entityName>
-          <fieldName>ClassificationsAdmin</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-      <children>
-        <entityParameter>
-          <name>IsAdminMode_param</name>
-          <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationsadministration/children/isadminmode_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityParameter>
-      <name>IsAdminMode_param</name>
-      <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/isadminmode_param/valueProcess.js</valueProcess>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityField>
-      <name>Info</name>
-      <title>Rating</title>
-      <contentType>HTML</contentType>
-      <searchable v="false" />
-      <state>READONLY</state>
-      <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/info/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>SCORE_RESULTS</name>
-      <searchable v="false" />
-    </entityField>
-    <entityConsumer>
-      <name>KeywordClassificationTypes</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/keywordclassificationtypes/children/containername_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>SCORETYPE</name>
-      <title>Scoretype</title>
-      <mandatory v="true" />
-      <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/scoretype/displayValueProcess.js</displayValueProcess>
-    </entityField>
-  </entityFields>
-  <recordContainers>
-    <jDitoRecordContainer>
-      <name>jdito</name>
-      <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
-      <isFilterable v="true" />
-      <isRequireContainerFiltering v="true" />
-      <contentProcess>%aditoprj%/entity/Classification_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
-      <onInsert>%aditoprj%/entity/Classification_entity/recordcontainers/jdito/onInsert.js</onInsert>
-      <onUpdate>%aditoprj%/entity/Classification_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
-      <onDelete>%aditoprj%/entity/Classification_entity/recordcontainers/jdito/onDelete.js</onDelete>
-      <recordFields>
-        <element>UID.value</element>
-        <element>CLASSIFICATIONID.value</element>
-        <element>CLASSIFICATIONGROUP.value</element>
-        <element>CLASSIFICATIONSCORE_ID.value</element>
-        <element>CLASSIFICATIONTYPEID.value</element>
-        <element>CLASSIFICATIONTYPE_ID.value</element>
-        <element>OBJECT_ROWID.value</element>
-        <element>OBJECT_TYPE.value</element>
-        <element>SCORETYPE.value</element>
-        <element>CLASSIFICATIONTYPE.value</element>
-        <element>SCORE_RESULTS.value</element>
-      </recordFields>
-    </jDitoRecordContainer>
-  </recordContainers>
-</entity>
+<?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.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
+  <name>Classification_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <title>Classification</title>
+  <grantCreate v="false" />
+  <grantDelete v="false" />
+  <afterOperatingState>%aditoprj%/entity/Classification_entity/afterOperatingState.js</afterOperatingState>
+  <titlePlural>Classifications</titlePlural>
+  <recordContainer>jdito</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+    </entityProvider>
+    <entityField>
+      <name>CLASSIFICATIONID</name>
+      <searchable v="false" />
+    </entityField>
+    <entityField>
+      <name>CLASSIFICATIONSCORE_ID</name>
+      <title>Selection</title>
+      <consumer>ClassificationScores</consumer>
+      <searchable v="false" />
+      <titleProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationscore_id/titleProcess.js</titleProcess>
+      <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationscore_id/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityParameter>
+      <name>ClassificationType_param</name>
+      <expose v="true" />
+      <mandatory v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>ObjectType_param</name>
+      <expose v="true" />
+      <mandatory v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>ObjectRowid_param</name>
+      <expose v="true" />
+      <mandatory v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityProvider>
+      <name>Classifications</name>
+      <dependencies>
+        <entityDependency>
+          <name>6274acfa-3dbf-4a9b-8926-2a2d1ff80d6d</name>
+          <entityName>Salesproject_entity</entityName>
+          <fieldName>Classifications</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+    <entityField>
+      <name>CLASSIFICATIONTYPEID</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationtypeid/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>CLASSIFICATIONGROUP</name>
+      <title>Group name</title>
+      <contentType>TEXT</contentType>
+      <groupable v="true" />
+      <mandatoryProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationgroup/mandatoryProcess.js</mandatoryProcess>
+      <textInputAllowed v="true" />
+      <searchable v="false" />
+      <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationgroup/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>CLASSIFICATIONTYPE_ID</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationtype_id/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>OBJECT_ROWID</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/object_rowid/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>OBJECT_TYPE</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/object_type/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>UID</name>
+      <searchable v="false" />
+    </entityField>
+    <entityConsumer>
+      <name>ClassificationScores</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ClassificationScore_entity</entityName>
+        <fieldName>ClassificationScores</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ClassificationGroup_param</name>
+          <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationscores/children/classificationgroup_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ClassificationTypeId_param</name>
+          <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationscores/children/classificationtypeid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ClassificationType_param</name>
+          <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationscores/children/classificationtype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>CLASSIFICATIONTYPE</name>
+      <title>Usage</title>
+      <consumer>KeywordClassificationTypes</consumer>
+      <groupable v="true" />
+      <mandatory v="true" />
+      <searchable v="true" />
+      <stateProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationtype/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationtype/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationtype/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>Info</name>
+      <title>Rating</title>
+      <contentType>HTML</contentType>
+      <searchable v="false" />
+      <state>READONLY</state>
+      <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/info/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>SCORE_RESULTS</name>
+      <searchable v="false" />
+    </entityField>
+    <entityConsumer>
+      <name>KeywordClassificationTypes</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/keywordclassificationtypes/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>SCORETYPE</name>
+      <title>Scoretype</title>
+      <mandatory v="true" />
+      <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/scoretype/displayValueProcess.js</displayValueProcess>
+    </entityField>
+  </entityFields>
+  <recordContainers>
+    <jDitoRecordContainer>
+      <name>jdito</name>
+      <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
+      <isFilterable v="true" />
+      <isRequireContainerFiltering v="true" />
+      <contentProcess>%aditoprj%/entity/Classification_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
+      <onUpdate>%aditoprj%/entity/Classification_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
+      <recordFields>
+        <element>UID.value</element>
+        <element>CLASSIFICATIONID.value</element>
+        <element>CLASSIFICATIONGROUP.value</element>
+        <element>CLASSIFICATIONSCORE_ID.value</element>
+        <element>CLASSIFICATIONTYPEID.value</element>
+        <element>CLASSIFICATIONTYPE_ID.value</element>
+        <element>OBJECT_ROWID.value</element>
+        <element>OBJECT_TYPE.value</element>
+        <element>SCORETYPE.value</element>
+        <element>CLASSIFICATIONTYPE.value</element>
+        <element>SCORE_RESULTS.value</element>
+      </recordFields>
+    </jDitoRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/Classification_entity/entityfields/classificationgroup/displayValueProcess.js b/entity/Classification_entity/entityfields/classificationgroup/displayValueProcess.js
index 3d98527e13ffc12e3f5bee62f5810fede3a51ffb..6a123b0685848a1f5907a935cc1a4440f1f04546 100644
--- a/entity/Classification_entity/entityfields/classificationgroup/displayValueProcess.js
+++ b/entity/Classification_entity/entityfields/classificationgroup/displayValueProcess.js
@@ -1,26 +1,17 @@
-import("system.db");
-import("system.vars");
-import("system.result");
+import("Classification_lib");
 import("system.translate");
-import("Sql_lib");
-import("Classification_lib")
+import("system.result");
+import("system.vars");
 
-if (vars.exists("$param.IsAdminMode_param") && vars.get("$param.IsAdminMode_param") == "1")
-{
-    result.string(translate.text(vars.get("$this.value")));
-}
-else
+if (vars.getString("$field.CLASSIFICATIONGROUP"))
 {
-    if (vars.getString("$field.CLASSIFICATIONGROUP"))
-    {
-        var score = JSON.parse(vars.getString("$field.SCORE_RESULTS"))[vars.getString("$field.CLASSIFICATIONGROUP")];
+    var score = JSON.parse(vars.getString("$field.SCORE_RESULTS"))[vars.getString("$field.CLASSIFICATIONGROUP")];
 
-        if (!score)
-            score = 0;
-        else
-            score = parseInt(score);
+    if (!score)
+        score = 0;
+    else
+        score = parseInt(score);
 
-        result.string(translate.text(vars.get("$this.value")) + ": " + score + " " + translate.text("points") + " = " + ClassificationUtils.mapToClass(score));
+    result.string(translate.text(vars.get("$this.value")) + ": " + score + " " + translate.text("points") + " = " + ClassificationUtils.mapToClass(score));
 
-    }
 }
diff --git a/entity/Classification_entity/entityfields/classificationgroup/dropDownProcess.js b/entity/Classification_entity/entityfields/classificationgroup/dropDownProcess.js
deleted file mode 100644
index 455cfc292bc5fe32b0cf1ad7bef2b704999517dc..0000000000000000000000000000000000000000
--- a/entity/Classification_entity/entityfields/classificationgroup/dropDownProcess.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import("Classification_lib");
-import("system.neon");
-import("system.vars");
-import("system.db");
-import("system.result");
-if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.IsAdminMode_param") && vars.get("$param.IsAdminMode_param") == "1")
-{
-     // use param if available or current selectionRows
-    var classificationType =  vars.get("$field.CLASSIFICATIONTYPE")
-    if (classificationType)
-        result.object(ClassificationUtils.getAllGroups(classificationType, true));
-}
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/classificationgroup/mandatoryProcess.js b/entity/Classification_entity/entityfields/classificationgroup/mandatoryProcess.js
index 2fff19b7702bb8390724ad175031c22a0b7d1df9..7bbc5aa02d8beaf00c4458e4297646209f00ad91 100644
--- a/entity/Classification_entity/entityfields/classificationgroup/mandatoryProcess.js
+++ b/entity/Classification_entity/entityfields/classificationgroup/mandatoryProcess.js
@@ -2,4 +2,4 @@ import("system.neon");
 import("system.result");
 import("system.vars");
 
-result.object(vars.get("$param.IsAdminMode_param") == 1 && (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT));
\ No newline at end of file
+result.object(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT);
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/classifications/children/isadminmode_param/valueProcess.js b/entity/Classification_entity/entityfields/classifications/children/isadminmode_param/valueProcess.js
deleted file mode 100644
index 9358b57687a079539606124e88b74f15c7e3ac72..0000000000000000000000000000000000000000
--- a/entity/Classification_entity/entityfields/classifications/children/isadminmode_param/valueProcess.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import("system.result");
-
-result.string(0);
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/classificationscores/stateProcess.js b/entity/Classification_entity/entityfields/classificationscores/stateProcess.js
deleted file mode 100644
index 02b7fbc2bb2c333e2948112fad78a3b816c71313..0000000000000000000000000000000000000000
--- a/entity/Classification_entity/entityfields/classificationscores/stateProcess.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import("system.neon");
-import("system.result");
-import("system.vars");
-
-if (vars.exists("$param.IsAdminMode_param") && vars.getString("$param.IsAdminMode_param") == "1")
-{
-    result.string(neon.COMPONENTSTATE_EDITABLE);
-}
-else
-{
-    result.string(neon.COMPONENTSTATE_INVISIBLE);
-}
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/edit/onActionProcess.js b/entity/Classification_entity/entityfields/edit/onActionProcess.js
deleted file mode 100644
index 8d018fd74f148d59d904106aacd47f1877ad01d5..0000000000000000000000000000000000000000
--- a/entity/Classification_entity/entityfields/edit/onActionProcess.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import("system.vars");
-import("system.neon");
-import("KeywordRegistry_basic");
-
-var selection = vars.get("$sys.selectionRows");
-if (selection.length > 0)
-{
-    var params = {
-        "ClassificationType_param" : vars.get("$param.ClassificationType_param"),
-        "ObjectType_param" : vars.get("$param.ObjectType_param"),
-        "ObjectRowid_param" : vars.get("$param.ObjectRowid_param"),
-        "IsAdminMode_param" : vars.get("$param.IsAdminMode_param")
-    }
-    
-    var view = "ClassificatonEdit_view";
-    
-    if (vars.exists("$param.IsAdminMode_param") && vars.get("$param.IsAdminMode_param") == "1")
-        view = "ClassificatonAdminEdit_view";
-    
-    neon.openContext("Classification", view, [selection[0].UID], neon.OPERATINGSTATE_EDIT, params);
-}
-
-
diff --git a/entity/Classification_entity/entityfields/isadminmode_param/valueProcess.js b/entity/Classification_entity/entityfields/isadminmode_param/valueProcess.js
deleted file mode 100644
index 55b3460083670fb4c229762303b24bd9585dbaaf..0000000000000000000000000000000000000000
--- a/entity/Classification_entity/entityfields/isadminmode_param/valueProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.vars");
-import("system.result");
-
-result.string(1);
\ No newline at end of file
diff --git a/entity/Classification_entity/grantDeleteProcess.js b/entity/Classification_entity/grantDeleteProcess.js
deleted file mode 100644
index 9a1336d5cf503c64baa7cd083855545265a12901..0000000000000000000000000000000000000000
--- a/entity/Classification_entity/grantDeleteProcess.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import("system.logging");
-import("system.result");
-import("system.db");
-import("system.vars");
-import("Sql_lib");
-
-/*logging.log(db.cell(SqlCondition.begin()
-                        .andPrepare("CLASSIFICATION.CLASSIFICATIONTYPE_ID", vars.get("$field.CLASSIFICATIONTYPEID"))
-                        .buildSql("select count(*) from CLASSIFICATION", "1=2")))
-/*result.object(parseInt(db.cell(SqlCondition.begin()
-                        .andPrepare("CLASSIFICATION.CLASSIFICATIONTYPE_ID", vars.get("$field.CLASSIFICATIONTYPEID"))
-                        .buildSql("select count(*) from CLASSIFICATION", "1=2"))) <= 0);*/
-
-//{
-    /*db.deleteData("CLASSIFICATION", "CLASSIFICATION.CLASSIFICATIONTYPE_ID in (" + db.translateStatement(
-                       SqlCondition.begin()
-                                   .andPrepare("CLASSIFICATIONTYPE.SCORETYPE", type)
-                                   .buildSql("select CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID from CLASSIFICATIONTYPE", "1=2")) + ")");
-    db.deleteData("CLASSIFICATIONTYPE", SqlCondition.equals("CLASSIFICATIONTYPE.SCORETYPE", type, "1=2"));
-    db.deleteData("CLASSIFICATIONSCORE", SqlCondition.equals("CLASSIFICATIONSCORE.SCORETYPE", type, "1=2"));*/
-    
-//}
-//neon.refreshAll();
\ No newline at end of file
diff --git a/entity/Classification_entity/recordcontainers/jdito/contentProcess.js b/entity/Classification_entity/recordcontainers/jdito/contentProcess.js
index 2ec8ccdd5b67e74a61778cfa5c87aa398b44cccf..a1d32e641ea1dc629a46cb0ff9c6684834a8d10d 100644
--- a/entity/Classification_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Classification_entity/recordcontainers/jdito/contentProcess.js
@@ -5,15 +5,7 @@ import("Sql_lib");
 import("system.db");
 import("system.result");
 
-var admin = (vars.exists("$param.IsAdminMode_param") && vars.get("$param.IsAdminMode_param") == "1")
-var scores = {};
-
-
-
-if (!admin)
-{
-    scores = JSON.stringify(ClassificationUtils.getScore(vars.get("$param.ClassificationType_param"), vars.get("$param.ObjectType_param"), vars.get("$param.ObjectRowid_param")));
-}
+var scores = JSON.stringify(ClassificationUtils.getScore(vars.get("$param.ClassificationType_param"), vars.get("$param.ObjectType_param"), vars.get("$param.ObjectRowid_param")));
 
 
 
@@ -41,13 +33,11 @@ var cond = SqlCondition.begin()
 
 if (!classificationId)
 {
-    cond.andPrepareIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationTypeId);
-    
-    if(!admin)
-        cond.andSqlCondition(SqlCondition.begin().orPrepareVars("CLASSIFICATION.OBJECT_TYPE", "$param.ObjectType_param")
+    cond.andPrepareIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationTypeId)
+        .andSqlCondition(SqlCondition.begin().orPrepareVars("CLASSIFICATION.OBJECT_TYPE", "$param.ObjectType_param")
                                                      .or("CLASSIFICATION.OBJECT_TYPE is null"))
-            .andSqlCondition(SqlCondition.begin().orPrepareVars("CLASSIFICATION.OBJECT_ROWID", "$param.ObjectRowid_param")
-                                                     .or("CLASSIFICATION.OBJECT_ROWID is null"))
+        .andSqlCondition(SqlCondition.begin().orPrepareVars("CLASSIFICATION.OBJECT_ROWID", "$param.ObjectRowid_param")
+                                                     .or("CLASSIFICATION.OBJECT_ROWID is null"));
 }
 
 if (vars.exists("$local.filter") && vars.get("$local.filter"))
@@ -63,7 +53,7 @@ result.object(db.table(cond.buildSql("select case when CLASSIFICATIONID is not n
                 right join CLASSIFICATIONTYPE on " + db.translateCondition(SqlCondition.begin()
                     .and("CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPEID")
                     .andPrepareVars("CLASSIFICATION.OBJECT_TYPE", "$param.ObjectType_param")
-                    .andPrepareVars("CLASSIFICATION.OBJECT_ROWID", "$param.ObjectRowid_param").build()), (admin ? "1=1" : "1=2"), "order by CLASSIFICATIONGROUP asc"))
+                    .andPrepareVars("CLASSIFICATION.OBJECT_ROWID", "$param.ObjectRowid_param").build()), "1=2", "order by CLASSIFICATIONGROUP asc"))
                 .map(function(pRow)
                 {
                     pRow.push(scores);
diff --git a/entity/Classification_entity/recordcontainers/jdito/onUpdate.js b/entity/Classification_entity/recordcontainers/jdito/onUpdate.js
index 3bd1eec53459f57a6efc73fb26a8c10d38dd4467..97a12f0cbc5dae32c32cb6f903e7755c3cbd878d 100644
--- a/entity/Classification_entity/recordcontainers/jdito/onUpdate.js
+++ b/entity/Classification_entity/recordcontainers/jdito/onUpdate.js
@@ -33,26 +33,4 @@ else if (vars.get("$field.CLASSIFICATIONSCORE_ID"))
     ]);
     
     neon.setFieldValue("$field.CLASSIFICATIONID", newId);
-}
-
-// update classificationgroup-name and scoretype-name if they were changed (only in admin)
-if (vars.exists("$param.IsAdminMode_param") && vars.exists("$param.IsAdminMode_param") == "1")
-{
-    changed.forEach(function(change) 
-    {
-        switch (change)
-        {
-            case "CLASSIFICATIONGROUP.value":
-                var oldGroupName = ClassificationUtils.getGroupFromDb(vars.get("$field.CLASSIFICATIONTYPEID"));
-                var newGroupName = vars.get("$field.CLASSIFICATIONGROUP");
-                
-                ClassificationUtils.changeGroupName(oldGroupName, newGroupName, vars.get("$field.CLASSIFICATIONTYPE"))
-            case "SCORETYPE.value":
-                var classificationTypeId = vars.get("$field.CLASSIFICATIONTYPEID");
-                var newScoreName = vars.get("$field.SCORETYPE");
-                
-                ClassificationUtils.changeScoreName(newScoreName, classificationTypeId);
-        }
-    })
-    
 }
\ No newline at end of file
diff --git a/entity/Notification_entity/entityfields/icon/colorProcess.js b/entity/Notification_entity/entityfields/icon/colorProcess.js
index 0719d0df451536616c859ebda96ed25a79f8dfbe..89d4759e4bbb11d87ae8826063e73d97be17ef5d 100644
--- a/entity/Notification_entity/entityfields/icon/colorProcess.js
+++ b/entity/Notification_entity/entityfields/icon/colorProcess.js
@@ -1,6 +1,5 @@
 import("system.neon");
 import("system.vars");
-import("system.logging");
 import("system.result");
 import("system.notification");
 import("Notification_lib");
diff --git a/entity/Organisation_entity/entityfields/attributeconditions/children/objectrowid_param/valueProcess.js b/entity/Organisation_entity/entityfields/attributeconditions/children/objectrowid_param/valueProcess.js
index 544b24e56e0b61ef04e8781b1118b0fa3e7234e4..bcfda44fe71eac93b3f8c11cc0c85a496f2cd51c 100644
--- a/entity/Organisation_entity/entityfields/attributeconditions/children/objectrowid_param/valueProcess.js
+++ b/entity/Organisation_entity/entityfields/attributeconditions/children/objectrowid_param/valueProcess.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.vars");
 import("system.result");
 
diff --git a/entity/PermissionDetail_entity/PermissionDetail_entity.aod b/entity/PermissionDetail_entity/PermissionDetail_entity.aod
index f3d756e76599690d112ba3c1e6d0459155f53af1..74fc985e17acacdee7a2d607a52e24e541e39467 100644
--- a/entity/PermissionDetail_entity/PermissionDetail_entity.aod
+++ b/entity/PermissionDetail_entity/PermissionDetail_entity.aod
@@ -13,6 +13,7 @@
     <entityField>
       <name>CONDITION</name>
       <title>Condition</title>
+      <stateProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/condition/stateProcess.js</stateProcess>
     </entityField>
     <entityField>
       <name>ACTION</name>
@@ -24,9 +25,10 @@
       <name>ROLE</name>
       <title>Role</title>
       <consumer>Roles</consumer>
+      <groupable v="true" />
       <linkedContext>Role</linkedContext>
       <mandatory v="true" />
-      <groupable v="true" />
+      <stateProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/role/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/role/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js</displayValueProcess>
     </entityField>
@@ -34,17 +36,19 @@
       <name>ENTITY</name>
       <title>Entity</title>
       <consumer>MetaData</consumer>
+      <groupable v="true" />
       <linkedContext>PermissionMetaData</linkedContext>
       <mandatory v="true" />
-      <groupable v="true" />
+      <stateProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/entity/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/entity/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>FIELD</name>
       <title>Field</title>
-      <dropDownProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js</dropDownProcess>
       <groupable v="true" />
+      <dropDownProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js</dropDownProcess>
+      <stateProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/field/stateProcess.js</stateProcess>
     </entityField>
     <entityField>
       <name>UID</name>
@@ -57,8 +61,9 @@
       <name>ACCESSTYPE</name>
       <title>Access type</title>
       <consumer>KeywordAccessType</consumer>
-      <mandatory v="true" />
       <groupable v="true" />
+      <mandatory v="true" />
+      <state>READONLY</state>
       <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js</displayValueProcess>
     </entityField>
@@ -67,6 +72,8 @@
       <title>Condition Type</title>
       <consumer>KeywordConditionType</consumer>
       <mandatory v="true" />
+      <state>READONLY</state>
+      <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/condtype/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
diff --git a/entity/PermissionDetail_entity/contentTitleProcess.js b/entity/PermissionDetail_entity/contentTitleProcess.js
index bfaa82dcf8ba2961d71377a4809fef15b9823176..1b29142dccd50320336eadddd1e9b80ff2f598a7 100644
--- a/entity/PermissionDetail_entity/contentTitleProcess.js
+++ b/entity/PermissionDetail_entity/contentTitleProcess.js
@@ -1,5 +1,4 @@
 import("system.project");
-import("system.logging");
 import("system.vars");
 import("system.result");
 
diff --git a/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js b/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js
index c24340acec17af395c991dfafe87f1d3cd8cbc1c..9ebb27717c2196d90572d511b8ee039611dd5ae5 100644
--- a/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js
@@ -1,18 +1,22 @@
-import("system.vars");
-import("system.result");
-import("Permission_lib");
-
-var field = vars.get("$field.FIELD");
-var role = vars.get("$field.ROLE");
-var entity = vars.get("$field.ENTITY");
-var rootPermSet = PermissionUtil.getRootPermissionSet(role, entity);
-
-if (rootPermSet == "") {
-    result.string("E");
-} else {
-    result.string("R");
-} 
-
-if (field != undefined && field != null && field != "") {
-    result.string("F");
-}
\ No newline at end of file
+import("system.vars");
+import("system.result");
+import("Permission_lib");
+
+var field = vars.get("$field.FIELD");
+var role = vars.get("$field.ROLE");
+var entity = vars.get("$field.ENTITY");
+var permId = vars.get("$field.UID");
+var rootPermSet = PermissionUtil.getRootPermissionSet(role, entity);
+var rootPerm = PermissionUtil.getDefaultPermission(rootPermSet);
+
+if (rootPermSet == "") {
+    result.string("E");
+} else if (rootPerm == permId) {
+    result.string("E");
+} else {
+    result.string("R");
+} 
+
+if (field != undefined && field != null && field != "") {
+    result.string("F");
+}
diff --git a/entity/PermissionDetail_entity/entityfields/condition/stateProcess.js b/entity/PermissionDetail_entity/entityfields/condition/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ad116179661d269a520ee40204edef68ddb22c6c
--- /dev/null
+++ b/entity/PermissionDetail_entity/entityfields/condition/stateProcess.js
@@ -0,0 +1,9 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if(vars.get("$field.ACCESSTYPE") == "E") {
+    result.string(neon.COMPONENTSTATE_DISABLED);
+} else {
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+}
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js
index b5c67bb76030695f7ec60962534bdfb3d4722d29..53baf282d795b1bc98ffc8ddacae993fdaa4dbec 100644
--- a/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js
@@ -1,18 +1,17 @@
-import("system.logging");
-import("system.vars");
-import("system.result");
-import("Keyword_lib");
-import("KeywordRegistry_basic");
-
-var keywordContainer = "PermissionCondType";
-var keywordEntrys = KeywordUtils.getEntryNamesByContainer(keywordContainer);
-var condType = vars.get("$field.CONDTYPE");
-
-switch (condType) {
-    case "true":
-        result.string(keywordEntrys[0]);
-        break;
-    case "false":
-        result.string(keywordEntrys[1]);
-        break;    
+import("system.vars");
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var keywordContainer = "PermissionCondType";
+var keywordEntrys = KeywordUtils.getEntryNamesByContainer(keywordContainer);
+var condType = vars.get("$field.CONDTYPE");
+
+switch (condType) {
+    case "true":
+        result.string(keywordEntrys[0]);
+        break;
+    case "false":
+        result.string(keywordEntrys[1]);
+        break;    
 }
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/classificationsadministration/children/isadminmode_param/valueProcess.js b/entity/PermissionDetail_entity/entityfields/condtype/valueProcess.js
similarity index 52%
rename from entity/Classification_entity/entityfields/classificationsadministration/children/isadminmode_param/valueProcess.js
rename to entity/PermissionDetail_entity/entityfields/condtype/valueProcess.js
index 0488a23572b30f97174720a23726a09b8b266381..ab53c1064a98c7ea344ba50a3466fba3e2ee683a 100644
--- a/entity/Classification_entity/entityfields/classificationsadministration/children/isadminmode_param/valueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/condtype/valueProcess.js
@@ -1,3 +1,2 @@
-import("system.result");
-
-result.string(1);
\ No newline at end of file
+import("system.result");
+result.string("true");
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/entity/stateProcess.js b/entity/PermissionDetail_entity/entityfields/entity/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..943bb0881702bf7d6a70344f64c3d99834e6834b
--- /dev/null
+++ b/entity/PermissionDetail_entity/entityfields/entity/stateProcess.js
@@ -0,0 +1,11 @@
+import("system.result");
+import("system.vars");
+import("system.neon");
+
+var entityTitle = vars.get("$param.EntityTitle_param");
+
+if (entityTitle != undefined && entityTitle != null && entityTitle != "") {
+    result.string(neon.COMPONENTSTATE_READONLY);
+} else {
+    result.string(neon.COMPONENTSTATE_AUTO);
+}
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js b/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js
index a0b883d9d77ff2204b334abd237c16f007860367..123b0887b475ce6f8f0395511b849638dfd658cf 100644
--- a/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js
@@ -1,24 +1,23 @@
-import("system.logging");
-import("system.result");
-import("system.vars");
-import("system.project");
-
-var entityTitle = vars.get("$param.EntityTitle_param");
-if (entityTitle != undefined && entityTitle != null && entityTitle != "") {
-    var entityStructure = project.getEntityStructure(entityTitle);
-    var res = [];
-
-    for (var field in entityStructure.fields) { 
-        field = entityStructure.fields[field];
-        if (field.usePermissions == true) {
-            var name = field.name;
-            var title = field.title;
-            if (title != undefined && title != null && title != "") {
-                res.push([title, title]);
-            } else {
-                res.push([name, name]);
-            }
-        }
-    }
-    result.object(res);
+import("system.result");
+import("system.vars");
+import("system.project");
+
+var entityTitle = vars.get("$field.ENTITY");
+if (entityTitle != undefined && entityTitle != null && entityTitle != "") {
+    var entityStructure = project.getEntityStructure(entityTitle);
+    var res = [];
+
+    for (var field in entityStructure.fields) { 
+        field = entityStructure.fields[field];
+        if (field.usePermissions == true) {
+            var name = field.name;
+            var title = field.title;
+            if (title != undefined && title != null && title != "") {
+                res.push([title, title]);
+            } else {
+                res.push([name, name]);
+            }
+        }
+    }
+    result.object(res);
 }
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/field/stateProcess.js b/entity/PermissionDetail_entity/entityfields/field/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b6485674e6b472b05c3ff21dfc2d1279c1a10e93
--- /dev/null
+++ b/entity/PermissionDetail_entity/entityfields/field/stateProcess.js
@@ -0,0 +1,15 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+import("Permission_lib");
+
+var role = vars.get("$field.ROLE");
+var entity = vars.get("$field.ENTITY");
+
+rootPermSet = PermissionUtil.getRootPermissionSet(role, entity);
+
+if (rootPermSet == "") {
+    result.string(neon.COMPONENTSTATE_DISABLED);
+} else {
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+}
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/role/stateProcess.js b/entity/PermissionDetail_entity/entityfields/role/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..f5fec84a8c27d08002a0d7e50ab9aa4839078944
--- /dev/null
+++ b/entity/PermissionDetail_entity/entityfields/role/stateProcess.js
@@ -0,0 +1,11 @@
+import("system.result");
+import("system.vars");
+import("system.neon");
+
+var roleTitle = vars.get("$param.RoleTitle_param");
+
+if (roleTitle != undefined && roleTitle != null && roleTitle != "") {
+    result.string(neon.COMPONENTSTATE_READONLY);
+} else {
+    result.string(neon.COMPONENTSTATE_AUTO);
+}
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/role/valueProcess.js b/entity/PermissionDetail_entity/entityfields/role/valueProcess.js
index 00ceec30b99adb85ec545626479bc0e26c49fbca..0f3e4521b074db52928320220a301a82f1720abd 100644
--- a/entity/PermissionDetail_entity/entityfields/role/valueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/role/valueProcess.js
@@ -1,15 +1,14 @@
-import("system.logging");
-import("system.vars");
-import("system.result");
-import("system.neon");
-
-var recordstate = vars.get("$sys.recordstate");
-var role = "";
-
-if(vars.exists("$param.RoleTitle_param") && (recordstate == neon.OPERATINGSTATE_NEW)) {
-    role = vars.get("$param.RoleTitle_param");
-} else {
-    role = vars.get("$field.ROLE");
-}
-
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+var recordstate = vars.get("$sys.recordstate");
+var role = "";
+
+if(vars.exists("$param.RoleTitle_param") && (recordstate == neon.OPERATINGSTATE_NEW)) {
+    role = vars.get("$param.RoleTitle_param");
+} else {
+    role = vars.get("$field.ROLE");
+}
+
 result.string(role);
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js
index 4e61ef73b7e33ba304a6d8f30ca098ee7236c014..1203a47cf8b53e75dbd494e42b21e53af3f109a7 100644
--- a/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js
@@ -1,90 +1,89 @@
-import("Permission_lib");
-import("system.logging");
-import("system.neon");
-import("system.util");
-import("system.db");
-import("system.vars");
-import("Permission_lib");
-import("Entity_lib");
-
-var table, cols, vals;
-var alias = "_____SYSTEMALIAS";
-var sqlExt = "";
-var permissionid = util.getNewUUID();
-var role = vars.get("$field.ROLE");
-var entity = vars.get("$field.ENTITY");
-var field = vars.get("$field.FIELD");
-var accesstype = vars.get("$field.ACCESSTYPE").trim();
-var condtype = vars.get("$field.CONDTYPE").trim();
-var condition = vars.get("$field.CONDITION");
-var action = vars.get("$field.ACTION");
-
-if (checkInput([role, entity, accesstype, condtype, action])) {
-    if (checkInput([field]))
-        sqlExt += " and FIELD_ID = '" + field + "'";
-    else if (action.includes("view") || action.includes("create"))
-        sqlExt += " and ACCESSTYPE = 'E'";
-    else 
-        sqlExt += " and ACCESSTYPE = 'R'";
-
-    var sqlStr = "select ASYS_PERMISSIONSETID from ASYS_PERMISSIONSET where ENTITY_ID = '" + entity + "' and ROLE_ID = '" + role + "'" + sqlExt;
-    var permissionsetid = db.cell(sqlStr, alias);
-    
-    if (permissionsetid == "") {
-        // no fitting permissionset found - insert new permissionset
-        var rootpermissionset;
-        if (accesstype == "E") {
-            rootpermissionset = "";
-        } else {
-            rootpermissionset = PermissionUtil.getRootPermissionSet(role, entity);
-        }
-        permissionsetid = PermissionUtil.insertNewPermissionSet(rootpermissionset, entity, role, field, accesstype)
-    }
-
-    // check if a new permissions is needed or an existing one can be used
-    var existingPermId = permExists(role, entity, field, accesstype, condtype, condition);
-    if (existingPermId != "") {
-        // update
-        permissionid = existingPermId;
-    } else {
-        // permission doesnt exist -> insert new permission
-        // new permissionid is needed to link actions to the permission in the next step
-        permissionid = PermissionUtil.insertNewPermission(permissionsetid, condition, condtype)
-    }
-    
-    // insert new permissionaction    
-    var actionNew = action.split(",");
-    for each (let permaction in actionNew) {
-        PermissionUtil.insertNewPermissionAction(permissionid, permaction);
-    }
-}
-
-// checks input array if each element is a valid input, returns true if valid, otherwise false
-function checkInput(pInputArr) {
-    for each (var input in pInputArr) {
-        if (input == undefined || input == null || input == "")
-            return false;
-    }
-    return true;
-}
-
-// returns permissionid of the permission with fitting parameters, otherwise returns empty string
-function permExists(pRole, pEntity, pField, pAccesstype, pCondtype, pCondition) {
-    var sqlStr = "";
-    var sqlExt = "";
-    
-    if (checkInput([pCondition])) {
-        sqlExt += " and COND = '" + pCondition + "'";
-    }
-    
-    if (checkInput([pField])) {
-        sqlExt += " and FIELD_ID = '" + pField + "'";
-    }
-    
-    sqlStr = "select ASYS_PERMISSION.ASYS_PERMISSIONID from ASYS_PERMISSIONSET"
-    + " join ASYS_PERMISSION on ASYS_PERMISSION.ASYS_PERMISSIONSET_ID = ASYS_PERMISSIONSET.ASYS_PERMISSIONSETID"
-    + " where ENTITY_ID = '" + pEntity + "' and ROLE_ID = '" + pRole + "'"
-    + " and ACCESSTYPE = '" + pAccesstype + "' and CONDTYPE = '" + pCondtype + "'" + sqlExt;
-    var permId = db.cell(sqlStr, alias);
-    return permId;
+import("Permission_lib");
+import("system.neon");
+import("system.util");
+import("system.db");
+import("system.vars");
+import("Permission_lib");
+import("Entity_lib");
+
+var table, cols, vals;
+var alias = "_____SYSTEMALIAS";
+var sqlExt = "";
+var permissionid = util.getNewUUID();
+var role = vars.get("$field.ROLE");
+var entity = vars.get("$field.ENTITY");
+var field = vars.get("$field.FIELD");
+var accesstype = vars.get("$field.ACCESSTYPE").trim();
+var condtype = vars.get("$field.CONDTYPE").trim();
+var condition = vars.get("$field.CONDITION");
+var action = vars.get("$field.ACTION");
+
+if (checkInput([role, entity, accesstype, condtype, action])) {
+    if (checkInput([field]))
+        sqlExt += " and FIELD_ID = '" + field + "'";
+    else if (action.includes("view") || action.includes("create"))
+        sqlExt += " and ACCESSTYPE = 'E'";
+    else 
+        sqlExt += " and ACCESSTYPE = 'R'";
+
+    var sqlStr = "select ASYS_PERMISSIONSETID from ASYS_PERMISSIONSET where ENTITY_ID = '" + entity + "' and ROLE_ID = '" + role + "'" + sqlExt;
+    var permissionsetid = db.cell(sqlStr, alias);
+    
+    if (permissionsetid == "") {
+        // no fitting permissionset found - insert new permissionset
+        var rootpermissionset;
+        if (accesstype == "E") {
+            rootpermissionset = "";
+        } else {
+            rootpermissionset = PermissionUtil.getRootPermissionSet(role, entity);
+        }
+        permissionsetid = PermissionUtil.insertNewPermissionSet(rootpermissionset, entity, role, field, accesstype)
+    }
+
+    // check if a new permissions is needed or an existing one can be used
+    var existingPermId = permExists(role, entity, field, accesstype, condtype, condition);
+    if (existingPermId != "") {
+        // update
+        permissionid = existingPermId;
+    } else {
+        // permission doesnt exist -> insert new permission
+        // new permissionid is needed to link actions to the permission in the next step
+        permissionid = PermissionUtil.insertNewPermission(permissionsetid, condition, condtype)
+    }
+    
+    // insert new permissionaction    
+    var actionNew = action.split(",");
+    for each (let permaction in actionNew) {
+        PermissionUtil.insertNewPermissionAction(permissionid, permaction);
+    }
+}
+
+// checks input array if each element is a valid input, returns true if valid, otherwise false
+function checkInput(pInputArr) {
+    for each (var input in pInputArr) {
+        if (input == undefined || input == null || input == "")
+            return false;
+    }
+    return true;
+}
+
+// returns permissionid of the permission with fitting parameters, otherwise returns empty string
+function permExists(pRole, pEntity, pField, pAccesstype, pCondtype, pCondition) {
+    var sqlStr = "";
+    var sqlExt = "";
+    
+    if (checkInput([pCondition])) {
+        sqlExt += " and COND = '" + pCondition + "'";
+    }
+    
+    if (checkInput([pField])) {
+        sqlExt += " and FIELD_ID = '" + pField + "'";
+    }
+    
+    sqlStr = "select ASYS_PERMISSION.ASYS_PERMISSIONID from ASYS_PERMISSIONSET"
+    + " join ASYS_PERMISSION on ASYS_PERMISSION.ASYS_PERMISSIONSET_ID = ASYS_PERMISSIONSET.ASYS_PERMISSIONSETID"
+    + " where ENTITY_ID = '" + pEntity + "' and ROLE_ID = '" + pRole + "'"
+    + " and ACCESSTYPE = '" + pAccesstype + "' and CONDTYPE = '" + pCondtype + "'" + sqlExt;
+    var permId = db.cell(sqlStr, alias);
+    return permId;
 }
\ No newline at end of file
diff --git a/entity/PermissionMetaData_entity/iconIdProcess.js b/entity/PermissionMetaData_entity/iconIdProcess.js
index 4e92d3f9ca4e6171b3065b5925dc0c3d6a3f4206..d46ea77e82344bcbce0aa5117e1508e974be3cf6 100644
--- a/entity/PermissionMetaData_entity/iconIdProcess.js
+++ b/entity/PermissionMetaData_entity/iconIdProcess.js
@@ -1,17 +1,16 @@
-import("system.logging");
-import("system.result");
-import("system.project");
-import("system.vars");
-
-var currEntity = vars.get("$field.UID");
-
-if (currEntity != undefined && currEntity != null && currEntity != "") {
-    var entityInfo = project.getDataModel(project.DATAMODEL_KIND_ENTITY, currEntity);
-    if (entityInfo[5] != "") {
-        result.string(entityInfo[5]);
-    } else {
-        result.string("VAADIN:CONNECT");
-    }
-} else {
-    result.string("VAADIN:CONNECT");
+import("system.result");
+import("system.project");
+import("system.vars");
+
+var currEntity = vars.get("$field.UID");
+
+if (currEntity != undefined && currEntity != null && currEntity != "") {
+    var entityInfo = project.getDataModel(project.DATAMODEL_KIND_ENTITY, currEntity);
+    if (entityInfo[5] != "") {
+        result.string(entityInfo[5]);
+    } else {
+        result.string("VAADIN:CONNECT");
+    }
+} else {
+    result.string("VAADIN:CONNECT");
 }
\ No newline at end of file
diff --git a/entity/PermissionMetaData_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionMetaData_entity/recordcontainers/jdito/contentProcess.js
index 1edce1c7630e4956b937fe180e0382e303c3e8b9..88ebe7191307eca9c722e78e99c00a77bf3e52aa 100644
--- a/entity/PermissionMetaData_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/PermissionMetaData_entity/recordcontainers/jdito/contentProcess.js
@@ -1,21 +1,20 @@
-import("system.logging");
-import("system.vars");
-import("system.result");
-import("system.project");
-
-var selectedEntity = vars.get("$local.idvalues");
-var res = [];
-
-if (selectedEntity == null) {
-    var allEntities = project.getDataModels(project.DATAMODEL_KIND_ENTITY);
-    for each (let e in allEntities) {
-        if (e[6] == "true") {
-            res.push([e[0], e[1], e[2], e[6]]);
-        }
-    }
-} else {
-    entity = project.getDataModel(project.DATAMODEL_KIND_ENTITY, selectedEntity);
-    res.push([entity[0], entity[1], entity[2], entity[6]]);
-}
-
+import("system.vars");
+import("system.result");
+import("system.project");
+
+var selectedEntity = vars.get("$local.idvalues");
+var res = [];
+
+if (selectedEntity == null) {
+    var allEntities = project.getDataModels(project.DATAMODEL_KIND_ENTITY);
+    for each (let e in allEntities) {
+        if (e[6] == "true") {
+            res.push([e[0], e[1], e[2], e[6]]);
+        }
+    }
+} else {
+    entity = project.getDataModel(project.DATAMODEL_KIND_ENTITY, selectedEntity);
+    res.push([entity[0], entity[1], entity[2], entity[6]]);
+}
+
 result.object(res.sort());
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/newappointment/onActionProcess.js b/entity/Person_entity/entityfields/newappointment/onActionProcess.js
index 06f4097b06be928f47733341d1b00e08c28ae0f4..8e1ec06ffd0747eb8bb5b556143f23687aaa1b28 100644
--- a/entity/Person_entity/entityfields/newappointment/onActionProcess.js
+++ b/entity/Person_entity/entityfields/newappointment/onActionProcess.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.vars");
 import("system.neon");
 import("system.calendars");
diff --git a/entity/Productprice_entity/entityfields/attributes/children/filteredattributes_param/valueProcess.js b/entity/Productprice_entity/entityfields/attributes/children/filteredattributes_param/valueProcess.js
index 4e35cfba9da893b0ecb7870591d10cbb20fa9b9b..8e1a22ffe0d6b4fbed6611161f1fa121edbdc428 100644
--- a/entity/Productprice_entity/entityfields/attributes/children/filteredattributes_param/valueProcess.js
+++ b/entity/Productprice_entity/entityfields/attributes/children/filteredattributes_param/valueProcess.js
@@ -1,3 +1,3 @@
 import("system.db");
 import("system.result");
-result.object(db.array(db.ROW, "select AB_ATTRIBUTEID from ADITO.AB_ATTRIBUTE where ATTRIBUTE_PARENT_ID = 'ab545654-1fce-4993-b763-0ec469781302'"));
\ No newline at end of file
+result.object(db.array(db.ROW, "select AB_ATTRIBUTEID from AB_ATTRIBUTE where ATTRIBUTE_PARENT_ID = 'ab545654-1fce-4993-b763-0ec469781302'"));
\ No newline at end of file
diff --git a/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod b/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod
index bb9392906c9c8a9b9cc0027b437a4f2eb6a21165..f443b20ebe2ee148a68fac1c12fde522faee60db 100644
--- a/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod
+++ b/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod
@@ -40,13 +40,7 @@
       <contentType>DATE</contentType>
       <resolution>DAY</resolution>
       <outputFormat>dd.MM.yyyy</outputFormat>
-      <inputFormat>dd.MM.yyyy</inputFormat>
-      <mandatory v="true" />
-      <valueProcess>%aditoprj%/entity/SalesprojectSource_entity/entityfields/entrydate/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>INFO</name>
-      <title>Info</title>
+      <title>Information</title>
       <contentType>LONG_TEXT</contentType>
     </entityField>
     <entityField>
diff --git a/entity/Salesproject_entity/entityfields/classificationresult/valueProcess.js b/entity/Salesproject_entity/entityfields/classificationresult/valueProcess.js
index aa00d635b63e157cb00b3861bf412fc79b426e16..ec7e306ee9580b62b61f879c1acac71f7c0872ad 100644
--- a/entity/Salesproject_entity/entityfields/classificationresult/valueProcess.js
+++ b/entity/Salesproject_entity/entityfields/classificationresult/valueProcess.js
@@ -4,4 +4,5 @@ import("system.result");
 import("Classification_lib")
 import("Context_lib")
 
-result.string(ClassificationUtils.getClass($KeywordRegistry.classificationType$salesproject(), ContextUtils.getCurrentContextId(), vars.get("$sys.uid")));
\ No newline at end of file
+var classes = ClassificationUtils.getClass($KeywordRegistry.classificationType$salesproject(), ContextUtils.getCurrentContextId(), vars.get("$sys.uid"))
+result.string(classes);
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/offers/children/objectrowid_param/valueProcess.js b/entity/Salesproject_entity/entityfields/offers/children/objectrowid_param/valueProcess.js
index 6900f8723af082fe508273c0330548870bcc6117..2b119ebfa1944164fd2a1cb645511740bec9015e 100644
--- a/entity/Salesproject_entity/entityfields/offers/children/objectrowid_param/valueProcess.js
+++ b/entity/Salesproject_entity/entityfields/offers/children/objectrowid_param/valueProcess.js
@@ -1,3 +1,4 @@
 import("system.vars");
 import("system.result");
+
 result.string(vars.get("$field.SALESPROJECTID"));
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/offers/children/objecttype_param/valueProcess.js b/entity/Salesproject_entity/entityfields/offers/children/objecttype_param/valueProcess.js
index c346bbcfecb98c65bb737be761cd1c66191250b9..cc6924394ae950c43386275dda2c8db5d7a9c0ed 100644
--- a/entity/Salesproject_entity/entityfields/offers/children/objecttype_param/valueProcess.js
+++ b/entity/Salesproject_entity/entityfields/offers/children/objecttype_param/valueProcess.js
@@ -1,3 +1,4 @@
 import("Context_lib");
 import("system.result");
+
 result.string(ContextUtils.getCurrentContextId());
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/attributes/children/filteredattributeids_param/valueProcess.js b/entity/Task_entity/entityfields/attributes/children/filteredattributeids_param/valueProcess.js
index 670a9d499d47fe6f49455af7ccbc1af4e6652f49..47009a542400d5bd799e4892bf7c05a261be8aea 100644
--- a/entity/Task_entity/entityfields/attributes/children/filteredattributeids_param/valueProcess.js
+++ b/entity/Task_entity/entityfields/attributes/children/filteredattributeids_param/valueProcess.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.vars");
 import("system.result");
 import("ActivityTask_lib");
diff --git a/entity/Task_entity/entityfields/status/valueProcess.js b/entity/Task_entity/entityfields/status/valueProcess.js
index 5395a0b51db583589e21384f42edd51e3ff00a95..15024ad9a4247e1020dc9527666d3d6d8145b2e4 100644
--- a/entity/Task_entity/entityfields/status/valueProcess.js
+++ b/entity/Task_entity/entityfields/status/valueProcess.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("ActivityTask_lib");
 import("system.util");
 import("system.result");
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index 6f77e247fbc73e1c63f30af00d5117d25df0ffd1..384fddaaa009a90fb0cb9c234649352793a2d08b 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -3648,9 +3648,24 @@
     <entry>
       <key>Search for new Entries</key>
     </entry>
-    <entry>
-      <key>Additional link</key>
-    </entry>
+    <entry>
+      <key>Additional link</key>
+    </entry>
+    <entry>
+      <key>Salesproject member</key>
+    </entry>
+    <entry>
+      <key>Maximal count has to be a whole number</key>
+    </entry>
+    <entry>
+      <key>Minimal count must be a positive whole number</key>
+    </entry>
+    <entry>
+      <key>Meilensteine und Kontaktpunkte</key>
+    </entry>
+    <entry>
+      <key>Maximal count must be one or higher</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 cbbb0e7e9f85b9d4a428b763b2d6ce69874b6875..2c9d2030154c57a35f4a196f39e7b0247e611f47 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -3667,6 +3667,10 @@
       <key>Zip</key>
     </entry>
     <entry>
+      <key>Salesproject member</key>
+      <value>Projektteam</value>
+    </entry>
+    <entry>
       <key>Layout costs</key>
       <value>Layout</value>
     </entry>
@@ -4571,6 +4575,21 @@
       <key>Search for new Entries</key>
       <value>Nach neuen Einträgen suchen</value>
     </entry>
+    <entry>
+      <key>Maximal count has to be a whole number</key>
+      <value>Maximale Anzahl muss eine ganze Zahl sein</value>
+    </entry>
+    <entry>
+      <key>Minimal count must be a positive whole number</key>
+      <value>Minimale Anzahl muss eine positive, ganze Zahl sein</value>
+    </entry>
+    <entry>
+      <key>Meilensteine und Kontaktpunkte</key>
+    </entry>
+    <entry>
+      <key>Maximal count must be one or higher</key>
+      <value>Maximale Anzahl muss eins oder höher sein</value>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index 091a3ab179a63943d548542b0c83228ab8d3ca23..dd3c737a9c1e7fa467ac3d1146821be796c5c8c7 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -3697,9 +3697,24 @@
     <entry>
       <key>Search for new Entries</key>
     </entry>
-    <entry>
-      <key>Additional link</key>
-    </entry>
+    <entry>
+      <key>Additional link</key>
+    </entry>
+    <entry>
+      <key>Salesproject member</key>
+    </entry>
+    <entry>
+      <key>Maximal count has to be a whole number</key>
+    </entry>
+    <entry>
+      <key>Minimal count must be a positive whole number</key>
+    </entry>
+    <entry>
+      <key>Meilensteine und Kontaktpunkte</key>
+    </entry>
+    <entry>
+      <key>Maximal count must be one or higher</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonContext/Activity/Activity.aod b/neonContext/Activity/Activity.aod
index 5822e64fb80fca5377d40de7308530bf2c8dc26b..d2af3b2670063c6b7bbf65b0fab7d6bcb5e3c79c 100644
--- a/neonContext/Activity/Activity.aod
+++ b/neonContext/Activity/Activity.aod
@@ -29,5 +29,9 @@
       <name>d842dc4a-46f4-44d0-ab2e-2ff460a5aa47</name>
       <view>ActivityDetail_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>03805b3b-d037-49b3-9836-e50f2a359aec</name>
+      <view>ActivityDrawer_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/AttributeRelation/AttributeRelation.aod b/neonContext/AttributeRelation/AttributeRelation.aod
index ea75439e7a635ccae6bd4864815ff8590f693569..4f850ea6cffa3913dd32f9573ace3c88094b0dab 100644
--- a/neonContext/AttributeRelation/AttributeRelation.aod
+++ b/neonContext/AttributeRelation/AttributeRelation.aod
@@ -22,5 +22,9 @@
       <name>b50638d0-30ec-4166-80c0-ab6d0f2180a1</name>
       <view>AttributeRelationPreviewList</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>62bb0096-a16a-49a4-88c1-aae53c730169</name>
+      <view>AttributeRelationTreeDrawer_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/Classification/Classification.aod b/neonContext/Classification/Classification.aod
index 958b89c743aa432b9a5f4fb3e3d0d7d442c440de..9f78f8cfd61d0869964ef51159450461f3130f97 100644
--- a/neonContext/Classification/Classification.aod
+++ b/neonContext/Classification/Classification.aod
@@ -1,30 +1,22 @@
-<?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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0">
-  <name>Classification</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <documentation>%aditoprj%/neonContext/Classification/documentation.adoc</documentation>
-  <editview>ClassificatonAdminEdit_view</editview>
-  <entity>Classification_entity</entity>
-  <references>
-    <neonViewReference>
-      <name>3ab6b4d1-e6db-42be-8262-2499a3d114e9</name>
-      <view>ClassificationTree_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>359f42a2-1014-4d81-aa65-8f6aeba10f2d</name>
-      <view>ClassificatonAdminEdit_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>b54f49d0-3577-4221-8fd1-fc1c8239d689</name>
-      <view>ClassificationAdminTree_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>50c0d5c5-c84f-452d-9f77-41b82ac0319f</name>
-      <view>ClassificatonEdit_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>8412dc60-bffd-49bd-a68d-c730404b807b</name>
-      <view>ClassificationFilter_view</view>
-    </neonViewReference>
-  </references>
-</neonContext>
+<?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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0">
+  <name>Classification</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <documentation>%aditoprj%/neonContext/Classification/documentation.adoc</documentation>
+  <preview>ClassificatonPreview_view</preview>
+  <entity>Classification_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>3ab6b4d1-e6db-42be-8262-2499a3d114e9</name>
+      <view>ClassificationTree_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>50c0d5c5-c84f-452d-9f77-41b82ac0319f</name>
+      <view>ClassificatonPreview_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>cabdb49c-4faf-4581-8bb5-8a409f27ac3f</name>
+      <view>ClassificationDrawer_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonContext/ClassificationAdmin/ClassificationAdmin.aod b/neonContext/ClassificationAdmin/ClassificationAdmin.aod
index a1594f3adbd537c98411858fd6c726f8369062af..809c94a1d06d1491fddf32c0728c0426810467cc 100644
--- a/neonContext/ClassificationAdmin/ClassificationAdmin.aod
+++ b/neonContext/ClassificationAdmin/ClassificationAdmin.aod
@@ -1,15 +1,25 @@
-<?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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0">
-  <name>ClassificationAdmin</name>
-  <title></title>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <documentation>%aditoprj%/neonContext/ClassificationAdmin/documentation.adoc</documentation>
-  <mainview>ClassificationAdminMain_view</mainview>
-  <entity>ClassificationAdmin_entity</entity>
-  <references>
-    <neonViewReference>
-      <name>4a240156-6c62-46d8-890e-b5c239ef8128</name>
-      <view>ClassificationAdminMain_view</view>
-    </neonViewReference>
-  </references>
-</neonContext>
+<?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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0">
+  <name>ClassificationAdmin</name>
+  <title></title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <documentation>%aditoprj%/neonContext/ClassificationAdmin/documentation.adoc</documentation>
+  <filterview>ClassificationAdminTree_view</filterview>
+  <editview>ClassificationAdminEdit_view</editview>
+  <preview>ClassificatonAdminPreview_view</preview>
+  <entity>ClassificationAdmin_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>d2a900f6-8860-4bd6-bc8a-3a8261fb9b3d</name>
+      <view>ClassificationAdminTree_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>3d860a00-13a4-45ef-8087-487ea80bb84b</name>
+      <view>ClassificatonAdminPreview_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>2c6e2b30-0fd1-4f12-bf9f-d4bbcfbed8aa</name>
+      <view>ClassificationAdminEdit_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonContext/ClassificationScore/ClassificationScore.aod b/neonContext/ClassificationScore/ClassificationScore.aod
index 30e849af74584cc2ba0fb74d791ec3a038f1e48f..1b36df91560e36642648a2fce4435aa13d2f841b 100644
--- a/neonContext/ClassificationScore/ClassificationScore.aod
+++ b/neonContext/ClassificationScore/ClassificationScore.aod
@@ -1,12 +1,16 @@
-<?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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0">
-  <name>ClassificationScore</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <entity>ClassificationScore_entity</entity>
-  <references>
-    <neonViewReference>
-      <name>ccaf4443-07e0-4e29-a73d-2073d132fbe6</name>
-      <view>ClassificationScoreMultipleEdit_view</view>
-    </neonViewReference>
-  </references>
-</neonContext>
+<?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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0">
+  <name>ClassificationScore</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <entity>ClassificationScore_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>ccaf4443-07e0-4e29-a73d-2073d132fbe6</name>
+      <view>ClassificationScoreMultiplePreview_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>e857034a-2e2c-4026-8833-12ba4ce597d0</name>
+      <view>ClassificationScoreMultipleEdit_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonContext/Competition/Competition.aod b/neonContext/Competition/Competition.aod
index 3466aa031c5faabae3d0ee4bced92c41b888019c..5426e2187996dc03b6997e1fda9f53d5e0a58d01 100644
--- a/neonContext/Competition/Competition.aod
+++ b/neonContext/Competition/Competition.aod
@@ -19,5 +19,9 @@
       <name>6df65cb7-f8fc-4b6e-963d-df6dde6d523b</name>
       <view>CompetitionPreview_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>181ce712-9fd0-4044-9d44-6f12da0f0f54</name>
+      <view>CompetitionDrawer_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/Document/Document.aod b/neonContext/Document/Document.aod
index bdc733dc1b240079dc84f44a22d7be2cee1bb354..b5c6d46ab5c89200d2949c64d97b309181311502 100644
--- a/neonContext/Document/Document.aod
+++ b/neonContext/Document/Document.aod
@@ -25,5 +25,9 @@
       <name>b9455efd-d150-46c0-bfae-cdccb0c9bcad</name>
       <view>DocumentList_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>16c5b82f-8690-493c-98d9-150c086202d0</name>
+      <view>DocumentDrawer_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/Forecast/Forecast.aod b/neonContext/Forecast/Forecast.aod
index f9867dedd369e05cd1c1ba94d8909bc9092537c5..016e7b97cb223c282df24c9fe596e3a1f56ed4a7 100644
--- a/neonContext/Forecast/Forecast.aod
+++ b/neonContext/Forecast/Forecast.aod
@@ -19,5 +19,9 @@
       <name>1fe6e10b-52b4-44a4-88d8-9784a967572c</name>
       <view>ForecastPreview_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>4fb2da2d-ef4b-4b86-8d4b-9212591a8c47</name>
+      <view>ForecastDrawer_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/Member/Member.aod b/neonContext/Member/Member.aod
index 8360ef841240df610e4e2e9ee334e8dfef5069e7..a1a393bf7426b4e49d8c29a16a30f59f48a72126 100644
--- a/neonContext/Member/Member.aod
+++ b/neonContext/Member/Member.aod
@@ -14,5 +14,9 @@
       <name>ebef21a3-c0e1-4333-b769-eb967cb4099b</name>
       <view>MemberEdit_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>61eb4778-61aa-4419-8c8b-5ad69d86a4bb</name>
+      <view>MemberDrawer_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/Offer/Offer.aod b/neonContext/Offer/Offer.aod
index 6e9ba1f1001ad9c7efa2d0d415d375b055b05593..40418dc2dbd8042c2a0b757a6d61a8f401bd5aa9 100644
--- a/neonContext/Offer/Offer.aod
+++ b/neonContext/Offer/Offer.aod
@@ -30,5 +30,9 @@
       <name>a68c9d63-aff4-4e82-af23-72d20c2b6b76</name>
       <view>OfferCoverLetter_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>d72d1eb1-461c-442c-881d-48fb71b89316</name>
+      <view>OfferDrawer_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/Salesproject/Salesproject.aod b/neonContext/Salesproject/Salesproject.aod
index 682b44c4ab3336b96d57d44f9af18558889ef0d3..a7d8eda383934c413cd8c4aff7b82528a77c0e51 100644
--- a/neonContext/Salesproject/Salesproject.aod
+++ b/neonContext/Salesproject/Salesproject.aod
@@ -34,5 +34,25 @@
       <name>5990b9d2-b9b8-495e-85de-68a765d09b7f</name>
       <view>SalesprojectClassification_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>6640a2aa-cd7f-41d0-ab55-30a99256c2c6</name>
+      <view>SalesprojectMemberActivity_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>58afb929-85fb-4aea-a149-25afc9cc7a97</name>
+      <view>SalesprojectMilestoneSource_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>e320d244-6417-4b7b-a532-4a7e2011fb64</name>
+      <view>SalesprojectOfferForecast_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>d878f3b7-1de6-4319-93c7-0fff621c0458</name>
+      <view>SalesprojectTimeDocComp_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>68e9257b-d402-4edc-8345-7da46c3b63f9</name>
+      <view>SalesprojectClassificationAttribute_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/SalesprojectSource/SalesprojectSource.aod b/neonContext/SalesprojectSource/SalesprojectSource.aod
index 85736ec596358f7e5fe53ab9807900275b169695..bfd11662b330436309099e077c316c28261f737e 100644
--- a/neonContext/SalesprojectSource/SalesprojectSource.aod
+++ b/neonContext/SalesprojectSource/SalesprojectSource.aod
@@ -19,5 +19,9 @@
       <name>231302ed-b2a5-4ccd-bd08-e6a536efbc58</name>
       <view>SalesprojectSourcePreview_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>d7246373-a0a3-42e7-83c9-572eb7083cf8</name>
+      <view>SalesprojectSourceDrawer_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/Timetracking/Timetracking.aod b/neonContext/Timetracking/Timetracking.aod
index 1e5a05053df48bf466bd9209177543af4a709385..72386c6a08a480cb48e2a1513e25880dcf5eb81e 100644
--- a/neonContext/Timetracking/Timetracking.aod
+++ b/neonContext/Timetracking/Timetracking.aod
@@ -19,5 +19,9 @@
       <name>4ee9a88d-98a4-4fb5-b1ab-0fffa03c9344</name>
       <view>TimetrackingPreview_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>1afcd6f9-1692-4df7-b514-32c1db2f7dd1</name>
+      <view>TimetrackingDrawer_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonNotificationType/Andis/Andis.aod b/neonNotificationType/Andis/Andis.aod
deleted file mode 100644
index 760bb2546129a98634dc8f0d899060374466226e..0000000000000000000000000000000000000000
--- a/neonNotificationType/Andis/Andis.aod
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<neonNotificationType xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonNotificationType/1.1.0">
-  <name>Andis</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <icon>NEON:GROUP_APPOINTMENT</icon>
-  <defaultPriority>MAX</defaultPriority>
-</neonNotificationType>
diff --git a/neonView/ClassificationFilter_view/ClassificationFilter_view.aod b/neonView/ActivityDrawer_view/ActivityDrawer_view.aod
similarity index 52%
rename from neonView/ClassificationFilter_view/ClassificationFilter_view.aod
rename to neonView/ActivityDrawer_view/ActivityDrawer_view.aod
index 94fe9606866faf4aa1f95649b7ca6e9e213fffcf..83b47cbe383508807a6e8647d92349cf077e3e30 100644
--- a/neonView/ClassificationFilter_view/ClassificationFilter_view.aod
+++ b/neonView/ActivityDrawer_view/ActivityDrawer_view.aod
@@ -1,22 +1,18 @@
 <?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
-  <name>ClassificationFilter_view</name>
+  <name>ActivityDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
-    <boxLayout>
+    <drawerLayout>
       <name>layout</name>
-    </boxLayout>
+      <layoutCaption>Activities</layoutCaption>
+    </drawerLayout>
   </layout>
   <children>
-    <tableViewTemplate>
-      <name>Classifications</name>
+    <neonViewReference>
+      <name>9a0bf95e-8e6f-47ac-aff0-c420d5fb86aa</name>
       <entityField>#ENTITY</entityField>
-      <columns>
-        <neonTableColumn>
-          <name>f87e6f40-74ad-4f27-b9b0-32e1c6b294f4</name>
-          <entityField>CLASSIFICATIONTYPE</entityField>
-        </neonTableColumn>
-      </columns>
-    </tableViewTemplate>
+      <view>ActivityFilter_view</view>
+    </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/AttributeRelationTreeDrawer_view/AttributeRelationTreeDrawer_view.aod b/neonView/AttributeRelationTreeDrawer_view/AttributeRelationTreeDrawer_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..9e8cd7121ad9a573c978a700dca784fa9c56f7ff
--- /dev/null
+++ b/neonView/AttributeRelationTreeDrawer_view/AttributeRelationTreeDrawer_view.aod
@@ -0,0 +1,18 @@
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>AttributeRelationTreeDrawer_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <drawerLayout>
+      <name>layout</name>
+      <layoutCaption>Attributes</layoutCaption>
+    </drawerLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>fda0b0db-8bb8-4d61-99e0-715717885740</name>
+      <entityField>#ENTITY</entityField>
+      <view>AttributeRelationTree_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/ClassificationAdminEdit_view/ClassificationAdminEdit_view.aod b/neonView/ClassificationAdminEdit_view/ClassificationAdminEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..4c48e7bb07f04d7b9c8fbaa3956087c21f59da4d
--- /dev/null
+++ b/neonView/ClassificationAdminEdit_view/ClassificationAdminEdit_view.aod
@@ -0,0 +1,40 @@
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>ClassificationAdminEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <isSmall v="true" />
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+      <autoHeight v="true" />
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>classification</name>
+      <editMode v="true" />
+      <showDrawer v="true" />
+      <drawerCaption>Classification</drawerCaption>
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>c702f17c-af6c-4674-bbef-9586adfa3f3b</name>
+          <entityField>CLASSIFICATIONTYPE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>66ce2c02-1cd3-4867-91a6-825655d6d16a</name>
+          <entityField>CLASSIFICATIONGROUP</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>85cf625b-8ea4-4e6f-8b21-2e42314b46d6</name>
+          <entityField>SCORETYPE</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+    <neonViewReference>
+      <name>cedafb39-a59c-480f-aeff-e6276ea4fb9e</name>
+      <entityField>ClassificationScores</entityField>
+      <view>ClassificationScoreMultipleEdit_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/ClassificationAdminTree_view/ClassificationAdminTree_view.aod b/neonView/ClassificationAdminTree_view/ClassificationAdminTree_view.aod
index 740c24327fa910ec1c7d69176ad6418eb3d17ee8..e2b1d8b0bc76eaf6a4f3cb1b11d55a3f8d12c1b4 100644
--- a/neonView/ClassificationAdminTree_view/ClassificationAdminTree_view.aod
+++ b/neonView/ClassificationAdminTree_view/ClassificationAdminTree_view.aod
@@ -1,25 +1,23 @@
-<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
-  <name>ClassificationAdminTree_view</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <filterable v="true" />
-  <layout>
-    <boxLayout>
-      <name>layout</name>
-    </boxLayout>
-  </layout>
-  <children>
-    <treeViewTemplate>
-      <name>classificationTree</name>
-      <titleField>SCORETYPE</titleField>
-      <defaultGroupFields>
-        <element>CLASSIFICATIONTYPE</element>
-        <element>CLASSIFICATIONGROUP</element>
-      </defaultGroupFields>
-      <hideContentSearch v="true" />
-      <showChildrenCount v="false" />
-      <entryAction>edit</entryAction>
-      <entityField>#ENTITY</entityField>
-    </treeViewTemplate>
-  </children>
-</neonView>
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>ClassificationAdminTree_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterable v="true" />
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <treeViewTemplate>
+      <name>classificationTree</name>
+      <titleField>SCORETYPE</titleField>
+      <defaultGroupFields>
+        <element>CLASSIFICATIONTYPE</element>
+        <element>CLASSIFICATIONGROUP</element>
+      </defaultGroupFields>
+      <showChildrenCount v="false" />
+      <entityField>#ENTITY</entityField>
+    </treeViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ClassificationDrawer_view/ClassificationDrawer_view.aod b/neonView/ClassificationDrawer_view/ClassificationDrawer_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..4f3c0065ecf038cd2d66c0ee3aefbeef34ef2451
--- /dev/null
+++ b/neonView/ClassificationDrawer_view/ClassificationDrawer_view.aod
@@ -0,0 +1,18 @@
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>ClassificationDrawer_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <drawerLayout>
+      <name>layout</name>
+      <layoutCaption>Classification</layoutCaption>
+    </drawerLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>be8f5d17-80ab-49c4-8153-f90aa23667cd</name>
+      <entityField>#ENTITY</entityField>
+      <view>ClassificationTree_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/ClassificationScoreMultipleEdit_view/ClassificationScoreMultipleEdit_view.aod b/neonView/ClassificationScoreMultipleEdit_view/ClassificationScoreMultipleEdit_view.aod
index c3ace8559d216711832cafb90d5649b09748ef8c..db967914146e37c3b1d6e81851364f992ac22c23 100644
--- a/neonView/ClassificationScoreMultipleEdit_view/ClassificationScoreMultipleEdit_view.aod
+++ b/neonView/ClassificationScoreMultipleEdit_view/ClassificationScoreMultipleEdit_view.aod
@@ -1,33 +1,31 @@
-<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
-  <name>ClassificationScoreMultipleEdit_view</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <isSmall v="true" />
-  <layout>
-    <drawerLayout>
-      <name>layout</name>
-      <layoutCaption>Possible Values</layoutCaption>
-    </drawerLayout>
-  </layout>
-  <children>
-    <genericMultipleViewTemplate>
-      <name>scores</name>
-      <autoNewRow v="true" />
-      <entityField>#ENTITY</entityField>
-      <columns>
-        <neonTableColumn>
-          <name>4c9b65c7-96a8-4524-a465-2e928b51242f</name>
-          <entityField>TITLE</entityField>
-        </neonTableColumn>
-        <neonTableColumn>
-          <name>9321f0c5-321e-4962-843b-f274d33916be</name>
-          <entityField>SCORE</entityField>
-        </neonTableColumn>
-        <neonTableColumn>
-          <name>1170097d-0206-445e-8f2d-5768300f0262</name>
-          <entityField>SORT</entityField>
-        </neonTableColumn>
-      </columns>
-    </genericMultipleViewTemplate>
-  </children>
-</neonView>
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>ClassificationScoreMultipleEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <drawerLayout>
+      <name>layout</name>
+      <layoutCaption>Possible Values</layoutCaption>
+    </drawerLayout>
+  </layout>
+  <children>
+    <genericMultipleViewTemplate>
+      <name>scores</name>
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>7d49c1b4-3525-410c-92d2-b21a69fd8dec</name>
+          <entityField>TITLE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>db21eec0-16c6-4267-a785-cb63f15e43b3</name>
+          <entityField>SCORE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>38641e7a-a8fe-4ad4-af63-efde73d66a9a</name>
+          <entityField>SORT</entityField>
+        </neonTableColumn>
+      </columns>
+    </genericMultipleViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ClassificationScoreMultiplePreview_view/ClassificationScoreMultiplePreview_view.aod b/neonView/ClassificationScoreMultiplePreview_view/ClassificationScoreMultiplePreview_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..52c6ef70281889c3c150aaa3e5fd221fe33fb4f5
--- /dev/null
+++ b/neonView/ClassificationScoreMultiplePreview_view/ClassificationScoreMultiplePreview_view.aod
@@ -0,0 +1,32 @@
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>ClassificationScoreMultiplePreview_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <isSmall v="false" />
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+  <children>
+    <titledListViewTemplate>
+      <name>scores</name>
+      <autoNewRow v="true" />
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>a50378a0-74dd-47fb-804b-f83bc1d25910</name>
+          <entityField>TITLE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>d56f97c1-a634-4b12-8dd3-c2c32a9e16f1</name>
+          <entityField>SCORE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>9fb3ba45-55e6-44f0-a612-7ddd54dacce0</name>
+          <entityField>SORT</entityField>
+        </neonTableColumn>
+      </columns>
+    </titledListViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ClassificationTree_view/ClassificationTree_view.aod b/neonView/ClassificationTree_view/ClassificationTree_view.aod
index f1b678bf8fd24c73cf37ff4d44f805d7eaed56db..5343c1ed7a90cdfc9e13aa7a038992199ef497ad 100644
--- a/neonView/ClassificationTree_view/ClassificationTree_view.aod
+++ b/neonView/ClassificationTree_view/ClassificationTree_view.aod
@@ -1,32 +1,31 @@
-<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
-  <name>ClassificationTree_view</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <layout>
-    <noneLayout>
-      <name>layout</name>
-    </noneLayout>
-  </layout>
-  <children>
-    <treeTableViewTemplate>
-      <name>ClassificationTreeTable</name>
-      <defaultGroupFields>
-        <element>CLASSIFICATIONGROUP</element>
-      </defaultGroupFields>
-      <hideActions v="true" />
-      <showChildrenCount v="false" />
-      <entryAction>edit</entryAction>
-      <entityField>#ENTITY</entityField>
-      <columns>
-        <neonTableColumn>
-          <name>246c0212-dadb-4d71-9567-ceab37e9ef10</name>
-          <entityField>SCORETYPE</entityField>
-        </neonTableColumn>
-        <neonTableColumn>
-          <name>9a62baa4-71cf-4b9d-8cd6-883b233a9b84</name>
-          <entityField>CLASSIFICATIONSCORE_ID</entityField>
-        </neonTableColumn>
-      </columns>
-    </treeTableViewTemplate>
-  </children>
-</neonView>
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>ClassificationTree_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+  <children>
+    <treeTableViewTemplate>
+      <name>ClassificationTreeTable</name>
+      <defaultGroupFields>
+        <element>CLASSIFICATIONGROUP</element>
+      </defaultGroupFields>
+      <hideActions v="true" />
+      <showChildrenCount v="false" />
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>246c0212-dadb-4d71-9567-ceab37e9ef10</name>
+          <entityField>SCORETYPE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>9a62baa4-71cf-4b9d-8cd6-883b233a9b84</name>
+          <entityField>CLASSIFICATIONSCORE_ID</entityField>
+        </neonTableColumn>
+      </columns>
+    </treeTableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ClassificatonAdminEdit_view_/ClassificatonAdminEdit_view.aod b/neonView/ClassificatonAdminEdit_view_/ClassificatonAdminEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/neonView/ClassificatonAdminEdit_view/ClassificatonAdminEdit_view.aod b/neonView/ClassificatonAdminPreview_view/ClassificatonAdminPreview_view.aod
similarity index 86%
rename from neonView/ClassificatonAdminEdit_view/ClassificatonAdminEdit_view.aod
rename to neonView/ClassificatonAdminPreview_view/ClassificatonAdminPreview_view.aod
index e068b060e8ca29982a9bd697839eff462597fce4..ee90e4bcd018d01c53d357f714980712514c1a0b 100644
--- a/neonView/ClassificatonAdminEdit_view/ClassificatonAdminEdit_view.aod
+++ b/neonView/ClassificatonAdminPreview_view/ClassificatonAdminPreview_view.aod
@@ -1,38 +1,39 @@
-<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
-  <name>ClassificatonAdminEdit_view</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <isSmall v="true" />
-  <layout>
-    <noneLayout>
-      <name>layout</name>
-    </noneLayout>
-  </layout>
-  <children>
-    <genericViewTemplate>
-      <name>classification</name>
-      <editMode v="true" />
-      <drawerCaption>Classification</drawerCaption>
-      <entityField>#ENTITY</entityField>
-      <fields>
-        <entityFieldLink>
-          <name>31662c73-7352-4eb2-889d-3f63bff25686</name>
-          <entityField>CLASSIFICATIONTYPE</entityField>
-        </entityFieldLink>
-        <entityFieldLink>
-          <name>7fddc4d4-6bdc-4c7a-9d69-bba4a9506707</name>
-          <entityField>CLASSIFICATIONGROUP</entityField>
-        </entityFieldLink>
-        <entityFieldLink>
-          <name>cb6e8f64-b2a4-4cc4-88b7-2f64f56b83dc</name>
-          <entityField>SCORETYPE</entityField>
-        </entityFieldLink>
-      </fields>
-    </genericViewTemplate>
-    <neonViewReference>
-      <name>214fbe22-378d-404e-99f8-f175e037f196</name>
-      <entityField>ClassificationScores</entityField>
-      <view>ClassificationScoreMultipleEdit_view</view>
-    </neonViewReference>
-  </children>
-</neonView>
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>ClassificatonAdminPreview_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <isSmall v="true" />
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+      <autoHeight v="true" />
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>classification</name>
+      <showDrawer v="true" />
+      <drawerCaption>Classification</drawerCaption>
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>31662c73-7352-4eb2-889d-3f63bff25686</name>
+          <entityField>CLASSIFICATIONTYPE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>7fddc4d4-6bdc-4c7a-9d69-bba4a9506707</name>
+          <entityField>CLASSIFICATIONGROUP</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>cb6e8f64-b2a4-4cc4-88b7-2f64f56b83dc</name>
+          <entityField>SCORETYPE</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+    <neonViewReference>
+      <name>214fbe22-378d-404e-99f8-f175e037f196</name>
+      <entityField>ClassificationScores</entityField>
+      <view>ClassificationScoreMultiplePreview_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/ClassificatonEdit_view/ClassificatonEdit_view.aod b/neonView/ClassificatonPreview_view/ClassificatonPreview_view.aod
similarity index 91%
rename from neonView/ClassificatonEdit_view/ClassificatonEdit_view.aod
rename to neonView/ClassificatonPreview_view/ClassificatonPreview_view.aod
index 85140d5bd17c272ccf2feda044ec82348a32e219..38b3c867605f61b06226af409931a0f0b301c5f8 100644
--- a/neonView/ClassificatonEdit_view/ClassificatonEdit_view.aod
+++ b/neonView/ClassificatonPreview_view/ClassificatonPreview_view.aod
@@ -1,36 +1,37 @@
-<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
-  <name>ClassificatonEdit_view</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <isSmall v="true" />
-  <layout>
-    <boxLayout>
-      <name>layout</name>
-      <autoHeight v="true" />
-    </boxLayout>
-  </layout>
-  <children>
-    <genericViewTemplate>
-      <name>classification</name>
-      <editMode v="true" />
-      <drawerCaption>Classification</drawerCaption>
-      <entityField>#ENTITY</entityField>
-      <fields>
-        <entityFieldLink>
-          <name>dfdbc6f4-4859-495b-96e7-0853bdbc611f</name>
-          <entityField>CLASSIFICATIONSCORE_ID</entityField>
-        </entityFieldLink>
-      </fields>
-    </genericViewTemplate>
-    <genericViewTemplate>
-      <name>info</name>
-      <entityField>#ENTITY</entityField>
-      <fields>
-        <entityFieldLink>
-          <name>2d1fae5e-1b2b-4e29-9bcb-646db9fd9653</name>
-          <entityField>Info</entityField>
-        </entityFieldLink>
-      </fields>
-    </genericViewTemplate>
-  </children>
-</neonView>
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>ClassificatonPreview_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <isSmall v="true" />
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+      <autoHeight v="true" />
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>classification</name>
+      <showDrawer v="true" />
+      <drawerCaption>Classification</drawerCaption>
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>dfdbc6f4-4859-495b-96e7-0853bdbc611f</name>
+          <entityField>CLASSIFICATIONSCORE_ID</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+    <genericViewTemplate>
+      <name>info</name>
+      <entityField>#ENTITY</entityField>
+      <title></title>
+      <fields>
+        <entityFieldLink>
+          <name>2d1fae5e-1b2b-4e29-9bcb-646db9fd9653</name>
+          <entityField>Info</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/CompetitionDrawer_view/CompetitionDrawer_view.aod b/neonView/CompetitionDrawer_view/CompetitionDrawer_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..c4e1ca3f84f61ae10f92174176bfe28c5405c99b
--- /dev/null
+++ b/neonView/CompetitionDrawer_view/CompetitionDrawer_view.aod
@@ -0,0 +1,18 @@
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>CompetitionDrawer_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <drawerLayout>
+      <name>layout</name>
+      <layoutCaption>Competitors</layoutCaption>
+    </drawerLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>539e86b4-19da-4e25-a2fd-ee41cda09273</name>
+      <entityField>#ENTITY</entityField>
+      <view>CompetitionFilter_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/DocumentDrawer_view/DocumentDrawer_view.aod b/neonView/DocumentDrawer_view/DocumentDrawer_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..147cf88d5a2c83708bbc1ebe09a36b6bf3727ec0
--- /dev/null
+++ b/neonView/DocumentDrawer_view/DocumentDrawer_view.aod
@@ -0,0 +1,18 @@
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>DocumentDrawer_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <drawerLayout>
+      <name>layout</name>
+      <layoutCaption>Documents</layoutCaption>
+    </drawerLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>10ff8c81-9280-4f65-856b-3fc9b56df818</name>
+      <entityField>#ENTITY</entityField>
+      <view>DocumentFilter_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/ForecastDrawer_view/ForecastDrawer_view.aod b/neonView/ForecastDrawer_view/ForecastDrawer_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..c6b7af5d814bd26d1f64e0644e23b339f67d9a98
--- /dev/null
+++ b/neonView/ForecastDrawer_view/ForecastDrawer_view.aod
@@ -0,0 +1,18 @@
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>ForecastDrawer_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <drawerLayout>
+      <name>layout</name>
+      <layoutCaption>Forecast</layoutCaption>
+    </drawerLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>2d256ab5-1496-437a-abcb-20900cf3cc37</name>
+      <entityField>#ENTITY</entityField>
+      <view>ForecastFilter_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/MemberDrawer_view/MemberDrawer_view.aod b/neonView/MemberDrawer_view/MemberDrawer_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..9f540b690679e26cecec5e401337be0754b4da0e
--- /dev/null
+++ b/neonView/MemberDrawer_view/MemberDrawer_view.aod
@@ -0,0 +1,18 @@
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>MemberDrawer_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <drawerLayout>
+      <name>layout</name>
+      <layoutCaption>Salesproject member</layoutCaption>
+    </drawerLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>9210dae5-1587-43f2-875b-5136bf5976bf</name>
+      <entityField>#ENTITY</entityField>
+      <view>MemberFilter_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/ClassificationAdminMain_view/ClassificationAdminMain_view.aod b/neonView/OfferDrawer_view/OfferDrawer_view.aod
similarity index 62%
rename from neonView/ClassificationAdminMain_view/ClassificationAdminMain_view.aod
rename to neonView/OfferDrawer_view/OfferDrawer_view.aod
index 638e8eede21fdedb968481dfb9b658c802874c47..26c58377bbdf76ef991b55265e93046b1ce3398c 100644
--- a/neonView/ClassificationAdminMain_view/ClassificationAdminMain_view.aod
+++ b/neonView/OfferDrawer_view/OfferDrawer_view.aod
@@ -1,17 +1,18 @@
 <?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
-  <name>ClassificationAdminMain_view</name>
+  <name>OfferDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
-    <boxLayout>
+    <drawerLayout>
       <name>layout</name>
-    </boxLayout>
+      <layoutCaption>Offers</layoutCaption>
+    </drawerLayout>
   </layout>
   <children>
     <neonViewReference>
-      <name>ce2fe9f5-b504-45fb-9cf0-be394f7aa901</name>
-      <entityField>ClassificationsAdmin</entityField>
-      <view>ClassificationAdminTree_view</view>
+      <name>9ace1633-8aec-4bd7-a4e2-9bd7ef6b0d5a</name>
+      <entityField>#ENTITY</entityField>
+      <view>OfferFilter_view</view>
     </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/OfferitemFilter_view/OfferitemFilter_view.aod b/neonView/OfferitemFilter_view/OfferitemFilter_view.aod
index 3c8f81ddc0b662f5ec91d7fb6e840514ea785108..0b01196b5ffa3fb8cfc3dc41bbbe8df48e562bda 100644
--- a/neonView/OfferitemFilter_view/OfferitemFilter_view.aod
+++ b/neonView/OfferitemFilter_view/OfferitemFilter_view.aod
@@ -1,56 +1,60 @@
-<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
-  <name>OfferitemFilter_view</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <filterable v="true" />
-  <layout>
-    <boxLayout>
-      <name>layout</name>
-    </boxLayout>
-  </layout>
-  <children>
-    <treeTableViewTemplate>
-      <name>OfferitemsTreeTable</name>
-      <parentField>ASSIGNEDTO</parentField>
-      <entityField>#ENTITY</entityField>
-      <columns>
-        <neonTableColumn>
-          <name>91e85f61-5e5d-48f8-aeb1-a5740ec07e25</name>
-          <entityField>ITEMPOSITION</entityField>
-        </neonTableColumn>
-        <neonTableColumn>
-          <name>0d896874-cdb1-42bb-8a47-8ee61def6177</name>
-          <entityField>PRODUCT_ID</entityField>
-        </neonTableColumn>
-        <neonTableColumn>
-          <name>0b493fd0-d94d-4bfa-8533-ff2ad4af7ffb</name>
-          <entityField>QUANTITY</entityField>
-        </neonTableColumn>
-        <neonTableColumn>
-          <name>917406b8-f030-417d-a961-f391655526ec</name>
-          <entityField>UNIT</entityField>
-        </neonTableColumn>
-        <neonTableColumn>
-          <name>14da5a9f-4fed-4977-aec0-823ab665e1cb</name>
-          <entityField>PRICE</entityField>
-        </neonTableColumn>
-        <neonTableColumn>
-          <name>25d9f682-eb5f-4d96-a040-c3f4522affe7</name>
-          <entityField>DISCOUNT</entityField>
-        </neonTableColumn>
-        <neonTableColumn>
-          <name>9e2bcb7e-b042-4f13-946c-0a6422412975</name>
-          <entityField>VAT</entityField>
-        </neonTableColumn>
-        <neonTableColumn>
-          <name>7a3b3ce6-a651-4a2a-acfa-0e990fb0b041</name>
-          <entityField>OPTIONAL</entityField>
-        </neonTableColumn>
-        <neonTableColumn>
-          <name>e43213db-8867-495f-8305-3472a8906222</name>
-          <entityField>TotalPrice</entityField>
-        </neonTableColumn>
-      </columns>
-    </treeTableViewTemplate>
-  </children>
-</neonView>
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>OfferitemFilter_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterable v="true" />
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <treeTableViewTemplate>
+      <name>OfferitemsTreeTable</name>
+      <parentField>ASSIGNEDTO</parentField>
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>91e85f61-5e5d-48f8-aeb1-a5740ec07e25</name>
+          <entityField>ITEMPOSITION</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>0d896874-cdb1-42bb-8a47-8ee61def6177</name>
+          <entityField>PRODUCT_ID</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>0b493fd0-d94d-4bfa-8533-ff2ad4af7ffb</name>
+          <entityField>QUANTITY</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>917406b8-f030-417d-a961-f391655526ec</name>
+          <entityField>UNIT</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>14da5a9f-4fed-4977-aec0-823ab665e1cb</name>
+          <entityField>PRICE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>25d9f682-eb5f-4d96-a040-c3f4522affe7</name>
+          <entityField>DISCOUNT</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>9e2bcb7e-b042-4f13-946c-0a6422412975</name>
+          <entityField>VAT</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>7a3b3ce6-a651-4a2a-acfa-0e990fb0b041</name>
+          <entityField>OPTIONAL</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>e43213db-8867-495f-8305-3472a8906222</name>
+          <entityField>TotalPrice</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>ee165147-d91b-4d87-bd8a-90428d6f52be</name>
+          <entityField>INFO</entityField>
+        </neonTableColumn>
+      </columns>
+    </treeTableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod b/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod
index ca1524850be726abbc34d28b8cbaa207d6f9b5fa..e6db91d75ca21de791e1f8d3b2a297c8368e58f6 100644
--- a/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod
+++ b/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod
@@ -19,10 +19,6 @@
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
-        <entityFieldLink>
-          <name>7aa0ce6f-370c-4f50-8498-fd5768e0859c</name>
-          <entityField>CONDTYPE</entityField>
-        </entityFieldLink>
         <entityFieldLink>
           <name>dd33df7a-82e6-49a8-b35f-99d0187970e3</name>
           <entityField>CONDITION</entityField>
diff --git a/neonView/SalesprojectClassificationAttribute_view/SalesprojectClassificationAttribute_view.aod b/neonView/SalesprojectClassificationAttribute_view/SalesprojectClassificationAttribute_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..12ee08acd9ac1f2a9193b15bedb3c9a43fa9b699
--- /dev/null
+++ b/neonView/SalesprojectClassificationAttribute_view/SalesprojectClassificationAttribute_view.aod
@@ -0,0 +1,26 @@
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>SalesprojectClassificationAttribute_view</name>
+  <title>Bewertung</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+      <direction>HORIZONTAL</direction>
+      <maxDirectionElements v="2" />
+      <autoHeight v="false" />
+    </boxLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>793ed21a-147f-4ca0-a86a-ddbf79db92b6</name>
+      <entityField>Classifications</entityField>
+      <view>ClassificationDrawer_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>e54114a1-3031-47f5-b27b-9774fc5225c5</name>
+      <entityField>Attributes</entityField>
+      <view>AttributeRelationTreeDrawer_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/SalesprojectClassification_view/SalesprojectClassification_view.aod b/neonView/SalesprojectClassification_view/SalesprojectClassification_view.aod
index 465ac261fdfb3beb8426b1a60871c9d3fb73eac5..f7cbf462fa1591102a186115c4c422524d288ef5 100644
--- a/neonView/SalesprojectClassification_view/SalesprojectClassification_view.aod
+++ b/neonView/SalesprojectClassification_view/SalesprojectClassification_view.aod
@@ -20,7 +20,7 @@
       </fields>
     </scoreCardViewTemplate>
     <neonViewReference>
-      <name>dab87547-93e4-43d4-94c9-b584f5bb8502</name>
+      <name>e8de8288-df16-4deb-9ce0-6554a669724f</name>
       <entityField>Classifications</entityField>
       <view>ClassificationTree_view</view>
     </neonViewReference>
diff --git a/neonView/SalesprojectMain_view/SalesprojectMain_view.aod b/neonView/SalesprojectMain_view/SalesprojectMain_view.aod
index 6285a972c32476845a0474613b6fd66df742099b..b10c6e54996d3441746a4558e3851b6f50bd689d 100644
--- a/neonView/SalesprojectMain_view/SalesprojectMain_view.aod
+++ b/neonView/SalesprojectMain_view/SalesprojectMain_view.aod
@@ -1,83 +1,48 @@
-<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
-  <name>SalesprojectMain_view</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <layout>
-    <masterSlaveLayout>
-      <name>layout</name>
-      <master>04b5a305-b2a6-481a-83a5-1d94bee08143</master>
-    </masterSlaveLayout>
-  </layout>
-  <children>
-    <neonViewReference>
-      <name>04b5a305-b2a6-481a-83a5-1d94bee08143</name>
-      <entityField>#ENTITY</entityField>
-      <view>SalesprojectPreview_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>e0bc8b4b-7def-4fc7-9c07-132e4fb25c29</name>
-      <entityField>Activities</entityField>
-      <view>ActivityFilter_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>10252b5c-3620-4200-9827-f53ba35b5c2f</name>
-      <entityField>Tasks</entityField>
-      <view>TaskFilter_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>a2e010e7-434c-4188-be41-01672b9ccd25</name>
-      <entityField>#ENTITY</entityField>
-      <view>SalesprojectClassification_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>9dbe03b3-e5d3-4db8-b542-506b13322d4f</name>
-      <entityField>Forecasts</entityField>
-      <view>ForecastFilter_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>8986df12-88fc-49a8-9e48-f4c1f371532f</name>
-      <entityField>#ENTITY</entityField>
-      <view>SalesprojectMilestone_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>5d7248e8-3f3e-4262-8f13-6d5eff7165c1</name>
-      <entityField>Competitions</entityField>
-      <view>CompetitionFilter_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>4e126e3b-6a11-4229-becf-62268ce2df64</name>
-      <entityField>SalesprojectSources</entityField>
-      <view>SalesprojectSourceFilter_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>b1deae1b-c39a-48bd-9221-ed4153ee8ec9</name>
-      <entityField>Offers</entityField>
-      <view>OfferFilter_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>dafb2a9c-c192-46e2-a233-0799b694ed7d</name>
-      <entityField>Members</entityField>
-      <view>MemberFilter_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>c0027b4d-c014-4053-a595-daad9a73ad5c</name>
-      <entityField>Timetrackings</entityField>
-      <view>TimetrackingFilter_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>9c98cef0-f9dd-40a7-a9c9-eb4e741286d2</name>
-      <entityField>AttributeTree</entityField>
-      <view>AttributeRelationTree_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>0a3f2444-8d91-41e3-8f4d-19a6013c29c5</name>
-      <entityField>Documents</entityField>
-      <view>DocumentFilter_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>6ed5fc92-1056-418f-a0b7-3d55414efe3a</name>
-      <entityField>LogHistoryConsumer</entityField>
-      <view>LogHistoryFilter_view</view>
-    </neonViewReference>
-  </children>
-</neonView>
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>SalesprojectMain_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <masterSlaveLayout>
+      <name>layout</name>
+      <master>04b5a305-b2a6-481a-83a5-1d94bee08143</master>
+    </masterSlaveLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>04b5a305-b2a6-481a-83a5-1d94bee08143</name>
+      <entityField>#ENTITY</entityField>
+      <view>SalesprojectPreview_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>57b93e84-fcb9-4f9d-bbad-1d7fdf16cc77</name>
+      <entityField>#ENTITY</entityField>
+      <view>SalesprojectMemberActivity_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>8a83afee-e02c-4714-9641-13b62c95cea1</name>
+      <entityField>#ENTITY</entityField>
+      <view>SalesprojectMilestoneSource_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>1cd0f7cc-bda9-40b1-ba46-7bdd28c0bef2</name>
+      <entityField>#ENTITY</entityField>
+      <view>SalesprojectClassificationAttribute_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>16ef2fde-0b5f-4545-b065-80738b2388fc</name>
+      <entityField>#ENTITY</entityField>
+      <view>SalesprojectOfferForecast_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>1ff890f4-58e1-441f-a714-1faabbf3744b</name>
+      <entityField>#ENTITY</entityField>
+      <view>SalesprojectTimeDocComp_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>6ed5fc92-1056-418f-a0b7-3d55414efe3a</name>
+      <entityField>LogHistoryConsumer</entityField>
+      <view>LogHistoryFilter_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/SalesprojectMemberActivity_view/SalesprojectMemberActivity_view.aod b/neonView/SalesprojectMemberActivity_view/SalesprojectMemberActivity_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..fbe4c90ef72d87bd581912c5f65b4f7b0aef6532
--- /dev/null
+++ b/neonView/SalesprojectMemberActivity_view/SalesprojectMemberActivity_view.aod
@@ -0,0 +1,24 @@
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>SalesprojectMemberActivity_view</name>
+  <title>Projektteam und Aktivitäten</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+      <autoHeight v="false" />
+    </boxLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>5e9b2286-227e-494d-a252-be29a50a093a</name>
+      <entityField>Activities</entityField>
+      <view>ActivityDrawer_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>ebf752f4-653d-4de3-9c81-c3e6ef692c48</name>
+      <entityField>Members</entityField>
+      <view>MemberDrawer_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/SalesprojectMilestoneSource_view/SalesprojectMilestoneSource_view.aod b/neonView/SalesprojectMilestoneSource_view/SalesprojectMilestoneSource_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..af24daab68b399092e28a9f2eb2a119295bcea46
--- /dev/null
+++ b/neonView/SalesprojectMilestoneSource_view/SalesprojectMilestoneSource_view.aod
@@ -0,0 +1,23 @@
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>SalesprojectMilestoneSource_view</name>
+  <title>Meilensteine und Kontaktpunkte</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>4f6c1764-1a86-45c7-aa70-c109d20f0fb2</name>
+      <entityField>#ENTITY</entityField>
+      <view>SalesprojectMilestone_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>7126a87f-4a78-462b-ac35-a3fb68afedcd</name>
+      <entityField>SalesprojectSources</entityField>
+      <view>SalesprojectSourceDrawer_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/SalesprojectOfferForecast_view/SalesprojectOfferForecast_view.aod b/neonView/SalesprojectOfferForecast_view/SalesprojectOfferForecast_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..1dd424987fa8f479dfb515eb3ab28ab6dc8e619a
--- /dev/null
+++ b/neonView/SalesprojectOfferForecast_view/SalesprojectOfferForecast_view.aod
@@ -0,0 +1,23 @@
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>SalesprojectOfferForecast_view</name>
+  <title>Angebot und Forecast</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>c399a9ac-e0ad-490c-8ffb-247fc806233b</name>
+      <entityField>Forecasts</entityField>
+      <view>ForecastDrawer_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>74772673-7bf8-4e9c-8e61-d798c275c180</name>
+      <entityField>Offers</entityField>
+      <view>OfferDrawer_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/SalesprojectSourceDrawer_view/SalesprojectSourceDrawer_view.aod b/neonView/SalesprojectSourceDrawer_view/SalesprojectSourceDrawer_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..35f94f37719cbcba5ad3e05deb4e6b479e1447f1
--- /dev/null
+++ b/neonView/SalesprojectSourceDrawer_view/SalesprojectSourceDrawer_view.aod
@@ -0,0 +1,18 @@
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>SalesprojectSourceDrawer_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <drawerLayout>
+      <name>layout</name>
+      <layoutCaption>Touchpoints</layoutCaption>
+    </drawerLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>48334450-993a-4922-b314-271a98d85abe</name>
+      <entityField>#ENTITY</entityField>
+      <view>SalesprojectSourceFilter_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/SalesprojectSourcePreview_view/SalesprojectSourcePreview_view.aod b/neonView/SalesprojectSourcePreview_view/SalesprojectSourcePreview_view.aod
index 15e04bd2e1d58f9d7b429e4f188ba4ba7f1f2789..b66ef9b3fd6ae3f9f9ef50b23630e3bf97f4701d 100644
--- a/neonView/SalesprojectSourcePreview_view/SalesprojectSourcePreview_view.aod
+++ b/neonView/SalesprojectSourcePreview_view/SalesprojectSourcePreview_view.aod
@@ -12,18 +12,19 @@
     <cardViewTemplate>
       <name>Header</name>
       <titleField>SOURCE</titleField>
-      <descriptionField>INFO</descriptionField>
+      <descriptionField>ENTRYDATE</descriptionField>
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
       <name>Info</name>
       <showDrawer v="true" />
-      <drawerCaption>Details</drawerCaption>
+      <drawerCaption>Description</drawerCaption>
+      <hideLabels v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
         <entityFieldLink>
-          <name>7c61ec34-3206-4dba-96cf-24fe0112bf7b</name>
-          <entityField>ENTRYDATE</entityField>
+          <name>06422231-b584-4573-a9b4-eb42f8500aca</name>
+          <entityField>INFO</entityField>
         </entityFieldLink>
       </fields>
     </genericViewTemplate>
diff --git a/neonView/SalesprojectTimeDocComp_view/SalesprojectTimeDocComp_view.aod b/neonView/SalesprojectTimeDocComp_view/SalesprojectTimeDocComp_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..770985b37d98c8663bce5182ea1ab133a5139718
--- /dev/null
+++ b/neonView/SalesprojectTimeDocComp_view/SalesprojectTimeDocComp_view.aod
@@ -0,0 +1,30 @@
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>SalesprojectTimeDocComp_view</name>
+  <title>Further informations</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+      <direction>HORIZONTAL</direction>
+      <maxDirectionElements v="2" />
+    </boxLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>0e085746-ca89-4afa-b83a-30af959d7ddb</name>
+      <entityField>Timetrackings</entityField>
+      <view>TimetrackingDrawer_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>baccab92-37f1-4a33-9662-771323996adf</name>
+      <entityField>Documents</entityField>
+      <view>DocumentDrawer_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>4dcc3fdd-6683-435c-95c1-a59597fc3e71</name>
+      <entityField>Competitions</entityField>
+      <view>CompetitionDrawer_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/TimetrackingDrawer_view/TimetrackingDrawer_view.aod b/neonView/TimetrackingDrawer_view/TimetrackingDrawer_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..eaaa35e64364e5872a26a37e262849ddabd47966
--- /dev/null
+++ b/neonView/TimetrackingDrawer_view/TimetrackingDrawer_view.aod
@@ -0,0 +1,18 @@
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>TimetrackingDrawer_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <drawerLayout>
+      <name>layout</name>
+      <layoutCaption>Timetracking</layoutCaption>
+    </drawerLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>463458e6-fb6a-4550-b4b4-04b61969f9f2</name>
+      <entityField>#ENTITY</entityField>
+      <view>TimetrackingFilter_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/process/ActivityTask_lib/process.js b/process/ActivityTask_lib/process.js
index 545d8bb17679a992a5e8813021dff563ed0d720e..d502802ce34c25af3f60529f0861dd85fd1b758e 100644
--- a/process/ActivityTask_lib/process.js
+++ b/process/ActivityTask_lib/process.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.vars");
 import("system.util");
 import("system.datetime");
diff --git a/process/Campaign_lib/process.js b/process/Campaign_lib/process.js
index 73354a0fe499f0578cc2de405c312b5e3992e444..5dd0033fc0effaa1b558587e4dcf852c66180876 100644
--- a/process/Campaign_lib/process.js
+++ b/process/Campaign_lib/process.js
@@ -192,7 +192,7 @@ CampaignUtils.getCampaignStartDate = function(pCapmaignId)
 {
     let campaignIdCondition = SqlCondition.begin()
                                          .andPrepare("CAMPAIGNSTEP.CAMPAIGN_ID", pCapmaignId);
-    return db.cell(campaignIdCondition.buildSql("SELECT DATE_START, SORTING FROM ADITO.CAMPAIGNSTEP", "1=2", "order by SORTING ASC"));
+    return db.cell(campaignIdCondition.buildSql("SELECT DATE_START, SORTING FROM CAMPAIGNSTEP", "1=2", "order by SORTING ASC"));
 }
 
 /**
diff --git a/process/Classification_lib/process.js b/process/Classification_lib/process.js
index a3b74a2a54fc68a4df123cb29fef178db2f488c3..cb22a4d300ddb1e1f827dbcde5a0c0d04eb1cb3a 100644
--- a/process/Classification_lib/process.js
+++ b/process/Classification_lib/process.js
@@ -23,18 +23,15 @@ function ClassificationUtils() {}
 ClassificationUtils.getScore = function(pClassificationType, pObjectType, pObjectRowid, pClassificationGroup)
 {
     var score = db.table(SqlCondition.begin()
-            .andPrepareIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP", pClassificationGroup)
-            .andPrepare("CLASSIFICATIONTYPE.CLASSIFICATIONTYPE", pClassificationType)
-            .andSqlCondition(SqlCondition.begin().orPrepare("CLASSIFICATION.OBJECT_TYPE", pObjectType)
-                                                     .or("CLASSIFICATION.OBJECT_TYPE is null"))
-            .andSqlCondition(SqlCondition.begin().orPrepare("CLASSIFICATION.OBJECT_ROWID", pObjectRowid)
-                                                     .or("CLASSIFICATION.OBJECT_ROWID is null"))
-            .buildSql("select CLASSIFICATIONTYPE.CLASSIFICATIONGROUP, case when sum(score) is not null then sum(score) else 0 end from CLASSIFICATIONTYPE \n\
-                        left join Classification on CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPEID \n\
-                        left join CLASSIFICATIONSCORE on CLASSIFICATIONSCORE_ID = CLASSIFICATIONSCOREID",
-            "1=2",
-            "group by CLASSIFICATIONTYPE.CLASSIFICATIONGROUP order by CLASSIFICATIONTYPE.CLASSIFICATIONGROUP asc"));
-
+                                     .andPrepare("CLASSIFICATIONTYPE.CLASSIFICATIONTYPE", pClassificationType)
+                                     .andPrepareIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP", pClassificationGroup)
+                                     .buildSql("select CLASSIFICATIONTYPE.CLASSIFICATIONGROUP, case when sum(score) is not null then sum(score) else 0 end from CLASSIFICATIONTYPE "
+                                                + db.translateStatement(SqlCondition.begin()
+                                                                                    .andPrepare("CLASSIFICATION.OBJECT_TYPE", pObjectType)
+                                                                                    .andPrepare("CLASSIFICATION.OBJECT_ROWID", pObjectRowid)
+                                                                                    .buildSql("left join CLASSIFICATION on CLASSIFICATIONTYPEID = CLASSIFICATIONTYPE_ID and", "1=2", "", false))
+                                                + "left join CLASSIFICATIONSCORE on CLASSIFICATIONSCORE_ID = CLASSIFICATIONSCOREID", "1=2",
+                                                "group by CLASSIFICATIONGROUP order by CLASSIFICATIONGROUP"))
     var scores = {};
     score.forEach(function(pRow)
     {
diff --git a/process/DataCaching_lib/process.js b/process/DataCaching_lib/process.js
index db66f89ed47b14e41b745621421de2b554115e27..b154d8f222b03fe30815c11695c22885c1ae9896 100644
--- a/process/DataCaching_lib/process.js
+++ b/process/DataCaching_lib/process.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.vars");
 import("system.project");
 
diff --git a/process/Email_lib/process.js b/process/Email_lib/process.js
index d989322ceebd8950e757df4344cdeed8c29d2863..c43437496fa0846d3a518ca3a744fa2fea84c6df 100644
--- a/process/Email_lib/process.js
+++ b/process/Email_lib/process.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.translate");
 import("system.text");
 import("system.db");
diff --git a/process/Keyword_lib/process.js b/process/Keyword_lib/process.js
index f640f2bd4b0927487b078d3be545fe7f98c6a93b..cfbdd41b26221e321be5d66857b72a28f8ba9136 100644
--- a/process/Keyword_lib/process.js
+++ b/process/Keyword_lib/process.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("KeywordRegistry_basic");
 import("KeywordData_lib");
 import("system.vars");
diff --git a/process/Offer_lib/process.js b/process/Offer_lib/process.js
index d4f7dc14bb64c57cf689a103d74e5be13c5c61d7..1fb2ad442fd2b6f4800dc0cfb2cb9f4500b2c69c 100644
--- a/process/Offer_lib/process.js
+++ b/process/Offer_lib/process.js
@@ -148,7 +148,7 @@ OfferUtils.openOfferReport = function (pOfferID)
     var offerItemSql = SqlCondition.begin()
         .andPrepare("OFFERITEM.OFFER_ID", pOfferID)
         .buildSql(
-            "select " + offerItemFields.join(", ") + " from OFFERITEM join PRODUCT on PRODUCT.PRODUCTID = OFFERITEM.PRODUCT_ID", 
+            "select " + offerItemFields.join(", ") + " from OFFERITEM left join PRODUCT on PRODUCT.PRODUCTID = OFFERITEM.PRODUCT_ID", 
             "1 = 0"
         );
     var itemData = db.table(offerItemSql);
@@ -276,7 +276,7 @@ OfferUtils.openOfferReport = function (pOfferID)
             "OFFER_FOOTER", 
             "OFFERITEM_QUANTITY", 
             "OFFERITEM_PRICE", 
-            "OFFERITEM_DISCOUNT", //14
+            "OFFERITEM_DISCOUNT", //13
             "OFFER_VERSNR", 
             "OFFER_OFFERCODE", 
             "OFFERITEM_VAT", 
diff --git a/process/getDocxDocument_serverProcess/process.js b/process/getDocxDocument_serverProcess/process.js
index 8fd2ad75279694ea9c067facd3d94529a8580c1e..43a42089fbc78d4874774963a932817151c38e57 100644
--- a/process/getDocxDocument_serverProcess/process.js
+++ b/process/getDocxDocument_serverProcess/process.js
@@ -1,7 +1,6 @@
 import("system.result");
 import("system.vars");
 import("system.swing");
-import("system.logging");
 import("system.fileIO");
 import("system.util");