diff --git a/.aditoprj/blueprints/CreateObservationActionBlueprint.xml b/.aditoprj/blueprints/CreateObservationActionBlueprint.xml
new file mode 100644
index 0000000000000000000000000000000000000000..21f989f10c424baeccf3e1aa48e95b9d32652082
--- /dev/null
+++ b/.aditoprj/blueprints/CreateObservationActionBlueprint.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<blueprint name="Create ObserveActions">
+    <type>entityActionField</type>
+    <parameters>
+    </parameters>
+    <data>
+        <document name="context"><![CDATA[
+            <entity VERSION="1.3.17">
+               <entityFields>
+					<entityActionGroup>
+						<name>observeActionGroup</name>
+						<children>
+							<entityActionField>
+								<name>observe</name>
+								<title>Observe</title>
+								<onActionProcess>import("Observation_lib");
+
+Observation.insertAction();</onActionProcess>
+								<isObjectAction v="true" />
+								<iconId>VAADIN:EYE</iconId>
+								<stateProcess>import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (!Observation.countObservations())
+{
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+}
+else
+{
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+}</stateProcess>
+								<titleProcess>import("system.result");
+import("Observation_lib");
+import("system.vars");
+
+result.string(Observation.observeActionTitle(vars.get("$sys.selection")));
+</titleProcess>
+							</entityActionField>
+							<entityActionField>
+								<name>cancelObservation</name>
+								<onActionProcess>import("Observation_lib");
+
+Observation.cancelAction();</onActionProcess>
+								<iconId>VAADIN:EYE_SLASH</iconId>
+								<stateProcess>import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (Observation.countObservations())
+{
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+}
+else
+{
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+}</stateProcess>
+								<titleProcess>import("system.result");
+import("system.vars");
+import("Observation_lib");
+
+result.string(Observation.cancelActionTitle(vars.get("$sys.selection")));
+</titleProcess>
+							</entityActionField>
+						</children>
+					</entityActionGroup>
+               </entityFields>
+             </entity>
+    ]]></document>
+    </data>
+</blueprint>
diff --git a/.aditoprj/ignoredScanServiceTasks.json b/.aditoprj/ignoredScanServiceTasks.json
index bad77c8c7df0345b93811fa627e1ca06bf884517..2c5c825c80413c60535787fc709ee0af872ec9d8 100644
--- a/.aditoprj/ignoredScanServiceTasks.json
+++ b/.aditoprj/ignoredScanServiceTasks.json
@@ -24,6 +24,42 @@
       "description": "There is no index for the column \"TESTING_CONTACT_ID\" in the table \"BULKMAIL\" [59]",
       "groupName": "nb-tasklist-warning"
     },
+    {
+      "target": "aliasDefinition/_____SYSTEMALIAS/_____SYSTEMALIAS.aod",
+      "line": -1,
+      "description": "The table \"ASYS_AUDIT\" has no primary key [65]",
+      "groupName": "nb-tasklist-warning"
+    },
+    {
+      "target": "aliasDefinition/_____SYSTEMALIAS/_____SYSTEMALIAS.aod",
+      "line": -1,
+      "description": "The table \"ASYS_COLLECTOR_DATA\" has no primary key [65]",
+      "groupName": "nb-tasklist-warning"
+    },
+    {
+      "target": "aliasDefinition/_____SYSTEMALIAS/_____SYSTEMALIAS.aod",
+      "line": -1,
+      "description": "The table \"ASYS_UIDRESOLVER\" has no primary key [65]",
+      "groupName": "nb-tasklist-warning"
+    },
+    {
+      "target": "aliasDefinition/_____SYSTEMALIAS/_____SYSTEMALIAS.aod",
+      "line": -1,
+      "description": "The table \"ASYS_VERSIONHISTORY\" has no primary key [65]",
+      "groupName": "nb-tasklist-warning"
+    },
+    {
+      "target": "aliasDefinition/_____SYSTEMALIAS/_____SYSTEMALIAS.aod",
+      "line": -1,
+      "description": "The table \"ASYS_XMPP_HISTORY\" has no primary key [65]",
+      "groupName": "nb-tasklist-warning"
+    },
+    {
+      "target": "aliasDefinition/_____SYSTEMALIAS/_____SYSTEMALIAS.aod",
+      "line": -1,
+      "description": "The table \"ASYS_XMPP_OFFLINESTANZA\" has no primary key [65]",
+      "groupName": "nb-tasklist-warning"
+    },
     {
       "target": "aliasDefinition/_____SYSTEMALIAS/_____SYSTEMALIAS.aod",
       "line": -1,
diff --git a/.aditoprj/project.version b/.aditoprj/project.version
index b4940e7b136a1e7dc45d5afe6100e622a0deb61d..94b3c6aab89bbcc9e3c5433f62e4fa30fa7bee5b 100644
--- a/.aditoprj/project.version
+++ b/.aditoprj/project.version
@@ -1,3 +1,3 @@
 #This file is generated by ADITO designer. Do NOT delete or modify!
-#Tue Sep 08 15:42:02 CEST 2020
-version=6.2.0
+#Thu Dec 17 10:59:19 CET 2020
+version=6.2.1
diff --git a/.gitignore b/.gitignore
index bd9db83469ecf1751dacf06f8a70f5caffc39ff0..de3ab422c43067d6538bd1da7eaa9663d5dc2709 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,4 +5,5 @@
 /others/db_changes/liqui_update.bat
 /others/db_changes/liqui_reset.ps1
 /others/jsdocOut
-/userhelp
\ No newline at end of file
+/userhelp
+/system/dev_local
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2020.0.2/Memberroles/extend_keword_memberroles.xml b/.liquibase/Data_alias/basic/2020.0.2/Memberroles/extend_keword_memberroles.xml
index 05e3ec24cb9cdeac9f10dabc1fdd674b7650ef1f..83e825733c4970c00e13f6f072a06b263a858869 100644
--- a/.liquibase/Data_alias/basic/2020.0.2/Memberroles/extend_keword_memberroles.xml
+++ b/.liquibase/Data_alias/basic/2020.0.2/Memberroles/extend_keword_memberroles.xml
@@ -1,6 +1,6 @@
 <?xml version="1.1" encoding="UTF-8" standalone="no"?>
 <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
-    <changeSet author="s.pongratz" id="c30bc71b-fcef-4ae6-9356-207adaca9dbd">
+    <changeSet author="s.pongratz" id="28627941-6c9b-46e8-922a-b4660b33723c">
         <!--Atribute-->
         <insert tableName="AB_KEYWORD_ATTRIBUTE">
             <column name="AB_KEYWORD_ATTRIBUTEID" value="08fcb5db-531d-4a83-8c6e-b9c9c95dcb16"/>
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Address/addLatLonIndizes.xml b/.liquibase/Data_alias/basic/2021.0.0/Address/addLatLonIndizes.xml
new file mode 100644
index 0000000000000000000000000000000000000000..89673dc39093067eeb6a8b62ae0771f92622f68a
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Address/addLatLonIndizes.xml
@@ -0,0 +1,13 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="j.goderbauer" id="401ad958-abfd-4002-a2fe-f803e0e72d6c">
+        <createIndex indexName="IDX_ADDRESS_LAT" tableName="ADDRESS">
+            <column name="LAT"/>
+        </createIndex>
+        <createIndex indexName="IDX_ADDRESS_LON" tableName="ADDRESS">
+            <column name="LON"/>
+        </createIndex>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Checklists/changelog.xml b/.liquibase/Data_alias/basic/2021.0.0/Checklists/changelog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d70130484a0b8b17469d68e131e04b73f5ace2f7
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Checklists/changelog.xml
@@ -0,0 +1,10 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <include relativeToChangelogFile="true" file="create_checklist.xml"/>
+    <include relativeToChangelogFile="true" file="create_checklistentry.xml"/>
+    <include relativeToChangelogFile="true" file="create_checklistentryvalue.xml"/>
+    <include relativeToChangelogFile="true" file="create_checklistentrytype_keywords.xml"/>
+    <include relativeToChangelogFile="true" file="create_indizes.xml"/>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Checklists/create_checklist.xml b/.liquibase/Data_alias/basic/2021.0.0/Checklists/create_checklist.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f3da3a0219c5ee2b303a1fc0511245482167c133
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Checklists/create_checklist.xml
@@ -0,0 +1,51 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.1.xsd">
+    <changeSet author="d.tran" id="e7dcb68c-cb64-4f67-914b-f40acb138569">
+        <createTable tableName="CHECKLIST">
+            <column name="CHECKLISTID" type="CHAR(36)">
+                <constraints nullable="false" primaryKey="true" primaryKeyName="PK_CHECKLIST_CHECKLISTID"/>
+            </column>
+            <column name="USER_NEW" type="VARCHAR(50)"/>
+            <column name="USER_EDIT" type="VARCHAR(50)"/>
+            <column name="DATE_NEW" type="TIMESTAMP"/>
+            <column name="DATE_EDIT" type="TIMESTAMP"/>
+        </createTable>
+    </changeSet>
+    <changeSet author="d.tran" id="b4001d82-7e72-4993-9971-8d2d805f2102">
+        <insert tableName="CHECKLIST">
+            <column name="CHECKLISTID" value="cb340ed2-ea49-45bb-a7a0-1a4f88d6e138"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:10:34"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLIST">
+            <column name="CHECKLISTID" value="c2bb548c-2f0c-45be-9e49-2ebf86bd6ab8"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:36:11"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLIST">
+            <column name="CHECKLISTID" value="c7b847b1-934a-4592-8c10-53da1d43dc4c"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:38:49"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLIST">
+            <column name="CHECKLISTID" value="0f95ce44-3b0d-417b-969f-f84897868558"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:41:20"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLIST">
+            <column name="CHECKLISTID" value="cb0357c9-a222-4d78-b2c5-035fffe3bb51"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:43:26"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Checklists/create_checklistentry.xml b/.liquibase/Data_alias/basic/2021.0.0/Checklists/create_checklistentry.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c5994172bce5983f736933568934c078e53f873b
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Checklists/create_checklistentry.xml
@@ -0,0 +1,251 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.1.xsd">
+    <changeSet author="d.tran" id="88759560-1ddc-4a4f-87cb-c23a5a77a2d9">
+        <createTable tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" type="CHAR(36)">
+                <constraints nullable="false" primaryKey="true" primaryKeyName="PK_CHECKLISTENTRY_CHECKLISTENTRYID"/>
+            </column>
+            <column name="CHECKLIST_ID" type="CHAR(36)">
+                <constraints nullable="false"/>
+            </column>
+            <column name="TITLE" type="VARCHAR(100)"/>
+            <column name="TYPE" type="VARCHAR(10)"/>
+            <column name="USER_NEW" type="VARCHAR(50)"/>
+            <column name="USER_EDIT" type="VARCHAR(50)"/>
+            <column name="DATE_NEW" type="TIMESTAMP"/>
+            <column name="DATE_EDIT" type="TIMESTAMP"/>
+        </createTable>
+    </changeSet>
+    <changeSet author="d.tran" id="783f74da-d481-4bd6-991a-a70d1bb7ee3b">
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="4197eed7-ff5c-4908-8d39-c1e5f2ff4ee6"/>
+            <column name="CHECKLIST_ID" value="cb340ed2-ea49-45bb-a7a0-1a4f88d6e138"/>
+            <column name="TITLE" value="salesprojectVolume"/>
+            <column name="TYPE" value="AUTO"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:10:34"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="69d5333a-740d-42b8-bea8-676d39de722e"/>
+            <column name="CHECKLIST_ID" value="cb340ed2-ea49-45bb-a7a0-1a4f88d6e138"/>
+            <column name="TITLE" value="Communication strategy designed"/>
+            <column name="TYPE" value="MANUAL"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:10:34"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="484e33ac-e570-4aa2-86d6-274482122037"/>
+            <column name="CHECKLIST_ID" value="cb340ed2-ea49-45bb-a7a0-1a4f88d6e138"/>
+            <column name="TITLE" value="salesprojectRoleProjManager"/>
+            <column name="TYPE" value="AUTO"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:10:34"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="3b78b8c6-acf3-4781-8fe7-da08e9d51566"/>
+            <column name="CHECKLIST_ID" value="cb340ed2-ea49-45bb-a7a0-1a4f88d6e138"/>
+            <column name="TITLE" value="salesprojectTouchpoint"/>
+            <column name="TYPE" value="AUTO"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:10:34"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="820bbd8b-4f92-4640-ac1c-4f56c963d534"/>
+            <column name="CHECKLIST_ID" value="c2bb548c-2f0c-45be-9e49-2ebf86bd6ab8"/>
+            <column name="TITLE" value="salesprojectClassificationFields"/>
+            <column name="TYPE" value="AUTO"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:36:11"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="c913d416-e671-41e4-9f8e-1c919d2a921a"/>
+            <column name="CHECKLIST_ID" value="c2bb548c-2f0c-45be-9e49-2ebf86bd6ab8"/>
+            <column name="TITLE" value="Probability checked and eventually readjusted"/>
+            <column name="TYPE" value="MANUAL"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:36:11"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="6317c21e-843e-4d71-9047-e2bb0f2521b3"/>
+            <column name="CHECKLIST_ID" value="c2bb548c-2f0c-45be-9e49-2ebf86bd6ab8"/>
+            <column name="TITLE" value="Communication strategy introduced"/>
+            <column name="TYPE" value="MANUAL"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:36:11"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="6182dade-b601-48c6-a19d-bd878b7248be"/>
+            <column name="CHECKLIST_ID" value="c2bb548c-2f0c-45be-9e49-2ebf86bd6ab8"/>
+            <column name="TITLE" value="salesprojectProjStart"/>
+            <column name="TYPE" value="AUTO"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:36:11"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="a20733c2-06b8-4de0-a1ed-89877b4ac113"/>
+            <column name="CHECKLIST_ID" value="c2bb548c-2f0c-45be-9e49-2ebf86bd6ab8"/>
+            <column name="TITLE" value="salesprojectRoleIntDist"/>
+            <column name="TYPE" value="AUTO"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:36:11"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="a7d67252-f750-4df8-b37e-75cb683d267e"/>
+            <column name="CHECKLIST_ID" value="c7b847b1-934a-4592-8c10-53da1d43dc4c"/>
+            <column name="TITLE" value="salesprojectOfferExists"/>
+            <column name="TYPE" value="AUTO"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:38:49"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="3bf30a50-d1a1-4155-831c-94a278cb70f0"/>
+            <column name="CHECKLIST_ID" value="c7b847b1-934a-4592-8c10-53da1d43dc4c"/>
+            <column name="TITLE" value="salesprojectTeamRoles"/>
+            <column name="TYPE" value="AUTO"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:38:49"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="181b32cc-bfa7-4685-a372-4736c906bf53"/>
+            <column name="CHECKLIST_ID" value="c7b847b1-934a-4592-8c10-53da1d43dc4c"/>
+            <column name="TITLE" value="salesprojectProjStart12"/>
+            <column name="TYPE" value="AUTO"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:38:49"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="8deb14ed-e41e-4757-a673-63501ef5ff1c"/>
+            <column name="CHECKLIST_ID" value="c7b847b1-934a-4592-8c10-53da1d43dc4c"/>
+            <column name="TITLE" value="Probability checked and eventually readjusted"/>
+            <column name="TYPE" value="MANUAL"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:38:49"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="7558e886-481c-47dd-845a-1a8d2e3b26c6"/>
+            <column name="CHECKLIST_ID" value="c7b847b1-934a-4592-8c10-53da1d43dc4c"/>
+            <column name="TITLE" value="Follow-up appointment(s) exists (e.g.: for workshops..)"/>
+            <column name="TYPE" value="MANUAL"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:38:49"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="7ffeda7a-e26a-4518-a8dc-c5193e07c4d3"/>
+            <column name="CHECKLIST_ID" value="0f95ce44-3b0d-417b-969f-f84897868558"/>
+            <column name="TITLE" value="Risk audit performed"/>
+            <column name="TYPE" value="MANUAL"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:41:20"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="2eadef6b-5e8c-4464-a991-9e0828c48f0c"/>
+            <column name="CHECKLIST_ID" value="0f95ce44-3b0d-417b-969f-f84897868558"/>
+            <column name="TITLE" value="Probability checked and eventually readjusted"/>
+            <column name="TYPE" value="MANUAL"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:41:20"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="7807187b-6418-448f-b8bf-d1422c154ab8"/>
+            <column name="CHECKLIST_ID" value="0f95ce44-3b0d-417b-969f-f84897868558"/>
+            <column name="TITLE" value="Workshop for project-realization planned"/>
+            <column name="TYPE" value="MANUAL"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:41:20"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="40873b4a-b23a-4b1a-a3b6-97e0b87e54de"/>
+            <column name="CHECKLIST_ID" value="0f95ce44-3b0d-417b-969f-f84897868558"/>
+            <column name="TITLE" value="Appointment for offer-agreement occured"/>
+            <column name="TYPE" value="MANUAL"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:41:20"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="40c34072-a4c5-4b2f-af1c-a00ca2838b5b"/>
+            <column name="CHECKLIST_ID" value="0f95ce44-3b0d-417b-969f-f84897868558"/>
+            <column name="TITLE" value="salesprojectOfferSent"/>
+            <column name="TYPE" value="AUTO"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:41:20"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="39666717-6438-45a4-b4f0-9ba463da6f69"/>
+            <column name="CHECKLIST_ID" value="cb0357c9-a222-4d78-b2c5-035fffe3bb51"/>
+            <column name="TITLE" value="salesprojectStatusWon"/>
+            <column name="TYPE" value="AUTO"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:43:26"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="83f406e9-258b-401f-9944-77a5b5dd5bfc"/>
+            <column name="CHECKLIST_ID" value="cb0357c9-a222-4d78-b2c5-035fffe3bb51"/>
+            <column name="TITLE" value="Contract have been signed"/>
+            <column name="TYPE" value="MANUAL"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:43:26"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="eb4f7cac-6e67-4ec5-9512-0eaa0ce50bdc"/>
+            <column name="CHECKLIST_ID" value="cb0357c9-a222-4d78-b2c5-035fffe3bb51"/>
+            <column name="TITLE" value="salesprojectProb100"/>
+            <column name="TYPE" value="AUTO"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:43:26"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRY">
+            <column name="CHECKLISTENTRYID" value="8c18a1d7-f821-4b25-bcac-4aa9ebc5b88e"/>
+            <column name="CHECKLIST_ID" value="cb0357c9-a222-4d78-b2c5-035fffe3bb51"/>
+            <column name="TITLE" value="salesprojectContractExists"/>
+            <column name="TYPE" value="AUTO"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW" valueDate="2021-01-12T08:43:26"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Checklists/create_checklistentrytype_keywords.xml b/.liquibase/Data_alias/basic/2021.0.0/Checklists/create_checklistentrytype_keywords.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c672cf365cfb73c142a96acce2e1f108d57d3ba4
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Checklists/create_checklistentrytype_keywords.xml
@@ -0,0 +1,25 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+  <changeSet author="d.tran" id="43e6595f-5d5c-40d6-8d0f-4690337fab3a">
+      <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="264b8a1c-45c8-4b41-9d11-4b6fb538b79c"/>
+            <column name="KEYID" value="MANUAL"/>
+            <column name="TITLE" value="Manually"/>
+            <column name="CONTAINER" value="ChecklistEntryType"/>
+            <column name="SORTING" valueNumeric="0"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+      <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="0af9044d-6eeb-4db0-be95-91e63a30aa19"/>
+            <column name="KEYID" value="AUTO"/>
+            <column name="TITLE" value="Automatically"/>
+            <column name="CONTAINER" value="ChecklistEntryType"/>
+            <column name="SORTING" valueNumeric="1"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+  </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Checklists/create_checklistentryvalue.xml b/.liquibase/Data_alias/basic/2021.0.0/Checklists/create_checklistentryvalue.xml
new file mode 100644
index 0000000000000000000000000000000000000000..083ea6797bba113176e8dfa2144033f66f7797d9
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Checklists/create_checklistentryvalue.xml
@@ -0,0 +1,42 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.1.xsd">
+    <changeSet author="d.tran" id="876cda94-6845-49a9-a5db-7896f7e37829">
+        <createTable tableName="CHECKLISTENTRYVALUE">
+            <column name="CHECKLISTENTRYVALUEID" type="CHAR(36)">
+                <constraints nullable="false" primaryKey="true" primaryKeyName="PK_CHECKLISTENTRYVALUE_CHECKLISTENTRYVALUEID"/>
+            </column>
+            <column name="CHECKLISTENTRY_ID" type="CHAR(36)"/>
+            <column name="OBJECT_ROWID" type="CHAR(36)"/>
+            <column name="OBJECT_TYPE" type="VARCHAR(50)"/>
+            <column name="IS_FULFILLED" type="SMALLINT"/>
+            <column name="USER_NEW" type="VARCHAR(50)"/>
+            <column name="USER_EDIT" type="VARCHAR(50)"/>
+            <column name="DATE_NEW" type="TIMESTAMP"/>
+            <column name="DATE_EDIT" type="TIMESTAMP"/>
+        </createTable>
+    </changeSet>
+    <changeSet author="d.tran" id="bfff621f-c04a-4791-892c-102f057e667f">
+        <insert tableName="CHECKLISTENTRYVALUE">
+            <column name="CHECKLISTENTRYVALUEID" value="c4dc8c1e-e291-4d3f-8b36-cd8a0960abbf"/>
+            <column name="CHECKLISTENTRY_ID" value="c913d416-e671-41e4-9f8e-1c919d2a921a"/>
+            <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
+            <column name="OBJECT_TYPE"/>
+            <column name="IS_FULFILLED" valueNumeric="0"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT" value="null"/>
+            <column name="DATE_NEW" valueDate="2021-01-22T12:05:25"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="CHECKLISTENTRYVALUE">
+            <column name="CHECKLISTENTRYVALUEID" value="e12dbddc-301f-4da5-b48d-3fabad4c8634"/>
+            <column name="CHECKLISTENTRY_ID" value="6317c21e-843e-4d71-9047-e2bb0f2521b3"/>
+            <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
+            <column name="OBJECT_TYPE"/>
+            <column name="IS_FULFILLED" valueNumeric="0"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT" value="null"/>
+            <column name="DATE_NEW" valueDate="2021-01-22T12:05:25"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Checklists/create_indizes.xml b/.liquibase/Data_alias/basic/2021.0.0/Checklists/create_indizes.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a38c8a53bced9885d71ce250a409a322fac8aebc
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Checklists/create_indizes.xml
@@ -0,0 +1,15 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="d.tran" id="90f1d603-d9b0-4c0e-be0c-8a2a1b41b472">
+        <createIndex tableName="CHECKLISTENTRY" indexName="IDX_CHKLSTENTRY_CHECKLIST_ID">
+            <column name="CHECKLIST_ID"/>
+        </createIndex>
+        <createIndex tableName="CHECKLISTENTRYVALUE" indexName="IDX_CHKLSTENTRYVAL_ROWID">
+            <column name="OBJECT_ROWID"/>
+        </createIndex>
+        <createIndex tableName="CHECKLISTENTRYVALUE" indexName="IDX_CHKLSTENTRYVAL_CHKENTRY_ID">
+            <column name="CHECKLISTENTRY_ID"/>
+        </createIndex>
+    </changeSet>
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Classification/add_ClassificationStorageOutdated.xml b/.liquibase/Data_alias/basic/2021.0.0/Classification/add_ClassificationStorageOutdated.xml
new file mode 100644
index 0000000000000000000000000000000000000000..07638236ad1666eb6055241aaa2d74dbf55cb7ba
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Classification/add_ClassificationStorageOutdated.xml
@@ -0,0 +1,18 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="b.ulrich" id="0dce5058-8b2f-43b1-8e53-03ccebe93cb8">
+        <addColumn tableName="CLASSIFICATIONSTORAGE">
+            <column name="OUTDATED" type="TINYINT" defaultValueNumeric="1"/>
+        </addColumn>
+        <update tableName="CLASSIFICATIONSTORAGE">
+            <column name="OUTDATED" valueNumeric="0"/>
+            <where>OUTDATED IS NULL</where>
+        </update>
+        <addNotNullConstraint
+            columnDataType="TINYINT"
+            columnName="OUTDATED"
+            tableName="CLASSIFICATIONTYPE"/>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Classification/add_ClassificationTypeFilterAndOutdated.xml b/.liquibase/Data_alias/basic/2021.0.0/Classification/add_ClassificationTypeFilterAndOutdated.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cea47fa1fc2189e8f15f642c5642c06d3183e186
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Classification/add_ClassificationTypeFilterAndOutdated.xml
@@ -0,0 +1,19 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="b.ulrich" id="44f49a73-7eb5-498b-a78a-96036e8e00d1">
+        <addColumn tableName="CLASSIFICATIONTYPE">
+            <column name="FILTER" type="NCLOB"/>
+            <column name="OUTDATED" type="TINYINT" defaultValueNumeric="1"/>
+        </addColumn>
+        <update tableName="CLASSIFICATIONTYPE">
+            <column name="OUTDATED" valueNumeric="0"/>
+            <where>OUTDATED IS NULL</where>
+        </update>
+        <addNotNullConstraint
+            columnDataType="TINYINT"
+            columnName="OUTDATED"
+            tableName="CLASSIFICATIONTYPE"/>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Classification/add_ClassificationTypeScorePoints.xml b/.liquibase/Data_alias/basic/2021.0.0/Classification/add_ClassificationTypeScorePoints.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d3e3a13d3d4c4e6fddf2df16a68574fef395ee38
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Classification/add_ClassificationTypeScorePoints.xml
@@ -0,0 +1,10 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="b.ulrich" id="3f1bf58e-c7cb-4b50-9b57-8d90ee1ac8b6">
+        <addColumn tableName="CLASSIFICATIONTYPE">
+            <column name="SCOREPOINTS" type="INTEGER"/>
+        </addColumn>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Classification/alter_Classification.xml b/.liquibase/Data_alias/basic/2021.0.0/Classification/alter_Classification.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7ab4bf06f68e5a0fe9fedd06ca2e64bcd49c1133
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Classification/alter_Classification.xml
@@ -0,0 +1,15 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="b.ulrich" id="2c24ff95-86dc-48fe-8997-e7641bded314">
+        <addColumn tableName="CLASSIFICATION">
+            <column name="SCOREPOINTS" type="NUMERIC(14,2)"/>
+	</addColumn> 
+        <renameColumn
+            columnDataType="CHAR(36)"  
+            newColumnName="VALUE"
+            oldColumnName="CLASSIFICATIONSCORE_ID"  
+            tableName="CLASSIFICATION"/>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Classification/alter_ClassificationGrading.xml b/.liquibase/Data_alias/basic/2021.0.0/Classification/alter_ClassificationGrading.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c10f8df9ccff89eb494396edbe2b3cb06bdeeb33
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Classification/alter_ClassificationGrading.xml
@@ -0,0 +1,12 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="b.ulrich" id="f82eebd8-62f5-446d-9b58-a48880bd077c">
+        <renameColumn
+            columnDataType="INTEGER"  
+            newColumnName="MINPERCENT"  
+            oldColumnName="MAXGRADEFORSCORE"  
+            tableName="CLASSIFICATIONGRADING"/>  
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Classification/alter_ClassificationScore.xml b/.liquibase/Data_alias/basic/2021.0.0/Classification/alter_ClassificationScore.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3c74a3b172ace4e581684b607f1b136ad476706b
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Classification/alter_ClassificationScore.xml
@@ -0,0 +1,12 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="b.ulrich" id="6bb5a765-cb8d-4c4f-8bad-76845e90cc41">
+        <renameColumn
+            columnDataType="INTEGER"  
+            newColumnName="SCOREPERCENT"  
+            oldColumnName="SCORE"  
+            tableName="CLASSIFICATIONSCORE"/>  
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Classification/changelog.xml b/.liquibase/Data_alias/basic/2021.0.0/Classification/changelog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1548d06edbea305e452a941b7e205bda2a87c17d
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Classification/changelog.xml
@@ -0,0 +1,10 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <include relativeToChangelogFile="true" file="add_ClassificationTypeFilterAndOutdated.xml"/>
+    <include relativeToChangelogFile="true" file="add_ClassificationStorageOutdated.xml"/>
+    <include relativeToChangelogFile="true" file="alter_ClassificationGrading.xml"/>
+    <include relativeToChangelogFile="true" file="add_ClassificationTypeScorePoints.xml"/>
+    <include relativeToChangelogFile="true" file="alter_ClassificationScore.xml"/>
+    <include relativeToChangelogFile="true" file="alter_Classification.xml"/>
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/2021.0.0/District/alter_district.xml b/.liquibase/Data_alias/basic/2021.0.0/District/alter_district.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d0b0bdd3c9f37e715838f7f30970b079298e70cf
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/District/alter_district.xml
@@ -0,0 +1,10 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="Gerhard Bachmaier" id="3a1bb059-c040-435b-8978-bfddb1a6e2d4">
+        <addColumn tableName="DISTRICT">
+            <column name="DISTRICT_AUTOADD"    type="SMALLINT(5)" />
+        </addColumn>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/District/alter_districtContact.xml b/.liquibase/Data_alias/basic/2021.0.0/District/alter_districtContact.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b389c64e723131b3531d7d5a503f2bd102662e10
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/District/alter_districtContact.xml
@@ -0,0 +1,13 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+  <changeSet author="Pierre Suchacek" id="9aace074-1b61-4577-ad27-bee6a498134c">
+        <addColumn tableName="DISTRICTCONTACT">
+            <column name="USER_NEW"     type="NVARCHAR(50)" />
+            <column name="USER_EDIT"    type="NVARCHAR(50)" />
+            <column name="DATE_NEW"     type="DATETIME" />
+            <column name="DATE_EDIT"    type="DATETIME" />
+        </addColumn>
+  </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/District/alter_districtResponsibleDatatypes.xml b/.liquibase/Data_alias/basic/2021.0.0/District/alter_districtResponsibleDatatypes.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7865093566d927f59c40e287bb707ec886a9458d
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/District/alter_districtResponsibleDatatypes.xml
@@ -0,0 +1,13 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="Pierre Suchacek" id="6feb15fd-c517-4bf9-be88-59993908b9ed">
+        <addColumn tableName="DISTRICTRESPONSIBLE">
+            <column name="ADVISERSTATUS"    type="VARCHAR(36)" />
+            <column name="ADVISERROLE"      type="VARCHAR(36)" />
+            <column name="VALIDFROM"        type="DATETIME" />
+            <column name="VALIDTO"          type="DATETIME" />
+        </addColumn>
+    </changeSet>
+</databaseChangeLog> 
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/District/changelog.xml b/.liquibase/Data_alias/basic/2021.0.0/District/changelog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3532ff12e9f9f98c7a12e6e7ed86787fea18fd48
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/District/changelog.xml
@@ -0,0 +1,13 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    
+    <include relativeToChangelogFile="true" file="create_districtContact.xml"/>
+    <include relativeToChangelogFile="true" file="insert_KeywordsDistrictOrigin.xml"/>
+    <include relativeToChangelogFile="true" file="alter_districtResponsibleDatatypes.xml"/>
+    <include relativeToChangelogFile="true" file="insert_KeywordsAdviserRoles.xml"/>
+    <include relativeToChangelogFile="true" file="update_ContactResponsible_consistent.xml"/>
+    <include relativeToChangelogFile="true" file="alter_district.xml"/>
+    <include relativeToChangelogFile="true" file="alter_districtContact.xml"/>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/District/create_districtContact.xml b/.liquibase/Data_alias/basic/2021.0.0/District/create_districtContact.xml
new file mode 100644
index 0000000000000000000000000000000000000000..77d941f78dad6508618470834e71656e13d6f74f
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/District/create_districtContact.xml
@@ -0,0 +1,20 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="Pierre Suchacek" id="c17cc078-3d3d-4988-9dda-789a59aad814">
+        <createTable tableName="DISTRICTCONTACT">
+            <column name="DISTRICTCONTACTID" type="CHAR(36)">
+                <constraints primaryKey="true" primaryKeyName="PK_DISTRICTCONTACT_DISTRICTCONTACTID"/>
+            </column>
+            <column name="CONTACT_ID" type="VARCHAR(36)"/>
+            <column name="DISTRICT_ID" type="VARCHAR(36)"/>
+            <column name="ADVISER_CONTACT_ID" type="VARCHAR(36)"/>
+            <column name="ADVISER_ROLE" type="VARCHAR(36)"/>
+            <column name="STATUS" type="CHAR(36)"/>
+            <column name="VALID_FROM" type="DATETIME"/>
+            <column name="VALID_UNTIL" type="DATETIME"/>
+            <column name="ORIGIN" type="NVARCHAR(36)"/>
+        </createTable>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/District/insert_KeywordsAdviserRoles.xml b/.liquibase/Data_alias/basic/2021.0.0/District/insert_KeywordsAdviserRoles.xml
new file mode 100644
index 0000000000000000000000000000000000000000..84cc08d4f148a5841fbc5f2aaac882690f1043c3
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/District/insert_KeywordsAdviserRoles.xml
@@ -0,0 +1,61 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="Pierre Suchacek" id="d5737f12-5e86-4d6c-bcc7-7d7bed2d993f">
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="97c73c26-c90e-410b-8732-47cbeaf986df"/>
+            <column name="KEYID" value="ADVISERROLE_SalesManager"/>
+            <column name="TITLE" value="Sales Manager"/>
+            <column name="CONTAINER" value="ADVISER_ROLE"/>
+            <column name="SORTING" valueNumeric="0"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="8d853c34-0896-45db-989d-131a15bd0c6a"/>
+            <column name="KEYID" value="ADVISERROLE_OfficeDuty"/>
+            <column name="TITLE" value="Office Duty"/>
+            <column name="CONTAINER" value="ADVISER_ROLE"/>
+            <column name="SORTING" valueNumeric="1"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="40212bc7-df71-4131-965b-344e6baf7c57"/>
+            <column name="KEYID" value="ADVISERROLE_RegionManager"/>
+            <column name="TITLE" value="Region Manager"/>
+            <column name="CONTAINER" value="ADVISER_ROLE"/>
+            <column name="SORTING" valueNumeric="2"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="df052065-a32d-4c17-a229-60abcaf2736f"/>
+            <column name="KEYID" value="ADVISERROLE_AccountManager"/>
+            <column name="TITLE" value="Account Manager"/>
+            <column name="CONTAINER" value="ADVISER_ROLE"/>
+            <column name="SORTING" valueNumeric="3"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="3b080d0e-9301-47f2-9ead-10f2b5aaf701"/>
+            <column name="KEYID" value="ADVISERROLE_AreaManager"/>
+            <column name="TITLE" value="Area Manager"/>
+            <column name="CONTAINER" value="ADVISER_ROLE"/>
+            <column name="SORTING" valueNumeric="4"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="a343cbe0-af9c-464c-861e-65f00eab392f"/>
+            <column name="KEYID" value="ADVISERROLE_FieldService"/>
+            <column name="TITLE" value="Field Service"/>
+            <column name="CONTAINER" value="ADVISER_ROLE"/>
+            <column name="SORTING" valueNumeric="5"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/District/insert_KeywordsDistrictOrigin.xml b/.liquibase/Data_alias/basic/2021.0.0/District/insert_KeywordsDistrictOrigin.xml
new file mode 100644
index 0000000000000000000000000000000000000000..59cc5b0cfa80d4593b27a5f43d22a143b63aeff5
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/District/insert_KeywordsDistrictOrigin.xml
@@ -0,0 +1,25 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+  <changeSet author="Pierre Suchacek" id="a2067d42-75a1-4799-8c03-e5ec13f29b7a">
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="9531f6ba-dbbc-43c2-ba7a-761c6e44ca3b"/>
+            <column name="KEYID" value="DistrictOrigin_auto"/>
+            <column name="TITLE" value="auto"/>
+            <column name="CONTAINER" value="DISTRICT_ORIGIN"/>
+            <column name="SORTING" valueNumeric="0"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="b063bd18-0f60-4e5f-b153-62acb984a4b2"/>
+            <column name="KEYID" value="DistrictOrigin_manual"/>
+            <column name="TITLE" value="manual"/>
+            <column name="CONTAINER" value="DISTRICT_ORIGIN"/>
+            <column name="SORTING" valueNumeric="1"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+  </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/District/update_ContactResponsible_consistent.xml b/.liquibase/Data_alias/basic/2021.0.0/District/update_ContactResponsible_consistent.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9aaa38da63024a5b8d0d662bbef91b9459e09440
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/District/update_ContactResponsible_consistent.xml
@@ -0,0 +1,30 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="Pierre Suchacek" id="610e5b84-2428-4294-b513-b4a0c7493e0a">
+        <renameColumn
+            columnDataType="VARCHAR(36)"  
+            newColumnName="ADVISER_STATUS"  
+            oldColumnName="ADVISERSTATUS"   
+            tableName="DISTRICTRESPONSIBLE"/>
+        
+        <renameColumn
+            columnDataType="VARCHAR(36)"  
+            newColumnName="ADVISER_ROLE"  
+            oldColumnName="ADVISERROLE"   
+            tableName="DISTRICTRESPONSIBLE"/>
+                
+        <renameColumn
+            columnDataType="VARCHAR(36)"  
+            newColumnName="VALID_FROM"  
+            oldColumnName="VALIDFROM"   
+            tableName="DISTRICTRESPONSIBLE"/>
+                        
+        <renameColumn
+            columnDataType="VARCHAR(36)"  
+            newColumnName="VALID_UNTIL"  
+            oldColumnName="VALIDTO"   
+            tableName="DISTRICTRESPONSIBLE"/>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/EwsContactSync/create_ab_synccontact.xml b/.liquibase/Data_alias/basic/2021.0.0/EwsContactSync/create_ab_synccontact.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9de2f01cc35fba70afd6992a3995da9c8e1b7431
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/EwsContactSync/create_ab_synccontact.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="A.Riedl" id="9820d74b-1b58-4ffd-9f5d-8c4d670bda47">
+        <createTable tableName="AB_SYNCCONTACT">
+            <column name="SYNCCONTACTID" type="char(36)">
+                <constraints primaryKey="true" primaryKeyName="PK_SYNCCONTACTID"/>
+            </column>
+            <column name="ASYS_FAVORITEID" type="char(36)"/>
+            <column name="EXCHANGEID" type="varchar(254)"/>
+            <column name="USER_ID" type="char(46)"/>            
+            <column name="CONTACT_ID" type="char(36)"/>
+            <column name="DATE_DEL" type="datetime"/>
+            <column name="DATE_EDIT" type="datetime"/>
+            <column name="DATE_NEW" type="datetime"/>
+        </createTable>
+        <createIndex indexName="idx_exchangeId" tableName="AB_SYNCCONTACT">
+            <column name="EXCHANGEID"/>
+        </createIndex>
+        <createIndex tableName="AB_SYNCCONTACT" indexName="idx_UserId">
+            <column name="USER_ID"/>
+        </createIndex>
+        <createIndex tableName="AB_SYNCCONTACT" indexName="idx_ContactId">
+            <column name="CONTACT_ID"/>
+        </createIndex>
+        <addUniqueConstraint 
+            columnNames="ASYS_FAVORITEID"
+            constraintName="const_uniqueFavoriteId"  
+            tableName="AB_SYNCCONTACT"/>  
+    </changeSet>
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/2021.0.0/KeywordMigration/changelog.xml b/.liquibase/Data_alias/basic/2021.0.0/KeywordMigration/changelog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..89dbbe1de6912103cd930d998bcae1d29aea8d2f
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/KeywordMigration/changelog.xml
@@ -0,0 +1,6 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+  <include file="init_keyword_category.xml" relativeToChangelogFile="true"/>
+  <include file="update_keyword_entry.xml" relativeToChangelogFile="true"/>
+  <include file="update_keyword_attribute.xml" relativeToChangelogFile="true"/>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/KeywordMigration/init_keyword_category.xml b/.liquibase/Data_alias/basic/2021.0.0/KeywordMigration/init_keyword_category.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0e14676a879d4ee2b4ec18efee89baf6a1dd6517
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/KeywordMigration/init_keyword_category.xml
@@ -0,0 +1,509 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+  <changeSet author="autogenerated" id="ecc60096-2a99-4e64-9a5c-9d0a18211cf3">
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="1fa14f21-6aad-4bea-9106-7265db39e052"/>
+      <column name="NAME" value="ADVISER_ROLE"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="a5206aff-79f8-413e-a76d-4cb9d39694d3"/>
+      <column name="NAME" value="ActivityCategory"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="53a36940-7781-4d62-bf8d-478c6c3511bf"/>
+      <column name="NAME" value="ActivityDirection"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="1f700fd2-5295-43a9-95ad-e73add4b5086"/>
+      <column name="NAME" value="AddressType"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="ad91fa20-157b-4e57-b9ad-1281e40024b3"/>
+      <column name="NAME" value="AttributeType"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="e685dcfe-cbf9-4a3f-b45f-3f449779a48f"/>
+      <column name="NAME" value="BulkMailProblem"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="25cb446a-24cd-4ebd-aad2-320da20830da"/>
+      <column name="NAME" value="BulkMailRecipientStatus"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="76fc02b9-a1b6-4c76-bdd5-a52d0e1ef286"/>
+      <column name="NAME" value="BulkMailStatus"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="288cd7a1-3cdb-43bc-8832-ffb58e651956"/>
+      <column name="NAME" value="CallAnswerMode"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="5a49ccc0-bf6b-4842-81d9-78d8841c66a2"/>
+      <column name="NAME" value="CallDirection"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="9e2ad22e-be5f-4f11-b273-42d7d7b5f946"/>
+      <column name="NAME" value="CampaignManagementCostCategory"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="43bffa8e-581a-4854-917b-c75e9119921f"/>
+      <column name="NAME" value="CampaignManagementStates"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="59790e82-72d4-4682-8e4d-df93ccb35c64"/>
+      <column name="NAME" value="CampaignManagementStepStates"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="14adf8de-aa3a-4c89-99bd-49477c2fa8a6"/>
+      <column name="NAME" value="ChecklistEntryType"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="0e8217d7-6712-4c16-80d4-d5c9c26a4f47"/>
+      <column name="NAME" value="ClassificationType"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="6457580f-aa4c-49d8-a92e-a9255e3dac34"/>
+      <column name="NAME" value="CommunicationMedium"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="cda60290-b041-450c-8397-6e462c45835f"/>
+      <column name="NAME" value="CommunicationMediumCampaign"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="8bf2b609-b422-401f-a6c5-7c07107cbb87"/>
+      <column name="NAME" value="CompetitionState"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="866fd65f-131c-4038-99ce-78606971ec98"/>
+      <column name="NAME" value="ContactContactrole"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="cda5deac-5b7c-4c98-9904-2eb3b224235d"/>
+      <column name="NAME" value="ContactDepartment"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="bfc9eb87-0292-4fa1-9c87-39666c2ae6d2"/>
+      <column name="NAME" value="ContactPosition"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="1f3bde3a-7d74-4335-abd3-561028a1e0c3"/>
+      <column name="NAME" value="ContactStatus"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="2e785215-4292-40ff-a7bf-d4d0f79a738e"/>
+      <column name="NAME" value="ContractPayment"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="39d147db-ba80-446b-a80f-d23ef9f71659"/>
+      <column name="NAME" value="ContractStatus"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="5c7a2307-ae32-4d19-976b-29f8675808fa"/>
+      <column name="NAME" value="ContractType"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="7d329db3-1874-473d-b4e8-56fd4b84054c"/>
+      <column name="NAME" value="Currency"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="9d1cb7d0-931e-4d5c-a54f-e5c917228157"/>
+      <column name="NAME" value="DISTRICT_ORIGIN"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="3d8699cb-e0a0-483a-b52d-d5bdfe2ed336"/>
+      <column name="NAME" value="DSGVODeadline"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="598681d4-5649-4a9d-b918-f35fd69a2b0f"/>
+      <column name="NAME" value="DSGVOGuarantee"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="0369f43a-e46d-42f7-bfe3-5bc2c7d9d584"/>
+      <column name="NAME" value="DSGVOPurpose"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="c561d74a-44dc-4b57-acad-055f0f557b6f"/>
+      <column name="NAME" value="DSGVOStatuoritysource"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="e22ca44f-5d2d-47b6-a844-6801fb6b877f"/>
+      <column name="NAME" value="DSGVOTransmission"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="18e6262a-80a0-4f71-baeb-36a6937e356a"/>
+      <column name="NAME" value="DSGVOType"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="58ff4cea-10b7-4cf9-b326-81337b5ddd48"/>
+      <column name="NAME" value="DeliveryTerm"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="f118b0c3-c65f-4c83-8f5a-cb885fa3323a"/>
+      <column name="NAME" value="DiscussionStatus"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="b5afd40b-bfa7-4aee-89ea-06b8c7deb304"/>
+      <column name="NAME" value="DocumentTemplateType"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="e23c8316-d43a-4606-803e-d4488823cc52"/>
+      <column name="NAME" value="DocumentTemplateTypeCategory"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="0c4c05b5-8294-441f-84d4-3424f1c38732"/>
+      <column name="NAME" value="DunningLevel"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="8ef58a64-8905-4d5d-b965-40c7e12a0b1e"/>
+      <column name="NAME" value="DupStatus"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <column name="NAME" value="ImportFields"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="35d717d5-4260-4a33-8183-a430e3624822"/>
+      <column name="NAME" value="ImportStatus"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="c1295c26-c580-42b8-85dc-6c08811c812c"/>
+      <column name="NAME" value="KeywordAttributeType"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="37f65755-e1c9-4912-a7d3-2922c754ed8d"/>
+      <column name="NAME" value="KnowledgePublishLevel"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="6a4a5250-6231-4bf7-8c16-bb5994c4e2d0"/>
+      <column name="NAME" value="KnowledgeType"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="b3765719-9d07-41c4-a813-18bc9056db1a"/>
+      <column name="NAME" value="MemberRole"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="dbd944bc-0c18-4acc-b4da-2cf382309459"/>
+      <column name="NAME" value="NotificationPriority"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="50ecc8e7-15e3-4a40-8028-d6de5241b88e"/>
+      <column name="NAME" value="NotificationState"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="91e847b9-9c35-4e1e-8936-045eb7d4f90a"/>
+      <column name="NAME" value="OfferProbability"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="3b0a4044-9cfd-4466-9edd-50876a926e76"/>
+      <column name="NAME" value="OfferStatus"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="38df36cd-2600-4397-a272-0defa1e79e5c"/>
+      <column name="NAME" value="OrderType"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="83ea3621-22d8-403b-a73e-5d63a6dee434"/>
+      <column name="NAME" value="OrganisationType"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="ab8d06bb-18eb-4fbe-9e00-ecb34bd38c8f"/>
+      <column name="NAME" value="PaymentTerm"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="8653e732-0a48-4697-a858-ce58a524553c"/>
+      <column name="NAME" value="PermissionAccessType"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="e35fdba2-11ba-4d8c-b443-5ab49a19dcc1"/>
+      <column name="NAME" value="PermissionCalendarType"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="dc580c6b-6748-4eea-97fa-9a08776e395f"/>
+      <column name="NAME" value="PermissionCondType"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="e8e138b0-5628-45c5-b0c2-6aa0086b2ae2"/>
+      <column name="NAME" value="PersonGender"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="e355059f-5b01-4438-8444-334655d6e136"/>
+      <column name="NAME" value="ProductGroupcode"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="b92db41e-bdbd-4c3c-96ec-b23672f25340"/>
+      <column name="NAME" value="ProductPricelist"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="cd77dc51-70ee-469c-b0d6-687893237de1"/>
+      <column name="NAME" value="QuantityUnit"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="13a3d854-4286-4165-be71-dc246f72c100"/>
+      <column name="NAME" value="SalesorderState"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="923217a2-991e-444a-9a86-c3f56ba90f93"/>
+      <column name="NAME" value="SalesprojectPhase"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="f5622bfc-35b3-4e74-bb8b-b4cbdcafeb8c"/>
+      <column name="NAME" value="SalesprojectPricePolitics"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="05fe9872-c1a8-41ab-bf0b-d0df0537fe4f"/>
+      <column name="NAME" value="SalesprojectProbability"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="0c3addc3-cbe9-4bdf-8db7-a53401b24a22"/>
+      <column name="NAME" value="SalesprojectSource"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="c0448b78-0e78-4db6-895e-5d0d9952f961"/>
+      <column name="NAME" value="SalesprojectState"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="fe288fb5-c5e4-4473-b052-809ce32673eb"/>
+      <column name="NAME" value="SalesprojectStrength"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="54d6ad1d-44a0-479d-b42a-982126572658"/>
+      <column name="NAME" value="SalesprojectWeakness"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="c8e3bb06-7165-435c-9159-5568158f9616"/>
+      <column name="NAME" value="SalesprojectWonLost"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="63530dfc-c3e6-447b-b3ed-b52adae42a68"/>
+      <column name="NAME" value="SerialLetterStatus"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="8efff07c-1853-4040-90c2-e8b343db8d18"/>
+      <column name="NAME" value="StockWarehouse"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="ec9ac6e2-d2de-4e8e-bfad-bebd38c65026"/>
+      <column name="NAME" value="TaskPriority"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="5f94376f-18bb-41d5-8be7-f7dce020495c"/>
+      <column name="NAME" value="TaskProgress"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="6818d2a6-f47a-4d72-a0b2-3fc6fc74fb27"/>
+      <column name="NAME" value="TaskStatus"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="bb351e6a-c35b-4af6-8540-898b2cd368a4"/>
+      <column name="NAME" value="TaskType"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="f3986324-87ce-485f-8688-c4e228c39fc6"/>
+      <column name="NAME" value="TicketType"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="30d87734-9229-460d-abf4-73ce73466534"/>
+      <column name="NAME" value="VisitPlanEntryStatus"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="623bdc81-a99b-4865-958e-85abd0ed9b6a"/>
+      <column name="NAME" value="VisitPlanEntryStatusAppointment"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="f0abc80c-7d9d-4bb5-8d41-d204550a028e"/>
+      <column name="NAME" value="VisitRecommendationPrioSource"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="7147c61b-962d-426c-84a2-aaa381aeab8b"/>
+      <column name="NAME" value="VisitRecommendationPriority"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="c03a5abe-0f21-41a3-8506-9b13db7ea407"/>
+      <column name="NAME" value="WorkflowActivityType"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="ecfee92f-0563-44be-98f5-1c304df8d9d0"/>
+      <column name="NAME" value="WorkflowCategory"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="ed197cdf-bdd1-4e95-b910-dca348abf3be"/>
+      <column name="NAME" value="WorkflowSignalTrigger"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="380983a1-f0b2-4d0b-b38b-5c889079e414"/>
+      <column name="NAME" value="WorkflowTrigger"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+    <insert tableName="AB_KEYWORD_CATEGORY">
+      <column name="AB_KEYWORD_CATEGORYID" value="db283e25-904d-41cb-ac20-3c80c85fa423"/>
+      <column name="NAME" value="YesNo"/>
+      <column name="SORTINGBY" valueNumeric="0"/>
+      <column name="SORTINGDIRECTION" value="ASC"/>
+    </insert>
+  </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/KeywordMigration/update_keyword_attribute.xml b/.liquibase/Data_alias/basic/2021.0.0/KeywordMigration/update_keyword_attribute.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7d33beee85f87f9895c14136bd896bcb45511856
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/KeywordMigration/update_keyword_attribute.xml
@@ -0,0 +1,129 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+  <changeSet author="autogenerated" id="7a58d5be-9d3d-4ee6-b403-f2dac44d9b60">
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="05fe9872-c1a8-41ab-bf0b-d0df0537fe4f"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '2fabbd9a-89d2-49e3-b3aa-1dcbc77252c7'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="91e847b9-9c35-4e1e-8936-045eb7d4f90a"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = 'b9766994-4e7d-4079-a0bc-f1397f93047f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="a5206aff-79f8-413e-a76d-4cb9d39694d3"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '14c2d515-a42f-4618-b534-7a23369d21e6'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6457580f-aa4c-49d8-a92e-a9255e3dac34"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '7250ff28-1d48-41cc-bb36-8c33ace341bb'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6457580f-aa4c-49d8-a92e-a9255e3dac34"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '3ea2ea72-e615-4e77-befb-e664fa5ec4e1'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="cda60290-b041-450c-8397-6e462c45835f"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '5e65d4a0-af83-4a7b-babb-b1b7af4b9f20'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="cda60290-b041-450c-8397-6e462c45835f"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = 'd6c0fd72-ded2-4e4d-adf5-f8832d7b24f2'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="1f700fd2-5295-43a9-95ad-e73add4b5086"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '1d5c5d49-0ffd-47fb-af10-542f7cf454cd'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="1f700fd2-5295-43a9-95ad-e73add4b5086"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = 'c4c5352b-ff72-4323-80b9-631a24dd7245'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ec9ac6e2-d2de-4e8e-bfad-bebd38c65026"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '6b951c1e-a0fd-4dbf-b139-e7cda94851cf'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ad91fa20-157b-4e57-b9ad-1281e40024b3"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '307ecfc6-15c8-4ab9-8afa-e97b90a00c5f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="b3765719-9d07-41c4-a813-18bc9056db1a"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '0bdeb691-f90a-4d7e-a99a-08c60816232c'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e23c8316-d43a-4606-803e-d4488823cc52"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '14c2d515-a42f-4618-b534-7a23369d2001'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e23c8316-d43a-4606-803e-d4488823cc52"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '14c2d515-a42f-4618-b534-7a23369d2002'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e23c8316-d43a-4606-803e-d4488823cc52"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '14c2d515-a42f-4618-b534-7a23369d2003'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e23c8316-d43a-4606-803e-d4488823cc52"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '14c2d515-a42f-4618-b534-7a23369d2004'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="53a36940-7781-4d62-bf8d-478c6c3511bf"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = 'e187a585-9ab1-4dd4-a2e9-2db14d4cc3a7'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="0c3addc3-cbe9-4bdf-8db7-a53401b24a22"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '4b05ec8a-6964-40e5-8713-0043ca926eb6'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6818d2a6-f47a-4d72-a0b2-3fc6fc74fb27"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '472f9bc2-3331-49f9-aba2-72d5eeb89654'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f3986324-87ce-485f-8688-c4e228c39fc6"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = 'af6a0af9-0102-426b-a1f7-c8abfea79793'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f3986324-87ce-485f-8688-c4e228c39fc6"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '6f10015d-b7ee-43aa-99f9-87960ec2e4fd'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f3986324-87ce-485f-8688-c4e228c39fc6"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '729a41d1-0463-480d-bf7b-0eb6c2e96f37'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="76fc02b9-a1b6-4c76-bdd5-a52d0e1ef286"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = 'ec51253e-9b45-468d-aafa-42331e54f32b'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="923217a2-991e-444a-9a86-c3f56ba90f93"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '93d60e4b-e984-423e-b97f-d2abf61de41d'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="923217a2-991e-444a-9a86-c3f56ba90f93"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = 'f1413a2f-6631-4255-9dc9-a28e6eb30497'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ab8d06bb-18eb-4fbe-9e00-ecb34bd38c8f"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = 'b5a322c7-41a0-4713-b90a-3c3151833f8d'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="b3765719-9d07-41c4-a813-18bc9056db1a"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '08fcb5db-531d-4a83-8c6e-b9c9c95dcb16'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="b3765719-9d07-41c4-a813-18bc9056db1a"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '605be9b3-1fe7-4bcc-9a06-8e8651655985'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c03a5abe-0f21-41a3-8506-9b13db7ea407"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = '8365d915-85b9-4881-9705-542c98750078'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6457580f-aa4c-49d8-a92e-a9255e3dac34"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = 'ace00630-1e07-4615-8d61-2478995538fa'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ATTRIBUTE">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6a4a5250-6231-4bf7-8c16-bb5994c4e2d0"/>
+      <where>AB_KEYWORD_ATTRIBUTEID = 'b03f93a2-3b87-4a98-b3f9-9ed2358abdfe'</where>
+    </update>
+  </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/KeywordMigration/update_keyword_entry.xml b/.liquibase/Data_alias/basic/2021.0.0/KeywordMigration/update_keyword_entry.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5fd4d0f0160d13f2a7d09a79eaacdb2ca9340f3b
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/KeywordMigration/update_keyword_entry.xml
@@ -0,0 +1,1525 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+  <changeSet author="autogenerated" id="57268a53-78a9-4999-9990-6024ee2da551">
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c1295c26-c580-42b8-85dc-6c08811c812c"/>
+      <where>AB_KEYWORD_ENTRYID = '6fea53cc-c167-4aad-9468-64a0c525ad47'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c1295c26-c580-42b8-85dc-6c08811c812c"/>
+      <where>AB_KEYWORD_ENTRYID = '93c67ca9-dec2-4d8a-863a-3b9cbce7bed1'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c1295c26-c580-42b8-85dc-6c08811c812c"/>
+      <where>AB_KEYWORD_ENTRYID = 'f6566efc-5918-426d-9a45-a160ad632d55'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="1f3bde3a-7d74-4335-abd3-561028a1e0c3"/>
+      <where>AB_KEYWORD_ENTRYID = 'd453609f-0229-4073-982a-9d6f753515b1'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="1f3bde3a-7d74-4335-abd3-561028a1e0c3"/>
+      <where>AB_KEYWORD_ENTRYID = '5ce88207-6c9b-4f3e-9f97-d6ca219c6cb4'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="1f3bde3a-7d74-4335-abd3-561028a1e0c3"/>
+      <where>AB_KEYWORD_ENTRYID = '59a39f58-9ba1-4c2d-9d2b-43d43c6c8acd'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="53a36940-7781-4d62-bf8d-478c6c3511bf"/>
+      <where>AB_KEYWORD_ENTRYID = 'c564719a-18ef-4b9e-b130-dde8b2b518ad'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="53a36940-7781-4d62-bf8d-478c6c3511bf"/>
+      <where>AB_KEYWORD_ENTRYID = '6f4c6e49-36ca-4b91-ba83-c507203e1eac'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="53a36940-7781-4d62-bf8d-478c6c3511bf"/>
+      <where>AB_KEYWORD_ENTRYID = 'bb386131-ee36-4835-b458-6751f137a941'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="2e785215-4292-40ff-a7bf-d4d0f79a738e"/>
+      <where>AB_KEYWORD_ENTRYID = '03a1e5b6-64d3-47fd-8085-08b9b95bab19'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="2e785215-4292-40ff-a7bf-d4d0f79a738e"/>
+      <where>AB_KEYWORD_ENTRYID = '539a4ed0-d3f1-4e2f-b3ff-339276045269'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="2e785215-4292-40ff-a7bf-d4d0f79a738e"/>
+      <where>AB_KEYWORD_ENTRYID = '6bfb93b6-7940-4713-a053-16e17d875032'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="39d147db-ba80-446b-a80f-d23ef9f71659"/>
+      <where>AB_KEYWORD_ENTRYID = 'c1c736a7-95af-417d-8993-3c6cbf065059'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="39d147db-ba80-446b-a80f-d23ef9f71659"/>
+      <where>AB_KEYWORD_ENTRYID = '41b15842-0d31-4023-b0b9-fa97f25bc444'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="39d147db-ba80-446b-a80f-d23ef9f71659"/>
+      <where>AB_KEYWORD_ENTRYID = '1bebbb3c-f412-4031-b533-f1e38c86eb17'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="39d147db-ba80-446b-a80f-d23ef9f71659"/>
+      <where>AB_KEYWORD_ENTRYID = '03f62e1e-0b9a-4e7e-a895-2d10bf57712f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="39d147db-ba80-446b-a80f-d23ef9f71659"/>
+      <where>AB_KEYWORD_ENTRYID = '4959d607-b218-4e45-9c4b-b28f3ae6b0ff'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="5c7a2307-ae32-4d19-976b-29f8675808fa"/>
+      <where>AB_KEYWORD_ENTRYID = '2c440f87-292d-4ec3-8eb2-74821e251365'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="5c7a2307-ae32-4d19-976b-29f8675808fa"/>
+      <where>AB_KEYWORD_ENTRYID = '8dc775f2-05e1-47b5-b372-54c261f1f9d8'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="5c7a2307-ae32-4d19-976b-29f8675808fa"/>
+      <where>AB_KEYWORD_ENTRYID = '9c2a1b76-b9c4-486d-a1d2-d12970f20bd0'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="7d329db3-1874-473d-b4e8-56fd4b84054c"/>
+      <where>AB_KEYWORD_ENTRYID = 'ccc54161-e5b5-48ad-9577-d4314b4cc232'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="7d329db3-1874-473d-b4e8-56fd4b84054c"/>
+      <where>AB_KEYWORD_ENTRYID = '67d6c3b0-d04e-4133-8ffb-4cb462277245'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="7d329db3-1874-473d-b4e8-56fd4b84054c"/>
+      <where>AB_KEYWORD_ENTRYID = '95e2032c-fa20-4a38-8b0e-6d86db1ba097'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="7d329db3-1874-473d-b4e8-56fd4b84054c"/>
+      <where>AB_KEYWORD_ENTRYID = 'cc329284-adf4-45f8-8e6f-6f8609536ca0'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e355059f-5b01-4438-8444-334655d6e136"/>
+      <where>AB_KEYWORD_ENTRYID = 'b6079a56-594f-463d-8b85-67db622cf522'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e355059f-5b01-4438-8444-334655d6e136"/>
+      <where>AB_KEYWORD_ENTRYID = '7c666a94-ef9a-42e9-83c8-de3a97123bce'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e355059f-5b01-4438-8444-334655d6e136"/>
+      <where>AB_KEYWORD_ENTRYID = '72ffaa0b-9982-4614-93be-31ae76f91d19'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e355059f-5b01-4438-8444-334655d6e136"/>
+      <where>AB_KEYWORD_ENTRYID = '688b91d3-3c5b-4704-9220-e11b4532c05c'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e355059f-5b01-4438-8444-334655d6e136"/>
+      <where>AB_KEYWORD_ENTRYID = '5f5a0927-5827-4948-bfe7-32e83d8cf3aa'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e355059f-5b01-4438-8444-334655d6e136"/>
+      <where>AB_KEYWORD_ENTRYID = '611cd178-c0fc-4d2a-a9ba-af747d571755'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="3b0a4044-9cfd-4466-9edd-50876a926e76"/>
+      <where>AB_KEYWORD_ENTRYID = '87bd1a28-d364-47ee-9a01-33714f6998ba'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="3b0a4044-9cfd-4466-9edd-50876a926e76"/>
+      <where>AB_KEYWORD_ENTRYID = '9912dcc6-edf1-4a68-b605-925a31b7f9a4'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="3b0a4044-9cfd-4466-9edd-50876a926e76"/>
+      <where>AB_KEYWORD_ENTRYID = 'd3bd6272-d1d9-4a5c-9f5c-772f0ee2551e'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="3b0a4044-9cfd-4466-9edd-50876a926e76"/>
+      <where>AB_KEYWORD_ENTRYID = '0cba2fe7-97c3-4eb4-9999-1fc4e8e93a7a'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="83ea3621-22d8-403b-a73e-5d63a6dee434"/>
+      <where>AB_KEYWORD_ENTRYID = 'b25309f8-d923-4b9e-9689-b14c3463c9e0'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="83ea3621-22d8-403b-a73e-5d63a6dee434"/>
+      <where>AB_KEYWORD_ENTRYID = '17ef91a4-5af5-4ae1-86cd-49568a88a2a2'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="83ea3621-22d8-403b-a73e-5d63a6dee434"/>
+      <where>AB_KEYWORD_ENTRYID = '3ba58828-f27e-4342-b3e5-78d562756322'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="83ea3621-22d8-403b-a73e-5d63a6dee434"/>
+      <where>AB_KEYWORD_ENTRYID = '0e3b1e24-af88-4058-bd7c-23aba5d36e06'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e8e138b0-5628-45c5-b0c2-6aa0086b2ae2"/>
+      <where>AB_KEYWORD_ENTRYID = 'a6b639c5-41f7-41fb-8856-059f5ea1a629'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e8e138b0-5628-45c5-b0c2-6aa0086b2ae2"/>
+      <where>AB_KEYWORD_ENTRYID = '7177a6a6-6a71-43a5-a2ba-fe2f80054fef'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e8e138b0-5628-45c5-b0c2-6aa0086b2ae2"/>
+      <where>AB_KEYWORD_ENTRYID = 'f5466bc3-77b8-45f4-817a-79b16946f680'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="b92db41e-bdbd-4c3c-96ec-b23672f25340"/>
+      <where>AB_KEYWORD_ENTRYID = 'd0f5c21d-14ff-414b-9d51-2a2c5f49b50d'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="b92db41e-bdbd-4c3c-96ec-b23672f25340"/>
+      <where>AB_KEYWORD_ENTRYID = 'a581bf7c-1cb7-4821-96f5-6eed9a0de58c'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="b92db41e-bdbd-4c3c-96ec-b23672f25340"/>
+      <where>AB_KEYWORD_ENTRYID = 'b47478a1-1fac-4e74-921f-b47c146e034d'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="b92db41e-bdbd-4c3c-96ec-b23672f25340"/>
+      <where>AB_KEYWORD_ENTRYID = '932057b5-a2e1-4f0b-83be-28692d9e9e44'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="cd77dc51-70ee-469c-b0d6-687893237de1"/>
+      <where>AB_KEYWORD_ENTRYID = '392ee66d-f777-43ab-b8d5-344fd75e5454'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="cd77dc51-70ee-469c-b0d6-687893237de1"/>
+      <where>AB_KEYWORD_ENTRYID = 'a58987b7-a5f9-4f4a-8c1f-2553ff7bad60'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="cd77dc51-70ee-469c-b0d6-687893237de1"/>
+      <where>AB_KEYWORD_ENTRYID = '74531aeb-7e01-4595-a5df-0ba3cad09071'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="cd77dc51-70ee-469c-b0d6-687893237de1"/>
+      <where>AB_KEYWORD_ENTRYID = 'a47f5661-6b71-43a5-a14f-42aff04fe8e4'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f5622bfc-35b3-4e74-bb8b-b4cbdcafeb8c"/>
+      <where>AB_KEYWORD_ENTRYID = 'c899faa1-6b89-4616-8640-cd2c8011d123'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f5622bfc-35b3-4e74-bb8b-b4cbdcafeb8c"/>
+      <where>AB_KEYWORD_ENTRYID = '4d97f540-79cc-41d7-8bf3-e45b3dfd3683'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f5622bfc-35b3-4e74-bb8b-b4cbdcafeb8c"/>
+      <where>AB_KEYWORD_ENTRYID = 'cbaeb1dc-493c-4811-b8bc-6654559c3ca6'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="b3765719-9d07-41c4-a813-18bc9056db1a"/>
+      <where>AB_KEYWORD_ENTRYID = '9c421b0b-8529-4e07-9463-28d59fd027b6'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="b3765719-9d07-41c4-a813-18bc9056db1a"/>
+      <where>AB_KEYWORD_ENTRYID = 'f78f229f-f809-4bd2-aca8-24e2f82fa220'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="b3765719-9d07-41c4-a813-18bc9056db1a"/>
+      <where>AB_KEYWORD_ENTRYID = '8cb1b843-713a-4193-aa50-9f5ca06820f8'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="b3765719-9d07-41c4-a813-18bc9056db1a"/>
+      <where>AB_KEYWORD_ENTRYID = '039fd6ae-b4ad-431e-86bf-59ed2f4df0a9'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="b3765719-9d07-41c4-a813-18bc9056db1a"/>
+      <where>AB_KEYWORD_ENTRYID = 'b72294cd-3a46-4f71-ab93-72824f63f7f4'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="0c3addc3-cbe9-4bdf-8db7-a53401b24a22"/>
+      <where>AB_KEYWORD_ENTRYID = 'f83c96e3-47be-4ca1-bc47-4a3a2fce7fca'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="0c3addc3-cbe9-4bdf-8db7-a53401b24a22"/>
+      <where>AB_KEYWORD_ENTRYID = '1a197ade-0c61-4643-8287-159719d519b4'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="0c3addc3-cbe9-4bdf-8db7-a53401b24a22"/>
+      <where>AB_KEYWORD_ENTRYID = 'f552b84a-b8e7-472a-9ce5-d64e7f14e74b'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="0c3addc3-cbe9-4bdf-8db7-a53401b24a22"/>
+      <where>AB_KEYWORD_ENTRYID = '7ea06933-94c9-4a05-ba7d-4266df9e4ab2'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="fe288fb5-c5e4-4473-b052-809ce32673eb"/>
+      <where>AB_KEYWORD_ENTRYID = '7963d4ed-f7a7-4a9f-aa86-fea42167145f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="fe288fb5-c5e4-4473-b052-809ce32673eb"/>
+      <where>AB_KEYWORD_ENTRYID = '2cacfe09-7dcd-454a-b263-46aee796bc21'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="fe288fb5-c5e4-4473-b052-809ce32673eb"/>
+      <where>AB_KEYWORD_ENTRYID = '919cffee-5943-4105-a5bc-a14bd33b9f67'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="54d6ad1d-44a0-479d-b42a-982126572658"/>
+      <where>AB_KEYWORD_ENTRYID = 'fd012937-8fe7-418e-8e55-80b3b5db331c'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="54d6ad1d-44a0-479d-b42a-982126572658"/>
+      <where>AB_KEYWORD_ENTRYID = 'b62e1a05-af41-4d2d-978c-6c2950b202d8'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="54d6ad1d-44a0-479d-b42a-982126572658"/>
+      <where>AB_KEYWORD_ENTRYID = '294db00d-6237-4db8-b7b6-41c5dc79a1e4'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c8e3bb06-7165-435c-9159-5568158f9616"/>
+      <where>AB_KEYWORD_ENTRYID = '84574d45-8227-42dd-aea0-de2203517a2c'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c8e3bb06-7165-435c-9159-5568158f9616"/>
+      <where>AB_KEYWORD_ENTRYID = '018a3bb8-5536-461f-8400-25e91550e51f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c8e3bb06-7165-435c-9159-5568158f9616"/>
+      <where>AB_KEYWORD_ENTRYID = 'b4562d6b-9ff1-4884-8694-3339e760ddf1'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c8e3bb06-7165-435c-9159-5568158f9616"/>
+      <where>AB_KEYWORD_ENTRYID = 'cda9c073-25e4-4a90-b5b7-fe6514355d31'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c8e3bb06-7165-435c-9159-5568158f9616"/>
+      <where>AB_KEYWORD_ENTRYID = 'e84b0059-2140-4911-bb3c-73e6f3875022'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c8e3bb06-7165-435c-9159-5568158f9616"/>
+      <where>AB_KEYWORD_ENTRYID = 'b9216c02-7abd-43aa-a02e-89fa7d428e0c'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c8e3bb06-7165-435c-9159-5568158f9616"/>
+      <where>AB_KEYWORD_ENTRYID = '6efbc578-4b80-463f-9c4f-16db99a8a9d6'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c8e3bb06-7165-435c-9159-5568158f9616"/>
+      <where>AB_KEYWORD_ENTRYID = 'ad252ede-1e46-46ad-8ce1-6788b9103c92'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c8e3bb06-7165-435c-9159-5568158f9616"/>
+      <where>AB_KEYWORD_ENTRYID = '9fe99387-ea27-4f13-923c-f631486f7bcb'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c8e3bb06-7165-435c-9159-5568158f9616"/>
+      <where>AB_KEYWORD_ENTRYID = 'd1987d3a-fc7f-4882-8292-36e9699f6368'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c8e3bb06-7165-435c-9159-5568158f9616"/>
+      <where>AB_KEYWORD_ENTRYID = 'd62db634-94ca-49e5-970a-67696d013ed6'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c8e3bb06-7165-435c-9159-5568158f9616"/>
+      <where>AB_KEYWORD_ENTRYID = '148176ea-14ed-4a74-8290-e5dffcd71eaa'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c8e3bb06-7165-435c-9159-5568158f9616"/>
+      <where>AB_KEYWORD_ENTRYID = 'd5827700-2ef1-43a1-a7f1-46a4de1ec6ec'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c8e3bb06-7165-435c-9159-5568158f9616"/>
+      <where>AB_KEYWORD_ENTRYID = '1a0ae403-90c0-424c-a13a-8b1c4cfd314d'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="13a3d854-4286-4165-be71-dc246f72c100"/>
+      <where>AB_KEYWORD_ENTRYID = '8d9b0416-fee2-44d0-9334-1864ff78a824'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="13a3d854-4286-4165-be71-dc246f72c100"/>
+      <where>AB_KEYWORD_ENTRYID = '6f5c01ad-f9d9-43b9-834b-139974a75115'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="13a3d854-4286-4165-be71-dc246f72c100"/>
+      <where>AB_KEYWORD_ENTRYID = '8bac5a6d-7810-469b-8fdb-0d3a0bf8e122'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="13a3d854-4286-4165-be71-dc246f72c100"/>
+      <where>AB_KEYWORD_ENTRYID = 'f54b3c0b-bd80-4bc5-8a5c-55be2fd57017'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="8efff07c-1853-4040-90c2-e8b343db8d18"/>
+      <where>AB_KEYWORD_ENTRYID = '2613a00e-7c2d-4513-bb37-c375e3e26959'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="8efff07c-1853-4040-90c2-e8b343db8d18"/>
+      <where>AB_KEYWORD_ENTRYID = '9f20dcb7-6068-43d5-8aac-a29dcbba8fb2'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="8efff07c-1853-4040-90c2-e8b343db8d18"/>
+      <where>AB_KEYWORD_ENTRYID = '4224ea44-ab84-4215-a1c3-6750ab07af03'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6818d2a6-f47a-4d72-a0b2-3fc6fc74fb27"/>
+      <where>AB_KEYWORD_ENTRYID = '6ab0cc9e-021c-42ef-abfd-f9f7a58aa76c'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6818d2a6-f47a-4d72-a0b2-3fc6fc74fb27"/>
+      <where>AB_KEYWORD_ENTRYID = '6a479d71-2c05-4496-9c6c-c9aeef929bcf'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6818d2a6-f47a-4d72-a0b2-3fc6fc74fb27"/>
+      <where>AB_KEYWORD_ENTRYID = '34701d4d-7435-43bc-8b2f-ad2a70065a75'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6818d2a6-f47a-4d72-a0b2-3fc6fc74fb27"/>
+      <where>AB_KEYWORD_ENTRYID = '7311d8c5-edf2-492e-be4d-6f0469334611'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ad91fa20-157b-4e57-b9ad-1281e40024b3"/>
+      <where>AB_KEYWORD_ENTRYID = '972e5eb1-a457-4b75-b966-1183896dac2c'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ad91fa20-157b-4e57-b9ad-1281e40024b3"/>
+      <where>AB_KEYWORD_ENTRYID = 'cb7ecaea-b4e6-460e-9006-4a3d059b9857'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ad91fa20-157b-4e57-b9ad-1281e40024b3"/>
+      <where>AB_KEYWORD_ENTRYID = '14de196a-aaa6-41b9-b503-3df1d45acc1e'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ad91fa20-157b-4e57-b9ad-1281e40024b3"/>
+      <where>AB_KEYWORD_ENTRYID = '8a9791c1-655f-4340-91b4-cfdf6372fc75'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ad91fa20-157b-4e57-b9ad-1281e40024b3"/>
+      <where>AB_KEYWORD_ENTRYID = '1390813c-6b94-4336-9986-9bcaddab69ac'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ad91fa20-157b-4e57-b9ad-1281e40024b3"/>
+      <where>AB_KEYWORD_ENTRYID = '2c188a17-2961-45df-bd68-34b55352375c'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ad91fa20-157b-4e57-b9ad-1281e40024b3"/>
+      <where>AB_KEYWORD_ENTRYID = '75a67526-6b7c-400d-b958-e1f8f45466aa'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="05fe9872-c1a8-41ab-bf0b-d0df0537fe4f"/>
+      <where>AB_KEYWORD_ENTRYID = 'ab44bd2c-dffa-4731-8a24-fad31f069c46'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="05fe9872-c1a8-41ab-bf0b-d0df0537fe4f"/>
+      <where>AB_KEYWORD_ENTRYID = 'e59169d3-c0d9-4718-b8b6-e315857948a0'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="05fe9872-c1a8-41ab-bf0b-d0df0537fe4f"/>
+      <where>AB_KEYWORD_ENTRYID = '415f1cf0-8c5b-4b6e-9900-0d0d6d72381c'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="05fe9872-c1a8-41ab-bf0b-d0df0537fe4f"/>
+      <where>AB_KEYWORD_ENTRYID = '6182cc48-df2b-4ba9-893a-bcedfd0e1e4b'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="05fe9872-c1a8-41ab-bf0b-d0df0537fe4f"/>
+      <where>AB_KEYWORD_ENTRYID = 'f5b601a5-451b-4ab6-9167-b95077e90c62'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="bb351e6a-c35b-4af6-8540-898b2cd368a4"/>
+      <where>AB_KEYWORD_ENTRYID = '9e30365b-a9a6-4b57-ae6b-140c9e5a4eb4'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="91e847b9-9c35-4e1e-8936-045eb7d4f90a"/>
+      <where>AB_KEYWORD_ENTRYID = 'e14fab55-4a85-48c2-a109-125eaed9dc3f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="91e847b9-9c35-4e1e-8936-045eb7d4f90a"/>
+      <where>AB_KEYWORD_ENTRYID = '8f55a5e3-00a9-4691-ab79-309a3eda68ec'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="91e847b9-9c35-4e1e-8936-045eb7d4f90a"/>
+      <where>AB_KEYWORD_ENTRYID = '808a55bc-5876-4deb-a78f-bb352c41d712'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="91e847b9-9c35-4e1e-8936-045eb7d4f90a"/>
+      <where>AB_KEYWORD_ENTRYID = '941e60df-a4f5-4ae8-9ca1-d9f2b2d01d9d'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="91e847b9-9c35-4e1e-8936-045eb7d4f90a"/>
+      <where>AB_KEYWORD_ENTRYID = '2f21341b-9991-4967-a785-60216ec8c25e'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="a5206aff-79f8-413e-a76d-4cb9d39694d3"/>
+      <where>AB_KEYWORD_ENTRYID = '94529505-1913-4827-9812-026053bfcb51'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="a5206aff-79f8-413e-a76d-4cb9d39694d3"/>
+      <where>AB_KEYWORD_ENTRYID = '3b677654-84e2-4b9c-b5d0-ed2b359c45af'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="a5206aff-79f8-413e-a76d-4cb9d39694d3"/>
+      <where>AB_KEYWORD_ENTRYID = '6febeb71-a8a4-400c-80fd-da27ac935260'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="a5206aff-79f8-413e-a76d-4cb9d39694d3"/>
+      <where>AB_KEYWORD_ENTRYID = '68c3b1f7-2555-4d3b-a252-7df978173884'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6457580f-aa4c-49d8-a92e-a9255e3dac34"/>
+      <where>AB_KEYWORD_ENTRYID = 'cc16d938-b95f-4e07-a3b4-73f8524bb664'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6457580f-aa4c-49d8-a92e-a9255e3dac34"/>
+      <where>AB_KEYWORD_ENTRYID = '66950de5-fa8b-465c-8db1-4eb7aac98bd3'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6457580f-aa4c-49d8-a92e-a9255e3dac34"/>
+      <where>AB_KEYWORD_ENTRYID = 'aa2b9cc9-3e87-4fe9-98a2-a4e417a3324f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6457580f-aa4c-49d8-a92e-a9255e3dac34"/>
+      <where>AB_KEYWORD_ENTRYID = 'cfebe176-0a64-428d-b0ec-bba454d2ca3e'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6457580f-aa4c-49d8-a92e-a9255e3dac34"/>
+      <where>AB_KEYWORD_ENTRYID = 'd80c3689-7e0a-45ac-801d-91d199c08bd5'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6457580f-aa4c-49d8-a92e-a9255e3dac34"/>
+      <where>AB_KEYWORD_ENTRYID = 'e6c36792-763d-44f8-8afe-157c8f158ef8'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6457580f-aa4c-49d8-a92e-a9255e3dac34"/>
+      <where>AB_KEYWORD_ENTRYID = '7abf7fc5-08a1-4bae-b0ca-ec5e406d154c'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="cda60290-b041-450c-8397-6e462c45835f"/>
+      <where>AB_KEYWORD_ENTRYID = '2acd3694-ccef-4d0b-ae7a-b3d31f8d9cc0'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="cda60290-b041-450c-8397-6e462c45835f"/>
+      <where>AB_KEYWORD_ENTRYID = 'cb07397b-a976-4960-b8e5-9edf189c5caf'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="cda60290-b041-450c-8397-6e462c45835f"/>
+      <where>AB_KEYWORD_ENTRYID = '990a03e0-aeb4-4bdb-9d22-09b66eee6b85'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="cda60290-b041-450c-8397-6e462c45835f"/>
+      <where>AB_KEYWORD_ENTRYID = '51085b8b-ded0-4d1d-9e85-ae89bd1480fe'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="cda60290-b041-450c-8397-6e462c45835f"/>
+      <where>AB_KEYWORD_ENTRYID = 'b72ba2f5-612b-4ef6-832e-62089892b8d7'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="1f700fd2-5295-43a9-95ad-e73add4b5086"/>
+      <where>AB_KEYWORD_ENTRYID = '49bb6904-dd20-4ede-aaff-ae80131ed274'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="1f700fd2-5295-43a9-95ad-e73add4b5086"/>
+      <where>AB_KEYWORD_ENTRYID = '5213a48a-b6d2-47ee-8409-a4af7477535f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="1f700fd2-5295-43a9-95ad-e73add4b5086"/>
+      <where>AB_KEYWORD_ENTRYID = '045d0567-4535-4d22-84f2-95b3b0e23000'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="1f700fd2-5295-43a9-95ad-e73add4b5086"/>
+      <where>AB_KEYWORD_ENTRYID = 'e62da2f2-6352-4660-b2ff-1e8a552d298a'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c0448b78-0e78-4db6-895e-5d0d9952f961"/>
+      <where>AB_KEYWORD_ENTRYID = '115495eb-dff4-436d-8114-b9a7644586bf'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c0448b78-0e78-4db6-895e-5d0d9952f961"/>
+      <where>AB_KEYWORD_ENTRYID = '9212a797-4470-4170-b4d1-330a5d991625'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c0448b78-0e78-4db6-895e-5d0d9952f961"/>
+      <where>AB_KEYWORD_ENTRYID = '1f857be1-7de0-479f-bac8-59b22d48fe39'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c0448b78-0e78-4db6-895e-5d0d9952f961"/>
+      <where>AB_KEYWORD_ENTRYID = '19997ffa-bfe3-4f6a-82f8-e862acb24655'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c0448b78-0e78-4db6-895e-5d0d9952f961"/>
+      <where>AB_KEYWORD_ENTRYID = 'd8e2cc64-cc61-440e-b0fc-3d5b45d75ba0'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="923217a2-991e-444a-9a86-c3f56ba90f93"/>
+      <where>AB_KEYWORD_ENTRYID = 'b42caac9-8f8f-46e5-9f1c-d121cdf3ad8f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="923217a2-991e-444a-9a86-c3f56ba90f93"/>
+      <where>AB_KEYWORD_ENTRYID = '8a2d19c9-bc32-437e-9261-78ed30110e92'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="923217a2-991e-444a-9a86-c3f56ba90f93"/>
+      <where>AB_KEYWORD_ENTRYID = '46f55a58-dbe4-40ae-9306-481df9095088'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="923217a2-991e-444a-9a86-c3f56ba90f93"/>
+      <where>AB_KEYWORD_ENTRYID = 'afa8cf58-07e8-4ee9-b24e-96cb6fa76aec'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="923217a2-991e-444a-9a86-c3f56ba90f93"/>
+      <where>AB_KEYWORD_ENTRYID = 'c9483fb9-c295-43d2-94e0-8c949cf6dc47'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="923217a2-991e-444a-9a86-c3f56ba90f93"/>
+      <where>AB_KEYWORD_ENTRYID = '0e8eab64-4c79-4eed-9746-0ac6fc397620'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="923217a2-991e-444a-9a86-c3f56ba90f93"/>
+      <where>AB_KEYWORD_ENTRYID = '405e2b7b-20c2-4824-a8b5-c7a533784ef3'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ec9ac6e2-d2de-4e8e-bfad-bebd38c65026"/>
+      <where>AB_KEYWORD_ENTRYID = '97ec9a7e-a1dd-4167-bf7d-57ee3d79d46f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ec9ac6e2-d2de-4e8e-bfad-bebd38c65026"/>
+      <where>AB_KEYWORD_ENTRYID = '798c1720-901e-4eae-bab3-80f334830601'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ec9ac6e2-d2de-4e8e-bfad-bebd38c65026"/>
+      <where>AB_KEYWORD_ENTRYID = '53a01187-5306-4980-8c40-153e910dd115'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ec9ac6e2-d2de-4e8e-bfad-bebd38c65026"/>
+      <where>AB_KEYWORD_ENTRYID = '3d17defd-5b6e-4e19-816c-f9a19aca3cc0'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="5f94376f-18bb-41d5-8be7-f7dce020495c"/>
+      <where>AB_KEYWORD_ENTRYID = '9887b380-8e6a-4fab-a99c-46172cb9ecc5'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="5f94376f-18bb-41d5-8be7-f7dce020495c"/>
+      <where>AB_KEYWORD_ENTRYID = 'c228d007-5f1b-41a9-baaf-4bac444e2d63'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="5f94376f-18bb-41d5-8be7-f7dce020495c"/>
+      <where>AB_KEYWORD_ENTRYID = '9c24af78-bb51-4706-ae3c-35f450fc4034'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="5f94376f-18bb-41d5-8be7-f7dce020495c"/>
+      <where>AB_KEYWORD_ENTRYID = '612acb5c-9cde-4229-8910-6ca6eb7bed8c'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="5f94376f-18bb-41d5-8be7-f7dce020495c"/>
+      <where>AB_KEYWORD_ENTRYID = '711db73d-eed2-43a6-ac57-a608a831eb8d'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="8bf2b609-b422-401f-a6c5-7c07107cbb87"/>
+      <where>AB_KEYWORD_ENTRYID = '6a26d9c5-bc21-455e-828a-26e1b9b278da'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="8bf2b609-b422-401f-a6c5-7c07107cbb87"/>
+      <where>AB_KEYWORD_ENTRYID = '946b9f7d-c667-47a2-90f4-57935347aac5'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="8bf2b609-b422-401f-a6c5-7c07107cbb87"/>
+      <where>AB_KEYWORD_ENTRYID = '81a8a308-46e1-4cf6-8383-15736e45219c'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="8bf2b609-b422-401f-a6c5-7c07107cbb87"/>
+      <where>AB_KEYWORD_ENTRYID = 'f4bcb779-ea53-4ad6-bbcd-8681a3813a4c'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="8bf2b609-b422-401f-a6c5-7c07107cbb87"/>
+      <where>AB_KEYWORD_ENTRYID = '47272e85-ae18-4bd6-950f-449bc531c5c5'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="8bf2b609-b422-401f-a6c5-7c07107cbb87"/>
+      <where>AB_KEYWORD_ENTRYID = 'c046313e-d7af-4440-a3c1-0cdf2b6220ca'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ad91fa20-157b-4e57-b9ad-1281e40024b3"/>
+      <where>AB_KEYWORD_ENTRYID = '9d2f9605-1a5e-47d3-8920-168f5637e37f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ad91fa20-157b-4e57-b9ad-1281e40024b3"/>
+      <where>AB_KEYWORD_ENTRYID = 'ee893a1c-d007-46fe-a190-727124c4467b'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ad91fa20-157b-4e57-b9ad-1281e40024b3"/>
+      <where>AB_KEYWORD_ENTRYID = '191d7293-3b3f-4dc7-bbe2-9da1a897f7df'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ad91fa20-157b-4e57-b9ad-1281e40024b3"/>
+      <where>AB_KEYWORD_ENTRYID = '00a61337-d3d3-4e7e-bc48-cb08cabe01b3'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ab8d06bb-18eb-4fbe-9e00-ecb34bd38c8f"/>
+      <where>AB_KEYWORD_ENTRYID = 'b8409c4a-6447-408a-bd06-dfe67054a4f1'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ab8d06bb-18eb-4fbe-9e00-ecb34bd38c8f"/>
+      <where>AB_KEYWORD_ENTRYID = 'edba1a8f-766b-4dfa-9360-1a2aca8569d6'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ab8d06bb-18eb-4fbe-9e00-ecb34bd38c8f"/>
+      <where>AB_KEYWORD_ENTRYID = 'ed1b3d39-9cab-4c3c-84c5-438a8b67be53'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="58ff4cea-10b7-4cf9-b326-81337b5ddd48"/>
+      <where>AB_KEYWORD_ENTRYID = '9509c6b8-208a-4e97-bdcd-53642d0c7489'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="58ff4cea-10b7-4cf9-b326-81337b5ddd48"/>
+      <where>AB_KEYWORD_ENTRYID = 'd713c45a-6f87-4516-ae21-1d8f1c217949'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="58ff4cea-10b7-4cf9-b326-81337b5ddd48"/>
+      <where>AB_KEYWORD_ENTRYID = '410a389b-67d4-4155-8d9e-1e8d816ecfb9'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="db283e25-904d-41cb-ac20-3c80c85fa423"/>
+      <where>AB_KEYWORD_ENTRYID = 'eadf3ecb-ac35-4a94-879a-f6e85a72fa29'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="db283e25-904d-41cb-ac20-3c80c85fa423"/>
+      <where>AB_KEYWORD_ENTRYID = '4dcc3315-8a38-42d9-ba34-f8899b86ca85'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="923217a2-991e-444a-9a86-c3f56ba90f93"/>
+      <where>AB_KEYWORD_ENTRYID = '028af5dd-1071-4108-8685-ed7124376706'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="cda5deac-5b7c-4c98-9904-2eb3b224235d"/>
+      <where>AB_KEYWORD_ENTRYID = '75bd97bc-56f3-4ea3-a132-df3cb9cda071'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="cda5deac-5b7c-4c98-9904-2eb3b224235d"/>
+      <where>AB_KEYWORD_ENTRYID = '6e30d397-e31f-4ccb-96e9-51cf71d259fa'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="cda5deac-5b7c-4c98-9904-2eb3b224235d"/>
+      <where>AB_KEYWORD_ENTRYID = '722e83bc-148a-4762-abda-d491bf590bd5'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="cda5deac-5b7c-4c98-9904-2eb3b224235d"/>
+      <where>AB_KEYWORD_ENTRYID = '191617b2-09cc-4fe6-bc02-1cee746285d5'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="cda5deac-5b7c-4c98-9904-2eb3b224235d"/>
+      <where>AB_KEYWORD_ENTRYID = '87f97554-c335-4328-911a-345d8a9abd7d'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="866fd65f-131c-4038-99ce-78606971ec98"/>
+      <where>AB_KEYWORD_ENTRYID = '767b89c6-2461-4d0e-9b7a-dda33e5090c9'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="866fd65f-131c-4038-99ce-78606971ec98"/>
+      <where>AB_KEYWORD_ENTRYID = '2fa7cddb-1e2c-438f-8f16-92f245af09f4'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="866fd65f-131c-4038-99ce-78606971ec98"/>
+      <where>AB_KEYWORD_ENTRYID = '67ea4d33-b683-4a04-b2e3-4af54d6debcb'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="866fd65f-131c-4038-99ce-78606971ec98"/>
+      <where>AB_KEYWORD_ENTRYID = 'd7be200e-ffc0-47a7-b0bb-3da92f39b993'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="866fd65f-131c-4038-99ce-78606971ec98"/>
+      <where>AB_KEYWORD_ENTRYID = '3b836d42-9ecf-49b9-8df9-570c27860c01'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="866fd65f-131c-4038-99ce-78606971ec98"/>
+      <where>AB_KEYWORD_ENTRYID = '2a4e6516-8493-4dde-a9df-bf2efd4db0c8'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="866fd65f-131c-4038-99ce-78606971ec98"/>
+      <where>AB_KEYWORD_ENTRYID = '3e7f2a42-ad8b-48da-aa11-95525ca36d01'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="866fd65f-131c-4038-99ce-78606971ec98"/>
+      <where>AB_KEYWORD_ENTRYID = '11c05d41-78ec-4d7c-acbe-f94912f2386c'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="bfc9eb87-0292-4fa1-9c87-39666c2ae6d2"/>
+      <where>AB_KEYWORD_ENTRYID = 'ba369295-c717-48eb-ae76-314087375e06'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="bfc9eb87-0292-4fa1-9c87-39666c2ae6d2"/>
+      <where>AB_KEYWORD_ENTRYID = 'dcacb175-4c8a-4941-a417-69a971f52583'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="bfc9eb87-0292-4fa1-9c87-39666c2ae6d2"/>
+      <where>AB_KEYWORD_ENTRYID = '1a508899-e2bf-409d-8a57-3ca31c9c832d'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="3b0a4044-9cfd-4466-9edd-50876a926e76"/>
+      <where>AB_KEYWORD_ENTRYID = '3c734077-8677-4732-86ef-7df01d9646b3'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c0448b78-0e78-4db6-895e-5d0d9952f961"/>
+      <where>AB_KEYWORD_ENTRYID = 'b0123a07-0d21-4365-9aa2-c8be18c56141'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="b5afd40b-bfa7-4aee-89ea-06b8c7deb304"/>
+      <where>AB_KEYWORD_ENTRYID = 'c564719a-18ef-423e-b130-dp88b2b518ad'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="b5afd40b-bfa7-4aee-89ea-06b8c7deb304"/>
+      <where>AB_KEYWORD_ENTRYID = '6f4c6e49-36ca-4b98-ba83-c507203wawal'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="b5afd40b-bfa7-4aee-89ea-06b8c7deb304"/>
+      <where>AB_KEYWORD_ENTRYID = 'bb386131-ee36-9771-b458-6751f137a941'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="b5afd40b-bfa7-4aee-89ea-06b8c7deb304"/>
+      <where>AB_KEYWORD_ENTRYID = 'bb38aa51-ee36-9771-b458-6751f137a941'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e23c8316-d43a-4606-803e-d4488823cc52"/>
+      <where>AB_KEYWORD_ENTRYID = 'c564719a-18ef-423e-b130-dp88b2b51123'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e23c8316-d43a-4606-803e-d4488823cc52"/>
+      <where>AB_KEYWORD_ENTRYID = '6f4c6e49-36ca-4b98-ba83-c507203wa456'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e23c8316-d43a-4606-803e-d4488823cc52"/>
+      <where>AB_KEYWORD_ENTRYID = 'bb386131-ee36-9771-b458-6751f137a789'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e23c8316-d43a-4606-803e-d4488823cc52"/>
+      <where>AB_KEYWORD_ENTRYID = 'bb38aa51-ee36-9771-b458-6751f137a999'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e23c8316-d43a-4606-803e-d4488823cc52"/>
+      <where>AB_KEYWORD_ENTRYID = 'beb7691f-ff9e-4344-89e1-d2664f7384e0'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e23c8316-d43a-4606-803e-d4488823cc52"/>
+      <where>AB_KEYWORD_ENTRYID = '267d1707-99db-40fa-914a-e36ba22e3ad6'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="43bffa8e-581a-4854-917b-c75e9119921f"/>
+      <where>AB_KEYWORD_ENTRYID = '8d95cad1-3ab2-4b6c-9b38-064cb914216d'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="43bffa8e-581a-4854-917b-c75e9119921f"/>
+      <where>AB_KEYWORD_ENTRYID = '3e5036a1-43a1-4bb1-ad56-ed42df7c9538'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="43bffa8e-581a-4854-917b-c75e9119921f"/>
+      <where>AB_KEYWORD_ENTRYID = '0759da45-5a5b-4163-a3a1-6a19f5a196c5'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="59790e82-72d4-4682-8e4d-df93ccb35c64"/>
+      <where>AB_KEYWORD_ENTRYID = '0dc9b27b-56d8-4650-92ee-bf85a3c67cb3'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="59790e82-72d4-4682-8e4d-df93ccb35c64"/>
+      <where>AB_KEYWORD_ENTRYID = 'b1f5ea38-1b8c-47a8-a8ad-4c6ed9c26cda'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="59790e82-72d4-4682-8e4d-df93ccb35c64"/>
+      <where>AB_KEYWORD_ENTRYID = '98f4cab1-74b8-4a23-a99a-c3624711beab'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="9e2ad22e-be5f-4f11-b273-42d7d7b5f946"/>
+      <where>AB_KEYWORD_ENTRYID = '62cb479d-70b2-4cb4-91f5-5d1352f2131b'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="9e2ad22e-be5f-4f11-b273-42d7d7b5f946"/>
+      <where>AB_KEYWORD_ENTRYID = '73b34a7c-5921-461c-8cf5-17e3aba01bd0'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="9e2ad22e-be5f-4f11-b273-42d7d7b5f946"/>
+      <where>AB_KEYWORD_ENTRYID = '7ef45db6-9151-45da-adb9-8e7759390ecd'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="0e8217d7-6712-4c16-80d4-d5c9c26a4f47"/>
+      <where>AB_KEYWORD_ENTRYID = '789667fe-519f-4dea-b691-62c14447d694'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="83ea3621-22d8-403b-a73e-5d63a6dee434"/>
+      <where>AB_KEYWORD_ENTRYID = '7ac75d3d-243c-49d2-9f50-25403fab003a'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="83ea3621-22d8-403b-a73e-5d63a6dee434"/>
+      <where>AB_KEYWORD_ENTRYID = '2b9c1bdf-b0bb-447d-a57d-e369cf475fca'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="83ea3621-22d8-403b-a73e-5d63a6dee434"/>
+      <where>AB_KEYWORD_ENTRYID = '45438bcf-74cf-408f-bc4d-5d70595369c8'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="8653e732-0a48-4697-a858-ce58a524553c"/>
+      <where>AB_KEYWORD_ENTRYID = '676f498f-3f51-459f-8e07-feec7b604245'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="8653e732-0a48-4697-a858-ce58a524553c"/>
+      <where>AB_KEYWORD_ENTRYID = '14f5e2a4-4998-400f-b857-90e14e8736da'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="8653e732-0a48-4697-a858-ce58a524553c"/>
+      <where>AB_KEYWORD_ENTRYID = 'd3ae8077-36db-4f52-8f90-b0ebbb6773d7'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="dc580c6b-6748-4eea-97fa-9a08776e395f"/>
+      <where>AB_KEYWORD_ENTRYID = '27ded05a-99c1-4810-91ee-cbb1e4ddec85'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="dc580c6b-6748-4eea-97fa-9a08776e395f"/>
+      <where>AB_KEYWORD_ENTRYID = '4409adc1-0130-44d3-8aa9-773ff3ab0816'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c1295c26-c580-42b8-85dc-6c08811c812c"/>
+      <where>AB_KEYWORD_ENTRYID = 'f3c4cf95-edb6-4637-9186-9ba25ebf927d'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6818d2a6-f47a-4d72-a0b2-3fc6fc74fb27"/>
+      <where>AB_KEYWORD_ENTRYID = '0b06db5c-1d00-4d01-b8a9-f280a4f69cbc'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6818d2a6-f47a-4d72-a0b2-3fc6fc74fb27"/>
+      <where>AB_KEYWORD_ENTRYID = '1061168a-4b17-4ba5-be70-948c0dd78f20'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6818d2a6-f47a-4d72-a0b2-3fc6fc74fb27"/>
+      <where>AB_KEYWORD_ENTRYID = '890a7832-f06f-4e51-8744-73aa8ddea4f8'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6818d2a6-f47a-4d72-a0b2-3fc6fc74fb27"/>
+      <where>AB_KEYWORD_ENTRYID = 'a5b50ba3-0fb9-4fbe-9e98-4d6c53b329af'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6818d2a6-f47a-4d72-a0b2-3fc6fc74fb27"/>
+      <where>AB_KEYWORD_ENTRYID = '9d4cdd61-9f6a-46e1-bef0-eaf16613aea5'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6818d2a6-f47a-4d72-a0b2-3fc6fc74fb27"/>
+      <where>AB_KEYWORD_ENTRYID = '2f742253-c287-40ab-838f-ec797a16fdce'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="bb351e6a-c35b-4af6-8540-898b2cd368a4"/>
+      <where>AB_KEYWORD_ENTRYID = '2ef84e0e-988a-44b4-9d14-3461555d2f18'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f3986324-87ce-485f-8688-c4e228c39fc6"/>
+      <where>AB_KEYWORD_ENTRYID = '98075159-ecc2-4851-a971-6f3123a495d3'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="25cb446a-24cd-4ebd-aad2-320da20830da"/>
+      <where>AB_KEYWORD_ENTRYID = '2710c44b-73a7-4da5-b828-c7ac572ab79c'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="25cb446a-24cd-4ebd-aad2-320da20830da"/>
+      <where>AB_KEYWORD_ENTRYID = '82d04090-3ef1-4eaf-9836-0490733a078f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="25cb446a-24cd-4ebd-aad2-320da20830da"/>
+      <where>AB_KEYWORD_ENTRYID = 'd1d6a461-1bbf-4f03-ac99-33a2d38a36e3'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="76fc02b9-a1b6-4c76-bdd5-a52d0e1ef286"/>
+      <where>AB_KEYWORD_ENTRYID = '6e95db61-6991-41c8-b2bb-e2b39c38efa3'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="76fc02b9-a1b6-4c76-bdd5-a52d0e1ef286"/>
+      <where>AB_KEYWORD_ENTRYID = '250e5cd6-1842-46b1-b968-03988255eaba'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="76fc02b9-a1b6-4c76-bdd5-a52d0e1ef286"/>
+      <where>AB_KEYWORD_ENTRYID = 'ec51253e-9b45-468d-aafa-42331e54f32b'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c561d74a-44dc-4b57-acad-055f0f557b6f"/>
+      <where>AB_KEYWORD_ENTRYID = 'b189770f-f36f-4256-b1c9-866010a6aa95'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c561d74a-44dc-4b57-acad-055f0f557b6f"/>
+      <where>AB_KEYWORD_ENTRYID = '0ecc8e3d-2ff7-40fa-84be-d45988d32ae7'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="0369f43a-e46d-42f7-bfe3-5bc2c7d9d584"/>
+      <where>AB_KEYWORD_ENTRYID = '5c745e67-6ceb-4dde-9c98-0ff6102fff5a'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="0369f43a-e46d-42f7-bfe3-5bc2c7d9d584"/>
+      <where>AB_KEYWORD_ENTRYID = 'd1c5d5bf-5ce5-4a9a-a5ec-4a7dabd6cf0a'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="0369f43a-e46d-42f7-bfe3-5bc2c7d9d584"/>
+      <where>AB_KEYWORD_ENTRYID = '82fe63e7-14fd-4c07-94fb-6dd05058e570'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="18e6262a-80a0-4f71-baeb-36a6937e356a"/>
+      <where>AB_KEYWORD_ENTRYID = 'e72a7d5b-7608-4c87-a977-d4a8994e45b4'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="18e6262a-80a0-4f71-baeb-36a6937e356a"/>
+      <where>AB_KEYWORD_ENTRYID = 'c38a3169-63f8-41f7-88a7-3358b2519a4a'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="18e6262a-80a0-4f71-baeb-36a6937e356a"/>
+      <where>AB_KEYWORD_ENTRYID = 'ffb1a706-348c-42cd-8b13-6f5e74181ba3'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="18e6262a-80a0-4f71-baeb-36a6937e356a"/>
+      <where>AB_KEYWORD_ENTRYID = 'a64796f6-e2b7-4c36-b9da-13df09d9ffed'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="18e6262a-80a0-4f71-baeb-36a6937e356a"/>
+      <where>AB_KEYWORD_ENTRYID = '3d0af900-1ab6-4725-bf39-b80581d3907f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="3d8699cb-e0a0-483a-b52d-d5bdfe2ed336"/>
+      <where>AB_KEYWORD_ENTRYID = 'dd955f03-a36d-4217-9449-aa05dcc1e51a'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="3d8699cb-e0a0-483a-b52d-d5bdfe2ed336"/>
+      <where>AB_KEYWORD_ENTRYID = '6d361b4d-5cc6-48eb-83ee-4a8573ad466a'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="3d8699cb-e0a0-483a-b52d-d5bdfe2ed336"/>
+      <where>AB_KEYWORD_ENTRYID = '32f48ab8-691e-49e6-951b-be088e7c60ff'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e22ca44f-5d2d-47b6-a844-6801fb6b877f"/>
+      <where>AB_KEYWORD_ENTRYID = 'd5b80d62-9c28-4267-ad46-da6bdc021c28'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e22ca44f-5d2d-47b6-a844-6801fb6b877f"/>
+      <where>AB_KEYWORD_ENTRYID = '0914014a-1b85-49dc-9d12-4fcb3ebb6e4a'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e22ca44f-5d2d-47b6-a844-6801fb6b877f"/>
+      <where>AB_KEYWORD_ENTRYID = '5c94a850-4025-4981-b6bf-0eda7680c820'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="598681d4-5649-4a9d-b918-f35fd69a2b0f"/>
+      <where>AB_KEYWORD_ENTRYID = 'ace4957a-fff8-4137-9670-a66dafd95f6f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="598681d4-5649-4a9d-b918-f35fd69a2b0f"/>
+      <where>AB_KEYWORD_ENTRYID = 'd0ff5f49-00ee-40c1-ac24-ee52d72590cd'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="5a49ccc0-bf6b-4842-81d9-78d8841c66a2"/>
+      <where>AB_KEYWORD_ENTRYID = 'a33d4ac6-0aa4-4f43-9d9f-b096cd49bd6f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="5a49ccc0-bf6b-4842-81d9-78d8841c66a2"/>
+      <where>AB_KEYWORD_ENTRYID = '3225b41e-43e1-4e5d-bfdd-1c595d1a5610'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="288cd7a1-3cdb-43bc-8832-ffb58e651956"/>
+      <where>AB_KEYWORD_ENTRYID = '538d03cc-8535-474a-bf16-05e654815863'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="288cd7a1-3cdb-43bc-8832-ffb58e651956"/>
+      <where>AB_KEYWORD_ENTRYID = 'c3c66fa1-185e-40c5-8ff7-3e7b02466ed1'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="50ecc8e7-15e3-4a40-8028-d6de5241b88e"/>
+      <where>AB_KEYWORD_ENTRYID = '678f61e5-ef27-4e1c-b52b-0e19188b038d'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="50ecc8e7-15e3-4a40-8028-d6de5241b88e"/>
+      <where>AB_KEYWORD_ENTRYID = 'f568c222-7ac5-475e-b916-cea0e0e8612a'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="50ecc8e7-15e3-4a40-8028-d6de5241b88e"/>
+      <where>AB_KEYWORD_ENTRYID = 'b5f402a0-29a0-43e9-8db3-454fdbcfc9d1'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="50ecc8e7-15e3-4a40-8028-d6de5241b88e"/>
+      <where>AB_KEYWORD_ENTRYID = '1c40a2de-e6c1-469b-b324-d7089893ca5c'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="dbd944bc-0c18-4acc-b4da-2cf382309459"/>
+      <where>AB_KEYWORD_ENTRYID = '0fdcfc0f-ba82-4881-813d-9f169339ab57'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="dbd944bc-0c18-4acc-b4da-2cf382309459"/>
+      <where>AB_KEYWORD_ENTRYID = '6aaddcc6-a94e-4267-a52e-f0dd1df62023'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="dbd944bc-0c18-4acc-b4da-2cf382309459"/>
+      <where>AB_KEYWORD_ENTRYID = '1290323b-82d4-4f34-95d7-44c453eef3bb'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="dbd944bc-0c18-4acc-b4da-2cf382309459"/>
+      <where>AB_KEYWORD_ENTRYID = '6f35ab82-7905-472a-b635-954bd5fac1e5'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="dbd944bc-0c18-4acc-b4da-2cf382309459"/>
+      <where>AB_KEYWORD_ENTRYID = 'faa99798-c68f-435a-95d5-77bcd2bbabef'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="38df36cd-2600-4397-a272-0defa1e79e5c"/>
+      <where>AB_KEYWORD_ENTRYID = '5e5524d7-c8be-4bd2-b9cf-1974d8c7a2f5'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="38df36cd-2600-4397-a272-0defa1e79e5c"/>
+      <where>AB_KEYWORD_ENTRYID = '9882b909-b952-4f47-ac63-bb49f8c8eb6a'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="38df36cd-2600-4397-a272-0defa1e79e5c"/>
+      <where>AB_KEYWORD_ENTRYID = '383aa333-cc14-4ea5-9baf-23aaa7d7ec4e'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="38df36cd-2600-4397-a272-0defa1e79e5c"/>
+      <where>AB_KEYWORD_ENTRYID = '0d9eab1f-8e07-4b0d-a92b-bdc6a5b3bd18'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="38df36cd-2600-4397-a272-0defa1e79e5c"/>
+      <where>AB_KEYWORD_ENTRYID = '18abd018-4eb4-44ae-b0c0-0e63ad6286b1'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="0c4c05b5-8294-441f-84d4-3424f1c38732"/>
+      <where>AB_KEYWORD_ENTRYID = 'b5087465-4a80-4f2e-8515-7598fea11f56'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="0c4c05b5-8294-441f-84d4-3424f1c38732"/>
+      <where>AB_KEYWORD_ENTRYID = '460f37dd-2589-499f-89be-7184ff5e0c8a'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="63530dfc-c3e6-447b-b3ed-b52adae42a68"/>
+      <where>AB_KEYWORD_ENTRYID = '8898350e-fd68-45b5-97d6-618d867e53b7'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="63530dfc-c3e6-447b-b3ed-b52adae42a68"/>
+      <where>AB_KEYWORD_ENTRYID = 'f2fb362a-97d3-4c1d-8496-20abc99973ec'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ad91fa20-157b-4e57-b9ad-1281e40024b3"/>
+      <where>AB_KEYWORD_ENTRYID = '49dc7423-21c7-47b1-ac1e-b01e8eb5c822'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e685dcfe-cbf9-4a3f-b45f-3f449779a48f"/>
+      <where>AB_KEYWORD_ENTRYID = 'a18e7a37-c5f6-4f7b-8db6-3018dedbd43f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e685dcfe-cbf9-4a3f-b45f-3f449779a48f"/>
+      <where>AB_KEYWORD_ENTRYID = '9f11c52f-4c79-4027-877a-0f6eb828fa22'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e23c8316-d43a-4606-803e-d4488823cc52"/>
+      <where>AB_KEYWORD_ENTRYID = '0d30ed22-bb79-450a-a027-6786e7bb6028'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="35d717d5-4260-4a33-8183-a430e3624822"/>
+      <where>AB_KEYWORD_ENTRYID = '50b50394-6d77-4ded-a76c-1e07c08bbdcb'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="35d717d5-4260-4a33-8183-a430e3624822"/>
+      <where>AB_KEYWORD_ENTRYID = '4c851554-2cef-4e0d-823b-bf225b084964'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="35d717d5-4260-4a33-8183-a430e3624822"/>
+      <where>AB_KEYWORD_ENTRYID = '3c075444-1ded-4fbd-8095-e3a71ade1f44'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '0a3970d9-c08e-48f2-97b7-8b62bd2df79a'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '305a6c15-9fb8-46f0-8855-cfcf3ac1fbe7'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '4bec1be3-13c4-42d8-9e88-a351fdddf5ba'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '102ddb10-a355-4487-9478-33d816eaff7a'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '0bf9fd30-8e88-460b-bbcd-fcc8b66c1a95'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = 'eeb1b0db-af21-4318-8517-ced5eaad8476'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '480de65f-73e8-4108-af2e-009b442613b0'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '9df3b34f-8b63-4360-bb56-8be43c689db6'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '8579a002-c7f4-4755-ab06-4011ac659760'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '64c307b5-9794-4671-b0ff-ce483ec2e604'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '6ace6e7c-6a9f-44d8-9cca-67ce7dad2aee'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = 'da3acc3a-457e-4c88-a477-8abdaf819539'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '2e7952b1-56a8-484d-9d82-564236c30d20'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '96534736-0247-4596-a8db-f6d7eee611c5'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '9ed26d58-cc2f-436e-b67b-afbb9f102bf4'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '52bad941-02be-4c63-94a7-979e8ecef0c9'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '8bf354dc-4278-493e-9824-40367382290f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '97e27378-e733-4629-b0c4-515faf89da7e'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = 'bc4e4390-e1b9-4054-8ffd-6fd7b1b5096a'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '2aec9eed-a4f2-473a-8ae0-563706eb6cd4'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '9e2da66c-380c-40a4-9104-722015ff4b70'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '019fcac3-4eb2-45ff-a936-c59da4a2da04'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = 'a4872b5e-8b41-4b93-a663-fd7aa748b3a7'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = 'c92b180a-a7d7-4c0c-8fbb-ce8abcd5214d'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '6164631f-3378-412d-8c80-8be0aaca7c77'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '6164631f-3378-412d-8c80-8be0aaca7c65'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="8ef58a64-8905-4d5d-b965-40c7e12a0b1e"/>
+      <where>AB_KEYWORD_ENTRYID = '81fdc4ce-b45c-4481-b9cc-77f69a46a465'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="8ef58a64-8905-4d5d-b965-40c7e12a0b1e"/>
+      <where>AB_KEYWORD_ENTRYID = '31a341e0-fce1-4efe-be3f-611166ad83be'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="8ef58a64-8905-4d5d-b965-40c7e12a0b1e"/>
+      <where>AB_KEYWORD_ENTRYID = 'dc700194-78c3-4a34-a196-4f0d8e19f0d5'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="8ef58a64-8905-4d5d-b965-40c7e12a0b1e"/>
+      <where>AB_KEYWORD_ENTRYID = '5dd157b1-19e4-4b76-8483-b9eb53fa71eb'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="380983a1-f0b2-4d0b-b38b-5c889079e414"/>
+      <where>AB_KEYWORD_ENTRYID = 'c823c666-ca18-4795-9f2d-d9dbfb7d4028'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="380983a1-f0b2-4d0b-b38b-5c889079e414"/>
+      <where>AB_KEYWORD_ENTRYID = '30b9c5d2-0aa2-489d-8746-ddb53d6e235d'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="380983a1-f0b2-4d0b-b38b-5c889079e414"/>
+      <where>AB_KEYWORD_ENTRYID = '5101860e-84c9-49ae-8947-383c0c819090'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="380983a1-f0b2-4d0b-b38b-5c889079e414"/>
+      <where>AB_KEYWORD_ENTRYID = 'b72d5352-7de0-4d54-89db-c4e2e87352c9'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="3b0a4044-9cfd-4466-9edd-50876a926e76"/>
+      <where>AB_KEYWORD_ENTRYID = '56e9b1a8-2ccd-4a48-8563-70d31ac108cf'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="a5206aff-79f8-413e-a76d-4cb9d39694d3"/>
+      <where>AB_KEYWORD_ENTRYID = '5506389d-b2ba-4774-9fa0-8e68f95816a0'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="a5206aff-79f8-413e-a76d-4cb9d39694d3"/>
+      <where>AB_KEYWORD_ENTRYID = 'ddb8d043-f207-41b8-987c-7f539eb5c2eb'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ed197cdf-bdd1-4e95-b910-dca348abf3be"/>
+      <where>AB_KEYWORD_ENTRYID = '78367cf3-111a-4852-9a4f-a505ad2953cd'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ed197cdf-bdd1-4e95-b910-dca348abf3be"/>
+      <where>AB_KEYWORD_ENTRYID = '94cc11ec-a384-439f-b5c7-70d7168959a5'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ed197cdf-bdd1-4e95-b910-dca348abf3be"/>
+      <where>AB_KEYWORD_ENTRYID = 'd8b78606-30bf-4633-9aaf-4da691ef6d8f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c03a5abe-0f21-41a3-8506-9b13db7ea407"/>
+      <where>AB_KEYWORD_ENTRYID = '579e1798-acd0-4fa6-8dbc-02c533e741f3'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c03a5abe-0f21-41a3-8506-9b13db7ea407"/>
+      <where>AB_KEYWORD_ENTRYID = 'f472f6f9-d603-42d3-a413-6b549f4c2aa4'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c03a5abe-0f21-41a3-8506-9b13db7ea407"/>
+      <where>AB_KEYWORD_ENTRYID = 'de02cd0d-b3ab-43e0-ae2f-f1b76e2323d1'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c03a5abe-0f21-41a3-8506-9b13db7ea407"/>
+      <where>AB_KEYWORD_ENTRYID = '012f38fa-c7ee-4898-bed5-4652459dab23'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c03a5abe-0f21-41a3-8506-9b13db7ea407"/>
+      <where>AB_KEYWORD_ENTRYID = '4b9e19fb-0385-4033-8a03-6d37c43c6b01'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c03a5abe-0f21-41a3-8506-9b13db7ea407"/>
+      <where>AB_KEYWORD_ENTRYID = '7e5ab737-a3e6-463c-974e-eb6021730d4a'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c03a5abe-0f21-41a3-8506-9b13db7ea407"/>
+      <where>AB_KEYWORD_ENTRYID = '5e46546a-ee2e-41a2-b87f-a55e4c88df87'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c03a5abe-0f21-41a3-8506-9b13db7ea407"/>
+      <where>AB_KEYWORD_ENTRYID = 'ab66f18f-040d-44c1-b08c-949fa3928e37'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c03a5abe-0f21-41a3-8506-9b13db7ea407"/>
+      <where>AB_KEYWORD_ENTRYID = '4eba5820-4c2d-4a77-95d2-c6f12843d02c'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c03a5abe-0f21-41a3-8506-9b13db7ea407"/>
+      <where>AB_KEYWORD_ENTRYID = '7fff1c17-66a0-44ec-a6f1-f0364602c0de'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c03a5abe-0f21-41a3-8506-9b13db7ea407"/>
+      <where>AB_KEYWORD_ENTRYID = '7a32adf8-13ac-4943-a443-4d2f5340a8a5'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c03a5abe-0f21-41a3-8506-9b13db7ea407"/>
+      <where>AB_KEYWORD_ENTRYID = '22c13c1e-1c26-42b6-8e24-c522ec7f16a9'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c03a5abe-0f21-41a3-8506-9b13db7ea407"/>
+      <where>AB_KEYWORD_ENTRYID = '50cb1b5f-2215-40e8-aa1e-daf34dc8a06b'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c03a5abe-0f21-41a3-8506-9b13db7ea407"/>
+      <where>AB_KEYWORD_ENTRYID = 'f7f73dec-b461-4bb4-8d72-4cb63909dbba'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c03a5abe-0f21-41a3-8506-9b13db7ea407"/>
+      <where>AB_KEYWORD_ENTRYID = 'bd4300ce-8e9b-4efc-b995-8477ab374fc3'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="c03a5abe-0f21-41a3-8506-9b13db7ea407"/>
+      <where>AB_KEYWORD_ENTRYID = '5534a8d8-da1d-4448-835a-97cdcfee8907'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="30d87734-9229-460d-abf4-73ce73466534"/>
+      <where>AB_KEYWORD_ENTRYID = '9d427420-2c87-4ada-9349-a799972bda0f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="30d87734-9229-460d-abf4-73ce73466534"/>
+      <where>AB_KEYWORD_ENTRYID = '2f740f93-12ed-4e22-a158-adba5da81b40'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="30d87734-9229-460d-abf4-73ce73466534"/>
+      <where>AB_KEYWORD_ENTRYID = 'dd276100-b867-489c-8128-a3b71aa7564f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="7147c61b-962d-426c-84a2-aaa381aeab8b"/>
+      <where>AB_KEYWORD_ENTRYID = '91d7417e-fd45-429e-9ce9-a46f25c0c1d1'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="7147c61b-962d-426c-84a2-aaa381aeab8b"/>
+      <where>AB_KEYWORD_ENTRYID = 'c0147b73-f678-4136-b3c4-0fde7e943a84'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="7147c61b-962d-426c-84a2-aaa381aeab8b"/>
+      <where>AB_KEYWORD_ENTRYID = '4ac4c7e1-d73b-4a26-9a6d-bc06505b9611'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="7147c61b-962d-426c-84a2-aaa381aeab8b"/>
+      <where>AB_KEYWORD_ENTRYID = 'facb77a6-5bc1-4e2f-8dd0-72200b57c326'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="7147c61b-962d-426c-84a2-aaa381aeab8b"/>
+      <where>AB_KEYWORD_ENTRYID = '036cbf6f-a8bd-4f25-b885-f1a689927bf1'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f0abc80c-7d9d-4bb5-8d41-d204550a028e"/>
+      <where>AB_KEYWORD_ENTRYID = '17905c4d-1c88-4cee-83da-164c13bbe848'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f0abc80c-7d9d-4bb5-8d41-d204550a028e"/>
+      <where>AB_KEYWORD_ENTRYID = '2f162837-868a-4517-810e-677cd423be56'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e35fdba2-11ba-4d8c-b443-5ab49a19dcc1"/>
+      <where>AB_KEYWORD_ENTRYID = 'b6618b25-ec10-413f-9048-a5d8e792d161'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="e35fdba2-11ba-4d8c-b443-5ab49a19dcc1"/>
+      <where>AB_KEYWORD_ENTRYID = '45738bd4-1d7f-46b1-a863-93d183bbd238'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ecfee92f-0563-44be-98f5-1c304df8d9d0"/>
+      <where>AB_KEYWORD_ENTRYID = 'f241b36a-c2fe-40be-9e2e-8293c700d096'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="ecfee92f-0563-44be-98f5-1c304df8d9d0"/>
+      <where>AB_KEYWORD_ENTRYID = '00a72718-554e-46ab-b83c-fb9b81be4be6'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="50ecc8e7-15e3-4a40-8028-d6de5241b88e"/>
+      <where>AB_KEYWORD_ENTRYID = 'daa6d8d8-fdc6-4fb2-9677-9ccc1f8a9b81'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="b3765719-9d07-41c4-a813-18bc9056db1a"/>
+      <where>AB_KEYWORD_ENTRYID = '66d1563a-a76c-47ca-af6b-38586a2f3ce3'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="0e8217d7-6712-4c16-80d4-d5c9c26a4f47"/>
+      <where>AB_KEYWORD_ENTRYID = 'e36f44a3-88b6-4b1d-a77a-0108b8165b9b'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '8c24ac4a-23cc-4a16-98a0-362e72b77977'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = 'cb227318-924a-4df4-af98-eb6814ce21a1'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = 'b1cdbbda-5181-4dbd-b786-4d180c1248aa'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = 'dd5abf99-b43d-4b3d-b4b0-376c70572490'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '345fe723-73dc-4687-afd2-c4ebc16aebdc'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '370672a7-946a-43b6-98dd-532422bef388'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '01f18fd8-44c1-43ec-8601-bf1fe7e62700'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '504d48d1-1a0d-437a-adc9-38501679137a'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = 'fde1a4d1-d77e-494c-a1e4-2ef82abec246'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f2cc6b40-1c1c-4207-93a3-0e225e2630c7"/>
+      <where>AB_KEYWORD_ENTRYID = '53e06704-e28d-49b5-a49f-e40ca250ee6a'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f118b0c3-c65f-4c83-8f5a-cb885fa3323a"/>
+      <where>AB_KEYWORD_ENTRYID = 'DISCUSSIONACTIVE                    '</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="f118b0c3-c65f-4c83-8f5a-cb885fa3323a"/>
+      <where>AB_KEYWORD_ENTRYID = 'DISCUSSIONCLOSED                    '</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6a4a5250-6231-4bf7-8c16-bb5994c4e2d0"/>
+      <where>AB_KEYWORD_ENTRYID = 'KNOWLEDGEBASE                       '</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="6a4a5250-6231-4bf7-8c16-bb5994c4e2d0"/>
+      <where>AB_KEYWORD_ENTRYID = 'EDITORIAL                           '</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="37f65755-e1c9-4912-a7d3-2922c754ed8d"/>
+      <where>AB_KEYWORD_ENTRYID = 'INTERNAL                            '</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="37f65755-e1c9-4912-a7d3-2922c754ed8d"/>
+      <where>AB_KEYWORD_ENTRYID = 'PARTNER                             '</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="37f65755-e1c9-4912-a7d3-2922c754ed8d"/>
+      <where>AB_KEYWORD_ENTRYID = 'PUBLIC                              '</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="623bdc81-a99b-4865-958e-85abd0ed9b6a"/>
+      <where>AB_KEYWORD_ENTRYID = '70f352e7-81dc-4d44-9f12-30bfc2cc39f1'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="623bdc81-a99b-4865-958e-85abd0ed9b6a"/>
+      <where>AB_KEYWORD_ENTRYID = '1b6b5070-8028-42f9-abfd-ee64142801d1'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="9d1cb7d0-931e-4d5c-a54f-e5c917228157"/>
+      <where>AB_KEYWORD_ENTRYID = '9531f6ba-dbbc-43c2-ba7a-761c6e44ca3b'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="9d1cb7d0-931e-4d5c-a54f-e5c917228157"/>
+      <where>AB_KEYWORD_ENTRYID = 'b063bd18-0f60-4e5f-b153-62acb984a4b2'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="1fa14f21-6aad-4bea-9106-7265db39e052"/>
+      <where>AB_KEYWORD_ENTRYID = '97c73c26-c90e-410b-8732-47cbeaf986df'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="1fa14f21-6aad-4bea-9106-7265db39e052"/>
+      <where>AB_KEYWORD_ENTRYID = '8d853c34-0896-45db-989d-131a15bd0c6a'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="1fa14f21-6aad-4bea-9106-7265db39e052"/>
+      <where>AB_KEYWORD_ENTRYID = '40212bc7-df71-4131-965b-344e6baf7c57'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="1fa14f21-6aad-4bea-9106-7265db39e052"/>
+      <where>AB_KEYWORD_ENTRYID = 'df052065-a32d-4c17-a229-60abcaf2736f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="1fa14f21-6aad-4bea-9106-7265db39e052"/>
+      <where>AB_KEYWORD_ENTRYID = '3b080d0e-9301-47f2-9ead-10f2b5aaf701'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="1fa14f21-6aad-4bea-9106-7265db39e052"/>
+      <where>AB_KEYWORD_ENTRYID = 'a343cbe0-af9c-464c-861e-65f00eab392f'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="14adf8de-aa3a-4c89-99bd-49477c2fa8a6"/>
+      <where>AB_KEYWORD_ENTRYID = '264b8a1c-45c8-4b41-9d11-4b6fb538b79c'</where>
+    </update>
+    <update tableName="AB_KEYWORD_ENTRY">
+      <column name="AB_KEYWORD_CATEGORY_ID" value="14adf8de-aa3a-4c89-99bd-49477c2fa8a6"/>
+      <where>AB_KEYWORD_ENTRYID = '0af9044d-6eeb-4db0-be95-91e63a30aa19'</where>
+    </update>
+  </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Keywords/add_keywordCategory.xml b/.liquibase/Data_alias/basic/2021.0.0/Keywords/add_keywordCategory.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4ba2d4ae0fc3b21ee08afe99dbea8a804e6cd114
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Keywords/add_keywordCategory.xml
@@ -0,0 +1,20 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="t.lutzenberger" id="d0da3801-e570-40ab-97ec-9f7946f7229c">
+        <createTable tableName="AB_KEYWORD_CATEGORY">
+            <column name="AB_KEYWORD_CATEGORYID" type="CHAR(36)">
+                <constraints primaryKey="true" primaryKeyName="PK_KEYWORDCATEGORY_KEYWORDCATEGORYID"/>
+            </column>
+            <column name="NAME" type="VARCHAR(80)">
+                <constraints nullable="false"/>
+            </column>
+            <column name="SORTINGBY" type="INTEGER">
+                <constraints nullable="false"/>
+            </column>
+            <column name="SORTINGDIRECTION" type="VARCHAR(4)">
+                <constraints nullable="false"/>
+            </column>
+        </createTable>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Keywords/changelog.xml b/.liquibase/Data_alias/basic/2021.0.0/Keywords/changelog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f7518d51df313cea8d5a12e4842c467033466ffe
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Keywords/changelog.xml
@@ -0,0 +1,7 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+                   <include relativeToChangelogFile="true" file="add_keywordCategory.xml"/>
+                   <include relativeToChangelogFile="true" file="update_keywordEntry.xml"/>
+                   <include relativeToChangelogFile="true" file="update_keywordAttribute.xml"/>
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Keywords/update_keywordAttribute.xml b/.liquibase/Data_alias/basic/2021.0.0/Keywords/update_keywordAttribute.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b75f38f1225374b99e81ef181f0836cb864d1bd8
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Keywords/update_keywordAttribute.xml
@@ -0,0 +1,12 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="t.lutzenberger" id="a3c9ffe8-f7e0-4924-856a-73ecea202750">
+        <addColumn tableName="AB_KEYWORD_ATTRIBUTE">
+            <column name="AB_KEYWORD_CATEGORY_ID" type="CHAR(36)" />
+        </addColumn>
+        <dropNotNullConstraint  tableName="AB_KEYWORD_ATTRIBUTE"
+                                columnName="CONTAINER"  
+                                columnDataType="VARCHAR(80)"/>  
+    </changeSet>
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Keywords/update_keywordEntry.xml b/.liquibase/Data_alias/basic/2021.0.0/Keywords/update_keywordEntry.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e45e792dbb96364b3b15a05be548452110001a70
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Keywords/update_keywordEntry.xml
@@ -0,0 +1,12 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="t.lutzenberger" id="58652a09-7d8e-4a9d-995e-04eb8bcbc7cf">
+        <addColumn tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_CATEGORY_ID" type="CHAR(36)"/>
+        </addColumn>
+        <dropNotNullConstraint  tableName="AB_KEYWORD_ENTRY"
+                               columnName="CONTAINER"  
+                                columnDataType="VARCHAR(80)"/>  
+    </changeSet>
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/2021.0.0/MissingIndizes/add_MissingIndizes.xml b/.liquibase/Data_alias/basic/2021.0.0/MissingIndizes/add_MissingIndizes.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b86da6372b514d898bc54f5883b43fc579d7a057
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/MissingIndizes/add_MissingIndizes.xml
@@ -0,0 +1,37 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+  <changeSet author="b.ulrich" id="50062c3c-f2db-4be1-854f-fc44110fd160">
+    <createIndex tableName="VISITRECOMMENDATION" indexName="IDX_VISITRECOMMEND_CONPERS_ID">
+        <column name="CONTACT_PERSON_ID"/>
+    </createIndex>
+    <createIndex tableName="DISTRICTCONTACT" indexName="IDX_DISTRTCON_ADVCONTACTID_ID">
+        <column name="ADVISER_CONTACT_ID"/>
+    </createIndex>
+    <createIndex tableName="DISTRICTCONTACT" indexName="IDX_DISTRTCON_DISTRICT_ID">
+        <column name="DISTRICT_ID"/>
+    </createIndex>
+    <createIndex tableName="DISTRICTCONTACT" indexName="IDX_DISTRTCON_CONTACT_ID">
+        <column name="CONTACT_ID"/>
+    </createIndex>
+    <createIndex tableName="KNOWLEDGELINK" indexName="IDX_KNOWLEDELINK_ROW_ID">
+        <column name="ROW_ID"/>
+    </createIndex>
+    <createIndex tableName="KNOWLEDGEMANAGEMENT" indexName="IDX_KNOWLEDEMNGMT_AUTHCON_ID">
+        <column name="AUTHOR_CONTACT_ID"/>
+    </createIndex>
+    <createIndex tableName="KNOWLEDGEMANAGEMENT" indexName="IDX_KNOWLEDEMNGMT_RESCON_ID">
+        <column name="RESPONSIBLE_CONTACT_ID"/>
+    </createIndex>
+    <createIndex tableName="KNOWLEDGEMANAGEMENTTAGMODERATION" indexName="IDX_KNOWLEDEMNGMTMOD_ATTR_ID">
+        <column name="AB_ATTRIBUTE_ID"/>
+    </createIndex>
+    <createIndex tableName="OBSERVATION" indexName="IDX_OBSERVATION_OBSERVATION_ID">
+        <column name="OBSERVATION_ID"/>
+    </createIndex>
+    <createIndex tableName="OBSERVATION" indexName="IDX_OBSERVATION_OBJECT_ID">
+        <column name="OBJECT_ID"/>
+    </createIndex>
+  </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Observation/CreateObservation.xml b/.liquibase/Data_alias/basic/2021.0.0/Observation/CreateObservation.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4ff46cb083171a465fbd24a3e425fb49dceed102
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Observation/CreateObservation.xml
@@ -0,0 +1,36 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+  <changeSet author="s.pongratz" id="e7212711-2d85-4e5a-b215-0bbbeed9d538">
+    <createTable tableName="OBSERVATION">
+            <column name="OBSERVATIONID" type="CHAR(36)">
+                <constraints primaryKey="true" primaryKeyName="PK_OBSERVATION_OBSERVATIONID"/>
+            </column>
+            <column name="OBSERVATION_ID" type="CHAR(36)" />
+            
+            <column name="OBSERVER" type="NVARCHAR(63)" >
+                <constraints nullable="false"/>
+            </column>
+            <column name="OBJECT_TYPE" type="NVARCHAR(80)">
+                <constraints nullable="false"/>
+            </column>
+            
+            <column name="OBJECT_ID" type="VARCHAR(63)" />
+            <column name="OBJECT_FILTER" type="NCLOB" />
+            
+            <column name="OBJECT_FIELD" type="NCLOB" />
+            
+            <column name="NOTIFICATION_PRIO" type="NVARCHAR(36)" />
+            
+            <column name="TRIGGEREVENTUPDATE" type="TINYINT"/>
+            <column name="TRIGGEREVENTDELETE" type="TINYINT"/>
+            <column name="TRIGGEREVENTINSERT" type="TINYINT"/>
+            
+            <column name="USER_NEW" type="NVARCHAR(50)" />
+            <column name="DATE_NEW" type="DATETIME" />
+            <column name="USER_EDIT" type="NVARCHAR(50)" />
+            <column name="DATE_EDIT" type="DATETIME" />
+    </createTable>
+  </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Observation/changelog.xml b/.liquibase/Data_alias/basic/2021.0.0/Observation/changelog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..44639ff557273d3b9efc4b179789c33401c28be8
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Observation/changelog.xml
@@ -0,0 +1,6 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+        <include relativeToChangelogFile="true" file="CreateObservation.xml"/>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/SalesprojectConversion/changelog.xml b/.liquibase/Data_alias/basic/2021.0.0/SalesprojectConversion/changelog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..037d80a7e64869383731d8a349e6d415bde5f031
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/SalesprojectConversion/changelog.xml
@@ -0,0 +1,5 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <include relativeToChangelogFile="true" file="create_salesprojectphasedefinition.xml"/>
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/2021.0.0/SalesprojectConversion/create_salesprojectphasedefinition.xml b/.liquibase/Data_alias/basic/2021.0.0/SalesprojectConversion/create_salesprojectphasedefinition.xml
new file mode 100644
index 0000000000000000000000000000000000000000..14beebe3eb510ecf4d44575fc9f709eec83098f3
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/SalesprojectConversion/create_salesprojectphasedefinition.xml
@@ -0,0 +1,72 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.1.xsd">
+    <changeSet author="d.tran" id="87b5a00d-ddb4-42af-b604-ddd795b89c5d">
+        <createTable tableName="SALESPROJECTPHASEDEFINITION">
+            <column name="SALESPROJECTPHASEDEFINITIONID" type="CHAR(36)">
+                <constraints nullable="false" primaryKey="true" primaryKeyName="PK_SALESPROJECTPHASEDEFINITION_SALESPROJECTPHASEDEFINITIONID"/>
+            </column>
+            <column name="CHECKLIST_ID" type="CHAR(36)"/>
+            <column name="PHASE" type="VARCHAR(36)"/>
+            <column name="DESCRIPTION" type="VARCHAR(500)"/>
+            <column name="USER_NEW" type="VARCHAR(50)"/>
+            <column name="USER_EDIT" type="VARCHAR(50)"/>
+            <column name="DATE_NEW" type="TIMESTAMP"/>
+            <column name="DATE_EDIT" type="TIMESTAMP"/>
+        </createTable>
+    <createIndex tableName="SALESPROJECTPHASEDEFINITION" indexName="IDX_SPPHASEDEF_CHECKLIST_ID">
+        <column name="CHECKLIST_ID"/>
+    </createIndex>
+    </changeSet>
+    <changeSet author="d.tran" id="65674357-70f6-44b7-b54f-57044130b926">
+        <insert tableName="SALESPROJECTPHASEDEFINITION">
+            <column name="SALESPROJECTPHASEDEFINITIONID" value="14adec36-4f29-446a-9dde-a83e9904813f"/>
+            <column name="CHECKLIST_ID" value="cb340ed2-ea49-45bb-a7a0-1a4f88d6e138"/>
+            <column name="PHASE" value="SALPROJPHASEMQL"/>
+            <column name="DESCRIPTION" value="Voraussetzungen für die Phase: 'MQL'."/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="SALESPROJECTPHASEDEFINITION">
+            <column name="SALESPROJECTPHASEDEFINITIONID" value="52454e8e-d71a-443d-81d0-ab93601b7bf3"/>
+            <column name="CHECKLIST_ID" value="c2bb548c-2f0c-45be-9e49-2ebf86bd6ab8"/>
+            <column name="PHASE" value="SALPROJPHASESAL"/>
+            <column name="DESCRIPTION" value="Voraussetzungen für die Phase: 'SAL'"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="SALESPROJECTPHASEDEFINITION">
+            <column name="SALESPROJECTPHASEDEFINITIONID" value="25796eb6-59c4-4e74-80f3-c66583320155"/>
+            <column name="CHECKLIST_ID" value="c7b847b1-934a-4592-8c10-53da1d43dc4c"/>
+            <column name="PHASE" value="SALPROJPHASESQO"/>
+            <column name="DESCRIPTION" value="Voraussetzungen für die Phase: 'SQO'"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="SALESPROJECTPHASEDEFINITION">
+            <column name="SALESPROJECTPHASEDEFINITIONID" value="e8ff463f-692c-40a7-bafa-d168886700fd"/>
+            <column name="CHECKLIST_ID" value="0f95ce44-3b0d-417b-969f-f84897868558"/>
+            <column name="PHASE" value="SALPROJPHASEOFFER"/>
+            <column name="DESCRIPTION" value="Voraussetzungen für die Phase: 'Offer'"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+        <insert tableName="SALESPROJECTPHASEDEFINITION">
+            <column name="SALESPROJECTPHASEDEFINITIONID" value="21011181-fe9f-4c6c-910e-344ce10e3fc1"/>
+            <column name="CHECKLIST_ID" value="cb0357c9-a222-4d78-b2c5-035fffe3bb51"/>
+            <column name="PHASE" value="SALPROJPHASENEGO"/>
+            <column name="DESCRIPTION" value="Voraussetzungen für die Phase: 'Negotiation'"/>
+            <column name="USER_NEW" value="Admin"/>
+            <column name="USER_EDIT"/>
+            <column name="DATE_NEW"/>
+            <column name="DATE_EDIT"/>
+        </insert>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/UpdateAddrFormats.xml b/.liquibase/Data_alias/basic/2021.0.0/UpdateAddrFormats.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9dc813de099597e444ce5b3c3969a8c0e8b8b054
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/UpdateAddrFormats.xml
@@ -0,0 +1,1005 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+  <changeSet author="e.rohrmeyer" id="6c8c603d-262b-46b2-af80-2061ceb06d58">
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%S%n%Z %C%n%A %B%n%O%n%N"/>
+      <where>ISO2 = 'BY'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'BE'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %S %Z"/>
+      <where>ISO2 = 'VI'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %Z"/>
+      <where>ISO2 = 'GU'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%Z"/>
+      <where>ISO2 = 'AF'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%nAX-%Z %C%nÃ…LAND"/>
+      <where>ISO2 = 'AX'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z%n%C"/>
+      <where>ISO2 = 'AL'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'DZ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %S %Z"/>
+      <where>ISO2 = 'AS'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'MK'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'MG'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %X"/>
+      <where>ISO2 = 'MW'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%D%n%Z %C%n%S"/>
+      <where>ISO2 = 'MY'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %Z"/>
+      <where>ISO2 = 'MV'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'AD'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'AO'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%Z"/>
+      <where>ISO2 = 'AI'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'AQ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'AG'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C%n%S"/>
+      <where>ISO2 = 'AR'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z%n%C%n%S"/>
+      <where>ISO2 = 'AM'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'AW'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%C %S %Z"/>
+      <where>ISO2 = 'AU'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'AT'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%nAZ %Z %C"/>
+      <where>ISO2 = 'AZ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C, %S"/>
+      <where>ISO2 = 'BS'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %Z"/>
+      <where>ISO2 = 'BH'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C - %Z"/>
+      <where>ISO2 = 'BD'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C, %S %Z"/>
+      <where>ISO2 = 'BB'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'BZ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'BJ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %Z"/>
+      <where>ISO2 = 'BM'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %Z"/>
+      <where>ISO2 = 'BT'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'BO'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'BQ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'BA'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'BW'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'BV'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%D%n%C-%S%n%Z"/>
+      <where>ISO2 = 'BR'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %Z"/>
+      <where>ISO2 = 'KH'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'CM'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %S %Z"/>
+      <where>ISO2 = 'CA'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C%n%S"/>
+      <where>ISO2 = 'CV'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%Z"/>
+      <where>ISO2 = 'IO'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %S %Z"/>
+      <where>ISO2 = 'UM'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%Z"/>
+      <where>ISO2 = 'VG'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %Z"/>
+      <where>ISO2 = 'BN'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'BG'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %X"/>
+      <where>ISO2 = 'BF'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'BI'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%S %Z"/>
+      <where>ISO2 = 'KY'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'CF'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'TD'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C%n%S"/>
+      <where>ISO2 = 'CL'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%Z%n%S%C%D%n%A %B%n%O%n%N"/>
+      <where>ISO2 = 'CN'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%C %S %Z"/>
+      <where>ISO2 = 'CX'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%C %S %Z"/>
+      <where>ISO2 = 'CC'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C, %S, %Z"/>
+      <where>ISO2 = 'CO'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'KM'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'CG'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'CD'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'CK'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%S, %C%n%Z"/>
+      <where>ISO2 = 'CR'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%C %S %Z"/>
+      <where>ISO2 = 'HM'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%nJERSEY%n%Z"/>
+      <where>ISO2 = 'JE'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%nHR-%Z %C"/>
+      <where>ISO2 = 'HR'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %S%n%Z"/>
+      <where>ISO2 = 'CU'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'CW'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'CY'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'CZ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'DK'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'DJ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'DM'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'DO'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z%n%C"/>
+      <where>ISO2 = 'EC'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%S%n%Z"/>
+      <where>ISO2 = 'EG'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z-%C%n%S"/>
+      <where>ISO2 = 'SV'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'GQ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'ER'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'EE'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'ET'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%Z"/>
+      <where>ISO2 = 'FK'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%nFO%Z %C"/>
+      <where>ISO2 = 'FO'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'FJ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%nFI-%Z %C"/>
+      <where>ISO2 = 'FI'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%B %A%n%Z %C %X"/>
+      <where>ISO2 = 'FR'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%Z %C %X"/>
+      <where>ISO2 = 'GF'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C %S"/>
+      <where>ISO2 = 'PF'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'TF'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'GA'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'GM'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'GE'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'DE'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'GH'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%nGIBRALTAR%n%Z"/>
+      <where>ISO2 = 'GI'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'GR'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'GL'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'GD'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%Z %C %X"/>
+      <where>ISO2 = 'GP'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z- %C"/>
+      <where>ISO2 = 'GT'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%nGUERNSEY%n%Z"/>
+      <where>ISO2 = 'GG'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%Z %A %B %C"/>
+      <where>ISO2 = 'GN'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'GW'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'GY'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%nHT%Z %C"/>
+      <where>ISO2 = 'HT'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'VA'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C, %S%n%Z"/>
+      <where>ISO2 = 'HN'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%S%n%C%n%A %B%n%O%n%N"/>
+      <where>ISO2 = 'HK'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%C%n%A %B%n%Z"/>
+      <where>ISO2 = 'HU'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'IS'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %Z%n%S"/>
+      <where>ISO2 = 'IN'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%S %Z"/>
+      <where>ISO2 = 'ID'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%X %A %B %C %X"/>
+      <where>ISO2 = 'CI'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%S%n%C, %D%n%A %B%n%Z"/>
+      <where>ISO2 = 'IR'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%C, %S%n%Z"/>
+      <where>ISO2 = 'IQ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%D%n%C%n%S %Z"/>
+      <where>ISO2 = 'IE'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%Z"/>
+      <where>ISO2 = 'IM'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %Z"/>
+      <where>ISO2 = 'IL'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C %S"/>
+      <where>ISO2 = 'IT'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%S %X"/>
+      <where>ISO2 = 'JM'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="?%Z%n%S%n%B %A%n%O%n%N"/>
+      <where>ISO2 = 'JP'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %Z"/>
+      <where>ISO2 = 'JO'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %Z"/>
+      <where>ISO2 = 'LS'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'LR'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'LY'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%Z%n%S%n%C%n%A %B%n%O%n%N"/>
+      <where>ISO2 = 'KZ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%Z"/>
+      <where>ISO2 = 'KE'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%S%n%C"/>
+      <where>ISO2 = 'KI'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'KW'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'KG'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'LA'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C, %Z"/>
+      <where>ISO2 = 'LV'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %Z"/>
+      <where>ISO2 = 'LB'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%nFL-%Z %C"/>
+      <where>ISO2 = 'LI'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%nLT-%Z %C"/>
+      <where>ISO2 = 'LT'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%nL-%Z %C"/>
+      <where>ISO2 = 'LU'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%A %B%n%O%n%N"/>
+      <where>ISO2 = 'MO'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'ML'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %Z"/>
+      <where>ISO2 = 'MT'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %S %Z"/>
+      <where>ISO2 = 'MH'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%Z %C %X"/>
+      <where>ISO2 = 'MQ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'MR'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z%n%C"/>
+      <where>ISO2 = 'MU'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%Z %C %X"/>
+      <where>ISO2 = 'YT'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%D%n%Z %C, %S"/>
+      <where>ISO2 = 'MX'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %S %Z"/>
+      <where>ISO2 = 'FM'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%nMD-%Z %C"/>
+      <where>ISO2 = 'MD'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%nMC-%Z %C %X"/>
+      <where>ISO2 = 'MC'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%S %Z"/>
+      <where>ISO2 = 'MN'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'ME'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'MS'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'MA'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C%S"/>
+      <where>ISO2 = 'MZ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C, %Z"/>
+      <where>ISO2 = 'MM'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'NA'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%S"/>
+      <where>ISO2 = 'NR'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %Z"/>
+      <where>ISO2 = 'NP'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'NL'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%Z %C %X"/>
+      <where>ISO2 = 'NC'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%D%n%C %Z"/>
+      <where>ISO2 = 'NZ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z%n%C, %S"/>
+      <where>ISO2 = 'NI'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'NE'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%D%n%C %Z%n%S"/>
+      <where>ISO2 = 'NG'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'NU'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%C %S %Z"/>
+      <where>ISO2 = 'NF'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%Z%n%S%n%C%n%A %B%n%O%n%N"/>
+      <where>ISO2 = 'KP'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %S %Z"/>
+      <where>ISO2 = 'MP'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'NO'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z%n%C"/>
+      <where>ISO2 = 'OM'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C-%Z"/>
+      <where>ISO2 = 'PK'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %S %Z"/>
+      <where>ISO2 = 'PW'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'PS'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%S"/>
+      <where>ISO2 = 'PA'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %Z %S"/>
+      <where>ISO2 = 'PG'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'PY'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %Z%n%S"/>
+      <where>ISO2 = 'PE'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%D, %C%n%Z %S"/>
+      <where>ISO2 = 'PH'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%Z"/>
+      <where>ISO2 = 'PN'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'PL'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'PT'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C PR %Z"/>
+      <where>ISO2 = 'PR'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'QA'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'XK'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%Z %C %X"/>
+      <where>ISO2 = 'RE'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'RO'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%S%n%Z"/>
+      <where>ISO2 = 'RU'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'RW'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%Z %C %X"/>
+      <where>ISO2 = 'BL'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%Z"/>
+      <where>ISO2 = 'SH'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C, %S"/>
+      <where>ISO2 = 'KN'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'LC'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%Z %C %X"/>
+      <where>ISO2 = 'MF'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%Z %C %X"/>
+      <where>ISO2 = 'PM'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %Z"/>
+      <where>ISO2 = 'VC'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'WS'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'SM'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'ST'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %Z"/>
+      <where>ISO2 = 'SA'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'SN'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'RS'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%S"/>
+      <where>ISO2 = 'SC'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'SL'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%nSINGAPORE %Z"/>
+      <where>ISO2 = 'SG'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'SX'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'SK'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%nSI-%Z %C"/>
+      <where>ISO2 = 'SI'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'SB'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C, %S %Z"/>
+      <where>ISO2 = 'SO'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%D%n%C%n%Z"/>
+      <where>ISO2 = 'ZA'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%n%C%n%Z"/>
+      <where>ISO2 = 'GS'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%S %C%D%n%A %B%n%O%n%N%n%Z"/>
+      <where>ISO2 = 'KR'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'SS'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C %S"/>
+      <where>ISO2 = 'ES'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%Z"/>
+      <where>ISO2 = 'LK'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%Z"/>
+      <where>ISO2 = 'SD'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%S"/>
+      <where>ISO2 = 'SR'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'SJ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%Z"/>
+      <where>ISO2 = 'SZ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%nSE-%Z %C"/>
+      <where>ISO2 = 'SE'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%nCH-%Z %C"/>
+      <where>ISO2 = 'CH'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'SY'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%Z%n%S%C%n%A %B%n%O%n%N"/>
+      <where>ISO2 = 'TW'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'TJ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'TZ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%D %C%n%S %Z"/>
+      <where>ISO2 = 'TH'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'TL'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'TG'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'TK'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'TO'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'TT'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'TN'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C/%S"/>
+      <where>ISO2 = 'TR'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'TM'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%Z"/>
+      <where>ISO2 = 'TC'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%S"/>
+      <where>ISO2 = 'TV'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'UG'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%S%n%Z"/>
+      <where>ISO2 = 'UA'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%S"/>
+      <where>ISO2 = 'AE'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%B, %A%n%C%n%Z"/>
+      <where>ISO2 = 'GB'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%B %A%n%C, %S %Z"/>
+      <where>ISO2 = 'US'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C %S"/>
+      <where>ISO2 = 'UY'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C%n%S"/>
+      <where>ISO2 = 'UZ'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'VU'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C %Z, %S"/>
+      <where>ISO2 = 'VE'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C%n%S %Z"/>
+      <where>ISO2 = 'VN'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%O%n%N%n%A %B%n%Z %C %X"/>
+      <where>ISO2 = 'WF'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'EH'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'YE'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%Z %C"/>
+      <where>ISO2 = 'ZM'</where>
+    </update>
+    <update tableName="AB_COUNTRYINFO">
+      <column name="ADDR_FORMAT" value="%N%n%O%n%A %B%n%C"/>
+      <where>ISO2 = 'ZW'</where>
+    </update>
+  </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Visit/add_VisitPlanEntry.xml b/.liquibase/Data_alias/basic/2021.0.0/Visit/add_VisitPlanEntry.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d43b906d7fd2e768d5178348fc5cc29d09b5d0ec
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Visit/add_VisitPlanEntry.xml
@@ -0,0 +1,10 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+  <changeSet author="c.wimmer" id="d49486a1-a935-49dd-886c-04c5be4d529e">
+    <addColumn tableName="VISITPLANENTRY">
+            <column name="STATUS_APPOINTMENT" type="VARCHAR(36)"/>
+        </addColumn>
+  </changeSet>
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Visit/add_VisitrecommendationStatus.xml b/.liquibase/Data_alias/basic/2021.0.0/Visit/add_VisitrecommendationStatus.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a2bd036c1d4146eca31052f506caf7d3474ea35e
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Visit/add_VisitrecommendationStatus.xml
@@ -0,0 +1,10 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+  <changeSet author="c.wimmer" id="e4ab868a-6072-483c-abb3-db83ce162575">
+        <addColumn tableName="VISITRECOMMENDATION">
+            <column name="STATUS" type="CHAR(36)"/>
+	</addColumn>
+  </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Visit/alter_VisitrecommendationpriorityUserNewResp.xml b/.liquibase/Data_alias/basic/2021.0.0/Visit/alter_VisitrecommendationpriorityUserNewResp.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c57e89387fb5f69f801d86e9110b7de0eca76700
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Visit/alter_VisitrecommendationpriorityUserNewResp.xml
@@ -0,0 +1,11 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="c.wimmer" id="c994f27c-c773-41f3-b467-aa11e27f1142">
+         <addColumn tableName="VISITRECOMMENDATION">
+            <column name="USER_NEW" type="NVARCHAR(50)"/>
+            <column name="CONTACT_PERSON_ID" type="CHAR(36)"/>
+            <column name="RESPONSIBLE" type="CHAR(36)"/>
+        </addColumn>
+    </changeSet>
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Visit/changelog.xml b/.liquibase/Data_alias/basic/2021.0.0/Visit/changelog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d6346a774dad2b61c9236231ed90636d636123c6
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Visit/changelog.xml
@@ -0,0 +1,11 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <include relativeToChangelogFile="true" file="alter_VisitrecommendationpriorityUserNewResp.xml"/>
+    <include relativeToChangelogFile="true" file="insert_VisitFrequencyAttributeUsagePers.xml"/>
+    <include relativeToChangelogFile="true" file="insert_VisitPlanningAttribute.xml"/> 
+    <include relativeToChangelogFile="true" file="insert_VisitPlanEntryStatusAppointment.xml"/> 
+    <include relativeToChangelogFile="true" file="add_VisitPlanEntry.xml"/> 
+    <include relativeToChangelogFile="true" file="add_VisitrecommendationStatus.xml"/> 
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Visit/insert_VisitFrequencyAttributeUsagePers.xml b/.liquibase/Data_alias/basic/2021.0.0/Visit/insert_VisitFrequencyAttributeUsagePers.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ac24208cb27c163c81216f8002a6766eeed109a3
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Visit/insert_VisitFrequencyAttributeUsagePers.xml
@@ -0,0 +1,12 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="c.wimmer" id="077aed97-bd93-4062-be37-78d306c4b4c6">
+        <insert tableName="AB_ATTRIBUTEUSAGE">
+              <column name="AB_ATTRIBUTEUSAGEID" value="23897e8d-00d5-45ff-86c7-391db0bd5cf4"/>
+              <column name="AB_ATTRIBUTE_ID" value="547b8b9d-88ba-4590-9e01-34d2a58116cc"/>
+              <column name="MAX_COUNT" valueNumeric="1"/>
+              <column name="OBJECT_TYPE" value="Person"/>
+        </insert>
+    </changeSet>
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Visit/insert_VisitPlanEntryStatusAppointment.xml b/.liquibase/Data_alias/basic/2021.0.0/Visit/insert_VisitPlanEntryStatusAppointment.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1319607baf5a5a22557f3482af094dba289f93bc
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Visit/insert_VisitPlanEntryStatusAppointment.xml
@@ -0,0 +1,25 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+  <changeSet author="c.wimmer" id="b1bd94b5-5cef-450d-a1a3-c510984373e0">
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="70f352e7-81dc-4d44-9f12-30bfc2cc39f1"/>
+            <column name="KEYID" value="VISITSTATUSAPPOINTMENTREQUESTED"/>
+            <column name="TITLE" value="requested"/>
+            <column name="CONTAINER" value="VisitPlanEntryStatusAppointment"/>
+            <column name="SORTING" valueNumeric="0"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="1b6b5070-8028-42f9-abfd-ee64142801d1"/>
+            <column name="KEYID" value="VISITSTATUSAPPOINTMENTCONFIRMED"/>
+            <column name="TITLE" value="confirmed"/>
+            <column name="CONTAINER" value="VisitPlanEntryStatusAppointment"/>
+            <column name="SORTING" valueNumeric="1"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+  </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Visit/insert_VisitPlanningAttribute.xml b/.liquibase/Data_alias/basic/2021.0.0/Visit/insert_VisitPlanningAttribute.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2fe3d6a38c8943ff591145dda9f1e34a99760de7
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Visit/insert_VisitPlanningAttribute.xml
@@ -0,0 +1,63 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="c.wimmer" id="f03c2c38-bf5d-411a-9b77-3050771d91f9">
+        <delete tableName="AB_ATTRIBUTE">
+                <where>AB_ATTRIBUTEID = ?</where>
+                <whereParams>
+                    <param value="59377864-0745-4a18-8d7b-57a0491a8116" />
+                </whereParams>
+            </delete>
+        <insert tableName="AB_ATTRIBUTE">
+            <column name="AB_ATTRIBUTEID" value="59377864-0745-4a18-8d7b-57a0491a8116"/>
+            <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/>
+            <column name="ATTRIBUTE_NAME" value="Visit Planning"/>
+            <column name="ATTRIBUTE_TYPE" value="GROUP"/>
+        </insert>
+        <insert tableName="AB_ATTRIBUTE">
+            <column name="AB_ATTRIBUTEID" value="e8770b60-160c-466e-af57-4f90bd6e02d7"/>
+            <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/>
+            <column name="ATTRIBUTE_NAME" value="Maturity"/>
+            <column name="ATTRIBUTE_PARENT_ID" value="59377864-0745-4a18-8d7b-57a0491a8116"/>
+            <column name="ATTRIBUTE_TYPE" value="COMBO                               "/>
+        </insert>
+        <insert tableName="AB_ATTRIBUTE">
+            <column name="AB_ATTRIBUTEID" value="5dd9a89d-2357-4ca7-910c-4365fd338603"/>
+            <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/>
+            <column name="ATTRIBUTE_NAME" value="2 Weeks"/>
+            <column name="ATTRIBUTE_PARENT_ID" value="e8770b60-160c-466e-af57-4f90bd6e02d7"/>
+            <column name="ATTRIBUTE_TYPE" value="COMBOVALUE                          "/>
+            <column name="SORTING" valueNumeric="1"/>
+        </insert>
+        <insert tableName="AB_ATTRIBUTE">
+            <column name="AB_ATTRIBUTEID" value="b0eeed9b-38a5-44b9-8fdf-dd03493380b8"/>
+            <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/>
+            <column name="ATTRIBUTE_NAME" value="1 Month"/>
+            <column name="ATTRIBUTE_PARENT_ID" value="e8770b60-160c-466e-af57-4f90bd6e02d7"/>
+            <column name="ATTRIBUTE_TYPE" value="COMBOVALUE                          "/>
+            <column name="SORTING" valueNumeric="2"/>
+        </insert>
+        <insert tableName="AB_ATTRIBUTE">
+            <column name="AB_ATTRIBUTEID" value="e7ece5ea-f1f3-47de-b11a-479183e5e95a"/>
+            <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/>
+            <column name="ATTRIBUTE_NAME" value="6 Months"/>
+            <column name="ATTRIBUTE_PARENT_ID" value="e8770b60-160c-466e-af57-4f90bd6e02d7"/>
+            <column name="ATTRIBUTE_TYPE" value="COMBOVALUE                          "/>
+            <column name="SORTING" valueNumeric="3"/>
+        </insert>
+        <insert tableName="AB_ATTRIBUTE">
+            <column name="AB_ATTRIBUTEID" value="49dc2a73-a58a-45b7-95d3-ce2ff21326fd"/>
+            <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/>
+            <column name="ATTRIBUTE_NAME" value="12 Months"/>
+            <column name="ATTRIBUTE_PARENT_ID" value="e8770b60-160c-466e-af57-4f90bd6e02d7"/>
+            <column name="ATTRIBUTE_TYPE" value="COMBOVALUE                          "/>
+            <column name="SORTING" valueNumeric="4"/>
+        </insert>
+        <insert tableName="AB_ATTRIBUTEUSAGE">
+            <column name="AB_ATTRIBUTEUSAGEID" value="ace9e8ea-b586-4299-92ea-b12fce72e4d9"/>
+            <column name="AB_ATTRIBUTE_ID" value="e8770b60-160c-466e-af57-4f90bd6e02d7"/>
+            <column name="MAX_COUNT" valueNumeric="1"/>
+            <column name="OBJECT_TYPE" value="Person"/>
+        </insert>
+    </changeSet>
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/2021.0.0/addDateNewToSalesproject.xml b/.liquibase/Data_alias/basic/2021.0.0/addDateNewToSalesproject.xml
new file mode 100644
index 0000000000000000000000000000000000000000..93663b59e73ce1a792cc2adb213d0e3087105d58
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/addDateNewToSalesproject.xml
@@ -0,0 +1,10 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+  <changeSet author="s.pongratz" id="37812654-5f30-4256-9704-976567da1dd3">
+        <addColumn tableName="SALESPROJECT">
+            <column name="DATE_NEW" type="DATETIME" />
+        </addColumn>
+  </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/alter_Order_info.xml b/.liquibase/Data_alias/basic/2021.0.0/alter_Order_info.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1f503a3bb62e08a11a872c5ab24e43fd2d0da0ee
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/alter_Order_info.xml
@@ -0,0 +1,10 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="Pierre und Imen" id="46a01232-99c9-4de6-b74b-9a9e650fc034">
+        <addColumn tableName="SALESORDER">
+            <column name="INFO" type="VARCHAR(255)"/>
+        </addColumn>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/changelog.xml b/.liquibase/Data_alias/basic/2021.0.0/changelog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..21d9b6123c339868f578deb1c41f89eb8269b0d3
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/changelog.xml
@@ -0,0 +1,18 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <include relativeToChangelogFile="true" file="Observation/changelog.xml"/>      
+    <include relativeToChangelogFile="true" file="Classification/changelog.xml"/>
+    <include relativeToChangelogFile="true" file="Visit/changelog.xml"/>
+    <include relativeToChangelogFile="true" file="UpdateAddrFormats.xml"/>
+    <include relativeToChangelogFile="true" file="Address/addLatLonIndizes.xml"/>
+    <include relativeToChangelogFile="true" file="District/changelog.xml"/>
+    <include relativeToChangelogFile="true" file="alter_Order_info.xml"/>
+    <include relativeToChangelogFile="true" file="MissingIndizes/add_MissingIndizes.xml"/>
+    <include relativeToChangelogFile="true" file="SalesprojectConversion/changelog.xml"/>
+    <include relativeToChangelogFile="true" file="Checklists/changelog.xml"/>
+    <include relativeToChangelogFile="true" file="Keywords/changelog.xml"/>
+    <include relativeToChangelogFile="true" file="KeywordMigration/changelog.xml"/>
+    <include relativeToChangelogFile="true" file="addDateNewToSalesproject.xml"/>
+    <include relativeToChangelogFile="true" file="EwsContactSync/create_ab_synccontact.xml"/>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/ab_attributerelation.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/ab_attributerelation.xml
index 68c4a24099c21895e4346ab23dde9434ae87272d..e907f2c437ccfbdbff604cd378c451afe6dab379 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/ab_attributerelation.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/ab_attributerelation.xml
@@ -7,7 +7,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="0563ec4f-6f85-469d-89a1-5fc807f4dc9f"/>
       <column name="AB_ATTRIBUTE_ID" value="3a6e11fc-b00a-4cf3-975a-a5e8b60fc5cb"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="13e60843-5d6d-45ee-88c7-46db41874138"/>
+      <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:45:34"/>
       <column name="ID_VALUE" value="DELIVERCIF"/>
     </insert>
@@ -25,7 +25,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="086ff454-e407-433a-9124-496de7fef1cb"/>
       <column name="AB_ATTRIBUTE_ID" value="97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:45:09"/>
       <column name="ID_VALUE" value="PRICELISTSPECIAL"/>
     </insert>
@@ -34,7 +34,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="0a1aabd7-4faf-4a82-9a85-3351add5b357"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="692e1f81-9f05-4e22-b74d-56d34c671067"/>
+      <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
       <column name="DATE_NEW" valueDate="2019-05-23T10:54:10"/>
       <column name="ID_VALUE" value="acafca42-8ef4-4c21-abe8-1c2ca358a5aa"/>
     </insert>
@@ -43,7 +43,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="12a0bb2a-9b6c-4282-9209-2dc90d726fc2"/>
       <column name="AB_ATTRIBUTE_ID" value="f11f65d0-4352-4f81-85d0-bfd034275e34"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="22f1ca45-e633-4080-9d5c-9a8c2e06d3f9"/>
+      <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:47:54"/>
       <column name="ID_VALUE" value="292825e8-fa96-4b7b-8dab-71955ae14571"/>
     </insert>
@@ -61,7 +61,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="1505bacf-c29a-48a7-8da5-5e969252309f"/>
       <column name="AB_ATTRIBUTE_ID" value="71226196-2812-4d70-b90f-c3e2c14fd4d1"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="a5d107ac-f796-430e-a686-5a132f96650b"/>
+      <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:51:07"/>
       <column name="ID_VALUE" value="SALPROJWEAKLIQUIDITY"/>
     </insert>
@@ -79,7 +79,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="2261ef33-50af-445a-bc19-27367cc6ff7a"/>
       <column name="AB_ATTRIBUTE_ID" value="71226196-2812-4d70-b90f-c3e2c14fd4d1"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="756662b5-f5e4-479c-8d97-abd6a395bd79"/>
+      <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:44:08"/>
       <column name="ID_VALUE" value="SALPROJWEAKMARKET"/>
     </insert>
@@ -96,7 +96,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="255571a4-2fda-49ec-baed-ea7b374895f1"/>
       <column name="AB_ATTRIBUTE_ID" value="97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="82c7b72d-da4e-4fab-a6cc-31e1be07dd08"/>
+      <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:49:39"/>
       <column name="ID_VALUE" value="PRICELISTSPECIAL"/>
     </insert>
@@ -105,7 +105,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="25a53e28-d8a1-43d3-9af0-b34ce9c0bc06"/>
       <column name="AB_ATTRIBUTE_ID" value="97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:52:25"/>
       <column name="ID_VALUE" value="PRICELISTSPECIAL"/>
     </insert>
@@ -114,7 +114,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="25dac52d-de7e-47e1-b60c-22d252dae4c2"/>
       <column name="AB_ATTRIBUTE_ID" value="292fae38-6557-466d-8843-3b1b4a1f6599"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="22f1ca45-e633-4080-9d5c-9a8c2e06d3f9"/>
+      <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:47:46"/>
       <column name="ID_VALUE" value="PAYTERM7"/>
     </insert>
@@ -123,7 +123,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="2d80654e-3bd5-46bb-af0b-f18f812d11e0"/>
       <column name="AB_ATTRIBUTE_ID" value="71226196-2812-4d70-b90f-c3e2c14fd4d1"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="22f1ca45-e633-4080-9d5c-9a8c2e06d3f9"/>
+      <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:47:37"/>
       <column name="ID_VALUE" value="SALPROJWEAKMARKET"/>
     </insert>
@@ -132,7 +132,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="2e456151-e59d-4d37-85cc-6e4b4054c8fe"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:21:26"/>
       <column name="ID_VALUE" value="617da3f5-d8bc-45ff-85a1-258621ea2a0b"/>
     </insert>
@@ -141,7 +141,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="3253baa7-06ea-4458-b7c1-36907321d025"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:24:42"/>
       <column name="ID_VALUE" value="9882c4bc-a3d9-43a9-8238-81ef39387869"/>
     </insert>
@@ -159,7 +159,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="3a32b8d5-1770-49cd-ae41-5b02f792ac6a"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="ea07af40-4918-4ea2-94ad-031d01aeaab4"/>
+      <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:46:58"/>
       <column name="ID_VALUE" value="26385e16-6b2f-428c-9c28-1bfa9c2ccf6f"/>
     </insert>
@@ -168,7 +168,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="3acc3d04-5212-4510-b88c-5885db940fec"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:21:35"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -186,7 +186,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="3e119bed-4330-4519-bf98-73b7edc8a404"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:18:11"/>
       <column name="ID_VALUE" value="acafca42-8ef4-4c21-abe8-1c2ca358a5aa"/>
     </insert>
@@ -195,7 +195,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="3e91603c-813c-43f9-964f-90e566cbc042"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="a5d107ac-f796-430e-a686-5a132f96650b"/>
+      <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:27:34"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -222,7 +222,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="4475ef06-83ab-4dff-91e1-be7053e004fa"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:27:08"/>
       <column name="ID_VALUE" value="c85a5ebe-80fe-4176-a92a-35d2200baa07"/>
     </insert>
@@ -231,7 +231,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="44bd5ab6-0b4f-4655-a276-ed172240643b"/>
       <column name="AB_ATTRIBUTE_ID" value="292fae38-6557-466d-8843-3b1b4a1f6599"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="756662b5-f5e4-479c-8d97-abd6a395bd79"/>
+      <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:43:59"/>
       <column name="ID_VALUE" value="PAYTERM30"/>
     </insert>
@@ -240,7 +240,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="4d65a707-7dec-44c1-9a06-3dbb3204059c"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:28:49"/>
       <column name="ID_VALUE" value="617da3f5-d8bc-45ff-85a1-258621ea2a0b"/>
     </insert>
@@ -249,7 +249,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="4de531e4-4e91-4362-b701-a76282e7b976"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="09281be8-8cb5-4201-9758-8c86b3d2bb85"/>
+      <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:19:47"/>
       <column name="ID_VALUE" value="79378933-9f74-4391-b876-4528b582661f"/>
     </insert>
@@ -258,7 +258,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="4ecfff5d-221a-4cf2-9498-fd24a11e4055"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="03e09527-21cc-489a-b37f-0dd7df553c20"/>
+      <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:22:05"/>
       <column name="ID_VALUE" value="9882c4bc-a3d9-43a9-8238-81ef39387869"/>
     </insert>
@@ -267,7 +267,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="509845c5-6b4a-4918-923d-75b1aef3a1f4"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="8f4f43e0-669b-4e1f-b050-42193f8d2998"/>
+      <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:26:46"/>
       <column name="ID_VALUE" value="c85a5ebe-80fe-4176-a92a-35d2200baa07"/>
     </insert>
@@ -276,7 +276,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="52b61d0c-3cbf-4e98-a126-786540c808c9"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="756662b5-f5e4-479c-8d97-abd6a395bd79"/>
+      <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:17:34"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -303,7 +303,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="593d0626-9049-43ca-b7bd-eb6c7327beed"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="b043cd42-058c-48bd-8326-4c92e0e74c48"/>
+      <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:51:53"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -330,7 +330,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="5d83b2c1-92b6-478d-a5b1-fdda3d35592d"/>
       <column name="AB_ATTRIBUTE_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="b043cd42-058c-48bd-8326-4c92e0e74c48"/>
+      <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:51:44"/>
       <column name="ID_VALUE" value="1d30d0ab-6103-4972-84c0-fd23eef15ca1"/>
     </insert>
@@ -348,7 +348,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="67f36d84-1997-4801-a4f6-94c9b8318e95"/>
       <column name="AB_ATTRIBUTE_ID" value="558419b2-6113-4060-b88d-cc6324754765"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="ea07af40-4918-4ea2-94ad-031d01aeaab4"/>
+      <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:47:08"/>
       <column name="ID_VALUE" value="SALPROJSTPRICEPOL"/>
     </insert>
@@ -357,7 +357,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="68b689b8-f9ff-40d1-b936-629985423ebb"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="a5d107ac-f796-430e-a686-5a132f96650b"/>
+      <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:27:34"/>
       <column name="ID_VALUE" value="79378933-9f74-4391-b876-4528b582661f"/>
     </insert>
@@ -366,7 +366,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="6907f00d-011d-4592-8f0e-26e52449658f"/>
       <column name="AB_ATTRIBUTE_ID" value="97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="03e09527-21cc-489a-b37f-0dd7df553c20"/>
+      <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:48:46"/>
       <column name="ID_VALUE" value="PRICELISTDEFAULT"/>
     </insert>
@@ -375,7 +375,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="69cb66c6-1d04-4029-8a20-0f6452bc4bf1"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="09281be8-8cb5-4201-9758-8c86b3d2bb85"/>
+      <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:19:47"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -393,7 +393,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="6e619f34-361d-48d7-868a-572848ab4463"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="82c7b72d-da4e-4fab-a6cc-31e1be07dd08"/>
+      <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:25:55"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -402,7 +402,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="6e8b96f9-de86-4dc1-b0c9-d5b99867d29c"/>
       <column name="AB_ATTRIBUTE_ID" value="292fae38-6557-466d-8843-3b1b4a1f6599"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="d3707591-5620-49a8-a63f-19e88ca7a21c"/>
+      <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:49:10"/>
       <column name="ID_VALUE" value="PAYTERMDISCOUNT"/>
     </insert>
@@ -411,7 +411,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="72cb6a41-def0-4a96-b8c1-56df885cf151"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="82c7b72d-da4e-4fab-a6cc-31e1be07dd08"/>
+      <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:25:55"/>
       <column name="ID_VALUE" value="617da3f5-d8bc-45ff-85a1-258621ea2a0b"/>
     </insert>
@@ -420,7 +420,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="76967a63-8322-484b-b603-d3cb5ce27d6d"/>
       <column name="AB_ATTRIBUTE_ID" value="8af37871-d407-4414-98ad-e64dbaa5794a"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:41:53"/>
       <column name="ID_VALUE" value="SALPROJPOLLOW"/>
     </insert>
@@ -429,7 +429,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="7a291363-9a75-4dd5-aa64-34a1801aeb92"/>
       <column name="AB_ATTRIBUTE_ID" value="292fae38-6557-466d-8843-3b1b4a1f6599"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:41:53"/>
       <column name="ID_VALUE" value="PAYTERM30"/>
     </insert>
@@ -438,7 +438,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="7a7736db-8b68-4865-a212-bd603af51370"/>
       <column name="AB_ATTRIBUTE_ID" value="8af37871-d407-4414-98ad-e64dbaa5794a"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:28:49"/>
       <column name="ID_VALUE" value="SALPROJPOLLOW"/>
     </insert>
@@ -447,7 +447,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="7a7e223f-a1f9-4503-b6e9-95e4f49c75c1"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:28:49"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -456,7 +456,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="7abc6537-b254-4a36-8315-2e44a5b10fad"/>
       <column name="AB_ATTRIBUTE_ID" value="8af37871-d407-4414-98ad-e64dbaa5794a"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:44:47"/>
       <column name="ID_VALUE" value="SALPROJPOLABO"/>
     </insert>
@@ -474,7 +474,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="7b38959d-d0b7-434a-9316-58d4894982d2"/>
       <column name="AB_ATTRIBUTE_ID" value="8af37871-d407-4414-98ad-e64dbaa5794a"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:52:18"/>
       <column name="ID_VALUE" value="SALPROJPOLABO"/>
     </insert>
@@ -483,7 +483,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="7e3d2c81-a9dd-4e82-a3e6-b26835c8ac46"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="22f1ca45-e633-4080-9d5c-9a8c2e06d3f9"/>
+      <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:20:55"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -501,7 +501,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="81dc88e3-3540-4675-a6d8-bca92cd91f84"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="aed65442-06aa-4cdc-b924-1d9728b444d3"/>
+      <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
       <column name="DATE_NEW" valueDate="2019-05-23T10:56:16"/>
       <column name="ID_VALUE" value="c85a5ebe-80fe-4176-a92a-35d2200baa07"/>
     </insert>
@@ -510,7 +510,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="84c93ae0-1821-40da-9eee-d180ce23cad5"/>
       <column name="AB_ATTRIBUTE_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:21:35"/>
       <column name="ID_VALUE" value="17746b46-2702-447a-b749-a92bfdf4bb38"/>
     </insert>
@@ -546,7 +546,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="8e474a2c-6adc-4f1d-88d8-217b0ddd592b"/>
       <column name="AB_ATTRIBUTE_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="756662b5-f5e4-479c-8d97-abd6a395bd79"/>
+      <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
       <column name="DATE_NEW" valueDate="2019-05-17T10:36:47"/>
       <column name="ID_VALUE" value="1d30d0ab-6103-4972-84c0-fd23eef15ca1"/>
     </insert>
@@ -564,7 +564,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="924e8914-6275-45d4-a36a-94f3b70a35b4"/>
       <column name="AB_ATTRIBUTE_ID" value="558419b2-6113-4060-b88d-cc6324754765"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:46:41"/>
       <column name="ID_VALUE" value="SALPROJSTPERSAPP"/>
     </insert>
@@ -582,7 +582,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="95513181-69ac-4775-860a-42730e370e38"/>
       <column name="AB_ATTRIBUTE_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="8f4f43e0-669b-4e1f-b050-42193f8d2998"/>
+      <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:50:03"/>
       <column name="ID_VALUE" value="e4a60941-513f-4e75-a787-f00070ecb00a"/>
     </insert>
@@ -591,7 +591,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="956d65fa-6c89-475b-9c85-3ce9265b4273"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="8f4f43e0-669b-4e1f-b050-42193f8d2998"/>
+      <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:26:46"/>
       <column name="ID_VALUE" value="79378933-9f74-4391-b876-4528b582661f"/>
     </insert>
@@ -600,7 +600,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="97429450-9cb5-4f8a-bd0f-c6c63c9afee9"/>
       <column name="AB_ATTRIBUTE_ID" value="71226196-2812-4d70-b90f-c3e2c14fd4d1"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="03e09527-21cc-489a-b37f-0dd7df553c20"/>
+      <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:48:40"/>
       <column name="ID_VALUE" value="SALPROJWEAKMARKET"/>
     </insert>
@@ -618,7 +618,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="9f7d0b52-0f03-4eb0-b0b2-e3751862a3a1"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="22f1ca45-e633-4080-9d5c-9a8c2e06d3f9"/>
+      <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:20:55"/>
       <column name="ID_VALUE" value="bb0c6356-33be-4e7c-a409-9ef5145f7aae"/>
     </insert>
@@ -627,7 +627,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="a433931c-412c-4a42-9a86-e5ca1e671a04"/>
       <column name="AB_ATTRIBUTE_ID" value="3a6e11fc-b00a-4cf3-975a-a5e8b60fc5cb"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:51:25"/>
       <column name="ID_VALUE" value="DELIVEREX"/>
     </insert>
@@ -636,7 +636,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="a59304f1-2019-4191-a897-801747adb0e5"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="13e60843-5d6d-45ee-88c7-46db41874138"/>
+      <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
       <column name="DATE_NEW" valueDate="2019-05-17T10:01:27"/>
       <column name="ID_VALUE" value="79378933-9f74-4391-b876-4528b582661f"/>
     </insert>
@@ -654,7 +654,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="b2bb8ab7-0e64-49fc-8e18-372ec0a03822"/>
       <column name="AB_ATTRIBUTE_ID" value="558419b2-6113-4060-b88d-cc6324754765"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="8f4f43e0-669b-4e1f-b050-42193f8d2998"/>
+      <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:49:54"/>
       <column name="ID_VALUE" value="SALPROJSTPERSAPP"/>
     </insert>
@@ -681,7 +681,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="b45cc44c-77d2-4ba4-ae85-8b2046301a95"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="bd92680c-fb4b-4f9b-b434-da4fcee5b079"/>
+      <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:40:12"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -690,7 +690,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="b482cf64-0b8c-49a3-8894-b50635bc2db2"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="756662b5-f5e4-479c-8d97-abd6a395bd79"/>
+      <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:17:34"/>
       <column name="ID_VALUE" value="9882c4bc-a3d9-43a9-8238-81ef39387869"/>
     </insert>
@@ -699,7 +699,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="b9712ac0-cf76-47c1-b059-9d7498b6fa5c"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="bd92680c-fb4b-4f9b-b434-da4fcee5b079"/>
+      <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:40:12"/>
       <column name="ID_VALUE" value="9882c4bc-a3d9-43a9-8238-81ef39387869"/>
     </insert>
@@ -708,7 +708,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="c0a7430e-6393-4d1a-9954-b67e9d6cd73d"/>
       <column name="AB_ATTRIBUTE_ID" value="f11f65d0-4352-4f81-85d0-bfd034275e34"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="13e60843-5d6d-45ee-88c7-46db41874138"/>
+      <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:45:25"/>
       <column name="ID_VALUE" value="e7e05c6e-6108-44bd-824a-c076dfa5ae93"/>
     </insert>
@@ -717,7 +717,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="c7f04b7a-de66-4398-8810-2592d5ca8674"/>
       <column name="AB_ATTRIBUTE_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="09281be8-8cb5-4201-9758-8c86b3d2bb85"/>
+      <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:46:05"/>
       <column name="ID_VALUE" value="e4a60941-513f-4e75-a787-f00070ecb00a"/>
     </insert>
@@ -726,7 +726,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="c87cf142-382a-426a-a4d6-07b71b6d41ed"/>
       <column name="AB_ATTRIBUTE_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="a5d107ac-f796-430e-a686-5a132f96650b"/>
+      <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:50:59"/>
       <column name="ID_VALUE" value="1d30d0ab-6103-4972-84c0-fd23eef15ca1"/>
     </insert>
@@ -735,7 +735,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="cdab4a76-c6e6-4ffd-bae6-750128b6ed5d"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:18:12"/>
       <column name="ID_VALUE" value="c85a5ebe-80fe-4176-a92a-35d2200baa07"/>
     </insert>
@@ -744,7 +744,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="ce75da6e-b946-4a8c-a9dc-fb76cc20f0a1"/>
       <column name="AB_ATTRIBUTE_ID" value="292fae38-6557-466d-8843-3b1b4a1f6599"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:46:30"/>
       <column name="ID_VALUE" value="PAYTERM30"/>
     </insert>
@@ -753,7 +753,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="d4974b69-d5b9-4e4e-9f39-de34622765b1"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="13e60843-5d6d-45ee-88c7-46db41874138"/>
+      <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
       <column name="DATE_NEW" valueDate="2019-05-17T10:01:27"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -762,7 +762,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="d4a3c8a0-2050-4147-abad-43a1f35ccbf0"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:21:35"/>
       <column name="ID_VALUE" value="9882c4bc-a3d9-43a9-8238-81ef39387869"/>
     </insert>
@@ -780,7 +780,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="df4e0db2-dbcb-46c2-b3ec-b7689ff2f3ba"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="692e1f81-9f05-4e22-b74d-56d34c671067"/>
+      <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
       <column name="DATE_NEW" valueDate="2019-05-23T10:54:10"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -789,7 +789,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="e1beb5a9-acfa-4b7b-bc6d-735b1a669e10"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="b043cd42-058c-48bd-8326-4c92e0e74c48"/>
+      <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:28:14"/>
       <column name="ID_VALUE" value="79378933-9f74-4391-b876-4528b582661f"/>
     </insert>
@@ -798,7 +798,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="e303b295-01ae-4dd4-bad1-35a70c6dc90f"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="d3707591-5620-49a8-a63f-19e88ca7a21c"/>
+      <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:25:12"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -807,7 +807,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="e7ebccea-0850-4525-908c-040681de1bf4"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:24:42"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -816,7 +816,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="edddb76a-348d-497b-9665-21acbe0bed0b"/>
       <column name="AB_ATTRIBUTE_ID" value="71226196-2812-4d70-b90f-c3e2c14fd4d1"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:44:55"/>
       <column name="ID_VALUE" value="SALPROJWEAKMARKET"/>
     </insert>
@@ -825,7 +825,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="ee0027e1-8fa2-4550-96f7-59c32461e2b0"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="d3707591-5620-49a8-a63f-19e88ca7a21c"/>
+      <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:25:12"/>
       <column name="ID_VALUE" value="9882c4bc-a3d9-43a9-8238-81ef39387869"/>
     </insert>
@@ -834,7 +834,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="ef53917b-ae76-4903-a68a-ab0feb743288"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="03e09527-21cc-489a-b37f-0dd7df553c20"/>
+      <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:22:05"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -843,7 +843,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="f1f8c53a-46e9-40a9-8be2-8f0775cafa64"/>
       <column name="AB_ATTRIBUTE_ID" value="8af37871-d407-4414-98ad-e64dbaa5794a"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="82c7b72d-da4e-4fab-a6cc-31e1be07dd08"/>
+      <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:49:31"/>
       <column name="ID_VALUE" value="SALPROJPOLLOW"/>
     </insert>
@@ -861,7 +861,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="f5a05824-270c-4556-a992-e5af9491b734"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="ea07af40-4918-4ea2-94ad-031d01aeaab4"/>
+      <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:20:19"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -870,7 +870,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="f69ac4cd-7d18-47b4-994f-4fda20f2bc9f"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="aed65442-06aa-4cdc-b924-1d9728b444d3"/>
+      <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
       <column name="DATE_NEW" valueDate="2019-05-23T10:56:16"/>
       <column name="ID_VALUE" value="79378933-9f74-4391-b876-4528b582661f"/>
     </insert>
@@ -879,7 +879,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="f7824359-7f2c-4942-b959-465bf776ef7e"/>
       <column name="AB_ATTRIBUTE_ID" value="558419b2-6113-4060-b88d-cc6324754765"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="bd92680c-fb4b-4f9b-b434-da4fcee5b079"/>
+      <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:40:12"/>
       <column name="ID_VALUE" value="SALPROJSTPRICEPOL"/>
     </insert>
@@ -888,7 +888,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="f7a60ce6-39c5-43b6-a14d-24b838f541b9"/>
       <column name="AB_ATTRIBUTE_ID" value="8af37871-d407-4414-98ad-e64dbaa5794a"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="d3707591-5620-49a8-a63f-19e88ca7a21c"/>
+      <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:49:02"/>
       <column name="ID_VALUE" value="SALPROJPOLLOW"/>
     </insert>
@@ -897,7 +897,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="f9404e0f-48cc-4a2b-a4f7-d260fe4f6e07"/>
       <column name="AB_ATTRIBUTE_ID" value="f11f65d0-4352-4f81-85d0-bfd034275e34"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:52:10"/>
       <column name="ID_VALUE" value="292825e8-fa96-4b7b-8dab-71955ae14571"/>
     </insert>
@@ -906,7 +906,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="fedc492c-cc5d-48cb-a7ee-0cef061facec"/>
       <column name="AB_ATTRIBUTE_ID" value="292fae38-6557-466d-8843-3b1b4a1f6599"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="09281be8-8cb5-4201-9758-8c86b3d2bb85"/>
+      <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:45:57"/>
       <column name="ID_VALUE" value="PAYTERM30"/>
     </insert>
@@ -915,7 +915,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="fffb23a5-20a8-40d9-b05f-b2bb822f2db1"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:41:53"/>
       <column name="ID_VALUE" value="79378933-9f74-4391-b876-4528b582661f"/>
     </insert>
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/ab_loghistory.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/ab_loghistory.xml
index 3f718d9b8395c2b9fe5424b2945387f2be98e4d6..935298d7a89d0a2736a4a8a517d4147ec7a0b02a 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/ab_loghistory.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/ab_loghistory.xml
@@ -248,7 +248,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="f355e4a9-c520-413d-ac93-2e2c100e5f8b"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Activity Id: &quot;e265a424-b343-4bc1-b1cd-d40b9405ca12&quot;,&#10;Objekt: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Activity Id: &quot;e265a424-b343-4bc1-b1cd-d40b9405ca12&quot;,&#10;Objekt: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
       <column name="TABLENAME" value="ACTIVITYLINK"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="f1b02cad-2a68-45fb-9313-1983b83bb310"/>
@@ -743,7 +743,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="1224bcca-ac13-4aed-af29-5eb38ef567f5"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Activity Id: &quot;d3e2acf7-ee1c-4b17-9cb6-e8e720d0cc0b&quot;,&#10;Objekt: &quot;f7b8f0c3-7702-4466-b502-d21fa4fa0010&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Activity Id: &quot;d3e2acf7-ee1c-4b17-9cb6-e8e720d0cc0b&quot;,&#10;Objekt: &quot;fc465f2f-803b-4a1f-b79d-7b466d7ecff4&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
       <column name="TABLENAME" value="ACTIVITYLINK"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="26f94d20-7f3a-4b3e-9655-fcf3e971ce1d"/>
@@ -905,7 +905,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="76b82ec8-bcb6-48be-8f2d-56f64ba45db2"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Activity Id: &quot;9c22ba51-8a09-40f1-b6b8-9787fe43b141&quot;,&#10;Objekt: &quot;6a92df58-2b98-40da-ba6a-d0ddb1fde234&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Activity Id: &quot;9c22ba51-8a09-40f1-b6b8-9787fe43b141&quot;,&#10;Objekt: &quot;6efb4fab-64f9-4d8e-aa6f-a158d13fc273&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
       <column name="TABLENAME" value="ACTIVITYLINK"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="fedb7c1b-0a41-4dba-8abb-2e4af7b4ee2d"/>
@@ -941,7 +941,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="cd622430-d539-41a1-b18d-eb31d03dcff3"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Objekt: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot;,&#10;Task Id: &quot;46164eac-62d1-4dbb-a252-93ac49429855&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Objekt: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot;,&#10;Task Id: &quot;46164eac-62d1-4dbb-a252-93ac49429855&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
       <column name="TABLENAME" value="TASKLINK"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="eca5c8cb-bd10-4425-b4bc-a2e50f2518b9"/>
@@ -986,7 +986,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="86c7423a-5db3-42a1-b26d-c03a902fb913"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Activity Id: &quot;b8067a42-d059-4d86-88b0-485a194faa36&quot;,&#10;Objekt: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Activity Id: &quot;b8067a42-d059-4d86-88b0-485a194faa36&quot;,&#10;Objekt: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
       <column name="TABLENAME" value="ACTIVITYLINK"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="60c58962-9b76-4d22-855d-b0cf9ef388dc"/>
@@ -1051,7 +1051,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="9d97109c-d973-4c7a-8cb3-ec1e4e3d178b"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Activity Id: &quot;c7c29526-3138-4264-8eb4-c6876797f8fe&quot;,&#10;Objekt: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Activity Id: &quot;c7c29526-3138-4264-8eb4-c6876797f8fe&quot;,&#10;Objekt: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
       <column name="TABLENAME" value="ACTIVITYLINK"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="9770d2f3-409c-4fab-a3df-4fd3dcd14693"/>
@@ -1191,7 +1191,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="756662b5-f5e4-479c-8d97-abd6a395bd79"/>
+      <column name="TABLENAMEID" value="449080f6-b714-4189-a261-37439d0d4010"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:17:34"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1200,7 +1200,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Maschinenbau&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="756662b5-f5e4-479c-8d97-abd6a395bd79"/>
+      <column name="TABLENAMEID" value="449080f6-b714-4189-a261-37439d0d4010"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:17:34"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1209,7 +1209,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Handel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="TABLENAMEID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:18:11"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1218,7 +1218,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;gross&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="TABLENAMEID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:18:12"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1227,7 +1227,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="09281be8-8cb5-4201-9758-8c86b3d2bb85"/>
+      <column name="TABLENAMEID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:19:47"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1236,7 +1236,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Bauwesen&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="09281be8-8cb5-4201-9758-8c86b3d2bb85"/>
+      <column name="TABLENAMEID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:19:47"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1245,7 +1245,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="ea07af40-4918-4ea2-94ad-031d01aeaab4"/>
+      <column name="TABLENAMEID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:20:19"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1254,7 +1254,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Service&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="22f1ca45-e633-4080-9d5c-9a8c2e06d3f9"/>
+      <column name="TABLENAMEID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:20:55"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1263,7 +1263,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="22f1ca45-e633-4080-9d5c-9a8c2e06d3f9"/>
+      <column name="TABLENAMEID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:20:55"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1272,7 +1272,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Logistik&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="TABLENAMEID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:21:26"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1281,7 +1281,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="TABLENAMEID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:21:26"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1290,7 +1290,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="03e09527-21cc-489a-b37f-0dd7df553c20"/>
+      <column name="TABLENAMEID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:22:05"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1299,7 +1299,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Maschinenbau&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="03e09527-21cc-489a-b37f-0dd7df553c20"/>
+      <column name="TABLENAMEID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:22:05"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1308,7 +1308,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Maschinenbau&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="TABLENAMEID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:24:42"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1317,7 +1317,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="TABLENAMEID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:24:42"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1326,7 +1326,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Maschinenbau&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="d3707591-5620-49a8-a63f-19e88ca7a21c"/>
+      <column name="TABLENAMEID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:25:12"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1335,7 +1335,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="d3707591-5620-49a8-a63f-19e88ca7a21c"/>
+      <column name="TABLENAMEID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:25:13"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1344,7 +1344,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="82c7b72d-da4e-4fab-a6cc-31e1be07dd08"/>
+      <column name="TABLENAMEID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:25:55"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1353,7 +1353,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Logistik&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="82c7b72d-da4e-4fab-a6cc-31e1be07dd08"/>
+      <column name="TABLENAMEID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:25:55"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1362,7 +1362,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Bauwesen&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="8f4f43e0-669b-4e1f-b050-42193f8d2998"/>
+      <column name="TABLENAMEID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:26:46"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1380,7 +1380,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;gross&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="TABLENAMEID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:27:08"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1389,7 +1389,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Bauwesen&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="a5d107ac-f796-430e-a686-5a132f96650b"/>
+      <column name="TABLENAMEID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:27:34"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1398,7 +1398,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="a5d107ac-f796-430e-a686-5a132f96650b"/>
+      <column name="TABLENAMEID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:27:34"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1407,7 +1407,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Bauwesen&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="b043cd42-058c-48bd-8326-4c92e0e74c48"/>
+      <column name="TABLENAMEID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:28:14"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1476,7 +1476,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="209dd881-57eb-429b-8144-8fd5e14ad1bb"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Object 1 row Id: &quot;13e60843-5d6d-45ee-88c7-46db41874138&quot;,&#10;Object 2 row Id: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot;,&#10;Object relation type 1: &quot;3cee0474-504f-43cc-844a-715f1a0db271&quot;,&#10;Object relation type 2: &quot;fa879afd-b2c5-4eee-9799-d63c6764b348&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Object 1 row Id: &quot;8707accf-b1fd-4bde-97b1-ab44b75f66f9&quot;,&#10;Object 2 row Id: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot;,&#10;Object relation type 1: &quot;3cee0474-504f-43cc-844a-715f1a0db271&quot;,&#10;Object relation type 2: &quot;fa879afd-b2c5-4eee-9799-d63c6764b348&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_OBJECTRELATION"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="e94240b7-4492-43f8-8913-cd7ff6ea2892"/>
@@ -1485,7 +1485,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="64a91508-b375-4a40-8968-968309e5f781"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Object 1 row Id: &quot;b043cd42-058c-48bd-8326-4c92e0e74c48&quot;,&#10;Object 2 row Id: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot;,&#10;Object relation type 1: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot;,&#10;Object relation type 2: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Object 1 row Id: &quot;5a52304e-65e8-40ed-9aca-a76af6c8c3a0&quot;,&#10;Object 2 row Id: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot;,&#10;Object relation type 1: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot;,&#10;Object relation type 2: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_OBJECTRELATION"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="8c09b724-5ff0-4869-add8-803097cd94aa"/>
@@ -1494,7 +1494,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="3dabb79a-1b4f-4977-a7ff-d92d7e1a1b1f"/>
       <column name="LOGTYPE" value="D"/>
-      <column name="DESCRIPTION" value="Object relation type 1: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot;,&#10;Object relation type 2: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot;,&#10;Object 1 row Id: &quot;b043cd42-058c-48bd-8326-4c92e0e74c48&quot;,&#10;Object 2 row Id: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot; gelöscht."/>
+      <column name="DESCRIPTION" value="Object relation type 1: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot;,&#10;Object relation type 2: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot;,&#10;Object 1 row Id: &quot;5a52304e-65e8-40ed-9aca-a76af6c8c3a0&quot;,&#10;Object 2 row Id: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot; gelöscht."/>
       <column name="TABLENAME" value="AB_OBJECTRELATION"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="8c09b724-5ff0-4869-add8-803097cd94aa"/>
@@ -1503,7 +1503,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="de5beb83-904d-4657-89db-4ba5a56b68f5"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Object 1 row Id: &quot;62175b31-b432-4ec6-932f-8e69033884c6&quot;,&#10;Object 2 row Id: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot;,&#10;Object relation type 1: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot;,&#10;Object relation type 2: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Object 1 row Id: &quot;a3fd3c23-12e1-4820-b76e-2cd70103d94d&quot;,&#10;Object 2 row Id: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot;,&#10;Object relation type 1: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot;,&#10;Object relation type 2: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_OBJECTRELATION"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="47802bb5-7785-43ba-a860-6b494e8ef593"/>
@@ -1512,7 +1512,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="3e8db12d-58c7-41b1-aa83-4d3476b6e861"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Object 1 row Id: &quot;97b66b3c-a9f5-4dc4-902e-850d69973d1d&quot;,&#10;Object 2 row Id: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot;,&#10;Object relation type 1: &quot;c9b7ce6b-1100-46f6-8498-2da6ac24189e&quot;,&#10;Object relation type 2: &quot;259babbd-7827-44d4-b9ec-8245d27b5f70&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Object 1 row Id: &quot;019651a4-503e-4e06-aefd-e7e631bf3144&quot;,&#10;Object 2 row Id: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot;,&#10;Object relation type 1: &quot;c9b7ce6b-1100-46f6-8498-2da6ac24189e&quot;,&#10;Object relation type 2: &quot;259babbd-7827-44d4-b9ec-8245d27b5f70&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_OBJECTRELATION"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="2bd8678c-e621-4e22-b203-2d5d967422c0"/>
@@ -1559,7 +1559,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="0ae7a999-a5d3-4e04-b2a0-ffbf90588459"/>
       <column name="LOGTYPE" value="D"/>
-      <column name="DESCRIPTION" value="Activity Id: &quot;c7c29526-3138-4264-8eb4-c6876797f8fe&quot;,&#10;Objekt: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot;,&#10;Art: &quot;Organisation&quot; gelöscht."/>
+      <column name="DESCRIPTION" value="Activity Id: &quot;c7c29526-3138-4264-8eb4-c6876797f8fe&quot;,&#10;Objekt: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot;,&#10;Art: &quot;Organisation&quot; gelöscht."/>
       <column name="TABLENAME" value="ACTIVITYLINK"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="9770d2f3-409c-4fab-a3df-4fd3dcd14693"/>
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/ab_objectrelation.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/ab_objectrelation.xml
index cca5228e40acf742f9b3c16e6c978ad3703d3f38..cb61f6138dee01989649ef4c2f0bde4ed3b56304 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/ab_objectrelation.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/ab_objectrelation.xml
@@ -5,9 +5,9 @@
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="259babbd-7827-44d4-b9ec-8245d27b5f70"/>
       <column name="AB_OBJECTRELATIONID" value="03c855e5-f236-4e39-b886-91832b3a53fb"/>
-      <column name="OBJECT2_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT2_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="c9b7ce6b-1100-46f6-8498-2da6ac24189e"/>
-      <column name="OBJECT1_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT1_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="b3b85332-1c86-4cd8-a3b9-34c49c51f01a"/>
@@ -19,44 +19,44 @@
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="259babbd-7827-44d4-b9ec-8245d27b5f70"/>
       <column name="AB_OBJECTRELATIONID" value="2bd8678c-e621-4e22-b203-2d5d967422c0"/>
-      <column name="OBJECT2_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT2_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="c9b7ce6b-1100-46f6-8498-2da6ac24189e"/>
-      <column name="OBJECT1_ROWID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="OBJECT1_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="47a9e611-79b6-46b6-b767-3a0dfed9d010"/>
       <column name="AB_OBJECTRELATIONID" value="390cd4d2-8231-4dbc-ac9d-0ea7aecc6ef6"/>
-      <column name="OBJECT2_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT2_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="47a9e611-79b6-46b6-b767-3a0dfed9d010"/>
-      <column name="OBJECT1_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT1_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="0795a3cd-295b-421b-aed1-decc09b05362"/>
       <column name="AB_OBJECTRELATIONID" value="47802bb5-7785-43ba-a860-6b494e8ef593"/>
-      <column name="OBJECT2_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT2_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="0795a3cd-295b-421b-aed1-decc09b05362"/>
-      <column name="OBJECT1_ROWID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="OBJECT1_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="fa879afd-b2c5-4eee-9799-d63c6764b348"/>
       <column name="AB_OBJECTRELATIONID" value="4c9bc7f3-c13b-4e55-9c23-012ba40196c9"/>
-      <column name="OBJECT2_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT2_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="3cee0474-504f-43cc-844a-715f1a0db271"/>
-      <column name="OBJECT1_ROWID" value="d3707591-5620-49a8-a63f-19e88ca7a21c"/>
+      <column name="OBJECT1_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="e397b595-38ae-4365-908e-75ee388838eb"/>
       <column name="AB_OBJECTRELATIONID" value="5c545235-231f-4082-9e74-4ec4512eb98d"/>
-      <column name="OBJECT2_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT2_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="9d4739ba-33b0-4e87-b281-561e2cbdd277"/>
       <column name="OBJECT1_ROWID" value="ef345d11-a40d-59e0-a24c-afcb6095d2cb"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="47a9e611-79b6-46b6-b767-3a0dfed9d010"/>
       <column name="AB_OBJECTRELATIONID" value="63ecd05d-f2e5-4957-a496-96a87451a78f"/>
-      <column name="OBJECT2_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT2_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="47a9e611-79b6-46b6-b767-3a0dfed9d010"/>
-      <column name="OBJECT1_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT1_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="090f6adc-c2b8-44b7-8c61-39dbb5660aa0"/>
@@ -68,30 +68,30 @@
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="fa879afd-b2c5-4eee-9799-d63c6764b348"/>
       <column name="AB_OBJECTRELATIONID" value="c8aa4abb-a274-43d6-a067-ee935c443bfb"/>
-      <column name="OBJECT2_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT2_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="3cee0474-504f-43cc-844a-715f1a0db271"/>
-      <column name="OBJECT1_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT1_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="47a9e611-79b6-46b6-b767-3a0dfed9d010"/>
       <column name="AB_OBJECTRELATIONID" value="cfbbce3e-1c0d-4d05-9ccf-8232f7eaaf02"/>
-      <column name="OBJECT2_ROWID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="OBJECT2_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="47a9e611-79b6-46b6-b767-3a0dfed9d010"/>
-      <column name="OBJECT1_ROWID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="OBJECT1_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="259babbd-7827-44d4-b9ec-8245d27b5f70"/>
       <column name="AB_OBJECTRELATIONID" value="d4454686-8d4e-42d9-9df8-61f19c69ce93"/>
-      <column name="OBJECT2_ROWID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="OBJECT2_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="c9b7ce6b-1100-46f6-8498-2da6ac24189e"/>
-      <column name="OBJECT1_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT1_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="fa879afd-b2c5-4eee-9799-d63c6764b348"/>
       <column name="AB_OBJECTRELATIONID" value="e94240b7-4492-43f8-8913-cd7ff6ea2892"/>
-      <column name="OBJECT2_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT2_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="3cee0474-504f-43cc-844a-715f1a0db271"/>
-      <column name="OBJECT1_ROWID" value="13e60843-5d6d-45ee-88c7-46db41874138"/>
+      <column name="OBJECT1_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
   </changeSet>
 </databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/activitylink.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/activitylink.xml
index 51685d850add04ebcd58f6396a40af906c5f87b0..3621d28b4d2a747be8b92c2036a829bc1cbb556b 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/activitylink.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/activitylink.xml
@@ -15,7 +15,7 @@
       <column name="ACTIVITY_ID" value="94365b81-cddd-4f56-8379-7ba0a98840a4"/>
       <column name="ACTIVITYLINKID" value="01ff4193-d5b4-41eb-b2db-ea31e5ed7df4"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -39,7 +39,7 @@
       <column name="ACTIVITY_ID" value="ccbb8eef-5caa-4f6b-ad1e-dbb8ba171650"/>
       <column name="ACTIVITYLINKID" value="05ccef04-86cd-4b29-96b7-e106c015a82f"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-22T05:57:11"/>
     </insert>
     <insert tableName="activitylink">
@@ -47,7 +47,7 @@
       <column name="ACTIVITY_ID" value="8c88dd83-20cb-4601-b1e0-098f1aef8963"/>
       <column name="ACTIVITYLINKID" value="0aaad19f-daa1-44d3-b7df-cba2a88b2745"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-17T08:56:54"/>
     </insert>
     <insert tableName="activitylink">
@@ -87,7 +87,7 @@
       <column name="ACTIVITY_ID" value="dc0d01bc-6a8e-48cc-8ce0-58fc9d83af01"/>
       <column name="ACTIVITYLINKID" value="10aa8b38-509c-4385-bfe0-775ab92571a8"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-22T05:45:07"/>
     </insert>
     <insert tableName="activitylink">
@@ -95,7 +95,7 @@
       <column name="ACTIVITY_ID" value="a42f7cff-53e5-4515-aca2-49c5b4c46f69"/>
       <column name="ACTIVITYLINKID" value="10b9499b-2f14-4251-8001-ac9e838c59a8"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-17T07:55:56"/>
     </insert>
     <insert tableName="activitylink">
@@ -151,7 +151,7 @@
       <column name="ACTIVITY_ID" value="9f498736-c523-4c63-8c53-28e49324b52b"/>
       <column name="ACTIVITYLINKID" value="20a50d5d-fe87-4ed2-8f94-b2571b6b34e7"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -167,7 +167,7 @@
       <column name="ACTIVITY_ID" value="d6ee3c57-1a49-45d2-8d09-d1480ad3e159"/>
       <column name="ACTIVITYLINKID" value="26b0f97e-30fc-4808-85a1-5d95cd5f6b34"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:56:37"/>
     </insert>
     <insert tableName="activitylink">
@@ -175,7 +175,7 @@
       <column name="ACTIVITY_ID" value="d3e2acf7-ee1c-4b17-9cb6-e8e720d0cc0b"/>
       <column name="ACTIVITYLINKID" value="26f94d20-7f3a-4b3e-9655-fcf3e971ce1d"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-11-15T08:46:21"/>
     </insert>
     <insert tableName="activitylink">
@@ -191,7 +191,7 @@
       <column name="ACTIVITY_ID" value="aaf320cd-b849-4062-a3b4-e6636230c114"/>
       <column name="ACTIVITYLINKID" value="2de91976-7c5e-4676-87e6-1869381235b0"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-23T10:51:56"/>
     </insert>
     <insert tableName="activitylink">
@@ -199,7 +199,7 @@
       <column name="ACTIVITY_ID" value="502167d7-8946-41bb-9353-8bafde8c7b09"/>
       <column name="ACTIVITYLINKID" value="2e4494d3-0160-4e9a-a78a-54884dd465f7"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-06-11T02:41:00"/>
     </insert>
     <insert tableName="activitylink">
@@ -225,7 +225,7 @@
       <column name="ACTIVITY_ID" value="84136771-b2ea-4ad6-a6f7-a08ed228581e"/>
       <column name="ACTIVITYLINKID" value="3385ac40-6f0e-45eb-bb71-ca3027325133"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-17T07:56:49"/>
     </insert>
     <insert tableName="activitylink">
@@ -281,7 +281,7 @@
       <column name="ACTIVITY_ID" value="8034de5b-48e7-4ca6-bfbf-db86395a4c59"/>
       <column name="ACTIVITYLINKID" value="4247ff5e-db95-4114-a1e6-21bbea86098e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-05-17T08:14:49"/>
     </insert>
     <insert tableName="activitylink">
@@ -289,7 +289,7 @@
       <column name="ACTIVITY_ID" value="810346d8-ab0e-4f1a-ae78-9f55efcadbe6"/>
       <column name="ACTIVITYLINKID" value="44ae4bcc-ccec-493c-a0db-32b136c450bc"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T05:07:31"/>
     </insert>
     <insert tableName="activitylink">
@@ -305,7 +305,7 @@
       <column name="ACTIVITY_ID" value="1c711078-8324-4fcf-93ec-2c8aa29c0cc6"/>
       <column name="ACTIVITYLINKID" value="46d9d317-1b7d-4046-8278-9a4957cc1dfe"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -337,7 +337,7 @@
       <column name="ACTIVITY_ID" value="86bd08ed-38ca-42bb-af5b-2bcfb9d3ee1b"/>
       <column name="ACTIVITYLINKID" value="4c526e91-a6b1-4d53-8ecc-a79418c81941"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T05:03:18"/>
     </insert>
     <insert tableName="activitylink">
@@ -417,7 +417,7 @@
       <column name="ACTIVITY_ID" value="a586aba1-0880-4705-9d2a-46b19cbdb954"/>
       <column name="ACTIVITYLINKID" value="565f3c19-3a81-4af6-b2ae-5b4fdccb87eb"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-23T09:30:34"/>
     </insert>
     <insert tableName="activitylink">
@@ -441,7 +441,7 @@
       <column name="ACTIVITY_ID" value="21852330-9c66-42a3-9d25-d053833f146d"/>
       <column name="ACTIVITYLINKID" value="5a4672ac-99ff-4a2e-a4ca-aad217bef144"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T05:22:44"/>
     </insert>
     <insert tableName="activitylink">
@@ -449,7 +449,7 @@
       <column name="ACTIVITY_ID" value="661a7b87-68ae-4d52-bc22-6bf96184e6fe"/>
       <column name="ACTIVITYLINKID" value="5a4d249a-e3e4-48e5-80a5-2fd1567a82b8"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -457,7 +457,7 @@
       <column name="ACTIVITY_ID" value="b378876d-dba5-4e41-865f-9ac056bffa60"/>
       <column name="ACTIVITYLINKID" value="5ad45b3e-72a0-419e-a183-17aaead38158"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -473,7 +473,7 @@
       <column name="ACTIVITY_ID" value="b8067a42-d059-4d86-88b0-485a194faa36"/>
       <column name="ACTIVITYLINKID" value="60c58962-9b76-4d22-855d-b0cf9ef388dc"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-11-15T11:05:25"/>
     </insert>
     <insert tableName="activitylink">
@@ -513,7 +513,7 @@
       <column name="ACTIVITY_ID" value="beda92e0-bbd6-423a-8b49-78da30064e84"/>
       <column name="ACTIVITYLINKID" value="6c212e64-a9db-4395-a118-5279dbc6761d"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -553,7 +553,7 @@
       <column name="ACTIVITY_ID" value="325d38fe-e0e8-44b7-b67c-279fcba6a7bd"/>
       <column name="ACTIVITYLINKID" value="75b42e7c-4748-41ca-9a23-3436b55cadf6"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-17T09:00:40"/>
     </insert>
     <insert tableName="activitylink">
@@ -561,7 +561,7 @@
       <column name="ACTIVITY_ID" value="e2d3cde4-e214-4cef-ae5a-d52da5633094"/>
       <column name="ACTIVITYLINKID" value="769721cc-a526-4e61-989f-71296085e7df"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T05:14:26"/>
     </insert>
     <insert tableName="activitylink">
@@ -569,7 +569,7 @@
       <column name="ACTIVITY_ID" value="5fcb8c51-22da-49ec-83c4-d47c296c77a7"/>
       <column name="ACTIVITYLINKID" value="777ed544-bcb2-43b2-914f-31bfa684e5c3"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-05-17T08:11:53"/>
     </insert>
     <insert tableName="activitylink">
@@ -585,7 +585,7 @@
       <column name="ACTIVITY_ID" value="7a058394-b360-41e0-aaea-6a3ca625f0d3"/>
       <column name="ACTIVITYLINKID" value="7a4b1e70-1773-4529-8506-3243c9349ebc"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-19T08:54:52"/>
     </insert>
     <insert tableName="activitylink">
@@ -593,7 +593,7 @@
       <column name="ACTIVITY_ID" value="91f7f3c5-8f36-44a7-ba0b-503a05c81d3b"/>
       <column name="ACTIVITYLINKID" value="7f9cbd45-7ff0-4d7d-9412-58db6245f400"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:48:02"/>
     </insert>
     <insert tableName="activitylink">
@@ -601,7 +601,7 @@
       <column name="ACTIVITY_ID" value="6397161c-afed-40cf-a1bd-12e657054ce4"/>
       <column name="ACTIVITYLINKID" value="80d3de8f-fd86-401b-aeae-63b389b9310c"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -633,7 +633,7 @@
       <column name="ACTIVITY_ID" value="a416d1f7-553a-43b6-a084-021ad1f92dd9"/>
       <column name="ACTIVITYLINKID" value="869c8987-7239-4f61-a0dc-b2f9e83ab2db"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
       <column name="DATE_NEW" valueDate="2019-05-17T10:47:38"/>
     </insert>
     <insert tableName="activitylink">
@@ -657,7 +657,7 @@
       <column name="ACTIVITY_ID" value="2e2e733b-0d88-41aa-80c3-04dab338011a"/>
       <column name="ACTIVITYLINKID" value="8d136835-b822-49a2-a516-87d4af34e8e1"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-17T07:58:03"/>
     </insert>
     <insert tableName="activitylink">
@@ -665,7 +665,7 @@
       <column name="ACTIVITY_ID" value="5e95209e-0c7d-4c45-a5de-0d3ccdbc5f08"/>
       <column name="ACTIVITYLINKID" value="8d2ff9ea-5416-47ac-839f-3f7c7b517129"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-22T05:42:09"/>
     </insert>
     <insert tableName="activitylink">
@@ -673,7 +673,7 @@
       <column name="ACTIVITY_ID" value="56c78f3d-e126-4e36-8031-d5eef9877243"/>
       <column name="ACTIVITYLINKID" value="8d384436-9989-4571-a193-cc3061249f97"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -681,7 +681,7 @@
       <column name="ACTIVITY_ID" value="107a18dd-94f1-4df4-8775-6016262951ef"/>
       <column name="ACTIVITYLINKID" value="918ec650-9e5a-430b-b6a7-d0f5e9780935"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-05-17T08:19:41"/>
     </insert>
     <insert tableName="activitylink">
@@ -689,7 +689,7 @@
       <column name="ACTIVITY_ID" value="7c89c987-2751-4d87-8d42-1ebbd7bdba7f"/>
       <column name="ACTIVITYLINKID" value="93c76b23-fc2c-4544-9e18-2422b2721860"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-05-17T08:16:16"/>
     </insert>
     <insert tableName="activitylink">
@@ -705,7 +705,7 @@
       <column name="ACTIVITY_ID" value="7fa61c35-0b88-4e01-aadf-73101245a2e8"/>
       <column name="ACTIVITYLINKID" value="94ed9437-9050-4358-975b-c07988c36117"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-23T10:50:27"/>
     </insert>
     <insert tableName="activitylink">
@@ -713,7 +713,7 @@
       <column name="ACTIVITY_ID" value="a01f1cc6-e588-451d-b22a-6dfe314fda51"/>
       <column name="ACTIVITYLINKID" value="9715d82b-5239-46c3-a651-fdc7ca4c1d0e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
       <column name="DATE_NEW" valueDate="2019-05-17T10:51:50"/>
     </insert>
     <insert tableName="activitylink">
@@ -753,7 +753,7 @@
       <column name="ACTIVITY_ID" value="62486e9e-52c6-476f-b1e3-5d62e3f6384e"/>
       <column name="ACTIVITYLINKID" value="9f20ee40-22b8-440a-93e3-749bc6d6e273"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-22T05:54:23"/>
     </insert>
     <insert tableName="activitylink">
@@ -761,7 +761,7 @@
       <column name="ACTIVITY_ID" value="ed70c795-2a72-40e4-bce7-13aca09da578"/>
       <column name="ACTIVITYLINKID" value="9f2616fb-7d78-44f6-9f5e-94ef5268dad4"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:57:56"/>
     </insert>
     <insert tableName="activitylink">
@@ -793,7 +793,7 @@
       <column name="ACTIVITY_ID" value="52462c82-d05f-4a73-9bac-4d9929d07436"/>
       <column name="ACTIVITYLINKID" value="a631ea8d-c09a-4bff-83ab-4573df6dbe4f"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-17T07:52:12"/>
     </insert>
     <insert tableName="activitylink">
@@ -809,7 +809,7 @@
       <column name="ACTIVITY_ID" value="d6038dc6-a28f-42ad-b17b-094adc98fd8a"/>
       <column name="ACTIVITYLINKID" value="aa944406-61f4-4044-9f69-51a42b270113"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-22T05:46:52"/>
     </insert>
     <insert tableName="activitylink">
@@ -833,7 +833,7 @@
       <column name="ACTIVITY_ID" value="9dda39bf-966c-4560-be03-5ddbbc1da84a"/>
       <column name="ACTIVITYLINKID" value="b0fae79b-0b1e-4650-8d94-853d17cca7bd"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -873,7 +873,7 @@
       <column name="ACTIVITY_ID" value="de110a33-bcab-407e-9d60-7a65f028159b"/>
       <column name="ACTIVITYLINKID" value="baa5a1da-39f2-48ae-93a5-bad704e5ae48"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -889,7 +889,7 @@
       <column name="ACTIVITY_ID" value="f38f8b69-7c10-4991-af8c-40dda43376f9"/>
       <column name="ACTIVITYLINKID" value="bc86224f-8266-4c8a-950b-b8cb9e1a5569"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-22T05:58:08"/>
     </insert>
     <insert tableName="activitylink">
@@ -929,7 +929,7 @@
       <column name="ACTIVITY_ID" value="e3be48af-e679-4b3a-972f-ad17239e3bb4"/>
       <column name="ACTIVITYLINKID" value="c3751fb7-ae77-402b-8716-3e3a477dc813"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T04:58:50"/>
     </insert>
     <insert tableName="activitylink">
@@ -945,7 +945,7 @@
       <column name="ACTIVITY_ID" value="e303e7e9-6d16-40cd-a7a9-7196d219d1de"/>
       <column name="ACTIVITYLINKID" value="c419929e-2b07-4cc4-9c7d-b0cf8b47b252"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-22T05:52:55"/>
     </insert>
     <insert tableName="activitylink">
@@ -961,7 +961,7 @@
       <column name="ACTIVITY_ID" value="de110a35-aaab-407e-9d60-7a65f028159b"/>
       <column name="ACTIVITYLINKID" value="caa5a1da-39f2-48ae-93a5-bad704e5ae48"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -977,7 +977,7 @@
       <column name="ACTIVITY_ID" value="6fe97d41-b44a-42b8-b19d-3ed9ce1cc393"/>
       <column name="ACTIVITYLINKID" value="cfb3f5f6-c148-42c9-b86c-14900e8d30c9"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-17T08:54:10"/>
     </insert>
     <insert tableName="activitylink">
@@ -993,7 +993,7 @@
       <column name="ACTIVITY_ID" value="a867b04c-b2be-48ec-8108-1144a978f54a"/>
       <column name="ACTIVITYLINKID" value="d1cfe415-bf05-4ee0-98b6-56ba560a39b6"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T05:00:39"/>
     </insert>
     <insert tableName="activitylink">
@@ -1057,7 +1057,7 @@
       <column name="ACTIVITY_ID" value="d608cae4-7b54-4a12-95f3-5b9eac3d04ef"/>
       <column name="ACTIVITYLINKID" value="da68ccb2-09c8-4a63-9dc3-16bec0777ad6"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:53:44"/>
     </insert>
     <insert tableName="activitylink">
@@ -1105,7 +1105,7 @@
       <column name="ACTIVITY_ID" value="36ec539c-a451-4166-b64d-fb98f1b73481"/>
       <column name="ACTIVITYLINKID" value="e090084f-d2e4-42e5-b524-7e79dafcb78e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
       <column name="DATE_NEW" valueDate="2019-05-17T10:49:00"/>
     </insert>
     <insert tableName="activitylink">
@@ -1145,7 +1145,7 @@
       <column name="ACTIVITY_ID" value="81b4d02f-be0b-4437-b51d-d5c833adede4"/>
       <column name="ACTIVITYLINKID" value="e80cdefe-ff46-49f9-84ce-393882730337"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-06-11T02:30:33"/>
     </insert>
     <insert tableName="activitylink">
@@ -1153,7 +1153,7 @@
       <column name="ACTIVITY_ID" value="dcf266be-505d-4344-b091-6d9b01007a72"/>
       <column name="ACTIVITYLINKID" value="ef66f553-93f4-4df5-a97c-d7a93b57ae6a"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-17T08:00:17"/>
     </insert>
     <insert tableName="activitylink">
@@ -1161,7 +1161,7 @@
       <column name="ACTIVITY_ID" value="e265a424-b343-4bc1-b1cd-d40b9405ca12"/>
       <column name="ACTIVITYLINKID" value="f1b02cad-2a68-45fb-9313-1983b83bb310"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-11-13T11:06:51"/>
     </insert>
     <insert tableName="activitylink">
@@ -1169,7 +1169,7 @@
       <column name="ACTIVITY_ID" value="0cf02b72-a46a-4cd2-975f-15556618ea90"/>
       <column name="ACTIVITYLINKID" value="f20857e3-3191-4fdf-b803-9ffd1a0668d7"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-22T05:43:15"/>
     </insert>
     <insert tableName="activitylink">
@@ -1185,7 +1185,7 @@
       <column name="ACTIVITY_ID" value="26c4ccf9-a59d-483d-83a8-264b5fac219a"/>
       <column name="ACTIVITYLINKID" value="f37c2f14-27ce-4782-a7d4-c9f6d6fbcecd"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-23T09:28:27"/>
     </insert>
     <insert tableName="activitylink">
@@ -1193,7 +1193,7 @@
       <column name="ACTIVITY_ID" value="e2068edd-75cf-4b8a-8ff2-96a3c63956c2"/>
       <column name="ACTIVITYLINKID" value="f43ce26b-e728-41cd-9a93-745718b98972"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-23T10:49:12"/>
     </insert>
     <insert tableName="activitylink">
@@ -1217,7 +1217,7 @@
       <column name="ACTIVITY_ID" value="dd74c12b-44c5-4c58-a363-48333edd5538"/>
       <column name="ACTIVITYLINKID" value="f91f6e28-01f1-4b45-98f5-b0fb42ac3c38"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-05-17T08:17:16"/>
     </insert>
     <insert tableName="activitylink">
@@ -1241,7 +1241,7 @@
       <column name="ACTIVITY_ID" value="0e62c5cf-7562-4c03-ae11-e6163acada9f"/>
       <column name="ACTIVITYLINKID" value="fb08245a-d14b-4a41-bfb3-973aa560d079"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-19T08:57:37"/>
     </insert>
     <insert tableName="activitylink">
@@ -1249,7 +1249,7 @@
       <column name="ACTIVITY_ID" value="b660824c-4336-4119-b5d3-5d0459764d86"/>
       <column name="ACTIVITYLINKID" value="fbd5ad75-92ac-48e2-ae11-d2f6e135123e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-23T09:07:02"/>
     </insert>
     <insert tableName="activitylink">
@@ -1257,7 +1257,7 @@
       <column name="ACTIVITY_ID" value="9c22ba51-8a09-40f1-b6b8-9787fe43b141"/>
       <column name="ACTIVITYLINKID" value="fedb7c1b-0a41-4dba-8abb-2e4af7b4ee2d"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-11-15T08:57:12"/>
     </insert>
     <insert tableName="activitylink">
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/classification.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/classification.xml
index a8fe8e687375d7e2b2c214668030e7c33d0a6a00..17afcac0e508742a6cc5879850aa8259ddc26247 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/classification.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/classification.xml
@@ -5,1787 +5,2026 @@
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="VALUE" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="0027e606-7932-4e40-9e20-43717b687a64"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>    
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="008ac315-31ab-4320-bf29-6681708eda88"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="00c30050-c850-46b0-8e1d-d70f889655e3"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b1c55bcd-16c6-4b2f-8f73-e16397b40e93"/>
+      <column name="VALUE" value="b1c55bcd-16c6-4b2f-8f73-e16397b40e93"/>
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="028181fe-5687-4904-b7cb-c4a1befe7eed"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="ba5d70c3-e77a-45ff-828b-7b3e0a61eec2"/>
+      <column name="VALUE" value="ba5d70c3-e77a-45ff-828b-7b3e0a61eec2"/>
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="02f2f9a4-0d34-472a-b8b2-461fad057c4e"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>    
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="0359b7b8-7526-4165-8b01-e90403b206eb"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="29134094-66f2-4331-9f14-fc6a27ab111e"/>
+      <column name="VALUE" value="29134094-66f2-4331-9f14-fc6a27ab111e"/>  
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="03bb8bbb-0644-4376-99fb-b21fc2807f14"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="0423c091-7e65-43eb-9ab3-f5a847350845"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>
+      <column name="VALUE" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>    
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="045365c1-9561-4e4f-ad9b-9ce6ef0d0279"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="29134094-66f2-4331-9f14-fc6a27ab111e"/>
+      <column name="VALUE" value="29134094-66f2-4331-9f14-fc6a27ab111e"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="048a95bd-0a82-494d-b7fd-90f5d750f2c7"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
+      <column name="VALUE" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="051e9f0f-fc99-4046-90b9-6cfb403844e9"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2f4fddd2-be83-4190-99c3-6de8a7e328c5"/>
+      <column name="VALUE" value="2f4fddd2-be83-4190-99c3-6de8a7e328c5"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="0521dd6e-49ca-4a3a-9906-12e8359e3db9"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3fe9f04b-6a85-4a73-a138-ca90b6d8e61c"/>
+      <column name="VALUE" value="3fe9f04b-6a85-4a73-a138-ca90b6d8e61c"/>   
+      <column name="SCOREPOINTS" valueNumeric="50.00"/>
       <column name="CLASSIFICATIONID" value="053f18d1-8fe2-4a79-978d-03cc37454ffe"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>   
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="058a9ef7-adca-4278-840a-720665fa3cd3"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="0759e286-007b-4568-b4d6-0542900d7ba1"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="085d5901-9ab4-4747-a758-660d952a7a2c"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2a702a31-9907-4f1b-abfd-3342640f1c9e"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>
+      <column name="VALUE" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>   
+      <column name="SCOREPOINTS" valueNumeric="12.50"/>
       <column name="CLASSIFICATIONID" value="0969044c-33eb-41eb-9aec-fa3795d8c49f"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="bf6b1757-11da-49a9-a02c-8340139968ee"/>
+      <column name="VALUE" value="bf6b1757-11da-49a9-a02c-8340139968ee"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="0a7ec07b-d429-4b0a-aebb-0a194e76428e"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/> 
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="0f77577a-7a45-4c3f-be39-35ec364e8242"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="f1534026-34cc-4898-8711-41cbe4accb60"/>
+      <column name="VALUE" value="f1534026-34cc-4898-8711-41cbe4accb60"/>
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="0fcfa75f-9844-49d7-a088-56e570be4cd0"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3fe9f04b-6a85-4a73-a138-ca90b6d8e61c"/>
+      <column name="VALUE" value="3fe9f04b-6a85-4a73-a138-ca90b6d8e61c"/>  
+      <column name="SCOREPOINTS" valueNumeric="50.00"/>
       <column name="CLASSIFICATIONID" value="1180d429-0453-4b67-a805-7dc101e6ead2"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2f4fddd2-be83-4190-99c3-6de8a7e328c5"/>
+      <column name="VALUE" value="2f4fddd2-be83-4190-99c3-6de8a7e328c5"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="122116f6-e858-4605-af18-6c8b21da6455"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/> 
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="12280a78-1bc8-411d-9556-57b6ea12343f"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5564a330-8c13-424f-a24b-5f97185a9036"/>
+      <column name="VALUE" value="5564a330-8c13-424f-a24b-5f97185a9036"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="1249cfe4-d2cd-42c2-9df8-93b8f6c1f272"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="35d8ae15-8993-4ab2-99f6-e57c2ebf0bb3"/>
+      <column name="VALUE" value="35d8ae15-8993-4ab2-99f6-e57c2ebf0bb3"/>
+      <column name="SCOREPOINTS" valueNumeric="33.00"/>
       <column name="CLASSIFICATIONID" value="13771cd8-3694-4a44-8793-cd0fc3fb4b53"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>
+      <column name="VALUE" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>  
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="13985a1a-1660-4a85-86c1-612bd62df8d7"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>      
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="13f634ef-70ba-440b-91af-e6324cdb20bb"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
+      <column name="VALUE" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="14148c9a-8afb-42ad-a4c5-d1102241e9f8"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="14f31249-544a-46f9-a2e4-c3bdcf3e49a3"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2031525e-6ca3-46b4-91d4-7f90cd31a630"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="e70a23b4-f2a9-4438-8ba6-742c6c17e5cc"/>
+      <column name="VALUE" value="e70a23b4-f2a9-4438-8ba6-742c6c17e5cc"/>
+      <column name="SCOREPOINTS" valueNumeric="12.50"/>
       <column name="CLASSIFICATIONID" value="166f3484-53a8-4c44-aad7-ef47a268ae71"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="8c1e8f81-145f-4efe-936f-3f4147f4d59a"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>
+      <column name="VALUE" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>    
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="1743c169-ef67-42b9-81af-99fc753d7a64"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>      
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="1897cf27-f472-4d25-88fe-64bd08915817"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="VALUE" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>      
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="19cd3898-cb8e-4fa3-ade8-89cacb181b7d"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>    
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="1a093afe-066e-4bbc-b6c9-b913ab8dfdc0"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>  
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="1ac75382-0af9-42d2-8fe5-22295a93e8b3"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
+      <column name="VALUE" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="1af00ea1-11fe-49d7-8a21-29bee4f31991"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>  
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="1dc7de76-80d9-4240-97ae-cab241301a68"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="bf6b1757-11da-49a9-a02c-8340139968ee"/>
+      <column name="VALUE" value="bf6b1757-11da-49a9-a02c-8340139968ee"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="1ec41224-e21c-4adf-8b7c-235eca10801c"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="20092371-2723-45e2-aae0-3a697b1265fc"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="203fb867-ee2f-4c01-8fb5-8e49da32be64"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>
+      <column name="VALUE" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="208c8324-e7f9-41b9-93ec-ac7e7f7262b7"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>  
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="218f1794-26e6-45f2-a26d-98185a49bf4f"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="22429945-9c82-493c-a0a6-ff31ecaa4b56"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>      
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="2314864a-76f7-4fe9-a01f-c5be6ba0669e"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="6bd19de4-691b-4e78-84dc-cf6f41231978"/>
+      <column name="VALUE" value="6bd19de4-691b-4e78-84dc-cf6f41231978"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="25bfa0ce-433a-4bb9-992c-df66b02a76da"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>  
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="2800c5de-2174-46fb-a50a-d5ae4a28c28d"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="636af750-fcd3-4480-bfe7-ead42bf85280"/>
+      <column name="VALUE" value="636af750-fcd3-4480-bfe7-ead42bf85280"/>
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="28405f79-a635-4ede-8b11-11284c5e7190"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/> 
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="289cea03-2c65-4557-b0f9-0dd29b26cecc"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2a702a31-9907-4f1b-abfd-3342640f1c9e"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>
+      <column name="VALUE" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>  
+      <column name="SCOREPOINTS" valueNumeric="12.50"/>
       <column name="CLASSIFICATIONID" value="297cc1a1-1813-4f30-ad70-b452292c3371"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="08764209-9b5e-4893-96d0-e2a347bccf60"/>
+      <column name="VALUE" value="08764209-9b5e-4893-96d0-e2a347bccf60"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="2a447c40-23b0-4e45-b932-067c08515da0"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3fe9f04b-6a85-4a73-a138-ca90b6d8e61c"/>
+      <column name="VALUE" value="3fe9f04b-6a85-4a73-a138-ca90b6d8e61c"/>  
+      <column name="SCOREPOINTS" valueNumeric="50.00"/>
       <column name="CLASSIFICATIONID" value="2a9353ec-78c3-42ae-836f-dcec0a4cfaad"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>
+      <column name="VALUE" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>    
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="2abfbf1f-8f2c-4713-a61b-13ba593d1055"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5564a330-8c13-424f-a24b-5f97185a9036"/>
+      <column name="VALUE" value="5564a330-8c13-424f-a24b-5f97185a9036"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="2b0e75e0-0a36-4397-988d-2ae60e5d2658"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="2c644b64-0404-4eac-841c-d8579ff25fa6"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="618bf0d1-18d4-4a96-900c-80a5a616da9b"/>
+      <column name="VALUE" value="618bf0d1-18d4-4a96-900c-80a5a616da9b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="2e3d4c1e-24b2-4362-bee9-b11fa9847d42"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/> 
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="3056c0b4-5e4b-4580-ab89-75ac80920415"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>    
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="319dec0d-5ed5-40f8-8c98-b912582a8817"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="31a22039-ac7d-4bb9-9f36-d1f91c6c4052"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
+      <column name="VALUE" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>  
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="326d5aff-cb21-4bb6-9c32-7fcac48d175c"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5564a330-8c13-424f-a24b-5f97185a9036"/>
+      <column name="VALUE" value="5564a330-8c13-424f-a24b-5f97185a9036"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="32b4f1b2-6cc2-4702-a9e0-0a75184c5698"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>    
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="342c7c38-ca79-4e46-9677-5da074ceb60b"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b41e180f-db8c-44c3-9fbb-179ab58d5852"/>
+      <column name="VALUE" value="b41e180f-db8c-44c3-9fbb-179ab58d5852"/>
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="3561883e-bec9-4be7-8f0f-985ca694ff04"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>  
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="359fddf8-baae-497f-8ad6-d2cab1438473"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="618bf0d1-18d4-4a96-900c-80a5a616da9b"/>
+      <column name="VALUE" value="618bf0d1-18d4-4a96-900c-80a5a616da9b"/>   
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="35b79ed1-7002-44f1-af61-891cdf863ac9"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="90361317-d80e-4466-a45b-3021bf02e2f9"/>
+      <column name="VALUE" value="90361317-d80e-4466-a45b-3021bf02e2f9"/>
+      <column name="SCOREPOINTS" valueNumeric="19.80"/>
       <column name="CLASSIFICATIONID" value="3672003e-0624-4a51-bb15-48f93bbd4342"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="36b1ed8c-a4d4-4203-aa20-52cf10f8d8a0"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="3807eda2-aa0f-4caf-b3ab-0ff341eb887b"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="39dc9940-eb00-4ed5-82ec-521f5cc62239"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
-    <insert tableName="classification">
-      <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="618bf0d1-18d4-4a96-900c-80a5a616da9b"/>
-      <column name="CLASSIFICATIONID" value="3cc8a674-7934-4b8f-b200-bd19ddcb4689"/>
-      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
-    </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="7e569319-5885-452e-9331-a507f3365236"/>
+      <column name="VALUE" value="7e569319-5885-452e-9331-a507f3365236"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="3da8549a-762a-438f-9878-271c52943fd2"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="c328cb9e-5cef-4052-a3c1-98e1898eeb63"/>
+      <column name="VALUE" value="c328cb9e-5cef-4052-a3c1-98e1898eeb63"/>     
+      <column name="SCOREPOINTS" valueNumeric="9.90"/>
       <column name="CLASSIFICATIONID" value="3e9b7598-39a6-4ebc-aa49-8ec3a20f9eb4"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ec3dbf-f8f6-4418-8dc2-0062510c1a28"/>
+      <column name="VALUE" value="47ec3dbf-f8f6-4418-8dc2-0062510c1a28"/>
+      <column name="SCOREPOINTS" valueNumeric="7.50"/>
       <column name="CLASSIFICATIONID" value="3f410195-bca5-41ac-a819-a8d29506f9e5"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="c328cb9e-5cef-4052-a3c1-98e1898eeb63"/>
+      <column name="VALUE" value="c328cb9e-5cef-4052-a3c1-98e1898eeb63"/>   
+      <column name="SCOREPOINTS" valueNumeric="9.90"/>
       <column name="CLASSIFICATIONID" value="4164397b-a129-4e37-9586-af6e6133befd"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2a702a31-9907-4f1b-abfd-3342640f1c9e"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>
+      <column name="VALUE" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>    
+      <column name="SCOREPOINTS" valueNumeric="12.50"/>
       <column name="CLASSIFICATIONID" value="421cdeeb-a5d6-4612-b47b-49db966de27f"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2f4fddd2-be83-4190-99c3-6de8a7e328c5"/>
+      <column name="VALUE" value="2f4fddd2-be83-4190-99c3-6de8a7e328c5"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="440d25a3-39c1-412e-90c7-c0a6366f0794"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>  
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="4444b22f-02d1-4e8f-9073-82d61eba18e0"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="445ccf23-4d44-489a-8054-b46194e104e7"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>
+      <column name="VALUE" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="46065d3f-a811-430d-8fa2-e048aee894c7"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b41e180f-db8c-44c3-9fbb-179ab58d5852"/>
+      <column name="VALUE" value="b41e180f-db8c-44c3-9fbb-179ab58d5852"/>
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="4a61a0fe-394e-4b2f-897a-092fc2c109b2"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="f1534026-34cc-4898-8711-41cbe4accb60"/>
+      <column name="VALUE" value="f1534026-34cc-4898-8711-41cbe4accb60"/>
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="4d67d40e-4656-46b0-b5a0-9c299c1ef9d3"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="4e21e953-7146-43dd-a888-92d9f55f561e"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="8c1e8f81-145f-4efe-936f-3f4147f4d59a"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>
+      <column name="VALUE" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>  
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="4e96b522-209b-48ca-b04d-f328416aacdd"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>   
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="522566b0-6eca-40bb-977c-c9a26f730890"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>   
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="52c6bccc-1055-48dc-ad5d-311e80a12d2a"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="51575eb6-4005-42d2-96f3-b35dfd06a86b"/>
+      <column name="VALUE" value="51575eb6-4005-42d2-96f3-b35dfd06a86b"/>
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="55401dae-a111-4e69-9c26-21fa9badd973"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="9ac96400-9c47-4d4f-be5b-e053f92a54ce"/>
+      <column name="VALUE" value="9ac96400-9c47-4d4f-be5b-e053f92a54ce"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="55569485-c1f8-4bef-9e94-2b64c9b6bd4e"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>    
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="555a280b-a2e4-4eb5-bbec-87bca3987395"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="51575eb6-4005-42d2-96f3-b35dfd06a86b"/>
+      <column name="VALUE" value="51575eb6-4005-42d2-96f3-b35dfd06a86b"/>    
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="568cebf1-2494-44e0-9eb8-91bbcf1189eb"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>   
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="57a2e5d3-0aa9-48a1-89f8-2db8967ffed6"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>
+      <column name="VALUE" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="58642867-f8fc-45c1-a926-06306498a9c8"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3c9ceefa-5c98-4629-9c6d-d46b6cad8b78"/>
+      <column name="VALUE" value="3c9ceefa-5c98-4629-9c6d-d46b6cad8b78"/>
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="58671a19-6522-46e6-93ba-8f62bf580048"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="597de33c-b223-4d55-bed7-aeb1d161fc2e"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="5a5e780b-01af-4a0f-bcd6-74c0c588210a"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>
+      <column name="VALUE" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>   
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="5bb5e000-5bba-4895-a5b8-374c2c5bd3a4"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>    
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="5bb7b949-cc0b-4724-a5e9-37bfcfe55813"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="5c1b2604-da33-4268-8400-5fb4b23c436b"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/> 
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="5ce0c1b0-c040-462e-bd19-c8e109449b8e"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
+      <column name="VALUE" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="5dd419ab-971f-42fd-9bb6-2247a6b4175b"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="5f0cdce4-81b4-4c05-9011-4d76bdc21b65"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ec3dbf-f8f6-4418-8dc2-0062510c1a28"/>
+      <column name="VALUE" value="47ec3dbf-f8f6-4418-8dc2-0062510c1a28"/>
+      <column name="SCOREPOINTS" valueNumeric="7.50"/>
       <column name="CLASSIFICATIONID" value="6017fea2-7e31-4220-86f4-cf72123af805"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="VALUE" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="6048f088-dde7-4134-a101-f5e8f8b70cf5"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3c9ceefa-5c98-4629-9c6d-d46b6cad8b78"/>
+      <column name="VALUE" value="3c9ceefa-5c98-4629-9c6d-d46b6cad8b78"/>   
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="6111dd76-4786-43bf-b6ce-74b36415ad03"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="62b9dacc-7d6f-4e05-81f8-6a425e369489"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="62cc115a-f80e-4a0f-899e-8060e9ed575e"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2a702a31-9907-4f1b-abfd-3342640f1c9e"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>
+      <column name="VALUE" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>  
+      <column name="SCOREPOINTS" valueNumeric="12.50"/>
       <column name="CLASSIFICATIONID" value="6382b5d7-06a3-4584-8314-e00abdd8e8e9"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="65f45f0d-ab41-4a83-b5f7-795dc21d0fd4"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
+      <column name="VALUE" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="6685c781-a87d-4102-8764-27f0fcb0dc60"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="6800e69f-33b1-44ae-b3a2-d7362bfddbf8"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>   
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="688cdc0d-d1a7-46ad-95c3-7503c054ee2c"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>  
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="6a6dfe13-6fcc-4ae9-b12b-dced4a55daef"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="8c1e8f81-145f-4efe-936f-3f4147f4d59a"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>
+      <column name="VALUE" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="6bbe5de0-4302-4467-9f3b-a0292485b214"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>  
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="6d3464fa-eadd-4afd-b4e1-3031726770d5"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>    
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="6dadd578-7e24-41cd-ab27-7baa29e4691b"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2f4fddd2-be83-4190-99c3-6de8a7e328c5"/>
+      <column name="VALUE" value="2f4fddd2-be83-4190-99c3-6de8a7e328c5"/>     
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="6e187a9b-2e57-4da2-8132-9f576a28d6f7"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>
+      <column name="VALUE" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="717dfb2c-2e2c-46c8-b72c-8d81e61b94c1"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="740bcc4c-b621-458e-874e-034cf70965bc"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
+      <column name="VALUE" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/> 
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="75fd708e-78a9-442f-8ddb-913b8fd29cdf"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="76990230-73ec-4026-8a28-871ac5b4edc6"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="77941d3d-e876-44b3-b824-3a075d7dd398"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>
+      <column name="VALUE" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>    
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="77a11bd3-a521-4701-b564-7f8b07000f0b"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
+      <column name="VALUE" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="77f0f0bd-eaca-44ef-abfa-9156eac6eb7e"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>    
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="7884869d-85ab-458f-9078-e2dd7234be91"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3eb18b76-f51e-4ad2-9080-74b4a603667b"/>
+      <column name="VALUE" value="3eb18b76-f51e-4ad2-9080-74b4a603667b"/>
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="79cc0205-25f8-44a9-b682-a31df2068e3f"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/> 
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="7d131f29-0430-44ad-b4ec-7044a67e0e3b"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3c9ceefa-5c98-4629-9c6d-d46b6cad8b78"/>
+      <column name="VALUE" value="3c9ceefa-5c98-4629-9c6d-d46b6cad8b78"/>  
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="80beaf88-415d-49da-ae0b-c4d6528747a2"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
-    <insert tableName="classification">
-      <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
-      <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
-      <column name="CLASSIFICATIONID" value="813a990d-a17a-4481-a49d-7fb3a9c6513a"/>
-      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
-    </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ec3dbf-f8f6-4418-8dc2-0062510c1a28"/>
+      <column name="VALUE" value="47ec3dbf-f8f6-4418-8dc2-0062510c1a28"/>
+      <column name="SCOREPOINTS" valueNumeric="7.50"/>
       <column name="CLASSIFICATIONID" value="81d75e31-673b-426e-827f-c505b386ce0e"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="81deaf11-9f63-4cc8-b83c-8711f5e3f734"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="VALUE" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="83537aae-14a3-499f-a94b-9c630745110b"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="83d2e0f5-b7f5-4305-8da7-69e27da99f98"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
+      <column name="VALUE" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="84ca4de3-ba44-40b4-8727-c5e23861c2c9"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>  
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="8502a2c8-fb7e-44f2-91cb-3d44d2d50d98"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>
+      <column name="VALUE" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/> 
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="85b54389-50f9-4bd3-838b-d3941bda2cc1"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
     </insert>
-    <insert tableName="classification">
-      <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
-      <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
-      <column name="CLASSIFICATIONID" value="8b59888b-ba5c-4a77-b06d-d522037fe3b3"/>
-      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
-    </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="8c133476-7e1a-4120-8127-b45228bd5403"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="8c792586-2d2d-41a3-933b-6f679dd4011e"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>  
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="8d830242-7eb6-4185-b1cc-3e7977e6c340"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2a702a31-9907-4f1b-abfd-3342640f1c9e"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>
+      <column name="VALUE" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>   
+      <column name="SCOREPOINTS" valueNumeric="12.50"/>
       <column name="CLASSIFICATIONID" value="8f44739a-7103-4dd3-8f1f-25afbae07cd0"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
+      <column name="VALUE" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="8fbd5ec4-bb9a-4c33-aa8d-73185d4b0746"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="8c1e8f81-145f-4efe-936f-3f4147f4d59a"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>
+      <column name="VALUE" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>   
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="905cae71-9e4b-48f2-9de3-fcb8607d01a1"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>  
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="91cd0603-ac46-420b-81d4-0e1c72a916bf"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="9260ed8f-3b4a-4c5a-9077-0fe59105883b"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="9286af56-8942-4e30-8ed3-cde6bf2e77d5"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3c9ceefa-5c98-4629-9c6d-d46b6cad8b78"/>
+      <column name="VALUE" value="3c9ceefa-5c98-4629-9c6d-d46b6cad8b78"/>  
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="93f4dfdf-b07b-4dc5-91a3-7db80cc314fc"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>
+      <column name="VALUE" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="9452b219-64af-4c27-8f35-0ba81210abf3"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="94a737b7-d4f6-4a13-b06b-05a225d9225b"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="ba5d70c3-e77a-45ff-828b-7b3e0a61eec2"/>
+      <column name="VALUE" value="ba5d70c3-e77a-45ff-828b-7b3e0a61eec2"/>
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="94a83ec1-8e6d-4c1b-90a0-54eeac52277b"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="29134094-66f2-4331-9f14-fc6a27ab111e"/>
+      <column name="VALUE" value="29134094-66f2-4331-9f14-fc6a27ab111e"/>
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="94bbfbe5-136f-40f2-af1f-8a47e1414a8c"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>  
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="95f0f027-799b-48fd-b1b5-49f70760a008"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>    
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="965bd86a-ad6d-4440-a7a3-e4bcf1b0a505"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
+      <column name="VALUE" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="971cee9d-9b1f-4b57-9635-9bbfdb792958"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="51575eb6-4005-42d2-96f3-b35dfd06a86b"/>
+      <column name="VALUE" value="51575eb6-4005-42d2-96f3-b35dfd06a86b"/>  
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="9772b8f6-08c6-40aa-af16-df68bcecb77f"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="51575eb6-4005-42d2-96f3-b35dfd06a86b"/>
+      <column name="VALUE" value="51575eb6-4005-42d2-96f3-b35dfd06a86b"/>  
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="98d2e3c1-f308-4a7a-a12f-4d24b45d4db9"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="8c1e8f81-145f-4efe-936f-3f4147f4d59a"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>
+      <column name="VALUE" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>   
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="9aa3789c-bc9d-43cf-a121-2575090c2dc4"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="9af237aa-daa0-4195-a301-a815497a75b6"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>    
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="9c457191-c7c7-4a4f-bb91-8a48d27add92"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3fe9f04b-6a85-4a73-a138-ca90b6d8e61c"/>
+      <column name="VALUE" value="3fe9f04b-6a85-4a73-a138-ca90b6d8e61c"/>
+      <column name="SCOREPOINTS" valueNumeric="50.00"/>
       <column name="CLASSIFICATIONID" value="9cc46dc2-f40a-4c3b-aabd-c77858f5d770"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>
+      <column name="VALUE" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="9ea74c40-7732-4d0a-a489-f50bc60caf8b"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>
+      <column name="VALUE" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>  
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="9ec7bc3e-dc4c-40e4-bcee-bd59ab949d42"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>    
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="9f5975c7-3df6-4fa4-87e4-7a1c0dbd967c"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2031525e-6ca3-46b4-91d4-7f90cd31a630"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3dc5fc76-d2d5-4911-891a-3aacc5a9c925"/>
+      <column name="VALUE" value="3dc5fc76-d2d5-4911-891a-3aacc5a9c925"/>
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="9f85a0f0-6576-4077-99fc-953d8ab53352"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5564a330-8c13-424f-a24b-5f97185a9036"/>
+      <column name="VALUE" value="5564a330-8c13-424f-a24b-5f97185a9036"/>
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="9fcf5382-f070-4698-a011-748c8584733b"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="a0120295-79d1-429f-aef4-b9cce9c92de2"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="1f924d71-c500-4cdd-bc52-4718a6b88e45"/>
+      <column name="VALUE" value="1f924d71-c500-4cdd-bc52-4718a6b88e45"/>
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="a027bccd-c894-443e-bdde-f32ee0b88285"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>    
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="a03201a8-0858-45e0-a0e2-9b70f5a35061"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>  
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="a1591490-e7c3-46b1-8d7e-843acbe93b41"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="8c1e8f81-145f-4efe-936f-3f4147f4d59a"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>
+      <column name="VALUE" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>   
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="a28dd724-cd0b-48f4-afd5-840ddc611026"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="a3081728-77d9-4c92-96b5-6fa21659a33f"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2031525e-6ca3-46b4-91d4-7f90cd31a630"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3dc5fc76-d2d5-4911-891a-3aacc5a9c925"/>
+      <column name="VALUE" value="3dc5fc76-d2d5-4911-891a-3aacc5a9c925"/>    
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="a3e22367-c33f-4f2c-ad0c-8f9eb6ab572a"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="VALUE" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="a3e2d764-bd51-4f06-a0a0-0e5f4b37d41b"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="a51c9515-80bc-4902-8d9b-115179ab40df"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="a5ce852a-83e6-4b0e-b3fa-310ea99c7e87"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="a63b089c-f856-4513-8691-57422e400dc4"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>    
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="a653069f-927d-425a-8956-aeb15a2c4bc8"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="a69faa8d-afaa-40cd-97e6-65a851f5dde1"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/> 
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="a728d498-dd75-4b96-a5e5-cbdccd10b0b2"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="a76fcafb-a84d-4505-8c68-1b221482e292"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>    
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="a7b9862c-6a25-4bbc-92ec-7bfb25cdb6c0"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="a7d7fd5c-624c-4d64-929b-2b0eb146ab9d"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>
+      <column name="VALUE" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>  
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="a898ffe5-96ec-4eef-9e0c-6a2622fc74fc"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>    
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="a8c2d3c5-423f-45fa-a8db-cd2ab59c5045"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
     </insert>
-    <insert tableName="classification">
-      <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
-      <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
-      <column name="CLASSIFICATIONID" value="aa291e2a-646d-4b73-b826-85bd357fd5c0"/>
-      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
-    </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>  
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="ac0944d2-b184-45f5-983a-6c873aadfb8e"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b3792b08-4b07-4ed2-9bee-4673182b7349"/>
+      <column name="VALUE" value="b3792b08-4b07-4ed2-9bee-4673182b7349"/>
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="b06e62a0-53b0-4046-b024-b00293e632f2"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="b1cb759c-f17c-4277-bee1-e50717d8934a"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>
+      <column name="VALUE" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>  
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="b38101bf-3d36-4509-9637-a428beb9999a"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="b3846b7c-e70a-43fe-9637-ea74ed1fe0d7"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>    
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="b49911f5-fccc-4dba-a46a-32fd56cf8b8f"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="c328cb9e-5cef-4052-a3c1-98e1898eeb63"/>
+      <column name="VALUE" value="c328cb9e-5cef-4052-a3c1-98e1898eeb63"/> 
+      <column name="SCOREPOINTS" valueNumeric="9.90"/>
       <column name="CLASSIFICATIONID" value="b6d36680-909d-4470-9bf4-0a8b8a7807b1"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
+      <column name="VALUE" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>  
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="b6ed4614-ea3d-4b2d-a9c3-44d146724b71"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2031525e-6ca3-46b4-91d4-7f90cd31a630"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="e70a23b4-f2a9-4438-8ba6-742c6c17e5cc"/>
+      <column name="VALUE" value="e70a23b4-f2a9-4438-8ba6-742c6c17e5cc"/>
+      <column name="SCOREPOINTS" valueNumeric="12.50"/>
       <column name="CLASSIFICATIONID" value="b7d6e658-96b3-4664-b7db-139b73add7e3"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="b828dfb2-943a-4f81-b950-fbe4db3d19b7"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>  
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="b923621f-e48e-4a77-9f67-f63f5a0b0fbb"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="VALUE" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="bb5ee550-320f-491a-a48f-b1ecf41ef90c"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
     </insert>
-    <insert tableName="classification">
-      <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
-      <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
-      <column name="CLASSIFICATIONID" value="bc4a31b1-f2e2-4caf-8dcd-ac754c1d7290"/>
-      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
-    </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>  
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="bc61586b-a63e-4d69-82ad-62b02ea2b28a"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>    
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="beb7f0ec-3331-49f9-b440-0099f62205c0"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="c179fe12-4bb0-495d-99d0-0159d0466bc0"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2031525e-6ca3-46b4-91d4-7f90cd31a630"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3dc5fc76-d2d5-4911-891a-3aacc5a9c925"/>
+      <column name="VALUE" value="3dc5fc76-d2d5-4911-891a-3aacc5a9c925"/>  
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>      
       <column name="CLASSIFICATIONID" value="c28d914e-ad91-4202-9fe6-0d0d41e53836"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2a702a31-9907-4f1b-abfd-3342640f1c9e"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>
+      <column name="VALUE" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>  
+      <column name="SCOREPOINTS" valueNumeric="12.50"/>
       <column name="CLASSIFICATIONID" value="c4dc8a62-edc1-4af6-b7c6-f91f6ab700c5"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="c58b5e5a-b4fe-4dec-a93d-79848e564b87"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="c5d4a548-7a5a-4695-b746-526ef41f5035"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>    
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="c61069c1-fe41-4585-9d75-cef27d534ceb"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
     </insert>
-    <insert tableName="classification">
-      <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
-      <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
-      <column name="CLASSIFICATIONID" value="c6fe5361-777d-4047-99dd-e8495ebb8c73"/>
-      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
-    </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>
+      <column name="VALUE" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>  
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="c7b46dff-956a-47e1-8a7f-7d3f56c81da1"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>
+      <column name="VALUE" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="c9208276-8f53-424d-821b-e37f041f864a"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
+      <column name="VALUE" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="caaa6b4e-34e3-4337-b65f-abe761a8c24c"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="cb7df4e3-e15c-4e65-92f4-ecd5cda09f95"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="ccaea5d2-64c3-4255-9825-c91784ba5f54"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2031525e-6ca3-46b4-91d4-7f90cd31a630"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3dc5fc76-d2d5-4911-891a-3aacc5a9c925"/>
+      <column name="VALUE" value="3dc5fc76-d2d5-4911-891a-3aacc5a9c925"/>
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="cd531b73-1390-498e-a83d-a50c964c24ea"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
-    <insert tableName="classification">
-      <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
-      <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
-      <column name="CLASSIFICATIONID" value="cea579d4-35fa-4376-b791-8b91cbe05d3a"/>
-      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
-    </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>    
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="cf051c11-5f8e-401c-8e57-aabc55496eb8"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="d03c3aa2-c97f-4bd4-b92f-7e09d594cdb8"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>
+      <column name="VALUE" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>  
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="d18a0dec-5161-488d-958d-3d9ea88f32f3"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="c9d4e28d-7935-42c5-9da5-5ce0b51b425a"/>
+      <column name="VALUE" value="c9d4e28d-7935-42c5-9da5-5ce0b51b425a"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="d33aeb65-0c28-48a1-9a81-105faa882a4c"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="d3932d83-8afe-47ff-aff9-7d23bd443669"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="d3b5f0ad-1a66-4eee-a40d-36daf317d510"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="f02cfd28-5a09-42ca-b805-07b7b38e3363"/>
+      <column name="VALUE" value="f02cfd28-5a09-42ca-b805-07b7b38e3363"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="d5db188e-4e30-4179-8c3a-339bc16fa2ab"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="d6443737-e23b-42fa-81a8-d5e86636fb79"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
-    <insert tableName="classification">
-      <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
-      <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
-      <column name="CLASSIFICATIONID" value="d6bf1068-83a5-4bcc-9d97-2efc72cc57a8"/>
-      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
-    </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>   
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="d6d64590-9299-4348-8e21-0cac9f84f51a"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3eb18b76-f51e-4ad2-9080-74b4a603667b"/>
+      <column name="VALUE" value="3eb18b76-f51e-4ad2-9080-74b4a603667b"/>  
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="d70e23a7-bc3c-43ae-8b2c-44d85fc7a2d3"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>    
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="d74914a9-05f6-4433-9121-87755b724fb4"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>   
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="d9cce938-36d9-4a80-9bc2-9e37e6ed64ce"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
+      <column name="VALUE" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="da16c6c0-3bdf-4af5-b810-e85babe83e69"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b3792b08-4b07-4ed2-9bee-4673182b7349"/>
+      <column name="VALUE" value="b3792b08-4b07-4ed2-9bee-4673182b7349"/>
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="da44d022-9ea6-4fcb-9491-c5b7236c642f"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="dccab9b9-5306-4325-896f-99646139b5ba"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>   
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="ddb5083d-9410-4b9c-82a4-496370b868e3"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>
+      <column name="VALUE" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="dfaec9c0-d9fa-4362-a955-341addc3a76d"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a177b155-4665-4af1-b50e-0b59e8ac2752"/>
+      <column name="VALUE" value="a177b155-4665-4af1-b50e-0b59e8ac2752"/>
+      <column name="SCOREPOINTS" valueNumeric="7.40"/>
       <column name="CLASSIFICATIONID" value="e10a5ecb-b0f3-4b08-a380-de1a04fbc87f"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3eb18b76-f51e-4ad2-9080-74b4a603667b"/>
+      <column name="VALUE" value="3eb18b76-f51e-4ad2-9080-74b4a603667b"/>    
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="e14fd7cc-abca-4296-bbd6-d9605d1e6f00"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>     
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="e27e1f4b-bca2-4928-9652-950762723531"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>     
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="e4d83d98-fcf8-402e-9d81-17f374654df7"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="e567dc3e-fb98-4b17-b503-499497b691a6"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5564a330-8c13-424f-a24b-5f97185a9036"/>
+      <column name="VALUE" value="5564a330-8c13-424f-a24b-5f97185a9036"/>  
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="e7a7da18-7283-4d75-ab9f-06f62972293c"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="c328cb9e-5cef-4052-a3c1-98e1898eeb63"/>
+      <column name="VALUE" value="c328cb9e-5cef-4052-a3c1-98e1898eeb63"/>    
+      <column name="SCOREPOINTS" valueNumeric="9.90"/>
       <column name="CLASSIFICATIONID" value="e90c4086-db5f-4099-ba26-67799eb25e44"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>
+      <column name="VALUE" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>    
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="eba1581a-1235-4139-a33a-687513436777"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="ed2a3c86-814d-4212-a2da-5875d0d3c598"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5564a330-8c13-424f-a24b-5f97185a9036"/>
+      <column name="VALUE" value="5564a330-8c13-424f-a24b-5f97185a9036"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="efe87026-b813-4bb7-a3c8-4ef72e2076b8"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
+      <column name="VALUE" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="f11eeaac-645d-416e-a50d-259f6ead0c30"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>
+      <column name="VALUE" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="f25ef82a-6466-49c7-aa35-1f4d750218ca"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="bf6b1757-11da-49a9-a02c-8340139968ee"/>
+      <column name="VALUE" value="bf6b1757-11da-49a9-a02c-8340139968ee"/>  
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="f47c0ea2-3a6d-4d7b-8f89-bb2d9799fd0e"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>  
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="f5dd89ed-f6ae-4676-aa83-906211570a5b"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>    
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="f5e4ebc2-e0a7-4ab0-b7e1-dc43c2913135"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>    
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="f60f8fe8-5ee9-43b4-a0cd-50b0f354bf79"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>  
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="f7118dce-dac9-4821-a709-bb7e9db8170a"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>    
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="f724bcdf-ac46-4296-be41-2febc7747ce1"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="f738a3d6-b4e0-491e-8d51-a83ce039fbc8"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
     </insert>
-    <insert tableName="classification">
-      <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
-      <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
-      <column name="CLASSIFICATIONID" value="f7504a50-2748-434a-ae08-cff2f4f8035a"/>
-      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
-    </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2119cb62-b57c-40be-aff8-ace8e40378d4"/>
+      <column name="VALUE" value="2119cb62-b57c-40be-aff8-ace8e40378d4"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="f7f7022f-57a2-4944-a9d3-e092e1be43b3"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>   
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="fa07168c-6aa5-4b9d-935e-6ece6e1c5bdb"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="bf6b1757-11da-49a9-a02c-8340139968ee"/>
+      <column name="VALUE" value="bf6b1757-11da-49a9-a02c-8340139968ee"/> 
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="fbc32ea9-8350-463a-846e-71a30851f15a"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>     
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="fc10831b-65ea-4ecb-b52e-98c6f54b2a9a"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>      
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="fcdedb8a-a863-47a8-93af-379c451fedb0"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="fd0fea13-2322-4664-bf15-8026a91bebd2"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
     </insert>
+    <insert tableName="classification">
+      <column name="CLASSIFICATIONTYPE_ID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="OBJECT_TYPE" value="Organisation"/>
+      <column name="VALUE" value="21697201-96ae-4c52-848e-e3d228e003b8"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
+      <column name="CLASSIFICATIONID" value="7c8baa19-4e39-4432-8ea8-f7be9890dcf6"/>
+      <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
+    </insert>
+    <insert tableName="classification">
+      <column name="CLASSIFICATIONTYPE_ID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="OBJECT_TYPE" value="Organisation"/>
+      <column name="VALUE" value="21697201-96ae-4c52-848e-e3d228e003b8"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
+      <column name="CLASSIFICATIONID" value="5696dd08-4d0b-4807-963b-daa0de06da13"/>
+      <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
+    </insert>
+    <insert tableName="classification">
+      <column name="CLASSIFICATIONTYPE_ID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="OBJECT_TYPE" value="Organisation"/>
+      <column name="VALUE" value="21697201-96ae-4c52-848e-e3d228e003b8"/>    
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
+      <column name="CLASSIFICATIONID" value="52d997a1-aa11-43e6-9728-7c8b479aac6e"/>
+      <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
+    </insert>
+    <insert tableName="classification">
+      <column name="CLASSIFICATIONTYPE_ID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="OBJECT_TYPE" value="Organisation"/>
+      <column name="VALUE" value="21697201-96ae-4c52-848e-e3d228e003b8"/>   
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
+      <column name="CLASSIFICATIONID" value="a42c6ab9-2d12-4b5f-92f9-d071061afb90"/>
+      <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
+    </insert>
+    <insert tableName="classification">
+      <column name="CLASSIFICATIONTYPE_ID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="OBJECT_TYPE" value="Organisation"/>
+      <column name="VALUE" value="4c769195-7bce-45e7-9176-782ff98de8d4"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
+      <column name="CLASSIFICATIONID" value="cc878532-031e-4b4e-86a3-d81b15b98a25"/>
+      <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
+    </insert>
+    <insert tableName="classification">
+      <column name="CLASSIFICATIONTYPE_ID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="OBJECT_TYPE" value="Organisation"/>
+      <column name="VALUE" value="4c769195-7bce-45e7-9176-782ff98de8d4"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
+      <column name="CLASSIFICATIONID" value="308fee51-494c-4d2d-a16f-ba01ac89b4f8"/>
+      <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
+    </insert>
+    <insert tableName="classification">
+      <column name="CLASSIFICATIONTYPE_ID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="OBJECT_TYPE" value="Organisation"/>
+      <column name="VALUE" value="4c769195-7bce-45e7-9176-782ff98de8d4"/>  
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
+      <column name="CLASSIFICATIONID" value="5323d3e3-af2e-454f-b33b-dd7f01c1ce1b"/>
+      <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
+    </insert>
   </changeSet>
 </databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/classificationgrading.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/classificationgrading.xml
index 26547da7c1327d6c34e880031f19fb618cffc4c5..2e68fcc50aed2ce81e7f85561d2038d543ade168 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/classificationgrading.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/classificationgrading.xml
@@ -5,121 +5,121 @@
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="fb1349b6-6dc1-44b7-b7ea-03d5483e7fac"/>
       <column name="GRADING" value="C"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="50"/>
+      <column name="MINPERCENT" valueNumeric="26"/>
       <column name="CLASSIFICATIONGRADINGID" value="03aa277d-873b-4913-9051-d44aa4f77627"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="c1305d16-320e-44f8-95f9-e4cff05d3cfb"/>
       <column name="GRADING" value="C"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="50"/>
-      <column name="CLASSIFICATIONGRADINGID" value="14da2618-88be-425c-92c3-68d8584aa0bf"/>
+      <column name="MINPERCENT" valueNumeric="26"/>
+      <column name="CLASSIFICATIONGRADINGID" value="14da2618-88be-424c-92c3-68d8584aa0bf"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="fb1349b6-6dc1-44b7-b7ea-03d5483e7fac"/>
       <column name="GRADING" value="B"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="75"/>
+      <column name="MINPERCENT" valueNumeric="51"/>
       <column name="CLASSIFICATIONGRADINGID" value="29226adf-eb79-4696-a4b8-7be73c9488e6"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="00cc7b8f-d99e-46bf-90c3-74e05b5af685"/>
       <column name="GRADING" value="C"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="50"/>
+      <column name="MINPERCENT" valueNumeric="26"/>
       <column name="CLASSIFICATIONGRADINGID" value="348a2af8-ec01-4a58-8ff6-5e3a837852a4"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="b2126d9d-8d18-46d4-a48f-1a03fc456ddd"/>
       <column name="GRADING" value="A"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="100"/>
+      <column name="MINPERCENT" valueNumeric="76"/>
       <column name="CLASSIFICATIONGRADINGID" value="4ef54a02-ddf8-4238-b9fd-f5a043032b7d"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="e3b0a84f-d2a7-4d7c-b734-82ab4b262e84"/>
       <column name="GRADING" value="D"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="25"/>
+      <column name="MINPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONGRADINGID" value="5e46e499-00c2-4cc2-9f4c-952290484623"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="c1305d16-320e-44f8-95f9-e4cff05d3cfb"/>
       <column name="GRADING" value="D"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="25"/>
+      <column name="MINPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONGRADINGID" value="5e5c3ffe-3fa6-41e3-8659-1b03e7e1a1cd"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="00cc7b8f-d99e-46bf-90c3-74e05b5af685"/>
       <column name="GRADING" value="A"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="100"/>
+      <column name="MINPERCENT" valueNumeric="76"/>
       <column name="CLASSIFICATIONGRADINGID" value="68dd4d91-d472-477d-935c-70cbe5606c51"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="b2126d9d-8d18-46d4-a48f-1a03fc456ddd"/>
       <column name="GRADING" value="B"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="75"/>
+      <column name="MINPERCENT" valueNumeric="51"/>
       <column name="CLASSIFICATIONGRADINGID" value="748ef65c-af41-42d8-8ac4-480bc9390591"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="b2126d9d-8d18-46d4-a48f-1a03fc456ddd"/>
       <column name="GRADING" value="D"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="25"/>
-      <column name="CLASSIFICATIONGRADINGID" value="76af9750-a714-4a35-bfd2-6eab3c316e5b"/>
+      <column name="MINPERCENT" valueNumeric="0"/>
+      <column name="CLASSIFICATIONGRADINGID" value="76af9740-a714-4a35-bfd2-6eab3c316e5b"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="e3b0a84f-d2a7-4d7c-b734-82ab4b262e84"/>
       <column name="GRADING" value="A"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="100"/>
+      <column name="MINPERCENT" valueNumeric="76"/>
       <column name="CLASSIFICATIONGRADINGID" value="7afd58ad-6eae-4d6b-8d4b-2ca4bdd177e6"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="fb1349b6-6dc1-44b7-b7ea-03d5483e7fac"/>
       <column name="GRADING" value="D"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="25"/>
+      <column name="MINPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONGRADINGID" value="8408ca43-a4dc-4767-8127-e52c08276815"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="e3b0a84f-d2a7-4d7c-b734-82ab4b262e84"/>
       <column name="GRADING" value="C"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="50"/>
+      <column name="MINPERCENT" valueNumeric="26"/>
       <column name="CLASSIFICATIONGRADINGID" value="8c982beb-bc53-4bcf-8b76-7ee919bbf653"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="b2126d9d-8d18-46d4-a48f-1a03fc456ddd"/>
       <column name="GRADING" value="C"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="50"/>
+      <column name="MINPERCENT" valueNumeric="26"/>
       <column name="CLASSIFICATIONGRADINGID" value="8e73dd97-4428-4316-882d-7b2af56330ef"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="c1305d16-320e-44f8-95f9-e4cff05d3cfb"/>
       <column name="GRADING" value="B"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="75"/>
-      <column name="CLASSIFICATIONGRADINGID" value="8f702450-83fc-4085-92c2-ac09f96dcd6b"/>
+      <column name="MINPERCENT" valueNumeric="51"/>
+      <column name="CLASSIFICATIONGRADINGID" value="8f702449-83fc-4085-92c2-ac09f96dcd6b"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="00cc7b8f-d99e-46bf-90c3-74e05b5af685"/>
       <column name="GRADING" value="B"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="75"/>
+      <column name="MINPERCENT" valueNumeric="51"/>
       <column name="CLASSIFICATIONGRADINGID" value="9437f368-bea1-47f4-b76e-d6a391af438d"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="00cc7b8f-d99e-46bf-90c3-74e05b5af685"/>
       <column name="GRADING" value="D"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="25"/>
-      <column name="CLASSIFICATIONGRADINGID" value="9a823957-0ca9-4972-95df-d894d4e4fc25"/>
+      <column name="MINPERCENT" valueNumeric="0"/>
+      <column name="CLASSIFICATIONGRADINGID" value="9a823957-0ca9-4972-95df-d894d4e4fc24"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="e3b0a84f-d2a7-4d7c-b734-82ab4b262e84"/>
       <column name="GRADING" value="B"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="75"/>
+      <column name="MINPERCENT" valueNumeric="51"/>
       <column name="CLASSIFICATIONGRADINGID" value="a89c81df-9380-41b1-9c7c-52d3a1862ac7"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="c1305d16-320e-44f8-95f9-e4cff05d3cfb"/>
       <column name="GRADING" value="A"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="100"/>
-      <column name="CLASSIFICATIONGRADINGID" value="c021718f-b6ca-4d4d-87f7-e4450d103fe2"/>
+      <column name="MINPERCENT" valueNumeric="76"/>
+      <column name="CLASSIFICATIONGRADINGID" value="c021718f-b6ca-4d4d-87f7-e4449d103fe2"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="fb1349b6-6dc1-44b7-b7ea-03d5483e7fac"/>
       <column name="GRADING" value="A"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="100"/>
+      <column name="MINPERCENT" valueNumeric="76"/>
       <column name="CLASSIFICATIONGRADINGID" value="f8e1c5a4-b0d0-4b73-9700-11ff916adfdd"/>
     </insert>
   </changeSet>
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/classificationscore.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/classificationscore.xml
index c5de6229ea80f6b1c90df74e02bfac79640d1135..767f15e2ddcb4f9fff3de7728c7408eff25a8425 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/classificationscore.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/classificationscore.xml
@@ -4,717 +4,731 @@
     <delete tableName="classificationscore"/>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="01840c9d-2856-4882-a12a-303e58fd9d30"/>
       <column name="SORT" valueNumeric="50"/>
       <column name="TITLE" value="Purchasing"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="100-199 D€"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="33.30"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="0803779b-73d8-47b3-9705-f5771c01e6a3"/>
       <column name="SORT" valueNumeric="140"/>
       <column name="TITLE" value="Automotive"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="08764209-9b5e-4893-96d0-e2a347bccf60"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="low"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="15.00"/>
+      <column name="SCOREPERCENT" valueNumeric="75"/>
       <column name="CLASSIFICATIONSCOREID" value="09559e61-09ed-4f85-b0cb-fa7b0c66e488"/>
       <column name="SORT" valueNumeric="150"/>
       <column name="TITLE" value="Publishing house"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="0b671383-ecc3-440c-aff4-ff485da2755d"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="medium"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="10419ecc-335b-43c3-a1e3-8ecfbeda6f2b"/>
       <column name="SORT" valueNumeric="60"/>
       <column name="TITLE" value="Project management"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="25"/>
       <column name="CLASSIFICATIONSCOREID" value="107c199b-b315-4093-add5-48c496794bc9"/>
       <column name="SORT" valueNumeric="110"/>
       <column name="TITLE" value="Lottery"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="11418754-1667-437b-816b-adec4b9291f3"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="No project planned"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="1bc2b2aa-2582-4b0c-a2f8-04125b82ba33"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="Service"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="1f924d71-c500-4cdd-bc52-4718a6b88e45"/>
       <column name="SORT" valueNumeric="70"/>
       <column name="TITLE" value="Consultation"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
-      <column name="SCORE" valueNumeric="25.00"/>
+      <column name="SCOREPERCENT" valueNumeric="70"/>
       <column name="CLASSIFICATIONSCOREID" value="206fd02f-68ec-42f2-83d1-92848f51dc1a"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="Switzerland"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="2119cb62-b57c-40be-aff8-ace8e40378d4"/>
       <column name="SORT" valueNumeric="120"/>
       <column name="TITLE" value="Education"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
       <column name="SORT" valueNumeric="180"/>
       <column name="TITLE" value="Service"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="2745d6c3-fffb-4f72-8bc2-92439a14e919"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="Other"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="29134094-66f2-4331-9f14-fc6a27ab111e"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="0-49 D€"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="33.30"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="2a516661-537d-473e-864a-c2f721b96a42"/>
       <column name="SORT" valueNumeric="180"/>
       <column name="TITLE" value="Service"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="80"/>
       <column name="CLASSIFICATIONSCOREID" value="2cd8d11f-ee3f-429b-a16a-7839cf30b62d"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="51-100"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="2f3b6088-d78f-4fba-998d-b18a6b981485"/>
       <column name="SORT" valueNumeric="170"/>
       <column name="TITLE" value="Environment"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="2f4fddd2-be83-4190-99c3-6de8a7e328c5"/>
       <column name="SORT" valueNumeric="50"/>
       <column name="TITLE" value="0 to 49T"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Germany"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="25"/>
       <column name="CLASSIFICATIONSCOREID" value="3035e36e-ee6a-45d1-9d68-920cd3666362"/>
       <column name="SORT" valueNumeric="70"/>
       <column name="TITLE" value="Student/Internship"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="33.30"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="35d8ae15-8993-4ab2-99f6-e57c2ebf0bb3"/>
       <column name="SORT" valueNumeric="80"/>
       <column name="TITLE" value="Food"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="16"/>
       <column name="CLASSIFICATIONSCOREID" value="39547328-ccc6-47ad-b31a-d6a149081c44"/>
       <column name="SORT" valueNumeric="50"/>
       <column name="TITLE" value="0 to 49"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
-      <column name="SCORE" valueNumeric="30.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="3c9ceefa-5c98-4629-9c6d-d46b6cad8b78"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="251 to 1,000"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="2031525e-6ca3-46b4-91d4-7f90cd31a630"/>
-      <column name="SCORE" valueNumeric="25.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="3dc5fc76-d2d5-4911-891a-3aacc5a9c925"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Yes"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="2a702a31-9907-4f1b-abfd-3342640f1c9e"/>
-      <column name="SCORE" valueNumeric="12.50"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Standard"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="25"/>
       <column name="CLASSIFICATIONSCOREID" value="3eb18b76-f51e-4ad2-9080-74b4a603667b"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Machinery and equipment"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="50.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="3fe9f04b-6a85-4a73-a138-ca90b6d8e61c"/>
       <column name="SORT" valueNumeric="190"/>
       <column name="TITLE" value="Public"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="41300a6c-8dc7-4b5a-9fb1-cecd3d5cbb8c"/>
       <column name="SORT" valueNumeric="160"/>
       <column name="TITLE" value="Electric"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="50.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="41d43723-7d19-4a7e-936a-df9013db7dfb"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="Logistics"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
-      <column name="SCORE" valueNumeric="15.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="high"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Commodity group 1"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
-      <column name="SCORE" valueNumeric="7.50"/>
+      <column name="SCOREPERCENT" valueNumeric="75"/>
       <column name="CLASSIFICATIONSCOREID" value="47ec3dbf-f8f6-4418-8dc2-0062510c1a28"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Sales"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="25"/>
       <column name="CLASSIFICATIONSCOREID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="high"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>
       <column name="SORT" valueNumeric="130"/>
       <column name="TITLE" value="Trade"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="20"/>
       <column name="CLASSIFICATIONSCOREID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="0-50"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="Negative"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
-      <column name="SCORE" valueNumeric="25.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="51575eb6-4005-42d2-96f3-b35dfd06a86b"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="101-250"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="5564a330-8c13-424f-a24b-5f97185a9036"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="low"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="56a56ec0-34c1-419f-81c2-1c1310d685d2"/>
       <column name="SORT" valueNumeric="120"/>
       <column name="TITLE" value="Education"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="high"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="5ca391a5-9de8-41e6-9792-17cf8deaa7e7"/>
       <column name="SORT" valueNumeric="90"/>
       <column name="TITLE" value="Energy"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="618bf0d1-18d4-4a96-900c-80a5a616da9b"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="Logistics"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="2a702a31-9907-4f1b-abfd-3342640f1c9e"/>
-      <column name="SCORE" valueNumeric="25.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="61fe4e4f-e64d-4195-87b5-658f36ce1736"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Individual"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
-      <column name="SCORE" valueNumeric="30.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="636af750-fcd3-4480-bfe7-ead42bf85280"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Choice"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="6632b510-7094-45d6-b7ef-946e759429a3"/>
       <column name="SORT" valueNumeric="140"/>
       <column name="TITLE" value="Automotive"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="6bd19de4-691b-4e78-84dc-cf6f41231978"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Management/Sales Manager"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="20"/>
       <column name="CLASSIFICATIONSCOREID" value="6d6653ae-024e-444c-aeae-561874d55569"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="50 to 99T"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="6fe28489-2383-412b-9bbd-4f01a9421775"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="medium"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
-      <column name="SCORE" valueNumeric="15.00"/>
+      <column name="SCOREPERCENT" valueNumeric="75"/>
       <column name="CLASSIFICATIONSCOREID" value="733323d6-ff3d-4ccb-b179-ad1fea05dfe8"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="200-349 D€"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="7d6f716a-97c7-417b-a8c0-3cb71e403dde"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="Other"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="7e569319-5885-452e-9331-a507f3365236"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Overarching"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="25"/>
       <column name="CLASSIFICATIONSCOREID" value="839cd672-5981-4207-8a82-caddd00107e4"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="50-99 D€"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="low"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
-      <column name="SCORE" valueNumeric="35.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="8d7bc557-e020-42c9-83d9-ff84fcbd12b7"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Austria"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="90361317-d80e-4466-a45b-3021bf02e2f9"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="101 to 250"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="904e2dbe-49a1-42a0-a5db-0f274334dd7f"/>
       <column name="SORT" valueNumeric="160"/>
       <column name="TITLE" value="Electric"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="25"/>
       <column name="CLASSIFICATIONSCOREID" value="9181a683-dcab-47fc-af7b-e282505348d6"/>
       <column name="SORT" valueNumeric="90"/>
       <column name="TITLE" value="Energy"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
-      <column name="SCORE" valueNumeric="15.00"/>
+      <column name="SCOREPERCENT" valueNumeric="60"/>
       <column name="CLASSIFICATIONSCOREID" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="251-1000"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="92c8f126-b31e-4011-bbf0-cb5e57bfc3e5"/>
       <column name="SORT" valueNumeric="60"/>
       <column name="TITLE" value="Finance"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="33.30"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="9a3183db-8a38-4cf1-a234-3e2cf20a4f77"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="IT"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="9ac96400-9c47-4d4f-be5b-e053f92a54ce"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="IT"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="8c1e8f81-145f-4efe-936f-3f4147f4d59a"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="OnPremise"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="33.30"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="a0fcd2e2-40c8-40b8-8a5b-e591154c248a"/>
       <column name="SORT" valueNumeric="110"/>
       <column name="TITLE" value="Lottery"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
-      <column name="SCORE" valueNumeric="7.50"/>
+      <column name="SCOREPERCENT" valueNumeric="37"/>
       <column name="CLASSIFICATIONSCOREID" value="a177b155-4665-4af1-b50e-0b59e8ac2752"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="Switzerland"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
-      <column name="SCORE" valueNumeric="25.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Positive"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="8c1e8f81-145f-4efe-936f-3f4147f4d59a"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="a61e3451-296b-4812-a7b2-425963176f80"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Cloud"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="a7e70abc-4d98-467d-a475-66bbd101de1d"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Head of IT"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
-      <column name="SCORE" valueNumeric="30.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="b1c55bcd-16c6-4b2f-8f73-e16397b40e93"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="from 1,000"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
-      <column name="SCORE" valueNumeric="30.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="b3792b08-4b07-4ed2-9bee-4673182b7349"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Within 6 months"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="25"/>
       <column name="CLASSIFICATIONSCOREID" value="b41e180f-db8c-44c3-9fbb-179ab58d5852"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="Commodity group 3"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
-      <column name="SCORE" valueNumeric="35.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Germany"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
-      <column name="SCORE" valueNumeric="30.00"/>
+      <column name="SCOREPERCENT" valueNumeric="60"/>
       <column name="CLASSIFICATIONSCOREID" value="ba5d70c3-e77a-45ff-828b-7b3e0a61eec2"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="200 to 349T"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="16.60"/>
+      <column name="SCOREPERCENT" valueNumeric="33"/>
       <column name="CLASSIFICATIONSCOREID" value="bf44ae05-a4c4-4ee9-ad6e-7d64474afeff"/>
       <column name="SORT" valueNumeric="60"/>
       <column name="TITLE" value="Finance"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
-      <column name="SCORE" valueNumeric="15.00"/>
+      <column name="SCOREPERCENT" valueNumeric="75"/>
       <column name="CLASSIFICATIONSCOREID" value="bf6b1757-11da-49a9-a02c-8340139968ee"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="Service Manager"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="33"/>
       <column name="CLASSIFICATIONSCOREID" value="c328cb9e-5cef-4052-a3c1-98e1898eeb63"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="No date yet"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="33.30"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="c6300eeb-0494-4eba-89b1-23afdbb397e9"/>
       <column name="SORT" valueNumeric="150"/>
       <column name="TITLE" value="Publishing house"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="c9d4e28d-7935-42c5-9da5-5ce0b51b425a"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="CRM Manager"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="40"/>
       <column name="CLASSIFICATIONSCOREID" value="cddaf52d-37b7-426c-b858-c986e58544e6"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Stagnated"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
-      <column name="SCORE" valueNumeric="15.00"/>
+      <column name="SCOREPERCENT" valueNumeric="75"/>
       <column name="CLASSIFICATIONSCOREID" value="d032f425-5739-4f0c-8103-e102fe0d3ccf"/>
       <column name="SORT" valueNumeric="50"/>
       <column name="TITLE" value="Skilled workers"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="33"/>
       <column name="CLASSIFICATIONSCOREID" value="d0f5c576-e1cd-463e-82d2-e09c46ccb2a0"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="medium"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="15.00"/>
+      <column name="SCOREPERCENT" valueNumeric="75"/>
       <column name="CLASSIFICATIONSCOREID" value="d2a75f81-d0b3-48ce-be97-5e6add962cbb"/>
       <column name="SORT" valueNumeric="70"/>
       <column name="TITLE" value="Consultation"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="60"/>
       <column name="CLASSIFICATIONSCOREID" value="d578aa09-5d14-4ace-8cd0-572c5efcd82e"/>
       <column name="SORT" valueNumeric="50"/>
       <column name="TITLE" value="ab 1000"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
-      <column name="SCORE" valueNumeric="15.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Rate"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="33"/>
       <column name="CLASSIFICATIONSCOREID" value="d7d807a2-8a97-4a0e-9d1c-fb8c7a703599"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="50 to 100"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="25"/>
       <column name="CLASSIFICATIONSCOREID" value="df7ea293-1fd6-4e98-ba3f-7d975fa8eaeb"/>
       <column name="SORT" valueNumeric="170"/>
       <column name="TITLE" value="Environment"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="16"/>
       <column name="CLASSIFICATIONSCOREID" value="e6ab210e-6a26-4a12-9d50-ff8bd392c590"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="Search"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="2031525e-6ca3-46b4-91d4-7f90cd31a630"/>
-      <column name="SCORE" valueNumeric="12.50"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="e70a23b4-f2a9-4438-8ba6-742c6c17e5cc"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="No"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="40"/>
       <column name="CLASSIFICATIONSCOREID" value="e824d7e3-dfbe-4f34-a5c7-8f2226aade7e"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="100 to 199T"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="e8741cb0-9ada-48dd-89d1-f00a1a755c38"/>
       <column name="SORT" valueNumeric="60"/>
       <column name="TITLE" value="Counsellor"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="50.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="ec51d975-bda6-415e-9b91-32f0e981ecd8"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Building and construction suppliers"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="ecf421ef-66b2-4f9f-98c6-ee8a73e753da"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Austria"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
-      <column name="SCORE" valueNumeric="50.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="ed6a38f7-97bf-4e3d-a34c-4a1e636fa6a7"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="from 350T"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="50.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="efec90bd-c99f-49d9-bd52-df0ae6f938a3"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Machinery and equipment"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="f02cfd28-5a09-42ca-b805-07b7b38e3363"/>
       <column name="SORT" valueNumeric="50"/>
       <column name="TITLE" value="ab 350 D€"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="f1534026-34cc-4898-8711-41cbe4accb60"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="Marketing"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="33.30"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="f678b3e0-72c4-4b48-90c0-054bf3612dc2"/>
       <column name="SORT" valueNumeric="130"/>
       <column name="TITLE" value="Trade"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="33.30"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="fae1ef0a-5d07-4725-907f-4b2ac5814328"/>
       <column name="SORT" valueNumeric="100"/>
       <column name="TITLE" value="Industry"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="fb8cb769-d95b-468a-ac64-7ee0cefd46a7"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="unknown"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="25"/>
       <column name="CLASSIFICATIONSCOREID" value="fd022500-4cbc-461f-abb9-b0ec3d8e1dd1"/>
       <column name="SORT" valueNumeric="80"/>
       <column name="TITLE" value="Food"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="fd8a348a-dc1f-414b-b95e-b1a6aeb9a8d4"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Commodity group 2"/>
     </insert>
+    <insert tableName="classificationscore">
+      <column name="CLASSIFICATIONTYPE_ID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
+      <column name="CLASSIFICATIONSCOREID" value="4c769195-7bce-45e7-9176-782ff98de8d4"/>
+      <column name="SORT" valueNumeric="10"/>
+      <column name="TITLE" value="Commodity group 1"/>
+    </insert>
+    <insert tableName="classificationscore">
+      <column name="CLASSIFICATIONTYPE_ID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
+      <column name="CLASSIFICATIONSCOREID" value="21697201-96ae-4c52-848e-e3d228e003b8"/>
+      <column name="SORT" valueNumeric="20"/>
+      <column name="TITLE" value="Commodity group 2"/>
+    </insert>
   </changeSet>
 </databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/classificationstorage.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/classificationstorage.xml
index 4d76235c4afaff4c17945c195d876a5160ebc07e..1548d4a39c2a725756508c81ebedd4492730ebbe 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/classificationstorage.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/classificationstorage.xml
@@ -7,156 +7,182 @@
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="CLASSIFICATIONVALUE" value="ABB"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="0adb8953-1685-45cf-bcf7-c2c2098aa215"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="AB"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="1251e4b0-195d-4556-a10e-7942f1b0e337"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="AB"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="166e729d-45c6-4dab-bff2-940d2b618f6b"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="CLASSIFICATIONVALUE" value="ADB"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="1aafcbf6-6feb-4916-a4fd-58c138eb8f8f"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="CLASSIFICATIONVALUE" value="CBA"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="25a1b340-538d-4c4f-8b1e-25126286cd53"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BB"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="2ab913d3-e1a8-4fe2-904b-77b02f6be689"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BA"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="3893da8a-f357-46e0-a0b9-65aa58b0dfa6"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BC"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="42cc772e-53c6-4849-be29-ebb4e18ab860"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="CLASSIFICATIONVALUE" value="ACB"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="471aafd5-a348-453f-8b2a-64bb365fd0ee"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="CLASSIFICATIONVALUE" value="ACB"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="4ce62df5-f0ea-4593-a152-6704c61d7cef"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BD"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="63dd36bb-74b8-487b-811f-521438ef9491"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="AC"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="7a4762f5-90a3-4b6c-8a5d-93125381c18a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONVALUE" value="AC"/>
+      <column name="CLASSIFICATIONVALUE" value="BC"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="7b2eb62a-b686-4eaf-bde1-2e1dd1028f65"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BC"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="7e59d485-01a8-4e43-9655-ba751d5983a4"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BC"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="7f7dfe1d-cb98-44c8-8106-858d991d2b06"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="CLASSIFICATIONVALUE" value="ACA"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="80eac6e6-f237-455e-96fd-8484722a79d4"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BD"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="821c7eed-7bee-4879-97ec-44d2014a192b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BD"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="84a92c36-88df-4c06-a36a-650ed92d4d0a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BD"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="8db70618-5840-4d4b-90e2-66e1919fc6c1"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONVALUE" value="AC"/>
+      <column name="CLASSIFICATIONVALUE" value="BC"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="b4d2847f-0548-4cc8-b002-7723b5fc9184"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BD"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="bbc19466-8d76-4f35-be56-8458f677d4a9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BC"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="c64c9f31-a108-4df9-b515-6e523b1341c1"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONVALUE" value="AC"/>
+      <column name="CLASSIFICATIONVALUE" value="BC"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="e2142492-eeab-482d-a37e-b1c8fe7b2545"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BC"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="f451479f-97dc-4570-b342-c8d53f04b493"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="AC"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="fc665249-9efc-4d90-839d-cdffb4c3f407"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="AC"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
   </changeSet>
 </databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/classificationtype.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/classificationtype.xml
index 60482c030a909eb068ae282c7a51d0c2c1fbe4fb..7d2dadd9477c0f3e0c90da9b5b73a9184125e900 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/classificationtype.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/classificationtype.xml
@@ -7,120 +7,169 @@
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="SCORETYPE" value="Headquarters"/>
       <column name="CLASSIFICATIONTYPEID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
+      <column name="SCOREPOINTS" valueNumeric="35"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="b2126d9d-8d18-46d4-a48f-1a03fc456ddd"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreCustomizing"/>
       <column name="CLASSIFICATIONTYPEID" value="2031525e-6ca3-46b4-91d4-7f90cd31a630"/>
+      <column name="SCOREPOINTS" valueNumeric="25"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="b2126d9d-8d18-46d4-a48f-1a03fc456ddd"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreStandard"/>
       <column name="CLASSIFICATIONTYPEID" value="2a702a31-9907-4f1b-abfd-3342640f1c9e"/>
+      <column name="SCOREPOINTS" valueNumeric="25"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="c1305d16-320e-44f8-95f9-e4cff05d3cfb"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreDepartment"/>
       <column name="CLASSIFICATIONTYPEID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
+      <column name="SCOREPOINTS" valueNumeric="10"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="00cc7b8f-d99e-46bf-90c3-74e05b5af685"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreUsers"/>
       <column name="CLASSIFICATIONTYPEID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
+      <column name="SCOREPOINTS" valueNumeric="30"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="00cc7b8f-d99e-46bf-90c3-74e05b5af685"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreBranch"/>
       <column name="CLASSIFICATIONTYPEID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
+      <column name="SCOREPOINTS" valueNumeric="50"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="e3b0a84f-d2a7-4d7c-b734-82ab4b262e84"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="SCORETYPE" value="Number of employees"/>
       <column name="CLASSIFICATIONTYPEID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
+      <column name="SCOREPOINTS" valueNumeric="25"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="fb1349b6-6dc1-44b7-b7ea-03d5483e7fac"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="SCORETYPE" value="Loyalty"/>
       <column name="CLASSIFICATIONTYPEID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
+      <column name="SCOREPOINTS" valueNumeric="20"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="00cc7b8f-d99e-46bf-90c3-74e05b5af685"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreBased"/>
       <column name="CLASSIFICATIONTYPEID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
+      <column name="SCOREPOINTS" valueNumeric="20"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="c1305d16-320e-44f8-95f9-e4cff05d3cfb"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreDecisionPhase"/>
       <column name="CLASSIFICATIONTYPEID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
+      <column name="SCOREPOINTS" valueNumeric="30"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="fb1349b6-6dc1-44b7-b7ea-03d5483e7fac"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="SCORETYPE" value="Creditworthiness"/>
       <column name="CLASSIFICATIONTYPEID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
+      <column name="SCOREPOINTS" valueNumeric="15"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="c1305d16-320e-44f8-95f9-e4cff05d3cfb"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreCloud"/>
       <column name="CLASSIFICATIONTYPEID" value="8c1e8f81-145f-4efe-936f-3f4147f4d59a"/>
+      <column name="SCOREPOINTS" valueNumeric="10"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="fb1349b6-6dc1-44b7-b7ea-03d5483e7fac"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="SCORETYPE" value="Business development"/>
       <column name="CLASSIFICATIONTYPEID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
+      <column name="SCOREPOINTS" valueNumeric="25"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="e3b0a84f-d2a7-4d7c-b734-82ab4b262e84"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="SCORETYPE" value="Product preference"/>
       <column name="CLASSIFICATIONTYPEID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
+      <column name="SCOREPOINTS" valueNumeric="20"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="c1305d16-320e-44f8-95f9-e4cff05d3cfb"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScorePosition"/>
       <column name="CLASSIFICATIONTYPEID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
+      <column name="SCOREPOINTS" valueNumeric="20"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="fb1349b6-6dc1-44b7-b7ea-03d5483e7fac"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="SCORETYPE" value="Current supply share"/>
       <column name="CLASSIFICATIONTYPEID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
+      <column name="SCOREPOINTS" valueNumeric="20"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="e3b0a84f-d2a7-4d7c-b734-82ab4b262e84"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="SCORETYPE" value="Industry"/>
       <column name="CLASSIFICATIONTYPEID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
+      <column name="SCOREPOINTS" valueNumeric="20"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="b2126d9d-8d18-46d4-a48f-1a03fc456ddd"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreBudget"/>
       <column name="CLASSIFICATIONTYPEID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
+      <column name="SCOREPOINTS" valueNumeric="50"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="c1305d16-320e-44f8-95f9-e4cff05d3cfb"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreProjectStart"/>
       <column name="CLASSIFICATIONTYPEID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
+      <column name="SCOREPOINTS" valueNumeric="30"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="fb1349b6-6dc1-44b7-b7ea-03d5483e7fac"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="SCORETYPE" value="Purchasing potential p. a."/>
       <column name="CLASSIFICATIONTYPEID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
+      <column name="SCOREPOINTS" valueNumeric="20"/>
+      <column name="OUTDATED" valueNumeric="0"/>
+    </insert>
+    <insert tableName="classificationtype">
+      <column name="CLASSIFICATIONGROUP_ID" value="e3b0a84f-d2a7-4d7c-b734-82ab4b262e84"/>
+      <column name="OBJECT_TYPE" value="Organisation"/>
+      <column name="SCORETYPE" value="Focus"/>
+      <column name="CLASSIFICATIONTYPEID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="SCOREPOINTS" valueNumeric="20"/>
+      <column name="OUTDATED" valueNumeric="0"/>
+      <column name="FILTER" value='{"entity":"Organisation_entity","filter":{"type":"group","operator":"AND","childs":[{"type":"row","name":"TYPE","operator":"EQUAL","value":"Interessent","key":"ORGPROSPECT","contenttype":"TEXT"}]}}'/>
     </insert>
   </changeSet>
 </databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/documenttemplate.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/documenttemplate.xml
index 3edae4a9772c175a79b80dbcba86e576b40c2274..ffbb58f0d758063daa2eda4593f316ca6cf9eda4 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/documenttemplate.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/documenttemplate.xml
@@ -75,17 +75,6 @@
       <column name="USER_NEW" value="Admin"/>
       <column name="DATE_NEW" valueDate="2019-10-17T07:10:02"/>
     </insert>
-    <insert tableName="documenttemplate">
-      <column name="DOCUMENTTEMPLATEID" value="b935bc35-cb5e-4ccc-aef6-0cc745ca2691"/>
-      <column name="ISOLANGUAGE" value="deu"/>
-      <column name="REPLACEMENTNAME" value="footermeineFirma"/>
-      <column name="KIND" value="TEX"/>
-      <column name="NAME" value="footer_meineFrima"/>
-      <column name="DESCRIPTION" value="Fußtext mit Logo, Informationen und Links zu meineFirma."/>
-      <column name="CLASSIFICATION" value="7"/>
-      <column name="USER_NEW" value="Admin"/>
-      <column name="DATE_NEW" valueDate="2019-10-17T07:01:34"/>
-    </insert>
     <insert tableName="documenttemplate">
       <column name="DOCUMENTTEMPLATEID" value="e70b9ef1-f0a3-4cd2-b3cd-fa7b4229ee73"/>
       <column name="ISOLANGUAGE" value="deu"/>
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/documenttemplateplaceofuse.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/documenttemplateplaceofuse.xml
index b7f09032ef0bc8ba4392684da6df39b3a3f34548..415544ff7d52b15bd0630acaadabcbcfdbb895bc 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/documenttemplateplaceofuse.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/documenttemplateplaceofuse.xml
@@ -17,11 +17,6 @@
       <column name="PLACEOFUSE" value="Organisation"/>
       <column name="DOCUMENTTEMPLATEPLACEOFUSEID" value="0c546f3e-11bb-4fbf-b2f0-a06bf36f55fa"/>
     </insert>
-    <insert tableName="documenttemplateplaceofuse">
-      <column name="DOCUMENTTEMPLATE_ID" value="b935bc35-cb5e-4ccc-aef6-0cc745ca2691"/>
-      <column name="PLACEOFUSE" value="Person"/>
-      <column name="DOCUMENTTEMPLATEPLACEOFUSEID" value="1dcf4e02-79ad-463d-8956-a3886eba9546"/>
-    </insert>
     <insert tableName="documenttemplateplaceofuse">
       <column name="DOCUMENTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81"/>
       <column name="PLACEOFUSE" value="Person"/>
@@ -97,10 +92,5 @@
       <column name="PLACEOFUSE" value="Person"/>
       <column name="DOCUMENTTEMPLATEPLACEOFUSEID" value="ebbec7a2-a396-424a-aab5-1726254fc2e9"/>
     </insert>
-    <insert tableName="documenttemplateplaceofuse">
-      <column name="DOCUMENTTEMPLATE_ID" value="b935bc35-cb5e-4ccc-aef6-0cc745ca2691"/>
-      <column name="PLACEOFUSE" value="Organisation"/>
-      <column name="DOCUMENTTEMPLATEPLACEOFUSEID" value="f43bc91d-7fc1-4549-8a41-903c62673e43"/>
-    </insert>
   </changeSet>
 </databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/dsgvoinfo.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/dsgvoinfo.xml
index 9d3ad487ecbb0c6f2e9ff10365b7a8a53f5228a0..9d0f1862c96565eec34d545663371ea31ba17236 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/dsgvoinfo.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/dsgvoinfo.xml
@@ -4,7 +4,7 @@
     <delete tableName="dsgvoinfo"/>
     <insert tableName="dsgvoinfo">
       <column name="TRANSMISSION" value="DSGVONONE"/>
-      <column name="DATASOURCE" value="756662b5-f5e4-479c-8d97-abd6a395bd79"/>
+      <column name="DATASOURCE" value="449080f6-b714-4189-a261-37439d0d4010"/>
       <column name="CONTACT_ID" value="b3906c2d-7b2e-4f64-8c97-ae92e39f96b6"/>
       <column name="DSGVOINFOID" value="6b117aad-02f4-4746-985a-de931059b72e"/>
     </insert>
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/organisation.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/organisation.xml
index 9edca5ffee807eb090d1402af3ba9da6ac6de0ef..02c3077b02a98842edc63705625527984ae56052 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/organisation.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/organisation.xml
@@ -11,6 +11,7 @@
     </insert>
     <insert tableName="organisation">
       <column name="ORGANISATIONID" value="03e09527-21cc-489a-b37f-0dd7df553c20"/>
+      <column name="KIND" value="ORGPROSPECT"/>
       <column name="NAME" value="Lichtenstein Document Solutions GmbH&#10;"/>
       <column name="DATE_EDIT" valueDate="2019-11-26T06:21:44"/>
       <column name="CUSTOMERCODE" value="2419"/>
@@ -71,6 +72,7 @@
     </insert>
     <insert tableName="organisation">
       <column name="ORGANISATIONID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="KIND" value="ORGPROSPECT"/>
       <column name="NAME" value="Kronen AG"/>
       <column name="DATE_EDIT" valueDate="2019-11-26T06:21:07"/>
       <column name="CUSTOMERCODE" value="5874"/>
@@ -111,6 +113,7 @@
     </insert>
     <insert tableName="organisation">
       <column name="ORGANISATIONID" value="82c7b72d-da4e-4fab-a6cc-31e1be07dd08"/>
+      <column name="KIND" value="ORGPROSPECT"/>
       <column name="NAME" value="Pichelmaier Financial  AG&#13;&#10;"/>
       <column name="DATE_EDIT" valueDate="2019-11-26T06:25:36"/>
       <column name="CUSTOMERCODE" value="3579"/>
@@ -131,6 +134,7 @@
     </insert>
     <insert tableName="organisation">
       <column name="ORGANISATIONID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="KIND" value="ORGPROSPECT"/>
       <column name="NAME" value="Bucher Unternehmensgruppe"/>
       <column name="DATE_EDIT" valueDate="2019-11-26T06:17:51"/>
       <column name="CUSTOMERCODE" value="3698"/>
@@ -160,6 +164,7 @@
     </insert>
     <insert tableName="organisation">
       <column name="ORGANISATIONID" value="b043cd42-058c-48bd-8326-4c92e0e74c48"/>
+      <column name="KIND" value="ORGPROSPECT"/>
       <column name="NAME" value="Waken Neuser SE"/>
       <column name="DATE_EDIT" valueDate="2019-11-26T06:28:03"/>
       <column name="CUSTOMERCODE" value="5612"/>
@@ -179,6 +184,7 @@
     </insert>
     <insert tableName="organisation">
       <column name="ORGANISATIONID" value="d3707591-5620-49a8-a63f-19e88ca7a21c"/>
+      <column name="KIND" value="ORGPROSPECT"/>
       <column name="NAME" value="MNF Versicherung"/>
       <column name="DATE_EDIT" valueDate="2019-11-26T06:24:53"/>
       <column name="CUSTOMERCODE" value="7691"/>
@@ -188,6 +194,7 @@
     </insert>
     <insert tableName="organisation">
       <column name="ORGANISATIONID" value="ea07af40-4918-4ea2-94ad-031d01aeaab4"/>
+      <column name="KIND" value="ORGPROSPECT"/>
       <column name="NAME" value="International Kältetechnik AG&#10;"/>
       <column name="DATE_EDIT" valueDate="2019-11-26T06:20:08"/>
       <column name="CUSTOMERCODE" value="6983"/>
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/salesproject.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/salesproject.xml
index b02071fcb7dc81c6fead45952d21c67523b1b96d..501abc4a8119a32b98be9512a91506f1fee1b5d7 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/salesproject.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/salesproject.xml
@@ -12,6 +12,7 @@
       <column name="PROJECTTITLE" value="Erstprojekt"/>
       <column name="CONTACT_ID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="STARTDATE" valueDate="2020-05-14T12:00:00"/>
+      <column name="DATE_NEW" valueDate="2020-01-01T11:22:49"/>
       <column name="STATUS" value="SALPROJSTATOPEN"/>
     </insert>
     <insert tableName="salesproject">
@@ -24,6 +25,7 @@
       <column name="PROJECTTITLE" value="Skyscraper / Pilotprojekt"/>
       <column name="CONTACT_ID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="STARTDATE" valueDate="2020-05-15T12:00:00"/>
+      <column name="DATE_NEW" valueDate="2020-01-01T11:22:49"/>
       <column name="STATUS" value="SALPROJSTATOPEN"/>
     </insert>
     <insert tableName="salesproject">
@@ -36,6 +38,7 @@
       <column name="PROJECTTITLE" value="Kronen Pilotprojekt"/>
       <column name="CONTACT_ID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
       <column name="STARTDATE" valueDate="2020-05-13T12:00:00"/>
+      <column name="DATE_NEW" valueDate="2020-01-01T11:22:49"/>
       <column name="STATUS" value="SALPROJSTATOPEN"/>
     </insert>
     <insert tableName="salesproject">
@@ -48,6 +51,7 @@
       <column name="PROJECTTITLE" value="Transatlantik Initialprojekt"/>
       <column name="CONTACT_ID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="STARTDATE" valueDate="2020-05-15T12:00:00"/>
+      <column name="DATE_NEW" valueDate="2020-01-01T11:22:49"/>
       <column name="STATUS" value="SALPROJSTATOPEN"/>
     </insert>
     <insert tableName="salesproject">
@@ -59,6 +63,7 @@
       <column name="PROJECTTITLE" value="Projekt 123"/>
       <column name="CONTACT_ID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
       <column name="STARTDATE" valueDate="2020-11-24T12:00:00"/>
+      <column name="DATE_NEW" valueDate="2020-01-01T11:22:49"/>
       <column name="STATUS" value="SALPROJSTATOPEN"/>
     </insert>
     <insert tableName="salesproject">
@@ -71,6 +76,7 @@
       <column name="PROJECTTITLE" value="Buchner Neuprojekt"/>
       <column name="CONTACT_ID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
       <column name="STARTDATE" valueDate="2020-02-05T12:00:00"/>
+      <column name="DATE_NEW" valueDate="2020-01-01T11:22:49"/>
       <column name="STATUS" value="SALPROJSTATOPEN"/>
     </insert>
   </changeSet>
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/tasklink.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/tasklink.xml
index 04c72218c576ff03540b136aeaf811f1e83c3ae4..018d8fd16f3b8db0d46d982ebea3cbf967ac2603 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/tasklink.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/tasklink.xml
@@ -12,7 +12,7 @@
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="TASKLINKID" value="44c1f582-7681-4f6f-b592-6221ebbdee52"/>
       <column name="TASK_ID" value="81a4c8e7-4429-41e1-a534-f1be21e56b5e"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="tasklink">
       <column name="OBJECT_TYPE" value="Salesproject"/>
@@ -24,7 +24,7 @@
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="TASKLINKID" value="6c2f84af-ff2e-4b70-b4d0-607a2bd0d941"/>
       <column name="TASK_ID" value="2e50d2cd-9429-433c-8f6e-2e31a9e7908e"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="tasklink">
       <column name="OBJECT_TYPE" value="Salesproject"/>
@@ -36,13 +36,13 @@
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="TASKLINKID" value="b618fb87-d39d-41d8-be41-2b03bce29538"/>
       <column name="TASK_ID" value="96ec8b48-9fac-4216-bc98-a8323f0592f9"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="tasklink">
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="TASKLINKID" value="eca5c8cb-bd10-4425-b4bc-a2e50f2518b9"/>
       <column name="TASK_ID" value="46164eac-62d1-4dbb-a252-93ac49429855"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="tasklink">
       <column name="OBJECT_TYPE" value="Salesproject"/>
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/visitrecommendation.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/visitrecommendation.xml
index 8c87c7d354f8a87ea081fc188365869937210be7..6f2b91485c8da2cbfa0e71a029dbf6d7d0daacdc 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/visitrecommendation.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/visitrecommendation.xml
@@ -7,7 +7,7 @@
       <column name="DUE_DATE" valueDate="2020-09-16T12:00:00"/>
       <column name="SOURCE" value="MANUAL                              "/>
       <column name="PRIORITY" value="VISITPRIOCRITICAL                   "/>
-      <column name="CONTACT_ID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
+      <column name="CONTACT_ID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
   </changeSet>
 </databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/changelog.xml b/.liquibase/Data_alias/changelog.xml
index 71e32bf0790de16fb02e4c71968f5749a36ffffe..12d0865aebe1c4bc81cb8563000a34e896ec8998 100644
--- a/.liquibase/Data_alias/changelog.xml
+++ b/.liquibase/Data_alias/changelog.xml
@@ -19,6 +19,7 @@
     <include relativeToChangelogFile="true" file="basic/2020.2.1/changelog.xml"/>
     <include relativeToChangelogFile="true" file="basic/2020.2.2/changelog.xml"/>
     <include relativeToChangelogFile="true" file="basic/2020.2.3/changelog.xml"/>
+    <include relativeToChangelogFile="true" file="basic/2021.0.0/changelog.xml"/>
 
     <!--enable this only when you definetly want to overwrite the existing data with demo records:-->
     <!--<include relativeToChangelogFile="true" file="basic/_demoData/changelog.xml" context="example"/>-->
diff --git a/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_BINARIES/BINDATA/blobFiles/e3ba3d891ab9cbc43367cd4cce7eeb55 b/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_BINARIES/BINDATA/blobFiles/e3ba3d891ab9cbc43367cd4cce7eeb55
index 5612079f37c55d30eb9353fa48b5800d6f15e0ca..36958bab85ab17bfa34743fb5d2e4187817540cc 100644
Binary files a/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_BINARIES/BINDATA/blobFiles/e3ba3d891ab9cbc43367cd4cce7eeb55 and b/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_BINARIES/BINDATA/blobFiles/e3ba3d891ab9cbc43367cd4cce7eeb55 differ
diff --git a/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_BINARIES/BINDATA/blobFiles/ef3d15d33c3023a91985372805270dc6 b/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_BINARIES/BINDATA/blobFiles/ef3d15d33c3023a91985372805270dc6
index d03920805c23b660ed4535bc1584d1392c68fc72..036d2eb9d494a9b5dd09c6e30da4e1b68180ad30 100644
Binary files a/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_BINARIES/BINDATA/blobFiles/ef3d15d33c3023a91985372805270dc6 and b/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_BINARIES/BINDATA/blobFiles/ef3d15d33c3023a91985372805270dc6 differ
diff --git a/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_PERMISSION.xml b/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_PERMISSION.xml
new file mode 100644
index 0000000000000000000000000000000000000000..635ef285ba0a85e4e84df8dd4ed05434c6b9b8d6
--- /dev/null
+++ b/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_PERMISSION.xml
@@ -0,0 +1,23 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+  <changeSet author="j.luginger" id="1110a814-62e1-4c54-9e8d-03e2feb27760">
+    <insert tableName="ASYS_PERMISSION">
+      <column name="ASYS_PERMISSIONID" value="f53f7071-c0ad-4af4-b3c0-4a02bb8f27b5"/>
+      <column name="ASYS_PERMISSIONSET_ID" value="8cc1bee8-0092-4e52-a439-f647eed55441"/>
+      <column name="COND" value="{&quot;entity&quot;:&quot;DistrictContact_entity&quot;,&quot;filter&quot;:{&quot;type&quot;:&quot;group&quot;,&quot;operator&quot;:&quot;AND&quot;,&quot;childs&quot;:[]}}"/>
+      <column name="CONDTYPE" valueNumeric="1"/>
+    </insert>
+    <insert tableName="ASYS_PERMISSION">
+      <column name="ASYS_PERMISSIONID" value="3cbc4523-6d24-44aa-bc05-ef044b13d3fb"/>
+      <column name="ASYS_PERMISSIONSET_ID" value="295cd7b4-7ffd-4249-919f-daa908dab7ec"/>
+      <column name="COND" value="{&quot;entity&quot;:&quot;DistrictContact_entity&quot;,&quot;filter&quot;:{&quot;type&quot;:&quot;group&quot;,&quot;operator&quot;:&quot;AND&quot;,&quot;childs&quot;:[]}}"/>
+      <column name="CONDTYPE" valueNumeric="1"/>
+    </insert>
+    <insert tableName="ASYS_PERMISSION">
+      <column name="ASYS_PERMISSIONID" value="ddfb3a26-8be1-4773-9cd6-73675603201e"/>
+      <column name="ASYS_PERMISSIONSET_ID" value="295cd7b4-7ffd-4249-919f-daa908dab7ec"/>
+      <column name="COND" value="{&quot;entity&quot;:&quot;DistrictContact_entity&quot;,&quot;filter&quot;:{&quot;type&quot;:&quot;group&quot;,&quot;operator&quot;:&quot;AND&quot;,&quot;childs&quot;:[{&quot;type&quot;:&quot;row&quot;,&quot;name&quot;:&quot;ORIGIN&quot;,&quot;operator&quot;:&quot;EQUAL&quot;,&quot;value&quot;:&quot;manual&quot;,&quot;key&quot;:&quot;DistrictOrigin_manual&quot;,&quot;contenttype&quot;:&quot;TEXT&quot;}]}}"/>
+      <column name="CONDTYPE" valueNumeric="1"/>
+    </insert>
+  </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_PERMISSIONACTION.xml b/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_PERMISSIONACTION.xml
new file mode 100644
index 0000000000000000000000000000000000000000..74dd82d7f1d5f281069376f66c13db45ac5186fa
--- /dev/null
+++ b/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_PERMISSIONACTION.xml
@@ -0,0 +1,30 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+  <changeSet author="j.luginger" id="a6e86404-38ec-419f-9fe8-25327a6b3ac6">
+    <insert tableName="ASYS_PERMISSIONACTION">
+      <column name="ACTION" value="view"/>
+      <column name="ASYS_PERMISSION_ID" value="f53f7071-c0ad-4af4-b3c0-4a02bb8f27b5"/>
+      <column name="ASYS_PERMISSIONACTIONID" value="8cae79d8-e8bf-4d9a-9353-e0dd7df1f667"/>
+    </insert>
+    <insert tableName="ASYS_PERMISSIONACTION">
+      <column name="ACTION" value="create"/>
+      <column name="ASYS_PERMISSION_ID" value="f53f7071-c0ad-4af4-b3c0-4a02bb8f27b5"/>
+      <column name="ASYS_PERMISSIONACTIONID" value="3a7a7322-ac8b-49dc-b185-a5acab4fb6dc"/>
+    </insert>
+    <insert tableName="ASYS_PERMISSIONACTION">
+      <column name="ACTION" value="read"/>
+      <column name="ASYS_PERMISSION_ID" value="3cbc4523-6d24-44aa-bc05-ef044b13d3fb"/>
+      <column name="ASYS_PERMISSIONACTIONID" value="1686674d-7343-4d00-8a92-290c0263991b"/>
+    </insert>
+    <insert tableName="ASYS_PERMISSIONACTION">
+      <column name="ACTION" value="delete"/>
+      <column name="ASYS_PERMISSION_ID" value="ddfb3a26-8be1-4773-9cd6-73675603201e"/>
+      <column name="ASYS_PERMISSIONACTIONID" value="a60eb350-12a5-444c-8d1a-3f5a7d57d8f3"/>
+    </insert>
+    <insert tableName="ASYS_PERMISSIONACTION">
+      <column name="ACTION" value="update"/>
+      <column name="ASYS_PERMISSION_ID" value="ddfb3a26-8be1-4773-9cd6-73675603201e"/>
+      <column name="ASYS_PERMISSIONACTIONID" value="63668e61-664b-48d3-8ba8-fea974271438"/>
+    </insert>
+  </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_PERMISSIONSET.xml b/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_PERMISSIONSET.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4611c456f2d4ebde1cf1c773190a5c8b3fbbd5da
--- /dev/null
+++ b/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_PERMISSIONSET.xml
@@ -0,0 +1,18 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+  <changeSet author="j.luginger" id="c83eadc7-c360-411a-8a83-da85eff5e945">
+    <insert tableName="ASYS_PERMISSIONSET">
+      <column name="ACCESSTYPE" value="E"/>
+      <column name="ASYS_PERMISSIONSETID" value="8cc1bee8-0092-4e52-a439-f647eed55441"/>
+      <column name="ENTITY_ID" value="DistrictContact_entity"/>
+      <column name="ROLE_ID" value="INTERNAL_EVERYONE"/>
+    </insert>
+    <insert tableName="ASYS_PERMISSIONSET">
+      <column name="ACCESSTYPE" value="R"/>
+      <column name="ASYS_PERMISSIONSET_ID" value="8cc1bee8-0092-4e52-a439-f647eed55441"/>
+      <column name="ASYS_PERMISSIONSETID" value="295cd7b4-7ffd-4249-919f-daa908dab7ec"/>
+      <column name="ENTITY_ID" value="DistrictContact_entity"/>
+      <column name="ROLE_ID" value="INTERNAL_EVERYONE"/>
+    </insert>
+  </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/changelog.xml b/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/changelog.xml
index b64f62ea0f7bca50bca82cb051c542a489bb7409..5c155f478645750f5b76a9a1e4f2364eca59b34d 100644
--- a/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/changelog.xml
+++ b/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/changelog.xml
@@ -1,6 +1,9 @@
 <?xml version="1.1" encoding="UTF-8" standalone="no"?>
 <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
     <include relativeToChangelogFile="true" file="ASYS_BINARIES.xml"/>
-	<include relativeToChangelogFile="true" file="ASYS_RECORD.xml"/>
-	<include relativeToChangelogFile="true" file="ASYS_RECORDGROUP.xml"/>
+    <include relativeToChangelogFile="true" file="ASYS_RECORD.xml"/>
+    <include relativeToChangelogFile="true" file="ASYS_RECORDGROUP.xml"/>
+    <include relativeToChangelogFile="true" file="ASYS_PERMISSION.xml"/>
+    <include relativeToChangelogFile="true" file="ASYS_PERMISSIONACTION.xml"/>
+    <include relativeToChangelogFile="true" file="ASYS_PERMISSIONSET.xml"/>
 </databaseChangeLog>
\ No newline at end of file
diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod
index dbca10b0c0e70175cf3fdec1d3809a2fd5080360..e7fffbd3b79ae5520b1b56ed1c7870d518399740 100644
--- a/aliasDefinition/Data_alias/Data_alias.aod
+++ b/aliasDefinition/Data_alias/Data_alias.aod
@@ -1152,7 +1152,7 @@
                 <scale v="8" />
                 <notNull v="false" />
                 <isUnique v="false" />
-                <index v="false" />
+                <index v="true" />
                 <documentation></documentation>
                 <title></title>
                 <description></description>
@@ -1166,7 +1166,7 @@
                 <scale v="8" />
                 <notNull v="false" />
                 <isUnique v="false" />
-                <index v="false" />
+                <index v="true" />
                 <documentation></documentation>
                 <title></title>
                 <description></description>
@@ -3112,7 +3112,7 @@
                 <name>DISCOUNT</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="3" />
+                <columnType v="2" />
                 <size v="14" />
                 <scale v="2" />
                 <notNull v="false" />
@@ -3126,7 +3126,7 @@
                 <name>DISCOUNTED_NET</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="3" />
+                <columnType v="2" />
                 <size v="14" />
                 <scale v="2" />
                 <notNull v="false" />
@@ -3140,7 +3140,7 @@
                 <name>DISCOUNTED_VAT</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="3" />
+                <columnType v="2" />
                 <size v="14" />
                 <scale v="2" />
                 <notNull v="false" />
@@ -3786,6 +3786,20 @@
                   </customStringProperty>
                 </customProperties>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -4886,6 +4900,20 @@
                   </customBooleanProperty>
                 </customProperties>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>INFO</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -6522,7 +6550,7 @@
                 <columnType v="12" />
                 <size v="80" />
                 <scale v="0" />
-                <notNull v="true" />
+                <notNull v="false" />
                 <isUnique v="false" />
                 <index v="true" />
                 <documentation></documentation>
@@ -6634,6 +6662,20 @@
                 <title>Keyword entry Id</title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>AB_KEYWORD_CATEGORY_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -6848,6 +6890,19 @@
                   </customBooleanProperty>
                 </customProperties>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>AB_KEYWORD_CATEGORY_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -9520,6 +9575,48 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>FILTER</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="2005" />
+                <size v="2147483647" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SCOREPOINTS</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>OUTDATED</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="5" />
+                <size v="5" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -9583,48 +9680,55 @@
                 </dependencies>
               </entityFieldDb>
               <entityFieldDb>
-                <name>CLASSIFICATIONSCORE_ID</name>
+                <name>CLASSIFICATIONID</name>
                 <dbName></dbName>
-                <primaryKey v="false" />
+                <primaryKey v="true" />
                 <columnType v="1" />
                 <size v="36" />
                 <scale v="0" />
                 <notNull v="true" />
-                <isUnique v="false" />
+                <isUnique v="true" />
                 <index v="true" />
                 <documentation></documentation>
                 <title></title>
                 <description></description>
-                <dependencies>
-                  <entityDependency>
-                    <name>aeeb4a24-4e92-4f78-a98c-3c423678000a</name>
-                    <entityName>CLASSIFICATIONSCORE</entityName>
-                    <fieldName>CLASSIFICATIONSCOREID</fieldName>
-                  </entityDependency>
-                </dependencies>
               </entityFieldDb>
               <entityFieldDb>
-                <name>CLASSIFICATIONID</name>
+                <name>OBJECT_TYPE</name>
                 <dbName></dbName>
-                <primaryKey v="true" />
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>VALUE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
                 <columnType v="1" />
                 <size v="36" />
                 <scale v="0" />
                 <notNull v="true" />
-                <isUnique v="true" />
+                <isUnique v="false" />
                 <index v="true" />
                 <documentation></documentation>
                 <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>OBJECT_TYPE</name>
+                <name>SCOREPOINTS</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="12" />
-                <size v="50" />
-                <scale v="0" />
-                <notNull v="true" />
+                <columnType v="2" />
+                <size v="14" />
+                <scale v="2" />
+                <notNull v="false" />
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
@@ -9651,20 +9755,6 @@
               <syncIds></syncIds>
             </auditSyncConfig>
             <entityFields>
-              <entityFieldDb>
-                <name>SCORE</name>
-                <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="2" />
-                <size v="10" />
-                <scale v="2" />
-                <notNull v="false" />
-                <isUnique v="false" />
-                <index v="false" />
-                <documentation></documentation>
-                <title></title>
-                <description></description>
-              </entityFieldDb>
               <entityFieldDb>
                 <name>CLASSIFICATIONSCOREID</name>
                 <dbName></dbName>
@@ -9721,6 +9811,20 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>SCOREPERCENT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="2" />
+                <size v="10" />
+                <scale v="2" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -14889,6 +14993,62 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>CONTACT_PERSON_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>RESPONSIBLE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>STATUS</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -15139,6 +15299,20 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>STATUS_APPOINTMENT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -15188,29 +15362,29 @@
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>MAXGRADEFORSCORE</name>
+                <name>CLASSIFICATIONGROUP_ID</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="4" />
-                <size v="10" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
-                <index v="false" />
+                <index v="true" />
                 <documentation></documentation>
                 <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>CLASSIFICATIONGROUP_ID</name>
+                <name>MINPERCENT</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="1" />
-                <size v="36" />
+                <columnType v="4" />
+                <size v="10" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
-                <index v="true" />
+                <index v="false" />
                 <documentation></documentation>
                 <title></title>
                 <description></description>
@@ -15291,13 +15465,27 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
-            </entityFields>
-          </entityDb>
-          <entityDb>
-            <name>CLASSIFICATIONGROUP</name>
-            <dbName></dbName>
-            <idColumn>CLASSIFICATIONGROUPID</idColumn>
-            <idGeneratorType v="0" />
+              <entityFieldDb>
+                <name>OUTDATED</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="5" />
+                <size v="5" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>CLASSIFICATIONGROUP</name>
+            <dbName></dbName>
+            <idColumn>CLASSIFICATIONGROUPID</idColumn>
+            <idGeneratorType v="0" />
             <idGeneratorInterval v="1" />
             <documentation></documentation>
             <title></title>
@@ -15687,6 +15875,20 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>DISTRICT_AUTOADD</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="5" />
+                <size v="5" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -15819,31 +16021,11 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
-            </entityFields>
-          </entityDb>
-          <entityDb>
-            <name>KNOWLEDGEDISCUSSION</name>
-            <dbName></dbName>
-            <idColumn>KNOWLEDGEDISCUSSIONID</idColumn>
-            <idGeneratorType v="0" />
-            <idGeneratorInterval v="1" />
-            <documentation></documentation>
-            <title></title>
-            <description></description>
-            <auditSyncConfig>
-              <name>auditSyncConfig</name>
-              <auditMode v="0" />
-              <syncActive v="false" />
-              <syncComplete v="true" />
-              <syncDirection v="1" />
-              <syncIds></syncIds>
-            </auditSyncConfig>
-            <entityFields>
               <entityFieldDb>
-                <name>PARENTENTRY</name>
+                <name>ADVISER_STATUS</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="1" />
+                <columnType v="12" />
                 <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
@@ -15854,7 +16036,7 @@
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>STATUS</name>
+                <name>ADVISER_ROLE</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="12" />
@@ -15868,12 +16050,12 @@
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>DISCUSSIONTEXT</name>
+                <name>VALID_FROM</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="2005" />
-                <size v="2147483647" />
-                <scale v="0" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
                 <notNull v="false" />
                 <isUnique v="false" />
                 <index v="false" />
@@ -15882,7 +16064,7 @@
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>DATE_EDIT</name>
+                <name>VALID_UNTIL</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="93" />
@@ -15895,22 +16077,42 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>DISTRICTCONTACT</name>
+            <dbName></dbName>
+            <idColumn>DISTRICTCONTACTID</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="1" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
               <entityFieldDb>
-                <name>KNOWLEDGEDISCUSSIONID</name>
+                <name>ORIGIN</name>
                 <dbName></dbName>
-                <primaryKey v="true" />
-                <columnType v="1" />
+                <primaryKey v="false" />
+                <columnType v="12" />
                 <size v="36" />
                 <scale v="0" />
-                <notNull v="true" />
-                <isUnique v="true" />
-                <index v="true" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
                 <documentation></documentation>
                 <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>KNOWLEDGEMANAGEMENT_ID</name>
+                <name>STATUS</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="1" />
@@ -15918,17 +16120,29 @@
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
-                <index v="true" />
+                <index v="false" />
                 <documentation></documentation>
-                <title></title>
+                <title>District assignment status</title>
                 <description></description>
+                <customProperties>
+                  <customBooleanProperty>
+                    <name>log</name>
+                    <global v="false" />
+                    <property v="true" />
+                  </customBooleanProperty>
+                  <customJDitoProperty>
+                    <name>translate4Log</name>
+                    <global v="false" />
+                    <property>%aditoprj%/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/districtcontact/entityfields/status/customproperties/translate4log/property.js</property>
+                  </customJDitoProperty>
+                </customProperties>
               </entityFieldDb>
               <entityFieldDb>
-                <name>AUTHOR</name>
+                <name>ADVISER_ROLE</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="12" />
-                <size v="50" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
@@ -15938,83 +16152,87 @@
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>DATE_NEW</name>
+                <name>ADVISER_CONTACT_ID</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="93" />
-                <size v="29" />
-                <scale v="9" />
+                <columnType v="12" />
+                <size v="36" />
+                <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
-                <index v="false" />
+                <index v="true" />
                 <documentation></documentation>
                 <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>USER_NEW</name>
+                <name>DISTRICTCONTACTID</name>
                 <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="12" />
-                <size v="50" />
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
-                <notNull v="false" />
-                <isUnique v="false" />
-                <index v="false" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
                 <documentation></documentation>
                 <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>USER_EDIT</name>
+                <name>DISTRICT_ID</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="12" />
-                <size v="50" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
-                <index v="false" />
+                <index v="true" />
                 <documentation></documentation>
-                <title></title>
+                <title>District</title>
                 <description></description>
+                <customProperties>
+                  <customBooleanProperty>
+                    <name>log</name>
+                    <global v="false" />
+                    <property v="true" />
+                  </customBooleanProperty>
+                  <customJDitoProperty>
+                    <name>translate4Log</name>
+                    <global v="false" />
+                    <property>%aditoprj%/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/districtcontact/entityfields/district_id/customproperties/translate4log/property.js</property>
+                  </customJDitoProperty>
+                </customProperties>
               </entityFieldDb>
-            </entityFields>
-          </entityDb>
-          <entityDb>
-            <name>KNOWLEDGELINK</name>
-            <dbName></dbName>
-            <idColumn>KNOWLEDGELINKID</idColumn>
-            <idGeneratorType v="0" />
-            <idGeneratorInterval v="1" />
-            <documentation></documentation>
-            <title></title>
-            <description></description>
-            <auditSyncConfig>
-              <name>auditSyncConfig</name>
-              <auditMode v="0" />
-              <syncActive v="false" />
-              <syncComplete v="true" />
-              <syncDirection v="1" />
-              <syncIds></syncIds>
-            </auditSyncConfig>
-            <entityFields>
               <entityFieldDb>
-                <name>KNOWLEDGELINKID</name>
+                <name>CONTACT_ID</name>
                 <dbName></dbName>
-                <primaryKey v="true" />
-                <columnType v="1" />
+                <primaryKey v="false" />
+                <columnType v="12" />
                 <size v="36" />
                 <scale v="0" />
-                <notNull v="true" />
-                <isUnique v="true" />
+                <notNull v="false" />
+                <isUnique v="false" />
                 <index v="true" />
                 <documentation></documentation>
                 <title></title>
                 <description></description>
+                <customProperties>
+                  <customBooleanProperty>
+                    <name>log</name>
+                    <global v="false" />
+                    <property v="false" />
+                  </customBooleanProperty>
+                  <customStringProperty>
+                    <name>tableRef</name>
+                    <global v="false" />
+                    <property>CONTACT</property>
+                  </customStringProperty>
+                </customProperties>
               </entityFieldDb>
               <entityFieldDb>
-                <name>DATE_EDIT</name>
+                <name>VALID_FROM</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="93" />
@@ -16028,21 +16246,21 @@
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>KNOWLEDGEMANAGEMENT_ID</name>
+                <name>VALID_UNTIL</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="1" />
-                <size v="36" />
-                <scale v="0" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
                 <notNull v="false" />
                 <isUnique v="false" />
-                <index v="true" />
+                <index v="false" />
                 <documentation></documentation>
                 <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>DATE_NEW</name>
+                <name>DATE_EDIT</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="93" />
@@ -16056,7 +16274,7 @@
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>USER_NEW</name>
+                <name>USER_EDIT</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="12" />
@@ -16070,12 +16288,12 @@
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>OBJECT_TYPE</name>
+                <name>DATE_NEW</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="12" />
-                <size v="100" />
-                <scale v="0" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
                 <notNull v="false" />
                 <isUnique v="false" />
                 <index v="false" />
@@ -16084,7 +16302,7 @@
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>USER_EDIT</name>
+                <name>USER_NEW</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="12" />
@@ -16097,26 +16315,12 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
-              <entityFieldDb>
-                <name>ROW_ID</name>
-                <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="1" />
-                <size v="36" />
-                <scale v="0" />
-                <notNull v="false" />
-                <isUnique v="false" />
-                <index v="false" />
-                <documentation></documentation>
-                <title></title>
-                <description></description>
-              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
-            <name>KNOWLEDGEMANAGEMENT</name>
+            <name>KNOWLEDGEDISCUSSION</name>
             <dbName></dbName>
-            <idColumn>KNOWLEDGEMANAGEMENTID</idColumn>
+            <idColumn>KNOWLEDGEDISCUSSIONID</idColumn>
             <idGeneratorType v="0" />
             <idGeneratorInterval v="1" />
             <documentation></documentation>
@@ -16132,12 +16336,12 @@
             </auditSyncConfig>
             <entityFields>
               <entityFieldDb>
-                <name>DATE_EDIT</name>
+                <name>PARENTENTRY</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="93" />
-                <size v="29" />
-                <scale v="9" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
                 <index v="false" />
@@ -16146,24 +16350,10 @@
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>KNOWLEDGEMANAGEMENTID</name>
+                <name>STATUS</name>
                 <dbName></dbName>
-                <primaryKey v="true" />
-                <columnType v="1" />
-                <size v="36" />
-                <scale v="0" />
-                <notNull v="true" />
-                <isUnique v="true" />
-                <index v="true" />
-                <documentation></documentation>
-                <title></title>
-                <description></description>
-              </entityFieldDb>
-              <entityFieldDb>
-                <name>AUTHOR_CONTACT_ID</name>
-                <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="1" />
+                <primaryKey v="false" />
+                <columnType v="12" />
                 <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
@@ -16172,20 +16362,13 @@
                 <documentation></documentation>
                 <title></title>
                 <description></description>
-                <customProperties>
-                  <customBooleanProperty>
-                    <name>log</name>
-                    <global v="false" />
-                    <property v="true" />
-                  </customBooleanProperty>
-                </customProperties>
               </entityFieldDb>
               <entityFieldDb>
-                <name>PUBLISH</name>
+                <name>DISCUSSIONTEXT</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="12" />
-                <size v="36" />
+                <columnType v="2005" />
+                <size v="2147483647" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
@@ -16195,12 +16378,12 @@
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>USER_EDIT</name>
+                <name>DATE_EDIT</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="12" />
-                <size v="63" />
-                <scale v="0" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
                 <notNull v="false" />
                 <isUnique v="false" />
                 <index v="false" />
@@ -16209,25 +16392,25 @@
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>CONTENTDECODED</name>
+                <name>KNOWLEDGEDISCUSSIONID</name>
                 <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="2005" />
-                <size v="2147483647" />
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
-                <notNull v="false" />
-                <isUnique v="false" />
-                <index v="false" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
                 <documentation></documentation>
                 <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>TITLE</name>
+                <name>KNOWLEDGEMANAGEMENT_ID</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="12" />
-                <size v="255" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
@@ -16235,20 +16418,13 @@
                 <documentation></documentation>
                 <title></title>
                 <description></description>
-                <customProperties>
-                  <customBooleanProperty>
-                    <name>log</name>
-                    <global v="false" />
-                    <property v="true" />
-                  </customBooleanProperty>
-                </customProperties>
               </entityFieldDb>
               <entityFieldDb>
-                <name>CONTENT</name>
+                <name>AUTHOR</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="2005" />
-                <size v="2147483647" />
+                <columnType v="12" />
+                <size v="50" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
@@ -16256,13 +16432,6 @@
                 <documentation></documentation>
                 <title></title>
                 <description></description>
-                <customProperties>
-                  <customBooleanProperty>
-                    <name>log</name>
-                    <global v="false" />
-                    <property v="true" />
-                  </customBooleanProperty>
-                </customProperties>
               </entityFieldDb>
               <entityFieldDb>
                 <name>DATE_NEW</name>
@@ -16283,21 +16452,7 @@
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="12" />
-                <size v="63" />
-                <scale v="0" />
-                <notNull v="false" />
-                <isUnique v="false" />
-                <index v="false" />
-                <documentation></documentation>
-                <title></title>
-                <description></description>
-              </entityFieldDb>
-              <entityFieldDb>
-                <name>RESPONSIBLE_CONTACT_ID</name>
-                <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="1" />
-                <size v="36" />
+                <size v="50" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
@@ -16305,24 +16460,17 @@
                 <documentation></documentation>
                 <title></title>
                 <description></description>
-                <customProperties>
-                  <customBooleanProperty>
-                    <name>log</name>
-                    <global v="false" />
-                    <property v="true" />
-                  </customBooleanProperty>
-                </customProperties>
               </entityFieldDb>
               <entityFieldDb>
-                <name>TYPE</name>
+                <name>USER_EDIT</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="12" />
-                <size v="36" />
+                <size v="50" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
-                <index v="true" />
+                <index v="false" />
                 <documentation></documentation>
                 <title></title>
                 <description></description>
@@ -16330,9 +16478,9 @@
             </entityFields>
           </entityDb>
           <entityDb>
-            <name>KNOWLEDGEROLES</name>
+            <name>KNOWLEDGELINK</name>
             <dbName></dbName>
-            <idColumn>KNOWLEDGEROLESID</idColumn>
+            <idColumn>KNOWLEDGELINKID</idColumn>
             <idGeneratorType v="0" />
             <idGeneratorInterval v="1" />
             <documentation></documentation>
@@ -16348,7 +16496,7 @@
             </auditSyncConfig>
             <entityFields>
               <entityFieldDb>
-                <name>KNOWLEDGEROLESID</name>
+                <name>KNOWLEDGELINKID</name>
                 <dbName></dbName>
                 <primaryKey v="true" />
                 <columnType v="1" />
@@ -16361,6 +16509,20 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
               <entityFieldDb>
                 <name>KNOWLEDGEMANAGEMENT_ID</name>
                 <dbName></dbName>
@@ -16376,7 +16538,35 @@
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>ROLENAME</name>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>OBJECT_TYPE</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="12" />
@@ -16389,12 +16579,40 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ROW_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
-            <name>KNOWLEDGEGITINTERFACE</name>
+            <name>KNOWLEDGEMANAGEMENT</name>
             <dbName></dbName>
-            <idColumn>KNOWLEDGEGITINTERFACEID</idColumn>
+            <idColumn>KNOWLEDGEMANAGEMENTID</idColumn>
             <idGeneratorType v="0" />
             <idGeneratorInterval v="1" />
             <documentation></documentation>
@@ -16424,7 +16642,7 @@
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>KNOWLEDGEGITINTERFACEID</name>
+                <name>KNOWLEDGEMANAGEMENTID</name>
                 <dbName></dbName>
                 <primaryKey v="true" />
                 <columnType v="1" />
@@ -16438,21 +16656,1168 @@
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>GITCOMMIT</name>
+                <name>AUTHOR_CONTACT_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+                <customProperties>
+                  <customBooleanProperty>
+                    <name>log</name>
+                    <global v="false" />
+                    <property v="true" />
+                  </customBooleanProperty>
+                </customProperties>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>PUBLISH</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="12" />
-                <size v="200" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="63" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>CONTENTDECODED</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="2005" />
+                <size v="2147483647" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>TITLE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+                <customProperties>
+                  <customBooleanProperty>
+                    <name>log</name>
+                    <global v="false" />
+                    <property v="true" />
+                  </customBooleanProperty>
+                </customProperties>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>CONTENT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="2005" />
+                <size v="2147483647" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+                <customProperties>
+                  <customBooleanProperty>
+                    <name>log</name>
+                    <global v="false" />
+                    <property v="true" />
+                  </customBooleanProperty>
+                </customProperties>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="63" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>RESPONSIBLE_CONTACT_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+                <customProperties>
+                  <customBooleanProperty>
+                    <name>log</name>
+                    <global v="false" />
+                    <property v="true" />
+                  </customBooleanProperty>
+                </customProperties>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>TYPE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>KNOWLEDGEROLES</name>
+            <dbName></dbName>
+            <idColumn>KNOWLEDGEROLESID</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>KNOWLEDGEROLESID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>KNOWLEDGEMANAGEMENT_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ROLENAME</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="100" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>KNOWLEDGEGITINTERFACE</name>
+            <dbName></dbName>
+            <idColumn>KNOWLEDGEGITINTERFACEID</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>KNOWLEDGEGITINTERFACEID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>GITCOMMIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="200" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SYSTEMNAME</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>KNOWLEDGEMANAGEMENTTAGMODERATION</name>
+            <dbName></dbName>
+            <idColumn>KNOWLEDGEMANAGEMENTTAGMODERATIONID</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>STATUS</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>AB_ATTRIBUTE_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>KNOWLEDGEMANAGEMENTTAGMODERATIONID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>KNOWLEDGETAG</name>
+            <dbName></dbName>
+            <idColumn>KNOWLEDGETAGID</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>KNOWLEDGETAGID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>STATUS</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>TAG</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>KNOWLEDGETAGLINK</name>
+            <dbName></dbName>
+            <idColumn>KNOWLEDGETAGLINKID</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>KNOWLEDGEMANAGEMENT_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>KNOWLEDGETAGLINKID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>KNOWLEDGETAG_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>AB_KEYWORD_CATEGORY</name>
+            <dbName></dbName>
+            <idColumn>AB_KEYWORD_CATEGORYID</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>SORTINGBY</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>AB_KEYWORD_CATEGORYID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SORTINGDIRECTION</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="4" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>NAME</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="80" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>MST_TEAMLINK</name>
+            <dbName></dbName>
+            <idColumn>MST_TEAMLINKID</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>OBJECT_ROWID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>MST_TEAM_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>MST_TEAMLINKID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>OBJECT_TYPE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="63" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>MST_TEAM</name>
+            <dbName></dbName>
+            <idColumn>MST_TEAMID</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>MST_TEAMID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>IS_ARCHIVED</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="5" />
+                <size v="5" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SERVICE_URL</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>TEAMNAME</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>GENERAL_CHANNELID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="48" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>WEB_URL</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="500" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>OBSERVATION</name>
+            <dbName></dbName>
+            <idColumn>OBSERVATIONID</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <documentation></documentation>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>OBJECT_FILTER</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="2005" />
+                <size v="2147483647" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>OBJECT_TYPE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="80" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>OBSERVATION_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>NOTIFICATION_PRIO</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>OBJECT_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="63" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>OBSERVATIONID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
+                <documentation></documentation>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>TRIGGEREVENTDELETE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="5" />
+                <size v="5" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>TRIGGEREVENTINSERT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="5" />
+                <size v="5" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>TRIGGEREVENTUPDATE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="5" />
+                <size v="5" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>OBSERVER</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="63" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>OBJECT_FIELD</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="2005" />
+                <size v="2147483647" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>SALESPROJECTPHASEDEFINITION</name>
+            <dbName></dbName>
+            <idColumn>SALESPROJECTPHASEDEFINITIONID</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <documentation></documentation>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>PHASE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>CHECKLIST_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
-                <index v="false" />
+                <index v="true" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>DATE_NEW</name>
+                <name>DATE_EDIT</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="93" />
@@ -16462,39 +17827,36 @@
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>USER_NEW</name>
+                <name>DESCRIPTION</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="12" />
-                <size v="50" />
+                <size v="500" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>SYSTEMNAME</name>
+                <name>DATE_NEW</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="12" />
-                <size v="50" />
-                <scale v="0" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
                 <notNull v="false" />
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>USER_EDIT</name>
+                <name>USER_NEW</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="12" />
@@ -16504,81 +17866,43 @@
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
-            </entityFields>
-          </entityDb>
-          <entityDb>
-            <name>KNOWLEDGEMANAGEMENTTAGMODERATION</name>
-            <dbName></dbName>
-            <idColumn>KNOWLEDGEMANAGEMENTTAGMODERATIONID</idColumn>
-            <idGeneratorType v="0" />
-            <idGeneratorInterval v="1" />
-            <documentation></documentation>
-            <title></title>
-            <description></description>
-            <auditSyncConfig>
-              <name>auditSyncConfig</name>
-              <auditMode v="0" />
-              <syncActive v="false" />
-              <syncComplete v="true" />
-              <syncDirection v="1" />
-              <syncIds></syncIds>
-            </auditSyncConfig>
-            <entityFields>
               <entityFieldDb>
-                <name>STATUS</name>
+                <name>SALESPROJECTPHASEDEFINITIONID</name>
                 <dbName></dbName>
-                <primaryKey v="false" />
+                <primaryKey v="true" />
                 <columnType v="1" />
                 <size v="36" />
                 <scale v="0" />
-                <notNull v="false" />
-                <isUnique v="false" />
-                <index v="false" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>AB_ATTRIBUTE_ID</name>
+                <name>USER_EDIT</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="1" />
-                <size v="36" />
+                <columnType v="12" />
+                <size v="50" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
-                <description></description>
-              </entityFieldDb>
-              <entityFieldDb>
-                <name>KNOWLEDGEMANAGEMENTTAGMODERATIONID</name>
-                <dbName></dbName>
-                <primaryKey v="true" />
-                <columnType v="1" />
-                <size v="36" />
-                <scale v="0" />
-                <notNull v="true" />
-                <isUnique v="true" />
-                <index v="true" />
-                <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
-            <name>KNOWLEDGETAG</name>
+            <name>CHECKLISTENTRY</name>
             <dbName></dbName>
-            <idColumn>KNOWLEDGETAGID</idColumn>
+            <idColumn>CHECKLISTENTRYID</idColumn>
             <idGeneratorType v="0" />
             <idGeneratorInterval v="1" />
             <documentation></documentation>
-            <title></title>
             <description></description>
             <auditSyncConfig>
               <name>auditSyncConfig</name>
@@ -16590,7 +17914,7 @@
             </auditSyncConfig>
             <entityFields>
               <entityFieldDb>
-                <name>KNOWLEDGETAGID</name>
+                <name>CHECKLISTENTRYID</name>
                 <dbName></dbName>
                 <primaryKey v="true" />
                 <columnType v="1" />
@@ -16600,21 +17924,19 @@
                 <isUnique v="true" />
                 <index v="true" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>STATUS</name>
+                <name>CHECKLIST_ID</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="1" />
                 <size v="36" />
                 <scale v="0" />
-                <notNull v="false" />
+                <notNull v="true" />
                 <isUnique v="false" />
-                <index v="false" />
+                <index v="true" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
@@ -16628,7 +17950,19 @@
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>TITLE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="100" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
@@ -16642,11 +17976,10 @@
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>TAG</name>
+                <name>USER_NEW</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="12" />
@@ -16656,21 +17989,19 @@
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>USER_NEW</name>
+                <name>TYPE</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="12" />
-                <size v="50" />
+                <size v="10" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
@@ -16684,19 +18015,17 @@
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
-            <name>KNOWLEDGETAGLINK</name>
+            <name>CHECKLIST</name>
             <dbName></dbName>
-            <idColumn>KNOWLEDGETAGLINKID</idColumn>
+            <idColumn>CHECKLISTID</idColumn>
             <idGeneratorType v="0" />
             <idGeneratorInterval v="1" />
             <documentation></documentation>
-            <title></title>
             <description></description>
             <auditSyncConfig>
               <name>auditSyncConfig</name>
@@ -16708,35 +18037,7 @@
             </auditSyncConfig>
             <entityFields>
               <entityFieldDb>
-                <name>DATE_EDIT</name>
-                <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="93" />
-                <size v="29" />
-                <scale v="9" />
-                <notNull v="false" />
-                <isUnique v="false" />
-                <index v="false" />
-                <documentation></documentation>
-                <title></title>
-                <description></description>
-              </entityFieldDb>
-              <entityFieldDb>
-                <name>KNOWLEDGEMANAGEMENT_ID</name>
-                <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="1" />
-                <size v="36" />
-                <scale v="0" />
-                <notNull v="false" />
-                <isUnique v="false" />
-                <index v="true" />
-                <documentation></documentation>
-                <title></title>
-                <description></description>
-              </entityFieldDb>
-              <entityFieldDb>
-                <name>KNOWLEDGETAGLINKID</name>
+                <name>CHECKLISTID</name>
                 <dbName></dbName>
                 <primaryKey v="true" />
                 <columnType v="1" />
@@ -16746,11 +18047,10 @@
                 <isUnique v="true" />
                 <index v="true" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>DATE_NEW</name>
+                <name>DATE_EDIT</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="93" />
@@ -16760,21 +18060,19 @@
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>KNOWLEDGETAG_ID</name>
+                <name>DATE_NEW</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="1" />
-                <size v="36" />
-                <scale v="0" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
                 <notNull v="false" />
                 <isUnique v="false" />
-                <index v="true" />
+                <index v="false" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
@@ -16788,7 +18086,6 @@
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
@@ -16802,19 +18099,17 @@
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
-            <name>MST_TEAMLINK</name>
+            <name>CHECKLISTENTRYVALUE</name>
             <dbName></dbName>
-            <idColumn>MST_TEAMLINKID</idColumn>
+            <idColumn>CHECKLISTENTRYVALUEID</idColumn>
             <idGeneratorType v="0" />
             <idGeneratorInterval v="1" />
             <documentation></documentation>
-            <title></title>
             <description></description>
             <auditSyncConfig>
               <name>auditSyncConfig</name>
@@ -16832,77 +18127,40 @@
                 <columnType v="1" />
                 <size v="36" />
                 <scale v="0" />
-                <notNull v="true" />
+                <notNull v="false" />
                 <isUnique v="false" />
                 <index v="true" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>MST_TEAM_ID</name>
+                <name>IS_FULFILLED</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="1" />
-                <size v="36" />
+                <columnType v="5" />
+                <size v="5" />
                 <scale v="0" />
-                <notNull v="true" />
+                <notNull v="false" />
                 <isUnique v="false" />
-                <index v="true" />
-                <documentation></documentation>
-                <title></title>
-                <description></description>
-              </entityFieldDb>
-              <entityFieldDb>
-                <name>MST_TEAMLINKID</name>
-                <dbName></dbName>
-                <primaryKey v="true" />
-                <columnType v="1" />
-                <size v="36" />
-                <scale v="0" />
-                <notNull v="true" />
-                <isUnique v="true" />
-                <index v="true" />
+                <index v="false" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>OBJECT_TYPE</name>
+                <name>DATE_EDIT</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="12" />
-                <size v="63" />
-                <scale v="0" />
-                <notNull v="true" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
-            </entityFields>
-          </entityDb>
-          <entityDb>
-            <name>MST_TEAM</name>
-            <dbName></dbName>
-            <idColumn>MST_TEAMID</idColumn>
-            <idGeneratorType v="0" />
-            <idGeneratorInterval v="1" />
-            <documentation></documentation>
-            <title></title>
-            <description></description>
-            <auditSyncConfig>
-              <name>auditSyncConfig</name>
-              <auditMode v="0" />
-              <syncActive v="false" />
-              <syncComplete v="true" />
-              <syncDirection v="1" />
-              <syncIds></syncIds>
-            </auditSyncConfig>
-            <entityFields>
               <entityFieldDb>
-                <name>MST_TEAMID</name>
+                <name>CHECKLISTENTRYVALUEID</name>
                 <dbName></dbName>
                 <primaryKey v="true" />
                 <columnType v="1" />
@@ -16912,77 +18170,71 @@
                 <isUnique v="true" />
                 <index v="true" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>IS_ARCHIVED</name>
+                <name>DATE_NEW</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="5" />
-                <size v="5" />
-                <scale v="0" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
                 <notNull v="false" />
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>SERVICE_URL</name>
+                <name>USER_NEW</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="12" />
-                <size v="255" />
+                <size v="50" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>TEAMNAME</name>
+                <name>OBJECT_TYPE</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="12" />
-                <size v="255" />
+                <size v="50" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>GENERAL_CHANNELID</name>
+                <name>USER_EDIT</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="1" />
-                <size v="48" />
+                <columnType v="12" />
+                <size v="50" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>WEB_URL</name>
+                <name>CHECKLISTENTRY_ID</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="12" />
-                <size v="500" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
-                <index v="false" />
+                <index v="true" />
                 <documentation></documentation>
-                <title></title>
                 <description></description>
               </entityFieldDb>
             </entityFields>
diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/districtcontact/entityfields/district_id/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/districtcontact/entityfields/district_id/customproperties/translate4log/property.js
new file mode 100644
index 0000000000000000000000000000000000000000..ab6e2e133acbfa75f37c5dfb34ce24ccb9376997
--- /dev/null
+++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/districtcontact/entityfields/district_id/customproperties/translate4log/property.js
@@ -0,0 +1,22 @@
+import("system.translate");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+import("District_lib");
+import("system.result");
+import("Loghistory_lib");
+import("Contact_lib");
+
+var params = Translate4LogParams.load();
+
+if (params.action == 'I')
+{
+    //resolve district and adviser
+    var arrDistrictContact = DistrictUtils.getDataFromDistrictContact(params.rowId);
+    var districtName = DistrictUtils.getDistrictName(arrDistrictContact[0]);
+    var adviserName = ContactUtils.getTitleByContactId(arrDistrictContact[1]);
+    result.string(districtName + " (" + params.value + "); " + translate.text("Adviser") + ": " + adviserName);
+}
+else if (params.action == 'D')
+{
+    result.string(params.value);
+}
\ No newline at end of file
diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/districtcontact/entityfields/status/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/districtcontact/entityfields/status/customproperties/translate4log/property.js
new file mode 100644
index 0000000000000000000000000000000000000000..0001c86efec9e7efc60aaa66eb84c37974cd3d6a
--- /dev/null
+++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/districtcontact/entityfields/status/customproperties/translate4log/property.js
@@ -0,0 +1,23 @@
+import("system.translate");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+import("District_lib");
+import("system.result");
+import("Loghistory_lib");
+import("Contact_lib");
+
+var params = Translate4LogParams.load();
+
+//log status change
+if (params.action == 'U')
+{
+    //resolve keyword
+    var keyname = KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), params.value);
+
+    //resolve district and adviser
+    var arrDistrictContact = DistrictUtils.getDataFromDistrictContact(params.rowId);
+    var districtName = DistrictUtils.getDistrictName(arrDistrictContact[0]);
+    var adviserName = ContactUtils.getTitleByContactId(arrDistrictContact[1]);
+    
+    result.string(keyname + " (" + translate.text("District") + ": " + districtName + "; " + translate.text("Adviser") + ": " + adviserName + ")");
+}
\ No newline at end of file
diff --git a/aliasDefinition/IndexSearch/IndexSearch.aod b/aliasDefinition/IndexSearch/IndexSearch.aod
new file mode 100644
index 0000000000000000000000000000000000000000..303c40160f5b0ba380375fd002efdb15985aea7c
--- /dev/null
+++ b/aliasDefinition/IndexSearch/IndexSearch.aod
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<aliasDefinition xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/aliasDefinition/1.2.0">
+  <name>IndexSearch</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <datasourceType v="18" />
+</aliasDefinition>
diff --git a/aliasDefinition/_____SYSTEMALIAS/_____SYSTEMALIAS.aod b/aliasDefinition/_____SYSTEMALIAS/_____SYSTEMALIAS.aod
index 6407da1b96ade99cd89fd172be15282552aca01d..e9311949486072f70d0a634a2ee59214ae3373f1 100644
--- a/aliasDefinition/_____SYSTEMALIAS/_____SYSTEMALIAS.aod
+++ b/aliasDefinition/_____SYSTEMALIAS/_____SYSTEMALIAS.aod
@@ -2238,7 +2238,6 @@
           <entityDb>
             <name>ASYS_COLLECTOR_DATA</name>
             <dbName></dbName>
-            <idColumn>DATAID</idColumn>
             <idGeneratorType v="0" />
             <idGeneratorInterval v="1" />
             <documentation></documentation>
@@ -2256,12 +2255,12 @@
               <entityFieldDb>
                 <name>DATAID</name>
                 <dbName></dbName>
-                <primaryKey v="true" />
+                <primaryKey v="false" />
                 <columnType v="1" />
                 <size v="63" />
                 <scale v="0" />
                 <notNull v="true" />
-                <isUnique v="true" />
+                <isUnique v="false" />
                 <index v="true" />
                 <documentation></documentation>
                 <title></title>
@@ -3245,6 +3244,1602 @@
               </entityFieldDb>
             </entityFields>
           </entityDb>
+          <entityDb>
+            <name>ASYS_ICONS</name>
+            <dbName></dbName>
+            <idColumn></idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="0" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>BINDATA</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="2004" />
+                <size v="2147483647" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DESCRIPTION</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="127" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ICON_TYPE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="63" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="63" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>ASYS_MAILREPOSIT</name>
+            <dbName></dbName>
+            <idColumn></idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="0" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>FLAGGED</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>FOLDER</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>MAIL</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="2005" />
+                <size v="2147483647" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>MAILUSER</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>RECEIVEDATE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>RECENT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>RECIPIENT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="2046" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SEEN</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SENDER</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="127" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SENTDATE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SUBJECT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="1023" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>ASYS_MAILREPOSIT_HASH</name>
+            <dbName></dbName>
+            <idColumn></idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="0" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>MAILHASH</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="31" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>MAILINFO</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="12" />
+                <size v="127" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>ASYS_CALENDARSYNC</name>
+            <dbName></dbName>
+            <idColumn></idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="0" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>LASTMODIFIED</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>MASTERUID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="512" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SLAVEUID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="12" />
+                <size v="127" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SUSER</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="12" />
+                <size v="63" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>ASYS_UIDRESOLVER</name>
+            <dbName></dbName>
+            <idColumn></idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="0" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>ENTRY_TYPE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ENTRY_UID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="512" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ENTRY_USER</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>ASYS_FARM</name>
+            <dbName></dbName>
+            <idColumn></idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="0" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>ADDRESS</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>CLIENTS</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>FARMVERSION</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="12" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>LICENSE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SENCODING</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SERVERID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="12" />
+                <size v="127" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>WORKLOAD</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>ASYS_FARM_CLIENT</name>
+            <dbName></dbName>
+            <idColumn></idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="0" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>CHARACTERISTIC</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>CLIENTID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SADDRESS</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SERVERID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USERNAME</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>ASYS_AUDIT</name>
+            <dbName></dbName>
+            <idColumn></idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="0" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>ACOLUMNNAME</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="127" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ALIAS</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ATABLENAME</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="127" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ATIMESTAMP</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>AUSER</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATASETID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="1023" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATASETNEWVALUE_BLOB</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="2004" />
+                <size v="2147483647" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATASETNEWVALUE_CLOB</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="2005" />
+                <size v="2147483647" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATASETNEWVALUE_STRING</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="1023" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>LOGTIME</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>LOGTYPE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>LOGWRITERUID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="127" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SQLACTION</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="1" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>ASYS_SYNCSLAVES</name>
+            <dbName></dbName>
+            <idColumn></idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="0" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>ACTIVE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DESCRIPTION</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DEVICEID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="40" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>INTERVALL</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>LASTSYNC</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SLAVEUID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="12" />
+                <size v="127" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>ASYS_XMPP_OFFLINESTANZA</name>
+            <dbName></dbName>
+            <idColumn></idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="0" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>ATIMESTAMP</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>JID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="64" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>STANZA</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="2005" />
+                <size v="2147483647" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>ASYS_XMPP_HISTORY</name>
+            <dbName></dbName>
+            <idColumn></idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="0" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>ATIMESTAMP</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>CHATMARKER</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="16" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>JID_FROM</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="64" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>JID_TO</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="64" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>MSGMARKER</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>MSGTYPE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="16" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>STANZA</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="2005" />
+                <size v="2147483647" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>ASYS_VERSIONHISTORY</name>
+            <dbName></dbName>
+            <idColumn></idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="0" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>OPERATION_DESCRIPTION</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>OPERATION_TYPE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>TABLE_NAME</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>VERSION</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>ASYS_TEST</name>
+            <dbName></dbName>
+            <idColumn>ID</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="63" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="63" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>TEST_VARCHAR_1</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>ASYS_USER</name>
+            <dbName></dbName>
+            <idColumn>ID</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DESCRIPTION</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>KIND</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>XMLDATA</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="2004" />
+                <size v="2147483647" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>TITLE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="63" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ICON</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="2004" />
+                <size v="2147483647" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="63" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="63" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>NAME</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="63" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
         </entities>
       </entityGroup>
     </aliasDefDb>
diff --git a/aliasDefinition/flowableEngine/flowableEngine.aod b/aliasDefinition/flowableEngine/flowableEngine.aod
new file mode 100644
index 0000000000000000000000000000000000000000..3f70b6e5426e5a6166c834f5b5aaa90b0ba2360a
--- /dev/null
+++ b/aliasDefinition/flowableEngine/flowableEngine.aod
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<aliasDefinition xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/aliasDefinition/1.2.0">
+  <name>flowableEngine</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <datasourceType v="19" />
+</aliasDefinition>
diff --git a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod
index adb51ef4372f7731293b2be3e1ca1360a9bd83b5..56f31da9f97db53dd72583e0cb8631a0a3527050 100644
--- a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod
+++ b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod
@@ -285,6 +285,10 @@
                 <name>Attribute</name>
                 <kind v="10077" />
               </entityNode>
+              <entityNode>
+                <name>KeywordCategory</name>
+                <kind v="10077" />
+              </entityNode>
               <entityNode>
                 <name>KeywordEntry</name>
                 <kind v="10077" />
@@ -336,12 +340,16 @@
                 <name>District</name>
                 <kind v="10077" />
               </entityNode>
+              <entityNode>
+                <name>SalesprojectPhaseDefinition</name>
+                <kind v="10077" />
+              </entityNode>
             </childNodes>
           </entityNode>
         </childNodes>
       </entityNode>
       <entityNode>
-        <name>User Administration</name>
+        <name>Useradministration</name>
         <kind v="123" />
         <title>User Administration</title>
         <icon>VAADIN:UNLINK</icon>
diff --git a/entity/360Degree_entity/360Degree_entity.aod b/entity/360Degree_entity/360Degree_entity.aod
index 35b812776eb853d81a336e2610b2af0c88c64da3..cf7b453f0372f7c208eeff54b74d378215ab1cc8 100644
--- a/entity/360Degree_entity/360Degree_entity.aod
+++ b/entity/360Degree_entity/360Degree_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>360Degree_entity</name>
+  <title>360 Degree</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/360Degree_entity/documentation.adoc</documentation>
-  <title>360 Degree</title>
   <siblings>
     <element>Offer_entity</element>
     <element>Salesproject_entity</element>
diff --git a/entity/360Degree_entity/entityfields/newmodule/children/newsalesproject/stateProcess.js b/entity/360Degree_entity/entityfields/newmodule/children/newsalesproject/stateProcess.js
index 6a18dc9adfd19a69b749c88e9282cfb186e35d5c..841831a45f3264bb086643f72948e5fad4b82952 100644
--- a/entity/360Degree_entity/entityfields/newmodule/children/newsalesproject/stateProcess.js
+++ b/entity/360Degree_entity/entityfields/newmodule/children/newsalesproject/stateProcess.js
@@ -12,6 +12,10 @@ if (contextList)
         if(context == "Salesproject")
             found = true;        
     }
+    
+    if(vars.get("$param.BaseContextId_param") == "Person")
+        found = false
+    
     if(found)
         result.string(neon.COMPONENTSTATE_AUTO);
     else
diff --git a/entity/360Degree_entity/entityfields/personobjects/children/objecttype_param/valueProcess.js b/entity/360Degree_entity/entityfields/personobjects/children/objecttype_param/valueProcess.js
index 3d9c6d75f1d5026e6e31e985752e51b6a88a9262..f5ae6a13a10caa37773ea80dd65a7cb188a6523b 100644
--- a/entity/360Degree_entity/entityfields/personobjects/children/objecttype_param/valueProcess.js
+++ b/entity/360Degree_entity/entityfields/personobjects/children/objecttype_param/valueProcess.js
@@ -1,7 +1,13 @@
 import("system.vars");
 import("system.result");
 
-var res = { 
+var res = {
+    "Salesproject": {
+        "subContext":"Member",
+        "childField":"OBJECT_ROWID",
+        "parentField":"SALESPROJECTID",
+        "contactIdField":"CONTACT_ID"
+    },
     "Offer": {}, 
     "Order": {
         "setGroupBy":"ORDERTYPE",
diff --git a/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js b/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js
index f6417bb26a778fd4df642ffb42f2f127742c3905..a8965c43523db6c703fca77193786658d31b5098 100644
--- a/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js
@@ -34,7 +34,7 @@ function _get360Data(pContactId, pContextList)
     var filter = vars.get("$sys.filter");
     for(var context in pContextList) 
     {
-        var group = context;
+        var group = context
         if(pContextList[context].hasOwnProperty("setGroupBy") && pContextList[context].hasOwnProperty("groupByKeyword"))
             var groupKeyword = Utils.objectFromMap(new Map(KeywordUtils.getEntryNamesAndIdsByContainer(pContextList[context]["groupByKeyword"])));
 
diff --git a/entity/ActivityLink_entity/ActivityLink_entity.aod b/entity/ActivityLink_entity/ActivityLink_entity.aod
index e5518fff2fac73d9b45fcd177cd580a8edf2a289..d9d7007ec9227ddae16877a203d93ce5281bb21f 100644
--- a/entity/ActivityLink_entity/ActivityLink_entity.aod
+++ b/entity/ActivityLink_entity/ActivityLink_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>ActivityLink_entity</name>
+  <title>Connection</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/ActivityLink_entity/documentation.adoc</documentation>
-  <title>Connection</title>
   <titlePlural>Connections</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -106,17 +106,11 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/ActivityLink_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>66f9eb3e-6f56-4731-a868-ffc9ffcce340</name>
-          <tableName>ACTIVITYLINK</tableName>
-          <primaryKey>ACTIVITYLINKID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <onDBInsert>%aditoprj%/entity/ActivityLink_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
+      <onDBUpdate>%aditoprj%/entity/ActivityLink_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
+      <onDBDelete>%aditoprj%/entity/ActivityLink_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>ACTIVITY_ID.value</name>
@@ -151,6 +145,15 @@
           <recordfield>ACTIVITYLINK.DATE_EDIT</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>66f9eb3e-6f56-4731-a868-ffc9ffcce340</name>
+          <tableName>ACTIVITYLINK</tableName>
+          <primaryKey>ACTIVITYLINKID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/ActivityLink_entity/recordcontainers/db/onDBDelete.js b/entity/ActivityLink_entity/recordcontainers/db/onDBDelete.js
new file mode 100644
index 0000000000000000000000000000000000000000..6ff91a5eb319120b527776868367d3cdb0f445f1
--- /dev/null
+++ b/entity/ActivityLink_entity/recordcontainers/db/onDBDelete.js
@@ -0,0 +1,3 @@
+import("Workflow_lib");
+
+WorkflowSignalSender.deleted();
\ No newline at end of file
diff --git a/entity/ActivityLink_entity/recordcontainers/db/onDBInsert.js b/entity/ActivityLink_entity/recordcontainers/db/onDBInsert.js
new file mode 100644
index 0000000000000000000000000000000000000000..54f0349c9f1ddaab6b25f85f758d52928df41847
--- /dev/null
+++ b/entity/ActivityLink_entity/recordcontainers/db/onDBInsert.js
@@ -0,0 +1,3 @@
+import("Workflow_lib");
+
+WorkflowSignalSender.inserted();
\ No newline at end of file
diff --git a/entity/ActivityLink_entity/recordcontainers/db/onDBUpdate.js b/entity/ActivityLink_entity/recordcontainers/db/onDBUpdate.js
new file mode 100644
index 0000000000000000000000000000000000000000..2e53f3cad9a9edf21cc5bbc6fdecc00c5001dfee
--- /dev/null
+++ b/entity/ActivityLink_entity/recordcontainers/db/onDBUpdate.js
@@ -0,0 +1,3 @@
+import("Workflow_lib");
+
+WorkflowSignalSender.updated();
\ No newline at end of file
diff --git a/entity/Activity_entity/Activity_entity.aod b/entity/Activity_entity/Activity_entity.aod
index ddb1971da5fe2dd72dba504187bbf76b890f6bf9..968e15b45cc01648663f42fda0d233b1dddad81d 100644
--- a/entity/Activity_entity/Activity_entity.aod
+++ b/entity/Activity_entity/Activity_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Activity_entity</name>
+  <title>Activity</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Activity_entity/documentation.adoc</documentation>
-  <title>Activity</title>
   <grantDeleteProcess>%aditoprj%/entity/Activity_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/Activity_entity/contentTitleProcess.js</contentTitleProcess>
   <afterUiInit>%aditoprj%/entity/Activity_entity/afterUiInit.js</afterUiInit>
@@ -103,10 +103,10 @@
     </entityField>
     <entityParameter>
       <name>OnlyInnate_param</name>
-      <title>Show only own</title>
       <expose v="true" />
       <mandatory v="false" />
       <documentation>%aditoprj%/entity/Activity_entity/entityfields/onlyinnate_param/documentation.adoc</documentation>
+      <title>Show only own</title>
     </entityParameter>
     <entityParameter>
       <name>ObjectId_param</name>
@@ -117,6 +117,11 @@
     <entityConsumer>
       <name>Documents</name>
       <selectionMode>MULTI</selectionMode>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>Documents</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>AssignmentRowId_param</name>
@@ -127,15 +132,15 @@
           <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>Documents</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>MainDocuments</name>
       <stateProcess>%aditoprj%/entity/Activity_entity/entityfields/maindocuments/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>MainDocuments</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>AssignmentTable_param</name>
@@ -146,11 +151,6 @@
           <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/maindocuments/children/assignmentrowid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>MainDocuments</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>ENTRYMONTH</name>
@@ -166,20 +166,25 @@
     </entityField>
     <entityConsumer>
       <name>Links</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ActivityLink_entity</entityName>
+        <fieldName>Links</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ActivityId_param</name>
           <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/links/children/activityid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>ActivityLink_entity</entityName>
-        <fieldName>Links</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>KeywordDirections</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -187,47 +192,11 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>LinkedObjects</name>
       <documentation>%aditoprj%/entity/Activity_entity/entityfields/linkedobjects/documentation.adoc</documentation>
       <recordContainer>db</recordContainer>
-      <children>
-        <entityParameter>
-          <name>OnlyInnate_param</name>
-          <expose v="false" />
-          <documentation>%aditoprj%/entity/Activity_entity/entityfields/linkedobjects/children/onlyinnate_param/documentation.adoc</documentation>
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectId_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>RowId_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>PresetLinks_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ParentContext_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>ParentId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>PresetDocuments_param</name>
-          <expose v="false" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>8ececf30-a3bc-4cd2-ad04-fb9f3cb9332d</name>
@@ -308,6 +277,37 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>OnlyInnate_param</name>
+          <expose v="false" />
+          <documentation>%aditoprj%/entity/Activity_entity/entityfields/linkedobjects/children/onlyinnate_param/documentation.adoc</documentation>
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectId_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>RowId_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>PresetLinks_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ParentContext_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ParentId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>PresetDocuments_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityField>
       <name>RESPONSIBLE</name>
@@ -321,6 +321,11 @@
     </entityField>
     <entityConsumer>
       <name>ModuleTrees</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ModuleTree_entity</entityName>
+        <fieldName>TreeProviders</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContextName_param</name>
@@ -333,27 +338,7 @@
           <mandatory v="true" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>ModuleTree_entity</entityName>
-        <fieldName>TreeProviders</fieldName>
-      </dependency>
     </entityConsumer>
-    <entityActionField>
-      <name>newActivity</name>
-      <title>New activity</title>
-      <onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:HOURGLASS_END</iconId>
-      <tooltip>New activity</tooltip>
-      <tooltipProcess>%aditoprj%/entity/Activity_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>newTask</name>
-      <title>New task</title>
-      <onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
-      <actionOrder v="1" />
-      <iconId>VAADIN:TASKS</iconId>
-    </entityActionField>
     <entityParameter>
       <name>ParentId_param</name>
       <expose v="true" />
@@ -378,6 +363,11 @@
     </entityField>
     <entityConsumer>
       <name>KeywordCategories</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -385,11 +375,6 @@
           <expose v="true" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>ENTRYDAY</name>
@@ -399,6 +384,11 @@
     <entityConsumer>
       <name>Attributes</name>
       <onValidation>%aditoprj%/entity/Activity_entity/entityfields/attributes/onValidation.js</onValidation>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>AttributeRelations</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
@@ -409,19 +399,7 @@
           <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>AttributeRelations</fieldName>
-      </dependency>
     </entityConsumer>
-    <entityActionField>
-      <name>newOffer</name>
-      <title>New offer</title>
-      <onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/newoffer/onActionProcess.js</onActionProcess>
-      <actionOrder v="0" />
-      <iconId>VAADIN:CART</iconId>
-    </entityActionField>
     <entityConsumer>
       <name>Employees</name>
       <dependency>
@@ -438,6 +416,11 @@
     </entityParameter>
     <entityConsumer>
       <name>AttributeTree</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>TreeProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
@@ -448,11 +431,6 @@
           <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>TreeProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>USER_NEW</name>
@@ -489,19 +467,6 @@
         <fieldName>LinkedAppointments</fieldName>
       </dependency>
     </entityConsumer>
-    <entityActionField>
-      <name>newSupportticket</name>
-      <title>New Support ticket</title>
-      <onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/newsupportticket/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CHAT</iconId>
-    </entityActionField>
-    <entityActionField>
-      <name>openAdminView</name>
-      <title>Open admin view</title>
-      <onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CURLY_BRACKETS</iconId>
-      <stateProcess>%aditoprj%/entity/Activity_entity/entityfields/openadminview/stateProcess.js</stateProcess>
-    </entityActionField>
     <entityParameter>
       <name>PresetDocuments_param</name>
       <expose v="true" />
@@ -520,6 +485,11 @@
     </entityParameter>
     <entityConsumer>
       <name>ActivityAtrributes</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Attribute_entity</entityName>
+        <fieldName>ThemeProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ThemeObjectRowId_param</name>
@@ -530,14 +500,14 @@
           <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/activityatrributes/children/objecttype_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Attribute_entity</entityName>
-        <fieldName>ThemeProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>AttributeTreeIsTheme</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>TreeProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectType_param</name>
@@ -552,11 +522,6 @@
           <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/attributetreeistheme/children/gettheme_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>TreeProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>ENTRYYEAR</name>
@@ -577,31 +542,18 @@
     </entityParameter>
     <entityConsumer>
       <name>LogHistories</name>
-      <children>
-        <entityParameter>
-          <name>tablenames_param</name>
-          <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
       <dependency>
         <name>dependency</name>
         <entityName>LogHistory_entity</entityName>
         <fieldName>LogHistoryProvider</fieldName>
       </dependency>
-    </entityConsumer>
-    <entityActionGroup>
-      <name>MSTeamsActions</name>
-      <title>MS Teams</title>
-      <state>EDITABLE</state>
-      <stateProcess>%aditoprj%/entity/Activity_entity/entityfields/msteamsactions/stateProcess.js</stateProcess>
       <children>
-        <entityActionField>
-          <name>importFromTeams</name>
-          <title>Import from Teams</title>
-          <onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/msteamsactions/children/importfromteams/onActionProcess.js</onActionProcess>
-        </entityActionField>
+        <entityParameter>
+          <name>tablenames_param</name>
+          <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js</valueProcess>
+        </entityParameter>
       </children>
-    </entityActionGroup>
+    </entityConsumer>
     <entityParameter>
       <name>Category_param</name>
       <expose v="true" />
@@ -620,7 +572,7 @@
     </entityParameter>
     <entityField>
       <name>countLinks</name>
-      <title> number of connections</title>
+      <title>number of connections</title>
       <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/countlinks/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
@@ -703,11 +655,85 @@
         </entityParameter>
       </children>
     </entityProvider>
+    <entityField>
+      <name>infoTable</name>
+      <title>Description</title>
+      <contentType>LONG_TEXT</contentType>
+      <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/infotable/valueProcess.js</valueProcess>
+    </entityField>
+    <entityActionGroup>
+      <name>MSTeamsActions</name>
+      <title>MS Teams</title>
+      <state>EDITABLE</state>
+      <stateProcess>%aditoprj%/entity/Activity_entity/entityfields/msteamsactions/stateProcess.js</stateProcess>
+      <children>
+        <entityActionField>
+          <name>importFromTeams</name>
+          <title>Import from Teams</title>
+          <onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/msteamsactions/children/importfromteams/onActionProcess.js</onActionProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
+    <entityActionField>
+      <name>newActivity</name>
+      <title>New activity</title>
+      <onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:HOURGLASS_END</iconId>
+      <tooltip>New activity</tooltip>
+      <tooltipProcess>%aditoprj%/entity/Activity_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>newTask</name>
+      <title>New task</title>
+      <onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
+      <actionOrder v="1" />
+      <iconId>VAADIN:TASKS</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>newOffer</name>
+      <title>New offer</title>
+      <onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/newoffer/onActionProcess.js</onActionProcess>
+      <actionOrder v="0" />
+      <iconId>VAADIN:CART</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>newSupportticket</name>
+      <title>New Support ticket</title>
+      <onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/newsupportticket/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CHAT</iconId>
+    </entityActionField>
+    <entityActionGroup>
+      <name>filterActions</name>
+      <children>
+        <entityActionField>
+          <name>cancelObservation</name>
+          <onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/filteractions/children/cancelobservation/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:EYE_SLASH</iconId>
+          <stateProcess>%aditoprj%/entity/Activity_entity/entityfields/filteractions/children/cancelobservation/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Activity_entity/entityfields/filteractions/children/cancelobservation/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>observe</name>
+          <title>Observe</title>
+          <onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/filteractions/children/observe/onActionProcess.js</onActionProcess>
+          <isObjectAction v="true" />
+          <iconId>VAADIN:EYE</iconId>
+          <stateProcess>%aditoprj%/entity/Activity_entity/entityfields/filteractions/children/observe/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Activity_entity/entityfields/filteractions/children/observe/titleProcess.js</titleProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
+    <entityActionField>
+      <name>openAdminView</name>
+      <title>Open admin view</title>
+      <onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CURLY_BRACKETS</iconId>
+      <stateProcess>%aditoprj%/entity/Activity_entity/entityfields/openadminview/stateProcess.js</stateProcess>
+    </entityActionField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <maximumDbRows v="10000" />
       <fromClauseProcess>%aditoprj%/entity/Activity_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/Activity_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
@@ -715,15 +741,7 @@
       <onDBInsert>%aditoprj%/entity/Activity_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/Activity_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/Activity_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>4d4e82f5-fd0d-48e0-805a-c713d73dfae0</name>
-          <tableName>ACTIVITY</tableName>
-          <primaryKey>ACTIVITYID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>ACTIVITYID.value</name>
@@ -826,6 +844,15 @@
           <isFilterable v="true" />
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>4d4e82f5-fd0d-48e0-805a-c713d73dfae0</name>
+          <tableName>ACTIVITY</tableName>
+          <primaryKey>ACTIVITYID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
       <filterExtensions>
         <filterExtensionSet>
           <name>Attribute_filter</name>
diff --git a/entity/Activity_entity/entityfields/filteractions/children/cancelobservation/onActionProcess.js b/entity/Activity_entity/entityfields/filteractions/children/cancelobservation/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..35102b677cbb52d1d4a9723a42cceaef3fd5ea03
--- /dev/null
+++ b/entity/Activity_entity/entityfields/filteractions/children/cancelobservation/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.cancelAction();
\ No newline at end of file
diff --git a/entity/Activity_entity/entityfields/filteractions/children/cancelobservation/stateProcess.js b/entity/Activity_entity/entityfields/filteractions/children/cancelobservation/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a0350f5edebe397b96a84766e7cdb8d99f77ee5
--- /dev/null
+++ b/entity/Activity_entity/entityfields/filteractions/children/cancelobservation/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Activity_entity/entityfields/filteractions/children/cancelobservation/titleProcess.js b/entity/Activity_entity/entityfields/filteractions/children/cancelobservation/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..87553a373a055879a524774695e4c18bcab617e9
--- /dev/null
+++ b/entity/Activity_entity/entityfields/filteractions/children/cancelobservation/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("Observation_lib");
+
+result.string(Observation.cancelActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Activity_entity/entityfields/filteractions/children/observe/onActionProcess.js b/entity/Activity_entity/entityfields/filteractions/children/observe/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..66cf7bc2991c142ee0753fec88e151d3dcf71141
--- /dev/null
+++ b/entity/Activity_entity/entityfields/filteractions/children/observe/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.insertAction();
\ No newline at end of file
diff --git a/entity/Activity_entity/entityfields/filteractions/children/observe/stateProcess.js b/entity/Activity_entity/entityfields/filteractions/children/observe/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..461276ea5e1e98e967047207ac6d654225a1b1c6
--- /dev/null
+++ b/entity/Activity_entity/entityfields/filteractions/children/observe/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (!Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Activity_entity/entityfields/filteractions/children/observe/titleProcess.js b/entity/Activity_entity/entityfields/filteractions/children/observe/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..abdfbd3d7c4aff7beba9ff22cbb39abc8d195a30
--- /dev/null
+++ b/entity/Activity_entity/entityfields/filteractions/children/observe/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Observation_lib");
+import("system.vars");
+
+result.string(Observation.observeActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Activity_entity/entityfields/infotable/valueProcess.js b/entity/Activity_entity/entityfields/infotable/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..54f280282884c70778f950ac3da83d0bb3a0e43d
--- /dev/null
+++ b/entity/Activity_entity/entityfields/infotable/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("system.text");
+
+result.string(text.html2text(vars.get("$field.INFO")));
\ No newline at end of file
diff --git a/entity/Activity_entity/entityfields/openadminview/onActionProcess.js b/entity/Activity_entity/entityfields/openadminview/onActionProcess.js
index 2421bcf840468a2ac89ea751cec95d99dea8c1a9..0723fb5772c2503dc64fbca951dc124fe6c0769a 100644
--- a/entity/Activity_entity/entityfields/openadminview/onActionProcess.js
+++ b/entity/Activity_entity/entityfields/openadminview/onActionProcess.js
@@ -4,8 +4,8 @@ import("Context_lib");
 AdminViewUtils.open("ACTIVITYID", [
     ["PARENT_ID", vars.get("$field.PARENT_ID")],
     ["PARENT_CONTEXT", vars.get("$field.PARENT_CONTEXT")],
-    ["DATE_NEW", vars.get("$field.DATE_NEW")],
-    ["DATE_EDIT", vars.get("$field.DATE_EDIT")],
+    ["DATE_NEW", vars.get("$field.DATE_NEW"), "DATE"],
+    ["DATE_EDIT", vars.get("$field.DATE_EDIT"), "DATE"],
     ["USER_NEW", vars.get("$field.USER_NEW")],
     ["USER_EDIT", vars.get("$field.USER_EDIT")]
 ]);
\ No newline at end of file
diff --git a/entity/Activity_entity/recordcontainers/db/onDBInsert.js b/entity/Activity_entity/recordcontainers/db/onDBInsert.js
index c50343f5ee151ae93ea0838053e69c138540a21b..03ba2693c5c83c04813081360c6380aa0d248181 100644
--- a/entity/Activity_entity/recordcontainers/db/onDBInsert.js
+++ b/entity/Activity_entity/recordcontainers/db/onDBInsert.js
@@ -28,8 +28,12 @@ if(vars.exists("$param.VisitPlanEntryId_param") && vars.get("$param.VisitPlanEnt
 {    
     var values = [$KeywordRegistry.visitPlanEntryStatus$Visitreportcreated()];
     var columns = ["STATUS"];
-    var update = newWhere("VISITPLANENTRY.VISITPLANENTRYID", vars.get("$param.VisitPlanEntryId_param"))
+    var updateEntry = newWhere("VISITPLANENTRY.VISITPLANENTRYID", vars.get("$param.VisitPlanEntryId_param"))
                             .updateData(true, "VISITPLANENTRY", columns, null, values);
+                            
+    var recommendationId = newSelect("VISITPLANENTRY.VISITRECOMMENDATION_ID").from("VISITPLANENTRY").where("VISITPLANENTRY.VISITPLANENTRYID", vars.get("$param.VisitPlanEntryId_param"))
+    
+    newWhere("VISITRECOMMENDATION.VISITRECOMMENDATIONID", recommendationId).deleteData(true, "VISITRECOMMENDATION");
 }
 
 if (vars.exists("$param.InsertLinks_param") && vars.get("$param.InsertLinks_param"))
diff --git a/entity/AddressType_entity/AddressType_entity.aod b/entity/AddressType_entity/AddressType_entity.aod
index 44fe6f291552d9072dd56043974aaaf7e422024e..ed17a9345db928ee2a78d54a2ff245c449469b09 100644
--- a/entity/AddressType_entity/AddressType_entity.aod
+++ b/entity/AddressType_entity/AddressType_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>AddressType_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/AddressType_entity/documentation.adoc</documentation>
@@ -40,8 +40,8 @@
     </entityProvider>
     <entityParameter>
       <name>UsageFilter_param</name>
-      <title></title>
       <expose v="true" />
+      <title></title>
       <description>PARAMETER</description>
     </entityParameter>
     <entityProvider>
@@ -52,17 +52,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/AddressType_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>a4614347-7edb-4101-9e79-40971acfd79e</name>
-          <tableName>AB_KEYWORD_ENTRY</tableName>
-          <primaryKey>AB_KEYWORD_ENTRYID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>AB_KEYWORD_ENTRYID.value</name>
@@ -77,6 +68,15 @@
           <recordfield>AB_KEYWORD_ENTRY.TITLE</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>a4614347-7edb-4101-9e79-40971acfd79e</name>
+          <tableName>AB_KEYWORD_ENTRY</tableName>
+          <primaryKey>AB_KEYWORD_ENTRYID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/AddressType_entity/recordcontainers/db/conditionProcess.js b/entity/AddressType_entity/recordcontainers/db/conditionProcess.js
index 6e937ecf4c22f7a5bb99a4320ddb55e7a32590f0..691754513ccf84a63b97421354597a140f80d079 100644
--- a/entity/AddressType_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/AddressType_entity/recordcontainers/db/conditionProcess.js
@@ -5,7 +5,7 @@ import("KeywordRegistry_basic");
 import("Sql_lib");
 import("Keyword_lib");
 
-var cond = newWhere("AB_KEYWORD_ENTRY.CONTAINER", $KeywordRegistry.addressType());
+var cond = newWhere("AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID", KeywordUtils.getCategoryIdByName($KeywordRegistry.addressType()));
 
 
 var usageFilter = vars.get("$param.UsageFilter_param");
@@ -16,6 +16,7 @@ if (usageFilter)
     cond.and("AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID", 
                 keywordAttribute.getSqlBuilderSelect().and(["AB_KEYWORD_ATTRIBUTERELATION", keywordAttribute.dbField], "1"),
             SqlBuilder.IN())
+        .and("AB_KEYWORD_ENTRY.ISACTIVE", "1");
 }
 
 result.string(cond.toString());
\ No newline at end of file
diff --git a/entity/AddressValidation_entity/AddressValidation_entity.aod b/entity/AddressValidation_entity/AddressValidation_entity.aod
index 4f1ed59385145f4ad623b3590763ae1ff9ad8a25..7a1a4919353fdbb0d05b7e6770155d47ebd991db 100644
--- a/entity/AddressValidation_entity/AddressValidation_entity.aod
+++ b/entity/AddressValidation_entity/AddressValidation_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>AddressValidation_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/AddressValidation_entity/documentation.adoc</documentation>
@@ -194,9 +194,6 @@
         <jDitoRecordFieldMapping>
           <name>DISTRICT.value</name>
         </jDitoRecordFieldMapping>
-        <jDitoRecordFieldMapping>
-          <name>REGION.value</name>
-        </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
           <name>STATE.value</name>
         </jDitoRecordFieldMapping>
diff --git a/entity/AddressValidation_entity/recordcontainers/jdito/contentProcess.js b/entity/AddressValidation_entity/recordcontainers/jdito/contentProcess.js
index e92fed1fd8c707472ada73dd1673279aeb618992..506f8a365a9e962f97b5e7f04490319cc8d883ba 100644
--- a/entity/AddressValidation_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/AddressValidation_entity/recordcontainers/jdito/contentProcess.js
@@ -49,7 +49,6 @@ else
             row.cityExt,
             row.country,
             row.district,
-            row.region,
             row.state,
             row.road,
             row.buildingNo,
diff --git a/entity/Address_entity/Address_entity.aod b/entity/Address_entity/Address_entity.aod
index c6e2d95af9f9ed239aa78778b427aa164d21695c..6a673e9aac4d858ba63d07b76b4105d4cb90a7e6 100644
--- a/entity/Address_entity/Address_entity.aod
+++ b/entity/Address_entity/Address_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Address_entity</name>
+  <title>Address</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Address_entity/documentation.adoc</documentation>
-  <title>Address</title>
   <contentTitleProcess>%aditoprj%/entity/Address_entity/contentTitleProcess.js</contentTitleProcess>
   <afterOperatingState>%aditoprj%/entity/Address_entity/afterOperatingState.js</afterOperatingState>
   <titlePlural>Addresses</titlePlural>
@@ -23,6 +23,7 @@
     <entityField>
       <name>ADDRESSADDITION</name>
       <title>Address addition</title>
+      <stateProcess>%aditoprj%/entity/Address_entity/entityfields/addressaddition/stateProcess.js</stateProcess>
     </entityField>
     <entityField>
       <name>ADDRESSID</name>
@@ -31,6 +32,7 @@
     <entityField>
       <name>ADDRIDENTIFIER</name>
       <title>{$ADDRESS_IDENTIFIER}</title>
+      <stateProcess>%aditoprj%/entity/Address_entity/entityfields/addridentifier/stateProcess.js</stateProcess>
     </entityField>
     <entityField>
       <name>ADDR_TYPE</name>
@@ -43,6 +45,7 @@
     <entityField>
       <name>BUILDINGNO</name>
       <title>House number</title>
+      <stateProcess>%aditoprj%/entity/Address_entity/entityfields/buildingno/stateProcess.js</stateProcess>
     </entityField>
     <entityField>
       <name>CITY</name>
@@ -57,6 +60,7 @@
       <title>Country</title>
       <consumer>Countries</consumer>
       <mandatory v="true" />
+      <stateProcess>%aditoprj%/entity/Address_entity/entityfields/country/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/Address_entity/entityfields/country/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/Address_entity/entityfields/country/displayValueProcess.js</displayValueProcess>
     </entityField>
@@ -79,6 +83,7 @@
       <name>STATE</name>
       <title>${ADDRESS_STATE}</title>
       <mandatoryProcess>%aditoprj%/entity/Address_entity/entityfields/state/mandatoryProcess.js</mandatoryProcess>
+      <stateProcess>%aditoprj%/entity/Address_entity/entityfields/state/stateProcess.js</stateProcess>
     </entityField>
     <entityField>
       <name>ZIP</name>
@@ -90,6 +95,14 @@
     <entityProvider>
       <name>OrganisationAddresses</name>
       <documentation>%aditoprj%/entity/Address_entity/entityfields/organisationaddresses/documentation.adoc</documentation>
+      <dependencies>
+        <entityDependency>
+          <name>b484b43c-16f6-4875-9787-f0813dd200cb</name>
+          <entityName>Organisation_entity</entityName>
+          <fieldName>Addresses</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
       <children>
         <entityParameter>
           <name>ContactType_param</name>
@@ -110,14 +123,6 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependencies>
-        <entityDependency>
-          <name>b484b43c-16f6-4875-9787-f0813dd200cb</name>
-          <entityName>Organisation_entity</entityName>
-          <fieldName>Addresses</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
     </entityProvider>
     <entityParameter>
       <name>ContactId_param</name>
@@ -128,6 +133,20 @@
     <entityProvider>
       <name>ContactAddresses</name>
       <documentation>%aditoprj%/entity/Address_entity/entityfields/contactaddresses/documentation.adoc</documentation>
+      <dependencies>
+        <entityDependency>
+          <name>efdb2f19-ab41-4f49-941a-843610e2b31b</name>
+          <entityName>Person_entity</entityName>
+          <fieldName>PersAddresses</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>aecd30a8-b80e-42c5-be09-3042b75a3fa2</name>
+          <entityName>Contact_entity</entityName>
+          <fieldName>ContactAddresses</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
       <children>
         <entityParameter>
           <name>ContactType_param</name>
@@ -148,20 +167,6 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependencies>
-        <entityDependency>
-          <name>efdb2f19-ab41-4f49-941a-843610e2b31b</name>
-          <entityName>Person_entity</entityName>
-          <fieldName>PersAddresses</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>aecd30a8-b80e-42c5-be09-3042b75a3fa2</name>
-          <entityName>Contact_entity</entityName>
-          <fieldName>ContactAddresses</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
     </entityProvider>
     <entityProvider>
       <name>#PROVIDER</name>
@@ -178,6 +183,14 @@
       <name>OrganisationAddressesByContact</name>
       <documentation>%aditoprj%/entity/Address_entity/entityfields/organisationaddressesbycontact/documentation.adoc</documentation>
       <titlePlural>Company Addresses</titlePlural>
+      <dependencies>
+        <entityDependency>
+          <name>388f6ad3-b817-4dc0-a5d5-a41eec485357</name>
+          <entityName>Person_entity</entityName>
+          <fieldName>OrgAddresses</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
       <children>
         <entityParameter>
           <name>ContactType_param</name>
@@ -190,14 +203,6 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependencies>
-        <entityDependency>
-          <name>388f6ad3-b817-4dc0-a5d5-a41eec485357</name>
-          <entityName>Person_entity</entityName>
-          <fieldName>OrgAddresses</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
     </entityProvider>
     <entityField>
       <name>IS_STANDARD</name>
@@ -223,27 +228,6 @@
     <entityProvider>
       <name>OrganisationAndContactAddresses</name>
       <documentation>%aditoprj%/entity/Address_entity/entityfields/organisationandcontactaddresses/documentation.adoc</documentation>
-      <children>
-        <entityParameter>
-          <name>DefaultAddressId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>ContactType_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OrganisationId_param</name>
-          <title></title>
-          <valueProcess>%aditoprj%/entity/Address_entity/entityfields/organisationandcontactaddresses/children/organisationid_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <documentation>%aditoprj%/entity/Address_entity/entityfields/organisationandcontactaddresses/children/organisationid_param/documentation.adoc</documentation>
-        </entityParameter>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <expose v="true" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>4d7e3b3a-abba-4429-9f1e-18e11788c0f2</name>
@@ -264,6 +248,27 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>DefaultAddressId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ContactType_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OrganisationId_param</name>
+          <valueProcess>%aditoprj%/entity/Address_entity/entityfields/organisationandcontactaddresses/children/organisationid_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <documentation>%aditoprj%/entity/Address_entity/entityfields/organisationandcontactaddresses/children/organisationid_param/documentation.adoc</documentation>
+          <title></title>
+        </entityParameter>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="true" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityParameter>
       <name>OrganisationId_param</name>
@@ -272,17 +277,17 @@
     </entityParameter>
     <entityConsumer>
       <name>KeywordAddressTypes</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AddressType_entity</entityName>
+        <fieldName>ByCategory</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>UsageFilter_param</name>
           <valueProcess>%aditoprj%/entity/Address_entity/entityfields/keywordaddresstypes/children/usagefilter_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AddressType_entity</entityName>
-        <fieldName>ByCategory</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>USER_NEW</name>
@@ -309,6 +314,11 @@
     </entityField>
     <entityConsumer>
       <name>ZipValidation</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AddressValidation_entity</entityName>
+        <fieldName>ZipValidaton</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>Country_param</name>
@@ -319,14 +329,14 @@
           <valueProcess>%aditoprj%/entity/Address_entity/entityfields/zipvalidation/children/currentvalue_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>CityValidation</name>
       <dependency>
         <name>dependency</name>
         <entityName>AddressValidation_entity</entityName>
-        <fieldName>ZipValidaton</fieldName>
+        <fieldName>CityValidation</fieldName>
       </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>CityValidation</name>
       <children>
         <entityParameter>
           <name>CurrentValue_param</name>
@@ -337,11 +347,6 @@
           <valueProcess>%aditoprj%/entity/Address_entity/entityfields/cityvalidation/children/country_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AddressValidation_entity</entityName>
-        <fieldName>CityValidation</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>AddressSearch</name>
@@ -357,6 +362,11 @@
     </entityField>
     <entityConsumer>
       <name>FullAddressValidation</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AddressValidation_entity</entityName>
+        <fieldName>FullAddressValidation</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>CurrentValue_param</name>
@@ -367,14 +377,14 @@
           <valueProcess>%aditoprj%/entity/Address_entity/entityfields/fulladdressvalidation/children/country_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>StreetValidation</name>
       <dependency>
         <name>dependency</name>
         <entityName>AddressValidation_entity</entityName>
-        <fieldName>FullAddressValidation</fieldName>
+        <fieldName>StreetValidation</fieldName>
       </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>StreetValidation</name>
       <children>
         <entityParameter>
           <name>City_param</name>
@@ -389,11 +399,6 @@
           <valueProcess>%aditoprj%/entity/Address_entity/entityfields/streetvalidation/children/currentvalue_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AddressValidation_entity</entityName>
-        <fieldName>StreetValidation</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>ShowDsgvoMessage_param</name>
@@ -440,6 +445,7 @@
       <mandatoryProcess>%aditoprj%/entity/Address_entity/entityfields/address_ws/mandatoryProcess.js</mandatoryProcess>
       <textInputAllowed v="true" />
       <stateProcess>%aditoprj%/entity/Address_entity/entityfields/address_ws/stateProcess.js</stateProcess>
+      <titleProcess>%aditoprj%/entity/Address_entity/entityfields/address_ws/titleProcess.js</titleProcess>
       <valueProcess>%aditoprj%/entity/Address_entity/entityfields/address_ws/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/Address_entity/entityfields/address_ws/displayValueProcess.js</displayValueProcess>
       <onValueChange>%aditoprj%/entity/Address_entity/entityfields/address_ws/onValueChange.js</onValueChange>
@@ -487,23 +493,21 @@
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityField>
+      <name>formattedAddress</name>
+      <stateProcess>%aditoprj%/entity/Address_entity/entityfields/formattedaddress/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/Address_entity/entityfields/formattedaddress/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/Address_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/Address_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
       <onDBInsert>%aditoprj%/entity/Address_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/Address_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
-      <linkInformation>
-        <linkInformation>
-          <name>6a0005cc-c64b-4044-9712-c9d00f02d7a8</name>
-          <tableName>ADDRESS</tableName>
-          <primaryKey>ADDRESSID</primaryKey>
-          <isUIDTable v="true" />
-        </linkInformation>
-      </linkInformation>
+      <onDBDelete>%aditoprj%/entity/Address_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>ADDRESS.value</name>
@@ -604,6 +608,15 @@
           <recordfield>ADDRESS.LON</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>56df9517-4983-430b-bd06-d029007b76b3</name>
+          <tableName>ADDRESS</tableName>
+          <primaryKey>ADDRESSID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/Address_entity/entityfields/address/stateProcess.js b/entity/Address_entity/entityfields/address/stateProcess.js
index 3644f13c625a21d01f132729ba0aa8b888166a02..005ea314f1ddba67091c33e6f8c8ed259e6c6440 100644
--- a/entity/Address_entity/entityfields/address/stateProcess.js
+++ b/entity/Address_entity/entityfields/address/stateProcess.js
@@ -1,4 +1,11 @@
+import("system.neon");
+import("system.vars");
 import("system.result");
 import("WsValidation_lib");
 
-result.string(WsValidationFieldUtils.mainFieldStateProcess(WsValidationType.get().TYPE_STREET_NOMINATIM));
\ No newline at end of file
+// The field is only displayed in edit mode because there is the "formattedAddress" field which one shows the fromated address.
+// If the field has a Value it would be displayed next to the formattedAddress field in view mode, so in this case the state is set to invisible.
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_VIEW)
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+else
+    result.string(WsValidationFieldUtils.mainFieldStateProcess(WsValidationType.get().TYPE_STREET_NOMINATIM));
\ No newline at end of file
diff --git a/entity/Address_entity/entityfields/address_ws/stateProcess.js b/entity/Address_entity/entityfields/address_ws/stateProcess.js
index e20c40eb313f2a3ac9fa5bcea35d7665e4274744..1e05ad82e9970e26accfdad7cf94cbb65f7e15ff 100644
--- a/entity/Address_entity/entityfields/address_ws/stateProcess.js
+++ b/entity/Address_entity/entityfields/address_ws/stateProcess.js
@@ -1,4 +1,11 @@
+import("system.neon");
+import("system.vars");
 import("system.result");
 import("WsValidation_lib");
 
-result.string(WsValidationFieldUtils.wsFieldStateProcess(WsValidationType.get().TYPE_STREET_NOMINATIM));
\ No newline at end of file
+// The field is only displayed in edit mode because there is the "formattedAddress" field which one shows the fromated address.
+// If the field has a Value it would be displayed next to the formattedAddress field in view mode, so in this case the state is set to invisible.
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_VIEW)
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+else
+    result.string(WsValidationFieldUtils.wsFieldStateProcess(WsValidationType.get().TYPE_STREET_NOMINATIM));
\ No newline at end of file
diff --git a/entity/Address_entity/entityfields/address_ws/titleProcess.js b/entity/Address_entity/entityfields/address_ws/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a4923c9cd04d58e2b46635653ad058c779ac8dac
--- /dev/null
+++ b/entity/Address_entity/entityfields/address_ws/titleProcess.js
@@ -0,0 +1,10 @@
+import("system.result");
+import("system.vars");
+import("KeywordRegistry_basic");
+import("Keyword_lib");
+
+var key = vars.get("$field.ADDR_TYPE");
+if (key == $KeywordRegistry.addressType$post())
+{
+    result.string("Post office box number");
+}
\ No newline at end of file
diff --git a/entity/Address_entity/entityfields/addressaddition/stateProcess.js b/entity/Address_entity/entityfields/addressaddition/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ed5e161dcc793ca6dc3a379eea6d6b3445eb3b3c
--- /dev/null
+++ b/entity/Address_entity/entityfields/addressaddition/stateProcess.js
@@ -0,0 +1,10 @@
+import("system.neon");
+import("system.result");
+import("system.vars");
+
+// The field is only displayed in edit mode because there is the "formattedAddress" field which one shows the fromated address.
+// If the field has a Value it would be displayed next to the formattedAddress field in view mode, so in this case the state is set to invisible.
+if (vars.get("$sys.recordstate") == "" || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW)
+{
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+}
\ No newline at end of file
diff --git a/entity/Address_entity/entityfields/addridentifier/stateProcess.js b/entity/Address_entity/entityfields/addridentifier/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ed5e161dcc793ca6dc3a379eea6d6b3445eb3b3c
--- /dev/null
+++ b/entity/Address_entity/entityfields/addridentifier/stateProcess.js
@@ -0,0 +1,10 @@
+import("system.neon");
+import("system.result");
+import("system.vars");
+
+// The field is only displayed in edit mode because there is the "formattedAddress" field which one shows the fromated address.
+// If the field has a Value it would be displayed next to the formattedAddress field in view mode, so in this case the state is set to invisible.
+if (vars.get("$sys.recordstate") == "" || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW)
+{
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+}
\ No newline at end of file
diff --git a/entity/Address_entity/entityfields/buildingno/stateProcess.js b/entity/Address_entity/entityfields/buildingno/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ed5e161dcc793ca6dc3a379eea6d6b3445eb3b3c
--- /dev/null
+++ b/entity/Address_entity/entityfields/buildingno/stateProcess.js
@@ -0,0 +1,10 @@
+import("system.neon");
+import("system.result");
+import("system.vars");
+
+// The field is only displayed in edit mode because there is the "formattedAddress" field which one shows the fromated address.
+// If the field has a Value it would be displayed next to the formattedAddress field in view mode, so in this case the state is set to invisible.
+if (vars.get("$sys.recordstate") == "" || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW)
+{
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+}
\ No newline at end of file
diff --git a/entity/Address_entity/entityfields/city/stateProcess.js b/entity/Address_entity/entityfields/city/stateProcess.js
index e2ef4a95e3c8fef0eb47912e2344bd35bad880f4..fe5eecb4a34b7031f7a69192eed73d6d4c5ec4d4 100644
--- a/entity/Address_entity/entityfields/city/stateProcess.js
+++ b/entity/Address_entity/entityfields/city/stateProcess.js
@@ -1,4 +1,11 @@
+import("system.neon");
+import("system.vars");
 import("system.result");
 import("WsValidation_lib");
 
-result.string(WsValidationFieldUtils.mainFieldStateProcess(WsValidationType.get().TYPE_CITY_NOMINATIM));
\ No newline at end of file
+// The field is only displayed in edit mode because there is the "formattedAddress" field which one shows the fromated address.
+// If the field has a Value it would be displayed next to the formattedAddress field in view mode, so in this case the state is set to invisible.
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_VIEW)
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+else
+    result.string(WsValidationFieldUtils.mainFieldStateProcess(WsValidationType.get().TYPE_CITY_NOMINATIM));
\ No newline at end of file
diff --git a/entity/Address_entity/entityfields/city_ws/stateProcess.js b/entity/Address_entity/entityfields/city_ws/stateProcess.js
index 1017598abbdba0191d7b1e0da4496723a21aff9f..7095f69b78189f64e649f434fa0178d6d7bd26cf 100644
--- a/entity/Address_entity/entityfields/city_ws/stateProcess.js
+++ b/entity/Address_entity/entityfields/city_ws/stateProcess.js
@@ -1,4 +1,9 @@
+import("system.neon");
+import("system.vars");
 import("system.result");
 import("WsValidation_lib");
 
-result.string(WsValidationFieldUtils.wsFieldStateProcess(WsValidationType.get().TYPE_CITY_NOMINATIM));
\ No newline at end of file
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_VIEW)
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+else
+    result.string(WsValidationFieldUtils.wsFieldStateProcess(WsValidationType.get().TYPE_CITY_NOMINATIM));
\ No newline at end of file
diff --git a/entity/Address_entity/entityfields/country/stateProcess.js b/entity/Address_entity/entityfields/country/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ed5e161dcc793ca6dc3a379eea6d6b3445eb3b3c
--- /dev/null
+++ b/entity/Address_entity/entityfields/country/stateProcess.js
@@ -0,0 +1,10 @@
+import("system.neon");
+import("system.result");
+import("system.vars");
+
+// The field is only displayed in edit mode because there is the "formattedAddress" field which one shows the fromated address.
+// If the field has a Value it would be displayed next to the formattedAddress field in view mode, so in this case the state is set to invisible.
+if (vars.get("$sys.recordstate") == "" || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW)
+{
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+}
\ No newline at end of file
diff --git a/entity/Address_entity/entityfields/formattedaddress/stateProcess.js b/entity/Address_entity/entityfields/formattedaddress/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..46a443dd90259fda67204407ab940f6e0250ca58
--- /dev/null
+++ b/entity/Address_entity/entityfields/formattedaddress/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.neon");
+import("system.result");
+import("system.vars");
+
+if (vars.get("$sys.recordstate") != "" && vars.get("$sys.recordstate") != neon.OPERATINGSTATE_VIEW)
+{
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+}
\ No newline at end of file
diff --git a/entity/Address_entity/entityfields/formattedaddress/valueProcess.js b/entity/Address_entity/entityfields/formattedaddress/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..3d034c555c7e69cb6da47bc501fdf0f6059037a1
--- /dev/null
+++ b/entity/Address_entity/entityfields/formattedaddress/valueProcess.js
@@ -0,0 +1,57 @@
+import("system.result");
+import("system.vars");
+import("Sql_lib");
+import("Address_lib");
+
+result.string(setAddressData(
+[
+    [
+        [
+            "2",
+            vars.get("$field.ADDRESS"),
+            vars.get("$field.BUILDINGNO"),
+            vars.get("$field.ZIP"),
+            vars.get("$field.CITY"),
+            vars.get("$field.COUNTRY"),
+            "",
+            "",
+            vars.get("$field.DISTRICT"),
+            vars.get("$field.REGION"),
+            vars.get("$field.STATE"),
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            newSelect("ADDR_FORMAT")
+            .from("AB_COUNTRYINFO")
+            .where("AB_COUNTRYINFO.ISO2", vars.get("$field.COUNTRY"))
+            .cell() + "%n {country}",
+            ""
+        ]
+    ],
+    [
+        [
+            0,
+            "ADDRESSFORMAT",
+            ""
+        ]
+    ],
+    [
+        "{@fullAddress@}"
+    ],
+    {
+        length : 28
+    }
+])[1][0]);
+    
diff --git a/entity/Address_entity/entityfields/state/stateProcess.js b/entity/Address_entity/entityfields/state/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ed5e161dcc793ca6dc3a379eea6d6b3445eb3b3c
--- /dev/null
+++ b/entity/Address_entity/entityfields/state/stateProcess.js
@@ -0,0 +1,10 @@
+import("system.neon");
+import("system.result");
+import("system.vars");
+
+// The field is only displayed in edit mode because there is the "formattedAddress" field which one shows the fromated address.
+// If the field has a Value it would be displayed next to the formattedAddress field in view mode, so in this case the state is set to invisible.
+if (vars.get("$sys.recordstate") == "" || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW)
+{
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+}
\ No newline at end of file
diff --git a/entity/Address_entity/entityfields/zip/stateProcess.js b/entity/Address_entity/entityfields/zip/stateProcess.js
index b1f5ba1ac1ff8909fb57d89236cf68be4a92d6d0..764f48cdd72329a2d63c83df9f378561f4263b65 100644
--- a/entity/Address_entity/entityfields/zip/stateProcess.js
+++ b/entity/Address_entity/entityfields/zip/stateProcess.js
@@ -1,4 +1,11 @@
+import("system.neon");
+import("system.vars");
 import("system.result");
 import("WsValidation_lib");
 
-result.string(WsValidationFieldUtils.mainFieldStateProcess(WsValidationType.get().TYPE_ZIP_NOMINATIM));
\ No newline at end of file
+// The field is only displayed in edit mode because there is the "formattedAddress" field which one shows the fromated address.
+// If the field has a Value it would be displayed next to the formattedAddress field in view mode, so in this case the state is set to invisible.
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_VIEW)
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+else
+    result.string(WsValidationFieldUtils.mainFieldStateProcess(WsValidationType.get().TYPE_ZIP_NOMINATIM));
\ No newline at end of file
diff --git a/entity/Address_entity/entityfields/zip_ws/stateProcess.js b/entity/Address_entity/entityfields/zip_ws/stateProcess.js
index 3aec65f49c1af2c53e7221499485909c8ad4ee78..624d619e37803cf888573c65a7346c23cbd554ad 100644
--- a/entity/Address_entity/entityfields/zip_ws/stateProcess.js
+++ b/entity/Address_entity/entityfields/zip_ws/stateProcess.js
@@ -1,4 +1,11 @@
+import("system.neon");
+import("system.vars");
 import("system.result");
 import("WsValidation_lib");
 
-result.string(WsValidationFieldUtils.wsFieldStateProcess(WsValidationType.get().TYPE_ZIP_NOMINATIM));
\ No newline at end of file
+// The field is only displayed in edit mode because there is the "formattedAddress" field which one shows the fromated address.
+// If the field has a Value it would be displayed next to the formattedAddress field in view mode, so in this case the state is set to invisible.
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_VIEW)
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+else
+    result.string(WsValidationFieldUtils.wsFieldStateProcess(WsValidationType.get().TYPE_ZIP_NOMINATIM));
\ No newline at end of file
diff --git a/entity/Address_entity/recordcontainers/db/onDBDelete.js b/entity/Address_entity/recordcontainers/db/onDBDelete.js
new file mode 100644
index 0000000000000000000000000000000000000000..6ff91a5eb319120b527776868367d3cdb0f445f1
--- /dev/null
+++ b/entity/Address_entity/recordcontainers/db/onDBDelete.js
@@ -0,0 +1,3 @@
+import("Workflow_lib");
+
+WorkflowSignalSender.deleted();
\ No newline at end of file
diff --git a/entity/Address_entity/recordcontainers/db/onDBInsert.js b/entity/Address_entity/recordcontainers/db/onDBInsert.js
index ac6e09eee06255c378346ac58f1c219f5b7670fb..cddb15a9f8fd75177c6a219a72f240d56a1b257b 100644
--- a/entity/Address_entity/recordcontainers/db/onDBInsert.js
+++ b/entity/Address_entity/recordcontainers/db/onDBInsert.js
@@ -1,3 +1,4 @@
+import("Workflow_lib");
 import("Sql_lib");
 import("system.logging");
 import("KeywordRegistry_basic");
@@ -59,4 +60,6 @@ if (addressLocation)
             "LAT": addressLocation.lat,
             "LON": addressLocation.lon
         });
-}
\ No newline at end of file
+}
+
+WorkflowSignalSender.inserted();
\ No newline at end of file
diff --git a/entity/Address_entity/recordcontainers/db/onDBUpdate.js b/entity/Address_entity/recordcontainers/db/onDBUpdate.js
index 80e0c649be5a71951c695bfc2e3eda0f29f9048c..87c3f2c27180a26dfb2d548acf385067807800a8 100644
--- a/entity/Address_entity/recordcontainers/db/onDBUpdate.js
+++ b/entity/Address_entity/recordcontainers/db/onDBUpdate.js
@@ -1,3 +1,4 @@
+import("Workflow_lib");
 import("Sql_lib");
 import("Location_lib");
 import("Address_lib");
@@ -28,4 +29,6 @@ if (isAddressChanged)
                 "LON": addressLocation.lon
             });
     }
-}
\ No newline at end of file
+}
+
+WorkflowSignalSender.updated();
\ No newline at end of file
diff --git a/entity/AdminViewRow_entity/AdminViewRow_entity.aod b/entity/AdminViewRow_entity/AdminViewRow_entity.aod
index e957f3e131e1570cc6fd74e143d74bfe0caec1d6..eb56b773bae0329432467ddd786d80a0b7805dc6 100644
--- a/entity/AdminViewRow_entity/AdminViewRow_entity.aod
+++ b/entity/AdminViewRow_entity/AdminViewRow_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>AdminViewRow_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/AdminViewRow_entity/documentation.adoc</documentation>
@@ -17,6 +17,7 @@
     <entityField>
       <name>VALUE</name>
       <contentTypeProcess>%aditoprj%/entity/AdminViewRow_entity/entityfields/value/contentTypeProcess.js</contentTypeProcess>
+      <displayValueProcess>%aditoprj%/entity/AdminViewRow_entity/entityfields/value/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityParameter>
       <name>Rows_param</name>
diff --git a/entity/AdminViewRow_entity/entityfields/value/displayValueProcess.js b/entity/AdminViewRow_entity/entityfields/value/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..f0f30ab1f978226833d3f947417717bcaf3a8c8c
--- /dev/null
+++ b/entity/AdminViewRow_entity/entityfields/value/displayValueProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("Attribute_lib");
+import("system.result");
+
+
+result.string(AttributeTypeUtil.getAttributeViewValue(vars.get("$field.CONTENTTYPE"), vars.get("$field.VALUE"), null));
\ No newline at end of file
diff --git a/entity/Analyses_entity/Analyses_entity.aod b/entity/Analyses_entity/Analyses_entity.aod
index 3eadc589a83baf6a21f36a19f48a7053ac9cec8b..7d49b0bd6a63ddb2bf1b1ebf8912ab1ec4e166c0 100644
--- a/entity/Analyses_entity/Analyses_entity.aod
+++ b/entity/Analyses_entity/Analyses_entity.aod
@@ -1,10 +1,10 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Analyses_entity</name>
+  <title>Analyses</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Analyses_entity/documentation.adoc</documentation>
   <icon>VAADIN:GRID_BIG_O</icon>
-  <title>Analyses</title>
   <recordContainer>jdito</recordContainer>
   <entityFields>
     <entityProvider>
@@ -31,14 +31,17 @@
     <entityActionField>
       <name>openCalendar</name>
       <onActionProcess>%aditoprj%/entity/Analyses_entity/entityfields/opencalendar/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CALENDAR</iconId>
     </entityActionField>
     <entityActionField>
       <name>openNewTasks</name>
       <onActionProcess>%aditoprj%/entity/Analyses_entity/entityfields/opennewtasks/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:TASKS</iconId>
     </entityActionField>
     <entityActionField>
       <name>openOverdueTasks</name>
       <onActionProcess>%aditoprj%/entity/Analyses_entity/entityfields/openoverduetasks/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:TIME_FORWARD</iconId>
     </entityActionField>
     <entityField>
       <name>TURNOVER_FORECAST</name>
diff --git a/entity/AnyContact_entity/AnyContact_entity.aod b/entity/AnyContact_entity/AnyContact_entity.aod
index 3b3b3c3e9899dc01fc477ddfc3e5f3f910455f69..c604642bfd4ad7211cceafc4f93468c1dcf149a6 100644
--- a/entity/AnyContact_entity/AnyContact_entity.aod
+++ b/entity/AnyContact_entity/AnyContact_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>AnyContact_entity</name>
+  <title>Contact</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/AnyContact_entity/documentation.adoc</documentation>
-  <title>Contact</title>
   <contentTitleProcess>%aditoprj%/entity/AnyContact_entity/contentTitleProcess.js</contentTitleProcess>
   <initFilterProcess>%aditoprj%/entity/AnyContact_entity/initFilterProcess.js</initFilterProcess>
   <imageProcess>%aditoprj%/entity/AnyContact_entity/imageProcess.js</imageProcess>
@@ -83,12 +83,6 @@
     <entityProvider>
       <name>ContactsByIds</name>
       <documentation>%aditoprj%/entity/AnyContact_entity/entityfields/contactsbyids/documentation.adoc</documentation>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <expose v="false" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>0206f7a8-fd58-47e8-8b7a-5ff4531e56fb</name>
@@ -97,6 +91,12 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityParameter>
       <name>ContactIds_param</name>
@@ -177,13 +177,6 @@ See ContactUtils.getRelationTypeByPersOrg for possible values</description>
     <entityProvider>
       <name>OnlySameCompany</name>
       <documentation>%aditoprj%/entity/AnyContact_entity/entityfields/onlysamecompany/documentation.adoc</documentation>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <expose v="true" />
-          <mandatory v="true" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>28b19d6b-237c-4268-b6c6-323df408c94a</name>
@@ -192,6 +185,13 @@ See ContactUtils.getRelationTypeByPersOrg for possible values</description>
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityParameter>
       <name>WithPrivatePersons_param</name>
@@ -210,40 +210,10 @@ See ContactUtils.getRelationTypeByPersOrg for possible values</description>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <fromClauseProcess>%aditoprj%/entity/AnyContact_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/AnyContact_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/AnyContact_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>7b3fa460-44a1-40f3-89e3-1625ce9c6bb3</name>
-          <tableName>CONTACT</tableName>
-          <primaryKey>CONTACTID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>6786a204-2cea-42ae-857d-4335bad6b5e4</name>
-          <tableName>ORGANISATION</tableName>
-          <primaryKey>ORGANISATIONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>d15ccb84-6928-4c44-b940-0f5d04826b55</name>
-          <tableName>PERSON</tableName>
-          <primaryKey>PERSONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>b778622f-449a-4185-b7cb-9b373ba4024f</name>
-          <tableName>ADDRESS</tableName>
-          <primaryKey>ADDRESSID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>ADDRESS_ID.value</name>
@@ -318,6 +288,36 @@ See ContactUtils.getRelationTypeByPersOrg for possible values</description>
           <recordfield>PERSON.PICTURE</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>7b3fa460-44a1-40f3-89e3-1625ce9c6bb3</name>
+          <tableName>CONTACT</tableName>
+          <primaryKey>CONTACTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>6786a204-2cea-42ae-857d-4335bad6b5e4</name>
+          <tableName>ORGANISATION</tableName>
+          <primaryKey>ORGANISATIONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>d15ccb84-6928-4c44-b940-0f5d04826b55</name>
+          <tableName>PERSON</tableName>
+          <primaryKey>PERSONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>b778622f-449a-4185-b7cb-9b373ba4024f</name>
+          <tableName>ADDRESS</tableName>
+          <primaryKey>ADDRESSID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/AppointmentLink_entity/AppointmentLink_entity.aod b/entity/AppointmentLink_entity/AppointmentLink_entity.aod
index a60f3736b97b1a8f533330412d5d8414e5c1d742..f049394bc23fffc92a1a735f41aa9bc86cba9d5f 100644
--- a/entity/AppointmentLink_entity/AppointmentLink_entity.aod
+++ b/entity/AppointmentLink_entity/AppointmentLink_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>AppointmentLink_entity</name>
+  <title>Connection</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/AppointmentLink_entity/documentation.adoc</documentation>
-  <title>Connection</title>
   <titlePlural>Connections</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -90,6 +90,7 @@
     </entityConsumer>
     <entityActionField>
       <name>opencontext</name>
+      <iconId>VAADIN:OPEN_BOOK</iconId>
     </entityActionField>
     <entityParameter>
       <name>LinkedObjectId_param</name>
@@ -110,17 +111,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/AppointmentLink_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>211047ab-be9d-401b-a2d9-3dd1e048c5c5</name>
-          <tableName>AB_APPOINTMENTLINK</tableName>
-          <primaryKey>AB_APPOINTMENTLINK_ID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>APPOINTMENT_ID.value</name>
@@ -139,6 +131,15 @@
           <recordfield>AB_APPOINTMENTLINK.AB_APPOINTMENTLINK_ID</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>211047ab-be9d-401b-a2d9-3dd1e048c5c5</name>
+          <tableName>AB_APPOINTMENTLINK</tableName>
+          <primaryKey>AB_APPOINTMENTLINK_ID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/Appointment_entity/Appointment_entity.aod b/entity/Appointment_entity/Appointment_entity.aod
index 2b98d6bd2c33292ef54ca82d1d5c8f624b353cbf..d615ac8db071653c41b13edc8e574505ab3f4b50 100644
--- a/entity/Appointment_entity/Appointment_entity.aod
+++ b/entity/Appointment_entity/Appointment_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Appointment_entity</name>
+  <title>Appointment</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Appointment_entity/documentation.adoc</documentation>
-  <title>Appointment</title>
   <siblings />
   <grantUpdateProcess>%aditoprj%/entity/Appointment_entity/grantUpdateProcess.js</grantUpdateProcess>
   <grantDeleteProcess>%aditoprj%/entity/Appointment_entity/grantDeleteProcess.js</grantDeleteProcess>
@@ -171,6 +171,11 @@
     </entityParameter>
     <entityConsumer>
       <name>AppointmentLinks</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AppointmentLink_entity</entityName>
+        <fieldName>Links</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>AppointmentId_param</name>
@@ -182,11 +187,6 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AppointmentLink_entity</entityName>
-        <fieldName>Links</fieldName>
-      </dependency>
     </entityConsumer>
     <entityActionField>
       <name>deleteSeries</name>
@@ -254,6 +254,10 @@
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityParameter>
+      <name>PresetLinks_param</name>
+      <expose v="true" />
+    </entityParameter>
     <entityParameter>
       <name>ErrorOnPermissionDenied</name>
       <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/erroronpermissiondenied/valueProcess.js</valueProcess>
diff --git a/entity/Appointment_entity/afterUiInit.js b/entity/Appointment_entity/afterUiInit.js
index 12e19779bd85ea257cf9f67b8eba2cae0d388fa2..b018dcc372580a44982d6c1fbfccf554474ca192 100644
--- a/entity/Appointment_entity/afterUiInit.js
+++ b/entity/Appointment_entity/afterUiInit.js
@@ -14,4 +14,15 @@ if(vars.exists("$param.Entry_param") && vars.get("$param.Entry_param"))
             "OBJECTTYPE" : entry["AppLinkContext"]
         });
     }
+}
+
+if(vars.exists("$param.PresetLinks_param") && vars.get("$param.PresetLinks_param"))
+{ 
+    var presetLink = JSON.parse(vars.get("$param.PresetLinks_param"));
+    presetLink.forEach(function(link) {
+        neon.addRecord("AppointmentLinks", {
+            "OBJECTTYPE" : link[0], 
+            "OBJECTID" : link[1]
+        });
+    });
 }
\ No newline at end of file
diff --git a/entity/Appointment_entity/recordcontainers/jdito/onUpdate.js b/entity/Appointment_entity/recordcontainers/jdito/onUpdate.js
index 32ea225c34405b2ce25a50d2199e8c1800ae20c6..dde683a8929aa922bdb8041662279a61d8e33a1b 100644
--- a/entity/Appointment_entity/recordcontainers/jdito/onUpdate.js
+++ b/entity/Appointment_entity/recordcontainers/jdito/onUpdate.js
@@ -83,7 +83,7 @@ function areEventAndFieldsDifferent(event){
         event[calendars.DTSTART] != vars.get("$field.BEGIN") ||
         event[calendars.DTEND] != vars.get("$field.END") ||
         event[calendars.HASREMINDER] != "false" ||
-        event["X-ADITO-ISALLDAYEVENT"] == vars.get("$field.ALLDAY") ||
+        event["X-ADITO-ISALLDAYEVENT"] != vars.get("$field.ALLDAY") ||
         event[calendars.CLASSIFICATION] != vars.get("$field.CLASSIFICATION") ||
         event[calendars.CATEGORIES] != vars.get("$field.CATEGORIES") ||
         event[calendars.AFFECTEDUSERS] != vars.get("$field.ATTENDEES") ||
diff --git a/entity/AroundLocation_entity/AroundLocation_entity.aod b/entity/AroundLocation_entity/AroundLocation_entity.aod
index c91531dc4c43f5cb38c9324e78b6c69f15d6251f..1ccc8984c6b21bc186fb84d00416543831fddeaa 100644
--- a/entity/AroundLocation_entity/AroundLocation_entity.aod
+++ b/entity/AroundLocation_entity/AroundLocation_entity.aod
@@ -1,9 +1,10 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>AroundLocation_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/AroundLocation_entity/documentation.adoc</documentation>
   <onValidation>%aditoprj%/entity/AroundLocation_entity/onValidation.js</onValidation>
+  <iconId>VAADIN:MAP_MARKER</iconId>
   <recordContainer>dataless</recordContainer>
   <entityFields>
     <entityProvider>
diff --git a/entity/AroundLocation_entity/entityfields/open/onActionProcess.js b/entity/AroundLocation_entity/entityfields/open/onActionProcess.js
index 064f8348f4474ef01e4dfb061e6abdfff8ba6427..10fa1eeb0072f9ca47d9df86503fbd82c530de2f 100644
--- a/entity/AroundLocation_entity/entityfields/open/onActionProcess.js
+++ b/entity/AroundLocation_entity/entityfields/open/onActionProcess.js
@@ -1,3 +1,4 @@
+import("Context_lib");
 import("system.vars");
 import("system.neon");
 
@@ -6,5 +7,35 @@ var contactIds = vars.get("$field.ContactIds");
 if (contactIds)
     contactIds = JSON.parse(contactIds);
 
-neon.openContext("Organisation", "OrganisationFilter_view", contactIds, neon.OPERATINGSTATE_SEARCH, null, null);
-//neon.openContext("Organisation", null, contactIds, null, null, null);
\ No newline at end of file
+
+var homeFeatureCollection = {
+    "type": "FeatureCollection",
+    "features": [
+    {
+        "type": "Feature",
+        "properties": {
+            "ADITO-radius": vars.get("$field.SearchRadius") * 1000,
+            "ADITO-color": neon.PRIORITY_HIGH_COLOR,
+            "ADITO-icon": "VAADIN:MAP_MARKER",
+            "ADITO-targetContext": "Organisation",
+            "ADITO-targetId": vars.get("$param.OriginUid_param"),
+            "ADITO-label": ContextUtils.loadContentTitle("Organisation_entity", vars.get("$param.OriginUid_param"))
+        },
+        "geometry": {
+            "type": "Point",
+            "coordinates": [
+                parseFloat(vars.get("$param.LocationLon_param"), 10),
+                parseFloat(vars.get("$param.LocationLat_param"), 10)
+                
+            ]
+        }
+    }
+    ]
+};
+
+var params = {
+    MapViewAdditionalFeatures_param: JSON.stringify(homeFeatureCollection),
+    MapViewCenterLat_param: vars.get("$param.LocationLat_param"),
+    MapViewCenterLon_param: vars.get("$param.LocationLon_param")
+};
+neon.openContext("Organisation", "OrganisationFilter_view", contactIds, neon.OPERATINGSTATE_SEARCH, params, null);
\ No newline at end of file
diff --git a/entity/AttributeRelation_entity/AttributeRelation_entity.aod b/entity/AttributeRelation_entity/AttributeRelation_entity.aod
index 6a92d5391d81f8fb81e4968db71c7f66ee112989..6d8fcd2fb05d3259a0b339733d9eaa4b9d5a69e2 100644
--- a/entity/AttributeRelation_entity/AttributeRelation_entity.aod
+++ b/entity/AttributeRelation_entity/AttributeRelation_entity.aod
@@ -1,11 +1,12 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>AttributeRelation_entity</name>
+  <title>Attribute</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/AttributeRelation_entity/documentation.adoc</documentation>
-  <title>Attribute</title>
   <grantUpdateProcess>%aditoprj%/entity/AttributeRelation_entity/grantUpdateProcess.js</grantUpdateProcess>
   <grantDeleteProcess>%aditoprj%/entity/AttributeRelation_entity/grantDeleteProcess.js</grantDeleteProcess>
+  <contentTitleProcess>%aditoprj%/entity/AttributeRelation_entity/contentTitleProcess.js</contentTitleProcess>
   <titlePlural>Attributes</titlePlural>
   <recordContainer>jdito</recordContainer>
   <entityFields>
@@ -34,13 +35,6 @@
     <entityProvider>
       <name>TreeProvider</name>
       <documentation>%aditoprj%/entity/AttributeRelation_entity/entityfields/treeprovider/documentation.adoc</documentation>
-      <children>
-        <entityParameter>
-          <name>GetTree_param</name>
-          <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/treeprovider/children/gettree_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>e0a7a4bc-ec7f-4f09-9b94-cbeb328cd7b8</name>
@@ -103,6 +97,13 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>GetTree_param</name>
+          <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/treeprovider/children/gettree_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityField>
       <name>AB_ATTRIBUTE_ID</name>
@@ -132,6 +133,11 @@
     </entityField>
     <entityConsumer>
       <name>SpecificAttribute</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Attribute_entity</entityName>
+        <fieldName>SpecificAttribute</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectType_param</name>
@@ -150,11 +156,6 @@
           <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/specificattribute/children/themeobjectrowid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Attribute_entity</entityName>
-        <fieldName>SpecificAttribute</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>GetTree_param</name>
@@ -165,12 +166,6 @@
     <entityProvider>
       <name>AttributeRelations</name>
       <documentation>%aditoprj%/entity/AttributeRelation_entity/entityfields/attributerelations/documentation.adoc</documentation>
-      <children>
-        <entityParameter>
-          <name>GetTree_param</name>
-          <expose v="false" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>69560cc2-d92a-453c-9e64-fb712a538c4f</name>
@@ -244,7 +239,19 @@
           <fieldName>Attributes</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>92855510-92c8-4837-85d3-072396f5f7f6</name>
+          <entityName>Contact_entity</entityName>
+          <fieldName>Attributes</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>GetTree_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityField>
       <name>DATE_EDIT</name>
@@ -312,6 +319,11 @@
     </entityField>
     <entityConsumer>
       <name>Objects</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ObjectProxy_entity</entityName>
+        <fieldName>FilteredObjects</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>Entity_param</name>
@@ -322,11 +334,6 @@
           <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/objects/children/filter_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>ObjectProxy_entity</entityName>
-        <fieldName>FilteredObjects</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>DROPDOWNDEFINITION</name>
@@ -349,6 +356,11 @@
     </entityProvider>
     <entityConsumer>
       <name>SpecificFilterAttributes</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Attribute_entity</entityName>
+        <fieldName>SpecificFilterAttributes</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>AttributeCount_param</name>
@@ -359,20 +371,9 @@
           <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/specificfilterattributes/children/objecttype_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Attribute_entity</entityName>
-        <fieldName>SpecificFilterAttributes</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>FilterProvider</name>
-      <children>
-        <entityParameter>
-          <name>DisplaySimpleName_param</name>
-          <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/filterprovider/children/displaysimplename_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>0560c6d0-8473-4050-9ca1-a935bbac2ef9</name>
@@ -381,6 +382,12 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>DisplaySimpleName_param</name>
+          <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/filterprovider/children/displaysimplename_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityProvider>
   </entityFields>
   <recordContainers>
diff --git a/entity/AttributeRelation_entity/contentTitleProcess.js b/entity/AttributeRelation_entity/contentTitleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..07a93ad61aa87f8fab38a45da2f8c5f879e47b73
--- /dev/null
+++ b/entity/AttributeRelation_entity/contentTitleProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("system.result");
+import("Attribute_lib");
+
+result.string(AttributeUtil.getFullAttributeName(
+        vars.get("$field.AB_ATTRIBUTE_ID"), false, true ));
diff --git a/entity/AttributeRelation_entity/recordcontainers/jdito/contentProcess.js b/entity/AttributeRelation_entity/recordcontainers/jdito/contentProcess.js
index b5337ee20f4280c527eacf1890f5f42399537096..67c301db12e38dc4a793e97a6bd35cf77895ca29 100644
--- a/entity/AttributeRelation_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/AttributeRelation_entity/recordcontainers/jdito/contentProcess.js
@@ -204,7 +204,10 @@ attributeRelations = attributeRelations.map(function (row)
     ];
 });
 
-minCountInsurance.loadMinCounts(objectType);
+if (objectType){
+    minCountInsurance.loadMinCounts(objectType);
+}
+
 attributeRelations.forEach(function (attributeRelation)
 {
     var attrId = attributeRelation[4];
diff --git a/entity/AttributeRelation_entity/recordcontainers/jdito/onDelete.js b/entity/AttributeRelation_entity/recordcontainers/jdito/onDelete.js
index 102089af40ad4f3e510e4ef8387f40864d031e8f..785fe3e0ac18b69e2acc9856afb0875fc81b73e7 100644
--- a/entity/AttributeRelation_entity/recordcontainers/jdito/onDelete.js
+++ b/entity/AttributeRelation_entity/recordcontainers/jdito/onDelete.js
@@ -1,3 +1,4 @@
+import("Workflow_lib");
 import("system.vars");
 import("Sql_lib");
 
@@ -9,4 +10,6 @@ if (rowData["AB_ATTRIBUTE_ID.value"])
         : vars.get("$local.uid");
     newWhereIfSet("AB_ATTRIBUTERELATION.AB_ATTRIBUTERELATIONID", attributeRelationId)
         .deleteData();
-}
\ No newline at end of file
+}
+
+WorkflowSignalSender.deleted();
\ No newline at end of file
diff --git a/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js b/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js
index 09bcd82719b1c36aaf7f44cc92d9834f003f9388..2836dcd5bc7ee17da8d0d75e560f05b6117a36ea 100644
--- a/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js
@@ -1,3 +1,4 @@
+import("Workflow_lib");
 import("DataPrivacy_lib");
 import("system.datetime");
 import("system.util");
@@ -39,4 +40,6 @@ if (valueField)
 db.insertData("AB_ATTRIBUTERELATION", columns, null, values);
 
 if (vars.get("$param.ObjectType_param") == "Person")
-    DataPrivacyUtils.notifyNeedDataPrivacyUpdate(vars.get("$param.ObjectRowId_param"), vars.get("$param.ShowDsgvoMessage_param"));
\ No newline at end of file
+    DataPrivacyUtils.notifyNeedDataPrivacyUpdate(vars.get("$param.ObjectRowId_param"), vars.get("$param.ShowDsgvoMessage_param"));
+
+WorkflowSignalSender.inserted();
\ No newline at end of file
diff --git a/entity/AttributeRelation_entity/recordcontainers/jdito/onUpdate.js b/entity/AttributeRelation_entity/recordcontainers/jdito/onUpdate.js
index e5bd33ae96f917320e2024b7c57ab2d7b88f3676..e88af46b5b0766cd413f835d6435b7b19609693c 100644
--- a/entity/AttributeRelation_entity/recordcontainers/jdito/onUpdate.js
+++ b/entity/AttributeRelation_entity/recordcontainers/jdito/onUpdate.js
@@ -1,3 +1,4 @@
+import("Workflow_lib");
 import("DataPrivacy_lib");
 import("Sql_lib");
 import("system.util");
@@ -69,4 +70,6 @@ else
 }
 
 if (vars.get("$param.ObjectType_param") == "Person")
-    DataPrivacyUtils.notifyNeedDataPrivacyUpdate(vars.get("$param.ObjectRowId_param"), vars.get("$param.ShowDsgvoMessage_param"));
\ No newline at end of file
+    DataPrivacyUtils.notifyNeedDataPrivacyUpdate(vars.get("$param.ObjectRowId_param"), vars.get("$param.ShowDsgvoMessage_param"));
+
+WorkflowSignalSender.updated();
\ No newline at end of file
diff --git a/entity/AttributeUsage_entity/AttributeUsage_entity.aod b/entity/AttributeUsage_entity/AttributeUsage_entity.aod
index 24f5a40c60896ee48346ad767a0ef4424930d7f1..7537ce268732fefca76ffe7f04f87d7b4e5d98fa 100644
--- a/entity/AttributeUsage_entity/AttributeUsage_entity.aod
+++ b/entity/AttributeUsage_entity/AttributeUsage_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>AttributeUsage_entity</name>
+  <title>Usage</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/AttributeUsage_entity/documentation.adoc</documentation>
-  <title>Usage</title>
   <siblings>
     <element>Attribute_entity</element>
   </siblings>
@@ -106,20 +106,11 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/AttributeUsage_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <onDBInsert>%aditoprj%/entity/AttributeUsage_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/AttributeUsage_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/AttributeUsage_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>c30f5670-580e-4621-95dd-0fec4a99190f</name>
-          <tableName>AB_ATTRIBUTEUSAGE</tableName>
-          <primaryKey>AB_ATTRIBUTEUSAGEID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>AB_ATTRIBUTE_ID.value</name>
@@ -142,6 +133,15 @@
           <recordfield>AB_ATTRIBUTEUSAGE.MIN_COUNT</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>c30f5670-580e-4621-95dd-0fec4a99190f</name>
+          <tableName>AB_ATTRIBUTEUSAGE</tableName>
+          <primaryKey>AB_ATTRIBUTEUSAGEID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/Attribute_entity/Attribute_entity.aod b/entity/Attribute_entity/Attribute_entity.aod
index 76187e3927335461766933afcdea204d792bbfc6..8774cf43e3a78aece8ec5c3e63aedb54c23aa218 100644
--- a/entity/Attribute_entity/Attribute_entity.aod
+++ b/entity/Attribute_entity/Attribute_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Attribute_entity</name>
+  <title>Attribute</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Attribute_entity/documentation.adoc</documentation>
-  <title>Attribute</title>
   <grantDeleteProcess>%aditoprj%/entity/Attribute_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/Attribute_entity/contentTitleProcess.js</contentTitleProcess>
   <afterUiInit>%aditoprj%/entity/Attribute_entity/afterUiInit.js</afterUiInit>
@@ -61,6 +61,11 @@
       <name>AttributeUsages</name>
       <refreshParent v="true" />
       <stateProcess>%aditoprj%/entity/Attribute_entity/entityfields/attributeusages/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeUsage_entity</entityName>
+        <fieldName>SpecificAttribute</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>AttributeId_param</name>
@@ -76,22 +81,21 @@
           <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/attributeusages/children/disablemincount_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeUsage_entity</entityName>
-        <fieldName>SpecificAttribute</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>ATTRIBUTE_ACTIVE</name>
       <title>Active</title>
       <contentType>BOOLEAN</contentType>
       <groupable v="true" />
-      <dropDownProcess>%aditoprj%/entity/Attribute_entity/entityfields/attribute_active/dropDownProcess.js</dropDownProcess>
       <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/attribute_active/valueProcess.js</valueProcess>
     </entityField>
     <entityConsumer>
       <name>KeywordAttributeTypes</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -103,11 +107,6 @@
           <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/keywordattributetypes/children/whitelistids_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>DROPDOWNDEFINITION</name>
@@ -132,6 +131,32 @@
       <name>SpecificAttribute</name>
       <lookupIdfield>UID</lookupIdfield>
       <documentation>%aditoprj%/entity/Attribute_entity/entityfields/specificattribute/documentation.adoc</documentation>
+      <dependencies>
+        <entityDependency>
+          <name>ba3b4d47-7385-49df-bf61-54c99f5b2c81</name>
+          <entityName>AttributeRelation_entity</entityName>
+          <fieldName>SpecificAttribute</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>6bc87a7f-02f1-4cab-8c98-b89b626b59bd</name>
+          <entityName>Salesproject_entity</entityName>
+          <fieldName>ProjectTypeAttribute</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>26b85665-7914-45c4-b611-081ffe9502a4</name>
+          <entityName>Employee_entity</entityName>
+          <fieldName>Departments</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>f31eceb3-2fcc-4298-8c5d-1076433e2c2a</name>
+          <entityName>PermissionCalendar_entity</entityName>
+          <fieldName>Departments</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
       <children>
         <entityParameter>
           <name>ObjectType_param</name>
@@ -159,38 +184,6 @@
           <description>parent id, this is used for filtering by the parent in the content process</description>
         </entityParameter>
       </children>
-      <dependencies>
-        <entityDependency>
-          <name>ba3b4d47-7385-49df-bf61-54c99f5b2c81</name>
-          <entityName>AttributeRelation_entity</entityName>
-          <fieldName>SpecificAttribute</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>6bc87a7f-02f1-4cab-8c98-b89b626b59bd</name>
-          <entityName>Salesproject_entity</entityName>
-          <fieldName>ProjectTypeAttribute</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>26b85665-7914-45c4-b611-081ffe9502a4</name>
-          <entityName>Employee_entity</entityName>
-          <fieldName>Departments</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>f31eceb3-2fcc-4298-8c5d-1076433e2c2a</name>
-          <entityName>PermissionCalendar_entity</entityName>
-          <fieldName>Departments</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>71cfeddd-a315-4692-8299-08813ca1dc19</name>
-          <entityName>DistrictResponsible_entity</entityName>
-          <fieldName>Departments</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
     </entityProvider>
     <entityField>
       <name>FULL_ATTRIBUTE_NAME</name>
@@ -242,6 +235,11 @@
     <entityConsumer>
       <name>AttributeGroup</name>
       <description>Used for the selection of the parent attribute</description>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Attribute_entity</entityName>
+        <fieldName>AttributeGroups</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ChildId_param</name>
@@ -256,11 +254,6 @@
           <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/attributegroup/children/displaysimplename_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Attribute_entity</entityName>
-        <fieldName>AttributeGroups</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>ICON</name>
@@ -291,7 +284,6 @@
     </entityFieldGroup>
     <entityField>
       <name>expanded</name>
-      <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/expanded/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>DROPDOWNFILTER</name>
@@ -311,6 +303,11 @@
     </entityField>
     <entityConsumer>
       <name>Contexts</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Context_entity</entityName>
+        <fieldName>Exclusive</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>Blacklist_param</name>
@@ -321,11 +318,6 @@
           <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/contexts/children/invertblacklist_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Context_entity</entityName>
-        <fieldName>Exclusive</fieldName>
-      </dependency>
     </entityConsumer>
     <entityActionGroup>
       <name>AttributeActions</name>
@@ -346,6 +338,7 @@
     <entityActionField>
       <name>openDetails</name>
       <onActionProcess>%aditoprj%/entity/Attribute_entity/entityfields/opendetails/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:GLASSES</iconId>
       <state>INVISIBLE</state>
     </entityActionField>
     <entityActionField>
@@ -357,6 +350,14 @@
     </entityActionField>
     <entityProvider>
       <name>ThemeProvider</name>
+      <dependencies>
+        <entityDependency>
+          <name>6e314038-62de-4f0c-b89a-92f029c10933</name>
+          <entityName>Activity_entity</entityName>
+          <fieldName>ActivityAtrributes</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
       <children>
         <entityParameter>
           <name>AttributeCount_param</name>
@@ -375,14 +376,6 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependencies>
-        <entityDependency>
-          <name>6e314038-62de-4f0c-b89a-92f029c10933</name>
-          <entityName>Activity_entity</entityName>
-          <fieldName>ActivityAtrributes</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
     </entityProvider>
     <entityParameter>
       <name>ParentId_param</name>
@@ -399,6 +392,14 @@
       <sortingField>SORTING</sortingField>
       <documentation>%aditoprj%/entity/Attribute_entity/entityfields/attributechildren/documentation.adoc</documentation>
       <titlePlural>Child Attributes</titlePlural>
+      <dependencies>
+        <entityDependency>
+          <name>80023321-1954-483f-a4be-b7207557c068</name>
+          <entityName>Attribute_entity</entityName>
+          <fieldName>ChildAttributes</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
       <children>
         <entityParameter>
           <name>ChildId_param</name>
@@ -438,19 +439,16 @@
           <mandatory v="true" />
         </entityParameter>
       </children>
-      <dependencies>
-        <entityDependency>
-          <name>80023321-1954-483f-a4be-b7207557c068</name>
-          <entityName>Attribute_entity</entityName>
-          <fieldName>ChildAttributes</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
     </entityProvider>
     <entityConsumer>
       <name>ChildAttributes</name>
       <refreshParent v="true" />
       <stateProcess>%aditoprj%/entity/Attribute_entity/entityfields/childattributes/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Attribute_entity</entityName>
+        <fieldName>AttributeChildren</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>DisplaySimpleName_param</name>
@@ -465,11 +463,6 @@
           <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/childattributes/children/parenttype_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Attribute_entity</entityName>
-        <fieldName>AttributeChildren</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>GetOnlyFirstLevelChildren_param</name>
@@ -485,6 +478,14 @@
     </entityProvider>
     <entityProvider>
       <name>SpecificFilterAttributes</name>
+      <dependencies>
+        <entityDependency>
+          <name>9b2b5f2e-229d-4a10-a54f-cbf77aafe512</name>
+          <entityName>AttributeRelation_entity</entityName>
+          <fieldName>SpecificFilterAttributes</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
       <children>
         <entityParameter>
           <name>DisplaySimpleName_param</name>
@@ -495,14 +496,6 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependencies>
-        <entityDependency>
-          <name>9b2b5f2e-229d-4a10-a54f-cbf77aafe512</name>
-          <entityName>AttributeRelation_entity</entityName>
-          <fieldName>SpecificFilterAttributes</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
     </entityProvider>
   </entityFields>
   <recordContainers>
@@ -566,6 +559,9 @@
           <isFilterable v="true" />
           <isLookupFilter v="true" />
         </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>expanded.value</name>
+        </jDitoRecordFieldMapping>
       </recordFieldMappings>
     </jDitoRecordContainer>
   </recordContainers>
diff --git a/entity/Attribute_entity/entityfields/attribute_active/dropDownProcess.js b/entity/Attribute_entity/entityfields/attribute_active/dropDownProcess.js
deleted file mode 100644
index e4c1d8a78277a5e9b51c2d33a8a96bd3f26186cb..0000000000000000000000000000000000000000
--- a/entity/Attribute_entity/entityfields/attribute_active/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-    ["1", translate.text("Yes")],
-    ["0", translate.text("No")]
-]);
\ No newline at end of file
diff --git a/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js b/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js
index b3cebd106309c5d1eaf9fe95100bec14667f766e..7e391fd02b0fc4b219d252fc0b7e021670c739b1 100644
--- a/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js
@@ -175,7 +175,8 @@ function _buildAttributeTable (pAttributes, pUsages)
         }
         rowData[10] = _getFullName(rowData[1]); //parent full name
         rowData[11] = _getFullName(rowData[0], displaySimpleName);
-        rowData[12] = "dummy"
+        rowData[12] = "dummy";
+        rowData[13] = false;
         sortedArray[rows[i].index] = rowData;
     }
     
diff --git a/entity/AuditLogHistory_entity/AuditLogHistory_entity.aod b/entity/AuditLogHistory_entity/AuditLogHistory_entity.aod
index 2ed69d3a31331cf6801b12b2e12a38394e75d78b..4425b01ed72db74d1573848afc1b9473d5e3368a 100644
--- a/entity/AuditLogHistory_entity/AuditLogHistory_entity.aod
+++ b/entity/AuditLogHistory_entity/AuditLogHistory_entity.aod
@@ -1,10 +1,10 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>AuditLogHistory_entity</name>
+  <title>Audit Log</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/AuditLogHistory_entity/documentation.adoc</documentation>
   <icon>VAADIN:LINES_LIST</icon>
-  <title>Audit Log</title>
   <grantCreate v="false" />
   <grantUpdate v="false" />
   <grantDelete v="true" />
@@ -75,17 +75,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <orderClauseProcess>%aditoprj%/entity/AuditLogHistory_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>ed8bd1ca-64eb-443e-a04d-ea7aee0c352a</name>
-          <tableName>AB_LOGHISTORY</tableName>
-          <primaryKey>AB_LOGHISTORYID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>UID.value</name>
@@ -129,6 +120,15 @@
           <isFilterable v="true" />
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>ed8bd1ca-64eb-443e-a04d-ea7aee0c352a</name>
+          <tableName>AB_LOGHISTORY</tableName>
+          <primaryKey>AB_LOGHISTORYID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
       <filterExtensions>
         <filterExtension>
           <name>contextFilter</name>
diff --git a/entity/BulkMailAddRecipients_entity/BulkMailAddRecipients_entity.aod b/entity/BulkMailAddRecipients_entity/BulkMailAddRecipients_entity.aod
index 95b5c59685bfe4317f636f6a4301150861bbefe4..a43dd1134fefe62920ca5f7ec6941dba89da5cb8 100644
--- a/entity/BulkMailAddRecipients_entity/BulkMailAddRecipients_entity.aod
+++ b/entity/BulkMailAddRecipients_entity/BulkMailAddRecipients_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>BulkMailAddRecipients_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/BulkMailAddRecipients_entity/documentation.adoc</documentation>
diff --git a/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod b/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod
index 60d85496e220808f40709d4fd7fc80bbba176c0a..1d001090085c21d4535df8e8b11fbd770655ad08 100644
--- a/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod
+++ b/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>BulkMailRecipient_entity</name>
+  <title>Recipient</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/BulkMailRecipient_entity/documentation.adoc</documentation>
-  <title>Recipient</title>
   <siblings>
     <element>Communication_entity</element>
   </siblings>
@@ -156,43 +156,13 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <fromClauseProcess>%aditoprj%/entity/BulkMailRecipient_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/BulkMailRecipient_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/BulkMailRecipient_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
       <onDBInsert>%aditoprj%/entity/BulkMailRecipient_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/BulkMailRecipient_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/BulkMailRecipient_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>b8fa2cab-18d8-4297-adc3-191d21f60c3a</name>
-          <tableName>BULKMAILRECIPIENT</tableName>
-          <primaryKey>BULKMAILRECIPIENTID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>c4c3f40e-9435-4414-a4c8-7611e112b460</name>
-          <tableName>CONTACT</tableName>
-          <primaryKey>CONTACTID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>cc598ca4-9623-48a5-8543-0963be24f714</name>
-          <tableName>ORGANISATION</tableName>
-          <primaryKey>ORGANISATIONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>7887492c-6920-4568-96b7-e9a2661ff9d1</name>
-          <tableName>PERSON</tableName>
-          <primaryKey>PERSONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>BULKMAIL_ID.value</name>
@@ -255,6 +225,36 @@
           <expression>%aditoprj%/entity/BulkMailRecipient_entity/recordcontainers/db/recordfieldmappings/problem.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>b8fa2cab-18d8-4297-adc3-191d21f60c3a</name>
+          <tableName>BULKMAILRECIPIENT</tableName>
+          <primaryKey>BULKMAILRECIPIENTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>c4c3f40e-9435-4414-a4c8-7611e112b460</name>
+          <tableName>CONTACT</tableName>
+          <primaryKey>CONTACTID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>cc598ca4-9623-48a5-8543-0963be24f714</name>
+          <tableName>ORGANISATION</tableName>
+          <primaryKey>ORGANISATIONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>7887492c-6920-4568-96b7-e9a2661ff9d1</name>
+          <tableName>PERSON</tableName>
+          <primaryKey>PERSONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/BulkMailStatusChart_entity/BulkMailStatusChart_entity.aod b/entity/BulkMailStatusChart_entity/BulkMailStatusChart_entity.aod
index 63f5f1d40783c0f29bc9f33e89dc4e21ff058271..8449b088e741ea936c249395c17838dee4cd4995 100644
--- a/entity/BulkMailStatusChart_entity/BulkMailStatusChart_entity.aod
+++ b/entity/BulkMailStatusChart_entity/BulkMailStatusChart_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>BulkMailStatusChart_entity</name>
+  <title>Recipient status</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/BulkMailStatusChart_entity/documentation.adoc</documentation>
-  <title>Recipient status</title>
   <siblings>
     <element>BulkMailRecipient_entity</element>
   </siblings>
diff --git a/entity/BulkMailTesting_entity/BulkMailTesting_entity.aod b/entity/BulkMailTesting_entity/BulkMailTesting_entity.aod
index 008aa0177c9d316bbadd3f8401189398e6a8964e..e4d9fa98c6c7fdc68f8b3bafe53331ff672686f6 100644
--- a/entity/BulkMailTesting_entity/BulkMailTesting_entity.aod
+++ b/entity/BulkMailTesting_entity/BulkMailTesting_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>BulkMailTesting_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/BulkMailTesting_entity/documentation.adoc</documentation>
@@ -34,7 +34,6 @@
       <name>SAVESETTINGS</name>
       <title>Save settings</title>
       <contentType>BOOLEAN</contentType>
-      <dropDownProcess>%aditoprj%/entity/BulkMailTesting_entity/entityfields/savesettings/dropDownProcess.js</dropDownProcess>
       <state>EDITABLE</state>
     </entityField>
     <entityParameter>
diff --git a/entity/BulkMailTesting_entity/entityfields/savesettings/dropDownProcess.js b/entity/BulkMailTesting_entity/entityfields/savesettings/dropDownProcess.js
deleted file mode 100644
index ea87f0cb35f482786bbea6794140e8926fca3935..0000000000000000000000000000000000000000
--- a/entity/BulkMailTesting_entity/entityfields/savesettings/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-    ["1", translate.text("Yes")],
-    ["0", translate.text("No")],
-]);
\ No newline at end of file
diff --git a/entity/BulkMail_entity/BulkMail_entity.aod b/entity/BulkMail_entity/BulkMail_entity.aod
index cc5791ce3abcf79661d371db01061a4de1229fc6..3b728ee07f40467fe2f9f1caddd74ca12e531a4f 100644
--- a/entity/BulkMail_entity/BulkMail_entity.aod
+++ b/entity/BulkMail_entity/BulkMail_entity.aod
@@ -1,10 +1,10 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>BulkMail_entity</name>
+  <title>Bulk Mail</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/BulkMail_entity/documentation.adoc</documentation>
   <icon>VAADIN:AT</icon>
-  <title>Bulk Mail</title>
   <grantUpdateProcess>%aditoprj%/entity/BulkMail_entity/grantUpdateProcess.js</grantUpdateProcess>
   <grantDeleteProcess>%aditoprj%/entity/BulkMail_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/BulkMail_entity/contentTitleProcess.js</contentTitleProcess>
@@ -56,20 +56,25 @@
     <entityConsumer>
       <name>Recipients</name>
       <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/recipients/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>BulkMailRecipient_entity</entityName>
+        <fieldName>BulkMailRecipients</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>BulkMailId_param</name>
           <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/recipients/children/bulkmailid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>BulkMailRecipient_entity</entityName>
-        <fieldName>BulkMailRecipients</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Templates</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>DocumentTemplate_entity</entityName>
+        <fieldName>DocumentTemplateProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>DocumentTemplateType_param</name>
@@ -80,11 +85,6 @@
           <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/templates/children/documenttemplatetypeclassification_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>DocumentTemplate_entity</entityName>
-        <fieldName>DocumentTemplateProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>STATUS</name>
@@ -108,17 +108,17 @@
     </entityField>
     <entityConsumer>
       <name>StatusKeyword</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/statuskeyword/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>bindata</name>
@@ -155,38 +155,37 @@
     </entityField>
     <entityConsumer>
       <name>LogHistories</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>LogHistory_entity</entityName>
+        <fieldName>LogHistoryProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>tablenames_param</name>
           <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>LogHistory_entity</entityName>
-        <fieldName>LogHistoryProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>CREATEACTIVITIES</name>
       <title>Create activities</title>
       <contentType>BOOLEAN</contentType>
-      <dropDownProcess>%aditoprj%/entity/BulkMail_entity/entityfields/createactivities/dropDownProcess.js</dropDownProcess>
       <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/createactivities/valueProcess.js</valueProcess>
     </entityField>
     <entityConsumer>
       <name>RecipientStatusChart</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>BulkMailStatusChart_entity</entityName>
+        <fieldName>RecipientStatusChart</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>BulkMailId_param</name>
           <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/recipientstatuschart/children/bulkmailid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>BulkMailStatusChart_entity</entityName>
-        <fieldName>RecipientStatusChart</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>TESTING_CONTACT_ID</name>
@@ -213,6 +212,11 @@
     </entityConsumer>
     <entityConsumer>
       <name>Activities</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Activity_entity</entityName>
+        <fieldName>LinkedObjects</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectId_param</name>
@@ -223,40 +227,7 @@
           <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/activities/children/rowid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Activity_entity</entityName>
-        <fieldName>LinkedObjects</fieldName>
-      </dependency>
     </entityConsumer>
-    <entityActionField>
-      <name>sendMail</name>
-      <title>Send</title>
-      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:PAPERPLANE</iconId>
-      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/stateProcess.js</stateProcess>
-      <tooltipProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/tooltipProcess.js</tooltipProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>testMail</name>
-      <title>Test email</title>
-      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/testmail/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CLIPBOARD_CHECK</iconId>
-    </entityActionField>
-    <entityActionField>
-      <name>downloadTemplate</name>
-      <title>Download template</title>
-      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/downloadtemplate/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:FILE_FONT</iconId>
-      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/downloadtemplate/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>openAdminView</name>
-      <title>Open admin view</title>
-      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CURLY_BRACKETS</iconId>
-      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/openadminview/stateProcess.js</stateProcess>
-    </entityActionField>
     <entityField>
       <name>contentPreview</name>
       <title>Preview</title>
@@ -268,7 +239,6 @@
       <name>USE_TEMPLATE_ATTACHMENTS</name>
       <title>Use template attachments</title>
       <contentType>BOOLEAN</contentType>
-      <dropDownProcess>%aditoprj%/entity/BulkMail_entity/entityfields/use_template_attachments/dropDownProcess.js</dropDownProcess>
       <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/use_template_attachments/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/use_template_attachments/valueProcess.js</valueProcess>
     </entityField>
@@ -278,12 +248,6 @@
       <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/countattachments/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/countattachments/valueProcess.js</valueProcess>
     </entityField>
-    <entityActionField>
-      <name>copyBulkmail</name>
-      <title>Copy bulkmail</title>
-      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/copybulkmail/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:COPY</iconId>
-    </entityActionField>
     <entityParameter>
       <name>CopyBulkMailId_param</name>
       <expose v="true" />
@@ -291,13 +255,6 @@
     <entityProvider>
       <name>BulkMailsNotSent</name>
       <documentation>%aditoprj%/entity/BulkMail_entity/entityfields/bulkmailsnotsent/documentation.adoc</documentation>
-      <children>
-        <entityParameter>
-          <name>BulkMailStatus_param</name>
-          <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/bulkmailsnotsent/children/bulkmailstatus_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>16cdf326-0b43-4d72-bf19-21434e047e85</name>
@@ -306,6 +263,13 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>BulkMailStatus_param</name>
+          <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/bulkmailsnotsent/children/bulkmailstatus_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityParameter>
       <name>BulkMailStatus_param</name>
@@ -319,32 +283,56 @@
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityField>
+      <name>emlEditInfo</name>
+      <documentation>%aditoprj%/entity/BulkMail_entity/entityfields/emleditinfo/documentation.adoc</documentation>
+      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/emleditinfo/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/emleditinfo/valueProcess.js</valueProcess>
+    </entityField>
+    <entityActionField>
+      <name>sendMail</name>
+      <title>Send</title>
+      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:PAPERPLANE</iconId>
+      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/stateProcess.js</stateProcess>
+      <tooltipProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/tooltipProcess.js</tooltipProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>testMail</name>
+      <title>Test email</title>
+      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/testmail/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CLIPBOARD_CHECK</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>downloadTemplate</name>
+      <title>Download template</title>
+      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/downloadtemplate/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:FILE_FONT</iconId>
+      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/downloadtemplate/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>copyBulkmail</name>
+      <title>Copy bulkmail</title>
+      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/copybulkmail/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:COPY</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>openAdminView</name>
+      <title>Open admin view</title>
+      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CURLY_BRACKETS</iconId>
+      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/openadminview/stateProcess.js</stateProcess>
+    </entityActionField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <fromClauseProcess>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <onDBInsert>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>6444866d-42ee-4b7b-8536-6dc8f6437c45</name>
-          <tableName>BULKMAIL</tableName>
-          <primaryKey>BULKMAILID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>914d6373-4409-44e5-882a-3f795b196d7b</name>
-          <tableName>DOCUMENTTEMPLATE</tableName>
-          <primaryKey>DOCUMENTTEMPLATEID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>BULKMAILID.value</name>
@@ -413,6 +401,22 @@
           <recordfield>BULKMAIL.USE_TEMPLATE_ATTACHMENTS</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>6444866d-42ee-4b7b-8536-6dc8f6437c45</name>
+          <tableName>BULKMAIL</tableName>
+          <primaryKey>BULKMAILID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>914d6373-4409-44e5-882a-3f795b196d7b</name>
+          <tableName>DOCUMENTTEMPLATE</tableName>
+          <primaryKey>DOCUMENTTEMPLATEID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/BulkMail_entity/entityfields/createactivities/dropDownProcess.js b/entity/BulkMail_entity/entityfields/createactivities/dropDownProcess.js
deleted file mode 100644
index 3373b8a886df7267c9205c206442cb2e091128fb..0000000000000000000000000000000000000000
--- a/entity/BulkMail_entity/entityfields/createactivities/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-    ["1", translate.text("Yes")],
-    ["0", translate.text("No")]
-]);
\ No newline at end of file
diff --git a/entity/BulkMail_entity/entityfields/emleditinfo/documentation.adoc b/entity/BulkMail_entity/entityfields/emleditinfo/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..7fcfc0cac9536e496988155eb19439a8ff850fd3
--- /dev/null
+++ b/entity/BulkMail_entity/entityfields/emleditinfo/documentation.adoc
@@ -0,0 +1 @@
+ToDo: This is only a temporary solution, since it's currently not possible to edit eml-files 1072188
\ No newline at end of file
diff --git a/entity/BulkMail_entity/entityfields/emleditinfo/stateProcess.js b/entity/BulkMail_entity/entityfields/emleditinfo/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4c7e406153cf2cf3cf572311262bdbae39f476ce
--- /dev/null
+++ b/entity/BulkMail_entity/entityfields/emleditinfo/stateProcess.js
@@ -0,0 +1,9 @@
+import("system.result");
+import("system.vars");
+import("system.neon");
+import("DocumentTemplate_lib");
+
+if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_VIEW && vars.get("$field.templateType") == DocumentTemplate.types.EML) // TODO: invisible for html as there are problems with images which are removed by the html-editor
+    result.string(neon.COMPONENTSTATE_READONLY);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/BulkMail_entity/entityfields/emleditinfo/valueProcess.js b/entity/BulkMail_entity/entityfields/emleditinfo/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6e7a5a51a4d6909e267f94ba4a60d3553d2b79ea
--- /dev/null
+++ b/entity/BulkMail_entity/entityfields/emleditinfo/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.string(translate.text("EML files can't be edited here. You can download, edit and reupload the template if you want to change the content."))
diff --git a/entity/BulkMail_entity/entityfields/use_template_attachments/dropDownProcess.js b/entity/BulkMail_entity/entityfields/use_template_attachments/dropDownProcess.js
deleted file mode 100644
index 3373b8a886df7267c9205c206442cb2e091128fb..0000000000000000000000000000000000000000
--- a/entity/BulkMail_entity/entityfields/use_template_attachments/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-    ["1", translate.text("Yes")],
-    ["0", translate.text("No")]
-]);
\ No newline at end of file
diff --git a/entity/CampaignAddParticipants_entity/CampaignAddParticipants_entity.aod b/entity/CampaignAddParticipants_entity/CampaignAddParticipants_entity.aod
index 339e6914d5ffe2bea367524f8f684d43cb442d7a..19a9716e888eb80a204d2bb2a3901750e4d244b7 100644
--- a/entity/CampaignAddParticipants_entity/CampaignAddParticipants_entity.aod
+++ b/entity/CampaignAddParticipants_entity/CampaignAddParticipants_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>CampaignAddParticipants_entity</name>
+  <title>Add participants to Campaign</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/CampaignAddParticipants_entity/documentation.adoc</documentation>
-  <title>Add participants to Campaign</title>
   <siblings>
     <element>CampaignParticipant_entity</element>
     <element>Campaign_entity</element>
@@ -28,6 +28,7 @@
         <element>PROCESS_SETVALUE</element>
         <element>RECORD</element>
       </onValueChangeTypes>
+      <onValidation>%aditoprj%/entity/CampaignAddParticipants_entity/entityfields/campaign_id/onValidation.js</onValidation>
     </entityField>
     <entityField>
       <name>CAMPAIGNSTEP_ID</name>
@@ -60,11 +61,6 @@
     </entityConsumer>
     <entityConsumer>
       <name>CampaignStepConsumer</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>CampaignStep_entity</entityName>
-        <fieldName>CampaignSteps</fieldName>
-      </dependency>
       <children>
         <entityParameter>
           <name>campaignId_param</name>
@@ -72,6 +68,11 @@
           <expose v="true" />
         </entityParameter>
       </children>
+      <dependency>
+        <name>dependency</name>
+        <entityName>CampaignStep_entity</entityName>
+        <fieldName>CampaignSteps</fieldName>
+      </dependency>
     </entityConsumer>
     <entityField>
       <name>UID</name>
diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaign_id/onValidation.js b/entity/CampaignAddParticipants_entity/entityfields/campaign_id/onValidation.js
new file mode 100644
index 0000000000000000000000000000000000000000..c84027b8fee4b1faaeaa73067205a136f7ce68ba
--- /dev/null
+++ b/entity/CampaignAddParticipants_entity/entityfields/campaign_id/onValidation.js
@@ -0,0 +1,19 @@
+import("system.vars");
+import("system.result");
+import("Sql_lib");
+import("system.translate");
+
+let participants = JSON.parse(vars.get("$param.campaignParticipantsRowIds_param"));
+if(participants.length > 0)
+{
+    let thisParticipantCount = newSelect("count('')").from("CAMPAIGNPARTICIPANT")
+        .where("CAMPAIGNPARTICIPANT.CAMPAIGN_ID", vars.get("$field.CAMPAIGN_ID"))
+        .and(
+            "CAMPAIGNPARTICIPANT.CONTACT_ID",
+            participants,
+            SqlBuilder.IN()
+        ).cell();
+
+    if(parseInt(thisParticipantCount) > 0)
+        result.string(translate.text("Participant is already participating"));
+}
diff --git a/entity/CampaignAnalysis_entity/CampaignAnalysis_entity.aod b/entity/CampaignAnalysis_entity/CampaignAnalysis_entity.aod
index ff9e8a25ad8f036f8667aeb149349e1d8ed75766..432e1d4f798b4c2928c0e37cc9b506016699886f 100644
--- a/entity/CampaignAnalysis_entity/CampaignAnalysis_entity.aod
+++ b/entity/CampaignAnalysis_entity/CampaignAnalysis_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>CampaignAnalysis_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/CampaignAnalysis_entity/documentation.adoc</documentation>
diff --git a/entity/CampaignCostChart_entity/CampaignCostChart_entity.aod b/entity/CampaignCostChart_entity/CampaignCostChart_entity.aod
index f5d7ee451e45fbcc532df7d5ee2d6e934ebe7d79..58a579ab19e9eb374abf7a186b1d33602d0b5407 100644
--- a/entity/CampaignCostChart_entity/CampaignCostChart_entity.aod
+++ b/entity/CampaignCostChart_entity/CampaignCostChart_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>CampaignCostChart_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/CampaignCostChart_entity/documentation.adoc</documentation>
diff --git a/entity/CampaignCost_entity/CampaignCost_entity.aod b/entity/CampaignCost_entity/CampaignCost_entity.aod
index 7652bce2911c9999a838ab39eefdafe3bdbdc17c..9016cfd74c6a4c08c3db2342593a2499338aaba3 100644
--- a/entity/CampaignCost_entity/CampaignCost_entity.aod
+++ b/entity/CampaignCost_entity/CampaignCost_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>CampaignCost_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/CampaignCost_entity/documentation.adoc</documentation>
@@ -80,6 +80,14 @@
     <entityProvider>
       <name>CampaignCosts</name>
       <documentation>%aditoprj%/entity/CampaignCost_entity/entityfields/campaigncosts/documentation.adoc</documentation>
+      <dependencies>
+        <entityDependency>
+          <name>7131288b-af5c-4914-96f5-c5d70217fc23</name>
+          <entityName>Campaign_entity</entityName>
+          <fieldName>CampaignCosts</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
       <children>
         <entityParameter>
           <name>CampaignStepId_param</name>
@@ -99,18 +107,24 @@
           <expose v="false" />
         </entityParameter>
       </children>
+    </entityProvider>
+    <entityProvider>
+      <name>StepCosts</name>
+      <documentation>%aditoprj%/entity/CampaignCost_entity/entityfields/stepcosts/documentation.adoc</documentation>
       <dependencies>
         <entityDependency>
-          <name>7131288b-af5c-4914-96f5-c5d70217fc23</name>
+          <name>af147f3e-a1bd-4eb0-9ac8-325dbdaba17d</name>
+          <entityName>CampaignStep_entity</entityName>
+          <fieldName>CampaignStepCosts</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>2a92b738-c0bb-4c14-9915-aff9e18effaf</name>
           <entityName>Campaign_entity</entityName>
-          <fieldName>CampaignCosts</fieldName>
+          <fieldName>CampaignStepCosts</fieldName>
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
-    </entityProvider>
-    <entityProvider>
-      <name>StepCosts</name>
-      <documentation>%aditoprj%/entity/CampaignCost_entity/entityfields/stepcosts/documentation.adoc</documentation>
       <children>
         <entityParameter>
           <name>CampaignStepId_param</name>
@@ -130,20 +144,6 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependencies>
-        <entityDependency>
-          <name>af147f3e-a1bd-4eb0-9ac8-325dbdaba17d</name>
-          <entityName>CampaignStep_entity</entityName>
-          <fieldName>CampaignStepCosts</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>2a92b738-c0bb-4c14-9915-aff9e18effaf</name>
-          <entityName>Campaign_entity</entityName>
-          <fieldName>CampaignStepCosts</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
     </entityProvider>
     <entityConsumer>
       <name>Campaigns</name>
@@ -155,20 +155,25 @@
     </entityConsumer>
     <entityConsumer>
       <name>CampaignSteps</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>CampaignStep_entity</entityName>
+        <fieldName>CampaignSteps</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>campaignId_param</name>
           <valueProcess>%aditoprj%/entity/CampaignCost_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>CampaignStep_entity</entityName>
-        <fieldName>CampaignSteps</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>KeywordCampaignManagementCostCategory</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -179,11 +184,6 @@
           <valueProcess>%aditoprj%/entity/CampaignCost_entity/entityfields/keywordcampaignmanagementcostcategory/children/blacklistids_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>CampaignId_param</name>
@@ -222,9 +222,9 @@
     </entityField>
     <entityParameter>
       <name>CampaignSteps_param</name>
-      <title></title>
       <expose v="true" />
       <documentation>%aditoprj%/entity/CampaignCost_entity/entityfields/campaignsteps_param/documentation.adoc</documentation>
+      <title></title>
       <description>PARAMETER</description>
     </entityParameter>
     <entityField>
@@ -249,33 +249,10 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <fromClauseProcess>%aditoprj%/entity/CampaignCost_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/CampaignCost_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/CampaignCost_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>6010c581-04c5-4578-b07b-5ab5ce27093b</name>
-          <tableName>CAMPAIGNCOST</tableName>
-          <primaryKey>CAMPAIGNCOSTID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>e5fcdb82-a4f4-4bf8-a7e5-81b94d6377bb</name>
-          <tableName>CAMPAIGNSTEP</tableName>
-          <primaryKey>CAMPAIGNSTEPID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>22980b1e-ea89-4dc6-a648-bddb77401c6a</name>
-          <tableName>CAMPAIGN</tableName>
-          <primaryKey>CAMPAIGNID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>CAMPAIGN_ID.value</name>
@@ -331,6 +308,29 @@
           <expression>%aditoprj%/entity/CampaignCost_entity/recordcontainers/db/recordfieldmappings/netperparticipant_aggregate.value/expression.js</expression>
         </aggregateFieldDbMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>6010c581-04c5-4578-b07b-5ab5ce27093b</name>
+          <tableName>CAMPAIGNCOST</tableName>
+          <primaryKey>CAMPAIGNCOSTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>e5fcdb82-a4f4-4bf8-a7e5-81b94d6377bb</name>
+          <tableName>CAMPAIGNSTEP</tableName>
+          <primaryKey>CAMPAIGNSTEPID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>22980b1e-ea89-4dc6-a648-bddb77401c6a</name>
+          <tableName>CAMPAIGN</tableName>
+          <primaryKey>CAMPAIGNID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/CampaignParticipantChart_entity/CampaignParticipantChart_entity.aod b/entity/CampaignParticipantChart_entity/CampaignParticipantChart_entity.aod
index 6291fe367fc8692ca2d6e068e1d9a6e5a2531818..5e514a302a5165452ac0cb7ee1c1b4fd1448a141 100644
--- a/entity/CampaignParticipantChart_entity/CampaignParticipantChart_entity.aod
+++ b/entity/CampaignParticipantChart_entity/CampaignParticipantChart_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>CampaignParticipantChart_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/CampaignParticipantChart_entity/documentation.adoc</documentation>
diff --git a/entity/CampaignParticipant_entity/CampaignParticipant_entity.aod b/entity/CampaignParticipant_entity/CampaignParticipant_entity.aod
index 92f21ead9046ed628e9a8e2c4148c710a235f88f..57d9fdba321a7f82f43f6e36baf126bbc075ca19 100644
--- a/entity/CampaignParticipant_entity/CampaignParticipant_entity.aod
+++ b/entity/CampaignParticipant_entity/CampaignParticipant_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>CampaignParticipant_entity</name>
+  <title>Participant</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/CampaignParticipant_entity/documentation.adoc</documentation>
-  <title>Participant</title>
   <siblings>
     <element>CampaignAddParticipants_entity</element>
     <element>CampaignParticipantChart_entity</element>
@@ -22,20 +22,6 @@
       <name>CampaignParticipantsProvider</name>
       <documentation>%aditoprj%/entity/CampaignParticipant_entity/entityfields/campaignparticipantsprovider/documentation.adoc</documentation>
       <recordContainer>db</recordContainer>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>CampaignId_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>CampaignStepId_param</name>
-          <expose v="true" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>f28945cd-4613-4dfa-91f7-a7d9d64cef58</name>
@@ -50,6 +36,20 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>CampaignId_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>CampaignStepId_param</name>
+          <expose v="true" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityParameter>
       <name>CampaignStepId_param</name>
@@ -144,6 +144,11 @@
     <entityConsumer>
       <name>CampaignSteps</name>
       <refreshParent v="true" />
+      <dependency>
+        <name>dependency</name>
+        <entityName>CampaignStep_entity</entityName>
+        <fieldName>CampaignSteps</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>campaignId_param</name>
@@ -151,11 +156,6 @@
           <expose v="true" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>CampaignStep_entity</entityName>
-        <fieldName>CampaignSteps</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>CONTACTCONTEXT</name>
@@ -203,17 +203,17 @@
     </entityConsumer>
     <entityConsumer>
       <name>CommRestrictionIcon</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordAttribute_entity</entityName>
+        <fieldName>SpecificContainerKeyword</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/commrestrictionicon/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordAttribute_entity</entityName>
-        <fieldName>SpecificContainerKeyword</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>STANDARD_EMAIL_COMMUNICATION</name>
@@ -280,57 +280,27 @@
     </entityField>
     <entityConsumer>
       <name>ResponsibleEmployees</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Employee_entity</entityName>
+        <fieldName>Employees</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>EmployeeContactIdWhitelist_param</name>
           <valueProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/responsibleemployees/children/employeecontactidwhitelist_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Employee_entity</entityName>
-        <fieldName>Employees</fieldName>
-      </dependency>
     </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <hasDependentRecords v="true" />
       <fromClauseProcess>%aditoprj%/entity/CampaignParticipant_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/CampaignParticipant_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <onDBInsert>%aditoprj%/entity/CampaignParticipant_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
-      <linkInformation>
-        <linkInformation>
-          <name>02d0ac80-2767-401c-bdc1-aac3e8abf0e4</name>
-          <tableName>CAMPAIGNPARTICIPANT</tableName>
-          <primaryKey>CAMPAIGNPARTICIPANTID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>6c320211-601b-47bf-a562-003886666040</name>
-          <tableName>CONTACT</tableName>
-          <primaryKey>CONTACTID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>e1719eb5-112c-4acd-8f72-58a688d5f058</name>
-          <tableName>PERSON</tableName>
-          <primaryKey>PERSONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>8be80af4-69ea-4a5d-b404-8a26c1f8d8da</name>
-          <tableName>ORGANISATION</tableName>
-          <primaryKey>ORGANISATIONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>CAMPAIGN_ID.value</name>
@@ -387,11 +357,11 @@
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>CAMPAIGNSTEP_ID.displayValue</name>
-          <expression>%aditoprj%/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/recordfieldmappings/campaignstep_id.displayvalue/expression.js</expression>
+          <expression>%aditoprj%/entity/CampaignParticipant_entity/recordcontainers/db/recordfieldmappings/campaignstep_id.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>campaignStepCurrentParticipantCount.value</name>
-          <expression>%aditoprj%/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/recordfieldmappings/campaignstepcurrentparticipantcount.value/expression.js</expression>
+          <expression>%aditoprj%/entity/CampaignParticipant_entity/recordcontainers/db/recordfieldmappings/campaignstepcurrentparticipantcount.value/expression.js</expression>
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>ORGANISATION_CONTACT_ID.value</name>
@@ -433,6 +403,36 @@
           <recordfield>ORGANISATION.NAME</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>02d0ac80-2767-401c-bdc1-aac3e8abf0e4</name>
+          <tableName>CAMPAIGNPARTICIPANT</tableName>
+          <primaryKey>CAMPAIGNPARTICIPANTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>6c320211-601b-47bf-a562-003886666040</name>
+          <tableName>CONTACT</tableName>
+          <primaryKey>CONTACTID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>e1719eb5-112c-4acd-8f72-58a688d5f058</name>
+          <tableName>PERSON</tableName>
+          <primaryKey>PERSONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>8be80af4-69ea-4a5d-b404-8a26c1f8d8da</name>
+          <tableName>ORGANISATION</tableName>
+          <primaryKey>ORGANISATIONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/recordfieldmappings/campaignstep_id.displayvalue/expression.js b/entity/CampaignParticipant_entity/recordcontainers/db/recordfieldmappings/campaignstep_id.displayvalue/expression.js
similarity index 100%
rename from entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/recordfieldmappings/campaignstep_id.displayvalue/expression.js
rename to entity/CampaignParticipant_entity/recordcontainers/db/recordfieldmappings/campaignstep_id.displayvalue/expression.js
diff --git a/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/recordfieldmappings/campaignstepcurrentparticipantcount.value/expression.js b/entity/CampaignParticipant_entity/recordcontainers/db/recordfieldmappings/campaignstepcurrentparticipantcount.value/expression.js
similarity index 100%
rename from entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/recordfieldmappings/campaignstepcurrentparticipantcount.value/expression.js
rename to entity/CampaignParticipant_entity/recordcontainers/db/recordfieldmappings/campaignstepcurrentparticipantcount.value/expression.js
diff --git a/entity/CampaignPlanning_entity/CampaignPlanning_entity.aod b/entity/CampaignPlanning_entity/CampaignPlanning_entity.aod
index 62ae8a76e9ae487f97b651173b78bc4c8acbf3ff..33c4b451adff6a01240d01795313d03eda9a0dac 100644
--- a/entity/CampaignPlanning_entity/CampaignPlanning_entity.aod
+++ b/entity/CampaignPlanning_entity/CampaignPlanning_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>CampaignPlanning_entity</name>
+  <title>Campaign Planning</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/CampaignPlanning_entity/documentation.adoc</documentation>
-  <title>Campaign Planning</title>
   <siblings>
     <element>Campaign_entity</element>
     <element>CampaignStep_entity</element>
@@ -81,17 +81,17 @@
     </entityField>
     <entityConsumer>
       <name>CampaignStatusKeyword</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/CampaignPlanning_entity/entityfields/campaignstatuskeyword/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>#PROVIDER_AGGREGATES</name>
diff --git a/entity/CampaignStep_entity/CampaignStep_entity.aod b/entity/CampaignStep_entity/CampaignStep_entity.aod
index ae04d014704d51efa439bccfadc959d52dd1ec70..db37cfd536dda3caf37c26d5774ef9c9d6e2ac85 100644
--- a/entity/CampaignStep_entity/CampaignStep_entity.aod
+++ b/entity/CampaignStep_entity/CampaignStep_entity.aod
@@ -1,10 +1,10 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>CampaignStep_entity</name>
+  <title>Campaign Step</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/CampaignStep_entity/documentation.adoc</documentation>
   <icon>NEON:GROUP_APPOINTMENT</icon>
-  <title>Campaign Step</title>
   <siblings>
     <element>CampaignPlanning_entity</element>
     <element>Campaign_entity</element>
@@ -435,21 +435,12 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/CampaignStep_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/CampaignStep_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
       <onDBInsert>%aditoprj%/entity/CampaignStep_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/CampaignStep_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/CampaignStep_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>b039db2c-3988-42a0-9257-9689b1eb4e58</name>
-          <tableName>CAMPAIGNSTEP</tableName>
-          <primaryKey>CAMPAIGNSTEPID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>CAMPAIGN_ID.value</name>
@@ -542,6 +533,15 @@
           <expression>%aditoprj%/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/employee_contact_id.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>b039db2c-3988-42a0-9257-9689b1eb4e58</name>
+          <tableName>CAMPAIGNSTEP</tableName>
+          <primaryKey>CAMPAIGNSTEPID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/Campaign_entity/Campaign_entity.aod b/entity/Campaign_entity/Campaign_entity.aod
index 0fba3da6c0fe603c6ec1051bd827ebd09ee38bde..8e4f23dc87086a0d65df0b391c3816b4f4641e26 100644
--- a/entity/Campaign_entity/Campaign_entity.aod
+++ b/entity/Campaign_entity/Campaign_entity.aod
@@ -1,10 +1,10 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Campaign_entity</name>
+  <title>Campaign</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Campaign_entity/documentation.adoc</documentation>
   <icon>VAADIN:GROUP</icon>
-  <title>Campaign</title>
   <siblings>
     <element>CampaignStep_entity</element>
     <element>CampaignCost_entity</element>
@@ -23,6 +23,27 @@
   <titlePlural>Campaigns</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
+    <entityActionGroup>
+      <name>observeActionGroup</name>
+      <children>
+        <entityActionField>
+          <name>observe</name>
+          <title>Observe</title>
+          <onActionProcess>%aditoprj%/entity/Campaign_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js</onActionProcess>
+          <isObjectAction v="true" />
+          <iconId>VAADIN:EYE</iconId>
+          <stateProcess>%aditoprj%/entity/Campaign_entity/entityfields/observeactiongroup/children/observe/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Campaign_entity/entityfields/observeactiongroup/children/observe/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>cancelObservation</name>
+          <onActionProcess>%aditoprj%/entity/Campaign_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:EYE_SLASH</iconId>
+          <stateProcess>%aditoprj%/entity/Campaign_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Campaign_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
     <entityProvider>
       <name>#PROVIDER</name>
       <dependencies>
@@ -108,6 +129,11 @@
     <entityConsumer>
       <name>CampaignSteps</name>
       <state>EDITABLE</state>
+      <dependency>
+        <name>dependency</name>
+        <entityName>CampaignStep_entity</entityName>
+        <fieldName>CampaignSteps</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>campaignId_param</name>
@@ -116,11 +142,6 @@
           <mandatory v="true" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>CampaignStep_entity</entityName>
-        <fieldName>CampaignSteps</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>STATUS</name>
@@ -132,17 +153,17 @@
     </entityField>
     <entityConsumer>
       <name>KeywordStates</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/keywordstates/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>Campaigns</name>
@@ -179,6 +200,11 @@
       <name>CampaignParticipants</name>
       <refreshParent v="false" />
       <selectionMode>MULTI</selectionMode>
+      <dependency>
+        <name>dependency</name>
+        <entityName>CampaignParticipant_entity</entityName>
+        <fieldName>CampaignParticipantsProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>CampaignStepId_param</name>
@@ -190,11 +216,6 @@
           <expose v="true" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>CampaignParticipant_entity</entityName>
-        <fieldName>CampaignParticipantsProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Employee</name>
@@ -206,17 +227,17 @@
     </entityConsumer>
     <entityConsumer>
       <name>CampaignCosts</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>CampaignCost_entity</entityName>
+        <fieldName>CampaignCosts</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>CampaignId_param</name>
           <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/campaigncosts/children/campaignid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>CampaignCost_entity</entityName>
-        <fieldName>CampaignCosts</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>COST</name>
@@ -227,17 +248,17 @@
     </entityField>
     <entityConsumer>
       <name>CampaignStepCosts</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>CampaignCost_entity</entityName>
+        <fieldName>StepCosts</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>CampaignId_param</name>
           <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/campaignstepcosts/children/campaignid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>CampaignCost_entity</entityName>
-        <fieldName>StepCosts</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>stepCount</name>
@@ -252,6 +273,11 @@
     <entityConsumer>
       <name>Activities</name>
       <title>Activities</title>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Activity_entity</entityName>
+        <fieldName>LinkedObjects</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectId_param</name>
@@ -262,11 +288,6 @@
           <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/activities/children/rowid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Activity_entity</entityName>
-        <fieldName>LinkedObjects</fieldName>
-      </dependency>
     </entityConsumer>
     <entityActionField>
       <name>newActivity</name>
@@ -285,32 +306,32 @@
     <entityConsumer>
       <name>CampaignCostsChart</name>
       <title>Charts</title>
+      <dependency>
+        <name>dependency</name>
+        <entityName>CampaignCostChart_entity</entityName>
+        <fieldName>CostChart</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>CampaignId_param</name>
           <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/campaigncostschart/children/campaignid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>CampaignCostChart_entity</entityName>
-        <fieldName>CostChart</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>CampaignParticipantsChart</name>
       <title>Chart 2</title>
+      <dependency>
+        <name>dependency</name>
+        <entityName>CampaignParticipantChart_entity</entityName>
+        <fieldName>ParticipantChart</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>CampaignId_param</name>
           <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/campaignparticipantschart/children/campaignid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>CampaignParticipantChart_entity</entityName>
-        <fieldName>ParticipantChart</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>remainingRuntime</name>
@@ -320,22 +341,27 @@
     <entityConsumer>
       <name>CampaignStepsReadonly</name>
       <state>READONLY</state>
+      <dependency>
+        <name>dependency</name>
+        <entityName>CampaignStep_entity</entityName>
+        <fieldName>CampaignSteps</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>campaignId_param</name>
           <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/campaignstepsreadonly/children/campaignid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>CampaignStep_entity</entityName>
-        <fieldName>CampaignSteps</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Attributes</name>
       <stateProcess>%aditoprj%/entity/Campaign_entity/entityfields/attributes/stateProcess.js</stateProcess>
       <onValidation>%aditoprj%/entity/Campaign_entity/entityfields/attributes/onValidation.js</onValidation>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>AttributeRelations</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
@@ -346,11 +372,6 @@
           <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>AttributeRelations</fieldName>
-      </dependency>
     </entityConsumer>
     <entityActionField>
       <name>newCampaignStep</name>
@@ -360,11 +381,16 @@
     </entityActionField>
     <entityConsumer>
       <name>CampaignAnalysisConsumer</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>CampaignAnalysis_entity</entityName>
+        <fieldName>CampaignAnalysisProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>CampaignId_param</name>
-          <title></title>
           <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/campaignanalysisconsumer/children/campaignid_param/valueProcess.js</valueProcess>
+          <title></title>
         </entityParameter>
         <entityParameter>
           <name>DateEnd_param</name>
@@ -375,14 +401,14 @@
           <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/campaignanalysisconsumer/children/datestart_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>CampaignAnalysis_entity</entityName>
-        <fieldName>CampaignAnalysisProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>MemberConsumer</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Member_entity</entityName>
+        <fieldName>Links</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectType_param</name>
@@ -393,16 +419,11 @@
           <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/memberconsumer/children/objectrowid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Member_entity</entityName>
-        <fieldName>Links</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>ShowOnlyCurrentUsersCampaigns_param</name>
-      <title>Show only own</title>
       <expose v="true" />
+      <title>Show only own</title>
     </entityParameter>
     <entityActionField>
       <name>copyCampaign</name>
@@ -419,6 +440,11 @@
     </entityActionField>
     <entityConsumer>
       <name>Documents</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>Documents</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>AssignmentTable_param</name>
@@ -429,15 +455,15 @@
           <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>Documents</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>AttributeTree</name>
       <stateProcess>%aditoprj%/entity/Campaign_entity/entityfields/attributetree/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>TreeProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
@@ -448,11 +474,6 @@
           <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>TreeProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>CURRENCY</name>
@@ -464,21 +485,21 @@
     </entityField>
     <entityConsumer>
       <name>KeywordCurrency</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/keywordcurrency/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
-      <name>CAMPAIGN_OBEJCTTYPE</name>
-      <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/campaign_obejcttype/valueProcess.js</valueProcess>
+      <name>CAMPAIGN_OBJECTTYPE</name>
+      <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/campaign_objecttype/valueProcess.js</valueProcess>
     </entityField>
     <entityConsumer>
       <name>PersonConsumer</name>
@@ -519,6 +540,11 @@
     </entityParameter>
     <entityConsumer>
       <name>Tasks</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Task_entity</entityName>
+        <fieldName>Tasks</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectId_param</name>
@@ -529,30 +555,16 @@
           <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/tasks/children/rowid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Task_entity</entityName>
-        <fieldName>Tasks</fieldName>
-      </dependency>
     </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/Campaign_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <onDBInsert>%aditoprj%/entity/Campaign_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/Campaign_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/Campaign_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>f95b8870-15cd-4302-99ec-8a104ae2262d</name>
-          <tableName>CAMPAIGN</tableName>
-          <primaryKey>CAMPAIGNID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>DATE_EDIT.value</name>
@@ -658,6 +670,15 @@
           <expression>%aditoprj%/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/employee_contact_id.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>f95b8870-15cd-4302-99ec-8a104ae2262d</name>
+          <tableName>CAMPAIGN</tableName>
+          <primaryKey>CAMPAIGNID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
       <filterExtensions>
         <filterExtensionSet>
           <name>Attribute_filter</name>
@@ -666,6 +687,14 @@
           <filterConditionProcess>%aditoprj%/entity/Campaign_entity/recordcontainers/db/filterextensions/attribute_filter/filterConditionProcess.js</filterConditionProcess>
           <filtertype>BASIC</filtertype>
         </filterExtensionSet>
+        <filterExtension>
+          <name>Favorite_Filter</name>
+          <title>Favoritegroup</title>
+          <contentType>TEXT</contentType>
+          <filterValuesProcess>%aditoprj%/entity/Campaign_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js</filterValuesProcess>
+          <filterConditionProcess>%aditoprj%/entity/Campaign_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js</filterConditionProcess>
+          <filtertype>BASIC</filtertype>
+        </filterExtension>
       </filterExtensions>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Campaign_entity/entityfields/campaign_obejcttype/valueProcess.js b/entity/Campaign_entity/entityfields/campaign_objecttype/valueProcess.js
similarity index 100%
rename from entity/Campaign_entity/entityfields/campaign_obejcttype/valueProcess.js
rename to entity/Campaign_entity/entityfields/campaign_objecttype/valueProcess.js
diff --git a/entity/Campaign_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js b/entity/Campaign_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..35102b677cbb52d1d4a9723a42cceaef3fd5ea03
--- /dev/null
+++ b/entity/Campaign_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.cancelAction();
\ No newline at end of file
diff --git a/entity/Campaign_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js b/entity/Campaign_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a0350f5edebe397b96a84766e7cdb8d99f77ee5
--- /dev/null
+++ b/entity/Campaign_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Campaign_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js b/entity/Campaign_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..87553a373a055879a524774695e4c18bcab617e9
--- /dev/null
+++ b/entity/Campaign_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("Observation_lib");
+
+result.string(Observation.cancelActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Campaign_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js b/entity/Campaign_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..66cf7bc2991c142ee0753fec88e151d3dcf71141
--- /dev/null
+++ b/entity/Campaign_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.insertAction();
\ No newline at end of file
diff --git a/entity/Campaign_entity/entityfields/observeactiongroup/children/observe/stateProcess.js b/entity/Campaign_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..461276ea5e1e98e967047207ac6d654225a1b1c6
--- /dev/null
+++ b/entity/Campaign_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (!Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Campaign_entity/entityfields/observeactiongroup/children/observe/titleProcess.js b/entity/Campaign_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..abdfbd3d7c4aff7beba9ff22cbb39abc8d195a30
--- /dev/null
+++ b/entity/Campaign_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Observation_lib");
+import("system.vars");
+
+result.string(Observation.observeActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Campaign_entity/entityfields/openadminview/onActionProcess.js b/entity/Campaign_entity/entityfields/openadminview/onActionProcess.js
index e499f2c9eb69997395c5227e2df347b3dc86441d..3c00c1e0ff2dc159fc564be0e981aa9e9194443d 100644
--- a/entity/Campaign_entity/entityfields/openadminview/onActionProcess.js
+++ b/entity/Campaign_entity/entityfields/openadminview/onActionProcess.js
@@ -3,8 +3,8 @@ import("Context_lib");
 
 AdminViewUtils.open("CAMPAIGNID", [
     ["EMPLOYEE_CONTACT_ID", vars.get("$field.EMPLOYEE_CONTACT_ID")],
-    ["DATE_NEW", vars.get("$field.DATE_NEW")],
-    ["DATE_EDIT", vars.get("$field.DATE_EDIT")],
+    ["DATE_NEW", vars.get("$field.DATE_NEW"), "DATE"],
+    ["DATE_EDIT", vars.get("$field.DATE_EDIT"), "DATE"],
     ["USER_NEW", vars.get("$field.USER_NEW")],
     ["USER_EDIT", vars.get("$field.USER_EDIT")]
 ]);
\ No newline at end of file
diff --git a/entity/Campaign_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js b/entity/Campaign_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..8c69112797b6d3dfddda65853554193ffd335918
--- /dev/null
+++ b/entity/Campaign_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
@@ -0,0 +1,12 @@
+import("system.vars");
+import("Favorites_lib");
+import("system.result");
+import("Sql_lib");
+
+var operator = vars.get("$local.operator");
+var rawvalue = vars.get("$local.rawvalue");
+
+var objecttype = vars.get("$field.CAMPAIGN_OBJECTTYPE");
+var idcolumn = "CAMPAIGN.CAMPAIGNID";
+
+result.string(FavoritesUtil.getFilterDisplayCondition(objecttype, operator, rawvalue, idcolumn));
\ No newline at end of file
diff --git a/entity/Campaign_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js b/entity/Campaign_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..419128ca73fe597afc7ca4aeed50b28e610206ec
--- /dev/null
+++ b/entity/Campaign_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js
@@ -0,0 +1,5 @@
+import("Context_lib");
+import("system.result");
+import("Favorites_lib");
+
+result.object(FavoritesUtil.getUserFavoriteGroupsByContext(ContextUtils.getCurrentContextId()));
\ No newline at end of file
diff --git a/entity/ChecklistEntryValue_entity/ChecklistEntryValue_entity.aod b/entity/ChecklistEntryValue_entity/ChecklistEntryValue_entity.aod
new file mode 100644
index 0000000000000000000000000000000000000000..a2e7566be13d80bdeb1b4a29dc61ecfaec1fb4ff
--- /dev/null
+++ b/entity/ChecklistEntryValue_entity/ChecklistEntryValue_entity.aod
@@ -0,0 +1,152 @@
+<?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.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
+  <name>ChecklistEntryValue_entity</name>
+  <title>Checklist entries</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>NEON:MQL</icon>
+  <imageProcess>%aditoprj%/entity/ChecklistEntryValue_entity/imageProcess.js</imageProcess>
+  <recordContainer>jdito</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+    </entityProvider>
+    <entityProvider>
+      <name>#PROVIDER_AGGREGATES</name>
+      <useAggregates v="true" />
+    </entityProvider>
+    <entityField>
+      <name>CHECKLISTENTRYVALUEID</name>
+    </entityField>
+    <entityField>
+      <name>CHECKLISTENTRY_ID</name>
+      <title>Checklist entry</title>
+      <state>READONLY</state>
+      <displayValueProcess>%aditoprj%/entity/ChecklistEntryValue_entity/entityfields/checklistentry_id/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>OBJECT_ROWID</name>
+    </entityField>
+    <entityField>
+      <name>OBJECT_TYPE</name>
+      <valueProcess>%aditoprj%/entity/ChecklistEntryValue_entity/entityfields/object_type/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>IS_FULFILLED</name>
+      <contentType>BOOLEAN</contentType>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+    </entityField>
+    <entityField>
+      <name>USER_NEW</name>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+    </entityField>
+    <entityParameter>
+      <name>ObjectRowId_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityParameter>
+      <name>ObjectType_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityParameter>
+      <name>ChecklistId_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityProvider>
+      <name>ChecklistEntryValues</name>
+      <titlePlural>Checklist entries</titlePlural>
+      <recordContainer>jdito</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>7eae9b1e-cea7-4688-898a-754dba82eac7</name>
+          <entityName>ChecklistEntry_entity</entityName>
+          <fieldName>ChecklistEntryValues</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>d4bddebc-b38b-46dc-8bb8-5ffa4fbdf627</name>
+          <entityName>Salesproject_entity</entityName>
+          <fieldName>ChecklistEntryValues</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+    <entityParameter>
+      <name>Verifier_param</name>
+      <valueProcess>%aditoprj%/entity/ChecklistEntryValue_entity/entityfields/verifier_param/valueProcess.js</valueProcess>
+    </entityParameter>
+    <entityParameter>
+      <name>VerifierFnName_param</name>
+    </entityParameter>
+    <entityField>
+      <name>UID</name>
+    </entityField>
+    <entityActionGroup>
+      <name>setChecklistEntryCompleted</name>
+      <state>AUTO</state>
+      <stateProcess>%aditoprj%/entity/ChecklistEntryValue_entity/entityfields/setchecklistentrycompleted/stateProcess.js</stateProcess>
+      <children>
+        <entityActionField>
+          <name>setCompleted</name>
+          <title>Set completed</title>
+          <onActionProcess>%aditoprj%/entity/ChecklistEntryValue_entity/entityfields/setchecklistentrycompleted/children/setcompleted/onActionProcess.js</onActionProcess>
+          <isObjectAction v="false" />
+          <isSelectionAction v="true" />
+          <iconId>NEON:MQL</iconId>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
+    <entityField>
+      <name>type</name>
+      <title>Type</title>
+      <valueProcess>%aditoprj%/entity/ChecklistEntryValue_entity/entityfields/type/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/ChecklistEntryValue_entity/entityfields/type/displayValueProcess.js</displayValueProcess>
+    </entityField>
+  </entityFields>
+  <recordContainers>
+    <jDitoRecordContainer>
+      <name>jdito</name>
+      <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
+      <contentProcess>%aditoprj%/entity/ChecklistEntryValue_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
+      <onUpdate>%aditoprj%/entity/ChecklistEntryValue_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
+      <recordFieldMappings>
+        <jDitoRecordFieldMapping>
+          <name>UID.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>CHECKLISTENTRY_ID.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>CHECKLISTENTRYVALUEID.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>IS_FULFILLED.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>OBJECT_ROWID.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>OBJECT_TYPE.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>USER_NEW.value</name>
+        </jDitoRecordFieldMapping>
+      </recordFieldMappings>
+    </jDitoRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/ChecklistEntryValue_entity/entityfields/checklistentry_id/displayValueProcess.js b/entity/ChecklistEntryValue_entity/entityfields/checklistentry_id/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..3a0b46b8b1fe9519eeec33585163ca74d1a2ebab
--- /dev/null
+++ b/entity/ChecklistEntryValue_entity/entityfields/checklistentry_id/displayValueProcess.js
@@ -0,0 +1,25 @@
+import("system.result");
+import("system.vars");
+import("system.translate");
+import("ChecklistEntryRegistry_basic");
+import("Util_lib");
+import("Sql_lib");
+
+
+var checklistEntryId = vars.get("$field.CHECKLISTENTRY_ID");
+var verfierFnName = newSelect("TITLE", "Data_alias")
+                            .from("CHECKLISTENTRY")
+                            .where("CHECKLISTENTRY.CHECKLISTENTRYID", checklistEntryId)
+                            .cell();
+var verifierFn = $ChecklistEntryRegistry[verfierFnName];
+var displayValue;
+
+if (Utils.isFunction(verifierFn))
+    displayValue = verifierFn().title;
+else{
+    displayValue = translate.text(verfierFnName);
+}
+
+result.string(displayValue);
+
+
diff --git a/entity/ChecklistEntryValue_entity/entityfields/object_type/valueProcess.js b/entity/ChecklistEntryValue_entity/entityfields/object_type/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..cf41a5d0a18af79415a71643a793880b25ec5ec0
--- /dev/null
+++ b/entity/ChecklistEntryValue_entity/entityfields/object_type/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+
+
+result.string(vars.get("$param.ObjectType_param"));
\ No newline at end of file
diff --git a/entity/ChecklistEntryValue_entity/entityfields/setchecklistentrycompleted/children/setcompleted/onActionProcess.js b/entity/ChecklistEntryValue_entity/entityfields/setchecklistentrycompleted/children/setcompleted/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4684843918c7813b0de9c2057d3b93650301dacf
--- /dev/null
+++ b/entity/ChecklistEntryValue_entity/entityfields/setchecklistentrycompleted/children/setcompleted/onActionProcess.js
@@ -0,0 +1,9 @@
+import("system.vars");
+import("system.neon");
+import("Sql_lib");
+
+
+newWhere("CHECKLISTENTRYVALUE.CHECKLISTENTRYVALUEID", "$field.CHECKLISTENTRYVALUEID")
+    .updateFields({"IS_FULFILLED":1});
+        
+neon.refreshAll();
\ No newline at end of file
diff --git a/entity/ChecklistEntryValue_entity/entityfields/setchecklistentrycompleted/stateProcess.js b/entity/ChecklistEntryValue_entity/entityfields/setchecklistentrycompleted/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9e756de19ae758e0f6d61a377c1f25181a31d598
--- /dev/null
+++ b/entity/ChecklistEntryValue_entity/entityfields/setchecklistentrycompleted/stateProcess.js
@@ -0,0 +1,15 @@
+import("system.result");
+import("system.vars");
+import("system.neon");
+import("KeywordRegistry_basic");
+
+
+if (vars.get("$field.type") == $KeywordRegistry.checklistEntryType$auto())
+{
+    result.string(neon.COMPONENTSTATE_DISABLED);
+}
+
+if (vars.get("$field.type") == $KeywordRegistry.checklistEntryType$manual())
+{
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+}
\ No newline at end of file
diff --git a/entity/ChecklistEntryValue_entity/entityfields/type/displayValueProcess.js b/entity/ChecklistEntryValue_entity/entityfields/type/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..574355fa5aa6c81739dff0c6bc2884eed8ac0829
--- /dev/null
+++ b/entity/ChecklistEntryValue_entity/entityfields/type/displayValueProcess.js
@@ -0,0 +1,7 @@
+import("Keyword_lib");
+import("system.vars");
+import("system.result");
+import("KeywordRegistry_basic");
+
+
+result.string(KeywordUtils.getViewValue($KeywordRegistry.checklistEntryType(), vars.get("$field.type")));
\ No newline at end of file
diff --git a/entity/ChecklistEntryValue_entity/entityfields/type/valueProcess.js b/entity/ChecklistEntryValue_entity/entityfields/type/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..08c466c3be65f8e64bb5f7d594ce20fca8db8891
--- /dev/null
+++ b/entity/ChecklistEntryValue_entity/entityfields/type/valueProcess.js
@@ -0,0 +1,16 @@
+import("system.result");
+import("system.vars");
+import("Sql_lib");
+
+
+var checklistEntryId = vars.get("$field.CHECKLISTENTRY_ID");
+
+if (checklistEntryId)
+{
+    var type = newSelect("TYPE")
+                .from("CHECKLISTENTRY")
+                .where("CHECKLISTENTRY.CHECKLISTENTRYID", checklistEntryId)
+                .cell(); 
+
+    result.string(type);
+}
\ No newline at end of file
diff --git a/entity/ChecklistEntryValue_entity/entityfields/verifier_param/valueProcess.js b/entity/ChecklistEntryValue_entity/entityfields/verifier_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..bd99ebeed2027694251b6959689c55508a87b6bb
--- /dev/null
+++ b/entity/ChecklistEntryValue_entity/entityfields/verifier_param/valueProcess.js
@@ -0,0 +1,14 @@
+import("Util_lib");
+import("system.result");
+import("system.vars");
+import("ChecklistEntryRegistry_basic");
+
+
+var fnName = vars.get("$param.VerifierFnName_param");
+var objectRowId = vars.get("$param.ObjectRowId_param");
+var isFulfilledFn = $ChecklistEntryRegistry[fnName];
+
+if (Utils.isFunction(isFulfilledFn))
+    result.string(isFulfilledFn().verifierFn(objectRowId));
+
+
diff --git a/entity/ChecklistEntryValue_entity/imageProcess.js b/entity/ChecklistEntryValue_entity/imageProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..de02e652cc1d7938b9675e6e39e10f2e0b1d04c3
--- /dev/null
+++ b/entity/ChecklistEntryValue_entity/imageProcess.js
@@ -0,0 +1,13 @@
+import("system.vars");
+import("system.result");
+
+
+var image;
+var isFulfilled = vars.get("$field.IS_FULFILLED");
+
+if (isFulfilled == 1)
+{
+    image = "NEON:MQL";
+}
+
+result.string(image);
\ No newline at end of file
diff --git a/entity/ChecklistEntryValue_entity/recordcontainers/jdito/contentProcess.js b/entity/ChecklistEntryValue_entity/recordcontainers/jdito/contentProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4727ac92281bcd2d31273ffa81fe95efe7a12786
--- /dev/null
+++ b/entity/ChecklistEntryValue_entity/recordcontainers/jdito/contentProcess.js
@@ -0,0 +1,95 @@
+import("system.result");
+import("system.vars");
+import("system.util");
+import("system.db");
+import("KeywordRegistry_basic");
+import("Util_lib");
+import("Sql_lib");
+
+
+var newUid;
+var isExistent;
+var checklistEntryIds = [];
+var preparedStatements = [];
+var checklistEntryValues = [];
+var manualChecklistEntries = [];
+var manualChecklistEntryValues = [];
+var cols = ["CHECKLISTENTRYVALUEID", "CHECKLISTENTRY_ID", "OBJECT_ROWID", "OBJECT_TYPE", 
+                "IS_FULFILLED", "USER_NEW", "USER_EDIT", "DATE_NEW", "DATE_EDIT"];
+
+var checklistId = vars.get("$param.ChecklistId_param");
+var objectRowId = vars.get("$param.ObjectRowId_param");
+//var objectType = vars.get("$param.ObjectType_param"); - necessary?
+var checklistEntries = [];
+if (checklistId)
+{
+    checklistEntries = newSelect("CHECKLISTENTRYID, CHECKLIST_ID, TITLE, TYPE, USER_NEW, USER_EDIT, DATE_NEW, DATE_EDIT")
+                            .from("CHECKLISTENTRY")
+                            .where("CHECKLISTENTRY.CHECKLIST_ID", checklistId)
+                            .table();
+                            
+    checklistEntries.forEach(function(pRow){
+        if (pRow[0]) 
+        {
+            checklistEntryIds.push(pRow[0]);
+        }
+    });
+}
+
+for (i = 0; i < checklistEntries.length; i++) 
+{
+    for (j = 0; j < checklistEntries[i].length; j++) 
+    {
+        checklistEntryValues[i] = new Array(10);
+
+        if (checklistEntries[i][3] == $KeywordRegistry.checklistEntryType$auto())
+        {
+            newUid = util.getNewUUID();
+            vars.set("$param.VerifierFnName_param", checklistEntries[i][2]);
+            checklistEntryValues[i] = [newUid, checklistEntries[i][0], newUid, "", vars.get("$sys.date"), 
+                                        Utils.toBoolean(vars.get("$param.Verifier_param")) ? 1 : 0, objectRowId,
+                                        "", "null", vars.get("$sys.user")];
+        }
+        else 
+        {
+            isExistent = newSelect("CHECKLISTENTRYVALUEID, CHECKLISTENTRY_ID, CHECKLISTENTRYVALUEID,\n\
+                                                DATE_EDIT, DATE_NEW, IS_FULFILLED, OBJECT_ROWID, OBJECT_TYPE, USER_EDIT, USER_NEW")
+                                    .from("CHECKLISTENTRYVALUE")
+                                    .where("CHECKLISTENTRYVALUE.CHECKLISTENTRY_ID", checklistEntries[i][0])
+                                    .and("CHECKLISTENTRYVALUE.OBJECT_ROWID", objectRowId)
+                                    .arrayRow();
+            if (isExistent.length > 0)
+            {
+                checklistEntryValues[i] = isExistent;
+            }
+            else
+            {
+                newUid = util.getNewUUID();
+                checklistEntryValues[i] = [newUid, checklistEntries[i][0], newUid, "", vars.get("$sys.date"), "0", objectRowId, "", 
+                                            "null", vars.get("$sys.user")];
+                isExistent = preparedStatements.some(function(pPreparedStatement){
+                    return pPreparedStatement[3].includes(checklistEntries[i][0]) && pPreparedStatement[3].includes(objectRowId);
+                });
+                
+                if (!isExistent)
+                {
+                    preparedStatements.push(["CHECKLISTENTRYVALUE", 
+                                            cols,
+                                            db.getColumnTypes("CHECKLISTENTRYVALUE", cols),
+                                            [checklistEntryValues[i][0],
+                                                checklistEntryValues[i][1],
+                                                checklistEntryValues[i][6],
+                                                checklistEntryValues[i][7],
+                                                checklistEntryValues[i][5].toString(),
+                                                checklistEntryValues[i][9],
+                                                checklistEntryValues[i][8],
+                                                checklistEntryValues[i][4],
+                                                checklistEntryValues[i][3]]]);
+                }
+            }
+        }
+    }
+} 
+
+db.inserts(preparedStatements, "Data_alias");
+result.object(checklistEntryValues);
\ No newline at end of file
diff --git a/entity/ChecklistEntryValue_entity/recordcontainers/jdito/onUpdate.js b/entity/ChecklistEntryValue_entity/recordcontainers/jdito/onUpdate.js
new file mode 100644
index 0000000000000000000000000000000000000000..666ee575b4538a2df8721203cf2feaea2a61158e
--- /dev/null
+++ b/entity/ChecklistEntryValue_entity/recordcontainers/jdito/onUpdate.js
@@ -0,0 +1,10 @@
+import("Sql_lib");
+import("system.vars");
+
+var changed = vars.get("$local.changed");
+
+if(changed)
+{
+    newWhere("CHECKLISTENTRYVALUE.CHECKLISTENTRYVALUEID", "$field.CHECKLISTENTRYVALUEID")
+        .updateFields({"IS_FULFILLED" : vars.get("$field.IS_FULFILLED")});
+}
\ No newline at end of file
diff --git a/entity/ChecklistEntry_entity/ChecklistEntry_entity.aod b/entity/ChecklistEntry_entity/ChecklistEntry_entity.aod
new file mode 100644
index 0000000000000000000000000000000000000000..200dfd83079a685ddc6cc91e1f5cae555ce0333c
--- /dev/null
+++ b/entity/ChecklistEntry_entity/ChecklistEntry_entity.aod
@@ -0,0 +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.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
+  <name>ChecklistEntry_entity</name>
+  <title>Checklist entries</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>NEON:MQL</icon>
+  <recordContainer>db</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+    </entityProvider>
+    <entityProvider>
+      <name>#PROVIDER_AGGREGATES</name>
+      <useAggregates v="true" />
+    </entityProvider>
+    <entityField>
+      <name>CHECKLISTENTRYID</name>
+    </entityField>
+    <entityField>
+      <name>TITLE</name>
+      <title>Title</title>
+      <dropDownProcess>%aditoprj%/entity/ChecklistEntry_entity/entityfields/title/dropDownProcess.js</dropDownProcess>
+      <displayValueProcess>%aditoprj%/entity/ChecklistEntry_entity/entityfields/title/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>TYPE</name>
+      <title>Type</title>
+      <dropDownProcess>%aditoprj%/entity/ChecklistEntry_entity/entityfields/type/dropDownProcess.js</dropDownProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <valueProcess>%aditoprj%/entity/ChecklistEntry_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_NEW</name>
+      <valueProcess>%aditoprj%/entity/ChecklistEntry_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <valueProcess>%aditoprj%/entity/ChecklistEntry_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <valueProcess>%aditoprj%/entity/ChecklistEntry_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityProvider>
+      <name>ChecklistEntries</name>
+      <dependencies>
+        <entityDependency>
+          <name>84d5df6b-1aff-4ab2-88a5-fd3b591916ce</name>
+          <entityName>Checklist_entity</entityName>
+          <fieldName>ChecklistEntries</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>9134e842-dac3-4f09-9e03-f71827b15fcf</name>
+          <entityName>SalesprojectPhaseDefinition_entity</entityName>
+          <fieldName>ChecklistEntries</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+    <entityField>
+      <name>CHECKLIST_ID</name>
+      <valueProcess>%aditoprj%/entity/ChecklistEntry_entity/entityfields/checklist_id/valueProcess.js</valueProcess>
+    </entityField>
+    <entityParameter>
+      <name>ChecklistUid_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityConsumer>
+      <name>ChecklistEntryValues</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ChecklistEntryValue_entity</entityName>
+        <fieldName>ChecklistEntryValues</fieldName>
+      </dependency>
+    </entityConsumer>
+  </entityFields>
+  <recordContainers>
+    <dbRecordContainer>
+      <name>db</name>
+      <conditionProcess>%aditoprj%/entity/ChecklistEntry_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <alias>Data_alias</alias>
+      <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>CHECKLISTENTRYID.value</name>
+          <recordfield>CHECKLISTENTRY.CHECKLISTENTRYID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>CHECKLISTENTRY.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>CHECKLISTENTRY.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>TITLE.value</name>
+          <recordfield>CHECKLISTENTRY.TITLE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>TYPE.value</name>
+          <recordfield>CHECKLISTENTRY.TYPE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>CHECKLISTENTRY.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>CHECKLISTENTRY.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>CHECKLIST_ID.value</name>
+          <recordfield>CHECKLISTENTRY.CHECKLIST_ID</recordfield>
+        </dbRecordFieldMapping>
+      </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>65224b99-e70c-49fb-955e-ee5bca837d6c</name>
+          <tableName>CHECKLISTENTRY</tableName>
+          <primaryKey>CHECKLISTENTRYID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
+    </dbRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/ChecklistEntry_entity/entityfields/checklist_id/valueProcess.js b/entity/ChecklistEntry_entity/entityfields/checklist_id/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..31aabdc692618a256df1bd91be2ae64c0cad7d99
--- /dev/null
+++ b/entity/ChecklistEntry_entity/entityfields/checklist_id/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+
+
+result.string(vars.get("$param.ChecklistUid_param"));
\ No newline at end of file
diff --git a/entity/DistrictResponsible_entity/entityfields/departmentattributename/stateProcess.js b/entity/ChecklistEntry_entity/entityfields/date_edit/valueProcess.js
similarity index 73%
rename from entity/DistrictResponsible_entity/entityfields/departmentattributename/stateProcess.js
rename to entity/ChecklistEntry_entity/entityfields/date_edit/valueProcess.js
index 916fbbd300758fdb197ee31bb0958a12d87f6670..b1325e54818a2ef8aef43c452e840cf0e00a340b 100644
--- a/entity/DistrictResponsible_entity/entityfields/departmentattributename/stateProcess.js
+++ b/entity/ChecklistEntry_entity/entityfields/date_edit/valueProcess.js
@@ -1,9 +1,8 @@
+import("system.vars");
 import("system.result");
 import("system.neon");
-import("system.vars");
-
 
 if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT)
 {
-    result.string(neon.COMPONENTSTATE_INVISIBLE);
+    result.string(vars.get("$sys.date"));
 }
\ No newline at end of file
diff --git a/entity/ChecklistEntry_entity/entityfields/date_new/valueProcess.js b/entity/ChecklistEntry_entity/entityfields/date_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..557358ecb61b3de637a1a916a37929ca88fc9563
--- /dev/null
+++ b/entity/ChecklistEntry_entity/entityfields/date_new/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+{
+    result.string(vars.get("$sys.date"));
+}
\ No newline at end of file
diff --git a/entity/ChecklistEntry_entity/entityfields/title/displayValueProcess.js b/entity/ChecklistEntry_entity/entityfields/title/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b9d9117ecefc66d14394164cab6b1ca390a67c50
--- /dev/null
+++ b/entity/ChecklistEntry_entity/entityfields/title/displayValueProcess.js
@@ -0,0 +1,11 @@
+import("system.result");
+import("system.vars");
+import("system.translate");
+import("KeywordRegistry_basic");
+
+var title = vars.get("$field.TITLE");
+
+if (vars.get("$field.TYPE") == $KeywordRegistry.checklistEntryType$manual())
+{
+    result.string(translate.text(title));
+}
\ No newline at end of file
diff --git a/entity/ChecklistEntry_entity/entityfields/title/dropDownProcess.js b/entity/ChecklistEntry_entity/entityfields/title/dropDownProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..3a7f1a267bc366a0da3a7c3a5a68cc21f418479a
--- /dev/null
+++ b/entity/ChecklistEntry_entity/entityfields/title/dropDownProcess.js
@@ -0,0 +1,10 @@
+import("system.result");
+import("system.vars");
+import("KeywordRegistry_basic");
+import("ChecklistEntryRegistry_basic");
+
+
+if (vars.get("$field.TYPE") == $KeywordRegistry.checklistEntryType$auto())
+{
+    result.object($ChecklistEntryRegistry.getEntryList());
+}
\ No newline at end of file
diff --git a/entity/ChecklistEntry_entity/entityfields/type/dropDownProcess.js b/entity/ChecklistEntry_entity/entityfields/type/dropDownProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..f3b2df2523349e9e5fe6e9ac8d8b8f712aed3bec
--- /dev/null
+++ b/entity/ChecklistEntry_entity/entityfields/type/dropDownProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("system.translate");
+
+result.object({"MANUAL":translate.text("Manually"), "AUTO":translate.text("Automatically")});
\ No newline at end of file
diff --git a/entity/ChecklistEntry_entity/entityfields/user_edit/valueProcess.js b/entity/ChecklistEntry_entity/entityfields/user_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..de5a4ba34e5e6a1abd7ba5be9d69d59f7f05330f
--- /dev/null
+++ b/entity/ChecklistEntry_entity/entityfields/user_edit/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT)
+{
+    result.string(vars.get("$sys.user"));
+}
\ No newline at end of file
diff --git a/entity/ChecklistEntry_entity/entityfields/user_new/valueProcess.js b/entity/ChecklistEntry_entity/entityfields/user_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c2c237153fee057be773b3a43d34c443734039e5
--- /dev/null
+++ b/entity/ChecklistEntry_entity/entityfields/user_new/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+{
+    result.string(vars.get("$sys.user"));
+}
\ No newline at end of file
diff --git a/entity/ChecklistEntry_entity/recordcontainers/db/conditionProcess.js b/entity/ChecklistEntry_entity/recordcontainers/db/conditionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6c25101de02357ff096464daebd0cb512ce138c8
--- /dev/null
+++ b/entity/ChecklistEntry_entity/recordcontainers/db/conditionProcess.js
@@ -0,0 +1,18 @@
+import("system.result");
+import("system.vars");
+import("Sql_lib");
+
+
+var checklistId = vars.get("$param.ChecklistUid_param");
+var cond = newWhere();
+
+if (checklistId) 
+{
+    cond.and("CHECKLISTENTRY.CHECKLIST_ID", checklistId);
+}
+else
+{
+    cond.and("1 = 2");
+}
+
+result.string(cond.toString());
\ No newline at end of file
diff --git a/entity/Checklist_entity/Checklist_entity.aod b/entity/Checklist_entity/Checklist_entity.aod
new file mode 100644
index 0000000000000000000000000000000000000000..5addd3e3f03439f55e3a892ba55ca4c86552b2d3
--- /dev/null
+++ b/entity/Checklist_entity/Checklist_entity.aod
@@ -0,0 +1,84 @@
+<?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.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
+  <name>Checklist_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>NEON:MQC</icon>
+  <siblings />
+  <recordContainer>db</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+    </entityProvider>
+    <entityProvider>
+      <name>#PROVIDER_AGGREGATES</name>
+      <useAggregates v="true" />
+    </entityProvider>
+    <entityField>
+      <name>CHECKLISTID</name>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Checklist_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_NEW</name>
+      <valueProcess>%aditoprj%/entity/Checklist_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <valueProcess>%aditoprj%/entity/Checklist_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Checklist_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityProvider>
+      <name>Checklists</name>
+    </entityProvider>
+    <entityConsumer>
+      <name>ChecklistEntries</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ChecklistEntry_entity</entityName>
+        <fieldName>ChecklistEntries</fieldName>
+      </dependency>
+    </entityConsumer>
+  </entityFields>
+  <recordContainers>
+    <dbRecordContainer>
+      <name>db</name>
+      <alias>Data_alias</alias>
+      <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>CHECKLISTID.value</name>
+          <recordfield>CHECKLIST.CHECKLISTID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>CHECKLIST.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>CHECKLIST.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>CHECKLIST.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>CHECKLIST.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+      </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>6151d9b7-6253-459b-953d-027710b120d7</name>
+          <tableName>CHECKLIST</tableName>
+          <primaryKey>CHECKLISTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
+    </dbRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/Checklist_entity/entityfields/date_edit/valueProcess.js b/entity/Checklist_entity/entityfields/date_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1325e54818a2ef8aef43c452e840cf0e00a340b
--- /dev/null
+++ b/entity/Checklist_entity/entityfields/date_edit/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT)
+{
+    result.string(vars.get("$sys.date"));
+}
\ No newline at end of file
diff --git a/entity/Checklist_entity/entityfields/date_new/valueProcess.js b/entity/Checklist_entity/entityfields/date_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..557358ecb61b3de637a1a916a37929ca88fc9563
--- /dev/null
+++ b/entity/Checklist_entity/entityfields/date_new/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+{
+    result.string(vars.get("$sys.date"));
+}
\ No newline at end of file
diff --git a/entity/Checklist_entity/entityfields/user_edit/valueProcess.js b/entity/Checklist_entity/entityfields/user_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..de5a4ba34e5e6a1abd7ba5be9d69d59f7f05330f
--- /dev/null
+++ b/entity/Checklist_entity/entityfields/user_edit/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT)
+{
+    result.string(vars.get("$sys.user"));
+}
\ No newline at end of file
diff --git a/entity/Checklist_entity/entityfields/user_new/valueProcess.js b/entity/Checklist_entity/entityfields/user_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c2c237153fee057be773b3a43d34c443734039e5
--- /dev/null
+++ b/entity/Checklist_entity/entityfields/user_new/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+{
+    result.string(vars.get("$sys.user"));
+}
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/ClassificationAdmin_entity.aod b/entity/ClassificationAdmin_entity/ClassificationAdmin_entity.aod
index dc74f4716b87e075d26e2926315c508bdf77726c..a2ecf6d0ca95c3fa6adb10903a636bc8a28eab8e 100644
--- a/entity/ClassificationAdmin_entity/ClassificationAdmin_entity.aod
+++ b/entity/ClassificationAdmin_entity/ClassificationAdmin_entity.aod
@@ -1,10 +1,10 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>ClassificationAdmin_entity</name>
+  <title>Classification</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/ClassificationAdmin_entity/documentation.adoc</documentation>
   <icon>VAADIN:LIST_OL</icon>
-  <title>Classification</title>
   <grantUpdateProcess>%aditoprj%/entity/ClassificationAdmin_entity/grantUpdateProcess.js</grantUpdateProcess>
   <grantDeleteProcess>%aditoprj%/entity/ClassificationAdmin_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/ClassificationAdmin_entity/contentTitleProcess.js</contentTitleProcess>
@@ -39,7 +39,7 @@
     <entityField>
       <name>CLASSIFICATIONTYPEID</name>
       <title>Indicator</title>
-      <mandatory v="true" />
+      <mandatory v="false" />
       <stateProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationtypeid/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationtypeid/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationtypeid/displayValueProcess.js</displayValueProcess>
@@ -49,9 +49,10 @@
       <title>Classification</title>
       <contentType>TEXT</contentType>
       <groupable v="true" />
-      <mandatory v="true" />
+      <mandatory v="false" />
       <dropDownProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroup/dropDownProcess.js</dropDownProcess>
       <textInputAllowed v="true" />
+      <stateProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroup/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroup/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroup/displayValueProcess.js</displayValueProcess>
     </entityField>
@@ -71,6 +72,7 @@
       <title>Place Of Use</title>
       <mandatory v="true" />
       <dropDownProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/object_type/dropDownProcess.js</dropDownProcess>
+      <stateProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/object_type/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/object_type/valueProcess.js</valueProcess>
       <onValueChange>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/object_type/onValueChange.js</onValueChange>
       <onValueChangeTypes>
@@ -90,9 +92,17 @@
       <children>
         <entityActionField>
           <name>UpdateClassification</name>
-          <title>Recalculate all Classifications</title>
+          <title>Recalculate Classifications</title>
           <onActionProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/filterviewactiongroup/children/updateclassification/onActionProcess.js</onActionProcess>
           <iconId>VAADIN:AUTOMATION</iconId>
+          <tooltip>Starts the serverprocess manually, which will recalculate all (potentially) outdated classifications. Use this after changes to the configuration of classifications.</tooltip>
+        </entityActionField>
+        <entityActionField>
+          <name>UpdateAllClassifications</name>
+          <title>Recalculate all Classifications</title>
+          <onActionProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/filterviewactiongroup/children/updateallclassifications/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:AUTOMATION</iconId>
+          <tooltip>Starts the serverprocess manually, which will recalculate all classifications from scratch. Only do this after e.g importing data from elsewhere where the outdated flag couldn't been set correctly. Since this can take some time.</tooltip>
         </entityActionField>
       </children>
     </entityActionGroup>
@@ -119,13 +129,38 @@
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityField>
+      <name>classificationTypeFilter</name>
+      <title>Usage</title>
+      <contentType>FILTER_TREE</contentType>
+      <filterTreeExcludedFieldsProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationtypefilter/filterTreeExcludedFieldsProcess.js</filterTreeExcludedFieldsProcess>
+      <stateProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationtypefilter/stateProcess.js</stateProcess>
+    </entityField>
+    <entityField>
+      <name>CLASSIFICATIONGROUPDISPLAYVALUE</name>
+      <title>Classification</title>
+      <mandatory v="true" />
+      <dropDownProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/dropDownProcess.js</dropDownProcess>
+      <textInputAllowed v="true" />
+      <stateProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/valueProcess.js</valueProcess>
+      <onValueChange>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/onValueChange.js</onValueChange>
+    </entityField>
+    <entityField>
+      <name>SCOREPOINTS</name>
+      <title>Max Points</title>
+      <contentType>NUMBER</contentType>
+      <mandatory v="true" />
+      <mandatoryProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/scorepoints/mandatoryProcess.js</mandatoryProcess>
+      <stateProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/scorepoints/stateProcess.js</stateProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
       <name>jDito</name>
       <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
       <contentProcess>%aditoprj%/entity/ClassificationAdmin_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
-      <hasDependentRecords v="false" />
+      <hasDependentRecords v="true" />
       <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>
@@ -160,6 +195,18 @@
         <jDitoRecordFieldMapping>
           <name>recordCategory.value</name>
         </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>classificationTypeFilter.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>classificationTypeFilter.displayValue</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>SCOREPOINTS.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>CLASSIFICATIONGROUPDISPLAYVALUE.value</name>
+        </jDitoRecordFieldMapping>
       </recordFieldMappings>
     </jDitoRecordContainer>
   </recordContainers>
diff --git a/entity/ClassificationAdmin_entity/documentation.adoc b/entity/ClassificationAdmin_entity/documentation.adoc
index 390fb4c5dca8e222225334788788753279bc5d4b..52829958f6942c4a6c44173339b47fb1422aacfe 100644
--- a/entity/ClassificationAdmin_entity/documentation.adoc
+++ b/entity/ClassificationAdmin_entity/documentation.adoc
@@ -10,19 +10,19 @@ Purpose:
     This Entity gives the administrators an easy way to change the classification.
     Classifications get stored in the Classification table with their own uid, the ids of the classification type, classification score, object_rowId and object_type.
 
-    This entity displays the classifications (classificationGroup) and indicators (classificationType) grouped with the usage (object_type) in an treetable.
-    with the usage (object_type) as the first group, followed by the classifications (classificationgroup) of that group and it's indicators.
+    This entity displays the classifications (classificationGroup) and indicators (classificationType) and their usage(filter) grouped with the object_type in an treetable.
+    with the object_type as the first group, followed by the classifications (classificationgroup) of that group and it's indicators.
     The grading of the classification can be changed in the preview of an classification.
     The possible values of an indicator can be changed when opening the preview of the indicator.
 
     TreeTable Example: 
 
-        USAGE           CLASSIFICATION      INDICATOR
+                       CLASSIFICATION      INDICATOR            USAGE
         Organisation
                         1. Target Group     
-                                            Industry
-                                            Headquarters
-                                            Product preference
+                                            Industry            No restrictions
+                                            Headquarters        Filter set                  (ToDo: 1067241)
+                                            Product preference  No restrictions
                         2. Customer value   
         Salesproject    
                         1. Classification
@@ -31,8 +31,8 @@ Purpose:
 
 Particularities:
     
-    The classification gets updated via the "updateClassifications_serverProcess", which runs periodically, 
-    you can also start it manually using the action of this entity (currently invisible).
+    The classification gets updated via the "updateClassifications_serverProcess", which should run periodically, 
+    you can also start it manually using the action of this entity.
 
     The Classification consists of the following entities:
     Classification_entity,
@@ -53,23 +53,45 @@ Particularities:
 
 Adding the classification to other modules:
 
-    The Classification is only implemented for Organisation and Salesproject at the moment but can easily be used in other modules aswell by doing the following:
 
-    Add the Consumers "Classifications" and "ClassificationGroups" to the module you want to add the classification functionality 
-    and configure them the same way as in organisation and salesproject.
-    If you want to also have the classification in the preview and Filterview you also have to add the field "CLASSIFICATIONSTORAGE_ID" 
-    and configure the following things:
-        -add CLASSIFICATIONSTORAGE at the Linkinformation of the recordContainer (Primary key: CLASSIFICATIONSTORAGEID, UID Table: false, Read only: true)
-        -add the left join in the fromClauseProcess to CLASSIFICATIONSTORAGE using CLASSIFICATIONSTORAGE.OBJECT_ROWID = TableName.TableUid 
-        -add the recordfieldmapping to the field (CLASSIFICATIONSTORAGE.CLASSIFICATIONSTORAGEID)
-        -add the CLASSIFICATIONSTORAGE_ID to the Filterview and Preview
-    Add the reference to the ClassificationView to the Mainview Context (see als organsiation and salesproject) 
+    The Classification is only implemented for Organisation and Salesproject at the moment but can easily be used in other modules aswell by doing the following:
 
     Extend the Keywordregistry and the classificationTypes in AB_KEYWORD_ENTRY by the new Module you are implementing the classification for.
     Also extend the CLASSIFICATIONADMIN_entity.CLASSIFICATIONTYPEPLACEOFUSE DropDownProcess.
-    Add ClassificationUtils.insertEmptyClassification() with the Uid und vars.get("$sys.currentcontextname") to the onInsert of the Module 
-    and also add the delete conditon to the onDelete (newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", eigeneUid).deleteData();)
-    !Important: if you are adding or deleting these datasets you always have to also insert/delete the dataset into CLASSIFICATIONSTORAGE entry,
-     so add the above mentioned delete condition and onInsertFunction to all actions that delete/create those datasets.!
 
-    Now you can either configure your classifications in the client or via liquibase
\ No newline at end of file
+    Add the Consumers "Classifications" and "ClassificationGroups" to the module you want to add the classification functionality and configure them the same way as in Organisation_entity and Salesproject_entity.
+    If you want to also have the classification in the preview and Filterview you also have to add the field "CLASSIFICATIONSTORAGEVALUE" and configure the following things:
+            -add CLASSIFICATIONSTORAGE at the Linkinformation of the recordContainer (Primary key: CLASSIFICATIONSTORAGEID, UID Table: false, Read only: true)
+            -add the left join in the fromClauseProcess to CLASSIFICATIONSTORAGE using CLASSIFICATIONSTORAGE.OBJECT_ROWID = TableName.TableUid 
+            -add the recordfieldmapping to the field (CLASSIFICATIONSTORAGE.CLASSIFICATIONSTORAGEID)
+            -add CLASSIFICATIONSTORAGE_ID to the Filterview and Preview.
+            -optional: check "filterable" if you want it filterable (probably not that useful)
+    Add the reference to the ClassificationView to the Mainview Context (see als organsiation and salesproject) 
+    Add both of the classificationFilterExtensionSets: 
+        -"ClassificationType_filter" for filtering of the classificationTypes and it's values
+        -"ClassificationType_filter" for filtering of the achieved Classifications for each group
+
+    Important: 
+    -If you are deleting these datasets you always have to also delete the CLASSIFICATIONSTORAGE entry and the classification entries(if they exist), 
+    so add the these deleteconditions to all actions that delete those datasets:
+            newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", eigeneUid).deleteData();
+            newWhere("CLASSIFICATION.OBJECT_ROWID", eigeneUid).deleteData();
+    -Be sure to use WorkflowSignalSender.updated(); in the onUpdateProcess of the module and add the dependency mapping for classificationStorage in 
+    the Dependency_lib so the outdated flag of the classificationStorage dataset can automatically be set everytime an dataset get's modified
+
+
+    Now you can either configure your classifications in the client or via liquibase
+
+    If you already have old ClassificationDatasets:
+    A lot has changed in terms of datastructure:
+    The groups now have their own table and we are using an uuid instead of the groupname for the classificationgroups
+    We store classificationgrading with the the minPERCENT and the resulting grading for each classificationGroup dataset
+    We can now store filter for classificationtype datasets
+    We now store the scorepoints for classificationtype datasets
+    we are storing the achieved classifications (e.g. "ACD") in CLASSIFICATIONSTORAGE 
+    and the stored classifiaction now also store the value(because it will be possible to also use things like attributes as classifications) and the 
+    scorepoints (scorepercent of the linked classificationscore dataset * Scorepoints of the linked classificationtype dataset)
+    We also added an outdated flag to both ClassificationStorage and ClassificationType -> so the updateClassificationsServerprocess knows what it 
+    has to update (see also documentationProperty of said process)
+        - The ClassificationStorage one get's set via the onUpdate of the module (see above)
+        - The ClassificationType get's set for changes in classificationAdmin
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationgroup/stateProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationgroup/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..04d6ba3c02af036fc51b33769653aaf8c06e1088
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationgroup/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if(vars.get("$sys.operatingstate") != neon.OPERATINGSTATE_EDIT && vars.get("$sys.operatingstate") != neon.OPERATINGSTATE_NEW)
+    result.string(neon.COMPONENTSTATE_EDITABLE)
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE)
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/dropDownProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/dropDownProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..917fbdf4fd535892b9a297d66d82bd0e16e21c92
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/dropDownProcess.js
@@ -0,0 +1,16 @@
+import("Classification_lib");
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+//no Translation since the same logic as in the Keywords applies (Admin User is able to change the title)
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
+{
+    var objectType = vars.get("$field.OBJECT_TYPE")
+    if (objectType)
+    {
+        var obj = ClassificationUtils.getAllGroups(objectType);
+        
+        result.object(obj);
+    }
+}
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/onValueChange.js b/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/onValueChange.js
new file mode 100644
index 0000000000000000000000000000000000000000..ea41f9b73265437d01ee5d12218b4aa8a358f74b
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/onValueChange.js
@@ -0,0 +1,16 @@
+import("system.neon");
+import("system.vars");
+import("Sql_lib");
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+{
+    var sorting = newSelect("CLASSIFICATIONGROUP.SORTING")
+                                .from("CLASSIFICATIONGROUP")
+                                .where("CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID", vars.get("$this.value"))
+                                .cell();
+
+    if(sorting)
+    {
+        neon.setFieldValue("$field.SORTING", sorting)
+    }
+}
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/stateProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..75628dd48b118ed61a38a10a7e1a96a2b58d8ec7
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/stateProcess.js
@@ -0,0 +1,11 @@
+import("Classification_lib");
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if((vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT || vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW))
+{
+    result.string(neon.COMPONENTSTATE_EDITABLE)
+}
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE)
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/valueProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ad68c834ce9d2dde7ae05c13957bbab6d3737755
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/valueProcess.js
@@ -0,0 +1,19 @@
+import("system.result");
+import("system.vars");
+import("system.translate");
+import("Sql_lib");
+import("Classification_lib");
+
+var res = vars.get("$this.value");
+if(!res)
+{
+    var classificationGroupId = vars.get("$field.CLASSIFICATIONGROUP");
+    if(classificationGroupId)
+    {
+        res = newSelect("CLASSIFICATIONGROUP.TITLE")
+                            .from("CLASSIFICATIONGROUP")
+                            .where("CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID", classificationGroupId)
+                            .cell();
+    }
+}
+result.string(res);
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationtypefilter/filterTreeExcludedFieldsProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationtypefilter/filterTreeExcludedFieldsProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..cf03254dee3ad99700634720a48d4bbeb569bd23
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationtypefilter/filterTreeExcludedFieldsProcess.js
@@ -0,0 +1,84 @@
+import("system.neon");
+import("system.text");
+import("Classification_lib");
+import("system.vars");
+import("Context_lib");
+import("Dependency_lib");
+import("system.project");
+import("ClassificationFilter_lib");
+import("Sql_lib");
+import("system.result");
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT)
+{
+    //We want to exclude all the classificationFilterFields.
+    //Excluding via this process works by returning a array with all the fieldNames you want to exclude.
+    //The ClassificationFilters are ClassificationFilterExtensionSets so the name of one of these fields looks like this:
+    //      "#EXTENSION." + Set-Name + "." + Field-Name + "#" + Contenttype
+    // e.g: "#EXTENSION.ClassificationType_filter.d67397c5-5e05-433b-b61d-12807906aa5a#TEXT""
+
+    var classificationTypes = newSelect("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID, CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATIONTYPE.OBJECT_TYPE")
+                                        .from("CLASSIFICATIONTYPE")
+                                        .join("CLASSIFICATIONGROUP", "CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID = CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID")
+                                        .orderBy("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.SORTING")
+                                        .table();
+
+    var res = ["CLASSIFICATIONVALUE"];
+    var groupObject = {};
+    var sqlHelper = new SqlMaskingUtils();
+    var ii;
+    var previousObjectType;
+
+    for (let i = 0; i < classificationTypes.length; i++) {
+        //classificationTypeFilterFields are just the classificationTypeId with the correct prefix and contenttype
+        res.push("#EXTENSION.ClassificationType_filter."+classificationTypes[i][0]+"#TEXT")
+
+        //classificationGroupFilterFields are are a little more complicated:
+        //it's the classificationGroupId + the correct SqlCondition (as String) encoded via ClassificationGroupFilterNameCoder +correct prefix and contenttype
+        if(!groupObject.hasOwnProperty(classificationTypes[i][1]))//only once per group
+        {
+            if(previousObjectType == null || previousObjectType != classificationTypes[i][2])
+            {
+                ii = 0;// reset the position once we are done with that object_type (possible thanks to the orderBy of the select above
+            }
+            
+            var sqlConditionForGroup = SqlBuilder.caseWhen(newWhere("CLASSIFICATIONSTORAGE.CLASSIFICATIONVALUE is null"))
+                                                            .thenString("-")
+                                                            .elseValue(sqlHelper.substring("CLASSIFICATIONVALUE", ii+1, 1))
+                                                            .toString();
+                                                            
+            res.push("#EXTENSION.ClassificationGroup_filter."+ClassificationGroupFilterNameCoder.encode(classificationTypes[i][1], sqlConditionForGroup)+"#TEXT");
+            groupObject[classificationTypes[i][1]] = "";
+            ii++;// used for the correct Position in the grading string (we need the exact same condition as in the filterExtensionSet
+            previousObjectType = classificationTypes[i][2];
+        }
+    }
+
+    //remove all the fields of consumers with no dependency set between the entity of the object_type and the consumer entity
+    var context = text.decodeMS(text.decodeMS(vars.get("$field.UID"))[0])[0];
+
+    var entity = ContextUtils.getEntity(context);
+    var fields = project.getEntityStructure(entity)["fields"];
+
+    for (var field in fields)
+    {
+        if(fields[field]["fieldType"] == "CONSUMER")
+        {
+            var consumerEntity = fields[field]["entityName"];
+
+            if(!Dependency.getReverseDependency(entity).includes(consumerEntity))
+            {
+                var consumerStructure = project.getEntityStructure(consumerEntity);
+                var consumerName = fields[field]["name"];
+                var consumerFields = consumerStructure["fields"];
+                
+                for (var consumerField in consumerFields)
+                {
+                    //name of these filterFields = consumerName + '.' + fieldname
+                    res.push(consumerName +"."+consumerFields[consumerField]["name"]);
+                }
+            }
+        }
+    }
+    result.object(res);
+}
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationtypefilter/stateProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationtypefilter/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..460ef2a0b5860fafd7186f2d359295cd25c4b90e
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationtypefilter/stateProcess.js
@@ -0,0 +1,15 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+import("Classification_lib");
+
+var state;
+var recordCategory = vars.get("$field.recordCategory");
+if((recordCategory != $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_TYPE() 
+        && (vars.get("$sys.operatingstate") != neon.OPERATINGSTATE_NEW)&& (vars.get("$sys.presentationmode") != neon.CONTEXT_PRESENTATIONMODE_FILTER)) 
+            || vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+    state = neon.COMPONENTSTATE_INVISIBLE;
+else
+    state = neon.COMPONENTSTATE_EDITABLE;
+    
+result.string(state);
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/filterviewactiongroup/children/updateallclassifications/onActionProcess.js b/entity/ClassificationAdmin_entity/entityfields/filterviewactiongroup/children/updateallclassifications/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a8ccdd28ccba6f9fe16b69d57538c16dc9898ba3
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/filterviewactiongroup/children/updateallclassifications/onActionProcess.js
@@ -0,0 +1,24 @@
+import("system.process");
+import("system.question");
+import("system.text");
+import("system.translate");
+import("system.util");
+import("system.vars");
+
+var execute = question.askYesNo(translate.text("Start Serveprocess"), translate.text("Are you sure you want to recalculate all classifications using the current classificationgradings? This can take some time, since ALL classifications will get freshly calculated and updated if needed."), false);
+if(execute)
+{
+    
+    
+    var processConfig = process.createStartAsyncConfig()
+                                                        .setName("updateClassifications_serverProcess")
+                                                        .setUser( vars.get("$sys.user"))
+                                                        .setThreadPriority(process.THREADPRIORITY_LOW)
+                                                        .setTimerType(process.TIMERTYPE_SERVER)
+                                                        .setLocalVariables({"recalculateAll_param" : true});
+                                                        
+
+    process.startAsync(processConfig);
+
+    question.showMessage(translate.text("Serverprocess has been started"), question.INFORMATION, translate.text("Classification"));
+}
diff --git a/entity/ClassificationAdmin_entity/entityfields/object_type/stateProcess.js b/entity/ClassificationAdmin_entity/entityfields/object_type/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6e826e0c8c9c707c2a6618da377d37812671571a
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/object_type/stateProcess.js
@@ -0,0 +1,16 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+import("Classification_lib");
+
+var state;
+var recordCategory = vars.get("$field.recordCategory");
+
+if(vars.get("$sys.operatingstate") != neon.OPERATINGSTATE_NEW && (recordCategory != $ClassificationRecordCategories.CLASSIFICATION_GROUP_EXISTS() 
+    || recordCategory != $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_GROUP()
+    || recordCategory != $ClassificationRecordCategories.CLASSIFICATION_GROUP_DOESNT_EXIST()))
+    state = neon.COMPONENTSTATE_DISABLED;
+else
+    state = neon.COMPONENTSTATE_EDITABLE;
+    
+result.string(state);
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/scorepoints/mandatoryProcess.js b/entity/ClassificationAdmin_entity/entityfields/scorepoints/mandatoryProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..17d5c36488374de4df1f312b44a470014b336a36
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/scorepoints/mandatoryProcess.js
@@ -0,0 +1,16 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+import("Classification_lib");
+
+var mandatory;
+var recordCategory = vars.get("$field.recordCategory");
+
+if(vars.get("$sys.operatingstate") != neon.OPERATINGSTATE_NEW && (recordCategory == $ClassificationRecordCategories.CLASSIFICATION_GROUP_EXISTS() 
+    || recordCategory == $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_GROUP()
+    || recordCategory == $ClassificationRecordCategories.CLASSIFICATION_GROUP_DOESNT_EXIST()))
+    mandatory = false;
+else
+    mandatory = true;
+    
+result.string(mandatory);
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/scorepoints/stateProcess.js b/entity/ClassificationAdmin_entity/entityfields/scorepoints/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..1698a32794efed84f712e9985fe0ac602a8c07c6
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/scorepoints/stateProcess.js
@@ -0,0 +1,16 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+import("Classification_lib");
+
+var state;
+var recordCategory = vars.get("$field.recordCategory");
+
+if(vars.get("$sys.operatingstate") != neon.OPERATINGSTATE_NEW && (recordCategory == $ClassificationRecordCategories.CLASSIFICATION_GROUP_EXISTS() 
+    || recordCategory == $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_GROUP()
+    || recordCategory == $ClassificationRecordCategories.CLASSIFICATION_GROUP_DOESNT_EXIST()))
+    state = neon.COMPONENTSTATE_INVISIBLE;
+else
+    state = neon.COMPONENTSTATE_EDITABLE;
+    
+result.string(state);
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/sorting/stateProcess.js b/entity/ClassificationAdmin_entity/entityfields/sorting/stateProcess.js
index 2cd13f04b8ed1f8cd3f762168f0b3208ada7cf1e..759b36de7c39c4a53ea6baa74cd5298958b6a0ee 100644
--- a/entity/ClassificationAdmin_entity/entityfields/sorting/stateProcess.js
+++ b/entity/ClassificationAdmin_entity/entityfields/sorting/stateProcess.js
@@ -9,7 +9,7 @@ var recordCategory = vars.get("$field.recordCategory");
 if(recordCategory == $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_TYPE())
     state = neon.COMPONENTSTATE_INVISIBLE;
 else if(recordCategory == $ClassificationRecordCategories.CLASSIFICATION_GROUP_EXISTS())
-    state = neon.COMPONENTSTATE_DISABLED;
+    state = neon.COMPONENTSTATE_EDITABLE;
 else
     state = neon.COMPONENTSTATE_EDITABLE;
     
diff --git a/entity/ClassificationAdmin_entity/entityfields/sorting/valueProcess.js b/entity/ClassificationAdmin_entity/entityfields/sorting/valueProcess.js
index 6eaad20db1e0a95b1bfa4842971a4e69a037b151..2a00907372cd2e3b236bcae2b2b04410c1e710ef 100644
--- a/entity/ClassificationAdmin_entity/entityfields/sorting/valueProcess.js
+++ b/entity/ClassificationAdmin_entity/entityfields/sorting/valueProcess.js
@@ -1,43 +1,49 @@
+import("Classification_lib");
 import("system.neon");
 import("system.vars");
 import("system.result");
 import("system.text");
 import("Sql_lib");
 
-if(!vars.get("$this.value"))
+var sysSelection = vars.get("$sys.selection");
+var uid = vars.get("$field.UID");
+var id;
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT )
 {
-    var sysSelection = vars.get("$sys.selection");
-    var uid = vars.get("$field.UID");
-    var id;
-    if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT )
+    if(sysSelection.length > 0)
     {
-        if(sysSelection.length > 0)
+        var res;
+        var value = vars.get("$field.CLASSIFICATION_PARENT_ID");
+        if(value)
         {
-            var res;
-            var value = vars.get("$field.CLASSIFICATION_PARENT_ID");
-            if(value)
+            if(value.charAt(0) != ";" && value.charAt(value.length) != ";")
+                id = text.decodeMS(uid)[1];
+            else
             {
-                if(value.charAt(0) != ";" && value.charAt(value.length) != ";")
-                    id = text.decodeMS(uid)[1];
-                else
-                {
-                    decodedIdvalues = text.decodeMS(value);
-                    if(decodedIdvalues[0].charAt(0) != ";" && decodedIdvalues[0].charAt(decodedIdvalues[0].length) != ";")
-                        id = text.decodeMS(text.decodeMS(uid)[0])[1];
-                }
+                decodedIdvalues = text.decodeMS(value);
+                if(decodedIdvalues[0].charAt(0) != ";" && decodedIdvalues[0].charAt(decodedIdvalues[0].length) != ";")
+                    id = text.decodeMS(text.decodeMS(uid)[0])[1];
             }
         }
     }
-    else if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
-        id = vars.get("$field.CLASSIFICATIONGROUP");
-        
-    var sorting = newSelect("CLASSIFICATIONGROUP.SORTING")
-                                .from("CLASSIFICATIONGROUP")
-                                .where("CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID", id)
-                                .cell();
-    if(sorting)
-        result.string(sorting);
-    else
-        result.string("1");
 }
+else if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+    id = vars.get("$field.CLASSIFICATIONGROUP");
 
+var sorting = newSelect("CLASSIFICATIONGROUP.SORTING")
+                            .from("CLASSIFICATIONGROUP")
+                            .where("CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID", id)
+                            .cell();
+var fieldValue = vars.get("$this.value");
+if((!fieldValue || fieldValue == "") && sorting)
+{
+    result.string(sorting);
+}
+else if(fieldValue)
+{
+    result.string(fieldValue);
+}
+else
+{
+    result.string("1");
+}
diff --git a/entity/ClassificationAdmin_entity/recordcontainers/jdito/contentProcess.js b/entity/ClassificationAdmin_entity/recordcontainers/jdito/contentProcess.js
index 62e3899f1be13fb9086e3539720f58b0a177adc3..4022fc575bdb2dd5b3884809e0bb4819285cc65b 100644
--- a/entity/ClassificationAdmin_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/ClassificationAdmin_entity/recordcontainers/jdito/contentProcess.js
@@ -1,3 +1,7 @@
+import("Context_lib");
+import("JditoFilter_lib");
+import("system.entities");
+import("system.eMath");
 import("Classification_lib");
 import("Sql_lib");
 import("system.result");
@@ -7,13 +11,15 @@ import("system.util");
 import("system.vars");
 
 var idvalues = vars.get("$local.idvalues");
-var decodedIdvalues;
+var decodedIdvalues, entity, groupTitle;
 var res = [];
 if(idvalues)
 {
     if(idvalues[0].charAt(0) != ";" && idvalues[0].charAt(idvalues[0].length) != ";")
+    {
         res.push([idvalues[0], "", "", "", "", "", idvalues[0], translate.text(idvalues[0]), 
-            "", $ClassificationRecordCategories.CLASSIFICATION_OBJECT_TYPE()])
+            "", $ClassificationRecordCategories.CLASSIFICATION_OBJECT_TYPE(), "", "", "", ""]);
+    }
     else
     {
         decodedIdvalues = text.decodeMS(idvalues[0]);
@@ -23,59 +29,88 @@ if(idvalues)
                                     .from("CLASSIFICATIONGROUP")
                                     .where("CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID", decodedIdvalues[1])
                                     .cell();
+
             res.push([idvalues[0], decodedIdvalues[0], decodedIdvalues[1], translate.text(groupName), "", "", "", 
-                "", "", $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_GROUP()]);
+                "", "", $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_GROUP(), "", "", "", groupName]);
         }
-        
         else
         {
-            var scoreType = newSelect("CLASSIFICATIONTYPE.SCORETYPE")
+            var typeAndFilter = newSelect("OBJECT_TYPE, CLASSIFICATIONTYPE.FILTER, CLASSIFICATIONTYPE.SCORETYPE, CLASSIFICATIONTYPE.SCOREPOINTS")
                                     .from("CLASSIFICATIONTYPE")
                                     .where("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", decodedIdvalues[1])
                                     .orderBy("CLASSIFICATIONTYPE.SCORETYPE")
-                                    .cell();
-            res.push([idvalues[0], decodedIdvalues[0], "", "",decodedIdvalues[1], translate.text(scoreType), 
-                "", "","", $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_TYPE()]);
+                                    .arrayRow();
+                                    
+            var filter = typeAndFilter[1];
+            var filterDisplay = translate.text("Filter set"); //ToDo: "resolved" DisplayValue for the Filterstrings #1067160/1067241
+            entity = ContextUtils.getEntity(typeAndFilter[0]);
+            var emptyFilter = JditoFilterUtils.getEmptyFilter(entity)
+            if(filter == "")
+                filter = emptyFilter;
+            if (filter == emptyFilter)
+                filterDisplay = translate.text("No Restrictions");
+            
+            var maxScore = typeAndFilter[3];
+            groupTitle = newSelect("CLASSIFICATIONGROUP.TITLE")
+                                        .from("CLASSIFICATIONGROUP")
+                                        .where("CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID", text.decodeMS(decodedIdvalues[0])[1])
+                                        .cell();
+            
+            //ToDo: "resolved" DisplayValue for the Filterstrings #1067160/1067241
+            res.push([idvalues[0], decodedIdvalues[0], "", "", decodedIdvalues[1], translate.text(typeAndFilter[2]), 
+                "", "","", $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_TYPE(), filter, filterDisplay, maxScore, groupTitle]);
         }
     }
 }
 else
 {
-    var savedData = {};
+    var savedData = new Set();
     var classificationData = newSelect("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, \n\
-                                            CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID,  CLASSIFICATIONTYPE.SCORETYPE")
+                                            CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID,  CLASSIFICATIONTYPE.SCORETYPE, CLASSIFICATIONTYPE.FILTER, CLASSIFICATIONTYPE.SCOREPOINTS")
                                             .from("CLASSIFICATIONGROUP")
                                             .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
                                             .orderBy("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.SORTING")
-                                            .table()
-                                            
-    var objectType, classificationGroupId, classificationGroupName, classificationTypeId, classificationScoreType, uidClassificationGroup, uidClassificationType;
-    for (let  i = 0; i < classificationData.length; i++) 
-        {
-        [objectType, classificationGroupId, classificationGroupName, classificationTypeId, classificationScoreType] = classificationData[i];
-                
+                                            .table()                                   
+    
+    //run trough the data and build the tree
+    classificationData.forEach(function ([objectType, classificationGroupId, classificationGroupName, classificationTypeId, classificationScoreType, classificationTypeFilter, classificationTypeScorePoints])
+    {                
         uidClassificationGroup = text.encodeMS([objectType, classificationGroupId]);
         uidClassificationType = text.encodeMS([uidClassificationGroup, classificationTypeId]);
+        uidClassificationTypeFilter = text.encodeMS([uidClassificationType, util.getNewUUID()]);
         
         
-        if(!savedData.hasOwnProperty(classificationData[i][0])) //objectType
+        if(!savedData.has(objectType)) //objectType
         { 
             res.push([objectType, "", "", "", "", "", objectType, translate.text(objectType), 
-                "", $ClassificationRecordCategories.CLASSIFICATION_OBJECT_TYPE()]);
-            savedData[classificationData[i][0]] = "";
+                "", $ClassificationRecordCategories.CLASSIFICATION_OBJECT_TYPE(), "", "", "", ""]);
+            savedData.add(objectType);
         }
-        if(!savedData.hasOwnProperty(classificationData[i][1])) //classificationGroup
+        if(!savedData.has(classificationGroupId)) //classificationGroup
         {
             res.push([uidClassificationGroup, objectType, classificationGroupId, translate.text(classificationGroupName), "", "", "",
-                "", "", $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_GROUP()]);
-            savedData[classificationData[i][1]] = "";
+                "", "", $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_GROUP(), "", "", "", ""]);
+            savedData.add(classificationGroupId);
         }
-        if(!savedData.hasOwnProperty(classificationData[i][3])) //classificationType
+        if(!savedData.has(classificationTypeId)) //classificationType
         {
+            var classificationTypeFilterDisplay = translate.text("Filter set"); //ToDo: "resolved" DisplayValue for the Filterstrings #1067160/1067241
+            entity = ContextUtils.getEntity(objectType);
+            emptyFilter = JditoFilterUtils.getEmptyFilter(entity);
+            if(classificationTypeFilter == "")
+            {
+                classificationTypeFilter = emptyFilter;
+            }
+            if(classificationTypeFilter == emptyFilter)
+            {
+                classificationTypeFilterDisplay = translate.text("No Restrictions");
+            }
+
             res.push([uidClassificationType, uidClassificationGroup, "", "", classificationTypeId, translate.text(classificationScoreType), 
-                "", "", "", $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_TYPE()]);
-            savedData[classificationData[i][3]] = "";
+                "", "", "", $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_TYPE(), classificationTypeFilter, classificationTypeFilterDisplay, classificationTypeScorePoints, ""]);
+
+            savedData.add(classificationTypeId);
         }
-    }
+    })
 }
 result.object(res);
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/recordcontainers/jdito/onDelete.js b/entity/ClassificationAdmin_entity/recordcontainers/jdito/onDelete.js
index c7da129c3b05bfcf9fd0f48988914efa532bc5ac..57378b99c786b9baab1443e999d675df3fb6a351 100644
--- a/entity/ClassificationAdmin_entity/recordcontainers/jdito/onDelete.js
+++ b/entity/ClassificationAdmin_entity/recordcontainers/jdito/onDelete.js
@@ -5,26 +5,22 @@ import("system.util");
 import("system.db");
 import("system.vars");
 
-try
-{
-    _delete();
-}
-finally //always make sure that the cache is as valid as possible
-{
-    //ClassificationType_entity accesses the CLASSIFICATIONSCORE (max value of scores) so we need to update the cache to prevent inconsesty
-    entities.invalidateCache("ClassificationType_entity", "db");
-    //dependecies are deleted so the cache needs to be updated
-    entities.invalidateCache("ClassificationGrading_entity", "db");
-    entities.invalidateCache("ClassificationGroup_entity", "db");
-    entities.invalidateCache("ClassificationScore_entity", "db");
-}
+    
+//always make sure that the cache is as valid as possible
+
+//ClassificationType_entity accesses the CLASSIFICATIONSCORE (max value of scores) so we need to update the cache to prevent inconsesty
+entities.invalidateCache("ClassificationType_entity", "db");
+//dependecies are deleted so the cache needs to be updated
+entities.invalidateCache("ClassificationGrading_entity", "db");
+entities.invalidateCache("ClassificationGroup_entity", "db");
+entities.invalidateCache("ClassificationScore_entity", "db");
+
+_delete();
 
 //private helper function for better code readability
 function _delete()
 {
     var rowData = vars.get("$local.rowdata");
-    var groupID;
-    var groupValue = rowData["CLASSIFICATIONGROUP.value"];
     var classificationType = rowData["CLASSIFICATIONTYPEID.value"];
     var objectType = rowData["OBJECT_TYPE.value"];
     var table;
@@ -40,25 +36,6 @@ function _delete()
         newWhere("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID", classificationType).deleteData(); //deletes the classificationscores that are linked to the classificationtype
         newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationType).deleteData(); //deletes the classificationtype
         newWhere("CLASSIFICATION.CLASSIFICATIONTYPE_ID", classificationType).deleteData(); //deletes all the classifications
-    
-        var gradingTable = ClassificationUtils.getGradingTableByGroupId(classificationGroup); 
-
-        var maxScore = ClassificationUtils.getMaxScore(classificationGroup) //important to do this AFTER deleting the classificationscores to get the new value
-
-        if(gradingTable[0][1] != maxScore)
-        {
-            var column = ["MAXGRADEFORSCORE"];
-            table = ["CLASSIFICATIONGRADING"];
-            var multiplicand = maxScore/gradingTable[0][1];
-            var update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[0][0])
-            .updateData(true, table, column, null, [maxScore]);
-
-            for (let i = 1; i < gradingTable.length; i++) 
-            {
-                update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[i][0])
-                .updateData(true, table, column, null, [parseInt(gradingTable[i][1] * multiplicand)]);
-            }
-        }
     }
 
     else if(recordCategory == $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_GROUP()) //the deleted dataset must be an classificationGroup
diff --git a/entity/ClassificationAdmin_entity/recordcontainers/jdito/onInsert.js b/entity/ClassificationAdmin_entity/recordcontainers/jdito/onInsert.js
index 62d83bc0564f53c4c851555ceaf91d428fe5a234..687c5a1a474b6a974e613b30fdff2d4675d9a55d 100644
--- a/entity/ClassificationAdmin_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/ClassificationAdmin_entity/recordcontainers/jdito/onInsert.js
@@ -3,32 +3,29 @@ import("system.util");
 import("system.db");
 import("system.vars");
 
-try
-{
-    _insert();
-}
-finally //always make sure that the cache is as valid as possible
-{
-    //ClassificationType_entity accesses the CLASSIFICATIONSCORE (max value of scores) so we need to update the cache to prevent inconsesty
-    entities.invalidateCache("ClassificationType_entity", "db");
-    //Grading-values are dependent since they are inserted within this process (maxgrade)
-    entities.invalidateCache("ClassificationGrading_entity", "db");
-    //groups are dependent since they are inserted within this process
-    entities.invalidateCache("ClassificationGroup_entity", "db");
-}
+ //always make sure that the cache is as valid as possible
+
+//ClassificationType_entity accesses the CLASSIFICATIONSCORE (max value of scores) so we need to update the cache to prevent inconsesty
+entities.invalidateCache("ClassificationType_entity", "db");
+//Grading-values are dependent since they are inserted within this process (maxgrade)
+entities.invalidateCache("ClassificationGrading_entity", "db");
+//groups are dependent since they are inserted within this process
+entities.invalidateCache("ClassificationGroup_entity", "db");
+
+_insert();
 
 //private helper function for better code readability
 function _insert()
 {
     var rowData = vars.get("$local.rowdata");
-    var groupID;
-    var groupValue = rowData["CLASSIFICATIONGROUP.value"];
-    if(groupValue.length != 36 && (groupValue.match(/-/g) || []).length != 4) //if classificationGroup is no Id -> insert new group
+    var groupId;
+    var groupValue = rowData["CLASSIFICATIONGROUPDISPLAYVALUE.value"];
+    if(groupValue.length != 36 && (groupValue.match(/-/g) || []).length != 4) //if groupValue is no Id -> insert new group
     {
-        groupID = util.getNewUUID();
+        groupId = util.getNewUUID();
         var groupValues = [
             groupValue,
-            groupID,
+            groupId,
             rowData["SORTING.value"]
         ];
         
@@ -39,40 +36,28 @@ function _insert()
         ];
         
         db.insertData("CLASSIFICATIONGROUP", groupColumns, null, groupValues);
-        
-        var gradingColumns = [
-            "CLASSIFICATIONGRADINGID",
-            "GRADING",
-            "MAXGRADEFORSCORE",
-            "CLASSIFICATIONGROUP_ID"
-        ];
-        
-        var gradingValues = [
-            util.getNewUUID(),
-            "A",
-            0,
-            groupID
-        ];
-        
-        db.insertData("CLASSIFICATIONGRADING", gradingColumns, null, gradingValues); // insert a "dummy" classificationGradingValue
     }
-    else{
-        groupID = groupValue; //else the groupValue is the groupId
+    else
+    {
+        groupId = groupValue; //else the groupValue is the groupId
     }
     
     var typeValues = [
         vars.get("$field.CLASSIFICATIONTYPEIDDISPLAYVALUE"),
         util.getNewUUID(),
-        groupID,
-        rowData["OBJECT_TYPE.value"]
-    ]
+        groupId,
+        rowData["OBJECT_TYPE.value"],
+        rowData["SCOREPOINTS.value"],
+        1
+    ];
     
     var typeColumns = [
         "SCORETYPE",
         "CLASSIFICATIONTYPEID",
         "CLASSIFICATIONGROUP_ID",
-        "OBJECT_TYPE"
+        "OBJECT_TYPE",
+        "SCOREPOINTS",
+        "OUTDATED"
     ];
-    
     db.insertData("CLASSIFICATIONTYPE", typeColumns, null, typeValues); // always insert the classificationtype
 }
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/recordcontainers/jdito/onUpdate.js b/entity/ClassificationAdmin_entity/recordcontainers/jdito/onUpdate.js
index ea803f184c537724212607c29cfa59f9342de57c..9a9e04cfd71ca1864d2663355453c080d3cc4d05 100644
--- a/entity/ClassificationAdmin_entity/recordcontainers/jdito/onUpdate.js
+++ b/entity/ClassificationAdmin_entity/recordcontainers/jdito/onUpdate.js
@@ -8,25 +8,23 @@ import("system.text");
 import("system.util");
 import("system.vars");
 
-try
-{
-    _update();
-}
-finally //always make sure that the cache is as valid as possible
-{
-    //ClassificationType_entity accesses the CLASSIFICATIONSCORE (max value of scores) so we need to update the cache to prevent inconsesty
-    entities.invalidateCache("ClassificationType_entity", "db");
-    //Grading-values are dependent since they are modified within this process (maxgrade)
-    entities.invalidateCache("ClassificationGrading_entity", "db");
-    //groups are dependent since they are modified within this process
-    entities.invalidateCache("ClassificationGroup_entity", "db");
-}
+
+//always make sure that the cache is as valid as possible
+
+//ClassificationType_entity accesses the CLASSIFICATIONSCORE (max value of scores) so we need to update the cache to prevent inconsesty
+entities.invalidateCache("ClassificationType_entity", "db");
+//Grading-values are dependent since they are modified within this process (maxgrade)
+entities.invalidateCache("ClassificationGrading_entity", "db");
+//groups are dependent since they are modified within this process
+entities.invalidateCache("ClassificationGroup_entity", "db");
+
+_update();
 
 //private helper function for better code readability
 function _update()
 {
-    var rowdata = vars.get("$local.rowdata");
-    var uid = vars.get("$field.UID");
+    var rowData = vars.get("$local.rowdata");
+    var uid = rowData["UID.value"];
 
     //for changes of the place of use (object_type), group, and title of an scoretpye dataset
     var dbFields = {
@@ -35,20 +33,27 @@ function _update()
         "CLASSIFICATIONGROUP.value": "CLASSIFICATIONGROUP_ID",
         "CLASSIFICATIONTYPEID.displayValue": "SCORETYPE",
         "SORTING.value": "SORTING",
-        "CLASSIFICATIONTYPEIDDISPLAYVALUE.value": "CLASSIFICATIONTYPEID"
+        "CLASSIFICATIONTYPEIDDISPLAYVALUE.value": "CLASSIFICATIONTYPEID",
+        "classificationTypeFilter.value": "FILTER",
+        "CLASSIFICATIONGROUPDISPLAYVALUE.value": "CLASSIFICATIONGROUP_ID",
+        "SCOREPOINTS.value": "SCOREPOINTS"
     };
 
     var table = "CLASSIFICATIONTYPE";
-    var cond;
+    var cond, typeCond;
     var values = [];
     var columns = [];
+    var groupCol = [];
+    var groupVal = [];
+    var gradingCol = [];
+    var gradingVal = [];
 
     var i;
     var isGroupDataSet = false;
 //    the classificationtypeId.value has the placeholder set when editing a classificationgroup dataset to allow us 
 //    to handle the updating differently depending on whether its an classifcation group dataset or an classification type dataset
 //    since you want changes to the name of groups to effect only the group name and changes to the group of an classificationtype to change it's group
-    if(rowdata["CLASSIFICATIONTYPEID.value"] == $ClassificationPlaceholder.TOPSECRETPLACEHOLDER()) 
+    if(rowData["CLASSIFICATIONTYPEID.value"] == $ClassificationPlaceholder.TOPSECRETPLACEHOLDER()) 
         isGroupDataSet = true;
 
     vars.get("$local.changed").forEach(function (field, i)
@@ -57,135 +62,117 @@ function _update()
         if (dbField)
         {
             columns[i] = dbField;
-            values[i] = rowdata[field] || "";
+            values[i] = rowData[field] || "";
         }
     });
 
-
     if(!isGroupDataSet) //-> update the classification type dataset
     {
-        var groupIds = ClassificationUtils.getAllGroups(vars.get("$field.OBJECT_TYPE")); //gets all existing groups of the object_type
+        var groupIds = ClassificationUtils.getAllGroups(rowData["OBJECT_TYPE.value"]); //gets all existing groups of the object_type
         var newGroupId;
         var newGroupName;
         var insertGroup = false;
-        var groupchange = true;
+        var groupChange = false;
+        var markOutdated = false;
         var newId;
-        for (i = 0; i < columns.length; i++) {
+        var condition;
+        
+        for (i = 0; i < columns.length; i++) {     
+
             if(columns[i] == "CLASSIFICATIONGROUP_ID")//if the classificationgroup_Id changed: determine whether or not a new group has to be inserted
             {
-                if(!groupIds.toString().includes(values[i]))
+                condition = true;
+                for (let ii = 0; ii < groupIds.length; ii++) {
+                    if(groupIds[ii][1] == rowData["CLASSIFICATIONGROUPDISPLAYVALUE.value"])
+                    {
+                        condition = false;
+                    }
+                }
+                if(condition && rowData["CLASSIFICATIONGROUPDISPLAYVALUE.value"].length != 36)
                 {
-                    newGroupName = values[i];
+                    newGroupName = rowData["CLASSIFICATIONGROUPDISPLAYVALUE.value"];
                     newGroupId = util.getNewUUID();
                     values[i] = newGroupId;
                     insertGroup = true;
-                    groupchange = true;
+                    groupChange = true;
                 }
-                else if(values[i] == text.decodeMS(text.decodeMS(uid)[0])[1])
+                else if(values[2] != rowData["CLASSIFICATIONGROUPDISPLAYVALUE.value"] && values[2] != rowData["CLASSIFICATIONGROUP.value"] && rowData["CLASSIFICATIONGROUPDISPLAYVALUE.value"].length == 36)
                 {
-                    groupchange = false;
-                    insertGroup = true;
-                    break;
+                    groupChange = true;
+                    insertGroup = false;
+                    values[i] = rowData["CLASSIFICATIONGROUPDISPLAYVALUE.value"];
                 }
             }
             else if(columns[i] == "CLASSIFICATIONTYPEID")
-                {
-                    columns.splice(i, 1);
-                    values.splice(i, 1);
-                    i = i-1
-                }
+            {
+                columns.splice(i, 1);
+                values.splice(i, 1);
+                i = i-1;
+            }
             else if(columns[i] == "SORTING")
-                {
-                    columns.splice(i, 1);
-                    values.splice(i, 1);
-                    i = i-1
-                }
-        }
-
-        if(groupchange == true)
-        {
-            var gradeColumn, gradeTable, multiplicand, update, gradingTable;
-            var oldGroup = ClassificationUtils.getClassificationGroup(text.decodeMS(uid)[1]);
-            var newMax = ClassificationUtils.getMaxScoreExcludeType(oldGroup, text.decodeMS(uid)[1]);
-            gradingTable = ClassificationUtils.getGradingTableByGroupId(oldGroup); 
-            
-            var lostScore = parseInt(newSelect("max(SCORE)")
-                                                .from("CLASSIFICATIONSCORE")
-                                                .where("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID", text.decodeMS(uid)[1])
-                                                .cell()); //the greatest score of the "moved" classificationtype affects the classificationGradings
-            
-            if(insertGroup) //new group has to be inserted
             {
-                var maxSorting = newSelect("distinct CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, CLASSIFICATIONGROUP.SORTING")
-                                            .from("CLASSIFICATIONGROUP")
-                                            .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
-                                            .where("CLASSIFICATIONTYPE.OBJECT_TYPE", vars.get("$field.OBJECT_TYPE"))
-                                            .orderBy("CLASSIFICATIONGROUP.SORTING desc")
-                                            .table()[0][1]; //gets the greatest sorting value of the object_type
-                db.insertData("CLASSIFICATIONGROUP", ["CLASSIFICATIONGROUPID", "TITLE", "SORTING"], null, [newGroupId, newGroupName, eMath.addInt(maxSorting, 1)]) //insert the new group (sorting is greater than the greatest one
-
-                var gradingColumns = [
-                "CLASSIFICATIONGRADINGID",
-                "GRADING",
-                "MAXGRADEFORSCORE",
-                "CLASSIFICATIONGROUP_ID"
-                ];
-
-                var gradingValues = [
-                util.getNewUUID(),
-                "A",
-                lostScore,
-                newGroupId
-                ];
-
-                db.insertData("CLASSIFICATIONGRADING", gradingColumns, null, gradingValues); // insert a "dummy" classificationGradingValue, since not having one results in problems
+                columns.splice(i, 1);
+                values.splice(i, 1);
+                i = i-1;
             }
-            else // classificationtype has to be moved to another classificatingroup
+            else if(columns[i] == "SCOREPOINTS" || columns[i] == "FILTER")
             {
-                newId = vars.get("$field.CLASSIFICATIONGROUP"); //we know that the field has the classificationgroupId of the new group set
-                newGradingTable = ClassificationUtils.getGradingTableByGroupId(newId); //we use this id to get the gradingtable of the new group
-                newNewMax = eMath.addInt(newGradingTable[0][1], lostScore) //maxvalue of the gradingtable with the added lostScore = the new maxValue
-                if(newGradingTable[0][1] != newNewMax) //update existing classificationGrading if the maxValue has changed
+                markOutdated = true
+                if(columns[i] == "FILTER")
                 {
-                    gradeColumn = ["MAXGRADEFORSCORE"];
-                    gradeTable = "CLASSIFICATIONGRADING";
-                    multiplicand = newNewMax/newGradingTable[0][1];
-                    update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", newGradingTable[0][0])
-                                            .updateData(true, gradeTable, gradeColumn,  null, [parseInt(newGradingTable[0][1] * multiplicand)]);
-
-                    for (i = 1; i < newGradingTable.length; i++) 
-                    {
-                        update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", newGradingTable[i][0])
-                                        .updateData(true, gradeTable, gradeColumn,  null, [parseInt(newGradingTable[i][1] * multiplicand)]);
-                    }
+                    if(JSON.parse(values[i]).filter.childs.length == 0) //insert "" intead of an empty filter
+                        values[i] = "";
                 }
-
             }
-
-            if(gradingTable[0][1] != newMax) //update old classificationGrading if the maxValue has changed
+            else if(columns[i] == undefined || columns[i] == null || columns[i] == "")
             {
-                gradeColumn = ["MAXGRADEFORSCORE"];
-                gradeTable = "CLASSIFICATIONGRADING";
-                multiplicand = newMax/gradingTable[0][1];
-                update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[0][0])
-                                        .updateData(true, gradeTable, gradeColumn,  null, [newMax]);
+                columns.splice(i, 1);
+                values.splice(i, 1);
+                i = i-1;
+            }
+        }
+        if(insertGroup) // new group has to be inserted
+        {
+            groupVal = [newGroupId, newGroupName];
+            groupCol = ["CLASSIFICATIONGROUPID", "TITLE"];
+            db.insertData("CLASSIFICATIONGROUP", groupCol, null, groupVal)
+            
+            gradingCol = ["CLASSIFICATIONGRADINGID", "GRADING", "MINPERCENT", "CLASSIFICATIONGROUP_ID"];
+            //also insert this dummy gradingtable
+            gradingVal = [util.getNewUUID(), "A", 76, newGroupId];
+            db.insertData("CLASSIFICATIONGRADING", gradingCol, null, gradingVal)
+            gradingVal = [util.getNewUUID(), "B", 51, newGroupId];
+            db.insertData("CLASSIFICATIONGRADING", gradingCol, null, gradingVal)
+            gradingVal = [util.getNewUUID(), "C", 26, newGroupId];
+            db.insertData("CLASSIFICATIONGRADING", gradingCol, null, gradingVal)
+            gradingVal = [util.getNewUUID(), "D", 0, newGroupId];
+            db.insertData("CLASSIFICATIONGRADING", gradingCol, null, gradingVal) 
+        }
 
-                for (i = 0; i < gradingTable.length; i++) 
+        if(groupChange || insertGroup || markOutdated)
+        {
+            columns.push("OUTDATED");
+            values.push(1)
+            if(groupChange || insertGroup)
+            {
+                var classificationTypesOfOldGroup = ClassificationUtils.getClassificationTypesOfGroup(rowData["CLASSIFICATIONGROUP.value"],rowData["CLASSIFICATIONTYPEID.value"], true)
+                                                        
+                for (i = 0; i < classificationTypesOfOldGroup.length; i++) 
                 {
-                    update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[i][0])
-                                    .updateData(true, gradeTable, gradeColumn,  null, [parseInt(gradingTable[i][1] * multiplicand)]);
+                    typeCond = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationTypesOfOldGroup[i]);
+                    typeCond.updateData(true, "CLASSIFICATIONTYPE" , ["OUTDATED"], null, [1]);
                 }
             }
         }
 
         cond = newWhereIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", text.decodeMS(uid)[1]);
-        columns.push("SCORETYPE");
-        values.push(vars.get("$field.CLASSIFICATIONTYPEIDDISPLAYVALUE"));
+
         cond.updateData(true, table, columns, null, values);
     }
+    
     else //-> update the classification group dataset
     {
-        var value = vars.get("$field.CLASSIFICATION_PARENT_ID");
+        var value = rowData["CLASSIFICATION_PARENT_ID.value"];
 
         if(value.charAt(0) != ";" && value.charAt(value.length) != ";")
             id = text.decodeMS(uid)[1];
@@ -199,8 +186,8 @@ function _update()
 
         var groupTable = "CLASSIFICATIONGROUP";
         var groupColumns = ["SORTING", "TITLE"];
-        var groupName = rowdata["CLASSIFICATIONGROUP.value"] == classificationGroupId ? rowdata["CLASSIFICATIONGROUP.displayValue"] : rowdata["CLASSIFICATIONGROUP.value"];
-        var groupValues = [vars.get("$field.SORTING"), groupName];
+        var groupName = rowData["CLASSIFICATIONGROUP.value"] == classificationGroupId ? rowData["CLASSIFICATIONGROUP.displayValue"] : rowData["CLASSIFICATIONGROUP.value"];
+        var groupValues = [rowData["SORTING.value"], groupName];
         var groupCond = newWhereIfSet("CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID", classificationGroupId);
         groupCond.updateData(true, groupTable, groupColumns, null, groupValues);
     }
diff --git a/entity/ClassificationGrading_entity/ClassificationGrading_entity.aod b/entity/ClassificationGrading_entity/ClassificationGrading_entity.aod
index 39144723e62796ee2c7e4b433e0400cd47bdb623..81876c26e624810fd02f57d640df8fbc10bcc132 100644
--- a/entity/ClassificationGrading_entity/ClassificationGrading_entity.aod
+++ b/entity/ClassificationGrading_entity/ClassificationGrading_entity.aod
@@ -1,10 +1,10 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>ClassificationGrading_entity</name>
+  <title>Grading</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/ClassificationGrading_entity/documentation.adoc</documentation>
-  <title>Grading</title>
-  <titlePlural>Gradings</titlePlural>
+  <titlePlural>Gradings in Percent</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
     <entityProvider>
@@ -18,16 +18,6 @@
       <name>GRADING</name>
       <title>Scoretype</title>
     </entityField>
-    <entityField>
-      <name>MAXGRADEFORSCORE</name>
-      <documentation>%aditoprj%/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/documentation.adoc</documentation>
-      <title>Max Value</title>
-      <contentType>NUMBER</contentType>
-      <outputFormat>#####</outputFormat>
-      <inputFormat>#####</inputFormat>
-      <valueProcess>%aditoprj%/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/valueProcess.js</valueProcess>
-      <onValidation>%aditoprj%/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/onValidation.js</onValidation>
-    </entityField>
     <entityField>
       <name>CLASSIFICATIONGROUP_ID</name>
       <title>Classification</title>
@@ -40,12 +30,6 @@
     <entityProvider>
       <name>ClassificationGradings</name>
       <documentation>%aditoprj%/entity/ClassificationGrading_entity/entityfields/classificationgradings/documentation.adoc</documentation>
-      <children>
-        <entityParameter>
-          <name>ClassificationTypeId_param</name>
-          <expose v="true" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>e0c6b86e-dcc1-43e1-9581-2b10c5c3d0cd</name>
@@ -54,35 +38,38 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>ClassificationTypeId_param</name>
+          <expose v="true" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityProvider>
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityField>
+      <name>MINPERCENT</name>
+      <documentation>%aditoprj%/entity/ClassificationGrading_entity/entityfields/minpercent/documentation.adoc</documentation>
+      <title>Percent</title>
+      <displayValueProcess>%aditoprj%/entity/ClassificationGrading_entity/entityfields/minpercent/displayValueProcess.js</displayValueProcess>
+      <onValidation>%aditoprj%/entity/ClassificationGrading_entity/entityfields/minpercent/onValidation.js</onValidation>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <isPageable v="false" />
       <conditionProcess>%aditoprj%/entity/ClassificationGrading_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/ClassificationGrading_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
+      <onDBInsert>%aditoprj%/entity/ClassificationGrading_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
+      <onDBUpdate>%aditoprj%/entity/ClassificationGrading_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
+      <onDBDelete>%aditoprj%/entity/ClassificationGrading_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
+      <alias>Data_alias</alias>
       <cacheType>GLOBAL</cacheType>
       <cacheKeyProcess>%aditoprj%/entity/ClassificationGrading_entity/recordcontainers/db/cacheKeyProcess.js</cacheKeyProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>9a9482d5-005a-4dc5-8b58-e07c44420b64</name>
-          <tableName>CLASSIFICATIONGRADING</tableName>
-          <primaryKey>CLASSIFICATIONGRADINGID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
       <recordFieldMappings>
-        <dbRecordFieldMapping>
-          <name>MAXGRADEFORSCORE.value</name>
-          <recordfield>CLASSIFICATIONGRADING.MAXGRADEFORSCORE</recordfield>
-        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>GRADING.value</name>
           <recordfield>CLASSIFICATIONGRADING.GRADING</recordfield>
@@ -95,7 +82,20 @@
           <name>CLASSIFICATIONGRADINGID.value</name>
           <recordfield>CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>MINPERCENT.value</name>
+          <recordfield>CLASSIFICATIONGRADING.MINPERCENT</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>9a9482d5-005a-4dc5-8b58-e07c44420b64</name>
+          <tableName>CLASSIFICATIONGRADING</tableName>
+          <primaryKey>CLASSIFICATIONGRADINGID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/ClassificationGrading_entity/documentation.adoc b/entity/ClassificationGrading_entity/documentation.adoc
index faa566900db907439f90781456e63e894d2ccf2d..9638714b062297d11de3f9ae52382a81e9500040 100644
--- a/entity/ClassificationGrading_entity/documentation.adoc
+++ b/entity/ClassificationGrading_entity/documentation.adoc
@@ -11,9 +11,9 @@ Purpose:
     This Entity gives the administrators an easy way to change the classification grading in the preview of classificationAdmin 
     when selecting a classification (classificationGroup).
     The classificationgrading gets stored in the table classificationgrading with it's own classificationgradingId, the classificationGroup_id, 
-    the grading (e.g. "A", "B", "C") and the max score you this grade for.
+    the grading (e.g. "A", "B", "C") and the min score you get this grade for.
 
-    This entity only has one view: the ClassificationGradingMultipleEdit_view which has both the MaxGradeForScore and the grading column.
+    This entity only has one view: the ClassificationGradingMultipleEdit_view which has both the minPercent and the grading column.
     making it possible for the admin to configure something like this:
 
     ClassificationAdminPreviewOfClassification Example: 
@@ -21,22 +21,24 @@ Purpose:
         USAGE:          Organisation
         CLASSIFICATION: 1. Target Group
         SORTING:        1
-         A               100
-         B               75
-         C               50
-         D               25
+         A               76% - 100%
+         B               51% - 76%
+         C               26% - 51%
+         D               0% - 26%
 
     --> The Score "72" would lead to the grade "B" (<<<not included in the preview, just for easier understanding of how this works)
 
 Particularities:
     
-    The MaxGradeForScore of the best possible score (in our example for "A") has to always be the largest possibly achievable value, 
-    otherwise it would lead to errors, which is why this field always get's the maximum value set as default 
-    and it's not possible to save something greater than that (validationProcess).
-    
-    Also, since the indicators under the classification and the possible values of those indicators can be changed:
-    The grading get's updated automatically after changes to the maximum possible value, 
-    using the rule of three (see onInsert-, onUpdate- and onDelete- processes of classificationScore).
+    The reason why we use percent is because the classificationTypes of the group can have different filterconditions, which excludes them for some datasets
+    -> we had to settle for percent
+    The score itself get's calculated by the adding all the archeived scores of the relevant classificationType datasets of the object 
+    (scorePercent of the classificationScore dataset * the scorePoints of the classificationType dataset)
+    and matching it against the the sum of the best possible scores of each relevant classificationType of that group and calculating it via the classificationGrading minPercents
+    If none of the classificationTypes of a group is relevant we ignore that group.
+
+    We also have to set the outdated flag of the classificationtype dataset everytime we insert/update/delete
+
 
     The Classification consists of the following entities:
     Classification_entity,
diff --git a/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/documentation.adoc b/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/documentation.adoc
deleted file mode 100644
index d42cd1657ab6afe2b94c0306d9a901d4097059a2..0000000000000000000000000000000000000000
--- a/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/documentation.adoc
+++ /dev/null
@@ -1,17 +0,0 @@
-== ClassificationGrading.MaxGradeForScore:
-
-Used to store the highest value for the Grade.
-
-Example: 
-A 100-75,
-B 74-50,
-C 49-25,
-D 24-0
---> maxGradeForScore: A:100, B:74, C:49, D:24
-
-The maxGradeForScore of the best possible grading (In our Example A), should always be the highest possible value, 
-that's why it's set as the default value of the field.
-The maxGradeForScore should never be greater than the highest possible value, that's why this field has it's onValidationProcess.
-
-The highest possible value get's calculated by calculating the sum of all the classificationScores of the types under the group. 
-(ClassificationUtils.getMaxScore)
\ No newline at end of file
diff --git a/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/onValidation.js b/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/onValidation.js
deleted file mode 100644
index 1e60bc18fdb2d3ec65ba10aa47ce63f7e225e579..0000000000000000000000000000000000000000
--- a/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/onValidation.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import("Classification_lib");
-import("system.result");
-import("system.translate");
-import("system.vars");
-
-var classificationTypeGroup = vars.get("$field.CLASSIFICATIONGROUP_ID");
-var maxValue = ClassificationUtils.getMaxScore(classificationTypeGroup);
-
-if (maxValue == "")
-    maxValue = 100;
-        
-if (parseFloat(vars.get("local.value")) > maxValue)
-    result.string(translate.withArguments("${HIGHER_THAN_MAX} max: %0", [maxValue]));
\ No newline at end of file
diff --git a/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/valueProcess.js b/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/valueProcess.js
deleted file mode 100644
index 24571535a888b634c3f4381ed280eda6321a0555..0000000000000000000000000000000000000000
--- a/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/valueProcess.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import("Classification_lib");
-import("system.neon");
-import("system.vars");
-import("system.result");
-    
-if(((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && 
-    (vars.get("$this.value") == null || vars.get("$this.value") == undefined)))
-{
-    var group = vars.getString("$param.ClassificationTypeId_param");
-    result.string(ClassificationUtils.getMaxScore(group));
-}
\ No newline at end of file
diff --git a/entity/ClassificationGrading_entity/entityfields/minpercent/displayValueProcess.js b/entity/ClassificationGrading_entity/entityfields/minpercent/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ae81080bc44d0bdcfc3acc1cc47b7aee5c469898
--- /dev/null
+++ b/entity/ClassificationGrading_entity/entityfields/minpercent/displayValueProcess.js
@@ -0,0 +1,30 @@
+import("system.neon");
+import("Sql_lib");
+import("system.vars");
+import("system.result");
+
+if(vars.get("$sys.operatingstate") != neon.OPERATINGSTATE_EDIT){
+
+
+var min = vars.get("$field.MINPERCENT");
+var max;
+
+var gradingTable = newSelect("CLASSIFICATIONGRADING.MINPERCENT")
+                                .from("CLASSIFICATIONGRADING")
+                                .where("CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID", vars.get("$field.CLASSIFICATIONGROUP_ID"))
+                                .orderBy("MINPERCENT desc")
+                                .arrayColumn();
+                                
+for (let i = 0; i < gradingTable.length; i++) 
+{    
+    if(min >= gradingTable[i])
+    {
+        if(gradingTable[i-1] != undefined)
+            max = (gradingTable[i-1]);
+        else
+            max = 100;
+        break;
+    }
+}
+    result.string(min + "% - " + max + "%");
+}
\ No newline at end of file
diff --git a/entity/ClassificationGrading_entity/entityfields/minpercent/documentation.adoc b/entity/ClassificationGrading_entity/entityfields/minpercent/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..a69c2bab0e23246a08d026d3ecd96110688ed2f1
--- /dev/null
+++ b/entity/ClassificationGrading_entity/entityfields/minpercent/documentation.adoc
@@ -0,0 +1 @@
+newAndImprovedâ„¢
\ No newline at end of file
diff --git a/entity/ClassificationGrading_entity/entityfields/minpercent/onValidation.js b/entity/ClassificationGrading_entity/entityfields/minpercent/onValidation.js
new file mode 100644
index 0000000000000000000000000000000000000000..244e89b04334f17b16492a9f55c8061849536b86
--- /dev/null
+++ b/entity/ClassificationGrading_entity/entityfields/minpercent/onValidation.js
@@ -0,0 +1,22 @@
+import("system.translate");
+import("system.result");
+import("system.vars");
+
+var val = vars.get("$this.value");
+if(val)
+{
+    var res;
+    if(!Number.isInteger(Number(val)))
+    {
+        res = translate.text("Only Integers allowed");
+    }
+    else if(val < 0 || val > 100)
+    {
+        res = translate.text("The Value has to be in the 0-100% range");
+    }
+    
+    if(res)
+    {
+        result.string(res);
+    }
+}
\ No newline at end of file
diff --git a/entity/ClassificationGrading_entity/recordcontainers/db/onDBDelete.js b/entity/ClassificationGrading_entity/recordcontainers/db/onDBDelete.js
new file mode 100644
index 0000000000000000000000000000000000000000..fa7d86fe4e885314eba29f09dc9ecd9651b1fbeb
--- /dev/null
+++ b/entity/ClassificationGrading_entity/recordcontainers/db/onDBDelete.js
@@ -0,0 +1,9 @@
+import("Classification_lib");
+import("Sql_lib");
+import("system.vars");
+
+var classificationGroupId = vars.get("$field.CLASSIFICATIONGROUP_ID") 
+var classificationTypeIds = ClassificationUtils.getClassificationTypesOfGroup(classificationGroupId, null, true)
+
+var cond = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationTypeIds, SqlBuilder.IN());
+cond.updateData(true, "CLASSIFICATIONTYPE", ["OUTDATED"], null, [1]);
\ No newline at end of file
diff --git a/entity/ClassificationGrading_entity/recordcontainers/db/onDBInsert.js b/entity/ClassificationGrading_entity/recordcontainers/db/onDBInsert.js
new file mode 100644
index 0000000000000000000000000000000000000000..9c06240960ec310a0b8dec6386a6bf8667ce396f
--- /dev/null
+++ b/entity/ClassificationGrading_entity/recordcontainers/db/onDBInsert.js
@@ -0,0 +1,9 @@
+import("Classification_lib");
+import("Sql_lib");
+import("system.vars");
+
+var classificationGroupId = vars.get("$field.CLASSIFICATIONGROUP_ID") 
+var classificationTypeIds = ClassificationUtils.getClassificationTypesOfGroup(classificationGroupId, null, true)
+
+var cond = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationTypeIds);
+cond.updateData(true, "CLASSIFICATIONTYPE", ["OUTDATED"], null, [1]);
\ No newline at end of file
diff --git a/entity/ClassificationGrading_entity/recordcontainers/db/onDBUpdate.js b/entity/ClassificationGrading_entity/recordcontainers/db/onDBUpdate.js
new file mode 100644
index 0000000000000000000000000000000000000000..fa7d86fe4e885314eba29f09dc9ecd9651b1fbeb
--- /dev/null
+++ b/entity/ClassificationGrading_entity/recordcontainers/db/onDBUpdate.js
@@ -0,0 +1,9 @@
+import("Classification_lib");
+import("Sql_lib");
+import("system.vars");
+
+var classificationGroupId = vars.get("$field.CLASSIFICATIONGROUP_ID") 
+var classificationTypeIds = ClassificationUtils.getClassificationTypesOfGroup(classificationGroupId, null, true)
+
+var cond = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationTypeIds, SqlBuilder.IN());
+cond.updateData(true, "CLASSIFICATIONTYPE", ["OUTDATED"], null, [1]);
\ No newline at end of file
diff --git a/entity/ClassificationGrading_entity/recordcontainers/db/orderClauseProcess.js b/entity/ClassificationGrading_entity/recordcontainers/db/orderClauseProcess.js
index 7d2ce489cafba9b89d7db5fedf9ef221da7f8bad..1e65fbee70b528e58de3ed3af97a38bdb65d615a 100644
--- a/entity/ClassificationGrading_entity/recordcontainers/db/orderClauseProcess.js
+++ b/entity/ClassificationGrading_entity/recordcontainers/db/orderClauseProcess.js
@@ -2,5 +2,5 @@ import("system.result");
 import("system.db");
 
 result.object({
-    "CLASSIFICATIONGRADING.MAXGRADEFORSCORE": db.DESCENDING
+    "CLASSIFICATIONGRADING.MINPERCENT": db.DESCENDING
     });
\ No newline at end of file
diff --git a/entity/ClassificationGroup_entity/ClassificationGroup_entity.aod b/entity/ClassificationGroup_entity/ClassificationGroup_entity.aod
index 546a64d948001e538ed6a971478016d6ae568b0f..68724063ba34834853391bc581552e49765003cb 100644
--- a/entity/ClassificationGroup_entity/ClassificationGroup_entity.aod
+++ b/entity/ClassificationGroup_entity/ClassificationGroup_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>ClassificationGroup_entity</name>
+  <title>Classification</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/ClassificationGroup_entity/documentation.adoc</documentation>
-  <title>Classification</title>
   <contentTitleProcess>%aditoprj%/entity/ClassificationGroup_entity/contentTitleProcess.js</contentTitleProcess>
   <titlePlural>Classifications</titlePlural>
   <recordContainer>db</recordContainer>
@@ -78,21 +78,12 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <isPageable v="false" />
       <conditionProcess>%aditoprj%/entity/ClassificationGroup_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/ClassificationGroup_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
+      <alias>Data_alias</alias>
       <cacheType>GLOBAL</cacheType>
       <cacheKeyProcess>%aditoprj%/entity/ClassificationGroup_entity/recordcontainers/db/cacheKeyProcess.js</cacheKeyProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>b0606861-e080-4441-94ac-fce33bbf7747</name>
-          <tableName>CLASSIFICATIONGROUP</tableName>
-          <primaryKey>CLASSIFICATIONGROUPID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>TITLE.value</name>
@@ -107,6 +98,15 @@
           <recordfield>CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>b0606861-e080-4441-94ac-fce33bbf7747</name>
+          <tableName>CLASSIFICATIONGROUP</tableName>
+          <primaryKey>CLASSIFICATIONGROUPID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/ClassificationGroup_entity/entityfields/title/displayValueProcess.js b/entity/ClassificationGroup_entity/entityfields/title/displayValueProcess.js
index 1bd5882b79ef1bdc97ba4ed6d408b4401eeb35a2..faa7580ef55101e0036640e5a650898564860e81 100644
--- a/entity/ClassificationGroup_entity/entityfields/title/displayValueProcess.js
+++ b/entity/ClassificationGroup_entity/entityfields/title/displayValueProcess.js
@@ -1,4 +1,5 @@
+import("system.translate");
 import("system.result")
 import("system.vars")
 
-result.string(vars.get("$this.value"));
\ No newline at end of file
+result.string(translate.text(vars.get("$this.value")));
\ No newline at end of file
diff --git a/entity/ClassificationScore_entity/ClassificationScore_entity.aod b/entity/ClassificationScore_entity/ClassificationScore_entity.aod
index b24809498150ef8eca45712cbaa279277a9607d6..6867a2f6dd62f0d18357cc637c858485a10276e5 100644
--- a/entity/ClassificationScore_entity/ClassificationScore_entity.aod
+++ b/entity/ClassificationScore_entity/ClassificationScore_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>ClassificationScore_entity</name>
+  <title>Possible Value</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/ClassificationScore_entity/documentation.adoc</documentation>
-  <title>Possible Value</title>
   <contentTitleProcess>%aditoprj%/entity/ClassificationScore_entity/contentTitleProcess.js</contentTitleProcess>
   <titlePlural>Possible Values</titlePlural>
   <recordContainer>db</recordContainer>
@@ -31,14 +31,6 @@
       <title>Sorting</title>
       <mandatory v="true" />
     </entityField>
-    <entityField>
-      <name>SCORE</name>
-      <title>Points</title>
-      <contentType>NUMBER</contentType>
-      <outputFormat>#,##0.00</outputFormat>
-      <inputFormat>#,##0.00</inputFormat>
-      <mandatory v="true" />
-    </entityField>
     <entityProvider>
       <name>ClassificationScores</name>
       <sortingField>SORT</sortingField>
@@ -90,37 +82,35 @@
       <name>translatedTitle</name>
       <valueProcess>%aditoprj%/entity/ClassificationScore_entity/entityfields/translatedtitle/valueProcess.js</valueProcess>
     </entityField>
+    <entityField>
+      <name>SCOREPERCENT</name>
+      <title>Percent</title>
+      <contentType>NUMBER</contentType>
+      <onValidation>%aditoprj%/entity/ClassificationScore_entity/entityfields/scorepercent/onValidation.js</onValidation>
+    </entityField>
+    <entityField>
+      <name>scoreInPoints</name>
+      <title>Points</title>
+      <state>READONLY</state>
+      <valueProcess>%aditoprj%/entity/ClassificationScore_entity/entityfields/scoreinpoints/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <isPageable v="false" />
       <conditionProcess>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <onDBInsert>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
+      <alias>Data_alias</alias>
       <cacheType>GLOBAL</cacheType>
       <cacheKeyProcess>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/cacheKeyProcess.js</cacheKeyProcess>
-      <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>
@@ -137,7 +127,20 @@
           <name>CLASSIFICATIONTYPE_ID.displayValue</name>
           <expression>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/recordfieldmappings/classificationtype_id.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>SCOREPERCENT.value</name>
+          <recordfield>CLASSIFICATIONSCORE.SCOREPERCENT</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>e2fecaf8-bc95-4a4d-bd96-88731568b1a4</name>
+          <tableName>CLASSIFICATIONSCORE</tableName>
+          <primaryKey>CLASSIFICATIONSCOREID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/ClassificationScore_entity/documentation.adoc b/entity/ClassificationScore_entity/documentation.adoc
index b726994060331781c42824c0019eb30c1f2df4b6..8d280e34f85ddcafd52b0ea546f64389b0ea40ee 100644
--- a/entity/ClassificationScore_entity/documentation.adoc
+++ b/entity/ClassificationScore_entity/documentation.adoc
@@ -2,14 +2,14 @@
 
 Definition:
 
-    Stores the possible Values of Classification score types and their score and the sorting value.
+    Stores the possible Values of Classification score types their scorePercent and the sorting value.
     (For more information about the classification see also Classification_entity)
 
 Purpose:
 
-    This Entity gives the administrators an easy way to edit the possible values, their scoring and sorting in the preview of classificationAdmin 
+    This Entity gives the administrators an easy way to edit the possible values, their scorePercent and sorting in the preview of classificationAdmin 
     when selecting a indicator (classificationType).
-    The values gets stored in the table classificationscore with their own classificationScoreId, the classificationType_Id, title, score und sort.
+    The values gets stored in the table classificationscore with their own classificationScoreId, the classificationType_Id, title, scorePercent and sort.
 
     This entity only has one view: the ClassificationScoreMultipleEdit_view which has title as the title field and score and sort as columns
     making it possible for the admin to configure something like this:
@@ -19,15 +19,22 @@ Purpose:
         USAGE:          Organisation
         CLASSIFICATION: 1. Target Group
         INDICATOR:      Headquarters
-         Germany         35,00, 10
-         Austria         35,00 20
-         Switzerland     25,00, 30
-         Other            0,00, 40
+        SCOREPOINTS:    35
+         Germany         100%, 35,00
+         Austria         100%, 35,00
+         Switzerland      70%, 25,00
+         Other             0%, 0,00
 
 Particularities:
 
-    The biggest possible score is being used by classificationGrading to calculate the value for the best possible grade, 
-    if this value is changed the grading get's updated using the rule of three (see onInsert-, onUpdate- and onDelete- processes).
+    The reason why we use percent is because the classificationTypes of the group can have different filterconditions, which excludes them for some datasets
+    -> we had to settle for percent
+    The score itself get's calculated by the adding all the archeived scores of the relevant classificationType datasets of the object 
+    (scorePercent of the classificationScore dataset * the scorePoints of the classificationType dataset)
+    and matching it against the the sum of the best possible scores of each relevant classificationType of that group and calculating it via the classificationGrading minPercents
+    If none of the classificationTypes of a group is relevant we ignore that group.
+
+    We also have to set the outdated flag of the classificationtype dataset everytime we insert/update/delete
     
     The Classification consists of the following entities:
     Classification_entity,
diff --git a/entity/ClassificationScore_entity/entityfields/scoreinpoints/valueProcess.js b/entity/ClassificationScore_entity/entityfields/scoreinpoints/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ab39285c8e6ce942461544c56aea0796a9a7058d
--- /dev/null
+++ b/entity/ClassificationScore_entity/entityfields/scoreinpoints/valueProcess.js
@@ -0,0 +1,16 @@
+import("system.result");
+import("Sql_lib");
+import("system.vars");
+
+var percent = vars.get("$field.SCOREPERCENT");
+var classificationTypeId = vars.get("$param.ClassificationTypeId_param");
+
+var maxPoints = newSelect("CLASSIFICATIONTYPE.SCOREPOINTS")
+                        .from("CLASSIFICATIONTYPE")
+                        .where("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationTypeId)
+                        .cell();
+
+var points = percent/100*maxPoints;
+if(!points)
+    points = 0;
+result.string(points.toFixed(2));
\ No newline at end of file
diff --git a/entity/ClassificationScore_entity/entityfields/scorepercent/onValidation.js b/entity/ClassificationScore_entity/entityfields/scorepercent/onValidation.js
new file mode 100644
index 0000000000000000000000000000000000000000..fe95642377c3e90c2afc43a33106075ac9be622f
--- /dev/null
+++ b/entity/ClassificationScore_entity/entityfields/scorepercent/onValidation.js
@@ -0,0 +1,10 @@
+import("system.translate");
+import("system.result");
+import("system.vars");
+
+var val = vars.get("$this.value");
+if(val)
+{
+    if(val < 0 || val > 100)
+        result.string(translate.text("The Value has to be in the 0-100% range"));
+}
\ No newline at end of file
diff --git a/entity/ClassificationScore_entity/recordcontainers/db/onDBDelete.js b/entity/ClassificationScore_entity/recordcontainers/db/onDBDelete.js
index f45ecc8306bdd9f82d4249c83fa66b0f8543ac71..c9d29f0a6ed67c07d8974c97aa4318ff6f50cb8a 100644
--- a/entity/ClassificationScore_entity/recordcontainers/db/onDBDelete.js
+++ b/entity/ClassificationScore_entity/recordcontainers/db/onDBDelete.js
@@ -1,39 +1,8 @@
 import("Sql_lib");
-import("system.db");
 import("system.vars");
-import("Classification_lib");
-import("system.eMath");
-import("system.entities");
 
-try
-{
-    newWhere("CLASSIFICATION.CLASSIFICATIONSCORE_ID", "$field.CLASSIFICATIONSCOREID").deleteData();
-    var classificationScoreId = vars.get("$field.CLASSIFICATIONSCOREID")
+var classificationTypeId = vars.get("$field.CLASSIFICATIONTYPE_ID");
 
-    var classificationType = ClassificationUtils.getClassificationType(classificationScoreId);
-    var classificationGroup = ClassificationUtils.getClassificationGroup(classificationType);
-    var gradingTable = ClassificationUtils.getGradingTableByGroupId(classificationGroup);
-    var maxScore = ClassificationUtils.getMaxScore(classificationGroup)
+var cond = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationTypeId);
 
-    if(gradingTable[0][1] != maxScore) //the gradingTable is already sorted, so gradingTable[0][1] is the maxGradeForScore of the best possible Grade
-    {
-        var column = ["MAXGRADEFORSCORE"];
-        var table = ["CLASSIFICATIONGRADING"];
-        var multiplicand = maxScore/gradingTable[0][1];
-        var update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[0][0])
-                                .updateData(true, table, column, null, column, db.getCurrentAlias(), [maxScore]);
-
-        for (let i = 1; i < gradingTable.length; i++) 
-        {
-            update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[i][0])
-                            .updateData(true, table, column, null, [parseInt(gradingTable[i][1] * multiplicand)]);
-        }
-    }
-}
-finally //always make sure that the cache is as valid as possible
-{
-    //ClassificationType_entity accesses the CLASSIFICATIONSCORE (max value of scores) so we need to update the cache to prevent inconsesty
-    entities.invalidateCache("ClassificationType_entity", "db");
-    //Grading-values are dependent since they are modified within this process (maxgrade)
-    entities.invalidateCache("ClassificationGrading_entity", "db");
-}
+cond.updateData(true, "CLASSIFICATIONTYPE", ["OUTDATED"], null, [1]);
\ No newline at end of file
diff --git a/entity/ClassificationScore_entity/recordcontainers/db/onDBInsert.js b/entity/ClassificationScore_entity/recordcontainers/db/onDBInsert.js
deleted file mode 100644
index 0dfe964c1e25974c57ac6b79e9f09adf783cdc26..0000000000000000000000000000000000000000
--- a/entity/ClassificationScore_entity/recordcontainers/db/onDBInsert.js
+++ /dev/null
@@ -1,41 +0,0 @@
-import("system.entities");
-import("system.db");
-import("Sql_lib");
-import("system.vars");
-import("Classification_lib");
-import("system.eMath")
-
-try
-{
-    var classificationScoreId = vars.get("$field.CLASSIFICATIONSCOREID")
-
-    var classificationType = ClassificationUtils.getClassificationType(classificationScoreId);
-    var classificationGroup = ClassificationUtils.getClassificationGroup(classificationType);
-    var gradingTable = ClassificationUtils.getGradingTableByGroupId(classificationGroup);
-    var maxScore = ClassificationUtils.getMaxScore(classificationGroup)
-
-    if(gradingTable.length > 0 && gradingTable != undefined && gradingTable != null)
-    {
-        if(gradingTable[0][1] != maxScore)
-        {
-            var column = ["MAXGRADEFORSCORE"];
-            var table = ["CLASSIFICATIONGRADING"];
-            var multiplicand = maxScore/gradingTable[0][1];
-            var update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[0][0])
-                                    .updateData(true, table, column,  null, [maxScore]);
-
-            for (let i = 1; i < gradingTable.length; i++) 
-            {
-                update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[i][0])
-                                .updateData(true, table, column,  null, [parseInt(gradingTable[i][1] * multiplicand)]);
-            }
-        }
-    }
-}
-finally //always make sure that the cache is as valid as possible
-{
-    //ClassificationType_entity accesses the CLASSIFICATIONSCORE (max value of scores) so we need to update the cache to prevent inconsesty
-    entities.invalidateCache("ClassificationType_entity", "db");
-    //Grading-values are dependent since they are modified within this process (maxgrade)
-    entities.invalidateCache("ClassificationGrading_entity", "db");
-}
\ No newline at end of file
diff --git a/entity/ClassificationScore_entity/recordcontainers/db/onDBUpdate.js b/entity/ClassificationScore_entity/recordcontainers/db/onDBUpdate.js
index dc07afd47acdfced255c79862004b15ea01f911a..c9d29f0a6ed67c07d8974c97aa4318ff6f50cb8a 100644
--- a/entity/ClassificationScore_entity/recordcontainers/db/onDBUpdate.js
+++ b/entity/ClassificationScore_entity/recordcontainers/db/onDBUpdate.js
@@ -1,38 +1,8 @@
-import("system.entities");
-import("system.db");
 import("Sql_lib");
 import("system.vars");
-import("Classification_lib");
-import("system.eMath")
 
-try
-{
-    var classificationScoreId = vars.get("$field.CLASSIFICATIONSCOREID")
+var classificationTypeId = vars.get("$field.CLASSIFICATIONTYPE_ID");
 
-    var classificationType = ClassificationUtils.getClassificationType(classificationScoreId);
-    var classificationGroup = ClassificationUtils.getClassificationGroup(classificationType);
-    var gradingTable = ClassificationUtils.getGradingTableByGroupId(classificationGroup);
-    var maxScore = ClassificationUtils.getMaxScore(classificationGroup)
+var cond = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationTypeId);
 
-    if(gradingTable[0][1] != maxScore)
-    {
-        var column = ["MAXGRADEFORSCORE"];
-        var table = ["CLASSIFICATIONGRADING"];
-        var multiplicand = maxScore/gradingTable[0][1];
-        var update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[0][0])
-                                .updateData(true, table, column, null, [maxScore]);
-
-        for (let i = 1; i < gradingTable.length; i++) 
-        {
-            update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[i][0])
-                            .updateData(true, table, column, null, [parseInt(gradingTable[i][1] * multiplicand)]);
-        }
-    }
-}
-finally //always make sure that the cache is as valid as possible
-{
-    //ClassificationType_entity accesses the CLASSIFICATIONSCORE (max value of scores) so we need to update the cache to prevent inconsesty
-    entities.invalidateCache("ClassificationType_entity", "db");
-    //Grading-values are dependent since they are modified within this process (maxgrade)
-    entities.invalidateCache("ClassificationGrading_entity", "db");
-}
\ No newline at end of file
+cond.updateData(true, "CLASSIFICATIONTYPE", ["OUTDATED"], null, [1]);
\ No newline at end of file
diff --git a/entity/ClassificationType_entity/ClassificationType_entity.aod b/entity/ClassificationType_entity/ClassificationType_entity.aod
index faf8305ab8185d249fd38216f9954fd7d857dcb9..749feeedc36f37bc816ada37def0bd46b14aabaf 100644
--- a/entity/ClassificationType_entity/ClassificationType_entity.aod
+++ b/entity/ClassificationType_entity/ClassificationType_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>ClassificationType_entity</name>
+  <title>Indicator</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/ClassificationType_entity/documentation.adoc</documentation>
-  <title>Indicator</title>
   <contentTitleProcess>%aditoprj%/entity/ClassificationType_entity/contentTitleProcess.js</contentTitleProcess>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -56,19 +56,10 @@
         </entityParameter>
       </children>
     </entityConsumer>
-    <entityField>
-      <name>infoField</name>
-      <title>Hint</title>
-      <valueProcess>%aditoprj%/entity/ClassificationType_entity/entityfields/infofield/valueProcess.js</valueProcess>
-    </entityField>
     <entityProvider>
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
-    <entityField>
-      <name>maxScore</name>
-      <valueProcess>%aditoprj%/entity/ClassificationType_entity/entityfields/maxscore/valueProcess.js</valueProcess>
-    </entityField>
     <entityParameter>
       <name>ClassificationGroupId_param</name>
       <expose v="true" />
@@ -83,24 +74,29 @@
         </entityParameter>
       </children>
     </entityProvider>
+    <entityField>
+      <name>FILTER</name>
+      <title>Usage</title>
+      <contentType>FILTER_TREE</contentType>
+      <stateProcess>%aditoprj%/entity/ClassificationType_entity/entityfields/filter/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/ClassificationType_entity/entityfields/filter/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>SCOREPOINTS</name>
+      <title>Max Points</title>
+    </entityField>
+    <entityField>
+      <name>OUTDATED</name>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <isPageable v="false" />
       <conditionProcess>%aditoprj%/entity/ClassificationType_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <alias>Data_alias</alias>
       <cacheType>GLOBAL</cacheType>
       <cacheKeyProcess>%aditoprj%/entity/ClassificationType_entity/recordcontainers/db/cacheKeyProcess.js</cacheKeyProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>0c764b72-f55b-4b87-8dc1-9a491a143f44</name>
-          <tableName>CLASSIFICATIONTYPE</tableName>
-          <primaryKey>CLASSIFICATIONTYPEID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>CLASSIFICATIONTYPEID.value</name>
@@ -119,10 +115,23 @@
           <recordfield>CLASSIFICATIONTYPE.SCORETYPE</recordfield>
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
-          <name>maxScore.value</name>
-          <expression>%aditoprj%/entity/ClassificationType_entity/recordcontainers/db/recordfieldmappings/maxscore.value/expression.js</expression>
+          <name>FILTER.value</name>
+          <recordfield>CLASSIFICATIONTYPE.FILTER</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>SCOREPOINTS.value</name>
+          <recordfield>CLASSIFICATIONTYPE.SCOREPOINTS</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>0c764b72-f55b-4b87-8dc1-9a491a143f44</name>
+          <tableName>CLASSIFICATIONTYPE</tableName>
+          <primaryKey>CLASSIFICATIONTYPEID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/ClassificationType_entity/documentation.adoc b/entity/ClassificationType_entity/documentation.adoc
index a09562ce3a4c852c52ff3a616d3838531b041890..ec1b4d8a15791b2e5f541eb575bde404113fbc1b 100644
--- a/entity/ClassificationType_entity/documentation.adoc
+++ b/entity/ClassificationType_entity/documentation.adoc
@@ -10,9 +10,10 @@ Purpose:
     This entity is used for storing the indicators and making it possible for the admin to change 
     the details of the indicator (classificationType) like the name, it's usage or it's classification (classificationGroup)
 
-    This entity only has one view: the ClassificationTypePreview which has the usage (object_type), 
-    classification (classificationgroup_Id), and title (scoretype)
-    and the ClassificationScoreMultipleEdit_view.
+    This entity only has one view: the ClassificationTypePreview which has the usagePlace (object_type), 
+    classification (classificationgroup_Id), title (scoretype), and the usagefilter to make it possible to have classificationTypes 
+    that are only relevant for certain objects, scorepoints
+    + the ClassificationScoreMultipleEdit_view.
     making it possible for the admin to configure something like this:
 
     ClassificationAdminPreviewOfIndicator Example: 
@@ -20,16 +21,19 @@ Purpose:
         USAGE:          Organisation
         CLASSIFICATION: 1. Target Group
         INDICATOR:      Headquarters
-         Germany         35,00, 10
-         Austria         35,00 20
-         Switzerland     25,00, 30
-         Other            0,00, 40
+        SCOREPOINTS:    35
+         Germany         100%, 35,00
+         Austria         100%, 35,00
+         Switzerland      70%, 25,00
+         Other             0%, 0,00
 
 Particularities:
 
-    The biggest possible score of the subordinated classificationScores is being used by classificationGrading to calculate the value for the best possible grade, 
-    if this value is changed the grading get's updated using the rule of three (see onInsert-, onUpdate- and onDelete- processes of classificationScore_entity).
+    The admin is maintaining the scorepoints per classificationType and percentages for the classificationscores
     
+    We also have to set the outdated flag of the classificationtype dataset everytime we insert/update it and set the flag 
+    for all the other classificationtypes of the group if we delete the current classificationType
+
     The Classification consists of the following entities:
     Classification_entity,
     ClassificationAdmin_entity,
diff --git a/entity/ClassificationType_entity/entityfields/filter/stateProcess.js b/entity/ClassificationType_entity/entityfields/filter/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..0c40c68f93058b33af2e171d58ac34b1d62d436a
--- /dev/null
+++ b/entity/ClassificationType_entity/entityfields/filter/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.neon");
+import("system.result");
+import("system.vars");
+
+if(vars.get("$field.FILTER") == null || vars.get("$field.FILTER") == undefined || vars.get("$field.FILTER") == "")
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+else
+    result.string(neon.COMPONENTSTATE_EDITABLE);
\ No newline at end of file
diff --git a/entity/ClassificationType_entity/entityfields/filter/valueProcess.js b/entity/ClassificationType_entity/entityfields/filter/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..fdbc23fc58624088fb9d0f9a462b75f3da562ce2
--- /dev/null
+++ b/entity/ClassificationType_entity/entityfields/filter/valueProcess.js
@@ -0,0 +1,26 @@
+import("Context_lib");
+import("system.neon");
+import("system.vars");
+import("system.result");
+import("Attribute_lib");
+
+var entity = ContextUtils.getEntity(vars.getString("$field.OBJECT_TYPE"));
+var emptyFilter = {
+    entity: entity, 
+    filter: {
+        type: "group", 
+        operator: "AND", 
+        childs: []
+    }
+};
+
+var currentFilter = vars.get("$this.value");
+if (currentFilter)
+    currentFilter = JSON.parse(currentFilter);
+
+//if the filter field is empty or if the entity was changed, reset the filter
+if (!currentFilter || currentFilter.entity != emptyFilter.entity)
+{
+    var condJson = JSON.stringify(emptyFilter);
+    result.string(condJson);
+}
diff --git a/entity/ClassificationType_entity/entityfields/infofield/valueProcess.js b/entity/ClassificationType_entity/entityfields/infofield/valueProcess.js
deleted file mode 100644
index 1aec260db1641b4b7b282eacb60d756408b1f086..0000000000000000000000000000000000000000
--- a/entity/ClassificationType_entity/entityfields/infofield/valueProcess.js
+++ /dev/null
@@ -1,76 +0,0 @@
-import("system.neon");
-import("system.translate");
-import("Entity_lib");
-import("system.result");
-import("Sql_lib");
-import("system.vars");
-import("Classification_lib");
-import("system.eMath");
-
-//references needed for auto refresh:
-"$field.ClassificationScores.insertedRows";
-"$field.ClassificationScores.changedRows";
-"$field.ClassificationScores.deletedRows";
-
-var rows = EntityConsumerRowsHelper.getCurrentConsumerRows("ClassificationScores", ["SCORE"]);
-var maxScore = 0;
-var i;
-var randomScoreId;
-
-var res = ClassificationUtils.getTranslatedInfo();
-if(rows.length > 0)
-{
-    for (i = 0; i < rows.length; i++) 
-    {
-        randomScoreId = rows[i]["#UID"];
-        break;
-    }
-    var classificationGroup = vars.get("$field.CLASSIFICATIONGROUP_ID");
-    var classificationType = ClassificationUtils.getClassificationType(randomScoreId);
-    var gradingTable = ClassificationUtils.getGradingTableByGroupId(classificationGroup);
-    for (i = 0; i < rows.length; i++) 
-        {
-            if(parseFloat(rows[i]["SCORE"]) > maxScore)
-                maxScore = parseFloat(rows[i]["SCORE"]);
-        }
-    if(classificationType.length > 0)
-    {
-        maxScore = eMath.addDec(parseFloat(maxScore), parseFloat(ClassificationUtils.getMaxScoreExcludeType(classificationGroup, classificationType)));
-    }
-    else
-    {
-        maxScore = eMath.addDec(parseFloat(maxScore), parseFloat(ClassificationUtils.getMaxScore(classificationGroup)));
-    }
-    
-    if(gradingTable.length > 0 && gradingTable != undefined && gradingTable != null)
-    {
-        var greatestGrading = gradingTable[0][1];
-        if(gradingTable[0][1] != maxScore)
-        {
-            var multiplicand;
-            var oldToNewValueString = "";
-            if(greatestGrading != 0)
-            {
-                multiplicand = maxScore/greatestGrading;
-                for (i = 0; i < gradingTable.length; i++) 
-                {
-                    oldToNewValueString += gradingTable[i][2] + ": " + gradingTable[i][1] + "->" + parseInt(gradingTable[i][1] * multiplicand) + "\n\
-    ";
-                }
-            }
-            else 
-            {
-                greatestGrading = maxScore;
-                multiplicand = 1;
-                for (i = 0; i < gradingTable.length; i++) 
-                {
-                    oldToNewValueString += gradingTable[i][2] + ": " + gradingTable[i][1] + "->" + greatestGrading * multiplicand + "\n\
-            ";
-                }
-            }
-            res = translate.text("This is how the Classification Gradings of the Classification will get affected by these changes:") + "\n\
-    "+ oldToNewValueString;
-        }
-    }
-}
-result.string(res);
\ No newline at end of file
diff --git a/entity/ClassificationType_entity/entityfields/maxscore/valueProcess.js b/entity/ClassificationType_entity/entityfields/maxscore/valueProcess.js
deleted file mode 100644
index 49d9c5de791ae6d83bb8a6f61da2927d509ebddd..0000000000000000000000000000000000000000
--- a/entity/ClassificationType_entity/entityfields/maxscore/valueProcess.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import("system.result");
-import("Sql_lib");
-import("system.vars");
-
-var classificationTypeId = vars.get("$field.CLASSIFICATIONTYPEID");
-
-var score = null;
-if (classificationTypeId)
-{
-    score = newSelect("max(CLASSIFICATIONSCORE.SCORE)")
-        .from("CLASSIFICATIONSCORE")
-        .where("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID", classificationTypeId)
-        .cell();
-}
-
-result.string(score);
\ No newline at end of file
diff --git a/entity/ClassificationType_entity/recordcontainers/db/recordfieldmappings/maxscore.value/expression.js b/entity/ClassificationType_entity/recordcontainers/db/recordfieldmappings/maxscore.value/expression.js
deleted file mode 100644
index d8c6a26ee9e7e6851db78a9c24172140d0d2aa8d..0000000000000000000000000000000000000000
--- a/entity/ClassificationType_entity/recordcontainers/db/recordfieldmappings/maxscore.value/expression.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import("system.result");
-import("system.result");
-import("Sql_lib");
-
-var statement = newSelect("max(CLASSIFICATIONSCORE.SCORE)")
-        .from("CLASSIFICATIONSCORE")
-        .where("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID");
-
-result.string(statement.toString());
\ No newline at end of file
diff --git a/entity/Classification_entity/Classification_entity.aod b/entity/Classification_entity/Classification_entity.aod
index 0ffc7c029876ca37340aa50f5a4503ca4e0c8d1e..0934836f181842f38e69f2df623a6991680f64c1 100644
--- a/entity/Classification_entity/Classification_entity.aod
+++ b/entity/Classification_entity/Classification_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Classification_entity</name>
+  <title>Classification</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Classification_entity/documentation.adoc</documentation>
-  <title>Classification</title>
   <grantDelete v="false" />
   <afterOperatingState>%aditoprj%/entity/Classification_entity/afterOperatingState.js</afterOperatingState>
   <titlePlural>Classifications</titlePlural>
@@ -16,11 +16,10 @@
       <name>CLASSIFICATIONID</name>
     </entityField>
     <entityField>
-      <name>CLASSIFICATIONSCORE_ID</name>
+      <name>VALUE</name>
       <title>Selection</title>
       <consumer>ClassificationScores</consumer>
-      <titleProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationscore_id/titleProcess.js</titleProcess>
-      <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationscore_id/displayValueProcess.js</displayValueProcess>
+      <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/value/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityParameter>
       <name>ClassificationType_param</name>
@@ -42,6 +41,7 @@
     </entityParameter>
     <entityProvider>
       <name>Classifications</name>
+      <documentation>%aditoprj%/entity/Classification_entity/entityfields/classifications/documentation.adoc</documentation>
       <dependencies>
         <entityDependency>
           <name>6274acfa-3dbf-4a9b-8926-2a2d1ff80d6d</name>
@@ -59,6 +59,9 @@
     </entityProvider>
     <entityField>
       <name>CLASSIFICATIONTYPEID</name>
+      <title>Indicator</title>
+      <consumer>KeywordClassificationTypes</consumer>
+      <stateProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationtypeid/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationtypeid/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
@@ -69,11 +72,6 @@
       <groupable v="true" />
       <mandatoryProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationgroup/mandatoryProcess.js</mandatoryProcess>
       <textInputAllowed v="true" />
-      <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationgroup/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>CLASSIFICATIONTYPE_ID</name>
-      <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationtype_id/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>OBJECT_ROWID</name>
@@ -108,22 +106,13 @@
         </entityParameter>
       </children>
     </entityConsumer>
-    <entityField>
-      <name>CLASSIFICATIONTYPE</name>
-      <title>Usage</title>
-      <consumer>KeywordClassificationTypes</consumer>
-      <groupable v="true" />
-      <mandatory 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>
+      <groupable v="true" />
       <state>READONLY</state>
-      <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/info/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/info/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>SCORE_RESULTS</name>
@@ -145,7 +134,7 @@
     <entityField>
       <name>SCORETYPE</name>
       <title>Indicator</title>
-      <mandatory v="true" />
+      <mandatory v="false" />
       <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/scoretype/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
@@ -160,8 +149,25 @@
       <useAggregates v="true" />
     </entityProvider>
     <entityField>
-      <name>CLASSIFICATIONGROUP_ID</name>
+      <name>SCOREPOINTS</name>
+      <title>Points</title>
+    </entityField>
+    <entityField>
+      <name>DISPLAYVALUE</name>
     </entityField>
+    <entityActionGroup>
+      <name>fitlerviewActionGroup</name>
+      <title>Action</title>
+      <children>
+        <entityActionField>
+          <name>refreshClassificationsOfThisDataset</name>
+          <title>refresh classifications</title>
+          <onActionProcess>%aditoprj%/entity/Classification_entity/entityfields/fitlerviewactiongroup/children/refreshclassificationsofthisdataset/onActionProcess.js</onActionProcess>
+          <isObjectAction v="false" />
+          <iconId>VAADIN:REFRESH</iconId>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
@@ -170,11 +176,15 @@
       <isFilterable v="true" />
       <isRequireContainerFiltering v="true" />
       <contentProcess>%aditoprj%/entity/Classification_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
+      <hasDependentRecords v="true" />
       <onUpdate>%aditoprj%/entity/Classification_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
       <recordFieldMappings>
         <jDitoRecordFieldMapping>
           <name>UID.value</name>
         </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>CLASSIFICATIONTYPEID.value</name>
+        </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
           <name>CLASSIFICATIONID.value</name>
         </jDitoRecordFieldMapping>
@@ -185,37 +195,22 @@
           <name>CLASSIFICATIONGROUP.displayValue</name>
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
-          <name>CLASSIFICATIONGROUP_ID.displayValue</name>
-        </jDitoRecordFieldMapping>
-        <jDitoRecordFieldMapping>
-          <name>CLASSIFICATIONSCORE_ID.value</name>
-        </jDitoRecordFieldMapping>
-        <jDitoRecordFieldMapping>
-          <name>CLASSIFICATIONSCORE_ID.displayValue</name>
-        </jDitoRecordFieldMapping>
-        <jDitoRecordFieldMapping>
-          <name>CLASSIFICATIONTYPEID.value</name>
-        </jDitoRecordFieldMapping>
-        <jDitoRecordFieldMapping>
-          <name>CLASSIFICATIONTYPE_ID.value</name>
-        </jDitoRecordFieldMapping>
-        <jDitoRecordFieldMapping>
-          <name>OBJECT_TYPE.value</name>
+          <name>CLASSIFICATIONTYPEID.displayValue</name>
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
-          <name>OBJECT_ROWID.value</name>
+          <name>SCOREPOINTS.value</name>
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
-          <name>SCORETYPE.value</name>
+          <name>VALUE.value</name>
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
-          <name>CLASSIFICATIONTYPE.value</name>
+          <name>VALUE.displayValue</name>
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
-          <name>SCORE_RESULTS.value</name>
+          <name>Info.displayValue</name>
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
-          <name>GroupScore.value</name>
+          <name>Info.value</name>
         </jDitoRecordFieldMapping>
       </recordFieldMappings>
     </jDitoRecordContainer>
diff --git a/entity/Classification_entity/documentation.adoc b/entity/Classification_entity/documentation.adoc
index 6fb30333ca4369806f0dd63d76773d4e580df977..1b1f222e40d994f35f7f49536ffd465bb1853136 100644
--- a/entity/Classification_entity/documentation.adoc
+++ b/entity/Classification_entity/documentation.adoc
@@ -2,7 +2,7 @@
 
 Definition:
 
-    Offers the possibility to flexibly classify sales projects, organisations, or any other data. 
+    Offers the possibility to flexibly classify sales projects, organiations, or any other data. 
     The classification can be dynamically configured at runtime.
 
 Purpose:
@@ -10,7 +10,7 @@ Purpose:
     Classifications get stored in the Classification table with their own uid, the ids of the classification type, classification score, object_rowId and object_type.
 
     This entity displays the classification of an dataset in an treetable,
-    with the classification (classificationgroup), including the archieved and possible points and the resulting grading, as the groupfield.
+    with the classification (classificationgroup), including the achieved and possible points and the resulting grading, as the groupfield.
     And Columns for the indicators (classificationtype) and the selected values (selection).
 
     Example: 
@@ -27,6 +27,26 @@ Purpose:
 
 Particularities:
 
+    The classification datasets get persisted for performance reasons and can be flagged as outdated so they can be updated by the 
+    updateClassifications_serverProcess.
+    For further information how this works see also the documentation property of updateClassifications_serverProcess.
+    
+    The calculated ClassificationStrings (e.g. "ACD") get stored in "CLASSIFICATIONSTORAGE" with their own id, the object_type, object_rowId, 
+    and the 'outdated' flag (datatype Boolean, might be changed to a timestamp in the future).
+    This dataset get's inserted when opening the Classification context of the object for the first time. (otherwise we would have a lot of 
+    useless datasets for object's that are not getting classified in any way, which is also the reason why we are deleting them via the process 
+    if they only consist of '-', since there is no reason for storing those)
+    The 'outdated' flag get's set when editing the current object or a linked object of a dependency of the current object_type 
+    (dependencies have to be configured in the Dependency_lib)
+    
+    We also persist the classificationValues themselves (e.g. Industy - Service) with with their own id, the object_type, object_rowId, 
+    classificationtypeId, value(classificationScoreId) and the scorepoints.
+    Reason for that are the filters the admin can set for the classificationtypes which can make some classificationtypes irrelevant for certain objects.
+    If we had to always check those every time we would load the Classification conetext for example, the performance would suffer tremendously.
+    The solution to that Problem is persisting those the same way as the string (they get persisted the first time you open the context, 
+    which only results in poor performance only once)
+    This also means that we have to insert/delete those persisted once in the serverProcess when filters change.
+
     The Classification consists of the following entities:
     Classification_entity,
     ClassificationAdmin_entity,
diff --git a/entity/Classification_entity/entityfields/classificationgroup/displayValueProcess.js b/entity/Classification_entity/entityfields/classificationgroup/displayValueProcess.js
deleted file mode 100644
index d0b202c003896906849e53907d10e67333faf168..0000000000000000000000000000000000000000
--- a/entity/Classification_entity/entityfields/classificationgroup/displayValueProcess.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import("Sql_lib");
-import("Classification_lib");
-import("system.translate");
-import("system.result");
-import("system.vars");
-
-if (vars.getString("$field.CLASSIFICATIONGROUP"))
-{
-    var score = vars.getString("$field.GroupScore");
-    var group = vars.getString("$field.CLASSIFICATIONGROUP");
-    var groupName = vars.getString("$field.CLASSIFICATIONGROUP_ID.displayValue");
-    var res = ClassificationUtils.formatDisplaySummaryForGroup(score, group, groupName);
-    result.string(res);
-}
diff --git a/entity/Classification_entity/entityfields/classifications/documentation.adoc b/entity/Classification_entity/entityfields/classifications/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..622e58880338d8c9605a79aadf41c95b02a9db9b
--- /dev/null
+++ b/entity/Classification_entity/entityfields/classifications/documentation.adoc
@@ -0,0 +1,3 @@
+=Classifications provider
+Provider for all the modules that you want to use the classification for.
+The tree gets build using the ObjectRowId_param and ObjectType_param so you can see all the classifications for e.g organisation x or salesproject y.
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/classificationscore_id/titleProcess.js b/entity/Classification_entity/entityfields/classificationscore_id/titleProcess.js
deleted file mode 100644
index 5f69ddae0ef78a61fc8be88201023c420f4dfb09..0000000000000000000000000000000000000000
--- a/entity/Classification_entity/entityfields/classificationscore_id/titleProcess.js
+++ /dev/null
@@ -1,9 +0,0 @@
-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")));
-}
diff --git a/entity/Classification_entity/entityfields/classificationtype/displayValueProcess.js b/entity/Classification_entity/entityfields/classificationtype/displayValueProcess.js
deleted file mode 100644
index 55fc33359a0fc8b9496e9dc12f56e15eb3a7b4ce..0000000000000000000000000000000000000000
--- a/entity/Classification_entity/entityfields/classificationtype/displayValueProcess.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import("system.result");
-import("system.vars");
-import("Keyword_lib");
-import("KeywordRegistry_basic");
-
-result.string(KeywordUtils.getViewValue($KeywordRegistry.classificationType(), vars.get("$field.OBJECT_TYPE")));
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/classificationtype_id/valueProcess.js b/entity/Classification_entity/entityfields/classificationtype_id/valueProcess.js
deleted file mode 100644
index e294cffd162af0b88230b7052c38c407862add9e..0000000000000000000000000000000000000000
--- a/entity/Classification_entity/entityfields/classificationtype_id/valueProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-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") == null)
-    result.string(vars.get("$field.CLASSIFICATIONTYPEID"));
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/classificationtype/stateProcess.js b/entity/Classification_entity/entityfields/classificationtypeid/stateProcess.js
similarity index 99%
rename from entity/Classification_entity/entityfields/classificationtype/stateProcess.js
rename to entity/Classification_entity/entityfields/classificationtypeid/stateProcess.js
index 2a616f4edfa3c6e68a81c8d99b17d08c353ceb69..d2c0dd18db355cc71410e59b8fae386dc591254e 100644
--- a/entity/Classification_entity/entityfields/classificationtype/stateProcess.js
+++ b/entity/Classification_entity/entityfields/classificationtypeid/stateProcess.js
@@ -4,6 +4,5 @@ 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/Classification_entity/entityfields/classificationtypeid/valueProcess.js b/entity/Classification_entity/entityfields/classificationtypeid/valueProcess.js
index 16c47d8b58490ac63829673a531ffce4e6896745..2bccd5eb7fbb2311971da0e6ae2ed3b56ed21268 100644
--- a/entity/Classification_entity/entityfields/classificationtypeid/valueProcess.js
+++ b/entity/Classification_entity/entityfields/classificationtypeid/valueProcess.js
@@ -1,10 +1,8 @@
-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);
+    result.string(vars.get("$param.ClassificationType_param"));
 }
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/fitlerviewactiongroup/children/refreshclassificationsofthisdataset/onActionProcess.js b/entity/Classification_entity/entityfields/fitlerviewactiongroup/children/refreshclassificationsofthisdataset/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..10cfa6bda238dca910902b0b1a731d2e483336eb
--- /dev/null
+++ b/entity/Classification_entity/entityfields/fitlerviewactiongroup/children/refreshclassificationsofthisdataset/onActionProcess.js
@@ -0,0 +1,18 @@
+import("system.process");
+import("system.util");
+import("system.vars");
+
+var params = {
+        "refreshSingleRecord_param" : true,
+        "ObjectRowid_param" : vars.get("$param.ObjectRowid_param"),
+        "ObjectType_param" : vars.get("$param.ObjectType_param")}
+    
+var processConfig = process.createStartAsyncConfig()
+                                                    .setName("updateClassifications_serverProcess")
+                                                    .setUser( vars.get("$sys.user"))
+                                                    .setThreadPriority(process.THREADPRIORITY_LOW)
+                                                    .setTimerType(process.TIMERTYPE_SERVER)
+                                                    .setLocalVariables(params);
+
+
+process.startAsync(processConfig);
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/info/displayValueProcess.js b/entity/Classification_entity/entityfields/info/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..8cc250e8c5e8bb966333b5dd0843cebbe01e2991
--- /dev/null
+++ b/entity/Classification_entity/entityfields/info/displayValueProcess.js
@@ -0,0 +1,26 @@
+import("system.translate");
+import("system.neon");
+import("system.result");
+import("system.vars");
+import("Sql_lib");
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT)
+{
+    var classificationTypeId = vars.get("$field.CLASSIFICATIONTYPEID");
+    var value = vars.get("$field.VALUE");
+    if(classificationTypeId)
+    {
+        var select = newSelect(["CLASSIFICATIONSCORE.SCOREPERCENT/100*CLASSIFICATIONTYPE.SCOREPOINTS", 
+                                            newSelect("max(CLASSIFICATIONSCORE.SCOREPERCENT)/100*CLASSIFICATIONTYPE.SCOREPOINTS")
+                                                        .from("CLASSIFICATIONSCORE")
+                                                        .join("CLASSIFICATIONTYPE on CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID")
+                                                        .where("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID", classificationTypeId)
+                                                        .groupBy("CLASSIFICATIONTYPE.SCOREPOINTS").cell()])
+                                        .from("CLASSIFICATIONSCORE")
+                                        .join("CLASSIFICATIONTYPE on CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID")
+                                        .where("CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID", value)
+                                        .arrayRow();
+
+        result.string(Math.round(select[0] * 100) / 100 +"/"+Math.round(select[1] * 100) / 100 + " " +translate.text("Points"));
+    }
+}
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/info/valueProcess.js b/entity/Classification_entity/entityfields/info/valueProcess.js
deleted file mode 100644
index 7030b6384f6e2a7e9dae80a5b931081a2583b7fd..0000000000000000000000000000000000000000
--- a/entity/Classification_entity/entityfields/info/valueProcess.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import("system.vars");
-import("system.db");
-import("system.translate");
-import("system.result");
-import("system.text");
-import("Sql_lib");
-
-var data = newSelect("TITLE, SCORE")   
-                .from("CLASSIFICATIONSCORE")
-                .orderBy("SORT")
-                .whereIfSet("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID", "$field.CLASSIFICATIONTYPEID")
-                .table(true);
-
-var resultText = "";
-
-data.forEach(function(pScore)
-{
-    resultText += translate.text(pScore[0]) + " = " + text.formatDouble(pScore[1], "#,##0.00", true) + "<br>"
-});
-
-result.string(resultText);
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/classificationscore_id/displayValueProcess.js b/entity/Classification_entity/entityfields/value/displayValueProcess.js
similarity index 81%
rename from entity/Classification_entity/entityfields/classificationscore_id/displayValueProcess.js
rename to entity/Classification_entity/entityfields/value/displayValueProcess.js
index 0b086fdea352f7d072715c805172bf2e4f680d0c..142bdf632c32fc623494dd125caca5f75abc104e 100644
--- a/entity/Classification_entity/entityfields/classificationscore_id/displayValueProcess.js
+++ b/entity/Classification_entity/entityfields/value/displayValueProcess.js
@@ -5,12 +5,12 @@ import("system.db");
 import("system.result");
 
 // no need to load, if no classificationscore exists
-if (vars.get("$field.CLASSIFICATIONSCORE_ID"))
+if (vars.get("$field.VALUE"))
 {
     // TODO: loadEntity / #Title
     result.string(translate.text(newSelect("TITLE")
                                     .from("CLASSIFICATIONSCORE")
-                                    .where("CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID", "$field.CLASSIFICATIONSCORE_ID")
+                                    .where("CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID", "$field.VALUE")
                                     .cell()));
 } 
 else
diff --git a/entity/Classification_entity/recordcontainers/jdito/contentProcess.js b/entity/Classification_entity/recordcontainers/jdito/contentProcess.js
index 9af7e2ab58bfb43d0f1fcbfa4c0b35f42ad13c23..9012ad499cb17403800936f7ad257cca37b1d91b 100644
--- a/entity/Classification_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Classification_entity/recordcontainers/jdito/contentProcess.js
@@ -1,3 +1,8 @@
+import("Context_lib");
+import("Util_lib");
+import("system.eMath");
+import("system.entities");
+import("Organisation_lib");
 import("system.text");
 import("Classification_lib");
 import("Contact_lib");
@@ -32,141 +37,527 @@ _UidEncoder.decode = function (pEncodedUid)
 
 var objectRowIdParam = vars.get("$param.ObjectRowid_param");
 var objectTypeParam = vars.get("$param.ObjectType_param");
-var scoresPerGroup = ClassificationUtils.getScoreAsObject(objectTypeParam, objectRowIdParam);
 
-var masking = new SqlMaskingUtils();
+var classificationTypeGroupDisplayCache = {};
+var gradingObject = {};
+var bestPossibleValuesObj = {};
+var achievedGroupScoresObj = {};
+var achievedGroupGradingsObj = {};
+var translatedClassificationTypesObj = {};
+var gradingTables = {};
+var maxScoresObj = {};
+
+var resultSet = [];
+var select;
+
+var classificationGroups = [];
 
-//store the content of $local.idValues depending on the provided type in the idvalues
-var filterClassificationIds = [];
-var filterClassificationTypeIds = [];
-// 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").forEach(function (pIdValue) {
-        var decodedId = _UidEncoder.decode(pIdValue);
-        filterClassificationTypeIds.push(decodedId.classifactionTypeId);
-    });
+    var decodedId = _UidEncoder.decode(vars.get("$local.idvalues"));
 }
 
-//this is the main select for the data
-var select = newSelect("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID \n\
-                    ,CLASSIFICATION.CLASSIFICATIONID, CLASSIFICATION.CLASSIFICATIONSCORE_ID, CLASSIFICATION.OBJECT_ROWID \n\
-                    ,CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID, CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONTYPE.SCORETYPE \n\
-                    ,CLASSIFICATIONSCORE.TITLE\n\
-                    ,CLASSIFICATIONGROUP.TITLE ")
-                .from("CLASSIFICATION")
-                .rightJoin("CLASSIFICATIONTYPE", newWhere()
-                    .and("CLASSIFICATION.CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
-                    .andIfSet("CLASSIFICATION.OBJECT_TYPE", "$param.ObjectType_param")
-                    .andIfSet("CLASSIFICATION.OBJECT_ROWID", objectRowIdParam))
-                .join("CLASSIFICATIONGROUP", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
-                .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID = CLASSIFICATION.CLASSIFICATIONSCORE_ID")
-                .whereIfSet("CLASSIFICATIONTYPE.OBJECT_TYPE", "$param.ClassificationType_param")
-                .andIfSet(
-                        newWhereIfSet("CLASSIFICATION.CLASSIFICATIONID", filterClassificationIds, SqlBuilder.IN())
-                             .orIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", filterClassificationTypeIds, SqlBuilder.IN())
-                    )
-                .orderBy("CLASSIFICATIONGROUP.SORTING");
-
-
-if (filterClassificationIds.length == 0 && filterClassificationTypeIds.length == 0)//no idvalues for filtering
+if(decodedId)//data selected -> only one select has to be done with the classificationtype (which we get from the uuid) in the condition
 {
-    select.and(newWhereIfSet("CLASSIFICATION.OBJECT_TYPE", "$param.ObjectType_param")
-                    .or("CLASSIFICATION.OBJECT_TYPE is null"))
-            .and(newWhereIfSet("CLASSIFICATION.OBJECT_ROWID", objectRowIdParam)
-                    .or("CLASSIFICATION.OBJECT_ROWID is null"));
-}
+    select = newSelect(["CLASSIFICATION.CLASSIFICATIONID, CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONTYPE.SCORETYPE, \n\
+                            CLASSIFICATION.SCOREPOINTS, CLASSIFICATION.VALUE, CLASSIFICATIONSCORE.TITLE, CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID", 
+                                    newSelect("max(CLASSIFICATIONSCORE.SCOREPERCENT)*CLASSIFICATIONTYPE.SCOREPOINTS")
+                                                .from("CLASSIFICATIONSCORE")
+                                                .join("CLASSIFICATIONTYPE on CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID")
+                                                .where("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID", decodedId["classifactionTypeId"])
+                                                .groupBy("CLASSIFICATIONTYPE.SCOREPOINTS").cell()])
+                                .from("CLASSIFICATIONSCORE")
+                                .join("CLASSIFICATION", "CLASSIFICATION.VALUE = CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID")
+                                .leftJoin("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATION.CLASSIFICATIONTYPE_ID")
+                                .leftJoin("CLASSIFICATIONGROUP", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
+                                .where("CLASSIFICATION.CLASSIFICATIONTYPE_ID", decodedId["classifactionTypeId"])
+                                .and("CLASSIFICATION.OBJECT_TYPE", decodedId["objectType"])
+                                .and("CLASSIFICATION.OBJECT_ROWID", decodedId["objectRowId"])
+                                .arrayRow();
+                                
+    if(select.length == 0)//different select needed if no classifications have been stored for the current object_rowId (otherwise problem with the from clause)
+    {
+        select = newSelect(["CLASSIFICATION.CLASSIFICATIONID, CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONTYPE.SCORETYPE, \n\
+                            CLASSIFICATION.SCOREPOINTS, CLASSIFICATION.VALUE"
+                            , SqlBuilder.caseWhen(newWhere("CLASSIFICATION.VALUE", ""))
+                                                            .thenString("")
+                                                            .elseValue("CLASSIFICATIONSCORE.TITLE")
+                                                            .toString()
+                            , "CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID", 
+                                    newSelect("max(CLASSIFICATIONSCORE.SCOREPERCENT)*CLASSIFICATIONTYPE.SCOREPOINTS")
+                                                .from("CLASSIFICATIONSCORE")
+                                                .join("CLASSIFICATIONTYPE on CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID")
+                                                .where("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID", decodedId["classifactionTypeId"])
+                                                .groupBy("CLASSIFICATIONTYPE.SCOREPOINTS").cell()])
+                                .from("CLASSIFICATION")
+                                .leftJoin("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATION.CLASSIFICATIONTYPE_ID")
+                                .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID")
+                                .leftJoin("CLASSIFICATIONGROUP", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
+                                .where("CLASSIFICATION.CLASSIFICATIONTYPE_ID", decodedId["classifactionTypeId"])
+                                .and("CLASSIFICATION.OBJECT_TYPE", decodedId["objectType"])
+                                .and("CLASSIFICATION.OBJECT_ROWID", decodedId["objectRowId"])
+                                .arrayRow();
+    }
+                                
+                                
+    var groupId = select[6];        
+    _buildMaxScore(); //builds maxScoresObj
+    maxTypeScoreObj = {};
+    achievedScoresObj = {};
+    var maxPointsArray = newSelect("CLASSIFICATION.SCOREPOINTS, CLASSIFICATION.CLASSIFICATIONTYPE_ID, CLASSIFICATIONTYPE.SCOREPOINTS")
+                                    .from("CLASSIFICATION")
+                                    .join("CLASSIFICATIONTYPE", "CLASSIFICATION.CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
+                                    .where("CLASSIFICATION.CLASSIFICATIONTYPE_ID",
+                                        newSelect("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
+                                        .from("CLASSIFICATIONTYPE")
+                                        .where("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", groupId), SqlBuilder.IN())
+                                    .and("CLASSIFICATION.OBJECT_ROWID", objectRowIdParam)
+                                    .table();
+    var maxScoreGroup = 0;
+    var achievedScoreGroup = 0;
+    for (let i = 0; i < maxPointsArray.length; i++) 
+    {
+        [achievedScore, classificationTypeId, maxScore] = maxPointsArray[i];
 
-_addLocalFilter();
-_updateScore();
 
-/* After loading the data from the database the data some preparation for the record container is done like translating display values into the 
- * correct locale or calculating some values
- */
-var classificationTypeGroupDisplayCache = {};
-var resultSet = [];
-//declaration needs to be separated because if declaration is done in the deconstructioning the IDE (designer) autocomplete does not work anymore
-var uid, classificationId, classificationScoreId, classificationObjectRowId, classificationTypeGroupId, classificationTypeId
-    , classificationTypeObjectType, classificationTypeScoreType, classificationScoreTitle, classificationGroupTitle;
-select.table().forEach(function (pRow){
-    //deconstructioning for easy access when the selected data changes
-    [uid, classificationId, classificationScoreId, classificationObjectRowId, classificationTypeGroupId, classificationTypeId
-    , classificationTypeObjectType, classificationTypeScoreType, classificationScoreTitle, classificationGroupTitle] = pRow;
+        maxScoreGroup = eMath.addDec(maxScoreGroup, (maxScoresObj[classificationTypeId]*maxScore));
+
+        achievedScoreGroup = eMath.addDec(achievedScore, achievedScoreGroup);
+    }
     
-    uid = _UidEncoder.encode(uid, objectRowIdParam, objectTypeParam);
-    if (classificationScoreTitle)
-        classificationScoreTitle = translate.text(classificationScoreTitle);
-    if (classificationGroupTitle)
-        classificationGroupTitle = translate.text(classificationGroupTitle);
+        gradingTables = newSelect("CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID, CLASSIFICATIONGRADING.MINPERCENT, CLASSIFICATIONGRADING.GRADING")
+                                    .from("CLASSIFICATIONGRADING")
+                                    .where("CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID", groupId)
+                                    .orderBy("CLASSIFICATIONGRADING.MINPERCENT asc")
+                                    .table();
+                                    
+    for (let i = 0; i < gradingTables.length; i++) 
+    {
+        [groupId, minPercent, grading] = gradingTables[i];
 
-    var currentGroupScore = scoresPerGroup[classificationTypeGroupId] || 0;
+        if(gradingObject[groupId] == undefined)
+            gradingObject[groupId] = [];
 
-    //display value is the same for every groupId, so let's cache it that we do not need to load it in every row  => better performance
-    if (classificationTypeGroupDisplayCache[classificationTypeGroupId] == undefined)
+        gradingObject[groupId].push([minPercent, grading]);
+    }
+    
+    displayString = ClassificationUtils.formatDisplaySummaryForGroup(achievedScoreGroup, maxScoreGroup, groupId, translate.text(select[1]),
+                                                ClassificationUtils.getGradingFromObject(gradingObject, groupId, achievedScoreGroup, maxScoreGroup))
+    
+    resultSet.push([vars.get("$local.idvalues")[0]
+                    , decodedId["classifactionTypeId"]
+                    , select[0]
+                    , groupId
+                    , displayString
+                    , translate.text(select[2])
+                    , select[3]
+                    , select[4]
+                    , translate.text(select[5])
+                    , Math.round(select[3] * 100) / 100 +"/"+Math.round(select[7]) / 100 + " " +translate.text("Points")//do this here instead of in the sql so we don't get a lot of zeros behind the comma
+                    , groupId
+                ]);
+                
+}   
+else//else -> build via stored classification datasets; if we don't have any: 1. we get all relevant classificationtypes (this can take some time due to the filters)
+{   //2. insert empty values for them and then 3. load the selected classificationtypes
+
+    // if the select that's done in _buildTreeFromPersistetData() doesnt't return any persisted classifications -> the context has never been opened 
+    // for this dataset before and we need to load all relevant classificationTypes and persist them and return the data
+    if(!_buildTreeFromPersistetData())
     {
-        classificationTypeGroupDisplayCache[classificationTypeGroupId] = ClassificationUtils.formatDisplaySummaryForGroup(currentGroupScore
-                , classificationTypeGroupId, classificationGroupTitle);
+        _buildMaxScore();
+
+        //get's all the the classificationtypes of the current objectType
+        var classificationTypeArray = newSelect("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID, \n\
+                                                    CLASSIFICATIONTYPE.SCORETYPE, CLASSIFICATIONTYPE.SCOREPOINTS, CLASSIFICATIONTYPE.FILTER")
+                                                    .from("CLASSIFICATIONTYPE")
+                                                    .join("CLASSIFICATIONGROUP", "CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID = CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID")
+                                                    .where("CLASSIFICATIONTYPE.OBJECT_TYPE", objectTypeParam)
+                                                    .orderBy("CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
+                                                    .table();
+
+        helperObject = {};
+        classificationTypeObj = {};
+        checkedFilterObj = {};
+        for (let i = 0; i < classificationTypeArray.length; i++) 
+        {
+            [groupId, classificationGroupTitle, typeId, classificationTypeScoreType, classificationTypeScorePoints, classificationTypeFilter] = classificationTypeArray[i];
+
+            if(!helperObject.hasOwnProperty(groupId)) //classificationGroup
+            {
+                classificationTypeObj[groupId] = {};
+                classificationGroups.push(groupId);
+                helperObject[groupId] = "";
+            }
+            if(!helperObject.hasOwnProperty(typeId)) //classificationType
+            {
+                if(_isRelevant())
+                {
+                    classificationTypeObj[groupId][typeId] = {  "classificationGroupTitle": classificationGroupTitle
+                                                                                                    ,"classificationTypeScoreType": classificationTypeScoreType
+                                                                                                    ,"classificationTypeMaxPoints": Math.round(classificationTypeScorePoints*maxScoresObj[typeId] * 100) / 100};
+                    if(bestPossibleValuesObj[groupId] == undefined)
+                        bestPossibleValuesObj[groupId] = 0;
+                    bestPossibleValuesObj[groupId] = eMath.addDec(bestPossibleValuesObj[groupId], classificationTypeScorePoints)
+                }
+                helperObject[typeId] = "";
+            }
+        }
+
+        var columns = ["CLASSIFICATION.CLASSIFICATIONID"
+                        , "CLASSIFICATION.VALUE"
+                        , "CLASSIFICATION.CLASSIFICATIONTYPE_ID"
+                        , "CLASSIFICATION.OBJECT_TYPE"
+                        , "CLASSIFICATION.OBJECT_ROWID"
+                        , "CLASSIFICATION.SCOREPOINTS"
+                       ];
+
+        
+        //we loop  trough all the relevant classificationtypes and insert classification datasets for every one of them.
+        //here we can easily build resultSet since we are already looping trough all the classificationTypes, so why not do it?
+        for (groupId in classificationTypeObj) 
+        {
+            for (var typeId in classificationTypeObj[groupId])
+            {
+                classificationId = util.getNewUUID();
+                var values = [classificationId
+                , " "
+                , typeId
+                , objectTypeParam
+                , objectRowIdParam
+                , "0"
+               ];
+                
+                db.insertData("CLASSIFICATION", columns, null, values);//insert into CLASSIFICATION for every relevant classificationtype
+                
+                //build resultSet:
+                uid = _UidEncoder.encode(typeId, objectRowIdParam, objectTypeParam);
+                resultSet.push([uid, typeId, classificationId, groupId, translate.text(classificationTypeObj[groupId][typeId]["classificationGroupTitle"]), 
+                    translate.text(classificationTypeObj[groupId][typeId]["classificationTypeScoreType"]), 
+                "0", "", "", classificationTypeObj[groupId][typeId]["classificationTypeMaxPoints"]+" "+translate.text("Points")]);
+            }
+        }
     }
-    var classificationTypeGroupDisplay = classificationTypeGroupDisplayCache[classificationTypeGroupId];
+    
+    // get displayvalues, and build the infoString using gradingObj (this is relevant for every way of loading data)
+    
+    gradingTables = newSelect("CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID, CLASSIFICATIONGRADING.MINPERCENT, CLASSIFICATIONGRADING.GRADING")
+                                    .from("CLASSIFICATIONGRADING")
+                                    .where("CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID", classificationGroups, SqlBuilder.IN())
+                                    .orderBy("CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID, MINPERCENT asc")
+                                    .table();
+                                    
+    for (i = 0; i < gradingTables.length; i++) 
+    {
+        [groupId, minPercent, grading] = gradingTables[i];
 
-    //a field can only contain a string so format complex data into string
-    scoresPerGroupForPush = JSON.stringify(scoresPerGroup);
+        if(gradingObject[groupId] == undefined)
+            gradingObject[groupId] = [];
 
-    resultSet.push([uid, classificationId, classificationTypeGroupId, classificationTypeGroupDisplay, classificationGroupTitle
-        , classificationScoreId, classificationScoreTitle, classificationTypeId, classificationTypeId, classificationTypeObjectType
-        , objectRowIdParam, classificationTypeScoreType, classificationTypeObjectType, scoresPerGroupForPush, currentGroupScore]);
-});
+        gradingObject[groupId].push([minPercent, grading]);
+    }
 
-result.object(resultSet);
+    for (i = 0; i < classificationGroups.length; i++)
+    {
+        var classificatioGroupId = classificationGroups[i];
+        if(achievedGroupScoresObj[classificatioGroupId] == undefined)
+            achievedGroupScoresObj[classificatioGroupId] = 0;
+        
+        achievedGroupGradingsObj[classificatioGroupId] = ClassificationUtils.getGradingFromObject(gradingObject, classificatioGroupId, 
+                                                            achievedGroupScoresObj[classificatioGroupId], bestPossibleValuesObj[classificatioGroupId]);
+    }
 
-/* private helper functions for better readability are following now
- * variable scope is shared so there is no need to pass the values as parameters
- */
 
-/**
- * adds the $local.filter to the sql condition
- */
-function _addLocalFilter()
+    for (i = 0; i < resultSet.length; i++) {
+        groupId = resultSet[i][3];
+
+            //display value is the same for every groupId, so let's cache it that we do not need to load it in every row  => better performance
+        if (classificationTypeGroupDisplayCache[groupId] == undefined)
+        {
+            classificationTypeGroupDisplayCache[groupId] = ClassificationUtils.formatDisplaySummaryForGroup(achievedGroupScoresObj[groupId]
+                    ,bestPossibleValuesObj[groupId], groupId, resultSet[i][4], achievedGroupGradingsObj[groupId]);
+        }
+        resultSet[i][4] = classificationTypeGroupDisplayCache[groupId];
+        resultSet[i][9] = "";
+        resultSet[i][10] = "";
+    }
+    
+    
+}
+var newStorageString = "";
+var oldStorageString = newSelect("CLASSIFICATIONSTORAGE.CLASSIFICATIONVALUE")
+                                .from("CLASSIFICATIONSTORAGE")
+                                .where("CLASSIFICATIONSTORAGE.OBJECT_TYPE", objectTypeParam)
+                                .and("CLASSIFICATIONSTORAGE.OBJECT_ROWID", objectRowIdParam)
+                                .cell();
+                                
+for(var groupid in classificationTypeGroupDisplayCache)
 {
-    if (vars.exists("$local.filter") && vars.get("$local.filter"))
+    newStorageString += classificationTypeGroupDisplayCache[groupid].slice(classificationTypeGroupDisplayCache[groupid].length-1)
+}
+
+var update;
+if(newStorageString != oldStorageString && !decodedId)//update the old string if the new one differs
+{
+    update = newWhere("CLASSIFICATIONSTORAGE.OBJECT_TYPE", objectTypeParam)
+                            .and("CLASSIFICATIONSTORAGE.OBJECT_ROWID", objectRowIdParam)
+                            .updateData(true, "CLASSIFICATIONSTORAGE", ["CLASSIFICATIONVALUE"], null, [newStorageString]);//don't set the OUTDATED flag to false since even our new value could be outdated!
+    
+    if(update == 0)//update wasnt succesfull -> the storage dataset doesnt exist yet -> insert
+    {
+        db.insertData("CLASSIFICATIONSTORAGE", ["CLASSIFICATIONSTORAGEID", "CLASSIFICATIONVALUE", "OBJECT_ROWID", "OBJECT_TYPE", "OUTDATED"], null, 
+                                [util.getNewUUID(), newStorageString, objectRowIdParam, objectTypeParam, 0])
+    }
+}
+else if(decodedId)//different way of handling when data is selected since we can only check for the grading of the group of the current classificationtype
+{
+    var orderedGroups = newSelect("distinct CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, CLASSIFICATIONGROUP.SORTING")
+                                    .from("CLASSIFICATION")
+                                    .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATION.CLASSIFICATIONTYPE_ID")
+                                    .join("CLASSIFICATIONGROUP", "CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID = CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID")
+                                    .where("CLASSIFICATION.OBJECT_ROWID", objectRowIdParam)
+                                    .orderBy("CLASSIFICATIONGROUP.SORTING")
+                                    .table();
+    //get the of our grading in the string
+    var position = 0;
+    for (i = 0; i < orderedGroups.length; i++) {
+        if(orderedGroups[i][0] == groupId)
+        {
+            position = i;
+            break;
+        }
+    }
+    newStorageString = displayString.slice(displayString.length-1); //slice current grading from the displaystring
+    if(newStorageString != oldStorageString.slice(position, position+1)) // our letter/char/whatever differs from the one at the correct position of the storred string
     {
-        var filter = vars.get("$local.filter");
-        if (filter.filter)
-            select.andIfSet((JditoFilterUtils.getSqlCondition(filter.filter, "CLASSIFICATION", undefined, {
-                OBJECT_TYPE : "CLASSIFICATIONTYPE.OBJECT_TYPE"
-            })));
+        newStorageString = StringUtils.replaceAt(oldStorageString, position, newStorageString)
+        update = newWhere("CLASSIFICATIONSTORAGE.OBJECT_TYPE", objectTypeParam)
+                                .and("CLASSIFICATIONSTORAGE.OBJECT_ROWID", objectRowIdParam)
+                                .updateData(true, "CLASSIFICATIONSTORAGE", ["CLASSIFICATIONVALUE"], null, [newStorageString]);//don't set the OUTDATED flag to false since even our new value could be outdated!
+
+        if(update == 0)//update wasnt succesfull -> the storage dataset doesnt exist yet -> insert
+        {
+            db.insertData("CLASSIFICATIONSTORAGE", ["CLASSIFICATIONSTORAGEID", "CLASSIFICATIONVALUE", "OBJECT_ROWID", "OBJECT_TYPE", "OUTDATED"], null, 
+                                    [util.getNewUUID(), newStorageString, objectRowIdParam, objectTypeParam, 0])
+        }
     }
 }
 
+result.object(resultSet);
 
 /**
- * performs an update in  the precalculated classification-stoarge information if there is a missmatch between the IS-value and the SHOULD-BE-value
+ * Checks whether or not the classification is relevant for the current dataset
  */
-function _updateScore()
+function _isRelevant()
 {
-    var calculatedScore = ClassificationUtils.getScore(objectTypeParam, objectRowIdParam)
+    var cond = ((classificationTypeFilter == "" || classificationTypeFilter == undefined || classificationTypeFilter == null) 
+                    && checkedFilterObj[classificationTypeFilter] == undefined)
+                || (checkedFilterObj[classificationTypeFilter] != undefined && checkedFilterObj[classificationTypeFilter] != false);
+    if(!cond)// return true if we don't have an filter set or already checked the filter and it's true
+    {
+        if(checkedFilterObj[classificationTypeFilter] != false)
+        {
+            var selectRelevance, loadConfig, row, filterFields, filterableRow, value, filteredRecs;
+            var res = false;
+            var entityField = true;
 
-    var calculatedClassification = "";
-    for (let i = 0; i < calculatedScore.length; i++) {
-        calculatedClassification += ClassificationUtils.getClassifications(calculatedScore[i][0], calculatedScore[i][1]);
-    }
+            parsedFilter = JSON.parse(classificationTypeFilter).filter;
 
-    var storedClassification = newSelect("CLASSIFICATIONSTORAGE.CLASSIFICATIONSTORAGEID, CLASSIFICATIONSTORAGE.CLASSIFICATIONVALUE ")
-    .from("CLASSIFICATIONSTORAGE")
-    .where("CLASSIFICATIONSTORAGE.OBJECT_ROWID", objectRowIdParam)
-    .arrayRow();
+            if(parsedFilter["childs"]["0"] != undefined) // ignore empty filters
+            {
+                //no "." in the name means its a field of the entity itself: use entities.getRow and JditoFilterUtils.filterRecords 
+                //to check whether or not the Filter excludes this row
+                //else: currently a count is made whith the filtercondition as the where clause --> poor performance
+                if(parsedFilter["childs"]["0"]["name"].includes("."))
+                {
+                    entityField = false
+                    parsedFilter = JSON.stringify(parsedFilter);
+                }
 
-    var table = "CLASSIFICATIONSTORAGE";
-    var columns = ["CLASSIFICATIONVALUE"];
-    var values = [calculatedClassification];
+                if(objectTypeParam == "Organisation")
+                {
+                    if(entityField == true) 
+                    {
+                        filterFields = ["CUSTOMERCODE", "INFO", "LANGUAGE", "NAME", "STANDARD_CITY", "STANDARD_EMAIL_COMMUNICATION", "STANDARD_PHONE_COMMUNICATION", "STATUS", "TYPE"];
+                    }
+                    else
+                    {
+                      selectRelevance = newSelect("count(*)")
+                                                    .from("ORGANISATION")
+                                                    .join("CONTACT", "ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID and CONTACT.PERSON_ID is null")
+                                                    .leftJoin("ADDRESS", "ADDRESS.ADDRESSID = CONTACT.ADDRESS_ID")
+                                                    .leftJoin("CLASSIFICATIONSTORAGE", "CLASSIFICATIONSTORAGE.OBJECT_ROWID = CONTACT.CONTACTID")
+                                                    .where(db.toFilterCondition(parsedFilter, "Organisation_entity"))
+                                                    .and("ORGANISATION.ORGANISATIONID", OrgUtils.getPrivateOrganisationId(), SqlBuilder.NOT_EQUAL())
+                                                    .and("CONTACT.CONTACTID", objectRowIdParam)
+                    }
+                }
+                else if(objectTypeParam == "Salesproject")
+                {
+                    if(entityField == true)
+                    {
+                        filterFields = ["CONTACT_ID", "ENDDATE", "INFO", "PHASE", "PROBABILITY", "PROJECTCODE", "PROJECTTITLE", "REASONS", "STARTDATE", "STATUS", "VOLUME"];
+                    }
+                    else
+                    {
+                        selectRelevance = newSelect("count(*)")
+                                                    .from("Salesproject")
+                                                    .leftJoin("CONTACT", "SALESPROJECT.CONTACT_ID = CONTACT.CONTACTID")
+                                                    .leftJoin("ORGANISATION", "CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID")
+                                                    .leftJoin("CLASSIFICATIONSTORAGE", "CLASSIFICATIONSTORAGE.OBJECT_ROWID = SALESPROJECT.SAALESPROJECTID") 
+                                                    .where(db.toFilterCondition(parsedFilter, "Salesproject_entity"))
+                                                    .and("SALESPROJECT.SALESPROJECTID", objectRowIdParam)
+                    }
+                }
+                else
+                {
+                    throw new Error("Classification_entity.jdito.contentProcess: objectType doesn't exist or is not implemented correctly, contact an administrator.");
+                }
 
-    if(storedClassification[1] != undefined && calculatedClassification != storedClassification[1]) //Update the stored classification if the freshly calculated one differs
-    {
-    newWhere("CLASSIFICATIONSTORAGE.CLASSIFICATIONSTORAGEID", storedClassification[0]).updateData(true, table, columns, null, values);
+                //if its a field of the entity itself: use entities.getRow and JditoFilterUtils.filterRecords to check whether or not the Filter excludes this row
+                if(entityField == true)
+                {   
+                    if(filterableRow == undefined)//filterableRow has only have to be done once per objectType -> cache for better performance
+                    {
+                        loadConfig = entities.createConfigForLoadingRows()
+                                                .entity(ContextUtils.getEntity(objectTypeParam))
+                                                .uid(objectRowIdParam)
+                                                .fields(filterFields)
+
+                        row = entities.getRow(loadConfig)
+
+                        filterableRow = filterFields.map(function (field){
+                        value = null;
+                        if (field in row)
+                            value = row[field];
+                        return value;
+                        });
+                    }
+                    //filter gets used after using entities.getRow and not in the loadconfig, since we can have multiple filters 
+                    //and don't want to do entities.getRow for every single one 
+                    filteredRecs = JditoFilterUtils.filterRecords(filterFields, [filterableRow], parsedFilter);
+                    if(filteredRecs.length > 0)
+                        res = true;
+                }
+                //else: currently a count is made whith the filtercondition as the where clause --> poor performance
+                else 
+                {
+                    selectRelevance = selectRelevance.cell();
+
+                    if(selectRelevance > 0)
+                        res = true;
+                }
+            }
+            if(res == true)
+            {
+                checkedFilterObj[classificationTypeFilter] = true;
+            }
+            else
+            {    
+                checkedFilterObj[classificationTypeFilter] = false;
+                res = false;
+            }
+        }
     }
-    else if(storedClassification[1] == undefined) //insert if no classificationstorage exists yet
+    else
+        res = true;
+        
+    return res;
+}
+
+/**
+ * Builds the Array using stored classification datasets;
+ * returns true after pushing into resultSet and false if there are no persistent datasets for the current object
+ */
+function _buildTreeFromPersistetData()
+{
+    var treeBuilt = false;
+    var maxPercents = newSelect("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID, max(CLASSIFICATIONSCORE.SCOREPERCENT)/100")
+                                .from("CLASSIFICATIONSCORE")
+                                .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID")
+                                .where("CLASSIFICATIONTYPE.OBJECT_TYPE", objectTypeParam)
+                                .groupBy("CLASSIFICATIONTYPE_ID")
+                                .table();
+
+
+    //this is the main select for the data
+    select = newSelect("CLASSIFICATION.CLASSIFICATIONTYPE_ID, CLASSIFICATION.CLASSIFICATIONID, CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, \n\
+                                CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONTYPE.SCORETYPE, CLASSIFICATION.SCOREPOINTS, CLASSIFICATION.VALUE, \n\
+                                CLASSIFICATIONSCORE.TITLE, CLASSIFICATIONTYPE.SCOREPOINTS")
+                            .from("CLASSIFICATIONTYPE")
+                            .leftJoin("CLASSIFICATION", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATION.CLASSIFICATIONTYPE_ID")
+                            .leftJoin("CLASSIFICATIONGROUP", "CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID = CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID")
+                            .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID = CLASSIFICATION.VALUE")
+                            .where("CLASSIFICATION.OBJECT_TYPE", objectTypeParam)
+                            .and("CLASSIFICATION.OBJECT_ROWID", objectRowIdParam)
+                            .orderBy("CLASSIFICATIONGROUP.SORTING, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
+
+
+
+    /* After loading the data from the database some preparation for the record container is done like translating display values into the 
+     * correct locale or calculating some values
+     */
+    //declaration needs to be separated because if declaration is done in the deconstructioning the IDE (designer) autocomplete does not work anymore
+    var typeId, classificationId, groupId, classificationGroupTitle, classificationTypeScoreType
+        , classificationScorePoints, classificationValue, valueDisplayValue, uid, classificationTypeScorePoints, maxValue;
+    select.table().forEach(function (pRow){
+        //deconstructioning for easy access when the selected data changes
+        [typeId, classificationId, groupId, classificationGroupTitle, classificationTypeScoreType, 
+            classificationScorePoints, classificationValue, valueDisplayValue, classificationTypeScorePoints] = pRow;
+
+        uid = _UidEncoder.encode(typeId, objectRowIdParam, objectTypeParam);
+
+        if(translatedClassificationTypesObj[typeId] == undefined)
+        {
+            translatedClassificationTypesObj[typeId] = translate.text(classificationTypeScoreType)
+        }
+        classificationTypeScoreType = translatedClassificationTypesObj[typeId];
+        
+        if (valueDisplayValue)
+            valueDisplayValue = translate.text(valueDisplayValue);
+        if (classificationGroupTitle)
+            classificationGroupTitle = translate.text(classificationGroupTitle);
+
+        for (i = 0; i < maxPercents.length; i++) {
+            if(typeId == maxPercents[i][0])
+            {
+                maxValue = classificationTypeScorePoints*maxPercents[i][1];
+                break;
+            }
+        }
+        if(bestPossibleValuesObj[groupId] == undefined)
+            bestPossibleValuesObj[groupId] = 0;
+        bestPossibleValuesObj[groupId] = eMath.addDec(bestPossibleValuesObj[groupId], maxValue)
+
+        if(achievedGroupScoresObj[groupId] == undefined)
+        {
+            achievedGroupScoresObj[groupId] = 0
+            classificationGroups.push(groupId)
+        }
+        if(classificationScorePoints != undefined || classificationScorePoints != "")
+            achievedGroupScoresObj[groupId] = eMath.addDec(Number(achievedGroupScoresObj[groupId]), Number(classificationScorePoints));
+        
+        treeBuilt = true;
+        resultSet.push([uid, typeId, classificationId, groupId, classificationGroupTitle, classificationTypeScoreType, 
+            classificationScorePoints, classificationValue, valueDisplayValue, maxValue]);
+    });
+    return treeBuilt;
+}
+
+/**
+ * selects maxScoresArray and builds maxScoresObj (maxScoresObj[classificationTypeId] = maxScorePercent)
+ */
+function _buildMaxScore()
+{
+    var maxScoresArray = newSelect("max(CLASSIFICATIONSCORE.SCOREPERCENT)/100, CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID")
+                                        .from("CLASSIFICATIONSCORE")
+                                        .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID")
+                                        .where("CLASSIFICATIONTYPE.OBJECT_TYPE", objectTypeParam)
+                                        .groupBy("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID")
+                                        .table();
+
+    for (i = 0; i < maxScoresArray.length; i++) 
     {
-        db.insertData(table, ["CLASSIFICATIONSTORAGEID", "CLASSIFICATIONVALUE", "OBJECT_ROWID", "OBJECT_TYPE"], null, 
-                                [util.getNewUUID(), calculatedClassification, objectRowIdParam, objectTypeParam])
+        maxScoresObj[maxScoresArray[i][1]] = maxScoresArray[i][0]; //build maxScoresObj using maxScoresArray (easier acces later)
     }
 }
\ No newline at end of file
diff --git a/entity/Classification_entity/recordcontainers/jdito/onUpdate.js b/entity/Classification_entity/recordcontainers/jdito/onUpdate.js
index a8f0f8ad9849604d27646572f35229f8eb8c212d..cae77afa19642fa2f242928af66a796cb1141be7 100644
--- a/entity/Classification_entity/recordcontainers/jdito/onUpdate.js
+++ b/entity/Classification_entity/recordcontainers/jdito/onUpdate.js
@@ -1,35 +1,11 @@
-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"))
-    {
-        newWhere("CLASSIFICATION.CLASSIFICATIONID", "$field.CLASSIFICATIONID")
-            .updateFields({"CLASSIFICATIONSCORE_ID" : vars.get("$field.CLASSIFICATIONSCORE_ID")});
-    }
-    else
-    {
-        newWhere("CLASSIFICATION.CLASSIFICATIONID", "$field.CLASSIFICATIONID").deleteData();
-    }
-}
-else if (vars.get("$field.CLASSIFICATIONSCORE_ID"))
+if(changed)
 {
-    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);
+    newWhere("CLASSIFICATION.CLASSIFICATIONID", "$field.CLASSIFICATIONID")
+        .updateFields({"VALUE" : vars.get("$field.VALUE")
+                        ,"SCOREPOINTS" : vars.get("$field.Info.displayValue").slice(0, vars.get("$field.Info.displayValue").indexOf("/"))
+                        });
 }
\ No newline at end of file
diff --git a/entity/CommRestriction_Entity/CommRestriction_Entity.aod b/entity/CommRestriction_Entity/CommRestriction_Entity.aod
index 407e45312848c4daf741f99d7df616f30754ca5b..b1604aa94b0cfb68fd202ff113e3586b76268cfa 100644
--- a/entity/CommRestriction_Entity/CommRestriction_Entity.aod
+++ b/entity/CommRestriction_Entity/CommRestriction_Entity.aod
@@ -1,9 +1,11 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>CommRestriction_Entity</name>
+  <title>Advertising ban</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/CommRestriction_Entity/documentation.adoc</documentation>
-  <title>Advertising ban</title>
+  <contentTitleProcess>%aditoprj%/entity/CommRestriction_Entity/contentTitleProcess.js</contentTitleProcess>
+  <contentTitleProcess>%aditoprj%/entity/CommRestriction_Entity/contentTitleProcess.js</contentTitleProcess>
   <titlePlural>Advertising bans</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -55,6 +57,11 @@
     </entityConsumer>
     <entityConsumer>
       <name>CommRestrictionMedium</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -66,11 +73,6 @@
           <valueProcess>%aditoprj%/entity/CommRestriction_Entity/entityfields/commrestrictionmedium/children/blacklistids_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>CommRestrictions</name>
@@ -103,17 +105,17 @@
     </entityField>
     <entityConsumer>
       <name>MediumKeywordAttribute</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordAttribute_entity</entityName>
+        <fieldName>SpecificContainerKeyword</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/CommRestriction_Entity/entityfields/mediumkeywordattribute/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordAttribute_entity</entityName>
-        <fieldName>SpecificContainerKeyword</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>#PROVIDER_AGGREGATES</name>
@@ -123,17 +125,11 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/CommRestriction_Entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>d02c4bb0-c0aa-46fa-bf1b-4bcc44aeb012</name>
-          <tableName>COMMRESTRICTION</tableName>
-          <primaryKey>COMMRESTRICTIONID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <onDBInsert>%aditoprj%/entity/CommRestriction_Entity/recordcontainers/db/onDBInsert.js</onDBInsert>
+      <onDBUpdate>%aditoprj%/entity/CommRestriction_Entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
+      <onDBDelete>%aditoprj%/entity/CommRestriction_Entity/recordcontainers/db/onDBDelete.js</onDBDelete>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>COMMRESTRICTIONID.value</name>
@@ -168,6 +164,15 @@
           <expression>%aditoprj%/entity/CommRestriction_Entity/recordcontainers/db/recordfieldmappings/medium.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>d02c4bb0-c0aa-46fa-bf1b-4bcc44aeb012</name>
+          <tableName>COMMRESTRICTION</tableName>
+          <primaryKey>COMMRESTRICTIONID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/CommRestriction_Entity/contentTitleProcess.js b/entity/CommRestriction_Entity/contentTitleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b959e2abda60ee4ced3a7efe1281a0727eeff0f2
--- /dev/null
+++ b/entity/CommRestriction_Entity/contentTitleProcess.js
@@ -0,0 +1,5 @@
+import("system.translate");
+import("system.vars");
+import("system.result");
+
+result.string(translate.text("Advertising ban") + " " + translate.text(vars.get("$field.MEDIUM")));
\ No newline at end of file
diff --git a/entity/CommRestriction_Entity/recordcontainers/db/onDBDelete.js b/entity/CommRestriction_Entity/recordcontainers/db/onDBDelete.js
new file mode 100644
index 0000000000000000000000000000000000000000..6ff91a5eb319120b527776868367d3cdb0f445f1
--- /dev/null
+++ b/entity/CommRestriction_Entity/recordcontainers/db/onDBDelete.js
@@ -0,0 +1,3 @@
+import("Workflow_lib");
+
+WorkflowSignalSender.deleted();
\ No newline at end of file
diff --git a/entity/CommRestriction_Entity/recordcontainers/db/onDBInsert.js b/entity/CommRestriction_Entity/recordcontainers/db/onDBInsert.js
new file mode 100644
index 0000000000000000000000000000000000000000..54f0349c9f1ddaab6b25f85f758d52928df41847
--- /dev/null
+++ b/entity/CommRestriction_Entity/recordcontainers/db/onDBInsert.js
@@ -0,0 +1,3 @@
+import("Workflow_lib");
+
+WorkflowSignalSender.inserted();
\ No newline at end of file
diff --git a/entity/CommRestriction_Entity/recordcontainers/db/onDBUpdate.js b/entity/CommRestriction_Entity/recordcontainers/db/onDBUpdate.js
new file mode 100644
index 0000000000000000000000000000000000000000..2e53f3cad9a9edf21cc5bbc6fdecc00c5001dfee
--- /dev/null
+++ b/entity/CommRestriction_Entity/recordcontainers/db/onDBUpdate.js
@@ -0,0 +1,3 @@
+import("Workflow_lib");
+
+WorkflowSignalSender.updated();
\ No newline at end of file
diff --git a/entity/Communication_entity/Communication_entity.aod b/entity/Communication_entity/Communication_entity.aod
index f931c15531a870c0828c7706d110e39542b74bbd..31f48ebaa3a51281176d95c6a40ea1c27f54c59d 100644
--- a/entity/Communication_entity/Communication_entity.aod
+++ b/entity/Communication_entity/Communication_entity.aod
@@ -1,11 +1,12 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Communication_entity</name>
+  <title>Communication</title>
   <description>former Comm</description>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Communication_entity/documentation.adoc</documentation>
-  <title>Communication</title>
   <contentTitleProcess>%aditoprj%/entity/Communication_entity/contentTitleProcess.js</contentTitleProcess>
+  <afterOperatingState>%aditoprj%/entity/Communication_entity/afterOperatingState.js</afterOperatingState>
   <recordContainer>db</recordContainer>
   <entityFields>
     <entityField>
@@ -27,6 +28,7 @@
       <consumer>KeywordMediums</consumer>
       <mandatory v="true" />
       <displayValueProcess>%aditoprj%/entity/Communication_entity/entityfields/medium_id/displayValueProcess.js</displayValueProcess>
+      <onValueChange>%aditoprj%/entity/Communication_entity/entityfields/medium_id/onValueChange.js</onValueChange>
     </entityField>
     <entityField>
       <name>CONTACT_ID</name>
@@ -63,27 +65,6 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
       <name>AllCommunications</name>
       <documentation>%aditoprj%/entity/Communication_entity/entityfields/allcommunications/documentation.adoc</documentation>
       <recordContainer>db</recordContainer>
-      <children>
-        <entityParameter>
-          <name>CommCategory_param</name>
-          <expose v="true" />
-          <description>TODO: expose auf false. aktuell wird der Code nicht ausgeführt, wenn Expose false ist.</description>
-        </entityParameter>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <expose v="true" />
-          <description>This parameter is used for specifing a related "CONTACTID" to a COMMUNICATION-entry. 
-Usually this is used for filtering COMMUNICATION-entries by a specified contact or creating a new entry that is related to a contact.</description>
-        </entityParameter>
-        <entityParameter>
-          <name>Address_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>AdditionalContactIds_param</name>
-          <expose v="false" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>070b2457-3766-4c8a-b43f-a2bf7c9ef638</name>
@@ -110,16 +91,10 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
-    </entityProvider>
-    <entityProvider>
-      <name>PhoneCommunications</name>
-      <documentation>%aditoprj%/entity/Communication_entity/entityfields/phonecommunications/documentation.adoc</documentation>
-      <recordContainer>db</recordContainer>
       <children>
         <entityParameter>
           <name>CommCategory_param</name>
-          <valueProcess>%aditoprj%/entity/Communication_entity/entityfields/phonecommunications/children/commcategory_param/valueProcess.js</valueProcess>
-          <expose v="false" />
+          <expose v="true" />
           <description>TODO: expose auf false. aktuell wird der Code nicht ausgeführt, wenn Expose false ist.</description>
         </entityParameter>
         <entityParameter>
@@ -130,14 +105,18 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
         </entityParameter>
         <entityParameter>
           <name>Address_param</name>
-          <expose v="true" />
-          <mandatory v="false" />
+          <expose v="false" />
         </entityParameter>
         <entityParameter>
           <name>AdditionalContactIds_param</name>
           <expose v="false" />
         </entityParameter>
       </children>
+    </entityProvider>
+    <entityProvider>
+      <name>PhoneCommunications</name>
+      <documentation>%aditoprj%/entity/Communication_entity/entityfields/phonecommunications/documentation.adoc</documentation>
+      <recordContainer>db</recordContainer>
       <dependencies>
         <entityDependency>
           <name>7382242a-aa18-4a31-ab77-69a79f2b97b8</name>
@@ -152,16 +131,10 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
-    </entityProvider>
-    <entityProvider>
-      <name>EmailCommunications</name>
-      <documentation>%aditoprj%/entity/Communication_entity/entityfields/emailcommunications/documentation.adoc</documentation>
-      <recordContainer>db</recordContainer>
       <children>
         <entityParameter>
           <name>CommCategory_param</name>
-          <title></title>
-          <valueProcess>%aditoprj%/entity/Communication_entity/entityfields/emailcommunications/children/commcategory_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/Communication_entity/entityfields/phonecommunications/children/commcategory_param/valueProcess.js</valueProcess>
           <expose v="false" />
           <description>TODO: expose auf false. aktuell wird der Code nicht ausgeführt, wenn Expose false ist.</description>
         </entityParameter>
@@ -173,13 +146,19 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
         </entityParameter>
         <entityParameter>
           <name>Address_param</name>
-          <expose v="false" />
+          <expose v="true" />
+          <mandatory v="false" />
         </entityParameter>
         <entityParameter>
           <name>AdditionalContactIds_param</name>
           <expose v="false" />
         </entityParameter>
       </children>
+    </entityProvider>
+    <entityProvider>
+      <name>EmailCommunications</name>
+      <documentation>%aditoprj%/entity/Communication_entity/entityfields/emailcommunications/documentation.adoc</documentation>
+      <recordContainer>db</recordContainer>
       <dependencies>
         <entityDependency>
           <name>ecfbf518-fe92-4661-8ebe-e2d3c8d259e1</name>
@@ -206,6 +185,29 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>CommCategory_param</name>
+          <valueProcess>%aditoprj%/entity/Communication_entity/entityfields/emailcommunications/children/commcategory_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+          <title></title>
+          <description>TODO: expose auf false. aktuell wird der Code nicht ausgeführt, wenn Expose false ist.</description>
+        </entityParameter>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="true" />
+          <description>This parameter is used for specifing a related "CONTACTID" to a COMMUNICATION-entry. 
+Usually this is used for filtering COMMUNICATION-entries by a specified contact or creating a new entry that is related to a contact.</description>
+        </entityParameter>
+        <entityParameter>
+          <name>Address_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>AdditionalContactIds_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityParameter>
       <name>CommCategory_param</name>
@@ -219,6 +221,11 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
     </entityParameter>
     <entityConsumer>
       <name>KeywordMediums</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -226,11 +233,6 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>USER_NEW</name>
@@ -289,28 +291,13 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <fromClauseProcess>%aditoprj%/entity/Communication_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/Communication_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/Communication_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
       <onDBInsert>%aditoprj%/entity/Communication_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/Communication_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
-      <linkInformation>
-        <linkInformation>
-          <name>5f6cd42e-34d5-4a1c-b9f0-8c87bf914f22</name>
-          <tableName>COMMUNICATION</tableName>
-          <primaryKey>COMMUNICATIONID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>fd493a1b-3ff1-4e7e-8d21-0f9f28824e9e</name>
-          <tableName>AB_KEYWORD_ENTRY</tableName>
-          <primaryKey>AB_KEYWORD_ENTRYID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <onDBDelete>%aditoprj%/entity/Communication_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>ADDR.value</name>
@@ -321,6 +308,7 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
         <dbRecordFieldMapping>
           <name>MEDIUM_ID.value</name>
           <recordfield>COMMUNICATION.MEDIUM_ID</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>COMMUNICATIONID.value</name>
@@ -355,6 +343,22 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
           <recordfield>COMMUNICATION.DATE_EDIT</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>5f6cd42e-34d5-4a1c-b9f0-8c87bf914f22</name>
+          <tableName>COMMUNICATION</tableName>
+          <primaryKey>COMMUNICATIONID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>fd493a1b-3ff1-4e7e-8d21-0f9f28824e9e</name>
+          <tableName>AB_KEYWORD_ENTRY</tableName>
+          <primaryKey>AB_KEYWORD_ENTRYID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/Communication_entity/afterOperatingState.js b/entity/Communication_entity/afterOperatingState.js
new file mode 100644
index 0000000000000000000000000000000000000000..7085e9f853c10e7ebaadcd76f44b8786c5d621ed
--- /dev/null
+++ b/entity/Communication_entity/afterOperatingState.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.neon");
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_VIEW)
+    vars.set("$context.PushDataPrivacyNotification", "false");
\ No newline at end of file
diff --git a/entity/Communication_entity/entityfields/medium_id/onValueChange.js b/entity/Communication_entity/entityfields/medium_id/onValueChange.js
new file mode 100644
index 0000000000000000000000000000000000000000..83357319d7dfea8b1caef304da0a9d7e81ed28c3
--- /dev/null
+++ b/entity/Communication_entity/entityfields/medium_id/onValueChange.js
@@ -0,0 +1,7 @@
+import("system.neon");
+import("system.vars");
+
+var recordstate = vars.get("$sys.recordstate");
+if (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT) {
+    neon.setFieldValue("$field.ADDR", null);
+}
diff --git a/entity/Communication_entity/recordcontainers/db/fromClauseProcess.js b/entity/Communication_entity/recordcontainers/db/fromClauseProcess.js
index bafe6c4d6176c505dd8e202d89ae7544d0bd4bb9..fc5d866e8a6eaa30ab0ed76e2105c1091a699b95 100644
--- a/entity/Communication_entity/recordcontainers/db/fromClauseProcess.js
+++ b/entity/Communication_entity/recordcontainers/db/fromClauseProcess.js
@@ -1,3 +1,4 @@
+import("Keyword_lib");
 import("Sql_lib");
 import("system.result");
 import("KeywordRegistry_basic");
@@ -5,6 +6,6 @@ import("KeywordRegistry_basic");
 result.string(new SqlBuilder()
     .from("COMMUNICATION")
     .leftJoin("AB_KEYWORD_ENTRY", newWhere("COMMUNICATION.MEDIUM_ID = AB_KEYWORD_ENTRY.KEYID")
-        .and("AB_KEYWORD_ENTRY.CONTAINER", $KeywordRegistry.communicationMedium()))
+                                    .and("AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID", KeywordUtils.getCategoryIdByName($KeywordRegistry.communicationMedium())))
     .toString()
 );
\ No newline at end of file
diff --git a/entity/Communication_entity/recordcontainers/db/onDBDelete.js b/entity/Communication_entity/recordcontainers/db/onDBDelete.js
new file mode 100644
index 0000000000000000000000000000000000000000..6ff91a5eb319120b527776868367d3cdb0f445f1
--- /dev/null
+++ b/entity/Communication_entity/recordcontainers/db/onDBDelete.js
@@ -0,0 +1,3 @@
+import("Workflow_lib");
+
+WorkflowSignalSender.deleted();
\ No newline at end of file
diff --git a/entity/Communication_entity/recordcontainers/db/onDBInsert.js b/entity/Communication_entity/recordcontainers/db/onDBInsert.js
index bb0e24a57917452a50f6549918c678ceb98c2228..7d836ae39e0b9d809ba388111d4ab1ab4302a6f9 100644
--- a/entity/Communication_entity/recordcontainers/db/onDBInsert.js
+++ b/entity/Communication_entity/recordcontainers/db/onDBInsert.js
@@ -1,3 +1,4 @@
+import("Workflow_lib");
 import("system.logging");
 import("system.util");
 import("system.db");
@@ -10,7 +11,11 @@ var rowdata = vars.get("$local.rowdata");
 var standard = new StandardObject("Communication", vars.get("$local.uid"), "Person", rowdata["COMMUNICATION.CONTACT_ID"])
 standard.onCommunicationInsert(rowdata["COMMUNICATION.MEDIUM_ID"]);
 
-DataPrivacyUtils.notifyNeedDataPrivacyUpdate(rowdata["COMMUNICATION.CONTACT_ID"], vars.get("$param.ShowDsgvoMessage_param"));
+if(vars.exists("$context.PushDataPrivacyNotification") && vars.get("$context.PushDataPrivacyNotification") == "false" && vars.get("$sys.isclient"))
+{
+    DataPrivacyUtils.notifyNeedDataPrivacyUpdate(rowdata["COMMUNICATION.CONTACT_ID"], vars.get("$param.ShowDsgvoMessage_param"));
+    vars.set("$context.PushDataPrivacyNotification", "true");
+} 
 
 if (vars.exists("$param.AdditionalContactIds_param") && vars.get("$param.AdditionalContactIds_param"))
 {
@@ -43,4 +48,6 @@ if (vars.exists("$param.AdditionalContactIds_param") && vars.get("$param.Additio
         new StandardObject("Communication", row[3][0], "Person", row[3][2])
             .onCommunicationInsert(row[3][3]);
     })
-}
\ No newline at end of file
+}
+
+WorkflowSignalSender.inserted();
\ No newline at end of file
diff --git a/entity/Communication_entity/recordcontainers/db/onDBUpdate.js b/entity/Communication_entity/recordcontainers/db/onDBUpdate.js
index d3d0371cec1d21f9cb927d351939dc5beac8cb99..ebf288114b69f9c461bebc6ca31b2c39ada5b513 100644
--- a/entity/Communication_entity/recordcontainers/db/onDBUpdate.js
+++ b/entity/Communication_entity/recordcontainers/db/onDBUpdate.js
@@ -1,3 +1,4 @@
+import("Workflow_lib");
 import("DataPrivacy_lib");
 import("system.vars");
 import("StandardObject_lib");
@@ -9,5 +10,11 @@ if (rowdata["COMMUNICATION.CONTACT_ID"] != null)
     var standard = new StandardObject("Communication", vars.get("$local.uid"), "Person", rowdata["COMMUNICATION.CONTACT_ID"])
     standard.onCommunicationUpdate(rowdata["COMMUNICATION.MEDIUM_ID"]);
 }
-  
-DataPrivacyUtils.notifyNeedDataPrivacyUpdate(rowdata["COMMUNICATION.CONTACT_ID"], vars.get("$param.ShowDsgvoMessage_param"));
\ No newline at end of file
+
+if(vars.exists("$context.PushDataPrivacyNotification") && vars.get("$context.PushDataPrivacyNotification") == "false" && vars.get("$sys.isclient"))
+{
+    DataPrivacyUtils.notifyNeedDataPrivacyUpdate(rowdata["COMMUNICATION.CONTACT_ID"], vars.get("$param.ShowDsgvoMessage_param"));
+    vars.set("$context.PushDataPrivacyNotification", "true");
+}  
+
+WorkflowSignalSender.updated();
\ No newline at end of file
diff --git a/entity/Competition_entity/Competition_entity.aod b/entity/Competition_entity/Competition_entity.aod
index 7e7298fd9a765e1d86d25f31a58607192495dc05..8e08714b5b06f1bad56c3ccc46180c98b2834bb9 100644
--- a/entity/Competition_entity/Competition_entity.aod
+++ b/entity/Competition_entity/Competition_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Competition_entity</name>
+  <title>Competition</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Competition_entity/documentation.adoc</documentation>
-  <title>Competition</title>
   <titlePlural>Competition</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -298,25 +298,9 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <fromClauseProcess>%aditoprj%/entity/Competition_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/Competition_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>f9598278-9933-4976-85be-5db9c213bf6f</name>
-          <tableName>COMPETITION</tableName>
-          <primaryKey>COMPETITIONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>d82df2c1-f8e7-4b78-b9d6-905ca653061c</name>
-          <tableName>ORGANISATION</tableName>
-          <primaryKey>ORGANISATIONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>DATE_CANCELLED.value</name>
@@ -379,6 +363,22 @@
           <recordfield>COMPETITION.COMPETITIONID</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>f9598278-9933-4976-85be-5db9c213bf6f</name>
+          <tableName>COMPETITION</tableName>
+          <primaryKey>COMPETITIONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>d82df2c1-f8e7-4b78-b9d6-905ca653061c</name>
+          <tableName>ORGANISATION</tableName>
+          <primaryKey>ORGANISATIONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
       <filterExtensions>
         <filterExtensionSet>
           <name>Attribute_filter</name>
diff --git a/entity/Contact_entity/Contact_entity.aod b/entity/Contact_entity/Contact_entity.aod
index 41a386bd8dce1d009f4b1887e118adb79b9165cc..76d2877c06a3cab9ccd4c6805e41709ab6115b5f 100644
--- a/entity/Contact_entity/Contact_entity.aod
+++ b/entity/Contact_entity/Contact_entity.aod
@@ -1,13 +1,14 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Contact_entity</name>
+  <title>Contact</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Contact_entity/documentation.adoc</documentation>
-  <title>Contact</title>
   <grantCreateProcess>%aditoprj%/entity/Contact_entity/grantCreateProcess.js</grantCreateProcess>
   <grantUpdateProcess>%aditoprj%/entity/Contact_entity/grantUpdateProcess.js</grantUpdateProcess>
   <grantDeleteProcess>%aditoprj%/entity/Contact_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/Contact_entity/contentTitleProcess.js</contentTitleProcess>
+  <afterUiInit>%aditoprj%/entity/Contact_entity/afterUiInit.js</afterUiInit>
   <onValidation>%aditoprj%/entity/Contact_entity/onValidation.js</onValidation>
   <initFilterProcess>%aditoprj%/entity/Contact_entity/initFilterProcess.js</initFilterProcess>
   <iconId>VAADIN:USERS</iconId>
@@ -255,38 +256,41 @@
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityConsumer>
+      <name>Attributes</name>
+      <onValidation>%aditoprj%/entity/Contact_entity/entityfields/attributes/onValidation.js</onValidation>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>AttributeRelations</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ShowDsgvoMessage_param</name>
+          <valueProcess>%aditoprj%/entity/Contact_entity/entityfields/attributes/children/showdsgvomessage_param/valueProcess.js</valueProcess>
+          <mandatory v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Contact_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Contact_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <fromClauseProcess>%aditoprj%/entity/Contact_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/Contact_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/Contact_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
+      <onDBInsert>%aditoprj%/entity/Contact_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
+      <onDBUpdate>%aditoprj%/entity/Contact_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/Contact_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>86ded52f-1b55-4d3d-b89d-23c465f20566</name>
-          <tableName>CONTACT</tableName>
-          <primaryKey>CONTACTID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>61f92ee5-db46-4e17-a90d-02223e0df942</name>
-          <tableName>ORGANISATION</tableName>
-          <primaryKey>ORGANISATIONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>e74fd752-ef38-414d-adda-11e21258c5d4</name>
-          <tableName>PERSON</tableName>
-          <primaryKey>PERSONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>CONTACTID.value</name>
@@ -369,6 +373,29 @@
           <expression>%aditoprj%/entity/Contact_entity/recordcontainers/db/recordfieldmappings/department.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>86ded52f-1b55-4d3d-b89d-23c465f20566</name>
+          <tableName>CONTACT</tableName>
+          <primaryKey>CONTACTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>61f92ee5-db46-4e17-a90d-02223e0df942</name>
+          <tableName>ORGANISATION</tableName>
+          <primaryKey>ORGANISATIONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>e74fd752-ef38-414d-adda-11e21258c5d4</name>
+          <tableName>PERSON</tableName>
+          <primaryKey>PERSONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/Contact_entity/afterUiInit.js b/entity/Contact_entity/afterUiInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..e4d2f842cd167aab5eb6e0188466acd7aae5bdcc
--- /dev/null
+++ b/entity/Contact_entity/afterUiInit.js
@@ -0,0 +1,30 @@
+import("Sql_lib");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+{
+    var personId = vars.get("$param.PersonId_param");
+    var contactId = vars.get("$param.OwnContactId_param");
+    if(personId && contactId)
+    {
+        var attributes = newSelect("AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID, " + SqlBuilder.caseStatement()
+                                                                                .when(newWhere("AB_ATTRIBUTERELATION.ID_VALUE is null").and("AB_ATTRIBUTERELATION.CHAR_VALUE is null"))
+                                                                                    .then("cast(NUMBER_VALUE as CHAR)")
+                                                                                .when(newWhere("AB_ATTRIBUTERELATION.NUMBER_VALUE is null").and("AB_ATTRIBUTERELATION.CHAR_VALUE is null"))
+                                                                                    .then("ID_VALUE")
+                                                                                .when(newWhere("AB_ATTRIBUTERELATION.NUMBER_VALUE is null").and("AB_ATTRIBUTERELATION.ID_VALUE is null"))
+                                                                                    .then("CHAR_VALUE")
+                                                                                .toString())
+                                        .from("AB_ATTRIBUTERELATION")
+                                        .where("AB_ATTRIBUTERELATION.OBJECT_ROWID", contactId)
+                                        .table();
+                                        
+        for (let i = 0; i < attributes.length; i++) {
+            neon.addRecord("Attributes", {
+                "AB_ATTRIBUTE_ID" : attributes[i][0], 
+                "VALUE" : attributes[i][1]
+            });
+        }
+    }
+}
\ No newline at end of file
diff --git a/entity/Contact_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js b/entity/Contact_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7b6137b4d105e9ba592cf8ef6e796fb838a32b09
--- /dev/null
+++ b/entity/Contact_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.CONTACTID"));
\ No newline at end of file
diff --git a/entity/Contact_entity/entityfields/attributes/children/objecttype_param/valueProcess.js b/entity/Contact_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..eabd0960cd32e6ab2deff9c9985df6453a55d82b
--- /dev/null
+++ b/entity/Contact_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Context_lib");
+
+result.string("Person");
diff --git a/entity/Contact_entity/entityfields/attributes/children/showdsgvomessage_param/valueProcess.js b/entity/Contact_entity/entityfields/attributes/children/showdsgvomessage_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..fce9fde135bfde9221a9956f545862641098ff7c
--- /dev/null
+++ b/entity/Contact_entity/entityfields/attributes/children/showdsgvomessage_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.neon");
+import("system.result");
+
+result.string(vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW);
\ No newline at end of file
diff --git a/entity/Contact_entity/entityfields/attributes/onValidation.js b/entity/Contact_entity/entityfields/attributes/onValidation.js
new file mode 100644
index 0000000000000000000000000000000000000000..48155ac1272fca45d78bbcd34dab4488bed86dea
--- /dev/null
+++ b/entity/Contact_entity/entityfields/attributes/onValidation.js
@@ -0,0 +1,6 @@
+import("Context_lib");
+import("system.vars");
+import("Attribute_lib");
+import("system.result");
+
+result.string(AttributeRelationUtils.validateAttributeCount(vars.get("$field.CONTACTID"), "Person", "Attributes"));
\ No newline at end of file
diff --git a/entity/Contact_entity/recordcontainers/db/onDBInsert.js b/entity/Contact_entity/recordcontainers/db/onDBInsert.js
new file mode 100644
index 0000000000000000000000000000000000000000..54f0349c9f1ddaab6b25f85f758d52928df41847
--- /dev/null
+++ b/entity/Contact_entity/recordcontainers/db/onDBInsert.js
@@ -0,0 +1,3 @@
+import("Workflow_lib");
+
+WorkflowSignalSender.inserted();
\ No newline at end of file
diff --git a/entity/Contact_entity/recordcontainers/db/onDBUpdate.js b/entity/Contact_entity/recordcontainers/db/onDBUpdate.js
new file mode 100644
index 0000000000000000000000000000000000000000..2e53f3cad9a9edf21cc5bbc6fdecc00c5001dfee
--- /dev/null
+++ b/entity/Contact_entity/recordcontainers/db/onDBUpdate.js
@@ -0,0 +1,3 @@
+import("Workflow_lib");
+
+WorkflowSignalSender.updated();
\ No newline at end of file
diff --git a/entity/Context_entity/Context_entity.aod b/entity/Context_entity/Context_entity.aod
index a8e3222ec7e8946419c18e8a795c0bf427a244e6..96796bb96d331a2252b3414e454833e28b1c5732 100644
--- a/entity/Context_entity/Context_entity.aod
+++ b/entity/Context_entity/Context_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Context_entity</name>
+  <title>Private person</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Context_entity/documentation.adoc</documentation>
-  <title>Private person</title>
   <contentTitleProcess>%aditoprj%/entity/Context_entity/contentTitleProcess.js</contentTitleProcess>
   <titlePlural>Private persons</titlePlural>
   <recordContainer>jdito</recordContainer>
@@ -153,6 +153,12 @@
           <fieldName>Contexts</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>f69007c7-d495-42d2-9a12-6426c24771a4</name>
+          <entityName>Observation_entity</entityName>
+          <fieldName>Contexts</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
     </entityProvider>
     <entityProvider>
diff --git a/entity/Contract_entity/Contract_entity.aod b/entity/Contract_entity/Contract_entity.aod
index 3281aae04f01796444be478eb344530931f2c173..49afa5872c3c02495fe5846da0a83f2234d4fa72 100644
--- a/entity/Contract_entity/Contract_entity.aod
+++ b/entity/Contract_entity/Contract_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Contract_entity</name>
+  <title>Contract</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Contract_entity/documentation.adoc</documentation>
-  <title>Contract</title>
   <grantDeleteProcess>%aditoprj%/entity/Contract_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/Contract_entity/contentTitleProcess.js</contentTitleProcess>
   <contentDescriptionProcess>%aditoprj%/entity/Contract_entity/contentDescriptionProcess.js</contentDescriptionProcess>
@@ -15,6 +15,27 @@
   <titlePlural>Contracts</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
+    <entityActionGroup>
+      <name>observeActionGroup</name>
+      <children>
+        <entityActionField>
+          <name>observe</name>
+          <title>Observe</title>
+          <onActionProcess>%aditoprj%/entity/Contract_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js</onActionProcess>
+          <isObjectAction v="true" />
+          <iconId>VAADIN:EYE</iconId>
+          <stateProcess>%aditoprj%/entity/Contract_entity/entityfields/observeactiongroup/children/observe/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Contract_entity/entityfields/observeactiongroup/children/observe/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>cancelObservation</name>
+          <onActionProcess>%aditoprj%/entity/Contract_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:EYE_SLASH</iconId>
+          <stateProcess>%aditoprj%/entity/Contract_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Contract_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
     <entityField>
       <name>CONTRACTCODE</name>
       <documentation>%aditoprj%/entity/Contract_entity/entityfields/contractcode/documentation.adoc</documentation>
@@ -104,12 +125,6 @@
       <name>Contracts</name>
       <documentation>%aditoprj%/entity/Contract_entity/entityfields/contracts/documentation.adoc</documentation>
       <recordContainer>db</recordContainer>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <expose v="true" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>6d7c7166-84b4-4da2-9a48-cc1e390ac987</name>
@@ -124,6 +139,12 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="true" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityParameter>
       <name>ContactId_param</name>
@@ -149,6 +170,11 @@
     </entityFieldGroup>
     <entityConsumer>
       <name>Activities</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Activity_entity</entityName>
+        <fieldName>LinkedObjects</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>RowId_param</name>
@@ -163,11 +189,6 @@
           <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/activities/children/presetlinks_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Activity_entity</entityName>
-        <fieldName>LinkedObjects</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>AnyContacts</name>
@@ -208,6 +229,11 @@
     <entityConsumer>
       <name>Documents</name>
       <selectionMode>MULTI</selectionMode>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>Documents</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>AssignmentRowId_param</name>
@@ -218,15 +244,15 @@
           <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>Documents</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>MainDocuments</name>
       <stateProcess>%aditoprj%/entity/Contract_entity/entityfields/maindocuments/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>MainDocuments</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>AssignmentRowId_param</name>
@@ -237,14 +263,14 @@
           <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/maindocuments/children/assignmenttable_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>MainDocuments</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>ContractPayments</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -252,14 +278,14 @@
           <expose v="false" />
         </entityParameter>
       </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>ContractStates</name>
       <dependency>
         <name>dependency</name>
         <entityName>KeywordEntry_entity</entityName>
         <fieldName>SpecificContainerKeywords</fieldName>
       </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>ContractStates</name>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -267,14 +293,14 @@
           <expose v="false" />
         </entityParameter>
       </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>ContractTypes</name>
       <dependency>
         <name>dependency</name>
         <entityName>KeywordEntry_entity</entityName>
         <fieldName>SpecificContainerKeywords</fieldName>
       </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>ContractTypes</name>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -282,11 +308,6 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityActionField>
       <name>newActivity</name>
@@ -300,6 +321,11 @@
       <name>Attributes</name>
       <stateProcess>%aditoprj%/entity/Contract_entity/entityfields/attributes/stateProcess.js</stateProcess>
       <onValidation>%aditoprj%/entity/Contract_entity/entityfields/attributes/onValidation.js</onValidation>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>AttributeRelations</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
@@ -312,15 +338,15 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>AttributeRelations</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>AttributeTree</name>
       <stateProcess>%aditoprj%/entity/Contract_entity/entityfields/attributetree/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>TreeProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectType_param</name>
@@ -331,15 +357,15 @@
           <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>TreeProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Tasks</name>
       <stateProcess>%aditoprj%/entity/Contract_entity/entityfields/tasks/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Task_entity</entityName>
+        <fieldName>Tasks</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectId_param</name>
@@ -354,11 +380,6 @@
           <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/tasks/children/presetlinks_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Task_entity</entityName>
-        <fieldName>Tasks</fieldName>
-      </dependency>
     </entityConsumer>
     <entityActionField>
       <name>newTask</name>
@@ -368,17 +389,17 @@
     </entityActionField>
     <entityConsumer>
       <name>LogHistories</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>LogHistory_entity</entityName>
+        <fieldName>LogHistoryProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>tablenames_param</name>
           <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>LogHistory_entity</entityName>
-        <fieldName>LogHistoryProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityActionField>
       <name>openAdminView</name>
@@ -414,7 +435,6 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <maximumDbRows v="0" />
       <fromClauseProcess>%aditoprj%/entity/Contract_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/Contract_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
@@ -422,36 +442,7 @@
       <onDBInsert>%aditoprj%/entity/Contract_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/Contract_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/Contract_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>78925203-f1c5-4e7e-9424-1a23500c655d</name>
-          <tableName>CONTRACT</tableName>
-          <primaryKey>CONTRACTID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>0637150d-c535-41ce-85f3-e9a6b980d195</name>
-          <tableName>CONTACT</tableName>
-          <primaryKey>CONTACTID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>9ba7de4b-999c-44cc-95ee-0dbdcc35bf0f</name>
-          <tableName>ORGANISATION</tableName>
-          <primaryKey>ORGANISATIONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>748d1280-6dd2-4ada-837e-b331166e78d3</name>
-          <tableName>PERSON</tableName>
-          <primaryKey>PERSONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>CONTRACTCODE.value</name>
@@ -561,6 +552,36 @@
           <expression>%aditoprj%/entity/Contract_entity/recordcontainers/db/recordfieldmappings/active.value/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>78925203-f1c5-4e7e-9424-1a23500c655d</name>
+          <tableName>CONTRACT</tableName>
+          <primaryKey>CONTRACTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>0637150d-c535-41ce-85f3-e9a6b980d195</name>
+          <tableName>CONTACT</tableName>
+          <primaryKey>CONTACTID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>9ba7de4b-999c-44cc-95ee-0dbdcc35bf0f</name>
+          <tableName>ORGANISATION</tableName>
+          <primaryKey>ORGANISATIONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>748d1280-6dd2-4ada-837e-b331166e78d3</name>
+          <tableName>PERSON</tableName>
+          <primaryKey>PERSONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
       <filterExtensions>
         <filterExtensionSet>
           <name>Attribute_filter</name>
@@ -575,6 +596,7 @@
           <contentType>TEXT</contentType>
           <filterValuesProcess>%aditoprj%/entity/Contract_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js</filterValuesProcess>
           <filterConditionProcess>%aditoprj%/entity/Contract_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js</filterConditionProcess>
+          <groupedRecordField></groupedRecordField>
           <filtertype>BASIC</filtertype>
         </filterExtension>
       </filterExtensions>
diff --git a/entity/Contract_entity/entityfields/contact_id/valueProcess.js b/entity/Contract_entity/entityfields/contact_id/valueProcess.js
index 1127220726ee436e1f878c4467fa29d976d6af80..0224ba1e7ab1fcf86c205e990ef2e3fd368c4218 100644
--- a/entity/Contract_entity/entityfields/contact_id/valueProcess.js
+++ b/entity/Contract_entity/entityfields/contact_id/valueProcess.js
@@ -1,7 +1,7 @@
 import("system.result");
 import("system.vars");
 
-if (vars.exists("$param.ContactId_param")) 
+if (vars.exists("$param.ContactId_param") && vars.get("$this.value") == null) 
 {
     result.string(vars.get("$param.ContactId_param"));
 }
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js b/entity/Contract_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..35102b677cbb52d1d4a9723a42cceaef3fd5ea03
--- /dev/null
+++ b/entity/Contract_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.cancelAction();
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js b/entity/Contract_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a0350f5edebe397b96a84766e7cdb8d99f77ee5
--- /dev/null
+++ b/entity/Contract_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js b/entity/Contract_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..87553a373a055879a524774695e4c18bcab617e9
--- /dev/null
+++ b/entity/Contract_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("Observation_lib");
+
+result.string(Observation.cancelActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js b/entity/Contract_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..66cf7bc2991c142ee0753fec88e151d3dcf71141
--- /dev/null
+++ b/entity/Contract_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.insertAction();
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/observeactiongroup/children/observe/stateProcess.js b/entity/Contract_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..461276ea5e1e98e967047207ac6d654225a1b1c6
--- /dev/null
+++ b/entity/Contract_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (!Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/observeactiongroup/children/observe/titleProcess.js b/entity/Contract_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..abdfbd3d7c4aff7beba9ff22cbb39abc8d195a30
--- /dev/null
+++ b/entity/Contract_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Observation_lib");
+import("system.vars");
+
+result.string(Observation.observeActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Contract_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js b/entity/Contract_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
index 6b54c170684381c41d00387e9f2371c7d327d05a..8f9bf3561bdd112fd994940777b7e761b607f768 100644
--- a/entity/Contract_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
+++ b/entity/Contract_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
@@ -1,11 +1,12 @@
+import("system.vars");
 import("Favorites_lib");
 import("system.result");
 import("Sql_lib");
 
-var favoFilterCond = newWhere();
-var rowIds = FavoritesUtil.getRowIdsOfFavoriteGroup();
+var operator = vars.get("$local.operator");
+var rawvalue = vars.get("$local.rawvalue");
 
-for(i = 0; i < rowIds.length; i++)
-    favoFilterCond.or("CONTRACT.CONTRACTID", rowIds[i], SqlBuilder.EQUAL());
+var objecttype = vars.get("$field.CONTRACT_OBJECTTYPE");
+var idcolumn = "CONTRACT.CONTRACTID";
 
-result.string(favoFilterCond.toString());
\ No newline at end of file
+result.string(FavoritesUtil.getFilterDisplayCondition(objecttype, operator, rawvalue, idcolumn));
\ No newline at end of file
diff --git a/entity/Countries_Entity/Countries_Entity.aod b/entity/Countries_Entity/Countries_Entity.aod
index 9a4408cb03cc9d0d4de39895c93611b24df313da..dd854efc611530e48d5e2dd0b2442754701db8fc 100644
--- a/entity/Countries_Entity/Countries_Entity.aod
+++ b/entity/Countries_Entity/Countries_Entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Countries_Entity</name>
+  <title>Countries</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Countries_Entity/documentation.adoc</documentation>
-  <title>Countries</title>
   <contentTitleProcess>%aditoprj%/entity/Countries_Entity/contentTitleProcess.js</contentTitleProcess>
   <iconId>VAADIN:FLAG</iconId>
   <recordContainer>db</recordContainer>
@@ -101,20 +101,11 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <isPageable v="false" />
       <orderClauseProcess>%aditoprj%/entity/Countries_Entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
+      <alias>Data_alias</alias>
       <cacheType>GLOBAL</cacheType>
       <cacheKeyProcess>%aditoprj%/entity/Countries_Entity/recordcontainers/db/cacheKeyProcess.js</cacheKeyProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>cc219004-43fd-4a3f-bee0-be5e732c61f1</name>
-          <tableName>AB_COUNTRYINFO</tableName>
-          <primaryKey>ISO2</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>ADDR_FORMAT.value</name>
@@ -149,6 +140,15 @@
           <recordfield>AB_COUNTRYINFO.FLAG</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>cc219004-43fd-4a3f-bee0-be5e732c61f1</name>
+          <tableName>AB_COUNTRYINFO</tableName>
+          <primaryKey>ISO2</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/DSGVOInfo_entity/DSGVOInfo_entity.aod b/entity/DSGVOInfo_entity/DSGVOInfo_entity.aod
index 9a090c1ee2cc636fcc7b1dfe8a5651482b51f376..674803b125b89af582baac331f6db7261ae087f6 100644
--- a/entity/DSGVOInfo_entity/DSGVOInfo_entity.aod
+++ b/entity/DSGVOInfo_entity/DSGVOInfo_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>DSGVOInfo_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/DSGVOInfo_entity/documentation.adoc</documentation>
@@ -165,17 +165,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/DSGVOInfo_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>23dd4eb2-0ac4-406e-92e3-031f1342bd05</name>
-          <tableName>DSGVOINFO</tableName>
-          <primaryKey>DSGVOINFOID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>CONTACT_ID.value</name>
@@ -210,6 +201,15 @@
           <expression>%aditoprj%/entity/DSGVOInfo_entity/recordcontainers/db/recordfieldmappings/guarantee.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>23dd4eb2-0ac4-406e-92e3-031f1342bd05</name>
+          <tableName>DSGVOINFO</tableName>
+          <primaryKey>DSGVOINFOID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/DSGVOReport_entity/DSGVOReport_entity.aod b/entity/DSGVOReport_entity/DSGVOReport_entity.aod
index b96cb3a3dbc480499bb71e154509700ae34bb4f9..b3482dff7d057f512eef04d6dfe882eba55cfe24 100644
--- a/entity/DSGVOReport_entity/DSGVOReport_entity.aod
+++ b/entity/DSGVOReport_entity/DSGVOReport_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>DSGVOReport_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/DSGVOReport_entity/documentation.adoc</documentation>
@@ -20,9 +20,9 @@
     </entityParameter>
     <entityParameter>
       <name>DSGVOInfo_param</name>
-      <title></title>
       <expose v="true" />
       <mandatory v="false" />
+      <title></title>
       <description></description>
     </entityParameter>
     <entityField>
diff --git a/entity/DSGVO_entity/DSGVO_entity.aod b/entity/DSGVO_entity/DSGVO_entity.aod
index 19cefc3a19e90adbc2a12a91fe584c93032a6554..be47ef0d4009d01d94464151a2e7ecf970b46d83 100644
--- a/entity/DSGVO_entity/DSGVO_entity.aod
+++ b/entity/DSGVO_entity/DSGVO_entity.aod
@@ -1,10 +1,10 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>DSGVO_entity</name>
+  <title>Data Privacy</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/DSGVO_entity/documentation.adoc</documentation>
   <icon>VAADIN:LOCK</icon>
-  <title>Data Privacy</title>
   <siblings>
     <element>Address_entity</element>
     <element>Communication_entity</element>
@@ -92,8 +92,8 @@
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
-          <title></title>
           <valueProcess>%aditoprj%/entity/DSGVO_entity/entityfields/keyworddsgvopurpose/children/containername_param/valueProcess.js</valueProcess>
+          <title></title>
         </entityParameter>
       </children>
     </entityConsumer>
diff --git a/entity/DefaultAdminView_entity/DefaultAdminView_entity.aod b/entity/DefaultAdminView_entity/DefaultAdminView_entity.aod
index 7b0b1dd8ef9bc50a75c65fe7b422dc6d06d6a575..a5e20a92430010b0dc20174dabb6df69d5fbe5c2 100644
--- a/entity/DefaultAdminView_entity/DefaultAdminView_entity.aod
+++ b/entity/DefaultAdminView_entity/DefaultAdminView_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>DefaultAdminView_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/DefaultAdminView_entity/documentation.adoc</documentation>
@@ -19,17 +19,17 @@
     <entityConsumer>
       <name>Rows</name>
       <state>READONLY</state>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AdminViewRow_entity</entityName>
+        <fieldName>AdminViewRows</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>Rows_param</name>
           <valueProcess>%aditoprj%/entity/DefaultAdminView_entity/entityfields/rows/children/rows_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AdminViewRow_entity</entityName>
-        <fieldName>AdminViewRows</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>Uid_param</name>
diff --git a/entity/DescriptionTranslation_entity/DescriptionTranslation_entity.aod b/entity/DescriptionTranslation_entity/DescriptionTranslation_entity.aod
index 83aa32b97318445d0891b35c2443d6452e929739..858fe5c982aebdceca1d11bf68ab048984c8b6f2 100644
--- a/entity/DescriptionTranslation_entity/DescriptionTranslation_entity.aod
+++ b/entity/DescriptionTranslation_entity/DescriptionTranslation_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>DescriptionTranslation_entity</name>
+  <title>Description</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/DescriptionTranslation_entity/documentation.adoc</documentation>
-  <title>Description</title>
   <titlePlural>Descriptions</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -81,17 +81,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/DescriptionTranslation_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>b12c4b68-b868-45fe-9f72-aa914a19382a</name>
-          <tableName>DESCRIPTIONTRANSLATION</tableName>
-          <primaryKey>DESCRIPTIONTRANSLATIONID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>DESCRIPTION.value</name>
@@ -118,6 +109,15 @@
           <expression>%aditoprj%/entity/DescriptionTranslation_entity/recordcontainers/db/recordfieldmappings/lang.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>b12c4b68-b868-45fe-9f72-aa914a19382a</name>
+          <tableName>DESCRIPTIONTRANSLATION</tableName>
+          <primaryKey>DESCRIPTIONTRANSLATIONID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/DistrictContact_entity/DistrictContact_entity.aod b/entity/DistrictContact_entity/DistrictContact_entity.aod
new file mode 100644
index 0000000000000000000000000000000000000000..a8f9c248146913e119e15a9e5eafd0f9eaa113da
--- /dev/null
+++ b/entity/DistrictContact_entity/DistrictContact_entity.aod
@@ -0,0 +1,309 @@
+<?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.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
+  <name>DistrictContact_entity</name>
+  <title>District Contact</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>VAADIN:GLOBE</icon>
+  <iconIdProcess>%aditoprj%/entity/DistrictContact_entity/iconIdProcess.js</iconIdProcess>
+  <image>VAADIN:GLOBE</image>
+  <titlePlural>Supervisors</titlePlural>
+  <recordContainer>db</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+    </entityProvider>
+    <entityProvider>
+      <name>#PROVIDER_AGGREGATES</name>
+      <useAggregates v="true" />
+    </entityProvider>
+    <entityField>
+      <name>CONTACT_ID</name>
+      <title>Company</title>
+      <consumer>Organisations</consumer>
+      <groupable v="true" />
+      <linkedContext>Organisation</linkedContext>
+      <state>EDITABLE</state>
+      <stateProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/contact_id/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/contact_id/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/contact_id/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>DISTRICT_ID</name>
+      <title>{$DISTRICT}</title>
+      <consumer>Districts</consumer>
+      <groupable v="true" />
+      <linkedContext>District</linkedContext>
+      <valueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/district_id/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/district_id/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>ADVISER_CONTACT_ID</name>
+      <title>Adviser contact</title>
+      <consumer>Advisers</consumer>
+      <groupable v="true" />
+      <linkedContext>Person</linkedContext>
+      <mandatory v="true" />
+      <displayValueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/adviser_contact_id/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>ADVISER_ROLE</name>
+      <title>Adviser role</title>
+      <consumer>KeywordAdviserRoles</consumer>
+      <groupable v="true" />
+      <displayValueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/adviser_role/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>STATUS</name>
+      <title>Status</title>
+      <consumer>KeywordContactStates</consumer>
+      <groupable v="true" />
+      <valueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/status/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/status/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>VALID_FROM</name>
+      <title>Valid from</title>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
+      <groupable v="true" />
+    </entityField>
+    <entityField>
+      <name>VALID_UNTIL</name>
+      <title>Valid until</title>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
+      <groupable v="true" />
+    </entityField>
+    <entityField>
+      <name>ORIGIN</name>
+      <title>Origin</title>
+      <consumer>KeywordDistrictOrigin</consumer>
+      <groupable v="true" />
+      <state>READONLY</state>
+      <valueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/origin/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/origin/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>DISTRICTCONTACTID</name>
+    </entityField>
+    <entityConsumer>
+      <name>KeywordContactStates</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/keywordcontactstates/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>BlacklistIds_param</name>
+          <valueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/keywordcontactstates/children/blacklistids_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordAdviserRoles</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/keywordadviserroles/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordDistrictOrigin</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/keyworddistrictorigin/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Organisations</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Organisation_entity</entityName>
+        <fieldName>Organisations</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Advisers</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>DistrictResponsible_entity</entityName>
+        <fieldName>DistrictResponsibleAdvisers</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>DistrictId_param</name>
+          <valueProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/advisers/children/districtid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Districts</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>District_entity</entityName>
+        <fieldName>DistrictContacts</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityProvider>
+      <name>DistrictContacts</name>
+      <dependencies>
+        <entityDependency>
+          <name>6a15b92f-e0b6-459d-a106-615dcfac3dbd</name>
+          <entityName>District_entity</entityName>
+          <fieldName>DistrictContactUIDs</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>e33ae6f8-0a21-406c-950a-ab60f27026b3</name>
+          <entityName>Organisation_entity</entityName>
+          <fieldName>DistrictContacts</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+    <entityParameter>
+      <name>DistrictId_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityParameter>
+      <name>currentOrganisationId_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityParameter>
+      <name>ObjectId_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityParameter>
+      <name>RowId_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityActionGroup>
+      <name>setStatus</name>
+      <children>
+        <entityActionField>
+          <name>setActive</name>
+          <title>Set active</title>
+          <onActionProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/setstatus/children/setactive/onActionProcess.js</onActionProcess>
+          <isSelectionAction v="true" />
+          <iconId>VAADIN:THUMBS_UP</iconId>
+          <tooltip>Set status to active</tooltip>
+        </entityActionField>
+        <entityActionField>
+          <name>setInactive</name>
+          <title>Set inactive</title>
+          <onActionProcess>%aditoprj%/entity/DistrictContact_entity/entityfields/setstatus/children/setinactive/onActionProcess.js</onActionProcess>
+          <isSelectionAction v="true" />
+          <iconId>VAADIN:THUMBS_DOWN</iconId>
+          <tooltip>Set status to inactive</tooltip>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
+    <entityParameter>
+      <name>isDashletView_param</name>
+      <expose v="true" />
+    </entityParameter>
+  </entityFields>
+  <recordContainers>
+    <dbRecordContainer>
+      <name>db</name>
+      <isPageable v="true" />
+      <isRequireContainerFiltering v="false" />
+      <hasDependentRecords v="true" />
+      <fromClauseProcess>%aditoprj%/entity/DistrictContact_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
+      <conditionProcess>%aditoprj%/entity/DistrictContact_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <alias>Data_alias</alias>
+      <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>ADVISER_CONTACT_ID.value</name>
+          <recordfield>DISTRICTCONTACT.ADVISER_CONTACT_ID</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ADVISER_ROLE.value</name>
+          <recordfield>DISTRICTCONTACT.ADVISER_ROLE</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>CONTACT_ID.value</name>
+          <recordfield>DISTRICTCONTACT.CONTACT_ID</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DISTRICT_ID.value</name>
+          <recordfield>DISTRICTCONTACT.DISTRICT_ID</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ORIGIN.value</name>
+          <recordfield>DISTRICTCONTACT.ORIGIN</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATUS.value</name>
+          <recordfield>DISTRICTCONTACT.STATUS</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>VALID_FROM.value</name>
+          <recordfield>DISTRICTCONTACT.VALID_FROM</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>VALID_UNTIL.value</name>
+          <recordfield>DISTRICTCONTACT.VALID_UNTIL</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DISTRICTCONTACTID.value</name>
+          <recordfield>DISTRICTCONTACT.DISTRICTCONTACTID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ORIGIN.displayValue</name>
+          <expression>%aditoprj%/entity/DistrictContact_entity/recordcontainers/db/recordfieldmappings/origin.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DISTRICT_ID.displayValue</name>
+          <expression>%aditoprj%/entity/DistrictContact_entity/recordcontainers/db/recordfieldmappings/district_id.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATUS.displayValue</name>
+          <expression>%aditoprj%/entity/DistrictContact_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+      </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>dc5cbebc-a947-4196-937a-f665ee80cc31</name>
+          <tableName>DISTRICTCONTACT</tableName>
+          <primaryKey>DISTRICTCONTACTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>058abbb3-d92f-4fe1-b326-1320cfee90df</name>
+          <tableName>CONTACT</tableName>
+          <primaryKey>CONTACTID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
+    </dbRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/DistrictContact_entity/entityfields/adviser_contact_id/displayValueProcess.js b/entity/DistrictContact_entity/entityfields/adviser_contact_id/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e5831fd4418b333578ec210e784b82b3615dd772
--- /dev/null
+++ b/entity/DistrictContact_entity/entityfields/adviser_contact_id/displayValueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("Contact_lib");
+
+result.string(ContactUtils.getFullTitleByContactId(vars.get("$field.ADVISER_CONTACT_ID"), false));
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/entityfields/adviser_role/displayValueProcess.js b/entity/DistrictContact_entity/entityfields/adviser_role/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e6a904ba6ddbb8708672c21cdf25313d4829841d
--- /dev/null
+++ b/entity/DistrictContact_entity/entityfields/adviser_role/displayValueProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string(KeywordUtils.getViewValue($KeywordRegistry.adviserRole(), vars.get("$field.ADVISER_ROLE")));
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/entityfields/advisers/children/districtid_param/valueProcess.js b/entity/DistrictContact_entity/entityfields/advisers/children/districtid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a13a013fadcab4a35ad6a795015276b1fd16be0e
--- /dev/null
+++ b/entity/DistrictContact_entity/entityfields/advisers/children/districtid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.DISTRICT_ID"));
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/entityfields/contact_id/displayValueProcess.js b/entity/DistrictContact_entity/entityfields/contact_id/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..0398a93e921deff9c9cf94e2468bdf1702bffa59
--- /dev/null
+++ b/entity/DistrictContact_entity/entityfields/contact_id/displayValueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("Contact_lib");
+
+result.string(ContactUtils.getFullTitleByContactId(vars.getString("$field.CONTACT_ID")));
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/entityfields/contact_id/stateProcess.js b/entity/DistrictContact_entity/entityfields/contact_id/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c23cd0ff4912e068826819e7a7b458b864616751
--- /dev/null
+++ b/entity/DistrictContact_entity/entityfields/contact_id/stateProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("system.neon");
+import("system.result");
+    
+if(vars.get("$param.currentOrganisationId_param"))
+    result.string(neon.COMPONENTSTATE_READONLY);
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/entityfields/contact_id/valueProcess.js b/entity/DistrictContact_entity/entityfields/contact_id/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..bd8d4f8447e67f798cc0b1429919e71dec4401ad
--- /dev/null
+++ b/entity/DistrictContact_entity/entityfields/contact_id/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$param.currentOrganisationId_param"));
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/entityfields/district_id/displayValueProcess.js b/entity/DistrictContact_entity/entityfields/district_id/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..1f1a8b17e086f57385795d7e0fc0ee317cb59eda
--- /dev/null
+++ b/entity/DistrictContact_entity/entityfields/district_id/displayValueProcess.js
@@ -0,0 +1,9 @@
+import("system.vars");
+import("system.result");
+import("Sql_lib");
+
+if(vars.get("$field.DISTRICT_ID") != "" && vars.get("$field.DISTRICT_ID") != null)
+{
+    result.string(newSelect("DISTRICT_NAME").from("DISTRICT").where("DISTRICT.DISTRICTID", "$field.DISTRICT_ID").cell())
+    
+}
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/entityfields/district_id/valueProcess.js b/entity/DistrictContact_entity/entityfields/district_id/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..bed0ee257efcc6af594fdae209b4e08c8b511ed0
--- /dev/null
+++ b/entity/DistrictContact_entity/entityfields/district_id/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.result");
+    
+if(vars.get("$param.DistrictId_param") && vars.get("$this.value") == null)
+    result.string(vars.get("$param.DistrictId_param"))
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/entityfields/keywordadviserroles/children/containername_param/valueProcess.js b/entity/DistrictContact_entity/entityfields/keywordadviserroles/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..113fe991296292ec901f2c92b5042d6d50e23890
--- /dev/null
+++ b/entity/DistrictContact_entity/entityfields/keywordadviserroles/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.adviserRole());
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/entityfields/keywordcontactstates/children/blacklistids_param/valueProcess.js b/entity/DistrictContact_entity/entityfields/keywordcontactstates/children/blacklistids_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..cd35681842d8c289c2ee2ba1c460101807f63719
--- /dev/null
+++ b/entity/DistrictContact_entity/entityfields/keywordcontactstates/children/blacklistids_param/valueProcess.js
@@ -0,0 +1,11 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+import("KeywordRegistry_basic");
+import("Sql_lib");
+
+if (vars.get("$sys.presentationmode") != neon.CONTEXT_PRESENTATIONMODE_FILTER)
+{
+    var excludedIds = $KeywordRegistry.contactStatus$inReview();
+    result.string(JSON.stringify(excludedIds));
+}
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/entityfields/keywordcontactstates/children/containername_param/valueProcess.js b/entity/DistrictContact_entity/entityfields/keywordcontactstates/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..2f4d03edea3a8ff7253f793a4c8a3585f03db848
--- /dev/null
+++ b/entity/DistrictContact_entity/entityfields/keywordcontactstates/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.contactStatus());
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/entityfields/keyworddistrictorigin/children/containername_param/valueProcess.js b/entity/DistrictContact_entity/entityfields/keyworddistrictorigin/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..80b7903c1997943568f289e076d5873d38ecd53b
--- /dev/null
+++ b/entity/DistrictContact_entity/entityfields/keyworddistrictorigin/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.districtOrigin());
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/entityfields/origin/displayValueProcess.js b/entity/DistrictContact_entity/entityfields/origin/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..68465c76ce5c55e9f32ff20f8870c8a0e01b352c
--- /dev/null
+++ b/entity/DistrictContact_entity/entityfields/origin/displayValueProcess.js
@@ -0,0 +1,15 @@
+import("system.neon");
+import("system.result");
+import("system.vars");
+import("KeywordRegistry_basic");
+import("Keyword_lib");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
+{
+    var key = vars.get("$field.ORIGIN");
+    if (key)
+    {
+        var res = KeywordUtils.getViewValue($KeywordRegistry.districtOrigin(), key);
+        result.string(res);
+    }
+}
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/entityfields/origin/valueProcess.js b/entity/DistrictContact_entity/entityfields/origin/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..0f8bb663630e34a07f9d3738151c3093c2a57c1b
--- /dev/null
+++ b/entity/DistrictContact_entity/entityfields/origin/valueProcess.js
@@ -0,0 +1,9 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+import("KeywordRegistry_basic");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
+{
+        result.string($KeywordRegistry.districtOrigin$manual());
+}
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/entityfields/setstatus/children/setactive/onActionProcess.js b/entity/DistrictContact_entity/entityfields/setstatus/children/setactive/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..17bce8bda33cdd6cd2b0d5f01068040a6490c098
--- /dev/null
+++ b/entity/DistrictContact_entity/entityfields/setstatus/children/setactive/onActionProcess.js
@@ -0,0 +1,11 @@
+import("system.util");
+import("KeywordRegistry_basic");
+import("system.vars");
+import("system.neon");
+import("District_lib");
+
+
+var arrIds = vars.get("$sys.selection");
+DistrictUtils.setDistrictContactStatus(arrIds, $KeywordRegistry.contactStatus$active());
+
+neon.refreshAll();
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/entityfields/setstatus/children/setinactive/onActionProcess.js b/entity/DistrictContact_entity/entityfields/setstatus/children/setinactive/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..839605a11a4027adcf9cc8ce7a18a1d93601a763
--- /dev/null
+++ b/entity/DistrictContact_entity/entityfields/setstatus/children/setinactive/onActionProcess.js
@@ -0,0 +1,9 @@
+import("KeywordRegistry_basic");
+import("system.vars");
+import("system.neon");
+import("District_lib");
+
+var arrIds = vars.get("$sys.selection");
+DistrictUtils.setDistrictContactStatus(arrIds, $KeywordRegistry.contactStatus$inactive());
+
+neon.refreshAll();
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/entityfields/status/displayValueProcess.js b/entity/DistrictContact_entity/entityfields/status/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c22dac90dfb488ce3db5cb39424ebe85a8d2e488
--- /dev/null
+++ b/entity/DistrictContact_entity/entityfields/status/displayValueProcess.js
@@ -0,0 +1,9 @@
+import("system.result");
+import("system.vars");
+import("KeywordRegistry_basic");
+import("Keyword_lib");
+
+var key = vars.get("$field.STATUS");
+
+var res = KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), key);
+result.string(res);
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/entityfields/status/valueProcess.js b/entity/DistrictContact_entity/entityfields/status/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..13218c16514d81765c7e5dfd47c099996adfe063
--- /dev/null
+++ b/entity/DistrictContact_entity/entityfields/status/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+import("KeywordRegistry_basic");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
+    result.string($KeywordRegistry.contactStatus$active());
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/iconIdProcess.js b/entity/DistrictContact_entity/iconIdProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..efad44f93980d3fdbd4e1830d667ce69f7090d71
--- /dev/null
+++ b/entity/DistrictContact_entity/iconIdProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.result");
+
+var res = "TEXT:" + vars.get("$field.CONTACT_ID.displayValue");
+result.string(res);
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/recordcontainers/db/conditionProcess.js b/entity/DistrictContact_entity/recordcontainers/db/conditionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b8195ebfa8f2f08258f2c8dc98449b6ec7cc292c
--- /dev/null
+++ b/entity/DistrictContact_entity/recordcontainers/db/conditionProcess.js
@@ -0,0 +1,41 @@
+import("KeywordRegistry_basic");
+import("Employee_lib");
+import("system.entities");
+import("system.result");
+import("system.vars");
+import("Sql_lib");
+
+var isDashletView = vars.get("$param.isDashletView_param");
+var organisationID = vars.get("$param.currentOrganisationId_param");
+var districtID = vars.get("$param.DistrictId_param");
+var cond = newWhere();
+
+if (vars.exists("$param.RowId_param") && vars.get("$param.RowId_param") && vars.exists("$param.ObjectId_param") && vars.get("$param.ObjectId_param"))
+{
+    cond.and("DISTRICTCONTACT.ADVISER_CONTACT_ID", newSelect("DISTRICTRESPONSIBLE.EMPLOYEE_CONTACT_ID")
+        .from("DISTRICTRESPONSIBLE")
+        .where("DISTRICTRESPONSIBLE.DISTRICTRESPONSIBLEID", "$param.RowId_param")
+        , SqlBuilder.IN());
+}
+if (organisationID)
+{
+    cond.and("DISTRICTCONTACT.CONTACT_ID", organisationID);
+} 
+
+var statusInReview = $KeywordRegistry.contactStatus$inReview();
+var districtOrigin = $KeywordRegistry.districtOrigin$auto();
+
+if(isDashletView)
+{
+    var currentContactId = EmployeeUtils.getCurrentContactId();
+    
+    cond.and("DISTRICTCONTACT.STATUS", statusInReview);
+    cond.and("DISTRICTCONTACT.ORIGIN", districtOrigin);
+    cond.and("DISTRICTCONTACT.ADVISER_CONTACT_ID", currentContactId);
+}
+
+if(districtID){    
+    cond.and("DISTRICTCONTACT.DISTRICT_ID", districtID);
+}
+
+result.string(cond.toString());
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/recordcontainers/db/fromClauseProcess.js b/entity/DistrictContact_entity/recordcontainers/db/fromClauseProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..19a916d7f0b23cd1c832567ee33ea1d3c592f01f
--- /dev/null
+++ b/entity/DistrictContact_entity/recordcontainers/db/fromClauseProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+
+var res = "DISTRICTCONTACT \n\
+    left join CONTACT on (CONTACT.CONTACTID = DISTRICTCONTACT.CONTACT_ID)";
+result.string(res);
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/recordcontainers/db/recordfieldmappings/district_id.displayvalue/expression.js b/entity/DistrictContact_entity/recordcontainers/db/recordfieldmappings/district_id.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..2b6b2fc2b784294d32c6ea947086bf1e62d5d9c3
--- /dev/null
+++ b/entity/DistrictContact_entity/recordcontainers/db/recordfieldmappings/district_id.displayvalue/expression.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("Sql_lib");
+
+result.string(newSelect("DISTRICT.DISTRICT_NAME")
+                .from("DISTRICT")
+                .where("DISTRICT.DISTRICTID = DISTRICTCONTACT.DISTRICT_ID")
+                .toString());
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/recordcontainers/db/recordfieldmappings/origin.displayvalue/expression.js b/entity/DistrictContact_entity/recordcontainers/db/recordfieldmappings/origin.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..a6e2a3e719d894bde6e9e71623b20bfc33ac1cac
--- /dev/null
+++ b/entity/DistrictContact_entity/recordcontainers/db/recordfieldmappings/origin.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("KeywordRegistry_basic");
+import("system.result");
+import("Keyword_lib");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.districtOrigin(), "DISTRICTCONTACT.ORIGIN");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/DistrictContact_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js b/entity/DistrictContact_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..22b1e68d7238c6315da8b21edbb1fdae45744855
--- /dev/null
+++ b/entity/DistrictContact_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("KeywordRegistry_basic");
+import("system.result");
+import("Keyword_lib");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.contactStatus(), "DISTRICTCONTACT.STATUS");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/DistrictResponsible_entity/DistrictResponsible_entity.aod b/entity/DistrictResponsible_entity/DistrictResponsible_entity.aod
index 4062bb8fd405fd3447584e1169ac5f9f8e15c83c..199213fe56c0a805961dce132a36b4a23269795f 100644
--- a/entity/DistrictResponsible_entity/DistrictResponsible_entity.aod
+++ b/entity/DistrictResponsible_entity/DistrictResponsible_entity.aod
@@ -1,31 +1,28 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>DistrictResponsible_entity</name>
+  <title>District Responsible</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/DistrictResponsible_entity/documentation.adoc</documentation>
   <icon>VAADIN:GLOBE</icon>
-  <title>District Responsible</title>
+  <grantDeleteProcess>%aditoprj%/entity/DistrictResponsible_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/DistrictResponsible_entity/contentTitleProcess.js</contentTitleProcess>
   <iconIdProcess>%aditoprj%/entity/DistrictResponsible_entity/iconIdProcess.js</iconIdProcess>
   <image>VAADIN:GLOBE</image>
+  <usePermissions v="false" />
   <recordContainer>db</recordContainer>
   <entityFields>
     <entityProvider>
       <name>#PROVIDER</name>
     </entityProvider>
-    <entityField>
-      <name>DEPARTMENT_ATTRIBUTE_ID</name>
-      <title>Department</title>
-      <consumer>Departments</consumer>
-      <state>AUTO</state>
-      <valueProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/department_attribute_id/valueProcess.js</valueProcess>
-    </entityField>
     <entityField>
       <name>EMPLOYEE_CONTACT_ID</name>
       <title>{$DISTRICT_RESPONSIBLE}</title>
-      <consumer>Employees</consumer>
+      <consumer>Persons</consumer>
       <linkedContext>Person</linkedContext>
+      <mandatory v="true" />
       <selectionMode>SINGLE</selectionMode>
+      <stateProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/employee_contact_id/stateProcess.js</stateProcess>
       <displayValueProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/employee_contact_id/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
@@ -35,29 +32,6 @@
       <linkedContext>District</linkedContext>
       <valueProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/district_id/valueProcess.js</valueProcess>
     </entityField>
-    <entityConsumer>
-      <name>Departments</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Attribute_entity</entityName>
-        <fieldName>SpecificAttribute</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ParentId_param</name>
-          <valueProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/departments/children/parentid_param/valueProcess.js</valueProcess>
-          <description>parent id, this is used for filtering by the parent in the content process</description>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Employees</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Employee_entity</entityName>
-        <fieldName>Employees</fieldName>
-      </dependency>
-    </entityConsumer>
     <entityConsumer>
       <name>Districts</name>
       <dependency>
@@ -87,14 +61,13 @@
     </entityField>
     <entityProvider>
       <name>DistrictResponsibles</name>
-      <lookupIdfield>DISTRICTRESPONSIBLEID</lookupIdfield>
       <documentation>%aditoprj%/entity/DistrictResponsible_entity/entityfields/districtresponsibles/documentation.adoc</documentation>
       <titlePlural>Responsibles</titlePlural>
       <dependencies>
         <entityDependency>
-          <name>ef26fdb6-5fcf-416e-bcc8-380b5751b523</name>
+          <name>ae1dcbbe-b302-44df-ab4c-f7937d197cd5</name>
           <entityName>District_entity</entityName>
-          <fieldName>DistrictResponsibles</fieldName>
+          <fieldName>DistrictResponsibleUIDs</fieldName>
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
@@ -146,14 +119,6 @@
         </entityParameter>
       </children>
     </entityConsumer>
-    <entityField>
-      <name>departmentAttributeName</name>
-      <documentation>%aditoprj%/entity/DistrictResponsible_entity/entityfields/departmentattributename/documentation.adoc</documentation>
-      <title>Department</title>
-      <state>READONLY</state>
-      <stateProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/departmentattributename/stateProcess.js</stateProcess>
-      <valueProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/departmentattributename/valueProcess.js</valueProcess>
-    </entityField>
     <entityProvider>
       <name>OrganisationResponsibles</name>
       <targetContextField>targetContext</targetContextField>
@@ -205,38 +170,106 @@
       <name>targetContext</name>
       <valueProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/targetcontext/valueProcess.js</valueProcess>
     </entityField>
+    <entityConsumer>
+      <name>Persons</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Person_entity</entityName>
+        <fieldName>Contacts</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ExcludedContactIds_param</name>
+          <valueProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/persons/children/excludedcontactids_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>ADVISER_ROLE</name>
+      <title>Adviser role</title>
+      <consumer>AdviserRoles</consumer>
+      <displayValueProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/adviser_role/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>ADVISER_STATUS</name>
+      <title>Adviser status</title>
+      <consumer>AdviserStates</consumer>
+      <groupable v="true" />
+      <valueProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/adviser_status/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/adviser_status/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>AdviserStates</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/adviserstates/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ExcludedKeyIdsSubquery_param</name>
+          <valueProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/adviserstates/children/excludedkeyidssubquery_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>BlacklistIds_param</name>
+          <valueProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/adviserstates/children/blacklistids_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>VALID_FROM</name>
+      <title>Valid from</title>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
+    </entityField>
+    <entityField>
+      <name>VALID_UNTIL</name>
+      <title>Valid to</title>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
+    </entityField>
+    <entityConsumer>
+      <name>AdviserRoles</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/DistrictResponsible_entity/entityfields/adviserroles/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityProvider>
+      <name>DistrictResponsibleAdvisers</name>
+      <lookupIdfield>EMPLOYEE_CONTACT_ID</lookupIdfield>
+      <dependencies>
+        <entityDependency>
+          <name>ac067a2d-e313-44b7-b219-f834ef4a7629</name>
+          <entityName>DistrictContact_entity</entityName>
+          <fieldName>Advisers</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <isPageable v="false" />
       <fromClauseProcess>%aditoprj%/entity/DistrictResponsible_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/DistrictResponsible_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <alias>Data_alias</alias>
       <cacheType>GLOBAL</cacheType>
       <cacheKeyProcess>%aditoprj%/entity/DistrictResponsible_entity/recordcontainers/db/cacheKeyProcess.js</cacheKeyProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>d24296ec-5040-4b40-ad5b-668d3e02b4aa</name>
-          <tableName>DISTRICTRESPONSIBLE</tableName>
-          <primaryKey>DISTRICTRESPONSIBLEID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>86f9ab94-0d69-4a3a-9a04-615f61be2c23</name>
-          <tableName>CONTACT</tableName>
-          <primaryKey>CONTACTID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
       <recordFieldMappings>
-        <dbRecordFieldMapping>
-          <name>DEPARTMENT_ATTRIBUTE_ID.value</name>
-          <recordfield>DISTRICTRESPONSIBLE.DEPARTMENT_ATTRIBUTE_ID</recordfield>
-          <isFilterable v="true" />
-        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>DISTRICT_ID.value</name>
           <recordfield>DISTRICTRESPONSIBLE.DISTRICT_ID</recordfield>
@@ -272,10 +305,6 @@
           <recordfield>DISTRICTRESPONSIBLE.DATE_NEW</recordfield>
           <isFilterable v="true" />
         </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>DEPARTMENT_ATTRIBUTE_ID.displayValue</name>
-          <recordfield>DISTRICTRESPONSIBLE.DEPARTMENT_ATTRIBUTE_ID</recordfield>
-        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>MAIL.value</name>
           <expression>%aditoprj%/entity/DistrictResponsible_entity/recordcontainers/db/recordfieldmappings/mail.value/expression.js</expression>
@@ -284,15 +313,53 @@
           <name>PHONE.value</name>
           <expression>%aditoprj%/entity/DistrictResponsible_entity/recordcontainers/db/recordfieldmappings/phone.value/expression.js</expression>
         </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>DISTRICT_ID.displayValue</name>
-          <expression>%aditoprj%/entity/DistrictResponsible_entity/recordcontainers/db/recordfieldmappings/district_id.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>EMPLOYEE_CONTACT_ID.displayValue</name>
           <expression>%aditoprj%/entity/DistrictResponsible_entity/recordcontainers/db/recordfieldmappings/employee_contact_id.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ADVISER_ROLE.value</name>
+          <recordfield>DISTRICTRESPONSIBLE.ADVISER_ROLE</recordfield>
+          <isFilterable v="true" />
+          <isLookupFilter v="false" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ADVISER_STATUS.value</name>
+          <recordfield>DISTRICTRESPONSIBLE.ADVISER_STATUS</recordfield>
+          <isFilterable v="true" />
+          <isLookupFilter v="false" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>VALID_FROM.value</name>
+          <recordfield>DISTRICTRESPONSIBLE.VALID_FROM</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>VALID_UNTIL.value</name>
+          <recordfield>DISTRICTRESPONSIBLE.VALID_UNTIL</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DISTRICT_ID.displayValue</name>
+          <expression>%aditoprj%/entity/DistrictResponsible_entity/recordcontainers/db/recordfieldmappings/district_id.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>d0fee359-92fb-4d5e-b50c-3e74251440d8</name>
+          <tableName>DISTRICTRESPONSIBLE</tableName>
+          <primaryKey>DISTRICTRESPONSIBLEID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>33f6c941-5245-4847-a8a3-3cbddc30a104</name>
+          <tableName>CONTACT</tableName>
+          <primaryKey>CONTACTID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/DistrictResponsible_entity/contentTitleProcess.js b/entity/DistrictResponsible_entity/contentTitleProcess.js
index 67d21cf41ffa951498384284c6ebdd2490f0a84e..1c40177f5576799fcf75787dac078c03a8553756 100644
--- a/entity/DistrictResponsible_entity/contentTitleProcess.js
+++ b/entity/DistrictResponsible_entity/contentTitleProcess.js
@@ -1,12 +1,11 @@
-import("system.logging");
 import("system.vars");
 import("system.result");
-import("Employee_lib");
+import("Contact_lib");
 
 var contactId = vars.get("$field.EMPLOYEE_CONTACT_ID");
 var res = "";
 
 if(contactId)
-    res = EmployeeUtils.getUsersDepartment(contactId, true);
+    res = ContactUtils.getFullTitleByContactId(contactId, false);
 
 result.string(res)
\ No newline at end of file
diff --git a/entity/DistrictResponsible_entity/entityfields/adviser_role/displayValueProcess.js b/entity/DistrictResponsible_entity/entityfields/adviser_role/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..1c2626f024782f6d29c7b4f7fd225796acbd250a
--- /dev/null
+++ b/entity/DistrictResponsible_entity/entityfields/adviser_role/displayValueProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("system.vars");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string(KeywordUtils.getViewValue($KeywordRegistry.adviserRole(), vars.get("$field.ADVISER_ROLE")));
\ No newline at end of file
diff --git a/entity/DistrictResponsible_entity/entityfields/adviser_status/displayValueProcess.js b/entity/DistrictResponsible_entity/entityfields/adviser_status/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7f7c5a4b070b3d79992eb80365eb4666affe452b
--- /dev/null
+++ b/entity/DistrictResponsible_entity/entityfields/adviser_status/displayValueProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("system.vars");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string(KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), vars.get("$field.ADVISER_STATUS")));
diff --git a/entity/DistrictResponsible_entity/entityfields/adviser_status/valueProcess.js b/entity/DistrictResponsible_entity/entityfields/adviser_status/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..13218c16514d81765c7e5dfd47c099996adfe063
--- /dev/null
+++ b/entity/DistrictResponsible_entity/entityfields/adviser_status/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+import("KeywordRegistry_basic");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
+    result.string($KeywordRegistry.contactStatus$active());
\ No newline at end of file
diff --git a/entity/DistrictResponsible_entity/entityfields/adviserroles/children/containername_param/valueProcess.js b/entity/DistrictResponsible_entity/entityfields/adviserroles/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..113fe991296292ec901f2c92b5042d6d50e23890
--- /dev/null
+++ b/entity/DistrictResponsible_entity/entityfields/adviserroles/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.adviserRole());
\ No newline at end of file
diff --git a/entity/DistrictResponsible_entity/entityfields/adviserstates/children/blacklistids_param/valueProcess.js b/entity/DistrictResponsible_entity/entityfields/adviserstates/children/blacklistids_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e8e04e223262820933a9e8ee95ed98788acc7c18
--- /dev/null
+++ b/entity/DistrictResponsible_entity/entityfields/adviserstates/children/blacklistids_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("KeywordRegistry_basic");
+
+var excludedIds = [$KeywordRegistry.contactStatus$inReview()];
+result.string(JSON.stringify(excludedIds));
\ No newline at end of file
diff --git a/entity/DistrictResponsible_entity/entityfields/adviserstates/children/containername_param/valueProcess.js b/entity/DistrictResponsible_entity/entityfields/adviserstates/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..2f4d03edea3a8ff7253f793a4c8a3585f03db848
--- /dev/null
+++ b/entity/DistrictResponsible_entity/entityfields/adviserstates/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.contactStatus());
\ No newline at end of file
diff --git a/entity/DistrictResponsible_entity/entityfields/adviserstates/children/excludedkeyidssubquery_param/valueProcess.js b/entity/DistrictResponsible_entity/entityfields/adviserstates/children/excludedkeyidssubquery_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a79aeb2fc8911e2643259d18c3b7415c01669c2a
--- /dev/null
+++ b/entity/DistrictResponsible_entity/entityfields/adviserstates/children/excludedkeyidssubquery_param/valueProcess.js
@@ -0,0 +1,11 @@
+import("Keyword_lib");
+import("system.result");
+import("KeywordRegistry_basic");
+import("Sql_lib");
+
+var cond = newSelect("AB_KEYWORD_ENTRY.KEYID")
+.from("AB_KEYWORD_ENTRY")
+.where("AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID", KeywordUtils.getCategoryIdByName($KeywordRegistry.contactStatus()))
+.and("AB_KEYWORD_ENTRY.KEYID", $KeywordRegistry.contactStatus$inReview(), SqlBuilder.LIKE());
+
+result.string(cond.toString());
\ No newline at end of file
diff --git a/entity/DistrictResponsible_entity/entityfields/department_attribute_id/valueProcess.js b/entity/DistrictResponsible_entity/entityfields/department_attribute_id/valueProcess.js
deleted file mode 100644
index 3474c5398a8b48f35e4cd6f82297fecafb9e8928..0000000000000000000000000000000000000000
--- a/entity/DistrictResponsible_entity/entityfields/department_attribute_id/valueProcess.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import("system.vars");
-import("system.result");
-import("system.tools");
-
-var employeesContactId = vars.get("$field.EMPLOYEE_CONTACT_ID");
-var departmentsAttrId = ""
-if (employeesContactId)
-{
-    departmentsAttrId = tools.getUsersByAttribute(tools.CONTACTID, [employeesContactId])[0][tools.PARAMS].department;
-}
-
-result.string(departmentsAttrId);
\ No newline at end of file
diff --git a/entity/DistrictResponsible_entity/entityfields/departmentattributename/documentation.adoc b/entity/DistrictResponsible_entity/entityfields/departmentattributename/documentation.adoc
deleted file mode 100644
index 5bfe0dc5113c1612653d080130a887af00c71a9b..0000000000000000000000000000000000000000
--- a/entity/DistrictResponsible_entity/entityfields/departmentattributename/documentation.adoc
+++ /dev/null
@@ -1 +0,0 @@
-Used in DistrictPreview_view and also in the contentProcess of the JDito RC from Member_entity.
\ No newline at end of file
diff --git a/entity/DistrictResponsible_entity/entityfields/departmentattributename/valueProcess.js b/entity/DistrictResponsible_entity/entityfields/departmentattributename/valueProcess.js
deleted file mode 100644
index 7fac5c4e3942f0e9442d679d78370ba7136b96d6..0000000000000000000000000000000000000000
--- a/entity/DistrictResponsible_entity/entityfields/departmentattributename/valueProcess.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import("system.logging");
-import("system.vars");
-import("system.result");
-import("Attribute_lib");
-
-
-var departmentAttrId = vars.get("$field.DEPARTMENT_ATTRIBUTE_ID");
-var departmentDisplayName = "";
-
-if (departmentAttrId) 
-{
-    departmentDisplayName = AttributeUtil.getSimpleAttributeName(departmentAttrId, true);
-}
-
-result.string(departmentDisplayName);
\ No newline at end of file
diff --git a/entity/DistrictResponsible_entity/entityfields/employee_contact_id/stateProcess.js b/entity/DistrictResponsible_entity/entityfields/employee_contact_id/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..3c9d1932078931f687822baaaf60ed430583f27e
--- /dev/null
+++ b/entity/DistrictResponsible_entity/entityfields/employee_contact_id/stateProcess.js
@@ -0,0 +1,16 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+import("Sql_lib");
+import("system.db");
+
+var count = newSelect("COUNT(*)")
+    .from("DISTRICTCONTACT")
+    .join("DISTRICTRESPONSIBLE", "DISTRICTCONTACT.ADVISER_CONTACT_ID = DISTRICTRESPONSIBLE.EMPLOYEE_CONTACT_ID")
+    .where("DISTRICTRESPONSIBLE.EMPLOYEE_CONTACT_ID", vars.get("$field.EMPLOYEE_CONTACT_ID"))
+    .cell();
+
+if(count == 0)
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_READONLY);
\ No newline at end of file
diff --git a/entity/DistrictResponsible_entity/entityfields/persons/children/excludedcontactids_param/valueProcess.js b/entity/DistrictResponsible_entity/entityfields/persons/children/excludedcontactids_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7cd92d81da369c1b7eae71a9e7bbec9f27666f7e
--- /dev/null
+++ b/entity/DistrictResponsible_entity/entityfields/persons/children/excludedcontactids_param/valueProcess.js
@@ -0,0 +1,9 @@
+import("system.result");
+import("system.db");
+import("Sql_lib");
+
+result.string(JSON.stringify(newSelect("EMPLOYEE_CONTACT_ID")
+    .from("DISTRICTRESPONSIBLE")
+    .where("DISTRICTRESPONSIBLE.DISTRICT_ID", "$param.DistrictId_param")
+    .arrayColumn())
+);
\ No newline at end of file
diff --git a/entity/DistrictResponsible_entity/grantDeleteProcess.js b/entity/DistrictResponsible_entity/grantDeleteProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7039de6df63613d5985e26ef10ab10e90161e5c9
--- /dev/null
+++ b/entity/DistrictResponsible_entity/grantDeleteProcess.js
@@ -0,0 +1,13 @@
+import("Context_lib");
+import("system.vars");
+import("system.result");
+import("Entity_lib");
+
+var rowId = vars.get("$field.DISTRICTRESPONSIBLEID");
+var currentContext = ContextUtils.getCurrentContextId();
+
+var canDelete = new HasLinkedObjectTester()
+    .andNoEntityRows("DistrictContact_entity", "DistrictContacts", {ObjectId_param : currentContext, RowId_param : rowId}) //District Contact
+    .validate();
+
+result.string(canDelete);
\ No newline at end of file
diff --git a/entity/DistrictResponsible_entity/recordcontainers/db/recordfieldmappings/district_id.displayvalue/expression.js b/entity/DistrictResponsible_entity/recordcontainers/db/recordfieldmappings/district_id.displayvalue/expression.js
index 2bd6b5d01756719a2e951069a73268a5bb488d9f..fc4de922e1d7f53ae4aaa5f8f91ec1dbe5382781 100644
--- a/entity/DistrictResponsible_entity/recordcontainers/db/recordfieldmappings/district_id.displayvalue/expression.js
+++ b/entity/DistrictResponsible_entity/recordcontainers/db/recordfieldmappings/district_id.displayvalue/expression.js
@@ -4,4 +4,4 @@ import("Sql_lib");
 result.string(newSelect("DISTRICT.DISTRICT_NAME")
                 .from("DISTRICT")
                 .where("DISTRICT.DISTRICTID = DISTRICTRESPONSIBLE.DISTRICT_ID")
-                .toString());
+                .toString());
\ No newline at end of file
diff --git a/entity/District_entity/District_entity.aod b/entity/District_entity/District_entity.aod
index e775acd3c2243cada93f42afa935b6336bb8d256..1501adb177652439951bcd1501084f8e55729aa4 100644
--- a/entity/District_entity/District_entity.aod
+++ b/entity/District_entity/District_entity.aod
@@ -1,10 +1,12 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>District_entity</name>
+  <title>District definition</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/District_entity/documentation.adoc</documentation>
   <icon>VAADIN:GLOBE</icon>
-  <title>District definition</title>
+  <grantDelete v="false" />
+  <grantDeleteProcess>%aditoprj%/entity/District_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/District_entity/contentTitleProcess.js</contentTitleProcess>
   <iconIdProcess>%aditoprj%/entity/District_entity/iconIdProcess.js</iconIdProcess>
   <titlePlural></titlePlural>
@@ -109,20 +111,6 @@
         <fieldName>ISO3Name</fieldName>
       </dependency>
     </entityConsumer>
-    <entityConsumer>
-      <name>DistrictResponsibles</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>DistrictResponsible_entity</entityName>
-        <fieldName>DistrictResponsibles</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>DistrictId_param</name>
-          <valueProcess>%aditoprj%/entity/District_entity/entityfields/districtresponsibles/children/districtid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
     <entityField>
       <name>USER_NEW</name>
       <valueProcess>%aditoprj%/entity/District_entity/entityfields/user_new/valueProcess.js</valueProcess>
@@ -187,6 +175,12 @@
         <entityName>LogHistory_entity</entityName>
         <fieldName>LogHistoryProvider</fieldName>
       </dependency>
+      <children>
+        <entityParameter>
+          <name>tablenames_param</name>
+          <valueProcess>%aditoprj%/entity/District_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityField>
       <name>parentFilter</name>
@@ -243,6 +237,7 @@
       <children>
         <entityParameter>
           <name>DistrictsByContactId_param</name>
+          <valueProcess>%aditoprj%/entity/District_entity/entityfields/validparentdistricts/children/districtsbycontactid_param/valueProcess.js</valueProcess>
           <expose v="false" />
         </entityParameter>
       </children>
@@ -251,25 +246,92 @@
       <name>ExcludedDistrictIds_param</name>
       <expose v="true" />
     </entityParameter>
+    <entityConsumer>
+      <name>DistrictResponsibleUIDs</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>DistrictResponsible_entity</entityName>
+        <fieldName>DistrictResponsibles</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>DistrictId_param</name>
+          <valueProcess>%aditoprj%/entity/District_entity/entityfields/districtresponsibleuids/children/districtid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>DISTRICT_AUTOADD</name>
+      <title>Auto assignment</title>
+      <contentType>BOOLEAN</contentType>
+      <valueProcess>%aditoprj%/entity/District_entity/entityfields/district_autoadd/valueProcess.js</valueProcess>
+    </entityField>
+    <entityActionField>
+      <name>assignDistrict</name>
+      <title>Assign district</title>
+      <onActionProcess>%aditoprj%/entity/District_entity/entityfields/assigndistrict/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:LOCATION_ARROW_CIRCLE</iconId>
+    </entityActionField>
+    <entityActionGroup>
+      <name>ActionGroup</name>
+      <children>
+        <entityActionField>
+          <name>assignAllActiveDistricts</name>
+          <title>Assign all selected districts</title>
+          <onActionProcess>%aditoprj%/entity/District_entity/entityfields/actiongroup/children/assignallactivedistricts/onActionProcess.js</onActionProcess>
+          <isObjectAction v="false" />
+        </entityActionField>
+      </children>
+    </entityActionGroup>
+    <entityProvider>
+      <name>DistrictContacts</name>
+      <dependencies>
+        <entityDependency>
+          <name>d94c353f-c66d-489c-934b-72ca154ba37a</name>
+          <entityName>DistrictContact_entity</entityName>
+          <fieldName>Districts</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>DistrictsByContactId_param</name>
+          <valueProcess>%aditoprj%/entity/District_entity/entityfields/districtcontacts/children/districtsbycontactid_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <mandatory v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityConsumer>
+      <name>DistrictContactUIDs</name>
+      <selectionMode>MULTI</selectionMode>
+      <dependency>
+        <name>dependency</name>
+        <entityName>DistrictContact_entity</entityName>
+        <fieldName>DistrictContacts</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>DistrictId_param</name>
+          <valueProcess>%aditoprj%/entity/District_entity/entityfields/districtcontactuids/children/districtid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityParameter>
+      <name>ResponsibleDistrictsOfCurrentUser_param</name>
+      <expose v="true" />
+    </entityParameter>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <isPageable v="false" />
       <conditionProcess>%aditoprj%/entity/District_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/District_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
+      <onDBDelete>%aditoprj%/entity/District_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
+      <alias>Data_alias</alias>
       <cacheType>GLOBAL</cacheType>
       <cacheKeyProcess>%aditoprj%/entity/District_entity/recordcontainers/db/cacheKeyProcess.js</cacheKeyProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>b8398641-f97b-43e4-8f2c-beda8690ab2f</name>
-          <tableName>DISTRICT</tableName>
-          <primaryKey>DISTRICTID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>DATE_EDIT.value</name>
@@ -355,7 +417,21 @@
           <name>totalTurnover.value</name>
           <isLookupFilter v="false" />
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DISTRICT_AUTOADD.value</name>
+          <recordfield>DISTRICT.DISTRICT_AUTOADD</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>b8398641-f97b-43e4-8f2c-beda8690ab2f</name>
+          <tableName>DISTRICT</tableName>
+          <primaryKey>DISTRICTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/District_entity/entityfields/actiongroup/children/assignallactivedistricts/onActionProcess.js b/entity/District_entity/entityfields/actiongroup/children/assignallactivedistricts/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..59461e56b39556b3fdcc50ed9e2257df8d240631
--- /dev/null
+++ b/entity/District_entity/entityfields/actiongroup/children/assignallactivedistricts/onActionProcess.js
@@ -0,0 +1,9 @@
+import("system.vars");
+import("system.question");
+import("system.translate");
+import("District_lib");
+
+var arrDistrictIds = vars.get("$sys.selection");
+question.showMessage(translate.text("Assignment for all selected districts will start now!"));
+
+DistrictUtils.assignDistrictOnServer(arrDistrictIds);
\ No newline at end of file
diff --git a/entity/District_entity/entityfields/appliedfilter/valueProcess.js b/entity/District_entity/entityfields/appliedfilter/valueProcess.js
index 253bd0712af0b47b35aaa72b8d027fc9d053526d..b4542e7e2d01943cfe47e2aa1364e5be3b411753 100644
--- a/entity/District_entity/entityfields/appliedfilter/valueProcess.js
+++ b/entity/District_entity/entityfields/appliedfilter/valueProcess.js
@@ -1,37 +1,7 @@
+import("District_lib");
 import("system.result");
 import("system.vars");
 
-var parentFilter = vars.get("$field.parentFilter");
-var districtFilter = vars.get("$field.DISTRICT_FILTER");
-
-var appliedFilter = {
-        entity: "Organisation_entity", 
-        filter: {
-            type: "group", 
-            operator: "AND", 
-            childs: []
-}};
-
-if (parentFilter)
-{
-    appliedFilter.filter.childs.push(JSON.parse(parentFilter).filter);
-}
-if (districtFilter)
-{
-    //appliedFilter = _getApplicableFilter(appliedFilter, districtFilter);
-    appliedFilter.filter.childs.push(JSON.parse(districtFilter).filter);
-}
-
-result.string(JSON.stringify(appliedFilter));
-
-filterArray = [];
-
-function _getApplicableFilter(pFilter, pAppendFilter){
-    
-    var applicableFilter = "";
-    var childFilter = JSON.parse(pFilter).filter;
-    
-    
-    
-    return applicableFilter;
-}
\ No newline at end of file
+//Aufbau des kompletten Filters über alle Hierarchie-Ebenen hinweg
+var appliedFilter = DistrictUtils.getAppliedFilter(vars.get("$field.DISTRICT_FILTER"), vars.get("$field.PARENTDISTRICT_DISTRICTID"));
+result.string(appliedFilter);
diff --git a/entity/District_entity/entityfields/assigndistrict/onActionProcess.js b/entity/District_entity/entityfields/assigndistrict/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..f556ead9f64e28f01568cdff1828907b9db2dc14
--- /dev/null
+++ b/entity/District_entity/entityfields/assigndistrict/onActionProcess.js
@@ -0,0 +1,10 @@
+import("system.question");
+import("system.translate");
+import("District_lib");
+import("system.vars");
+
+var arrDistrictId = [vars.get("$field.DISTRICTID")];
+
+question.showMessage(translate.text("District assignment will start now!"));
+
+DistrictUtils.assignDistrictOnServer(arrDistrictId);
diff --git a/entity/District_entity/entityfields/customercounting/valueProcess.js b/entity/District_entity/entityfields/customercounting/valueProcess.js
index ccecd79603fe711a4705cd3fe0a6081a800986cc..e237bbef745d6c90b0c5b4e7bd58a592a28cca2d 100644
--- a/entity/District_entity/entityfields/customercounting/valueProcess.js
+++ b/entity/District_entity/entityfields/customercounting/valueProcess.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.vars");
 import("system.result");
 import("system.entities");
@@ -20,5 +19,4 @@ if (appliedFilter)
     rowCount = entities.getRowCount(conf);
 }
 
-
 result.string(rowCount);
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/startdate/valueProcess.js b/entity/District_entity/entityfields/district_autoadd/valueProcess.js
similarity index 71%
rename from entity/Salesproject_entity/entityfields/startdate/valueProcess.js
rename to entity/District_entity/entityfields/district_autoadd/valueProcess.js
index 047e11fdb49fe7a57518e928bd5e6436d9f10065..c6c5c2d61991c8cf38ac7633b769b51fa200aec4 100644
--- a/entity/Salesproject_entity/entityfields/startdate/valueProcess.js
+++ b/entity/District_entity/entityfields/district_autoadd/valueProcess.js
@@ -1,9 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
-import("Date_lib");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
-{
-    result.string(DateUtils.getTodayUTC());
-}
\ No newline at end of file
+    result.string("0");
\ No newline at end of file
diff --git a/entity/District_entity/entityfields/district_number/displayValueProcess.js b/entity/District_entity/entityfields/district_number/displayValueProcess.js
index 95a9d9d10972827b4d89b9f4ad7aa68161204049..af1a50e6fb3106b647f68b45106741f32ee4f494 100644
--- a/entity/District_entity/entityfields/district_number/displayValueProcess.js
+++ b/entity/District_entity/entityfields/district_number/displayValueProcess.js
@@ -1,10 +1,8 @@
 import("system.vars");
-import("system.logging");
 import("system.result");
 import("system.neon");
 import("Sql_lib");
 
-
 var districtNo = vars.get("$field.DISTRICT_NUMBER");
 
-result.string(districtNo.padStart(4, '0'));
+result.string(districtNo.padStart(4, '0'));
\ No newline at end of file
diff --git a/entity/District_entity/entityfields/districtcontacts/children/districtsbycontactid_param/valueProcess.js b/entity/District_entity/entityfields/districtcontacts/children/districtsbycontactid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..289f9107d46f3fabb9daf28ea42318b124ba98ea
--- /dev/null
+++ b/entity/District_entity/entityfields/districtcontacts/children/districtsbycontactid_param/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string("$$$###ignore_param###$$$");//dummy value, for special treatment in the conditionProcess
\ No newline at end of file
diff --git a/entity/District_entity/entityfields/districtresponsibles/children/districtid_param/valueProcess.js b/entity/District_entity/entityfields/districtcontactuids/children/districtid_param/valueProcess.js
similarity index 98%
rename from entity/District_entity/entityfields/districtresponsibles/children/districtid_param/valueProcess.js
rename to entity/District_entity/entityfields/districtcontactuids/children/districtid_param/valueProcess.js
index d3d1d4b6cb94a84199fdc7783e0194a1a7255152..44ec9627c5e51edbe27130ba82db39ca269d2c07 100644
--- a/entity/District_entity/entityfields/districtresponsibles/children/districtid_param/valueProcess.js
+++ b/entity/District_entity/entityfields/districtcontactuids/children/districtid_param/valueProcess.js
@@ -1,5 +1,4 @@
 import("system.result");
 import("system.vars");
 
-
 result.string(vars.get("$field.DISTRICTID"));
\ No newline at end of file
diff --git a/entity/District_entity/entityfields/districtresponsibleuids/children/districtid_param/valueProcess.js b/entity/District_entity/entityfields/districtresponsibleuids/children/districtid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..44ec9627c5e51edbe27130ba82db39ca269d2c07
--- /dev/null
+++ b/entity/District_entity/entityfields/districtresponsibleuids/children/districtid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.DISTRICTID"));
\ No newline at end of file
diff --git a/entity/District_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js b/entity/District_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..92a62600733c4a0b3e48ba036628bb93f372dbf7
--- /dev/null
+++ b/entity/District_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js
@@ -0,0 +1,9 @@
+import("system.vars");
+import("system.result");
+import("Context_lib");
+
+var res = [];
+res.push({id: vars.get("$field.DISTRICTID"), tableNames: ["DISTRICT"]});
+
+res = JSON.stringify(res);//currently only strings  can be passed as param
+result.object(res);
\ No newline at end of file
diff --git a/entity/District_entity/entityfields/parentfilter/valueProcess.js b/entity/District_entity/entityfields/parentfilter/valueProcess.js
index e1c0dfd89d6d147325bc77eb3fe1e1b452c6793e..7dd066de7e904e7528f28d0e03c65b459b534579 100644
--- a/entity/District_entity/entityfields/parentfilter/valueProcess.js
+++ b/entity/District_entity/entityfields/parentfilter/valueProcess.js
@@ -1,64 +1,7 @@
+import("District_lib");
 import("system.result");
 import("system.vars");
-import("system.neon");
-import("Sql_lib");
 
-var res = "";
-var parentDistrictId = vars.get("$field.PARENTDISTRICT_DISTRICTID");
-
-if (parentDistrictId)
-{
-    var completeParentFilter = _getParentFilter(parentDistrictId, null);
-    completeParentFilter.entity = "Organisation_entity";
-    res = completeParentFilter;
-}
-else
-{
-    var entity = "Organisation_entity";
-    var emptyFilter = {
-        entity: entity, 
-        filter: {
-            type: "group", 
-            operator: "AND", 
-            childs: []
-        }
-    };
-    
-    res = emptyFilter;
-}
-    
-result.string(JSON.stringify(res));
-
-
-function _getParentFilter(pParentDistrictId, pPreviousFilter)
-{
-    var resFilter;
-    
-    if (pPreviousFilter != null)
-    {
-        resFilter = pPreviousFilter;
-    } 
-
-    if (pParentDistrictId)
-    {
-        var parentDistrictFilter, grandParentDistrict;
-        [parentDistrictFilter, grandParentDistrict] = newSelect(["DISTRICT.DISTRICT_FILTER", "DISTRICT.PARENTDISTRICT_DISTRICTID"])
-                                                            .from("DISTRICT")
-                                                            .where("DISTRICT.DISTRICTID", pParentDistrictId)
-                                                            .arrayRow();
-
-        parentDistrictFilter = JSON.parse(parentDistrictFilter);
-
-        if (pPreviousFilter)
-            parentDistrictFilter.filter.childs.push(resFilter.filter);//todo: kommentar ergänzen was wir heir eigentlcih machen
-        
-        resFilter = parentDistrictFilter;
-
-        if (grandParentDistrict.length > 0)
-        {   
-            resFilter = _getParentFilter(grandParentDistrict, resFilter);
-        }
-    }
-
-    return resFilter;
-}
\ No newline at end of file
+//Aufbau des übergeordneten Filters 
+var res = DistrictUtils.getParentFilter(vars.get("$field.PARENTDISTRICT_DISTRICTID"));
+result.string(res);
diff --git a/entity/District_entity/entityfields/totalturnover/valueProcess.js b/entity/District_entity/entityfields/totalturnover/valueProcess.js
index 40d9732b34a8c3e73b89f860524abb9f55fd77ef..ced08cd465f6508f0641e4bcafa0872957d95865 100644
--- a/entity/District_entity/entityfields/totalturnover/valueProcess.js
+++ b/entity/District_entity/entityfields/totalturnover/valueProcess.js
@@ -2,7 +2,6 @@ import("system.text");
 import("Sql_lib");
 import("system.SQLTYPES");
 import("Date_lib");
-import("system.logging");
 import("system.vars");
 import("system.result");
 import("system.entities");
diff --git a/entity/District_entity/entityfields/validparentdistricts/children/districtsbycontactid_param/valueProcess.js b/entity/District_entity/entityfields/validparentdistricts/children/districtsbycontactid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..289f9107d46f3fabb9daf28ea42318b124ba98ea
--- /dev/null
+++ b/entity/District_entity/entityfields/validparentdistricts/children/districtsbycontactid_param/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string("$$$###ignore_param###$$$");//dummy value, for special treatment in the conditionProcess
\ No newline at end of file
diff --git a/entity/District_entity/grantDeleteProcess.js b/entity/District_entity/grantDeleteProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..74e29836785f40313a3ff29d94ae95cf743007df
--- /dev/null
+++ b/entity/District_entity/grantDeleteProcess.js
@@ -0,0 +1,12 @@
+import("system.result");
+import("Sql_lib");
+import("system.vars");
+
+//Don't allow deletion if the district is a superordinate district
+var districtId = vars.get("$field.DISTRICTID");
+var count = newSelect("COUNT(*)")
+                    .from("DISTRICT")
+                    .where("DISTRICT.PARENTDISTRICT_DISTRICTID", districtId)
+                    .cell();   
+                                   
+result.string(count == 0);
diff --git a/entity/District_entity/recordcontainers/db/conditionProcess.js b/entity/District_entity/recordcontainers/db/conditionProcess.js
index 8329757ab9cf0a152de9c68fc67fcb16ffcb921e..309e53986efe9dbb08ce02ffa3f0e2db7f03115a 100644
--- a/entity/District_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/District_entity/recordcontainers/db/conditionProcess.js
@@ -1,8 +1,21 @@
+import("Employee_lib");
 import("system.result");
 import("system.vars");
 import("Sql_lib");
 
-var onlyResponsibleParam = vars.get("$param.DistrictsByContactId_param");
+
+var responsibleDistrictsOfCurrentUser = vars.get("$param.ResponsibleDistrictsOfCurrentUser_param");
+var onlyResponsibleParam;
+if(responsibleDistrictsOfCurrentUser == "true")
+{
+    onlyResponsibleParam = EmployeeUtils.getCurrentContactId();
+     
+}    
+else
+{    
+    onlyResponsibleParam = vars.get("$param.DistrictsByContactId_param");
+}
+
 var cond = newWhere();
 if (onlyResponsibleParam)
 {
diff --git a/entity/District_entity/recordcontainers/db/onDBDelete.js b/entity/District_entity/recordcontainers/db/onDBDelete.js
new file mode 100644
index 0000000000000000000000000000000000000000..7826987ae67e508518bb9c961baf11c6de5bf3ed
--- /dev/null
+++ b/entity/District_entity/recordcontainers/db/onDBDelete.js
@@ -0,0 +1,11 @@
+import("Sql_lib");
+import("system.vars");
+import("system.db");
+
+var districtId = vars.get("$field.DISTRICTID");
+
+//delete linked data
+db.deletes([
+    newWhere("DISTRICTCONTACT.DISTRICT_ID", districtId).buildDeleteStatement(),
+    newWhere("DISTRICTRESPONSIBLE.DISTRICT_ID", districtId).buildDeleteStatement()
+]);
\ No newline at end of file
diff --git a/entity/DocumentTemplateLink_entity/DocumentTemplateLink_entity.aod b/entity/DocumentTemplateLink_entity/DocumentTemplateLink_entity.aod
index e848d6cbed30ee763ef247d2b50de2b6a9fcd166..843d06ed290041280f020427f11738ff3dbe06d9 100644
--- a/entity/DocumentTemplateLink_entity/DocumentTemplateLink_entity.aod
+++ b/entity/DocumentTemplateLink_entity/DocumentTemplateLink_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>DocumentTemplateLink_entity</name>
+  <title>Attachment</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/DocumentTemplateLink_entity/documentation.adoc</documentation>
-  <title>Attachment</title>
   <recordContainer>db</recordContainer>
   <entityFields>
     <entityProvider>
@@ -59,8 +59,8 @@
       <children>
         <entityParameter>
           <name>DocumentTemplateType_param</name>
-          <title></title>
           <valueProcess>%aditoprj%/entity/DocumentTemplateLink_entity/entityfields/attachments/children/documenttemplatetype_param/valueProcess.js</valueProcess>
+          <title></title>
         </entityParameter>
       </children>
     </entityConsumer>
@@ -111,25 +111,9 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <fromClauseProcess>%aditoprj%/entity/DocumentTemplateLink_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/DocumentTemplateLink_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>05d25e85-1cd8-4897-be48-ecf699322b1f</name>
-          <tableName>DOCUMENTTEMPLATELINK</tableName>
-          <primaryKey>DOCUMENTTEMPLATELINKID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>34ca9c71-3de5-48ce-ade2-fa203360ebbd</name>
-          <tableName>DOCUMENTTEMPLATE</tableName>
-          <primaryKey>DOCUMENTTEMPLATEID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>DATE_EDIT.value</name>
@@ -160,6 +144,22 @@
           <recordfield>DOCUMENTTEMPLATELINK.USER_NEW</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>05d25e85-1cd8-4897-be48-ecf699322b1f</name>
+          <tableName>DOCUMENTTEMPLATELINK</tableName>
+          <primaryKey>DOCUMENTTEMPLATELINKID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>34ca9c71-3de5-48ce-ade2-fa203360ebbd</name>
+          <tableName>DOCUMENTTEMPLATE</tableName>
+          <primaryKey>DOCUMENTTEMPLATEID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/DocumentTemplatePlaceOfUse_entity/DocumentTemplatePlaceOfUse_entity.aod b/entity/DocumentTemplatePlaceOfUse_entity/DocumentTemplatePlaceOfUse_entity.aod
index ecc597470943e0219985ae481d76dea66c63687d..4ac6764a9d7f53074eb326f85cd32142258de9d6 100644
--- a/entity/DocumentTemplatePlaceOfUse_entity/DocumentTemplatePlaceOfUse_entity.aod
+++ b/entity/DocumentTemplatePlaceOfUse_entity/DocumentTemplatePlaceOfUse_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>DocumentTemplatePlaceOfUse_entity</name>
+  <title>Documenttemplate Place Of Use</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/DocumentTemplatePlaceOfUse_entity/documentation.adoc</documentation>
-  <title>Documenttemplate Place Of Use</title>
   <titlePlural>Documenttemplate Places Of Useage</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -29,6 +29,11 @@
     </entityField>
     <entityConsumer>
       <name>ContextDocumentTemplatePlaceOfUse</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Context_entity</entityName>
+        <fieldName>ContextTemplatePlaceOfUse</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>InvertBlacklist_param</name>
@@ -39,21 +44,10 @@
           <valueProcess>%aditoprj%/entity/DocumentTemplatePlaceOfUse_entity/entityfields/contextdocumenttemplateplaceofuse/children/blacklist_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Context_entity</entityName>
-        <fieldName>ContextTemplatePlaceOfUse</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>DocumentTemplatePlaceOfUse</name>
       <documentation>%aditoprj%/entity/DocumentTemplatePlaceOfUse_entity/entityfields/documenttemplateplaceofuse/documentation.adoc</documentation>
-      <children>
-        <entityParameter>
-          <name>DocumentTemplatePlaceOfUse_param</name>
-          <documentation>%aditoprj%/entity/DocumentTemplatePlaceOfUse_entity/entityfields/documenttemplateplaceofuse/children/documenttemplateplaceofuse_param/documentation.adoc</documentation>
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>bc05b556-ecca-478c-9a92-b77e4d98d6f3</name>
@@ -62,6 +56,12 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>DocumentTemplatePlaceOfUse_param</name>
+          <documentation>%aditoprj%/entity/DocumentTemplatePlaceOfUse_entity/entityfields/documenttemplateplaceofuse/children/documenttemplateplaceofuse_param/documentation.adoc</documentation>
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityParameter>
       <name>DocumentTemplatePlaceOfUse_param</name>
@@ -75,17 +75,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/DocumentTemplatePlaceOfUse_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>df318337-f5d2-4046-989d-476f336b3fb4</name>
-          <tableName>DOCUMENTTEMPLATEPLACEOFUSE</tableName>
-          <primaryKey>DOCUMENTTEMPLATEPLACEOFUSEID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>DOCUMENTTEMPLATE_ID.value</name>
@@ -100,6 +91,15 @@
           <recordfield>DOCUMENTTEMPLATEPLACEOFUSE.PLACEOFUSE</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>df318337-f5d2-4046-989d-476f336b3fb4</name>
+          <tableName>DOCUMENTTEMPLATEPLACEOFUSE</tableName>
+          <primaryKey>DOCUMENTTEMPLATEPLACEOFUSEID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/DocumentTemplateTypeCategory_entity/DocumentTemplateTypeCategory_entity.aod b/entity/DocumentTemplateTypeCategory_entity/DocumentTemplateTypeCategory_entity.aod
index bea4c1751d8494da143d1330f839615910e4cba6..cd4ef60ae543ee6cb2407d59bf510f368cb64f66 100644
--- a/entity/DocumentTemplateTypeCategory_entity/DocumentTemplateTypeCategory_entity.aod
+++ b/entity/DocumentTemplateTypeCategory_entity/DocumentTemplateTypeCategory_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>DocumentTemplateTypeCategory_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/DocumentTemplateTypeCategory_entity/documentation.adoc</documentation>
@@ -55,18 +55,9 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/DocumentTemplateTypeCategory_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/DocumentTemplateTypeCategory_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>6cfa2424-b81b-4750-ae43-e3b1126eab0a</name>
-          <tableName>AB_KEYWORD_ENTRY</tableName>
-          <primaryKey>AB_KEYWORD_ENTRYID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>AB_KEYWORD_ENTRYID.value</name>
@@ -81,6 +72,15 @@
           <recordfield>AB_KEYWORD_ENTRY.TITLE</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>6cfa2424-b81b-4750-ae43-e3b1126eab0a</name>
+          <tableName>AB_KEYWORD_ENTRY</tableName>
+          <primaryKey>AB_KEYWORD_ENTRYID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/DocumentTemplateTypeCategory_entity/recordcontainers/db/conditionProcess.js b/entity/DocumentTemplateTypeCategory_entity/recordcontainers/db/conditionProcess.js
index 0cec405b433c9f43d6e536f471fb001b9da9ac43..df6501d2c3622d1f5a3cbc9c15c7ae99926347f6 100644
--- a/entity/DocumentTemplateTypeCategory_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/DocumentTemplateTypeCategory_entity/recordcontainers/db/conditionProcess.js
@@ -5,7 +5,7 @@ import("KeywordRegistry_basic");
 import("Sql_lib");
 import("Keyword_lib");
 
-var cond = newWhere("AB_KEYWORD_ENTRY.CONTAINER", $KeywordRegistry.documentTemplateTypeCategory());
+var cond = newWhere("AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID", KeywordUtils.getCategoryIdByName($KeywordRegistry.documentTemplateTypeCategory()));
 
 var usageFilter = vars.get("$param.usageFilter_param");
 if (usageFilter)
diff --git a/entity/DocumentTemplateTypeCategory_entity/recordcontainers/db/orderClauseProcess.js b/entity/DocumentTemplateTypeCategory_entity/recordcontainers/db/orderClauseProcess.js
index e32403dc6e2df5902c3faeaf8f155a3b41a0f405..3685b526a66a8990d8b94682e3e39617ebfe5a66 100644
--- a/entity/DocumentTemplateTypeCategory_entity/recordcontainers/db/orderClauseProcess.js
+++ b/entity/DocumentTemplateTypeCategory_entity/recordcontainers/db/orderClauseProcess.js
@@ -2,7 +2,6 @@ import("system.db");
 import("system.result");
 
 result.object({
-     "AB_KEYWORD_ENTRY.CONTAINER": db.ASCENDING
-    ,"AB_KEYWORD_ENTRY.SORTING": db.ASCENDING
+    "AB_KEYWORD_ENTRY.SORTING": db.ASCENDING
     ,"AB_KEYWORD_ENTRY.TITLE": db.ASCENDING
 });
\ No newline at end of file
diff --git a/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod b/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod
index dbb9e49a3b635be85e5615422520d9f08d387aac..91281b4cfaa6c8b14ac125c4d9dda3ecb4825d64 100644
--- a/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod
+++ b/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod
@@ -1,10 +1,10 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>DocumentTemplate_entity</name>
+  <title>Document Template</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/DocumentTemplate_entity/documentation.adoc</documentation>
   <icon>VAADIN:FILE_FONT</icon>
-  <title>Document Template</title>
   <contentTitleProcess>%aditoprj%/entity/DocumentTemplate_entity/contentTitleProcess.js</contentTitleProcess>
   <afterUiInit>%aditoprj%/entity/DocumentTemplate_entity/afterUiInit.js</afterUiInit>
   <onValidation>%aditoprj%/entity/DocumentTemplate_entity/onValidation.js</onValidation>
@@ -351,20 +351,11 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/DocumentTemplate_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <onDBInsert>%aditoprj%/entity/DocumentTemplate_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/DocumentTemplate_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/DocumentTemplate_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>982325b6-d12e-43f9-8ac2-c4b9f013aafd</name>
-          <tableName>DOCUMENTTEMPLATE</tableName>
-          <primaryKey>DOCUMENTTEMPLATEID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>DATE_EDIT.value</name>
@@ -423,6 +414,15 @@
           <expression>%aditoprj%/entity/DocumentTemplate_entity/recordcontainers/db/recordfieldmappings/kind.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>982325b6-d12e-43f9-8ac2-c4b9f013aafd</name>
+          <tableName>DOCUMENTTEMPLATE</tableName>
+          <primaryKey>DOCUMENTTEMPLATEID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
       <filterExtensions>
         <filterExtension>
           <name>Favorite_filter</name>
diff --git a/entity/DocumentTemplate_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js b/entity/DocumentTemplate_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
index c3deb28e584154a76101902faaebb110e2c5d7d8..73410be03fab8d10e3ee99009855a5dcd5b4df12 100644
--- a/entity/DocumentTemplate_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
+++ b/entity/DocumentTemplate_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
@@ -1,11 +1,12 @@
+import("system.vars");
 import("Favorites_lib");
 import("system.result");
 import("Sql_lib");
 
-var favoFilterCond = newWhere();
-var rowIds = FavoritesUtil.getRowIdsOfFavoriteGroup();
+var operator = vars.get("$local.operator");
+var rawvalue = vars.get("$local.rawvalue");
 
-for(i = 0; i < rowIds.length; i++)
-    favoFilterCond.or("DOCUMENTTEMPLATE.DOCUMENTTEMPLATEID", rowIds[i], SqlBuilder.EQUAL());
+var objecttype = vars.get("$field.DOCUMENTTEMPLATE_OBJECTTYPE");
+var idcolumn = "DOCUMENTTEMPLATE.DOCUMENTTEMPLATEID";
 
-result.string(favoFilterCond.toString());
\ No newline at end of file
+result.string(FavoritesUtil.getFilterDisplayCondition(objecttype, operator, rawvalue, idcolumn));
diff --git a/entity/Document_entity/Document_entity.aod b/entity/Document_entity/Document_entity.aod
index f1dda1cc413a7dc2f7f2678ef59c6188096c0d5f..db44542e1140ab1217d412a752b85812417d5935 100644
--- a/entity/Document_entity/Document_entity.aod
+++ b/entity/Document_entity/Document_entity.aod
@@ -1,10 +1,12 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Document_entity</name>
+  <title>Document</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Document_entity/documentation.adoc</documentation>
-  <title>Document</title>
   <grantCreateProcess>%aditoprj%/entity/Document_entity/grantCreateProcess.js</grantCreateProcess>
+  <contentTitleProcess>%aditoprj%/entity/Document_entity/contentTitleProcess.js</contentTitleProcess>
+  <contentDescriptionProcess>%aditoprj%/entity/Document_entity/contentDescriptionProcess.js</contentDescriptionProcess>
   <iconId>VAADIN:FILE</iconId>
   <titlePlural>Documents</titlePlural>
   <recordContainer>jdito</recordContainer>
@@ -57,7 +59,6 @@
       <name>BINDATA_UPLOAD</name>
       <title>File</title>
       <contentType>FILE</contentType>
-      <mandatory v="false" />
       <mandatoryProcess>%aditoprj%/entity/Document_entity/entityfields/bindata_upload/mandatoryProcess.js</mandatoryProcess>
       <onValueChange>%aditoprj%/entity/Document_entity/entityfields/bindata_upload/onValueChange.js</onValueChange>
       <onValueChangeTypes>
@@ -65,6 +66,7 @@
         <element>PROCESS</element>
         <element>PROCESS_SETVALUE</element>
       </onValueChangeTypes>
+      <onValidation>%aditoprj%/entity/Document_entity/entityfields/bindata_upload/onValidation.js</onValidation>
     </entityField>
     <entityActionGroup>
       <name>Document_actions</name>
@@ -122,7 +124,6 @@
       <title>Main document</title>
       <contentType>BOOLEAN</contentType>
       <placeholderProcess>%aditoprj%/entity/Document_entity/entityfields/is_main_document/placeholderProcess.js</placeholderProcess>
-      <dropDownProcess>%aditoprj%/entity/Document_entity/entityfields/is_main_document/dropDownProcess.js</dropDownProcess>
       <valueProcess>%aditoprj%/entity/Document_entity/entityfields/is_main_document/valueProcess.js</valueProcess>
       <onValueChange>%aditoprj%/entity/Document_entity/entityfields/is_main_document/onValueChange.js</onValueChange>
       <onValueChangeTypes>
@@ -145,26 +146,6 @@
       <name>Documents</name>
       <documentation>%aditoprj%/entity/Document_entity/entityfields/documents/documentation.adoc</documentation>
       <recordContainer>jdito</recordContainer>
-      <children>
-        <entityParameter>
-          <name>AssignmentName_param</name>
-          <valueProcess>%aditoprj%/entity/Document_entity/entityfields/documents/children/assignmentname_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <documentation>%aditoprj%/entity/Document_entity/entityfields/documents/children/assignmentname_param/documentation.adoc</documentation>
-        </entityParameter>
-        <entityParameter>
-          <name>AssignmentRowId_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>AssignmentTable_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>Keyword_param</name>
-          <expose v="true" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>1eae1907-53ea-4d6f-bcf1-772052365020</name>
@@ -263,23 +244,12 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
-    </entityProvider>
-    <entityProvider>
-      <name>MainDocuments</name>
-      <recordContainer>jdito</recordContainer>
       <children>
-        <entityParameter>
-          <name>Keyword_param</name>
-          <valueProcess>%aditoprj%/entity/Document_entity/entityfields/maindocuments/children/keyword_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <mandatory v="true" />
-          <description>TODO: expose auf false. aktuell wird der Code nicht ausgeführt, wenn Expose false ist.</description>
-        </entityParameter>
         <entityParameter>
           <name>AssignmentName_param</name>
-          <valueProcess>%aditoprj%/entity/Document_entity/entityfields/maindocuments/children/assignmentname_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/Document_entity/entityfields/documents/children/assignmentname_param/valueProcess.js</valueProcess>
           <expose v="true" />
-          <documentation>%aditoprj%/entity/Document_entity/entityfields/maindocuments/children/assignmentname_param/documentation.adoc</documentation>
+          <documentation>%aditoprj%/entity/Document_entity/entityfields/documents/children/assignmentname_param/documentation.adoc</documentation>
         </entityParameter>
         <entityParameter>
           <name>AssignmentRowId_param</name>
@@ -290,10 +260,14 @@
           <expose v="true" />
         </entityParameter>
         <entityParameter>
-          <name>DisallowCreate_param</name>
-          <expose v="false" />
+          <name>Keyword_param</name>
+          <expose v="true" />
         </entityParameter>
       </children>
+    </entityProvider>
+    <entityProvider>
+      <name>MainDocuments</name>
+      <recordContainer>jdito</recordContainer>
       <dependencies>
         <entityDependency>
           <name>87d738a5-5d5e-425e-b013-007371475a38</name>
@@ -338,6 +312,33 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>Keyword_param</name>
+          <valueProcess>%aditoprj%/entity/Document_entity/entityfields/maindocuments/children/keyword_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <mandatory v="true" />
+          <description>TODO: expose auf false. aktuell wird der Code nicht ausgeführt, wenn Expose false ist.</description>
+        </entityParameter>
+        <entityParameter>
+          <name>AssignmentName_param</name>
+          <valueProcess>%aditoprj%/entity/Document_entity/entityfields/maindocuments/children/assignmentname_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <documentation>%aditoprj%/entity/Document_entity/entityfields/maindocuments/children/assignmentname_param/documentation.adoc</documentation>
+        </entityParameter>
+        <entityParameter>
+          <name>AssignmentRowId_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>AssignmentTable_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>DisallowCreate_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityParameter>
       <name>DisallowCreate_param</name>
@@ -347,6 +348,14 @@
     <entityProvider>
       <name>SingleDocument</name>
       <titlePlural>Document</titlePlural>
+      <dependencies>
+        <entityDependency>
+          <name>91f87622-d0e8-43c6-99a0-5f9cebf79aaf</name>
+          <entityName>SerialLetter_entity</entityName>
+          <fieldName>Documents</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
       <children>
         <entityParameter>
           <name>AssignmentName_param</name>
@@ -362,14 +371,6 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependencies>
-        <entityDependency>
-          <name>91f87622-d0e8-43c6-99a0-5f9cebf79aaf</name>
-          <entityName>SerialLetter_entity</entityName>
-          <fieldName>Documents</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
     </entityProvider>
     <entityProvider>
       <name>#PROVIDER_AGGREGATES</name>
@@ -393,6 +394,10 @@
       <name>MSTTeamId_param</name>
       <expose v="true" />
     </entityParameter>
+    <entityField>
+      <name>assignmentRowID</name>
+      <valueProcess>%aditoprj%/entity/Document_entity/entityfields/assignmentrowid/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
@@ -427,6 +432,9 @@
         <jDitoRecordFieldMapping>
           <name>KEYWORD.value</name>
         </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>assignmentRowID.value</name>
+        </jDitoRecordFieldMapping>
       </recordFieldMappings>
     </jDitoRecordContainer>
   </recordContainers>
diff --git a/entity/Document_entity/contentDescriptionProcess.js b/entity/Document_entity/contentDescriptionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..06a46eb63894622c07e5021280fbb098c3d4385c
--- /dev/null
+++ b/entity/Document_entity/contentDescriptionProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.DESCRIPTION"));
\ No newline at end of file
diff --git a/entity/Document_entity/contentTitleProcess.js b/entity/Document_entity/contentTitleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..28fd67de270b497ba718dd4e91766bd22936f67e
--- /dev/null
+++ b/entity/Document_entity/contentTitleProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.NAME"));
\ No newline at end of file
diff --git a/entity/Document_entity/entityfields/assignmentrowid/valueProcess.js b/entity/Document_entity/entityfields/assignmentrowid/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..00e8882d0d160871dd3a4482345307be2e9af9f4
--- /dev/null
+++ b/entity/Document_entity/entityfields/assignmentrowid/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.result");
+
+if (!vars.get("$this.value"))
+    result.string(vars.get("$param.AssignmentRowId_param"));
\ No newline at end of file
diff --git a/entity/Document_entity/entityfields/bindata_upload/mandatoryProcess.js b/entity/Document_entity/entityfields/bindata_upload/mandatoryProcess.js
index 9b10455db373f6515f4045f5c7095c39eecdc778..d250f4bf65f47b01e5e7af7afd0dda64fac4db98 100644
--- a/entity/Document_entity/entityfields/bindata_upload/mandatoryProcess.js
+++ b/entity/Document_entity/entityfields/bindata_upload/mandatoryProcess.js
@@ -3,6 +3,6 @@ import("system.vars");
 import("system.result");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    result.string("true");
+    result.string(true);
 else
-    result.string("false");
+    result.string(false);
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/classificationtype/valueProcess.js b/entity/Document_entity/entityfields/bindata_upload/onValidation.js
similarity index 52%
rename from entity/Classification_entity/entityfields/classificationtype/valueProcess.js
rename to entity/Document_entity/entityfields/bindata_upload/onValidation.js
index 2bccd5eb7fbb2311971da0e6ae2ed3b56ed21268..dae974a4822013dd32f88bfe3cc684a3fca1fcb7 100644
--- a/entity/Classification_entity/entityfields/classificationtype/valueProcess.js
+++ b/entity/Document_entity/entityfields/bindata_upload/onValidation.js
@@ -1,8 +1,10 @@
-import("system.result");
+import("system.translate");
 import("system.neon");
+import("system.result");
 import("system.vars");
 
 if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
 {
-    result.string(vars.get("$param.ClassificationType_param"));
+    if (!vars.get("$local.value"))
+        result.string(translate.text("No file selected."));
 }
\ No newline at end of file
diff --git a/entity/Document_entity/entityfields/bindata_upload/onValueChange.js b/entity/Document_entity/entityfields/bindata_upload/onValueChange.js
index c0b7a0db07072a7f30d5bfdd1afef3713e5a9d72..39737df167e2558f2fbc6bb3b6a2ca1607b21e7a 100644
--- a/entity/Document_entity/entityfields/bindata_upload/onValueChange.js
+++ b/entity/Document_entity/entityfields/bindata_upload/onValueChange.js
@@ -3,5 +3,5 @@ import("system.neon");
 import("Entity_lib");
 import("Document_lib");
 
-var uploadValue = vars.get("local.value");
+var uploadValue = vars.get("$local.value");
 neon.setFieldValue("$field.NAME", DocumentUtil.getFilenameFromUpload(uploadValue));
diff --git a/entity/Document_entity/entityfields/is_main_document/dropDownProcess.js b/entity/Document_entity/entityfields/is_main_document/dropDownProcess.js
deleted file mode 100644
index 1324968dfff10e56efe6268f8520572d56f21d1b..0000000000000000000000000000000000000000
--- a/entity/Document_entity/entityfields/is_main_document/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-     ["1", translate.text("Yes")]
-    ,["0", translate.text("No")]
-]);
\ No newline at end of file
diff --git a/entity/Document_entity/recordcontainers/jdito/contentProcess.js b/entity/Document_entity/recordcontainers/jdito/contentProcess.js
index 1d34f32095204dab4a658272f9725848ba444e1e..139a1d284ebec853cbfb0d6eb6a0b9b1f1351019 100644
--- a/entity/Document_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Document_entity/recordcontainers/jdito/contentProcess.js
@@ -30,7 +30,7 @@ if(vars.exists("$param.AssignmentTable_param") &&
         var previewAvatar = metadata[i].preview || "VAADIN:FILE";
         documents.push( [metadata[i].id, metadata[i].filename, metadata[i].size, 
             metadata[i].edit, previewAvatar, metadata[i].mimetype, 
-            metadata[i].description, metadata[i].keyword]);
+            metadata[i].description, metadata[i].keyword, assignmentRowId]);
     }
 
     result.object(documents);
diff --git a/entity/Document_entity/recordcontainers/jdito/onDelete.js b/entity/Document_entity/recordcontainers/jdito/onDelete.js
index 74fe70263290d64f3566a2806e4b2dd25bd81cf4..8a2470d3de3c31639294f911d2a53078d96f1a09 100644
--- a/entity/Document_entity/recordcontainers/jdito/onDelete.js
+++ b/entity/Document_entity/recordcontainers/jdito/onDelete.js
@@ -1,2 +1,5 @@
+import("Workflow_lib");
 import("Document_lib");
 DocumentUtil.deleteCurrentDocument();
+
+WorkflowSignalSender.deleted();
diff --git a/entity/Document_entity/recordcontainers/jdito/onInsert.js b/entity/Document_entity/recordcontainers/jdito/onInsert.js
index 99bcdc3cb62d9a1f3c1830416e54b9a537026640..3f40dd1a2053a6cb5a202c82085fe3c51afda898 100644
--- a/entity/Document_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/Document_entity/recordcontainers/jdito/onInsert.js
@@ -1,3 +1,4 @@
+import("Workflow_lib");
 import("system.db");
 import("system.vars");
 import("Document_lib");
@@ -21,3 +22,5 @@ if(bindata != '' && filename != ''){
         bindata, filename, description, keyword, alias, id);
     
 }
+
+WorkflowSignalSender.inserted();
\ No newline at end of file
diff --git a/entity/Document_entity/recordcontainers/jdito/onUpdate.js b/entity/Document_entity/recordcontainers/jdito/onUpdate.js
index 322511925adce14197428d398bd53320f3bd3d14..a4b360c42e9aa648f78c5a03e10b7d2b7e153629 100644
--- a/entity/Document_entity/recordcontainers/jdito/onUpdate.js
+++ b/entity/Document_entity/recordcontainers/jdito/onUpdate.js
@@ -1,3 +1,4 @@
+import("Workflow_lib");
 import("system.vars");
 import("system.db");
 import("Document_lib");
@@ -22,4 +23,6 @@ if(vars.get("$field.IS_MAIN_DOCUMENT") == '1') {
 if(bindata != '')
     db.updateBinary(id, parentId, bindata, fileName, description, keyword, alias);
 else
-    db.updateBinaryMetadata(id, parentId, fileName, description, keyword, alias);
\ No newline at end of file
+    db.updateBinaryMetadata(id, parentId, fileName, description, keyword, alias);
+
+WorkflowSignalSender.updated();
\ No newline at end of file
diff --git a/entity/DuplicateScannerResultFieldConfig_entity/DuplicateScannerResultFieldConfig_entity.aod b/entity/DuplicateScannerResultFieldConfig_entity/DuplicateScannerResultFieldConfig_entity.aod
index 3297b0d171e13e5fdf8358941a420a4d3d65ca35..b336a59f809d6d5834741fc16f8a6034815597b2 100644
--- a/entity/DuplicateScannerResultFieldConfig_entity/DuplicateScannerResultFieldConfig_entity.aod
+++ b/entity/DuplicateScannerResultFieldConfig_entity/DuplicateScannerResultFieldConfig_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>DuplicateScannerResultFieldConfig_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <recordContainer>recordContainer</recordContainer>
@@ -58,17 +58,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>recordContainer</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/DuplicateScannerResultFieldConfig_entity/recordcontainers/recordcontainer/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>f7126f94-9e4c-46a0-8dc9-9e52fda1c7c0</name>
-          <tableName>DUPLICATESCANNERRESULTFIELDCONFIG</tableName>
-          <primaryKey>ID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>DATE_EDIT.value</name>
@@ -99,6 +90,15 @@
           <recordfield>DUPLICATESCANNERRESULTFIELDCONFIG.DUPLICATESCANNER_ID</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>f7126f94-9e4c-46a0-8dc9-9e52fda1c7c0</name>
+          <tableName>DUPLICATESCANNERRESULTFIELDCONFIG</tableName>
+          <primaryKey>ID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/DuplicateScanner_entity/DuplicateScanner_entity.aod b/entity/DuplicateScanner_entity/DuplicateScanner_entity.aod
index fb343c9aa35db6794cf56f61fb5920617e799a91..34fb0577dfe0c9ee42cc2f58458267359bd8f094 100644
--- a/entity/DuplicateScanner_entity/DuplicateScanner_entity.aod
+++ b/entity/DuplicateScanner_entity/DuplicateScanner_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>DuplicateScanner_entity</name>
+  <title>Duplicate Configuration</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/DuplicateScanner_entity/documentation.adoc</documentation>
-  <title>Duplicate Configuration</title>
   <grantCreate v="false" />
   <grantCreateProcess>%aditoprj%/entity/DuplicateScanner_entity/grantCreateProcess.js</grantCreateProcess>
   <grantDelete v="false" />
@@ -31,7 +31,6 @@
       <name>EXTERNAL_SERVICE_USAGE_ALLOWED</name>
       <title>Use external Scanservice</title>
       <contentType>BOOLEAN</contentType>
-      <dropDownProcess>%aditoprj%/entity/DuplicateScanner_entity/entityfields/external_service_usage_allowed/dropDownProcess.js</dropDownProcess>
       <valueProcess>%aditoprj%/entity/DuplicateScanner_entity/entityfields/external_service_usage_allowed/valueProcess.js</valueProcess>
     </entityField>
     <entityActionGroup>
@@ -110,19 +109,10 @@
   <recordContainers>
     <dbRecordContainer>
       <name>DBRecordContainer</name>
-      <alias>Data_alias</alias>
       <onDBInsert>%aditoprj%/entity/DuplicateScanner_entity/recordcontainers/dbrecordcontainer/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/DuplicateScanner_entity/recordcontainers/dbrecordcontainer/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/DuplicateScanner_entity/recordcontainers/dbrecordcontainer/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>b61b26d3-e823-45ba-9ac5-12acaaa1ec15</name>
-          <tableName>DUPLICATESCANNER</tableName>
-          <primaryKey>ID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>ENTITY_TO_SCAN_NAME.value</name>
@@ -165,6 +155,15 @@
           <recordfield>DUPLICATESCANNER.SCAN_PATTERN</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>b61b26d3-e823-45ba-9ac5-12acaaa1ec15</name>
+          <tableName>DUPLICATESCANNER</tableName>
+          <primaryKey>ID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/DuplicateScanner_entity/entityfields/external_service_usage_allowed/dropDownProcess.js b/entity/DuplicateScanner_entity/entityfields/external_service_usage_allowed/dropDownProcess.js
deleted file mode 100644
index b88d5392d1a40aa827f90e9dfcdd26303c4b1baa..0000000000000000000000000000000000000000
--- a/entity/DuplicateScanner_entity/entityfields/external_service_usage_allowed/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-     ["1", translate.text("Yes")]
-    ,["0", translate.text("No")]
-]);
\ No newline at end of file
diff --git a/entity/DuplicatesUnrelated_entity/DuplicatesUnrelated_entity.aod b/entity/DuplicatesUnrelated_entity/DuplicatesUnrelated_entity.aod
index eb93c9ccc92f196b47836d66919105f669b6e984..7d2241b72c2014a236b28f81f3f8a49060a1f768 100644
--- a/entity/DuplicatesUnrelated_entity/DuplicatesUnrelated_entity.aod
+++ b/entity/DuplicatesUnrelated_entity/DuplicatesUnrelated_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>DuplicatesUnrelated_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/DuplicatesUnrelated_entity/documentation.adoc</documentation>
diff --git a/entity/Duplicates_entity/Duplicates_entity.aod b/entity/Duplicates_entity/Duplicates_entity.aod
index 54ee932a3235f4e127feeb5112c9c11e3e7f2e47..fe9a19485083c678b01823430ae02631da122683 100644
--- a/entity/Duplicates_entity/Duplicates_entity.aod
+++ b/entity/Duplicates_entity/Duplicates_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Duplicates_entity</name>
+  <title>Duplicates</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Duplicates_entity/documentation.adoc</documentation>
-  <title>Duplicates</title>
   <siblings>
     <element>DuplicatesUnrelated_entity</element>
   </siblings>
@@ -54,8 +54,8 @@
         </entityParameter>
         <entityParameter>
           <name>ClusterId_param</name>
-          <title></title>
           <valueProcess>%aditoprj%/entity/Duplicates_entity/entityfields/selfpersonduplicatesconsumer/children/clusterid_param/valueProcess.js</valueProcess>
+          <title></title>
         </entityParameter>
       </children>
     </entityConsumer>
diff --git a/entity/Email_entity/Email_entity.aod b/entity/Email_entity/Email_entity.aod
index 73da7f79012e6ebb9435ada80d688952aa713aef..852de0f302412a156749687e8310926281b57465 100644
--- a/entity/Email_entity/Email_entity.aod
+++ b/entity/Email_entity/Email_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Email_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Email_entity/documentation.adoc</documentation>
@@ -29,6 +29,11 @@
     </entityField>
     <entityConsumer>
       <name>DocumentTemplates</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>DocumentTemplate_entity</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>DocumentTemplateType_param</name>
@@ -43,11 +48,6 @@
           <valueProcess>%aditoprj%/entity/Email_entity/entityfields/documenttemplates/children/documenttemplatetypeclassification_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>DocumentTemplate_entity</entityName>
-        <fieldName>#PROVIDER</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>Recipient_param</name>
@@ -65,17 +65,17 @@
     </entityField>
     <entityConsumer>
       <name>EmailAddresses</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Communication_entity</entityName>
+        <fieldName>EmailCommunications</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
           <valueProcess>%aditoprj%/entity/Email_entity/entityfields/emailaddresses/children/contactid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Communication_entity</entityName>
-        <fieldName>EmailCommunications</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>ContactId_param</name>
diff --git a/entity/EmployeeRole_entity/EmployeeRole_entity.aod b/entity/EmployeeRole_entity/EmployeeRole_entity.aod
index 8bf5d69b2368ae1236e0d8eedd86745dbfa9927f..74475d9d45b11c221626176f114da280cd1c5fc4 100644
--- a/entity/EmployeeRole_entity/EmployeeRole_entity.aod
+++ b/entity/EmployeeRole_entity/EmployeeRole_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>EmployeeRole_entity</name>
+  <title>Role</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/EmployeeRole_entity/documentation.adoc</documentation>
-  <title>Role</title>
   <grantUpdate v="false" />
   <titlePlural>Roles</titlePlural>
   <recordContainer>jdito</recordContainer>
diff --git a/entity/EmployeeToken_entity/EmployeeToken_entity.aod b/entity/EmployeeToken_entity/EmployeeToken_entity.aod
index 0303a7a0bc5d1bd5989b3bdc68d335f64e921ad4..bb7b9740621ddec0a55a5603a430d09a1a83b760 100644
--- a/entity/EmployeeToken_entity/EmployeeToken_entity.aod
+++ b/entity/EmployeeToken_entity/EmployeeToken_entity.aod
@@ -1,8 +1,8 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>EmployeeToken_entity</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
   <title>User token</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
   <titlePlural>User tokens</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -85,17 +85,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>_____SYSTEMALIAS</alias>
       <conditionProcess>%aditoprj%/entity/EmployeeToken_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>98f70a7c-4e43-4984-ad69-44339150f1ee</name>
-          <tableName>ASYS_USERTOKEN</tableName>
-          <primaryKey>ID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>_____SYSTEMALIAS</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>ID.value</name>
@@ -126,6 +117,15 @@
           <recordfield>ASYS_USERTOKEN.VALID</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>98f70a7c-4e43-4984-ad69-44339150f1ee</name>
+          <tableName>ASYS_USERTOKEN</tableName>
+          <primaryKey>ID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/Employee_entity/Employee_entity.aod b/entity/Employee_entity/Employee_entity.aod
index bc177161e353ecb38734875ad1d1cd060f5cbf73..bfd8058aad0b247a60cbaa1f25a8ffe947c08eb4 100644
--- a/entity/Employee_entity/Employee_entity.aod
+++ b/entity/Employee_entity/Employee_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Employee_entity</name>
+  <title>Employee</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Employee_entity/documentation.adoc</documentation>
-  <title>Employee</title>
   <siblings />
   <grantDeleteProcess>%aditoprj%/entity/Employee_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/Employee_entity/contentTitleProcess.js</contentTitleProcess>
@@ -14,6 +14,27 @@
   <titlePlural>Employees</titlePlural>
   <recordContainer>jdito</recordContainer>
   <entityFields>
+    <entityActionGroup>
+      <name>observeActionGroup</name>
+      <children>
+        <entityActionField>
+          <name>observe</name>
+          <title>Observe</title>
+          <onActionProcess>%aditoprj%/entity/Employee_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js</onActionProcess>
+          <isObjectAction v="true" />
+          <iconId>VAADIN:EYE</iconId>
+          <stateProcess>%aditoprj%/entity/Employee_entity/entityfields/observeactiongroup/children/observe/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Employee_entity/entityfields/observeactiongroup/children/observe/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>cancelObservation</name>
+          <onActionProcess>%aditoprj%/entity/Employee_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:EYE_SLASH</iconId>
+          <stateProcess>%aditoprj%/entity/Employee_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Employee_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
     <entityProvider>
       <name>#PROVIDER</name>
       <lookupIdfield>CONTACT_ID</lookupIdfield>
@@ -265,8 +286,14 @@
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
-          <name>e9a775ab-e63d-493d-94dc-6b27dfb77173</name>
-          <entityName>DistrictResponsible_entity</entityName>
+          <name>7e6bff46-4047-49da-a5ef-40510a8255a2</name>
+          <entityName>VisitRecommendation_entity</entityName>
+          <fieldName>Employees</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>14d61385-28fb-40b2-a31a-a5764a8da2f0</name>
+          <entityName>VisitPlanEmployeeWeek_entity</entityName>
           <fieldName>Employees</fieldName>
           <isConsumer v="false" />
         </entityDependency>
@@ -325,6 +352,12 @@
           <fieldName>Employees</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>c83ebe7a-5a3b-49ed-b40c-d667bb72f268</name>
+          <entityName>Observation_entity</entityName>
+          <fieldName>Users</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
     </entityProvider>
     <entityProvider>
diff --git a/entity/Employee_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js b/entity/Employee_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..35102b677cbb52d1d4a9723a42cceaef3fd5ea03
--- /dev/null
+++ b/entity/Employee_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.cancelAction();
\ No newline at end of file
diff --git a/entity/Employee_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js b/entity/Employee_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a0350f5edebe397b96a84766e7cdb8d99f77ee5
--- /dev/null
+++ b/entity/Employee_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Employee_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js b/entity/Employee_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..87553a373a055879a524774695e4c18bcab617e9
--- /dev/null
+++ b/entity/Employee_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("Observation_lib");
+
+result.string(Observation.cancelActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Employee_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js b/entity/Employee_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..66cf7bc2991c142ee0753fec88e151d3dcf71141
--- /dev/null
+++ b/entity/Employee_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.insertAction();
\ No newline at end of file
diff --git a/entity/Employee_entity/entityfields/observeactiongroup/children/observe/stateProcess.js b/entity/Employee_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..461276ea5e1e98e967047207ac6d654225a1b1c6
--- /dev/null
+++ b/entity/Employee_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (!Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Employee_entity/entityfields/observeactiongroup/children/observe/titleProcess.js b/entity/Employee_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..abdfbd3d7c4aff7beba9ff22cbb39abc8d195a30
--- /dev/null
+++ b/entity/Employee_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Observation_lib");
+import("system.vars");
+
+result.string(Observation.observeActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Employee_entity/recordcontainers/jdito/onInsert.js b/entity/Employee_entity/recordcontainers/jdito/onInsert.js
index 4ad2125ac50b2285f7a4b9e73c205c510004b7e1..fef358b7702ec286242ecb653dcbf02309db38b3 100644
--- a/entity/Employee_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/Employee_entity/recordcontainers/jdito/onInsert.js
@@ -1,30 +1,30 @@
-import("Workflow_lib");
-import("system.neon");
-import("system.vars");
-import("system.tools");
-import("Employee_lib");
-
-var rowdata = vars.get("$local.rowdata");
-
-var user = {};
-var params = []; //this has to be an array
-params[tools.EMAIL] = rowdata["EMAIL_ADDRESS.value"];
-params[tools.CALENDARID] = rowdata["EMAIL_ADDRESS.value"];
-params[tools.DESCRIPTION] = rowdata["DESCRIPTION.value"];
-params[tools.CONTACTID] = rowdata["CONTACT_ID.value"];
-params[tools.FIRSTNAME] = rowdata["FIRSTNAME.value"];
-params[tools.LASTNAME] = rowdata["LASTNAME.value"];
-params[tools.ISACTIVE] = rowdata["ISACTIVE.value"];
-params.department = rowdata["DEPARTMENT.value"];
-params[tools.PHONE_ADDRESS] = rowdata["PHONE_ADDRESS.value"];
-
-user[tools.TITLE] = rowdata["TITLE.value"];
-user[tools.PARAMS] = params;
-
-if (rowdata["PASSWORD.value"] && rowdata["PASSWORD.value"] == rowdata["CONFIRM_PASSWORD.value"])
-{
-    user[tools.PASSWORD] = rowdata["PASSWORD.value"];
-}
-tools.insertUser(user, rowdata["UID.value"]);
-
+import("Workflow_lib");
+import("system.neon");
+import("system.vars");
+import("system.tools");
+import("Employee_lib");
+
+var rowdata = vars.get("$local.rowdata");
+
+var user = {};
+var params = []; //this has to be an array
+params[tools.EMAIL] = rowdata["EMAIL_ADDRESS.value"];
+params[tools.CALENDARID] = rowdata["EMAIL_ADDRESS.value"];
+params[tools.DESCRIPTION] = rowdata["DESCRIPTION.value"];
+params[tools.CONTACTID] = rowdata["CONTACT_ID.value"];
+params[tools.FIRSTNAME] = rowdata["FIRSTNAME.value"];
+params[tools.LASTNAME] = rowdata["LASTNAME.value"];
+params[tools.ISACTIVE] = rowdata["ISACTIVE.value"];
+params.department = rowdata["DEPARTMENT.value"];
+params[tools.PHONE_ADDRESS] = rowdata["PHONE_ADDRESS.value"];
+
+user[tools.TITLE] = rowdata["TITLE.value"];
+user[tools.PARAMS] = params;
+
+if (rowdata["PASSWORD.value"] && rowdata["PASSWORD.value"] == rowdata["CONFIRM_PASSWORD.value"])
+{
+    user[tools.PASSWORD] = rowdata["PASSWORD.value"];
+}
+tools.insertUser(user, rowdata["UID.value"]);
+
 WorkflowSignalSender.inserted();
\ No newline at end of file
diff --git a/entity/EwsSyncAddContacts_entity/EwsSyncAddContacts_entity.aod b/entity/EwsSyncAddContacts_entity/EwsSyncAddContacts_entity.aod
new file mode 100644
index 0000000000000000000000000000000000000000..332169d840fba95e4b9a7507ede82835e4fda87e
--- /dev/null
+++ b/entity/EwsSyncAddContacts_entity/EwsSyncAddContacts_entity.aod
@@ -0,0 +1,62 @@
+<?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.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
+  <name>EwsSyncAddContacts_entity</name>
+  <title>add  contact to ewssync</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <titlePlural></titlePlural>
+  <recordContainer>datalessConfig</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+    </entityProvider>
+    <entityProvider>
+      <name>#PROVIDER_AGGREGATES</name>
+      <useAggregates v="true" />
+    </entityProvider>
+    <entityField>
+      <name>contactIds</name>
+      <state>EDITABLE</state>
+      <valueProcess>%aditoprj%/entity/EwsSyncAddContacts_entity/entityfields/contactids/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>countForSync</name>
+      <title>count</title>
+      <state>EDITABLE</state>
+      <valueProcess>%aditoprj%/entity/EwsSyncAddContacts_entity/entityfields/countforsync/valueProcess.js</valueProcess>
+    </entityField>
+    <entityParameter>
+      <name>ContactFilter_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityParameter>
+      <name>ContactIds_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityActionField>
+      <name>syncContacts</name>
+      <title>add to sync</title>
+      <onActionProcess>%aditoprj%/entity/EwsSyncAddContacts_entity/entityfields/synccontacts/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:REFRESH</iconId>
+      <stateProcess>%aditoprj%/entity/EwsSyncAddContacts_entity/entityfields/synccontacts/stateProcess.js</stateProcess>
+      <tooltip></tooltip>
+    </entityActionField>
+    <entityParameter>
+      <name>Mode_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityActionField>
+      <name>removeSyncContacts</name>
+      <title>remove from sync</title>
+      <onActionProcess>%aditoprj%/entity/EwsSyncAddContacts_entity/entityfields/removesynccontacts/onActionProcess.js</onActionProcess>
+      <isObjectAction v="true" />
+      <iconId>NEON:RECURRING_APPOINTMENT_MOVED</iconId>
+      <stateProcess>%aditoprj%/entity/EwsSyncAddContacts_entity/entityfields/removesynccontacts/stateProcess.js</stateProcess>
+    </entityActionField>
+  </entityFields>
+  <recordContainers>
+    <datalessRecordContainer>
+      <name>datalessConfig</name>
+      <alias>Data_alias</alias>
+    </datalessRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/EwsSyncAddContacts_entity/entityfields/contactids/valueProcess.js b/entity/EwsSyncAddContacts_entity/entityfields/contactids/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..373f61e18faccaead7724225f920d46437148b77
--- /dev/null
+++ b/entity/EwsSyncAddContacts_entity/entityfields/contactids/valueProcess.js
@@ -0,0 +1,10 @@
+import("system.result");
+import("system.vars");
+import("FilterViewAction_lib");
+
+var contactIds = JSON.parse(vars.get("$param.ContactIds_param"));
+var contactFilter = vars.get("$param.ContactFilter_param");
+
+contactIds = FilterViewActionUtils.getUidsBySelectionOrFilter("Person", contactIds, contactFilter);
+
+result.string(JSON.stringify(contactIds));
\ No newline at end of file
diff --git a/entity/EwsSyncAddContacts_entity/entityfields/countforsync/valueProcess.js b/entity/EwsSyncAddContacts_entity/entityfields/countforsync/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4d01818ca409c8b5746f74b408c7b4456931abe8
--- /dev/null
+++ b/entity/EwsSyncAddContacts_entity/entityfields/countforsync/valueProcess.js
@@ -0,0 +1,10 @@
+import("system.vars");
+import("system.result");
+
+var res = "";
+if (vars.get("$field.contactIds"))
+{
+    res = JSON.parse(vars.getString("$field.contactIds")).length;
+}
+
+result.string(res);
diff --git a/entity/EwsSyncAddContacts_entity/entityfields/removesynccontacts/onActionProcess.js b/entity/EwsSyncAddContacts_entity/entityfields/removesynccontacts/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b0a2ce611876352836e323dcd13a38cc97f0a718
--- /dev/null
+++ b/entity/EwsSyncAddContacts_entity/entityfields/removesynccontacts/onActionProcess.js
@@ -0,0 +1,8 @@
+import("system.neon");
+import("system.tools");
+import("EwsClientSync_lib");
+import("system.vars");
+
+var contactIds = JSON.parse(vars.get("$field.contactIds"));
+EwsClientSyncUtils.removeFromFavorite(contactIds, tools.getCurrentUser()[tools.NAME]);
+neon.closeImage(vars.get("$sys.currentimage"), true);
\ No newline at end of file
diff --git a/entity/EwsSyncAddContacts_entity/entityfields/removesynccontacts/stateProcess.js b/entity/EwsSyncAddContacts_entity/entityfields/removesynccontacts/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7ae3eef9a8407cd8e4edaee71f77b14a6c233d03
--- /dev/null
+++ b/entity/EwsSyncAddContacts_entity/entityfields/removesynccontacts/stateProcess.js
@@ -0,0 +1,11 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+var mode = vars.get("$param.Mode_param");
+var ret = neon.COMPONENTSTATE_INVISIBLE; 
+
+if(mode == "REMOVE")
+    ret = neon.COMPONENTSTATE_EDITABLE;
+
+result.string(ret);
diff --git a/entity/EwsSyncAddContacts_entity/entityfields/synccontacts/onActionProcess.js b/entity/EwsSyncAddContacts_entity/entityfields/synccontacts/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..34578d4b676914a1e2aa7b8ec83e9277bd82aea1
--- /dev/null
+++ b/entity/EwsSyncAddContacts_entity/entityfields/synccontacts/onActionProcess.js
@@ -0,0 +1,9 @@
+import("system.neon");
+import("EwsClientSync_lib");
+import("system.vars");
+
+var toSncContacts = JSON.parse(vars.get("$field.contactIds"));
+
+//the handling of already Contacts in the Exchange is handeled by the function itself
+EwsClientSyncUtils.addToEwsFavorite(toSncContacts);
+neon.closeImage(vars.get("$sys.currentimage"), true);
\ No newline at end of file
diff --git a/entity/EwsSyncAddContacts_entity/entityfields/synccontacts/stateProcess.js b/entity/EwsSyncAddContacts_entity/entityfields/synccontacts/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c10e581fee4f5e13e064bbbb4a8faa11c9470aa3
--- /dev/null
+++ b/entity/EwsSyncAddContacts_entity/entityfields/synccontacts/stateProcess.js
@@ -0,0 +1,11 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+var mode = vars.get("$param.Mode_param");
+var ret = neon.COMPONENTSTATE_INVISIBLE; 
+
+if(mode == "ADD")
+    ret = neon.COMPONENTSTATE_EDITABLE;
+
+result.string(ret);
diff --git a/entity/ExportTemplateField_entity/ExportTemplateField_entity.aod b/entity/ExportTemplateField_entity/ExportTemplateField_entity.aod
index ae07c537a21b1bfa942f26a14123b266163f17b2..dc20a3f5bb9bec0c61d420246445af1ee6a8d848 100644
--- a/entity/ExportTemplateField_entity/ExportTemplateField_entity.aod
+++ b/entity/ExportTemplateField_entity/ExportTemplateField_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>ExportTemplateField_entity</name>
+  <title>Export Template Field</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/ExportTemplateField_entity/documentation.adoc</documentation>
-  <title>Export Template Field</title>
   <titlePlural>Export Template Fields</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -62,20 +62,11 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <isPageable v="true" />
       <isReadOnly v="false" />
       <conditionProcess>%aditoprj%/entity/ExportTemplateField_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/ExportTemplateField_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>7236de85-f623-4f6a-9ff5-d9014a2f7a4c</name>
-          <tableName>EXPORTTEMPLATEFIELD</tableName>
-          <primaryKey>EXPORTTEMPLATEFIELDID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>EXPORTTEMPLATE_ID.value</name>
@@ -94,6 +85,15 @@
           <recordfield>EXPORTTEMPLATEFIELD.SORTING</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>7236de85-f623-4f6a-9ff5-d9014a2f7a4c</name>
+          <tableName>EXPORTTEMPLATEFIELD</tableName>
+          <primaryKey>EXPORTTEMPLATEFIELDID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/ExportTemplatePlaceOfUse_entity/ExportTemplatePlaceOfUse_entity.aod b/entity/ExportTemplatePlaceOfUse_entity/ExportTemplatePlaceOfUse_entity.aod
index 91964c2b417efeb73c0e5c094a61fa6b57efe915..7689336446e654e8fe6101f83224fe07f7d6728c 100644
--- a/entity/ExportTemplatePlaceOfUse_entity/ExportTemplatePlaceOfUse_entity.aod
+++ b/entity/ExportTemplatePlaceOfUse_entity/ExportTemplatePlaceOfUse_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>ExportTemplatePlaceOfUse_entity</name>
+  <title>Place of Use</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/documentation.adoc</documentation>
-  <title>Place of Use</title>
   <titlePlural>Places of Usage</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -32,6 +32,11 @@
     </entityField>
     <entityConsumer>
       <name>ContextExportTemplatePlaceOfUse</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Context_entity</entityName>
+        <fieldName>ContextTemplatePlaceOfUse</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>InvertBlacklist_param</name>
@@ -42,11 +47,6 @@
           <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/contextexporttemplateplaceofuse/children/blacklist_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Context_entity</entityName>
-        <fieldName>ContextTemplatePlaceOfUse</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>ExportTemplatePlaceOfUse_param</name>
@@ -55,12 +55,6 @@
     <entityProvider>
       <name>ExportTemplatePlaceOfUser</name>
       <documentation>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuser/documentation.adoc</documentation>
-      <children>
-        <entityParameter>
-          <name>ExportTemplatePlaceOfUse_param</name>
-          <expose v="true" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>c60a238a-51f0-4538-8c53-6921481ddd4c</name>
@@ -69,6 +63,12 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>ExportTemplatePlaceOfUse_param</name>
+          <expose v="true" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityProvider>
       <name>#PROVIDER_AGGREGATES</name>
@@ -78,17 +78,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>5e6f806e-c845-49ab-bfee-31b12e4c41f3</name>
-          <tableName>EXPORTTEMPLATEPLACEOFUSE</tableName>
-          <primaryKey>EXPORTTEMPLATEPLACEOFUSEID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>EXPORTTEMPLATE_ID.value</name>
@@ -103,6 +94,15 @@
           <recordfield>EXPORTTEMPLATEPLACEOFUSE.PLACEOFUSE</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>5e6f806e-c845-49ab-bfee-31b12e4c41f3</name>
+          <tableName>EXPORTTEMPLATEPLACEOFUSE</tableName>
+          <primaryKey>EXPORTTEMPLATEPLACEOFUSEID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/ExportTemplateSelection_entity/ExportTemplateSelection_entity.aod b/entity/ExportTemplateSelection_entity/ExportTemplateSelection_entity.aod
index 2840322c0f7c58e64da8ab5f42cd09ded6c47426..f68f881f9ad028080e6c7a3d2e1bff49295b9e88 100644
--- a/entity/ExportTemplateSelection_entity/ExportTemplateSelection_entity.aod
+++ b/entity/ExportTemplateSelection_entity/ExportTemplateSelection_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>ExportTemplateSelection_entity</name>
+  <title>Exporttempalte Selection</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/ExportTemplateSelection_entity/documentation.adoc</documentation>
-  <title>Exporttempalte Selection</title>
   <contentTitleProcess>%aditoprj%/entity/ExportTemplateSelection_entity/contentTitleProcess.js</contentTitleProcess>
   <recordContainer>datalessRecordContainer</recordContainer>
   <entityFields>
diff --git a/entity/ExportTemplate_entity/ExportTemplate_entity.aod b/entity/ExportTemplate_entity/ExportTemplate_entity.aod
index 65ba57734b719cca9d227313c6557010d0812147..8fbadb06e1dd4ca130d3f21172629c2c4031a2db 100644
--- a/entity/ExportTemplate_entity/ExportTemplate_entity.aod
+++ b/entity/ExportTemplate_entity/ExportTemplate_entity.aod
@@ -1,10 +1,10 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>ExportTemplate_entity</name>
+  <title>Export Template</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/ExportTemplate_entity/documentation.adoc</documentation>
   <icon>NEON:EXPORT</icon>
-  <title>Export Template</title>
   <grantCreate v="true" />
   <grantUpdate v="true" />
   <grantDelete v="true" />
@@ -74,6 +74,11 @@
     <entityConsumer>
       <name>ExportTemplateFields</name>
       <state>EDITABLE</state>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ExportTemplateField_entity</entityName>
+        <fieldName>ExportTemplateFields</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ExportTemplateField_param</name>
@@ -82,11 +87,6 @@
           <documentation>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplatefield_param/documentation.adoc</documentation>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>ExportTemplateField_entity</entityName>
-        <fieldName>ExportTemplateFields</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>ExportTemplateIDs_param</name>
@@ -95,6 +95,11 @@
     </entityParameter>
     <entityConsumer>
       <name>ExportTemplateplaceOfUseCon</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ExportTemplatePlaceOfUse_entity</entityName>
+        <fieldName>ExportTemplatePlaceOfUser</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ExportTemplatePlaceOfUse_param</name>
@@ -102,23 +107,11 @@
           <expose v="true" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>ExportTemplatePlaceOfUse_entity</entityName>
-        <fieldName>ExportTemplatePlaceOfUser</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>ExportTemplateIDs</name>
       <documentation>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplateids/documentation.adoc</documentation>
       <recordContainer>db</recordContainer>
-      <children>
-        <entityParameter>
-          <name>ExportTemplateIDs_param</name>
-          <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplateids/children/exporttemplateids_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>1b692618-b800-47ae-a48c-3d4164d68401</name>
@@ -127,6 +120,13 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>ExportTemplateIDs_param</name>
+          <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplateids/children/exporttemplateids_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityParameter>
       <name>comingFrom_param</name>
@@ -165,19 +165,10 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <isReadOnly v="false" />
       <conditionProcess>%aditoprj%/entity/ExportTemplate_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <onDBDelete>%aditoprj%/entity/ExportTemplate_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>ce410f40-846b-43e6-9c30-150393cee43d</name>
-          <tableName>EXPORTTEMPLATE</tableName>
-          <primaryKey>EXPORTTEMPLATEID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>DATE_EDIT.value</name>
@@ -238,6 +229,15 @@
           <recordfield>EXPORTTEMPLATE.FIELDDELIMITER</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>ce410f40-846b-43e6-9c30-150393cee43d</name>
+          <tableName>EXPORTTEMPLATE</tableName>
+          <primaryKey>EXPORTTEMPLATEID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
       <filterExtensions>
         <filterExtension>
           <name>Favorite_filter</name>
diff --git a/entity/ExportTemplate_entity/entityfields/openadminview/onActionProcess.js b/entity/ExportTemplate_entity/entityfields/openadminview/onActionProcess.js
index 34ed41f947d2483b4ed77b2b949dcc8d435338be..a19f58f080757e5cb8ad9f147beee77a0edb6258 100644
--- a/entity/ExportTemplate_entity/entityfields/openadminview/onActionProcess.js
+++ b/entity/ExportTemplate_entity/entityfields/openadminview/onActionProcess.js
@@ -1,4 +1,9 @@
 import("system.vars");
 import("Context_lib");
 
-AdminViewUtils.open("EXPORTTEMPLATEID", ["DATE_NEW", "DATE_EDIT", "USER_NEW", "USER_EDIT"]);
\ No newline at end of file
+AdminViewUtils.open("EXPORTTEMPLATEID", [
+    ["DATE_NEW", vars.get("$field.DATE_NEW"), "DATE"],
+    ["DATE_EDIT", vars.get("$field.DATE_EDIT"), "DATE"],
+    ["USER_NEW", vars.get("$field.USER_NEW"), "DATE"],
+    ["USER_EDIT", vars.get("$field.USER_EDIT"), "DATE"]
+]);
\ No newline at end of file
diff --git a/entity/ExportTemplate_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js b/entity/ExportTemplate_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
index 27c569099821e96f51c9ab7e3e5c7a6db87d6e09..57784ebda7e75d58197542d071b5afb2a61cc74e 100644
--- a/entity/ExportTemplate_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
+++ b/entity/ExportTemplate_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
@@ -1,11 +1,12 @@
+import("system.vars");
 import("Favorites_lib");
 import("system.result");
 import("Sql_lib");
 
-var favoFilterCond = newWhere();
-var rowIds = FavoritesUtil.getRowIdsOfFavoriteGroup();
+var operator = vars.get("$local.operator");
+var rawvalue = vars.get("$local.rawvalue");
 
-for(i = 0; i < rowIds.length; i++)
-    favoFilterCond.or("EXPORTTEMPLATE.EXPORTTEMPLATEID", rowIds[i], SqlBuilder.EQUAL());
+var objecttype = vars.get("$field.EXPORTTEMPLATE_OBJECTTYPE");
+var idcolumn = "EXPORTTEMPLATE.EXPORTTEMPLATEID";
 
-result.string(favoFilterCond.toString());
\ No newline at end of file
+result.string(FavoritesUtil.getFilterDisplayCondition(objecttype, operator, rawvalue, idcolumn));
\ No newline at end of file
diff --git a/entity/Favorite_entity/Favorite_entity.aod b/entity/Favorite_entity/Favorite_entity.aod
index bb5ba3f508b3c517b43af5aa949aee70a4a19e76..1e0fbcad30170f3fe30ea9dcfa810ab10bef515a 100644
--- a/entity/Favorite_entity/Favorite_entity.aod
+++ b/entity/Favorite_entity/Favorite_entity.aod
@@ -1,10 +1,10 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Favorite_entity</name>
+  <title>Favorite</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Favorite_entity/documentation.adoc</documentation>
   <icon>VAADIN:STAR</icon>
-  <title>Favorite</title>
   <siblings>
     <element>Organisation_entity</element>
   </siblings>
diff --git a/entity/Favorite_entity/recordcontainers/jditorecordcontainer/contentProcess.js b/entity/Favorite_entity/recordcontainers/jditorecordcontainer/contentProcess.js
index 1c6923b2958dfd7578394cc3a7bd2a7374d19846..b352d8c4163bbba3d533aa5d431fafa1b7393106 100644
--- a/entity/Favorite_entity/recordcontainers/jditorecordcontainer/contentProcess.js
+++ b/entity/Favorite_entity/recordcontainers/jditorecordcontainer/contentProcess.js
@@ -72,14 +72,17 @@ else
 
 function isFiltered(filters, logicalConnectionOperator, fav)
 {
-    if(filters == null || filters.length == 0)
-        return true;
-    
     var favoObjectType = fav[3];
     var favoGroupName = fav[1];
     var favoRowId = fav[5];
     var favoTitle = fav[6];
     
+    if(favoGroupName.equals("ewssync"))
+        return false;
+    
+    if(filters == null || filters.length == 0)
+        return true;
+    
     var allFilterFulfilled = true;
     var oneFilterFulfilled = false;
     
diff --git a/entity/Favorite_entity/recordcontainers/jditorecordcontainer/filterextensions/groupgroupnameextension/filterValuesProcess.js b/entity/Favorite_entity/recordcontainers/jditorecordcontainer/filterextensions/groupgroupnameextension/filterValuesProcess.js
index f8a6e1919db15f11b8913cd741da51ba6a20c580..6f1d13dcff60b1ece1854c154836485c3ed906a1 100644
--- a/entity/Favorite_entity/recordcontainers/jditorecordcontainer/filterextensions/groupgroupnameextension/filterValuesProcess.js
+++ b/entity/Favorite_entity/recordcontainers/jditorecordcontainer/filterextensions/groupgroupnameextension/filterValuesProcess.js
@@ -12,10 +12,13 @@ var groupNames = (new SqlBuilder()).selectDistinct("ASYS_RECORDGROUP.TITLE")
                         .arrayColumn();
                         
 groupNames.forEach(element => {
-    if(element.equals("Default"))
-       allTypes.push([element, translate.text(element)]);
-    else
-       allTypes.push([element, element]); 
+    if(!element.equals("ewssync"))
+    {
+        if(element.equals("Default"))
+           allTypes.push([element, translate.text(element)]);
+        else
+           allTypes.push([element, element]); 
+    }
 });
 
 result.object(Array.from(allTypes));
diff --git a/entity/Forecast_entity/Forecast_entity.aod b/entity/Forecast_entity/Forecast_entity.aod
index 75fd4c7ae9258a52deeef0b48abc4dc96905bda3..efc66cf89ead6dd57f9d06237f0cac89f56de0f5 100644
--- a/entity/Forecast_entity/Forecast_entity.aod
+++ b/entity/Forecast_entity/Forecast_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Forecast_entity</name>
+  <title>${FORECAST_ENGLISH}</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Forecast_entity/documentation.adoc</documentation>
-  <title>${FORECAST_ENGLISH}</title>
   <titlePlural>Forecasts</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -127,17 +127,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/Forecast_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>920ae11e-ae44-400f-9df0-fa879131a05c</name>
-          <tableName>FORECAST</tableName>
-          <primaryKey>FORECASTID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>DATE_START.value</name>
@@ -180,6 +171,15 @@
           <recordfield>FORECAST.FORECASTID</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>920ae11e-ae44-400f-9df0-fa879131a05c</name>
+          <tableName>FORECAST</tableName>
+          <primaryKey>FORECASTID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/Gender_keyword/Gender_keyword.aod b/entity/Gender_keyword/Gender_keyword.aod
index 6c4c35a17b128754630433e0f0ab1aaec04cc865..17f5aa15fef8b6f6797172f4e04def1e4c823e99 100644
--- a/entity/Gender_keyword/Gender_keyword.aod
+++ b/entity/Gender_keyword/Gender_keyword.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Gender_keyword</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Gender_keyword/documentation.adoc</documentation>
diff --git a/entity/ImportField_Entity/ImportField_Entity.aod b/entity/ImportField_Entity/ImportField_Entity.aod
index cb5bb3fb6434c7a789b8d105cc18d40891bfd3f5..fb47af9cfe9e5cc16060f6155577916e6a0fd57b 100644
--- a/entity/ImportField_Entity/ImportField_Entity.aod
+++ b/entity/ImportField_Entity/ImportField_Entity.aod
@@ -1,8 +1,11 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>ImportField_Entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/ImportField_Entity/documentation.adoc</documentation>
+  <siblings>
+    <element>Leadimport_entity</element>
+  </siblings>
   <grantCreate v="false" />
   <grantDelete v="false" />
   <contentTitleProcess>%aditoprj%/entity/ImportField_Entity/contentTitleProcess.js</contentTitleProcess>
@@ -92,18 +95,9 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/ImportField_Entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/ImportField_Entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>12009263-3fca-4d30-ae79-2f8c0ef20e9e</name>
-          <tableName>IMPORTFIELD</tableName>
-          <primaryKey>IMPORTFIELDID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>DATE_EDIT.value</name>
@@ -142,6 +136,15 @@
           <isLookupFilter v="true" />
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>12009263-3fca-4d30-ae79-2f8c0ef20e9e</name>
+          <tableName>IMPORTFIELD</tableName>
+          <primaryKey>IMPORTFIELDID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/IndexSearchEntity/IndexSearchEntity.aod b/entity/IndexSearchEntity/IndexSearchEntity.aod
index d1274e4307d0d28a5c12f16f123d4ff145671ed4..4cd16dc36dd3f05e50987feed06cd763385031cf 100644
--- a/entity/IndexSearchEntity/IndexSearchEntity.aod
+++ b/entity/IndexSearchEntity/IndexSearchEntity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>IndexSearchEntity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/IndexSearchEntity/documentation.adoc</documentation>
diff --git a/entity/KeywordAttributeRelation_entity/KeywordAttributeRelation_entity.aod b/entity/KeywordAttributeRelation_entity/KeywordAttributeRelation_entity.aod
index 81be338ad3887462424137b8445aaeef00347076..b5a77caf977897ec0e18eeab0f316384718fc55e 100644
--- a/entity/KeywordAttributeRelation_entity/KeywordAttributeRelation_entity.aod
+++ b/entity/KeywordAttributeRelation_entity/KeywordAttributeRelation_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>KeywordAttributeRelation_entity</name>
+  <title>Keyword Attribute Values</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/KeywordAttributeRelation_entity/documentation.adoc</documentation>
-  <title>Keyword Attribute Values</title>
   <titlePlural>Keyword Attribute Values</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -124,19 +124,10 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <isPageable v="false" />
       <isRequireContainerFiltering v="false" />
       <conditionProcess>%aditoprj%/entity/KeywordAttributeRelation_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>8e2938d2-e14b-403b-8ae5-875f70bc3f85</name>
-          <tableName>AB_KEYWORD_ATTRIBUTERELATION</tableName>
-          <primaryKey>AB_KEYWORD_ATTRIBUTERELATIONID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>AB_KEYWORD_ATTRIBUTERELATIONID.value</name>
@@ -171,6 +162,15 @@
           <recordfield>AB_KEYWORD_ATTRIBUTERELATION.LONG_CHAR_VALUE</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>8e2938d2-e14b-403b-8ae5-875f70bc3f85</name>
+          <tableName>AB_KEYWORD_ATTRIBUTERELATION</tableName>
+          <primaryKey>AB_KEYWORD_ATTRIBUTERELATIONID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/KeywordAttributeRelation_entity/entityfields/containername_param/valueProcess.js b/entity/KeywordAttributeRelation_entity/entityfields/containername_param/valueProcess.js
index 77a772ba0e557111e7457572056a741675682979..42e2a5a45c5eb4c5e8ddaaa54013e3ae86c21281 100644
--- a/entity/KeywordAttributeRelation_entity/entityfields/containername_param/valueProcess.js
+++ b/entity/KeywordAttributeRelation_entity/entityfields/containername_param/valueProcess.js
@@ -4,8 +4,9 @@ import("system.vars");
 import("Sql_lib");
 
 var entryId = vars.get("$param.KeywordEntryId_param");
-var containerName = newSelect("AB_KEYWORD_ENTRY.CONTAINER")
+var containerName = newSelect("AB_KEYWORD_CATEGORY.NAME")
                         .from("AB_KEYWORD_ENTRY")
+                        .join("AB_KEYWORD_CATEGORY", "AB_KEYWORD_CATEGORY.AB_KEYWORD_CATEGORYID = AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID")
                         .where("AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID", entryId)
                         .cell();
 
diff --git a/entity/KeywordAttribute_entity/KeywordAttribute_entity.aod b/entity/KeywordAttribute_entity/KeywordAttribute_entity.aod
index 660467e301eb5004b4aca71e1aa786ba5d0df3cc..f323e21738e421a8a016ff2f8baccc78f185722e 100644
--- a/entity/KeywordAttribute_entity/KeywordAttribute_entity.aod
+++ b/entity/KeywordAttribute_entity/KeywordAttribute_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>KeywordAttribute_entity</name>
+  <title>Keyword Attribute</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/KeywordAttribute_entity/documentation.adoc</documentation>
-  <title>Keyword Attribute</title>
   <grantDeleteProcess>%aditoprj%/entity/KeywordAttribute_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/KeywordAttribute_entity/contentTitleProcess.js</contentTitleProcess>
   <iconId>VAADIN:KEY_O</iconId>
@@ -18,12 +18,6 @@
       <name>AB_KEYWORD_ATTRIBUTEID</name>
       <valueProcess>%aditoprj%/entity/KeywordAttribute_entity/entityfields/ab_keyword_attributeid/valueProcess.js</valueProcess>
     </entityField>
-    <entityField>
-      <name>CONTAINER</name>
-      <title>Container</title>
-      <mandatory v="true" />
-      <dropDownProcess>%aditoprj%/entity/KeywordAttribute_entity/entityfields/container/dropDownProcess.js</dropDownProcess>
-    </entityField>
     <entityField>
       <name>NAME</name>
       <title>Name</title>
@@ -86,34 +80,35 @@
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityField>
+      <name>AB_KEYWORD_CATEGORY_ID</name>
+      <title>Keyword Category</title>
+      <consumer>KeywordCategoryConsumer</consumer>
+      <mandatory v="true" />
+      <displayValueProcess>%aditoprj%/entity/KeywordAttribute_entity/entityfields/ab_keyword_category_id/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>KeywordCategoryConsumer</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordCategory_entity</entityName>
+        <fieldName>AllKeywordCategoryProvider</fieldName>
+      </dependency>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <isPageable v="false" />
+      <fromClauseProcess>%aditoprj%/entity/KeywordAttribute_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/KeywordAttribute_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <onDBDelete>%aditoprj%/entity/KeywordAttribute_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>bd113d67-34ab-4708-b0e5-60a44332e6b8</name>
-          <tableName>AB_KEYWORD_ATTRIBUTE</tableName>
-          <primaryKey>AB_KEYWORD_ATTRIBUTEID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>AB_KEYWORD_ATTRIBUTEID.value</name>
           <recordfield>AB_KEYWORD_ATTRIBUTE.AB_KEYWORD_ATTRIBUTEID</recordfield>
         </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>CONTAINER.value</name>
-          <recordfield>AB_KEYWORD_ATTRIBUTE.CONTAINER</recordfield>
-          <isFilterable v="true" />
-          <isLookupFilter v="true" />
-        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>NAME.value</name>
           <recordfield>AB_KEYWORD_ATTRIBUTE.NAME</recordfield>
@@ -130,7 +125,34 @@
           <name>TYPE.displayValue</name>
           <expression>%aditoprj%/entity/KeywordAttribute_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>AB_KEYWORD_CATEGORY_ID.value</name>
+          <recordfield>AB_KEYWORD_ATTRIBUTE.AB_KEYWORD_CATEGORY_ID</recordfield>
+          <isFilterable v="true" />
+          <isLookupFilter v="false" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>AB_KEYWORD_CATEGORY_ID.displayValue</name>
+          <recordfield>AB_KEYWORD_CATEGORY.NAME</recordfield>
+          <columnAlias></columnAlias>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>a59612f2-255c-43df-9046-16f2abbba31d</name>
+          <tableName>AB_KEYWORD_ATTRIBUTE</tableName>
+          <primaryKey>AB_KEYWORD_ATTRIBUTEID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>cd0b7116-15a8-45ec-8455-61fd577f7ee8</name>
+          <tableName>AB_KEYWORD_CATEGORY</tableName>
+          <primaryKey>AB_KEYWORD_CATEGORYID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/KeywordAttribute_entity/entityfields/ab_keyword_category_id/displayValueProcess.js b/entity/KeywordAttribute_entity/entityfields/ab_keyword_category_id/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..89b5e069dfebf45a710ac11a070f173c70d02bc2
--- /dev/null
+++ b/entity/KeywordAttribute_entity/entityfields/ab_keyword_category_id/displayValueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.vars");
+import("Keyword_lib");
+
+
+var containerName = KeywordUtils.getCategoryNameById(vars.get("$field.AB_KEYWORD_CATEGORY_ID"));
+
+result.string(containerName);
diff --git a/entity/KeywordAttribute_entity/entityfields/container/dropDownProcess.js b/entity/KeywordAttribute_entity/entityfields/container/dropDownProcess.js
deleted file mode 100644
index 97ebc5fbaf0bdada4d7571bc882fcdc9fa2d99a5..0000000000000000000000000000000000000000
--- a/entity/KeywordAttribute_entity/entityfields/container/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-var res = KeywordUtils.getContainerNames().map(function(e){
-    return [e, e];//currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers
-});
-result.object(res);
\ No newline at end of file
diff --git a/entity/KeywordAttribute_entity/entityfields/name/onValidation.js b/entity/KeywordAttribute_entity/entityfields/name/onValidation.js
index b12c2615dc53fc1a9df233274bbf7eeae2f5caf4..a37ae57cf0a79ef02c3ab3c08f530128bcda2777 100644
--- a/entity/KeywordAttribute_entity/entityfields/name/onValidation.js
+++ b/entity/KeywordAttribute_entity/entityfields/name/onValidation.js
@@ -10,8 +10,8 @@ import("Entity_lib");
 var validation = (function(){
     if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW)
         return null;
-    var container = vars.get("$field.CONTAINER");
-    if (container == "")
+    var category = vars.get("$field.AB_KEYWORD_CATEGORY_ID");
+    if (category == "")
         return null;
     var name = vars.get("local.value");
     if (name == "")
@@ -19,12 +19,12 @@ var validation = (function(){
     
     var alreadyExistingCount = newSelect("count(*)")
                     .from("AB_KEYWORD_ATTRIBUTE")
-                    .where("AB_KEYWORD_ATTRIBUTE.CONTAINER", container)
+                    .where("AB_KEYWORD_ATTRIBUTE.AB_KEYWORD_CATEGORY_ID", category)
                     .and("AB_KEYWORD_ATTRIBUTE.name", name)
                     .cell()
         
     if (alreadyExistingCount != "0")
-        return translate.withArguments("Name \"%0\" already used for container \"%1\"", [name, container]);
+        return translate.withArguments("Name \"%0\" already used for container \"%1\"", [name, category]);
     
     return null;
 })();
diff --git a/entity/KeywordAttribute_entity/iconIdProcess.js b/entity/KeywordAttribute_entity/iconIdProcess.js
index ef0457e780554daacf633e3381aff300f84e713c..4a0b4e8f7c8aacc31d3792851043560747d6b5d3 100644
--- a/entity/KeywordAttribute_entity/iconIdProcess.js
+++ b/entity/KeywordAttribute_entity/iconIdProcess.js
@@ -1,7 +1,7 @@
 import("system.vars");
 import("system.result");
 
-var container = vars.get("$field.CONTAINER");
+var container = vars.get("$field.AB_KEYWORD_CATEGORY_ID.displayValue");
 
 if (container)
     result.string("TEXT:" + container);
\ No newline at end of file
diff --git a/entity/KeywordAttribute_entity/recordcontainers/db/conditionProcess.js b/entity/KeywordAttribute_entity/recordcontainers/db/conditionProcess.js
index 15f1ee62a401226343c96a26c3a7b084e07a843b..bf912873fef170a0b5ce995f345b3722203e0446 100644
--- a/entity/KeywordAttribute_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/KeywordAttribute_entity/recordcontainers/db/conditionProcess.js
@@ -3,7 +3,7 @@ import("system.db");
 import("system.result");
 import("Sql_lib");
 
-var cond = newWhereIfSet("AB_KEYWORD_ATTRIBUTE.CONTAINER", "$param.ContainerName_param");
+var cond = newWhereIfSet("AB_KEYWORD_CATEGORY.NAME", "$param.ContainerName_param");
 
 //filter for entries that are already used by entry_id
 var entryIdForFilter = vars.get("$param.FilterAlreadyUsedByEntryId_param");
diff --git a/entity/KeywordAttribute_entity/recordcontainers/db/fromClauseProcess.js b/entity/KeywordAttribute_entity/recordcontainers/db/fromClauseProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a3e9dcd2e39e3de2b6e0b5b3987809ce130aa54d
--- /dev/null
+++ b/entity/KeywordAttribute_entity/recordcontainers/db/fromClauseProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Sql_lib");
+
+var res = "AB_KEYWORD_ATTRIBUTE \n\
+    join AB_KEYWORD_CATEGORY on (AB_KEYWORD_CATEGORY.AB_KEYWORD_CATEGORYID = AB_KEYWORD_ATTRIBUTE.AB_KEYWORD_CATEGORY_ID)";
+result.string(res);
\ No newline at end of file
diff --git a/entity/KeywordCategory_entity/KeywordCategory_entity.aod b/entity/KeywordCategory_entity/KeywordCategory_entity.aod
new file mode 100644
index 0000000000000000000000000000000000000000..fb84b88df68c8861fce153afa44801416d21431f
--- /dev/null
+++ b/entity/KeywordCategory_entity/KeywordCategory_entity.aod
@@ -0,0 +1,145 @@
+<?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.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
+  <name>KeywordCategory_entity</name>
+  <title>Keyword Category</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>VAADIN:FILE_TREE_SMALL</icon>
+  <contentTitleProcess>%aditoprj%/entity/KeywordCategory_entity/contentTitleProcess.js</contentTitleProcess>
+  <iconId>VAADIN:FILE_TREE_SMALL</iconId>
+  <titlePlural>Keyword Categories</titlePlural>
+  <recordContainer>db</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+      <usePermissions v="false" />
+    </entityProvider>
+    <entityProvider>
+      <name>#PROVIDER_AGGREGATES</name>
+      <useAggregates v="true" />
+    </entityProvider>
+    <entityField>
+      <name>AB_KEYWORD_CATEGORYID</name>
+      <valueProcess>%aditoprj%/entity/KeywordCategory_entity/entityfields/ab_keyword_categoryid/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>NAME</name>
+      <title>Category Name</title>
+      <mandatory v="true" />
+      <onValidation>%aditoprj%/entity/KeywordCategory_entity/entityfields/name/onValidation.js</onValidation>
+    </entityField>
+    <entityField>
+      <name>SORTINGBY</name>
+      <title>Sorting by</title>
+      <contentType>TEXT</contentType>
+      <mandatory v="true" />
+      <dropDownProcess>%aditoprj%/entity/KeywordCategory_entity/entityfields/sortingby/dropDownProcess.js</dropDownProcess>
+      <valueProcess>%aditoprj%/entity/KeywordCategory_entity/entityfields/sortingby/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>SORTINGDIRECTION</name>
+      <title>Sorting direction</title>
+      <contentType>TEXT</contentType>
+      <mandatory v="true" />
+      <dropDownProcess>%aditoprj%/entity/KeywordCategory_entity/entityfields/sortingdirection/dropDownProcess.js</dropDownProcess>
+      <valueProcess>%aditoprj%/entity/KeywordCategory_entity/entityfields/sortingdirection/valueProcess.js</valueProcess>
+    </entityField>
+    <entityProvider>
+      <name>AllKeywordCategoryProvider</name>
+      <lookupIdfield>AB_KEYWORD_CATEGORYID</lookupIdfield>
+      <sortingField>NAME</sortingField>
+      <dependencies>
+        <entityDependency>
+          <name>d93010a7-5c20-4144-8efb-8eb43c69b7b1</name>
+          <entityName>KeywordEntry_entity</entityName>
+          <fieldName>KeywordCategoryConsumer</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+    <entityConsumer>
+      <name>OrderedByNameFieldKeywordsConsumer</name>
+      <state>INVISIBLE</state>
+      <stateProcess>%aditoprj%/entity/KeywordCategory_entity/entityfields/orderedbynamefieldkeywordsconsumer/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>OrderedByNameFieldKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/KeywordCategory_entity/entityfields/orderedbynamefieldkeywordsconsumer/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>OrderedBySortingFieldKeywordsConsumer</name>
+      <state>INVISIBLE</state>
+      <stateProcess>%aditoprj%/entity/KeywordCategory_entity/entityfields/orderedbysortingfieldkeywordsconsumer/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>OrderedBySortingFieldKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/KeywordCategory_entity/entityfields/orderedbysortingfieldkeywordsconsumer/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>OrderedByNameFieldKeywords</name>
+      <consumer>OrderedByNameFieldKeywordsConsumer</consumer>
+      <state>AUTO</state>
+    </entityField>
+    <entityField>
+      <name>OrderedBySortingFieldKeywords</name>
+      <consumer>OrderedBySortingFieldKeywordsConsumer</consumer>
+      <state>AUTO</state>
+    </entityField>
+  </entityFields>
+  <recordContainers>
+    <dbRecordContainer>
+      <name>db</name>
+      <isPageable v="false" />
+      <orderClauseProcess>%aditoprj%/entity/KeywordCategory_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
+      <onDBInsert>%aditoprj%/entity/KeywordCategory_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
+      <onDBUpdate>%aditoprj%/entity/KeywordCategory_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
+      <onDBDelete>%aditoprj%/entity/KeywordCategory_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
+      <alias>Data_alias</alias>
+      <cacheType>GLOBAL</cacheType>
+      <cacheKeyProcess>%aditoprj%/entity/KeywordCategory_entity/recordcontainers/db/cacheKeyProcess.js</cacheKeyProcess>
+      <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>NAME.value</name>
+          <recordfield>AB_KEYWORD_CATEGORY.NAME</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>AB_KEYWORD_CATEGORYID.value</name>
+          <recordfield>AB_KEYWORD_CATEGORY.AB_KEYWORD_CATEGORYID</recordfield>
+          <isFilterable v="false" />
+          <isLookupFilter v="false" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>SORTINGBY.value</name>
+          <recordfield>AB_KEYWORD_CATEGORY.SORTINGBY</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>SORTINGDIRECTION.value</name>
+          <recordfield>AB_KEYWORD_CATEGORY.SORTINGDIRECTION</recordfield>
+        </dbRecordFieldMapping>
+      </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>bd5b5591-863e-4e4d-8ac0-339112c7cbb8</name>
+          <tableName>AB_KEYWORD_CATEGORY</tableName>
+          <primaryKey>AB_KEYWORD_CATEGORYID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
+    </dbRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/KeywordCategory_entity/contentTitleProcess.js b/entity/KeywordCategory_entity/contentTitleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b270484a61c2a2ac80e254287f1bac8d4c3474aa
--- /dev/null
+++ b/entity/KeywordCategory_entity/contentTitleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+
+
+result.string(vars.get("$field.NAME"));
\ No newline at end of file
diff --git a/entity/KeywordCategory_entity/entityfields/ab_keyword_categoryid/valueProcess.js b/entity/KeywordCategory_entity/entityfields/ab_keyword_categoryid/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ad93cec3bf8be83cc92959219f4f810752413b7d
--- /dev/null
+++ b/entity/KeywordCategory_entity/entityfields/ab_keyword_categoryid/valueProcess.js
@@ -0,0 +1,9 @@
+import("system.neon");
+import("system.result");
+import("system.util");
+import("system.vars");
+
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null) {
+    result.string(util.getNewUUID());
+}
diff --git a/entity/KeywordCategory_entity/entityfields/name/onValidation.js b/entity/KeywordCategory_entity/entityfields/name/onValidation.js
new file mode 100644
index 0000000000000000000000000000000000000000..e457534d5fe64d2a9f91cd940b2a6fdb7e560ea2
--- /dev/null
+++ b/entity/KeywordCategory_entity/entityfields/name/onValidation.js
@@ -0,0 +1,23 @@
+import("system.translate");
+import("system.result");
+import("system.db");
+import("system.vars");
+import("Sql_lib");
+import("Entity_lib");
+
+var name = vars.get("local.value")
+
+//a KEY has always to be unique within one categoryId and since the user can specify the key on insert we've to ensure that it's unique
+if (name)
+{
+    var uid = vars.get("$field.AB_KEYWORD_CATEGORYID");
+    var alreadyExistantCount = newSelect("count(*)")
+        .from("AB_KEYWORD_CATEGORY")
+        .where("AB_KEYWORD_CATEGORY.NAME", name)
+        .andIfSet("AB_KEYWORD_CATEGORY.AB_KEYWORD_CATEGORYID", uid, SqlBuilder.NOT_EQUAL())
+        .cell();
+    
+    if (alreadyExistantCount != "0")
+        result.string(translate.text("The given Keyword Category Name is already used but needs to be unique"));
+    
+}
\ No newline at end of file
diff --git a/entity/KeywordCategory_entity/entityfields/orderedbynamefieldkeywordsconsumer/children/containername_param/valueProcess.js b/entity/KeywordCategory_entity/entityfields/orderedbynamefieldkeywordsconsumer/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a7b35e011264275c0614ce65e3c70b2ac848746d
--- /dev/null
+++ b/entity/KeywordCategory_entity/entityfields/orderedbynamefieldkeywordsconsumer/children/containername_param/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+import("system.result");
+import("system.vars");
+
+//use the given keyword category name or use a dummy value, so that we do not get all Keyword entires from the KeywordEntry_entity (empty means "all" there)
+var res = vars.get("$field.NAME") || util.getNewUUID();
+result.string(res);
diff --git a/entity/KeywordCategory_entity/entityfields/orderedbynamefieldkeywordsconsumer/stateProcess.js b/entity/KeywordCategory_entity/entityfields/orderedbynamefieldkeywordsconsumer/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..96c49cb7507ce3557f4bc5bbd967b91044a745c6
--- /dev/null
+++ b/entity/KeywordCategory_entity/entityfields/orderedbynamefieldkeywordsconsumer/stateProcess.js
@@ -0,0 +1,9 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+
+if (vars.get("$field.SORTINGBY") === "0" || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+else
+    result.string(neon.COMPONENTSTATE_EDITABLE);
diff --git a/entity/KeywordCategory_entity/entityfields/orderedbysortingfieldkeywordsconsumer/children/containername_param/valueProcess.js b/entity/KeywordCategory_entity/entityfields/orderedbysortingfieldkeywordsconsumer/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a7b35e011264275c0614ce65e3c70b2ac848746d
--- /dev/null
+++ b/entity/KeywordCategory_entity/entityfields/orderedbysortingfieldkeywordsconsumer/children/containername_param/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+import("system.result");
+import("system.vars");
+
+//use the given keyword category name or use a dummy value, so that we do not get all Keyword entires from the KeywordEntry_entity (empty means "all" there)
+var res = vars.get("$field.NAME") || util.getNewUUID();
+result.string(res);
diff --git a/entity/KeywordCategory_entity/entityfields/orderedbysortingfieldkeywordsconsumer/stateProcess.js b/entity/KeywordCategory_entity/entityfields/orderedbysortingfieldkeywordsconsumer/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..312127b36af1bee37c5431a0c4f191e8cfc07941
--- /dev/null
+++ b/entity/KeywordCategory_entity/entityfields/orderedbysortingfieldkeywordsconsumer/stateProcess.js
@@ -0,0 +1,12 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+import("system.entities");
+
+var config = entities.createConfigForLoadingConsumerRows().consumer("OrderedBySortingFieldKeywordsConsumer")
+var count = entities.getRowCount(config);
+
+if (vars.get("$field.SORTINGBY") === "0" && count > 0)
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/KeywordCategory_entity/entityfields/sortingby/dropDownProcess.js b/entity/KeywordCategory_entity/entityfields/sortingby/dropDownProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7857949a704707c91123e2f9d922b23fcfc1bef0
--- /dev/null
+++ b/entity/KeywordCategory_entity/entityfields/sortingby/dropDownProcess.js
@@ -0,0 +1,9 @@
+import("system.result");
+import("system.translate");
+
+
+result.object([
+    ["0", translate.text("by sorting")],
+    ["1", translate.text("by name")],
+    ["2", translate.text("by translated name")],
+]);
\ No newline at end of file
diff --git a/entity/KeywordCategory_entity/entityfields/sortingby/valueProcess.js b/entity/KeywordCategory_entity/entityfields/sortingby/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..2866c93908dc4786a1380517df31dcd16a388473
--- /dev/null
+++ b/entity/KeywordCategory_entity/entityfields/sortingby/valueProcess.js
@@ -0,0 +1,9 @@
+import("system.neon");
+import("system.result");
+import("system.vars");
+
+
+if(vars.get("$this.value") == null && vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    result.string("0");
+}
\ No newline at end of file
diff --git a/entity/KeywordCategory_entity/entityfields/sortingdirection/dropDownProcess.js b/entity/KeywordCategory_entity/entityfields/sortingdirection/dropDownProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4a9d0a80be8899b9e8b0554edf180b33bc5e680a
--- /dev/null
+++ b/entity/KeywordCategory_entity/entityfields/sortingdirection/dropDownProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.translate");
+
+
+result.object([
+    ["ASC", translate.text("ascending")],
+    ["DESC", translate.text("descending")]
+]);
\ No newline at end of file
diff --git a/entity/KeywordCategory_entity/entityfields/sortingdirection/valueProcess.js b/entity/KeywordCategory_entity/entityfields/sortingdirection/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e7bc0262d0999dac43bcb9854cc2c84d5107cf8d
--- /dev/null
+++ b/entity/KeywordCategory_entity/entityfields/sortingdirection/valueProcess.js
@@ -0,0 +1,9 @@
+import("system.neon");
+import("system.result");
+import("system.vars");
+
+
+if(vars.get("$this.value") == null && vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    result.string("ASC");
+}
\ No newline at end of file
diff --git a/entity/KeywordCategory_entity/recordcontainers/db/cacheKeyProcess.js b/entity/KeywordCategory_entity/recordcontainers/db/cacheKeyProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..db72c61ec71e7181a23fc5ea9cbd95afff15d6dd
--- /dev/null
+++ b/entity/KeywordCategory_entity/recordcontainers/db/cacheKeyProcess.js
@@ -0,0 +1,5 @@
+import("CachedRecordContainer_lib");
+import("system.result")
+
+var res = CachedRecordContainerUtils.getKeyWithPreset(CachedRecordContainerFieldPresets.STANDARD());
+result.string(res);
diff --git a/entity/KeywordCategory_entity/recordcontainers/db/onDBDelete.js b/entity/KeywordCategory_entity/recordcontainers/db/onDBDelete.js
new file mode 100644
index 0000000000000000000000000000000000000000..9fb896f27e82dbcc7f7afcadf277a6a2383d6f24
--- /dev/null
+++ b/entity/KeywordCategory_entity/recordcontainers/db/onDBDelete.js
@@ -0,0 +1,15 @@
+import("system.vars");
+import("system.entities");
+import("Sql_lib");
+
+var categoryId = vars.get("$local.uid");
+
+newWhere("AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ATTRIBUTE_ID", newSelect("AB_KEYWORD_ATTRIBUTE.AB_KEYWORD_ATTRIBUTEID")
+                                                                    .from("AB_KEYWORD_ATTRIBUTE")
+                                                                    .where("AB_KEYWORD_ATTRIBUTE.AB_KEYWORD_CATEGORY_ID", categoryId)
+    , SqlBuilder.IN()).deleteData();
+newWhere("AB_KEYWORD_ATTRIBUTE.AB_KEYWORD_CATEGORY_ID", categoryId).deleteData();
+newWhere("AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID", categoryId).deleteData();
+
+//dependecies are removed so the cache needs to be updated
+entities.invalidateCache("KeywordEntry_entity", "db");
\ No newline at end of file
diff --git a/entity/KeywordCategory_entity/recordcontainers/db/onDBInsert.js b/entity/KeywordCategory_entity/recordcontainers/db/onDBInsert.js
new file mode 100644
index 0000000000000000000000000000000000000000..74e995d10911196cc51444fc37b5b25089494d12
--- /dev/null
+++ b/entity/KeywordCategory_entity/recordcontainers/db/onDBInsert.js
@@ -0,0 +1,4 @@
+import("system.entities");
+
+//dependecies are updated so the cache needs to be updated
+entities.invalidateCache("KeywordEntry_entity", "db");
\ No newline at end of file
diff --git a/entity/KeywordCategory_entity/recordcontainers/db/onDBUpdate.js b/entity/KeywordCategory_entity/recordcontainers/db/onDBUpdate.js
new file mode 100644
index 0000000000000000000000000000000000000000..74e995d10911196cc51444fc37b5b25089494d12
--- /dev/null
+++ b/entity/KeywordCategory_entity/recordcontainers/db/onDBUpdate.js
@@ -0,0 +1,4 @@
+import("system.entities");
+
+//dependecies are updated so the cache needs to be updated
+entities.invalidateCache("KeywordEntry_entity", "db");
\ No newline at end of file
diff --git a/entity/KeywordCategory_entity/recordcontainers/db/orderClauseProcess.js b/entity/KeywordCategory_entity/recordcontainers/db/orderClauseProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..12bc0d4f8b6254ac74e04bb5c6a94cd74d7f7c3c
--- /dev/null
+++ b/entity/KeywordCategory_entity/recordcontainers/db/orderClauseProcess.js
@@ -0,0 +1,6 @@
+import("system.db");
+import("system.result");
+
+result.object({
+     "AB_KEYWORD_CATEGORY.NAME": db.ASCENDING
+});
\ No newline at end of file
diff --git a/entity/KeywordEntry_entity/KeywordEntry_entity.aod b/entity/KeywordEntry_entity/KeywordEntry_entity.aod
index d897ddd5ff1732ea13f318d6834412bf0993cd20..0604749d96591ca6bcac5da852be07f170278f69 100644
--- a/entity/KeywordEntry_entity/KeywordEntry_entity.aod
+++ b/entity/KeywordEntry_entity/KeywordEntry_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>KeywordEntry_entity</name>
+  <title>Keyword Entry</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/KeywordEntry_entity/documentation.adoc</documentation>
-  <title>Keyword</title>
   <siblings />
   <grantDelete v="false" />
   <grantDeleteProcess>%aditoprj%/entity/KeywordEntry_entity/grantDeleteProcess.js</grantDeleteProcess>
@@ -11,7 +11,7 @@
   <onValidation>%aditoprj%/entity/KeywordEntry_entity/onValidation.js</onValidation>
   <iconId>VAADIN:KEY</iconId>
   <iconIdProcess>%aditoprj%/entity/KeywordEntry_entity/iconIdProcess.js</iconIdProcess>
-  <titlePlural>Keywords</titlePlural>
+  <titlePlural>Keyword Entries</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
     <entityProvider>
@@ -31,18 +31,20 @@
           <fieldName>PrioKeywords</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>01b9bba5-3b65-4db0-b466-1e41061feb1a</name>
+          <entityName>Observation_entity</entityName>
+          <fieldName>PrioKeywords</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
     </entityProvider>
     <entityField>
       <name>CONTAINER</name>
       <documentation>%aditoprj%/entity/KeywordEntry_entity/entityfields/container/documentation.adoc</documentation>
       <title>Container</title>
-      <groupable v="true" />
-      <mandatory v="true" />
-      <dropDownProcess>%aditoprj%/entity/KeywordEntry_entity/entityfields/container/dropDownProcess.js</dropDownProcess>
-      <textInputAllowed v="true" />
       <state>READONLY</state>
-      <stateProcess>%aditoprj%/entity/KeywordEntry_entity/entityfields/container/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/KeywordEntry_entity/entityfields/container/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>AB_KEYWORD_ENTRYID</name>
@@ -63,6 +65,11 @@
       <name>TITLE</name>
       <title>Title (original language)</title>
       <mandatory v="true" />
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+        <element>PROCESS_SETVALUE</element>
+      </onValueChangeTypes>
     </entityField>
     <entityField>
       <name>SORTING</name>
@@ -75,7 +82,6 @@
       <name>ISACTIVE</name>
       <title>Active</title>
       <contentType>BOOLEAN</contentType>
-      <dropDownProcess>%aditoprj%/entity/KeywordEntry_entity/entityfields/isactive/dropDownProcess.js</dropDownProcess>
       <valueProcess>%aditoprj%/entity/KeywordEntry_entity/entityfields/isactive/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
@@ -83,7 +89,6 @@
       <documentation>%aditoprj%/entity/KeywordEntry_entity/entityfields/isessential/documentation.adoc</documentation>
       <title>Relational</title>
       <contentType>BOOLEAN</contentType>
-      <dropDownProcess>%aditoprj%/entity/KeywordEntry_entity/entityfields/isessential/dropDownProcess.js</dropDownProcess>
       <state>READONLY</state>
       <valueProcess>%aditoprj%/entity/KeywordEntry_entity/entityfields/isessential/valueProcess.js</valueProcess>
     </entityField>
@@ -96,18 +101,7 @@
       <name>SpecificContainerKeywords</name>
       <lookupIdfield>KEYID</lookupIdfield>
       <documentation>%aditoprj%/entity/KeywordEntry_entity/entityfields/specificcontainerkeywords/documentation.adoc</documentation>
-      <recordContainer>db</recordContainer>
-      <children>
-        <entityParameter>
-          <name>OnlyActives_param</name>
-          <valueProcess>%aditoprj%/entity/KeywordEntry_entity/entityfields/specificcontainerkeywords/children/onlyactives_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <expose v="true" />
-        </entityParameter>
-      </children>
+      <recordContainer>jDito</recordContainer>
       <dependencies>
         <entityDependency>
           <name>bb48a3ee-f340-4fd4-8c80-ef73b765ab58</name>
@@ -325,12 +319,6 @@
           <fieldName>KeywordStates</fieldName>
           <isConsumer v="false" />
         </entityDependency>
-        <entityDependency>
-          <name>3ca6d3c7-83d2-4761-bab4-50d2baecdbd6</name>
-          <entityName>Competition_entity</entityName>
-          <fieldName>KeywordPhases</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
         <entityDependency>
           <name>1053a90d-574a-4ca2-b41d-42b513db0fd2</name>
           <entityName>Task_entity</entityName>
@@ -607,10 +595,64 @@
           <fieldName>KeywordStepMedium</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>f2719502-19e8-4a24-8f3f-e4aa4dd77e70</name>
+          <entityName>VisitPlanEntry_entity</entityName>
+          <fieldName>KeywordVisitPlanEntryStatusAppointment</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>edde64f8-8f71-4fa3-a807-b6b3af971446</name>
+          <entityName>DistrictContact_entity</entityName>
+          <fieldName>KeywordContactStates</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>146dc4e4-7e99-48da-9572-09f2a57ea7f6</name>
+          <entityName>DistrictContact_entity</entityName>
+          <fieldName>KeywordAdviserRoles</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>223e4198-157d-43b5-b31e-417eb6ebf39c</name>
+          <entityName>DistrictContact_entity</entityName>
+          <fieldName>KeywordDistrictOrigin</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>6f8ca40b-52bc-461f-8b97-083e1509c6fb</name>
+          <entityName>DistrictResponsible_entity</entityName>
+          <fieldName>AdviserStates</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>146306af-cb4e-4d60-8298-f298770e7efb</name>
+          <entityName>DistrictResponsible_entity</entityName>
+          <fieldName>AdviserRoles</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>eb5684f7-200a-401c-ac73-cc905a4d3f06</name>
+          <entityName>Competition_entity</entityName>
+          <fieldName>KeywordPhases</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>OnlyActives_param</name>
+          <valueProcess>%aditoprj%/entity/KeywordEntry_entity/entityfields/specificcontainerkeywords/children/onlyactives_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <expose v="true" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityField>
       <name>TITLE_TRANSLATED</name>
+      <state>INVISIBLE</state>
       <valueProcess>%aditoprj%/entity/KeywordEntry_entity/entityfields/title_translated/valueProcess.js</valueProcess>
     </entityField>
     <entityParameter>
@@ -622,6 +664,11 @@
     <entityConsumer>
       <name>KeywordAttributeRelations</name>
       <onValidation>%aditoprj%/entity/KeywordEntry_entity/entityfields/keywordattributerelations/onValidation.js</onValidation>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordAttributeRelation_entity</entityName>
+        <fieldName>AttributesForKeywordEntry</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>KeywordEntryId_param</name>
@@ -629,11 +676,6 @@
           <expose v="true" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordAttributeRelation_entity</entityName>
-        <fieldName>AttributesForKeywordEntry</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>ExcludedKeyIdsSubquery_param</name>
@@ -665,26 +707,84 @@
       <name>BlacklistIds_param</name>
       <expose v="true" />
     </entityParameter>
+    <entityField>
+      <name>AB_KEYWORD_CATEGORY_ID</name>
+      <title>Keyword Category</title>
+      <consumer>KeywordCategoryConsumer</consumer>
+      <groupable v="true" />
+      <mandatory v="true" />
+      <state>READONLY</state>
+      <stateProcess>%aditoprj%/entity/KeywordEntry_entity/entityfields/ab_keyword_category_id/stateProcess.js</stateProcess>
+      <displayValueProcess>%aditoprj%/entity/KeywordEntry_entity/entityfields/ab_keyword_category_id/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>KeywordCategoryConsumer</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordCategory_entity</entityName>
+        <fieldName>AllKeywordCategoryProvider</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityField>
+      <name>UID</name>
+      <documentation>%aditoprj%/entity/KeywordEntry_entity/entityfields/uid/documentation.adoc</documentation>
+      <valueProcess>%aditoprj%/entity/KeywordEntry_entity/entityfields/uid/valueProcess.js</valueProcess>
+    </entityField>
+    <entityProvider>
+      <name>OrderedBySortingFieldKeywords</name>
+      <lookupIdfield>AB_KEYWORD_ENTRYID</lookupIdfield>
+      <sortingField>SORTING</sortingField>
+      <recordContainer>db</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>f677c429-246a-4550-afc7-73dac953bfbf</name>
+          <entityName>KeywordCategory_entity</entityName>
+          <fieldName>OrderedBySortingFieldKeywordsConsumer</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <expose v="true" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityProvider>
+      <name>OrderedByNameFieldKeywords</name>
+      <lookupIdfield>AB_KEYWORD_ENTRYID</lookupIdfield>
+      <recordContainer>jDito</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>63218865-e3ef-4fb6-9f0a-3fef321ce30c</name>
+          <entityName>KeywordCategory_entity</entityName>
+          <fieldName>OrderedByNameFieldKeywordsConsumer</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <expose v="true" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityField>
+      <name>KEYID_alwaysReadOnly</name>
+      <state>READONLY</state>
+      <valueProcess>%aditoprj%/entity/KeywordEntry_entity/entityfields/keyid_alwaysreadonly/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <isPageable v="false" />
       <conditionProcess>%aditoprj%/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/KeywordEntry_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
       <onDBDelete>%aditoprj%/entity/KeywordEntry_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <cacheType>GLOBAL</cacheType>
+      <alias>Data_alias</alias>
+      <cacheType>SESSION</cacheType>
       <cacheKeyProcess>%aditoprj%/entity/KeywordEntry_entity/recordcontainers/db/cacheKeyProcess.js</cacheKeyProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>52acbfe0-57f4-4614-83af-9882e168f431</name>
-          <tableName>AB_KEYWORD_ENTRY</tableName>
-          <primaryKey>AB_KEYWORD_ENTRYID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>TITLE.value</name>
@@ -718,11 +818,47 @@
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>CONTAINER.value</name>
-          <recordfield>AB_KEYWORD_ENTRY.CONTAINER</recordfield>
+          <expression>%aditoprj%/entity/KeywordEntry_entity/recordcontainers/db/recordfieldmappings/container.value/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>AB_KEYWORD_CATEGORY_ID.value</name>
+          <recordfield>AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID</recordfield>
           <isFilterable v="true" />
-          <isLookupFilter v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>AB_KEYWORD_CATEGORY_ID.displayValue</name>
+          <expression>%aditoprj%/entity/KeywordEntry_entity/recordcontainers/db/recordfieldmappings/ab_keyword_category_id.displayvalue/expression.js</expression>
+          <columnAlias>CATEGORY_NAME</columnAlias>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>52acbfe0-57f4-4614-83af-9882e168f431</name>
+          <tableName>AB_KEYWORD_ENTRY</tableName>
+          <primaryKey>AB_KEYWORD_ENTRYID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
+    <jDitoRecordContainer>
+      <name>jDito</name>
+      <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
+      <isSortable v="true" />
+      <contentProcess>%aditoprj%/entity/KeywordEntry_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
+      <cacheType>SESSION</cacheType>
+      <cacheKeyProcess>%aditoprj%/entity/KeywordEntry_entity/recordcontainers/jdito/cacheKeyProcess.js</cacheKeyProcess>
+      <recordFieldMappings>
+        <jDitoRecordFieldMapping>
+          <name>KEYID.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>TITLE.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>UID.value</name>
+        </jDitoRecordFieldMapping>
+      </recordFieldMappings>
+    </jDitoRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/KeywordEntry_entity/contentTitleProcess.js b/entity/KeywordEntry_entity/contentTitleProcess.js
index bc531db79113dcc9bd32bf90b4f9a983768f25a1..94d31040e5e27920293d2b9ec667d2feec61ff9e 100644
--- a/entity/KeywordEntry_entity/contentTitleProcess.js
+++ b/entity/KeywordEntry_entity/contentTitleProcess.js
@@ -1,4 +1,5 @@
+import("system.translate");
 import("system.vars");
 import("system.result");
 
-result.string(vars.get("$field.TITLE_TRANSLATED"));
\ No newline at end of file
+result.string(vars.get("$field.TITLE_TRANSLATED"));
diff --git a/entity/KeywordEntry_entity/documentation.adoc b/entity/KeywordEntry_entity/documentation.adoc
index 17d50062e384d21fb406ad1bb5e200e17f70a37e..4ab5cadb129deccd73f0ff12d75fc0dc916c904a 100644
--- a/entity/KeywordEntry_entity/documentation.adoc
+++ b/entity/KeywordEntry_entity/documentation.adoc
@@ -12,14 +12,18 @@ Glossary
 
 
 [glossary]
+Keyword Category (former Keyword container)::
+  A Keyword Category is the element that keeps several entries of Keyword entirestogether. That could be for example something like "Contact-Status".
+
 Keyword Container::
-  A keyword container is the element that keeps several entries of Keywords together. That could be for example something like "Contact-Status". Keep in mind that this done virtually and not in the actual way of storage.
+  This was once the group of a keyword entry list (like "Contact-Status"). Since this now done via the Keyword Category, the keyword container describes
++ the name of the Keyword Category
 
 Keyword Entry::
-  A keyword entry is a specific child-element of a keyword container. For the upper example "Contact-Status" this could be "Active", "Inactive", etc.
+  A keyword entry is a specific child-element of a keyword category. For the upper example "Contact-Status" this could be "Active", "Inactive", etc.
   
 Keyword::
-  Keyword describes the whole set of elements like keyword container and keyword entry. It's more like a virtual bracket for the whole construct.
+  Keyword describes the whole set of elements like keyword category and keyword entry. It's more like a virtual bracket for the whole construct.
   
 
 == Types of Keywords ==
@@ -38,13 +42,13 @@ digraph g {
   graph [ dpi = 100 ]
   node [ shape = box color="#dddddd" fontcolor="#dddddd" fontname = "Consolas"];
   edge [ color="#dddddd" ]
-  { rank=max;  kwdContainer [label="Keyword Container"] }
+  { rank=max;  kwdCategory [label="Keyword Category"] }
   { rank=same; kwdEntry [label="Keyword Entry"] }
   { rank=next; entry1 [label="Entry 1" shape=ellipse] }
   { rank=same entry1; entryN [label="Entry N" shape=ellipse] }
   
-  kwdEntry -> kwdContainer;
-  kwdEntry -> kwdContainer;
+  kwdEntry -> kwdCategory;
+  kwdEntry -> kwdCategory;
   entry1 -> kwdEntry
   entryN -> kwdEntry
 }
@@ -52,32 +56,58 @@ digraph g {
 
 
 Take a look at the following table. Beware that these are not the actual db-column-names but the information what's represented.
+simplified, abstract representation how keywords are actually stored:
 
-.simplified, abstract representation how keywords are actually stored
+.Keyword Entry
 [options="header", cols="m,m,d,d"]
 |=======
-|UID |key-ID |tile | container
+|{set:cellbgcolor:!}
+ UID |key-ID |tile | Category-reference
+|{set:cellbgcolor:#90b678}
+ unique key 1|1-key-value A|one|category_id1
+|unique key 2|2-key-value A|two|category_id1
+|unique key 3|3-key-value A|three|category_id1
+|{set:cellbgcolor:#b69e78 }
+ unique key 4|1-key-value B|I|category_id2
+|unique key 5|2-key-value B|II|category_id2
+|=======
+
+.Keyword Category
+[options="header"]
+|=======
+|{set:cellbgcolor:!}
+ UID |Name | Sorting type |Sorting direction
 |{set:cellbgcolor:#90b678}
- unique key 1|1-key-value A|one|container 1
-|unique key 2|2-key-value A|two|container 1
-|unique key 3|3-key-value A|three|container 1
+ category_id1|Name 1| sort-type 1| sort-direction 1
 |{set:cellbgcolor:#b69e78 }
- unique key 4|1-key-value B|I|container 2
-|unique key 5|2-key-value B|II|container 2
+ category_id2|Name 2| sort-type 2| sort-direction 2
 |=======
 
 And, to clarify an example:
+Simplified, example representation how keywords are acutllay stored:
 
-.simplified, example representation how keywords are acutllay stored
+.Keyword Entry
 [options="header", cols="m,m,d,d"]
 |=======
 |{set:cellbgcolor:! }
- UID |key-ID |tile | container
-|{set:cellbgcolor:#90b678}db1792cd|de-DE|German (Germany)|Language
-|62df7f0ba|en-GB|English (United Kingdom)|Language
-|126229d9|fr-FR|French (France)|Language
-|{set:cellbgcolor:#b69e78 }3508929f|ab7b1885|active|ContactStatus
-|52ce5785|2b2091eb|inactive|ContactStatus
+ UID |key-ID |tile | Category-reference
+|{set:cellbgcolor:#90b678}db1792cd|de-DE|German (Germany)|3fd65
+|62df7f0ba|en-GB|English (United Kingdom)|3fd65
+|126229d9|fr-FR|French (France)|3fd65
+|{set:cellbgcolor:#b69e78 }3508929f|ab7b1885|active|85c1e
+|52ce5785|2b2091eb|inactive|85c1e
+|=======
+
+
+.Keyword Category
+[options="header"]
+|=======
+|{set:cellbgcolor:!}
+ UID |Name | Sorting type |Sorting direction
+|{set:cellbgcolor:#90b678}
+ 3fd65|Language| Alphanumeric| ascending
+|{set:cellbgcolor:#b69e78 }
+ 85c1e|Status| Manual | ascending
 |=======
 
 === Extended Key-Value lists with special Attributes ===
@@ -86,7 +116,7 @@ Basically this is an extension of the <<Simple Key-Value lists>>.
 Sometimes it's necessary to have some more properties within a keyword-entry.
 Example:
 
-You've got a Keyword-container for Types of Communication with basically the following values:
+You've got a Keyword-Category for Types of Communication with basically the following values:
 
 - mobile phone
 - landline phone
diff --git a/entity/KeywordEntry_entity/entityfields/ab_keyword_category_id/displayValueProcess.js b/entity/KeywordEntry_entity/entityfields/ab_keyword_category_id/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..89b5e069dfebf45a710ac11a070f173c70d02bc2
--- /dev/null
+++ b/entity/KeywordEntry_entity/entityfields/ab_keyword_category_id/displayValueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.vars");
+import("Keyword_lib");
+
+
+var containerName = KeywordUtils.getCategoryNameById(vars.get("$field.AB_KEYWORD_CATEGORY_ID"));
+
+result.string(containerName);
diff --git a/entity/KeywordEntry_entity/entityfields/container/stateProcess.js b/entity/KeywordEntry_entity/entityfields/ab_keyword_category_id/stateProcess.js
similarity index 87%
rename from entity/KeywordEntry_entity/entityfields/container/stateProcess.js
rename to entity/KeywordEntry_entity/entityfields/ab_keyword_category_id/stateProcess.js
index 82fc64847e6ac4e59a674fac7873eef6161aa741..65d7d8bc2a9e945613f1ceca3f51fe6c7b40c92f 100644
--- a/entity/KeywordEntry_entity/entityfields/container/stateProcess.js
+++ b/entity/KeywordEntry_entity/entityfields/ab_keyword_category_id/stateProcess.js
@@ -2,7 +2,7 @@ import("system.result");
 import("system.neon");
 import("system.vars");
 
-/*allowing the CONTAINER to change later would result in a lot of problems like
+/*allowing the category to change later would result in a lot of problems like
  * - what happens to SORTING-value?
  * - what happens with already created keyword-attributerelations?
  * - what happens when a key is specified twice after the change?
diff --git a/entity/KeywordEntry_entity/entityfields/container/documentation.adoc b/entity/KeywordEntry_entity/entityfields/container/documentation.adoc
index e1cfb215ac798637843c387c914479f4428e301a..093cc57aa4359c533113f364f618a955d9ffa58f 100644
--- a/entity/KeywordEntry_entity/entityfields/container/documentation.adoc
+++ b/entity/KeywordEntry_entity/entityfields/container/documentation.adoc
@@ -1,2 +1,2 @@
- `CONTAINER` is the a name and used for grouping keyword-entries. This is was a keyword-container essentially is.
-After creation of an entry it cannot be changed anymore.
\ No newline at end of file
+ `CONTAINER` was used for grouping keyword-entries. 
+This is now represented by an entry in the `AB_KEYWORD_CATEGORY`-table.
\ No newline at end of file
diff --git a/entity/KeywordEntry_entity/entityfields/container/dropDownProcess.js b/entity/KeywordEntry_entity/entityfields/container/dropDownProcess.js
deleted file mode 100644
index 97ebc5fbaf0bdada4d7571bc882fcdc9fa2d99a5..0000000000000000000000000000000000000000
--- a/entity/KeywordEntry_entity/entityfields/container/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-var res = KeywordUtils.getContainerNames().map(function(e){
-    return [e, e];//currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers
-});
-result.object(res);
\ No newline at end of file
diff --git a/entity/KeywordEntry_entity/entityfields/container/valueProcess.js b/entity/KeywordEntry_entity/entityfields/container/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..02b3bd7700586175fd4e2540208f8ee4a16d42d8
--- /dev/null
+++ b/entity/KeywordEntry_entity/entityfields/container/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.AB_KEYWORD_CATEGORY_ID.displayValue"));
\ No newline at end of file
diff --git a/entity/KeywordEntry_entity/entityfields/isactive/dropDownProcess.js b/entity/KeywordEntry_entity/entityfields/isactive/dropDownProcess.js
deleted file mode 100644
index 89a5a5ca23dcc6e07fca72ddc1ab28514de63d39..0000000000000000000000000000000000000000
--- a/entity/KeywordEntry_entity/entityfields/isactive/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-    ["1", translate.text("Yes")]
-    ,["0", translate.text("No")]
-    ]);
\ No newline at end of file
diff --git a/entity/KeywordEntry_entity/entityfields/isessential/dropDownProcess.js b/entity/KeywordEntry_entity/entityfields/isessential/dropDownProcess.js
deleted file mode 100644
index 89a5a5ca23dcc6e07fca72ddc1ab28514de63d39..0000000000000000000000000000000000000000
--- a/entity/KeywordEntry_entity/entityfields/isessential/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-    ["1", translate.text("Yes")]
-    ,["0", translate.text("No")]
-    ]);
\ No newline at end of file
diff --git a/entity/KeywordEntry_entity/entityfields/keyid/onValidation.js b/entity/KeywordEntry_entity/entityfields/keyid/onValidation.js
index 07610f8551a05ff2f5694f37ed37a9da6618bc1a..cd4940f19fdd92c8ddaa01c4fe6fca7d2e41c773 100644
--- a/entity/KeywordEntry_entity/entityfields/keyid/onValidation.js
+++ b/entity/KeywordEntry_entity/entityfields/keyid/onValidation.js
@@ -5,18 +5,18 @@ import("system.vars");
 import("Sql_lib");
 import("Entity_lib");
 
-var container = vars.get("$field.CONTAINER");
+var categoryId = vars.get("$field.AB_KEYWORD_CATEGORY_ID");
 var keyId = vars.get("local.value").trim();
 
-//a KEY has always to be unique within one container and since the user can specify the key on insert we've to ensure that it's unique
-if (container && keyId)
+//a KEY has always to be unique within one categoryId and since the user can specify the key on insert we've to ensure that it's unique
+if (categoryId && keyId)
 {
     var selfEntryId = vars.get("$field.AB_KEYWORD_ENTRYID");
     var sqlMasks = new SqlMaskingUtils();
     var alreadyExistantEntryId = newSelect("AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID")
                                     .from("AB_KEYWORD_ENTRY")
                                     .where(sqlMasks.trim("AB_KEYWORD_ENTRY.KEYID"), keyId, null, SqlUtils.getSingleColumnType("AB_KEYWORD_ENTRY", "KEYID"))
-                                    .and("AB_KEYWORD_ENTRY.CONTAINER", container)
+                                    .and("AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID", categoryId)
                                     .and("AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID", selfEntryId, SqlBuilder.NOT_EQUAL())
                                     .cell();
     
diff --git a/entity/KeywordEntry_entity/entityfields/keyid_alwaysreadonly/valueProcess.js b/entity/KeywordEntry_entity/entityfields/keyid_alwaysreadonly/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a560a5517f1396643dc77b3790d9288def70d4b4
--- /dev/null
+++ b/entity/KeywordEntry_entity/entityfields/keyid_alwaysreadonly/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.KEYID"));
\ No newline at end of file
diff --git a/entity/KeywordEntry_entity/entityfields/title_translated/valueProcess.js b/entity/KeywordEntry_entity/entityfields/title_translated/valueProcess.js
index f42668ae726a7ff4d9c852605ab948b7df4ad93e..832a03f3d2e3015c9d9c4eb1e3ae79644fe2a4b0 100644
--- a/entity/KeywordEntry_entity/entityfields/title_translated/valueProcess.js
+++ b/entity/KeywordEntry_entity/entityfields/title_translated/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
-import("system.translate");
 import("system.result");
+import("system.translate");
+import("system.vars");
 
 var title = vars.get("$field.TITLE");
-result.string(translate.text(title));
\ No newline at end of file
+result.string(translate.text(title));
diff --git a/entity/KeywordEntry_entity/entityfields/uid/documentation.adoc b/entity/KeywordEntry_entity/entityfields/uid/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..8fcda674e10b1f60ff8430aa2ba83bb0b2ad1edd
--- /dev/null
+++ b/entity/KeywordEntry_entity/entityfields/uid/documentation.adoc
@@ -0,0 +1,2 @@
+Dummy UID field to make jDito RecordContainer work.
+It simply returns the value of AB_KEYWORD_ENTRYID, which is the actual UID.
\ No newline at end of file
diff --git a/entity/KeywordEntry_entity/entityfields/uid/valueProcess.js b/entity/KeywordEntry_entity/entityfields/uid/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..5951f8d6e5f9ea1c8f173a8b2dde7f489aa73ca8
--- /dev/null
+++ b/entity/KeywordEntry_entity/entityfields/uid/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result")
+import("system.vars")
+
+
+result.string(vars.get("$field.AB_KEYWORD_ENTRYID"));
diff --git a/entity/KeywordEntry_entity/iconIdProcess.js b/entity/KeywordEntry_entity/iconIdProcess.js
index ef0457e780554daacf633e3381aff300f84e713c..4a0b4e8f7c8aacc31d3792851043560747d6b5d3 100644
--- a/entity/KeywordEntry_entity/iconIdProcess.js
+++ b/entity/KeywordEntry_entity/iconIdProcess.js
@@ -1,7 +1,7 @@
 import("system.vars");
 import("system.result");
 
-var container = vars.get("$field.CONTAINER");
+var container = vars.get("$field.AB_KEYWORD_CATEGORY_ID.displayValue");
 
 if (container)
     result.string("TEXT:" + container);
\ No newline at end of file
diff --git a/entity/KeywordEntry_entity/onValidation.js b/entity/KeywordEntry_entity/onValidation.js
index 463a84f18f8bcf21fe9539ab5041c31be8a7a958..ea935c52e323f18fbee12ac39e2bbbcf0e27dc2b 100644
--- a/entity/KeywordEntry_entity/onValidation.js
+++ b/entity/KeywordEntry_entity/onValidation.js
@@ -8,13 +8,13 @@ import("Sql_lib");
 //TODO: this should no happen in onValidation; waiting for #1032668
 if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
 {
-    var keyContainer = vars.get("$field.CONTAINER");
-    if (keyContainer)
+    var keywordCategory = vars.get("$field.AB_KEYWORD_CATEGORY_ID");
+    if (keywordCategory)
     {
         var maskingHelper = new SqlMaskingUtils();
         var newCodeNumber = newSelect(maskingHelper.max("AB_KEYWORD_ENTRY.SORTING"))
                                 .from("AB_KEYWORD_ENTRY")
-                                .where("AB_KEYWORD_ENTRY.CONTAINER", keyContainer)
+                                .where("AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID", keywordCategory)
                                 .cell();
                                 
         newCodeNumber = Number(newCodeNumber);//if no number exists till no, start value will be 1 (due to: ++0)
diff --git a/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js b/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js
index 90f58744de34c09de3164a324889dc3d3bf03859..785569f4ecc5c34f05e67133fb369baaaddf1808 100644
--- a/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js
@@ -1,10 +1,23 @@
+import("Keyword_lib");
 import("Util_lib");
 import("system.vars");
 import("system.db");
 import("system.result");
+import("system.tools");
 import("Sql_lib");
 
-var cond = newWhereIfSet("AB_KEYWORD_ENTRY.CONTAINER", "$param.ContainerName_param");
+
+var cond = newWhere();
+var category = vars.get("$param.ContainerName_param");
+if (category)
+{
+    var categoryId = KeywordUtils.getCategoryIdByName(category);
+    if (categoryId)
+        cond.and("AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID", categoryId);
+    else
+        cond.and("1=2");
+}
+
 
 if (vars.get("$param.OnlyActives_param") == "true")
 {
diff --git a/entity/KeywordEntry_entity/recordcontainers/db/orderClauseProcess.js b/entity/KeywordEntry_entity/recordcontainers/db/orderClauseProcess.js
index e32403dc6e2df5902c3faeaf8f155a3b41a0f405..5a02e2d12c957ecfed1e5041c45eee1b970820b7 100644
--- a/entity/KeywordEntry_entity/recordcontainers/db/orderClauseProcess.js
+++ b/entity/KeywordEntry_entity/recordcontainers/db/orderClauseProcess.js
@@ -2,7 +2,7 @@ import("system.db");
 import("system.result");
 
 result.object({
-     "AB_KEYWORD_ENTRY.CONTAINER": db.ASCENDING
+     "CATEGORY_NAME": db.ASCENDING//CATEGORY_NAME is an alias for the subselect result
     ,"AB_KEYWORD_ENTRY.SORTING": db.ASCENDING
     ,"AB_KEYWORD_ENTRY.TITLE": db.ASCENDING
 });
\ No newline at end of file
diff --git a/entity/KeywordEntry_entity/recordcontainers/db/recordfieldmappings/ab_keyword_category_id.displayvalue/expression.js b/entity/KeywordEntry_entity/recordcontainers/db/recordfieldmappings/ab_keyword_category_id.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..663dd8a028dcf043b0c40b203526fab207da2937
--- /dev/null
+++ b/entity/KeywordEntry_entity/recordcontainers/db/recordfieldmappings/ab_keyword_category_id.displayvalue/expression.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Sql_lib");
+
+var res = newSelect("AB_KEYWORD_CATEGORY.NAME")
+    .from("AB_KEYWORD_CATEGORY")
+    .where("AB_KEYWORD_CATEGORY.AB_KEYWORD_CATEGORYID = AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID")
+    .toString();
+result.string(res);
\ No newline at end of file
diff --git a/entity/KeywordEntry_entity/recordcontainers/db/recordfieldmappings/container.value/expression.js b/entity/KeywordEntry_entity/recordcontainers/db/recordfieldmappings/container.value/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..663dd8a028dcf043b0c40b203526fab207da2937
--- /dev/null
+++ b/entity/KeywordEntry_entity/recordcontainers/db/recordfieldmappings/container.value/expression.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Sql_lib");
+
+var res = newSelect("AB_KEYWORD_CATEGORY.NAME")
+    .from("AB_KEYWORD_CATEGORY")
+    .where("AB_KEYWORD_CATEGORY.AB_KEYWORD_CATEGORYID = AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID")
+    .toString();
+result.string(res);
\ No newline at end of file
diff --git a/entity/KeywordEntry_entity/recordcontainers/jdito/cacheKeyProcess.js b/entity/KeywordEntry_entity/recordcontainers/jdito/cacheKeyProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bfdf07831c98f031ec47f82bc343659207b02e4
--- /dev/null
+++ b/entity/KeywordEntry_entity/recordcontainers/jdito/cacheKeyProcess.js
@@ -0,0 +1,5 @@
+import("CachedRecordContainer_lib");
+import("system.result")
+
+var res = CachedRecordContainerUtils.getCommonKey("$param.ContainerName_param","$param.OnlyActives_param");
+result.string(res);
diff --git a/entity/KeywordEntry_entity/recordcontainers/jdito/contentProcess.js b/entity/KeywordEntry_entity/recordcontainers/jdito/contentProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7fa2f2e399d563df82aef2d74d90aa34ac3b7eb6
--- /dev/null
+++ b/entity/KeywordEntry_entity/recordcontainers/jdito/contentProcess.js
@@ -0,0 +1,88 @@
+import("system.db");
+import("system.result");
+import("system.translate");
+import("system.util");
+import("system.vars");
+import("Sql_lib");
+
+
+var ENTRY_RESULT_INDEX_KEYID = 0;
+var ENTRY_RESULT_INDEX_TITLE = 1;
+var ENTRY_RESULT_INDEX_UID = 2;
+
+var CATEGORY_RESULT_INDEX_UID = 0;
+var CATEGORY_RESULT_INDEX_NAME = 1;
+var CATEGORY_RESULT_INDEX_SORTINGBY = 2;
+var CATEGORY_RESULT_INDEX_SORTINGDIR = 3;
+
+var resultSet = [];
+var keywordStatement = newSelect("AB_KEYWORD_ENTRY.KEYID, AB_KEYWORD_ENTRY.TITLE, AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID as UID")
+                .from("AB_KEYWORD_ENTRY")
+                .join("AB_KEYWORD_CATEGORY", "AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID = AB_KEYWORD_CATEGORY.AB_KEYWORD_CATEGORYID")
+                .where();
+            
+if (vars.get("$param.OnlyActives_param") == "true")
+{
+    keywordStatement.and("AB_KEYWORD_ENTRY.ISACTIVE", "1");
+}
+            
+if(vars.exists("$param.ContainerName_param"))
+{
+    var containerParam = vars.get("$param.ContainerName_param");
+    
+    var category = newSelect("AB_KEYWORD_CATEGORY.AB_KEYWORD_CATEGORYID, AB_KEYWORD_CATEGORY.NAME, AB_KEYWORD_CATEGORY.SORTINGBY, AB_KEYWORD_CATEGORY.SORTINGDIRECTION")
+                        .from("AB_KEYWORD_CATEGORY")
+                        .where("AB_KEYWORD_CATEGORY.NAME", containerParam)
+                        .arrayRow();
+                        
+    var sortingDirection = category[CATEGORY_RESULT_INDEX_SORTINGDIR];
+    var isSortingAsc = sortingDirection === "ASC";
+    var sortingField = "";
+    var isSortingByTranslatedTitle = false;
+    
+    switch(category[CATEGORY_RESULT_INDEX_SORTINGBY])
+    {
+            case "1":
+                sortingField = "AB_KEYWORD_ENTRY.TITLE";
+                break;
+            case "2":
+                sortingField = "AB_KEYWORD_ENTRY.TITLE";
+                isSortingByTranslatedTitle = true;
+                break;
+            case "0":
+            default:
+                sortingField = "AB_KEYWORD_ENTRY.SORTING";
+                break;
+    }
+    
+    
+    resultSet = keywordStatement
+                    .and("AB_KEYWORD_CATEGORY.NAME", containerParam)
+                    .orderBy(sortingField + " " + sortingDirection)
+                    .table()
+                    ;
+    
+    // If sorting is set to translated title (="2"), it must be done separately after DB query because translation can't be done in a query
+    if(isSortingByTranslatedTitle)
+    {
+        resultSet.sort(function(pFirst, pSecond) {
+            var titleA = translate.text(pFirst[CATEGORY_RESULT_INDEX_NAME]).toUpperCase();
+            var titleB = translate.text(pSecond[CATEGORY_RESULT_INDEX_NAME]).toUpperCase();
+            
+            if (titleA < titleB) {
+              return isSortingAsc ? -1 : 1;
+            }
+            if (titleA > titleB) {
+              return isSortingAsc ? 1 : -1;
+            }
+
+            return 0;   // Titles are equal
+        });
+    }
+}
+else
+{
+    resultSet = keywordStatement.orderBy("AB_KEYWORD_ENTRY.SORTING asc").table();
+}        
+
+result.object(resultSet);
diff --git a/entity/KnowledgeDiscussion_entity/KnowledgeDiscussion_entity.aod b/entity/KnowledgeDiscussion_entity/KnowledgeDiscussion_entity.aod
index 79d764acc09b4d2c7f678768bbbc646a4e2a1a14..ae567dde14c71703c4a112adbdf38ecc24896957 100644
--- a/entity/KnowledgeDiscussion_entity/KnowledgeDiscussion_entity.aod
+++ b/entity/KnowledgeDiscussion_entity/KnowledgeDiscussion_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>KnowledgeDiscussion_entity</name>
+  <title>Discussion</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/KnowledgeDiscussion_entity/documentation.adoc</documentation>
-  <title>Discussion</title>
   <grantCreateProcess>%aditoprj%/entity/KnowledgeDiscussion_entity/grantCreateProcess.js</grantCreateProcess>
   <grantUpdateProcess>%aditoprj%/entity/KnowledgeDiscussion_entity/grantUpdateProcess.js</grantUpdateProcess>
   <grantDeleteProcess>%aditoprj%/entity/KnowledgeDiscussion_entity/grantDeleteProcess.js</grantDeleteProcess>
diff --git a/entity/KnowledgeLink_entity/KnowledgeLink_entity.aod b/entity/KnowledgeLink_entity/KnowledgeLink_entity.aod
index 93ad79b6566ef190263ed841571ff5d38d9e2341..6b817307e82b88644ccaf5957c72db7d0606a134 100644
--- a/entity/KnowledgeLink_entity/KnowledgeLink_entity.aod
+++ b/entity/KnowledgeLink_entity/KnowledgeLink_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>KnowledgeLink_entity</name>
+  <title>Link</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/KnowledgeLink_entity/documentation.adoc</documentation>
-  <title>Link</title>
   <iconIdProcess>%aditoprj%/entity/KnowledgeLink_entity/iconIdProcess.js</iconIdProcess>
   <titlePlural>Links</titlePlural>
   <recordContainer>db</recordContainer>
@@ -58,17 +58,17 @@
     </entityConsumer>
     <entityConsumer>
       <name>Objects</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>ObjectProxy_entity</entityName>
-        <fieldName>FilteredObjects</fieldName>
-      </dependency>
       <children>
         <entityParameter>
           <name>Entity_param</name>
           <valueProcess>%aditoprj%/entity/KnowledgeLink_entity/entityfields/objects/children/entity_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ObjectProxy_entity</entityName>
+        <fieldName>FilteredObjects</fieldName>
+      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>KnowledgeManagementId_param</name>
@@ -79,14 +79,6 @@
       <targetContextField>OBJECT_TYPE</targetContextField>
       <targetIdField>ROW_ID</targetIdField>
       <documentation>%aditoprj%/entity/KnowledgeLink_entity/entityfields/byknowledgeid/documentation.adoc</documentation>
-      <dependencies>
-        <entityDependency>
-          <name>c3ed10c1-db55-4e55-9c18-2b8d400df033</name>
-          <entityName>KnowledgeManagement_entity</entityName>
-          <fieldName>LinksByKnowledgeId</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
       <children>
         <entityParameter>
           <name>ObjectType_param</name>
@@ -97,6 +89,14 @@
           <expose v="false" />
         </entityParameter>
       </children>
+      <dependencies>
+        <entityDependency>
+          <name>c3ed10c1-db55-4e55-9c18-2b8d400df033</name>
+          <entityName>KnowledgeManagement_entity</entityName>
+          <fieldName>LinksByKnowledgeId</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
     </entityProvider>
     <entityParameter>
       <name>RowId_param</name>
@@ -114,17 +114,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/KnowledgeLink_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>aea9524a-589e-47df-87d7-5f79519eb135</name>
-          <tableName>KNOWLEDGELINK</tableName>
-          <primaryKey>KNOWLEDGELINKID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>DATE_EDIT.value</name>
@@ -159,6 +150,15 @@
           <recordfield>KNOWLEDGELINK.USER_NEW</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>aea9524a-589e-47df-87d7-5f79519eb135</name>
+          <tableName>KNOWLEDGELINK</tableName>
+          <primaryKey>KNOWLEDGELINKID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/KnowledgeLink_entity/entityfields/object_type/displayValueProcess.js b/entity/KnowledgeLink_entity/entityfields/object_type/displayValueProcess.js
index 3922264dc37d0431952c91c91192f7c422453e7e..d966bec94ff0f576e1a1517e1916610086f415c3 100644
--- a/entity/KnowledgeLink_entity/entityfields/object_type/displayValueProcess.js
+++ b/entity/KnowledgeLink_entity/entityfields/object_type/displayValueProcess.js
@@ -1,7 +1,8 @@
+import("system.translate");
 import("system.neon");
 import("system.vars");
 import("system.result");
 import("Context_lib");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT && vars.get("$field.OBJECT_TYPE"))
-    result.string(ContextUtils.getTitle(vars.get("$field.OBJECT_TYPE")));
\ No newline at end of file
+    result.string(translate.text(ContextUtils.getTitle(vars.get("$field.OBJECT_TYPE"))));
\ No newline at end of file
diff --git a/entity/KnowledgeLink_entity/entityfields/row_id/displayValueProcess.js b/entity/KnowledgeLink_entity/entityfields/row_id/displayValueProcess.js
index 3dbbcf620a10c6c02d3326da49ece763bf738dc5..40928962d866a6000dd320e2dd0a557621adabe2 100644
--- a/entity/KnowledgeLink_entity/entityfields/row_id/displayValueProcess.js
+++ b/entity/KnowledgeLink_entity/entityfields/row_id/displayValueProcess.js
@@ -7,5 +7,6 @@ import("Context_lib");
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$field.ROW_ID")) {
     result.string("");
 } else if (vars.exists("$field.OBJECT_TYPE") && vars.get("$field.OBJECT_TYPE")) {
-    result.string(db.cell(ContextUtils.getNameSql(vars.get("$field.OBJECT_TYPE"), vars.get("$field.ROW_ID"))));
+    
+    result.string(ContextUtils.getTitleByContext(vars.get("$field.OBJECT_TYPE"), vars.get("$field.ROW_ID")));
 }
\ No newline at end of file
diff --git a/entity/KnowledgeManagementTagList_entity/KnowledgeManagementTagList_entity.aod b/entity/KnowledgeManagementTagList_entity/KnowledgeManagementTagList_entity.aod
index 3a8e46df4e9a2abe34e632740db8f66c0a082da0..ce3999d283e928e1d8f13079bf2738c3a5aba3ed 100644
--- a/entity/KnowledgeManagementTagList_entity/KnowledgeManagementTagList_entity.aod
+++ b/entity/KnowledgeManagementTagList_entity/KnowledgeManagementTagList_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>KnowledgeManagementTagList_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/KnowledgeManagementTagList_entity/documentation.adoc</documentation>
diff --git a/entity/KnowledgeManagementTags_entity/KnowledgeManagementTags_entity.aod b/entity/KnowledgeManagementTags_entity/KnowledgeManagementTags_entity.aod
index 14f18612c20c2205a6932245f0baa06728d0b0e1..3047fb341eae892c2ca271f2fd24f24aec096ac1 100644
--- a/entity/KnowledgeManagementTags_entity/KnowledgeManagementTags_entity.aod
+++ b/entity/KnowledgeManagementTags_entity/KnowledgeManagementTags_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>KnowledgeManagementTags_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/KnowledgeManagementTags_entity/documentation.adoc</documentation>
diff --git a/entity/KnowledgeManagement_entity/KnowledgeManagement_entity.aod b/entity/KnowledgeManagement_entity/KnowledgeManagement_entity.aod
index 0d58306fea52a8b0dce7324e1232499c395522ff..4cc143f137158ab3bc3da5e2940ffca3b264e299 100644
--- a/entity/KnowledgeManagement_entity/KnowledgeManagement_entity.aod
+++ b/entity/KnowledgeManagement_entity/KnowledgeManagement_entity.aod
@@ -1,13 +1,14 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>KnowledgeManagement_entity</name>
+  <title>Knowledge</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/KnowledgeManagement_entity/documentation.adoc</documentation>
   <icon>VAADIN:ACADEMY_CAP</icon>
-  <title>Knowledge</title>
   <grantUpdateProcess>%aditoprj%/entity/KnowledgeManagement_entity/grantUpdateProcess.js</grantUpdateProcess>
   <grantDeleteProcess>%aditoprj%/entity/KnowledgeManagement_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/KnowledgeManagement_entity/contentTitleProcess.js</contentTitleProcess>
+  <afterUiInit>%aditoprj%/entity/KnowledgeManagement_entity/afterUiInit.js</afterUiInit>
   <afterOperatingState>%aditoprj%/entity/KnowledgeManagement_entity/afterOperatingState.js</afterOperatingState>
   <useFavorites v="true" />
   <iconIdProcess>%aditoprj%/entity/KnowledgeManagement_entity/iconIdProcess.js</iconIdProcess>
@@ -101,36 +102,44 @@
       <refreshParent v="true" />
       <state>EDITABLE</state>
       <onValidation>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/tagsbyknowledgeid/onValidation.js</onValidation>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KnowledgeManagementTags_entity</entityName>
-        <fieldName>ByKnowledgeManagementId</fieldName>
-      </dependency>
       <children>
         <entityParameter>
           <name>KnowledgeManagementId_param</name>
           <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/tagsbyknowledgeid/children/knowledgemanagementid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KnowledgeManagementTags_entity</entityName>
+        <fieldName>ByKnowledgeManagementId</fieldName>
+      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>DiscussionsByKnowledgeId</name>
       <refreshParent v="true" />
-      <dependency>
-        <name>dependency</name>
-        <entityName>KnowledgeDiscussion_entity</entityName>
-        <fieldName>ByKnowledgeId</fieldName>
-      </dependency>
       <children>
         <entityParameter>
           <name>KnowledgeId_param</name>
           <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/discussionsbyknowledgeid/children/knowledgeid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KnowledgeDiscussion_entity</entityName>
+        <fieldName>ByKnowledgeId</fieldName>
+      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>Provider</name>
       <documentation>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/provider/documentation.adoc</documentation>
+      <dependencies>
+        <entityDependency>
+          <name>20c983b0-4575-4bd3-83ce-477458ece62d</name>
+          <entityName>Product_entity</entityName>
+          <fieldName>KnowledgeManagements</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
     </entityProvider>
     <entityConsumer>
       <name>PersonContacts</name>
@@ -142,42 +151,37 @@
     </entityConsumer>
     <entityConsumer>
       <name>KeywordKnowledgeType</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/keywordknowledgetype/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>KeywordPublish</name>
       <dependency>
         <name>dependency</name>
         <entityName>KeywordEntry_entity</entityName>
         <fieldName>SpecificContainerKeywords</fieldName>
       </dependency>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordPublish</name>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/keywordpublish/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
     </entityConsumer>
     <entityField>
       <name>indexTag</name>
     </entityField>
     <entityConsumer>
       <name>LinkedDocuments</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>Documents</fieldName>
-      </dependency>
       <children>
         <entityParameter>
           <name>AssignmentTable_param</name>
@@ -188,6 +192,11 @@
           <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/linkeddocuments/children/assignmentrowid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>Documents</fieldName>
+      </dependency>
     </entityConsumer>
     <entityActionField>
       <name>openEntryAsMail</name>
@@ -195,22 +204,23 @@
       <onActionProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/openentryasmail/onActionProcess.js</onActionProcess>
       <isMenuAction v="true" />
       <isSelectionAction v="true" />
+      <iconId>VAADIN:ENVELOPE</iconId>
       <state>INVISIBLE</state>
     </entityActionField>
     <entityConsumer>
       <name>LinksByKnowledgeId</name>
       <refreshParent v="true" />
-      <dependency>
-        <name>dependency</name>
-        <entityName>KnowledgeLink_entity</entityName>
-        <fieldName>ByKnowledgeId</fieldName>
-      </dependency>
       <children>
         <entityParameter>
           <name>KnowledgeManagementId_param</name>
           <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/linksbyknowledgeid/children/knowledgemanagementid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KnowledgeLink_entity</entityName>
+        <fieldName>ByKnowledgeId</fieldName>
+      </dependency>
     </entityConsumer>
     <entityField>
       <name>LastChange</name>
@@ -219,17 +229,17 @@
     </entityField>
     <entityConsumer>
       <name>LogHistories</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>LogHistory_entity</entityName>
-        <fieldName>LogHistoryProvider</fieldName>
-      </dependency>
       <children>
         <entityParameter>
           <name>tablenames_param</name>
           <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
+      <dependency>
+        <name>dependency</name>
+        <entityName>LogHistory_entity</entityName>
+        <fieldName>LogHistoryProvider</fieldName>
+      </dependency>
     </entityConsumer>
     <entityActionField>
       <name>exportHTML_action</name>
@@ -271,11 +281,6 @@
       <name>KnowledgeRoles</name>
       <stateProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/knowledgeroles/stateProcess.js</stateProcess>
       <onValidation>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/knowledgeroles/onValidation.js</onValidation>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KnowledgeRole_entity</entityName>
-        <fieldName>KnowledgeRole</fieldName>
-      </dependency>
       <children>
         <entityParameter>
           <name>KnowledgeManagement_param</name>
@@ -287,14 +292,14 @@
           <expose v="true" />
         </entityParameter>
       </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Tasks</name>
       <dependency>
         <name>dependency</name>
-        <entityName>Task_entity</entityName>
-        <fieldName>Tasks</fieldName>
+        <entityName>KnowledgeRole_entity</entityName>
+        <fieldName>KnowledgeRole</fieldName>
       </dependency>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Tasks</name>
       <children>
         <entityParameter>
           <name>ObjectId_param</name>
@@ -309,6 +314,11 @@
           <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/tasks/children/presetlinks_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Task_entity</entityName>
+        <fieldName>Tasks</fieldName>
+      </dependency>
     </entityConsumer>
     <entityField>
       <name>RESPONSIBLE_CONTACT_ID</name>
@@ -326,25 +336,24 @@
       <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/publish/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/publish/displayValueProcess.js</displayValueProcess>
     </entityField>
+    <entityParameter>
+      <name>ObjectRowId_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityParameter>
+      <name>ObjectType_param</name>
+      <expose v="true" />
+    </entityParameter>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <isRequireContainerFiltering v="true" />
       <conditionProcess>%aditoprj%/entity/KnowledgeManagement_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/KnowledgeManagement_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
       <onDBInsert>%aditoprj%/entity/KnowledgeManagement_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/KnowledgeManagement_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
-      <linkInformation>
-        <linkInformation>
-          <name>9d4a7198-a4d1-45b3-867f-bf12cd558274</name>
-          <tableName>KNOWLEDGEMANAGEMENT</tableName>
-          <primaryKey>KNOWLEDGEMANAGEMENTID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>AUTHOR_CONTACT_ID.value</name>
@@ -441,6 +450,15 @@
           <expression>%aditoprj%/entity/KnowledgeManagement_entity/recordcontainers/db/recordfieldmappings/publish.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>9d4a7198-a4d1-45b3-867f-bf12cd558274</name>
+          <tableName>KNOWLEDGEMANAGEMENT</tableName>
+          <primaryKey>KNOWLEDGEMANAGEMENTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
       <filterExtensions>
         <filterExtension>
           <name>TagFilter</name>
diff --git a/entity/KnowledgeManagement_entity/afterUiInit.js b/entity/KnowledgeManagement_entity/afterUiInit.js
new file mode 100644
index 0000000000000000000000000000000000000000..d90e107fcd4e6770480fdf4fed9b89f5b75cecb9
--- /dev/null
+++ b/entity/KnowledgeManagement_entity/afterUiInit.js
@@ -0,0 +1,11 @@
+import("system.vars");
+import("system.neon");
+
+if(vars.get("$param.ObjectRowId_param") && vars.get("$param.ObjectType_param"))
+{
+    neon.addRecord("LinksByKnowledgeId", 
+    {
+        "ROW_ID": vars.get("$param.ObjectRowId_param"),
+        "OBJECT_TYPE": vars.get("$param.ObjectType_param")
+    });
+}
diff --git a/entity/KnowledgeManagement_entity/recordcontainers/db/conditionProcess.js b/entity/KnowledgeManagement_entity/recordcontainers/db/conditionProcess.js
index d73eb83fe46705ad872645c30e31657f9aea9436..1fafde255863d73379c9939c0639ac59e0039645 100644
--- a/entity/KnowledgeManagement_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/KnowledgeManagement_entity/recordcontainers/db/conditionProcess.js
@@ -23,4 +23,14 @@ if(vars.exists("$param.isDashlet_param") && vars.get("$param.isDashlet_param"))
         .and("KNOWLEDGETAG.TAG", "News"), SqlBuilder.EXISTS());
 }
 
+if(vars.get("$param.ObjectRowId_param") && vars.get("$param.ObjectType_param"))
+{
+    cond.and("KNOWLEDGEMANAGEMENT.KNOWLEDGEMANAGEMENTID", 
+            newSelect("KNOWLEDGEMANAGEMENT_ID")
+            .from("KNOWLEDGELINK")
+            .where("KNOWLEDGELINK.OBJECT_TYPE", "$param.ObjectType_param")
+            .and("KNOWLEDGELINK.ROW_ID", "$param.ObjectRowId_param"),
+            SqlBuilder.IN());
+}
+
 result.string(cond.toString());
\ No newline at end of file
diff --git a/entity/KnowledgeNewsFeed_entity/KnowledgeNewsFeed_entity.aod b/entity/KnowledgeNewsFeed_entity/KnowledgeNewsFeed_entity.aod
index aa197ca8d2a1e231c8296d8cf579cc435fc5a060..044c654b107b2bcf87397e6bb3559dd3b6848081 100644
--- a/entity/KnowledgeNewsFeed_entity/KnowledgeNewsFeed_entity.aod
+++ b/entity/KnowledgeNewsFeed_entity/KnowledgeNewsFeed_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>KnowledgeNewsFeed_entity</name>
+  <title>Feed</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/KnowledgeNewsFeed_entity/documentation.adoc</documentation>
-  <title>Feed</title>
   <recordContainer>recordContainer</recordContainer>
   <entityFields>
     <entityProvider>
diff --git a/entity/KnowledgeRole_entity/KnowledgeRole_entity.aod b/entity/KnowledgeRole_entity/KnowledgeRole_entity.aod
index 427a175e7b5d20abc6cabca10d456d38d1512933..a3aa8d298eaa34a733a08787263629302027f518 100644
--- a/entity/KnowledgeRole_entity/KnowledgeRole_entity.aod
+++ b/entity/KnowledgeRole_entity/KnowledgeRole_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>KnowledgeRole_entity</name>
+  <title>Knowledge Role</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/KnowledgeRole_entity/documentation.adoc</documentation>
-  <title>Knowledge Role</title>
   <recordContainer>db</recordContainer>
   <entityFields>
     <entityProvider>
@@ -75,19 +75,10 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <hasDependentRecords v="true" />
       <conditionProcess>%aditoprj%/entity/KnowledgeRole_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <alias>Data_alias</alias>
       <title>Knowledge Roles</title>
-      <linkInformation>
-        <linkInformation>
-          <name>16e6127e-67c6-4dce-b2e9-4b2b951dbcd4</name>
-          <tableName>KNOWLEDGEROLES</tableName>
-          <primaryKey>KNOWLEDGEROLESID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>ROLES.value</name>
@@ -108,6 +99,15 @@
           <expression>%aditoprj%/entity/KnowledgeRole_entity/recordcontainers/db/recordfieldmappings/roles.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>16e6127e-67c6-4dce-b2e9-4b2b951dbcd4</name>
+          <tableName>KNOWLEDGEROLES</tableName>
+          <primaryKey>KNOWLEDGEROLESID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/Language_entity/Language_entity.aod b/entity/Language_entity/Language_entity.aod
index 2afefb3f30bcad00355211100c7b648e58118ddf..84fea3b199336bf18913f8a69c0211add91721c7 100644
--- a/entity/Language_entity/Language_entity.aod
+++ b/entity/Language_entity/Language_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Language_entity</name>
+  <title>Language</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Language_entity/documentation.adoc</documentation>
-  <title>Language</title>
   <contentTitleProcess>%aditoprj%/entity/Language_entity/contentTitleProcess.js</contentTitleProcess>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -22,11 +22,11 @@
     </entityField>
     <entityField>
       <name>NAME_LATIN</name>
+      <displayValueProcess>%aditoprj%/entity/Language_entity/entityfields/name_latin/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>ISACTIVE</name>
       <contentType>BOOLEAN</contentType>
-      <dropDownProcess>%aditoprj%/entity/Language_entity/entityfields/isactive/dropDownProcess.js</dropDownProcess>
     </entityField>
     <entityProvider>
       <name>ISO3Name</name>
@@ -133,20 +133,11 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <isPageable v="false" />
       <conditionProcess>%aditoprj%/entity/Language_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <alias>Data_alias</alias>
       <cacheType>GLOBAL</cacheType>
       <cacheKeyProcess>%aditoprj%/entity/Language_entity/recordcontainers/db/cacheKeyProcess.js</cacheKeyProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>3cd06d7c-16c3-49e5-87cd-672a7222e613</name>
-          <tableName>AB_LANGUAGE</tableName>
-          <primaryKey>ISO3</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>ISACTIVE.value</name>
@@ -175,6 +166,15 @@
           <isLookupFilter v="false" />
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>3cd06d7c-16c3-49e5-87cd-672a7222e613</name>
+          <tableName>AB_LANGUAGE</tableName>
+          <primaryKey>ISO3</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/Language_entity/entityfields/isactive/dropDownProcess.js b/entity/Language_entity/entityfields/isactive/dropDownProcess.js
deleted file mode 100644
index 89a5a5ca23dcc6e07fca72ddc1ab28514de63d39..0000000000000000000000000000000000000000
--- a/entity/Language_entity/entityfields/isactive/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-    ["1", translate.text("Yes")]
-    ,["0", translate.text("No")]
-    ]);
\ No newline at end of file
diff --git a/entity/Language_entity/entityfields/name_latin/displayValueProcess.js b/entity/Language_entity/entityfields/name_latin/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..60728b855572f3068a1d7296e2a9e23550eb97d5
--- /dev/null
+++ b/entity/Language_entity/entityfields/name_latin/displayValueProcess.js
@@ -0,0 +1,5 @@
+import("system.translate");
+import("system.vars");
+import("system.result");
+
+result.string(translate.text(vars.get("$this.value")));
\ No newline at end of file
diff --git a/entity/LeadLog_entity/LeadLog_entity.aod b/entity/LeadLog_entity/LeadLog_entity.aod
index ca424a627c7dd8b54e6c90a2383f372981e6c5d3..60e321526ff8163355ca475842c04ef2ff6af8aa 100644
--- a/entity/LeadLog_entity/LeadLog_entity.aod
+++ b/entity/LeadLog_entity/LeadLog_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>LeadLog_entity</name>
   <description></description>
   <majorModelMode>DISTRIBUTED</majorModelMode>
@@ -89,18 +89,9 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/LeadLog_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/LeadLog_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>0c8cdc60-c8dd-4d03-9878-8312ebca21f9</name>
-          <tableName>LEADLOG</tableName>
-          <primaryKey>LEADLOGID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>LEADLOGID.value</name>
@@ -143,6 +134,15 @@
           <isLookupFilter v="true" />
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>0c8cdc60-c8dd-4d03-9878-8312ebca21f9</name>
+          <tableName>LEADLOG</tableName>
+          <primaryKey>LEADLOGID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/LeadTemp_entity/LeadTemp_entity.aod b/entity/LeadTemp_entity/LeadTemp_entity.aod
index 51582fefafa728a3a3296b4e8b9de55ce4c74062..b8ae307bfe5693e730a607c25c2f74d9f6cbce4d 100644
--- a/entity/LeadTemp_entity/LeadTemp_entity.aod
+++ b/entity/LeadTemp_entity/LeadTemp_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>LeadTemp_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/LeadTemp_entity/documentation.adoc</documentation>
@@ -172,18 +172,9 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/LeadTemp_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/LeadTemp_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>d7b0d323-5516-4e53-a29f-57f708545ba1</name>
-          <tableName>LEADTEMP</tableName>
-          <primaryKey>LEADTEMPID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>COLUMN01.value</name>
@@ -386,6 +377,15 @@
           <isLookupFilter v="true" />
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>d7b0d323-5516-4e53-a29f-57f708545ba1</name>
+          <tableName>LEADTEMP</tableName>
+          <primaryKey>LEADTEMPID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/Lead_entity/Lead_entity.aod b/entity/Lead_entity/Lead_entity.aod
index 6a8a9fed94965be2a51c7c27cef30ed371dc7631..f4f73b84ea74b558b60dc4df4fc0f0a4993ac336 100644
--- a/entity/Lead_entity/Lead_entity.aod
+++ b/entity/Lead_entity/Lead_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Lead_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Lead_entity/documentation.adoc</documentation>
@@ -129,17 +129,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/Lead_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>c4a59fcc-2c94-4944-ae57-790a4adcca30</name>
-          <tableName>LEAD</tableName>
-          <primaryKey>LEADID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>LEAD_ADDRESS.value</name>
@@ -220,6 +211,15 @@
           <recordfield>LEAD.ORGANISATION_ID</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>c4a59fcc-2c94-4944-ae57-790a4adcca30</name>
+          <tableName>LEAD</tableName>
+          <primaryKey>LEADID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/LeadimportMappingAssistant_entity/LeadimportMappingAssistant_entity.aod b/entity/LeadimportMappingAssistant_entity/LeadimportMappingAssistant_entity.aod
index f985150a0e1cb55d7858aa3540456b609937f07d..1d52cd2f81549670b246a953ec4836f1cc769230 100644
--- a/entity/LeadimportMappingAssistant_entity/LeadimportMappingAssistant_entity.aod
+++ b/entity/LeadimportMappingAssistant_entity/LeadimportMappingAssistant_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>LeadimportMappingAssistant_entity</name>
+  <title>Mapping</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/LeadimportMappingAssistant_entity/documentation.adoc</documentation>
-  <title>Mapping</title>
   <titlePlural>Mappings</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -54,6 +54,7 @@
     </entityField>
     <entityProvider>
       <name>LeadimportMapping</name>
+      <documentation>%aditoprj%/entity/LeadimportMappingAssistant_entity/entityfields/leadimportmapping/documentation.adoc</documentation>
       <dependencies>
         <entityDependency>
           <name>89a94a8b-9447-47a6-94c7-240e25aff7a8</name>
@@ -90,18 +91,9 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/LeadimportMappingAssistant_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/LeadimportMappingAssistant_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>61a456d3-b7b5-4042-ae4c-6245d420da3b</name>
-          <tableName>LEADIMPORTMAPPINGASSISTANT</tableName>
-          <primaryKey>LEADIMPORTMAPPINGASSISTANTID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>DATE_EDIT.value</name>
@@ -140,6 +132,15 @@
           <recordfield>LEADIMPORTMAPPINGASSISTANT.USER_NEW</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>61a456d3-b7b5-4042-ae4c-6245d420da3b</name>
+          <tableName>LEADIMPORTMAPPINGASSISTANT</tableName>
+          <primaryKey>LEADIMPORTMAPPINGASSISTANTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/LeadimportMappingAssistant_entity/entityfields/leadimportmapping/documentation.adoc b/entity/LeadimportMappingAssistant_entity/entityfields/leadimportmapping/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..1de79a30c2cbfcfd954c9178e93d7a211cb5fd9c
--- /dev/null
+++ b/entity/LeadimportMappingAssistant_entity/entityfields/leadimportmapping/documentation.adoc
@@ -0,0 +1 @@
+Provides the LeadimportMappings of the passed Leadimport.
\ No newline at end of file
diff --git a/entity/Leadimport_entity/Leadimport_entity.aod b/entity/Leadimport_entity/Leadimport_entity.aod
index e14d1cf8eba7469610518dc02aab6709166a5fa4..6dd8755383e13bf7bbebf6c77c00bf0e3f0688dc 100644
--- a/entity/Leadimport_entity/Leadimport_entity.aod
+++ b/entity/Leadimport_entity/Leadimport_entity.aod
@@ -1,10 +1,13 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Leadimport_entity</name>
+  <title>Lead Import</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Leadimport_entity/documentation.adoc</documentation>
   <icon>NEON:IMPORT</icon>
-  <title>Lead Import</title>
+  <siblings>
+    <element>ImportField_Entity</element>
+  </siblings>
   <grantUpdate v="true" />
   <grantUpdateProcess>%aditoprj%/entity/Leadimport_entity/grantUpdateProcess.js</grantUpdateProcess>
   <grantDelete v="true" />
@@ -16,6 +19,27 @@
   <titlePlural>Lead Imports</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
+    <entityActionGroup>
+      <name>observeActionGroup</name>
+      <children>
+        <entityActionField>
+          <name>observe</name>
+          <title>Observe</title>
+          <onActionProcess>%aditoprj%/entity/Leadimport_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js</onActionProcess>
+          <isObjectAction v="true" />
+          <iconId>VAADIN:EYE</iconId>
+          <stateProcess>%aditoprj%/entity/Leadimport_entity/entityfields/observeactiongroup/children/observe/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Leadimport_entity/entityfields/observeactiongroup/children/observe/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>cancelObservation</name>
+          <onActionProcess>%aditoprj%/entity/Leadimport_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:EYE_SLASH</iconId>
+          <stateProcess>%aditoprj%/entity/Leadimport_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Leadimport_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
     <entityProvider>
       <name>#PROVIDER</name>
       <dependencies>
@@ -53,6 +77,7 @@
       <title>Import date</title>
       <contentType>DATE</contentType>
       <resolution>DAY</resolution>
+      <groupable v="false" />
       <valueProcess>%aditoprj%/entity/Leadimport_entity/entityfields/leadimport_date/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
@@ -76,6 +101,7 @@
       <isObjectAction v="false" />
       <isSelectionAction v="false" />
       <iconId>VAADIN:INBOX</iconId>
+      <stateProcess>%aditoprj%/entity/Leadimport_entity/entityfields/transferdata/stateProcess.js</stateProcess>
     </entityActionField>
     <entityField>
       <name>SENTENCESEPARATOR</name>
@@ -83,6 +109,7 @@
       <mandatory v="true" />
       <dropDownProcess>%aditoprj%/entity/Leadimport_entity/entityfields/sentenceseparator/dropDownProcess.js</dropDownProcess>
       <textInputAllowed v="true" />
+      <displayValueProcess>%aditoprj%/entity/Leadimport_entity/entityfields/sentenceseparator/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>FIELDSEPARATOR</name>
@@ -90,6 +117,7 @@
       <mandatory v="true" />
       <dropDownProcess>%aditoprj%/entity/Leadimport_entity/entityfields/fieldseparator/dropDownProcess.js</dropDownProcess>
       <textInputAllowed v="true" />
+      <displayValueProcess>%aditoprj%/entity/Leadimport_entity/entityfields/fieldseparator/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>FIELDDELIMITERS</name>
@@ -97,6 +125,7 @@
       <mandatory v="true" />
       <dropDownProcess>%aditoprj%/entity/Leadimport_entity/entityfields/fielddelimiters/dropDownProcess.js</dropDownProcess>
       <textInputAllowed v="true" />
+      <displayValueProcess>%aditoprj%/entity/Leadimport_entity/entityfields/fielddelimiters/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>IMPORTSOURCE</name>
@@ -143,6 +172,7 @@
     </entityField>
     <entityProvider>
       <name>ImportField</name>
+      <documentation>%aditoprj%/entity/Leadimport_entity/entityfields/importfield/documentation.adoc</documentation>
       <dependencies>
         <entityDependency>
           <name>ae9f958f-b816-4826-8579-9f01362e0596</name>
@@ -154,6 +184,7 @@
     </entityProvider>
     <entityConsumer>
       <name>ImportFieldID</name>
+      <onValidation>%aditoprj%/entity/Leadimport_entity/entityfields/importfieldid/onValidation.js</onValidation>
       <dependency>
         <name>dependency</name>
         <entityName>ImportField_Entity</entityName>
@@ -336,23 +367,21 @@
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityActionField>
+      <name>ReloadTransferdData</name>
+      <title>Search for new Entries</title>
+      <onActionProcess>%aditoprj%/entity/Leadimport_entity/entityfields/reloadtransferddata/onActionProcess.js</onActionProcess>
+      <isObjectAction v="false" />
+      <iconId>VAADIN:REFRESH</iconId>
+    </entityActionField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <onDBInsert>%aditoprj%/entity/Leadimport_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/Leadimport_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/Leadimport_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>afe18957-2a28-433c-9cce-515dad875ca0</name>
-          <tableName>LEADIMPORT</tableName>
-          <primaryKey>LEADIMPORTID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>LEADIMPORTID.value</name>
@@ -423,6 +452,15 @@
           <isLookupFilter v="false" />
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>afe18957-2a28-433c-9cce-515dad875ca0</name>
+          <tableName>LEADIMPORT</tableName>
+          <primaryKey>LEADIMPORTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/Leadimport_entity/entityfields/fielddelimiters/displayValueProcess.js b/entity/Leadimport_entity/entityfields/fielddelimiters/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..60728b855572f3068a1d7296e2a9e23550eb97d5
--- /dev/null
+++ b/entity/Leadimport_entity/entityfields/fielddelimiters/displayValueProcess.js
@@ -0,0 +1,5 @@
+import("system.translate");
+import("system.vars");
+import("system.result");
+
+result.string(translate.text(vars.get("$this.value")));
\ No newline at end of file
diff --git a/entity/Leadimport_entity/entityfields/fieldseparator/displayValueProcess.js b/entity/Leadimport_entity/entityfields/fieldseparator/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..60728b855572f3068a1d7296e2a9e23550eb97d5
--- /dev/null
+++ b/entity/Leadimport_entity/entityfields/fieldseparator/displayValueProcess.js
@@ -0,0 +1,5 @@
+import("system.translate");
+import("system.vars");
+import("system.result");
+
+result.string(translate.text(vars.get("$this.value")));
\ No newline at end of file
diff --git a/entity/Leadimport_entity/entityfields/importfield/documentation.adoc b/entity/Leadimport_entity/entityfields/importfield/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..863a0f3680d76280d15fca556ff172a61f4c0029
--- /dev/null
+++ b/entity/Leadimport_entity/entityfields/importfield/documentation.adoc
@@ -0,0 +1 @@
+Provides all Leadimports.
\ No newline at end of file
diff --git a/entity/Leadimport_entity/entityfields/importfieldid/onValidation.js b/entity/Leadimport_entity/entityfields/importfieldid/onValidation.js
new file mode 100644
index 0000000000000000000000000000000000000000..f4d8315e3d6836e3388712be79c8fbcd701ee311
--- /dev/null
+++ b/entity/Leadimport_entity/entityfields/importfieldid/onValidation.js
@@ -0,0 +1,60 @@
+import("system.translate");
+import("system.result");
+import("Sql_lib");
+import("system.vars");
+
+var attributeChanges = {
+    "LASTNAME" : [],
+    "NAME" : []
+};
+
+var attributeChangesKeys = Object.keys(attributeChanges);
+
+var idMapping = {};
+var consumerField = "ImportFieldID";
+var changedRows = vars.get("$field." + consumerField + ".changedRows");
+
+var importdata = newSelect(["IMPORTFIELD.MAPPINGFIELD", "IMPORTFIELD.IMPORTFIELDID"])
+    .from("IMPORTFIELD")
+    .where("IMPORTFIELD.LEADIMPORT_ID", vars.get("$field.LEADIMPORTID"))
+    .and("IMPORTFIELD.MAPPINGFIELD", attributeChangesKeys, SqlBuilder.IN())
+    .table();
+importdata.forEach(function (row) {
+    _addNewID(row[0], row[1]);
+});
+        
+if (changedRows)
+{
+    changedRows.forEach(function (row)
+    {
+        if (!idMapping[row.IMPORTFIELDID])
+        {
+            _addNewID(row.MAPPINGFIELD, row.IMPORTFIELDID);
+        }
+        else
+        {
+            var index = attributeChanges[idMapping[row.IMPORTFIELDID]].indexOf(row.IMPORTFIELDID);
+            if (index > -1)
+            {
+                attributeChanges[idMapping[row.IMPORTFIELDID]].splice(index, 1);
+                _addNewID(row.MAPPINGFIELD, row.IMPORTFIELDID);
+            }
+        }
+        
+    });
+}
+
+if (!attributeChanges.NAME.length && !attributeChanges.LASTNAME.length && changedRows.length)
+{
+    result.string(translate.text("The Import Fields \"Lastname\" or \"Organisation\" have to be mapped!"));
+}
+
+function _addNewID (pMappingField, pImportId) 
+{
+    if (attributeChanges[pMappingField])
+    {
+        attributeChanges[pMappingField].push(pImportId);
+        idMapping[pImportId] = pMappingField;
+    }
+}
+    
\ No newline at end of file
diff --git a/entity/Leadimport_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js b/entity/Leadimport_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..35102b677cbb52d1d4a9723a42cceaef3fd5ea03
--- /dev/null
+++ b/entity/Leadimport_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.cancelAction();
\ No newline at end of file
diff --git a/entity/Leadimport_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js b/entity/Leadimport_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a0350f5edebe397b96a84766e7cdb8d99f77ee5
--- /dev/null
+++ b/entity/Leadimport_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Leadimport_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js b/entity/Leadimport_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..87553a373a055879a524774695e4c18bcab617e9
--- /dev/null
+++ b/entity/Leadimport_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("Observation_lib");
+
+result.string(Observation.cancelActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Leadimport_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js b/entity/Leadimport_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..66cf7bc2991c142ee0753fec88e151d3dcf71141
--- /dev/null
+++ b/entity/Leadimport_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.insertAction();
\ No newline at end of file
diff --git a/entity/Leadimport_entity/entityfields/observeactiongroup/children/observe/stateProcess.js b/entity/Leadimport_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..461276ea5e1e98e967047207ac6d654225a1b1c6
--- /dev/null
+++ b/entity/Leadimport_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (!Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Leadimport_entity/entityfields/observeactiongroup/children/observe/titleProcess.js b/entity/Leadimport_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..abdfbd3d7c4aff7beba9ff22cbb39abc8d195a30
--- /dev/null
+++ b/entity/Leadimport_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Observation_lib");
+import("system.vars");
+
+result.string(Observation.observeActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Leadimport_entity/entityfields/reloadtransferddata/onActionProcess.js b/entity/Leadimport_entity/entityfields/reloadtransferddata/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..859ea6ca00cc4430746641e87e886e9c0bfa073c
--- /dev/null
+++ b/entity/Leadimport_entity/entityfields/reloadtransferddata/onActionProcess.js
@@ -0,0 +1,2 @@
+import("system.neon");
+neon.refresh();
\ No newline at end of file
diff --git a/entity/Leadimport_entity/entityfields/sentenceseparator/displayValueProcess.js b/entity/Leadimport_entity/entityfields/sentenceseparator/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..60728b855572f3068a1d7296e2a9e23550eb97d5
--- /dev/null
+++ b/entity/Leadimport_entity/entityfields/sentenceseparator/displayValueProcess.js
@@ -0,0 +1,5 @@
+import("system.translate");
+import("system.vars");
+import("system.result");
+
+result.string(translate.text(vars.get("$this.value")));
\ No newline at end of file
diff --git a/entity/Leadimport_entity/entityfields/sentenceseparator/dropDownProcess.js b/entity/Leadimport_entity/entityfields/sentenceseparator/dropDownProcess.js
index b955dae75d3b2e600f98bdae783e378cff727af3..6ba802190fa0bc641f9a6c53aa6b8fdf9f1250c7 100644
--- a/entity/Leadimport_entity/entityfields/sentenceseparator/dropDownProcess.js
+++ b/entity/Leadimport_entity/entityfields/sentenceseparator/dropDownProcess.js
@@ -1,4 +1,6 @@
 import("system.translate");
 import("system.result");
 
-result.object([["carriage return and line feed", translate.text("carriage return and line feed")]])
\ No newline at end of file
+result.object([
+    ["carriage return and line feed", translate.text("carriage return and line feed")]
+]);
\ No newline at end of file
diff --git a/entity/Leadimport_entity/entityfields/transferdata/onActionProcess.js b/entity/Leadimport_entity/entityfields/transferdata/onActionProcess.js
index 030b5064fd4b0f485c28ae2841dfed08842b14b1..39d636748fcfa10af516a8688fb96ac3c5ee97a9 100644
--- a/entity/Leadimport_entity/entityfields/transferdata/onActionProcess.js
+++ b/entity/Leadimport_entity/entityfields/transferdata/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.translate");
 import("ExportTemplate_lib");
 import("Leadimport_lib");
 import("system.question");
@@ -10,44 +11,57 @@ import("system.db");
 import("system.vars");
 import("system.neon");
 
-var binMetadatas = db.getBinaryMetadata("LEADIMPORT", "IMPORTFILE", vars.get("$field.LEADIMPORTID"), false, SqlUtils.getBinariesAlias(), "");
-
-if (binMetadatas.length > 0)
+var execute = true;
+var logCount = newSelect("count(*)")
+                        .from("LEADLOG")
+                        .where("LEADLOG.LEADIMPORT_ID", vars.get("$field.LEADIMPORTID"))
+                        .cell();
+if(logCount > 0)
+{
+    execute = question.askYesNo("Leadimport", translate.text("The data of this Leadimport has already been transfered. Do you want to transfer it again?"), false);
+}
+if(execute)
 {
-    var binId = binMetadatas[0].id;
-    
-    var assignmentRowId = vars.get("$field.LEADIMPORTID");
-    var name = vars.get("$field.NAME");
-    var user = vars.get("$sys.user");
-    
-    var fieldSep = ExportTemplateUtils.getFieldSeparator(vars.get("$field.FIELDSEPARATOR"));
-    var fieldLimit = ExportTemplateUtils.getFieldDeLimiter(vars.get("$field.FIELDDELIMITERS"));
-    var recordSep = ExportTemplateUtils.getSentenceSeparator(vars.get("$field.SENTENCESEPARATOR"));
-    var currDate = vars.get("$sys.date");
+    var binMetadatas = db.getBinaryMetadata("LEADIMPORT", "IMPORTFILE", vars.get("$field.LEADIMPORTID"), false, SqlUtils.getBinariesAlias(), "");
 
-    var params = 
+    if (binMetadatas.length > 0)
     {
-        importdefid: vars.get("$field.LEADIMPORTID"),
-        assignmentRowId: assignmentRowId,
-        binId: binId,
-        recordSep: recordSep,
-        fieldSep: fieldSep, 
-        fieldLimit: fieldLimit,
-        user: user,
-        source: vars.getString("$field.IMPORTSOURCE"),
-        currDate:  currDate,
-        userId: EmployeeUtils.getCurrentUserId(),
-        importName: name
-    }
+        var binId = binMetadatas[0].id;
+
+        var assignmentRowId = vars.get("$field.LEADIMPORTID");
+        var name = vars.get("$field.NAME");
+        var user = vars.get("$sys.user");
 
-    //process.execute("importLead_serverProcess", params);
-    var processConfig = process.createStartAsyncConfig().setName("importLead_serverProcess")
-                                                        .setLocalVariables(params)
-                                                        .setShowErrorDialog(false)
-                                                        .setUser(user)
-                                                        .setThreadPriority(process.THREADPRIORITY_LOW)
-                                                        .setTimerType(process.TIMERTYPE_SERVER);
-    process.startAsync(processConfig);
-} else {
-    question.showMessage("Error: The Importfile could not be found anymore.");
+        var fieldSep = ExportTemplateUtils.getFieldSeparator(vars.get("$field.FIELDSEPARATOR"));
+        var fieldLimit = ExportTemplateUtils.getFieldDeLimiter(vars.get("$field.FIELDDELIMITERS"));
+        var recordSep = ExportTemplateUtils.getSentenceSeparator(vars.get("$field.SENTENCESEPARATOR"));
+        var currDate = vars.get("$sys.date");
+
+        var params = 
+        {
+            importdefid: vars.get("$field.LEADIMPORTID"),
+            assignmentRowId: assignmentRowId,
+            binId: binId,
+            recordSep: recordSep,
+            fieldSep: fieldSep, 
+            fieldLimit: fieldLimit,
+            user: user,
+            source: vars.getString("$field.IMPORTSOURCE"),
+            currDate:  currDate,
+            userId: user,
+            importName: name
+        }
+
+        //process.execute("importLead_serverProcess", params);
+        var processConfig = process.createStartAsyncConfig().setName("importLead_serverProcess")
+                                                            .setLocalVariables(params)
+                                                            .setShowErrorDialog(false)
+                                                            .setUser(user)
+                                                            .setThreadPriority(process.THREADPRIORITY_LOW)
+                                                            .setTimerType(process.TIMERTYPE_SERVER);
+        process.startAsync(processConfig);
+    } else
+    {
+        question.showMessage(translate.text("Error: The Importfile could not be found anymore."));
+    }
 }
\ No newline at end of file
diff --git a/entity/Leadimport_entity/entityfields/transferdata/stateProcess.js b/entity/Leadimport_entity/entityfields/transferdata/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ed97ad26cf42805e0645ab99f863379278539ea2
--- /dev/null
+++ b/entity/Leadimport_entity/entityfields/transferdata/stateProcess.js
@@ -0,0 +1,19 @@
+import("Sql_lib");
+import("system.result");
+import("system.vars");
+import("Leadimport_lib");
+import("system.neon");
+
+let leadimportID = vars.get("$field.LEADIMPORTID");
+let count = newSelect(["count(*)"])
+            .from("IMPORTFIELD")
+            .where("IMPORTFIELD.LEADIMPORT_ID", leadimportID)
+            .and(
+                newWhere("IMPORTFIELD.MAPPINGFIELD", "LASTNAME")
+                .or("IMPORTFIELD.MAPPINGFIELD", "NAME")
+            ).cell();
+
+if (count > 0)
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else 
+    result.string(neon.COMPONENTSTATE_DISABLED);
\ No newline at end of file
diff --git a/entity/Leadimport_entity/recordcontainers/db/onDBDelete.js b/entity/Leadimport_entity/recordcontainers/db/onDBDelete.js
index 76cb3729e7370c9c2435b1fa433f64dcbec4bd4a..17ff5bbfc50c4ab8b2f59bfa43e530c9f6fbd6dd 100644
--- a/entity/Leadimport_entity/recordcontainers/db/onDBDelete.js
+++ b/entity/Leadimport_entity/recordcontainers/db/onDBDelete.js
@@ -1,3 +1,4 @@
+import("Workflow_lib");
 import("Context_lib");
 import("Sql_lib");
 import("system.vars");
@@ -37,4 +38,6 @@ binMetadata.forEach(function(pMeta)
 });
 
 new AttributeRelationQuery(leadImportId, null, ContextUtils.getCurrentContextId())
-    .deleteAllAttributes();
\ No newline at end of file
+    .deleteAllAttributes();
+    
+WorkflowSignalSender.deleted();
\ No newline at end of file
diff --git a/entity/Leadimport_entity/recordcontainers/db/onDBInsert.js b/entity/Leadimport_entity/recordcontainers/db/onDBInsert.js
index 9335140ab1c5174408bc2300ee3ec2e263bd06e1..ff3f343de00e5495c0ed996a1ccb473aedc8705d 100644
--- a/entity/Leadimport_entity/recordcontainers/db/onDBInsert.js
+++ b/entity/Leadimport_entity/recordcontainers/db/onDBInsert.js
@@ -1,3 +1,4 @@
+import("Workflow_lib");
 import("ExportTemplate_lib");
 import("Sql_lib");
 import("KeywordRegistry_basic");
@@ -25,4 +26,5 @@ if(bindata != '' && filename != '')
         var documentId = SingleBinaryUtils.insertMainDocument("LEADIMPORT", "IMPORTFILE", assignmentRowId, bindata, filename, "", SqlUtils.getBinariesAlias());
         LeadImportUtils.loadImportFile(documentId, fieldSep, fieldLimit, recordSep, assignmentRowId, false, true);
     }
-}
\ No newline at end of file
+}
+WorkflowSignalSender.inserted();
\ No newline at end of file
diff --git a/entity/Leadimport_entity/recordcontainers/db/onDBUpdate.js b/entity/Leadimport_entity/recordcontainers/db/onDBUpdate.js
index 9f19087232a89f6cab7046ac2ac4e36b53aadf3b..408e3da8f19a03687ee4d6292046c387cde1e56a 100644
--- a/entity/Leadimport_entity/recordcontainers/db/onDBUpdate.js
+++ b/entity/Leadimport_entity/recordcontainers/db/onDBUpdate.js
@@ -1,3 +1,4 @@
+import("Workflow_lib");
 import("ExportTemplate_lib");
 import("system.neon");
 import("Sql_lib");
@@ -5,40 +6,53 @@ import("KeywordRegistry_basic");
 import("Keyword_lib");
 import("Binary_lib");
 import("Leadimport_lib");
+import("ExportTemplate_lib");
+import("Binary_lib");
+import("Document_lib");
+import("Sql_lib");
 import("system.db");
 import("system.vars");
-import("system.util");
-import("Document_lib");
+
+
+var binId;
+var assignmentRowId = vars.get("$field.LEADIMPORTID");
+var binMetadata = db.getBinaryMetadata("LEADIMPORT", "IMPORTFILE", assignmentRowId, false, SqlUtils.getBinariesAlias(), "");
 
 // "FILE NOT CHANGED" is set in the value process of the field to indicate that the user didn't upload a new file
 if (vars.get("$field.bindata") != "FILE NOT CHANGED")
 {
-    var assignmentRowId = vars.get("$field.LEADIMPORTID");
-    var bindata = DocumentUtil.getBindataFromUpload(vars.get("$field.bindata"));
-    var filename = DocumentUtil.getFilenameFromUpload(vars.get("$field.bindata"));
-
-    var fieldSep = ExportTemplateUtils.getFieldSeparator(vars.get("$field.FIELDSEPARATOR"));
-    var fieldLimit = ExportTemplateUtils.getFieldDeLimiter(vars.get("$field.FIELDDELIMITERS"));
-    var recordSep = ExportTemplateUtils.getSentenceSeparator(vars.get("$field.SENTENCESEPARATOR"));
-
+    let bindata = DocumentUtil.getBindataFromUpload(vars.get("$field.bindata"));
+    let filename = DocumentUtil.getFilenameFromUpload(vars.get("$field.bindata"));
+    
     if(bindata != '' && filename != '')
     {
         var mimeType = DocumentUtil.getMimeTypeFromUpload(vars.get("$field.bindata"));
         if (mimeType == "application/vnd.ms-excel" || mimeType == "text/csv")
         {
-            
-            var binMetadata = db.getBinaryMetadata("LEADIMPORT", "IMPORTFILE", assignmentRowId, false, SqlUtils.getBinariesAlias(), "");
-            if (binMetadata.length > 0) {
+            if (binMetadata.length > 0)
+            {
                 db.updateBinary(binMetadata[0].id, "", bindata, filename, "", "MAINDOCUMENT", SqlUtils.getBinariesAlias());
-                LeadImportUtils.loadImportFile(binMetadata[0].id, fieldSep, fieldLimit, recordSep, assignmentRowId, true, true);
+                binId = binMetadata[0].id;
             }
             else
             {
-                var documentId = SingleBinaryUtils.insertMainDocument("LEADIMPORT", "IMPORTFILE", assignmentRowId, bindata, filename, "", SqlUtils.getBinariesAlias());
-                LeadImportUtils.loadImportFile(documentId, fieldSep, fieldLimit, recordSep, assignmentRowId, false, true);
+                binId = SingleBinaryUtils.insertMainDocument("LEADIMPORT", "IMPORTFILE", assignmentRowId, bindata, filename, "", SqlUtils.getBinariesAlias());
             }
         }
     }
+}
+else if (binMetadata.length > 0)
+{
+    binId = binMetadata[0].id;
+}
 
-    neon.refreshAll();
+if (binId)
+{
+    var fieldSep = ExportTemplateUtils.getFieldSeparator(vars.get("$field.FIELDSEPARATOR"));
+    var fieldLimit = ExportTemplateUtils.getFieldDeLimiter(vars.get("$field.FIELDDELIMITERS"));
+    var recordSep = ExportTemplateUtils.getSentenceSeparator(vars.get("$field.SENTENCESEPARATOR"));
+
+    LeadImportUtils.loadImportFile(binId, fieldSep, fieldLimit, recordSep, assignmentRowId, true, true);
 }
+
+WorkflowSignalSender.updated();
diff --git a/entity/LetterRecipient_entity/LetterRecipient_entity.aod b/entity/LetterRecipient_entity/LetterRecipient_entity.aod
index e8f4ac96e66e694bab194186688c63f7c8bfa300..c69902cd77d808ef4787a6f2e0ec3de07a9494e9 100644
--- a/entity/LetterRecipient_entity/LetterRecipient_entity.aod
+++ b/entity/LetterRecipient_entity/LetterRecipient_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>LetterRecipient_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/LetterRecipient_entity/documentation.adoc</documentation>
@@ -106,43 +106,13 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <fromClauseProcess>%aditoprj%/entity/LetterRecipient_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/LetterRecipient_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/LetterRecipient_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
       <onDBInsert>%aditoprj%/entity/LetterRecipient_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/LetterRecipient_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/LetterRecipient_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>0a41cbd3-c199-4191-af95-ba793e4f2554</name>
-          <tableName>LETTERRECIPIENT</tableName>
-          <primaryKey>LETTERRECIPIENTID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>d2204511-72e8-4b58-80b0-39cb334e68f7</name>
-          <tableName>CONTACT</tableName>
-          <primaryKey>CONTACTID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>25149c4f-b158-48e6-b114-cc7e05ebe75b</name>
-          <tableName>ORGANISATION</tableName>
-          <primaryKey>ORGANISATIONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>d653cba9-df2f-4b78-8bf3-8e92d8965d36</name>
-          <tableName>PERSON</tableName>
-          <primaryKey>PERSONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>CONTACT_ID.value</name>
@@ -187,6 +157,36 @@
           <recordfield>CONTACT.ADDRESS_ID</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>0a41cbd3-c199-4191-af95-ba793e4f2554</name>
+          <tableName>LETTERRECIPIENT</tableName>
+          <primaryKey>LETTERRECIPIENTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>d2204511-72e8-4b58-80b0-39cb334e68f7</name>
+          <tableName>CONTACT</tableName>
+          <primaryKey>CONTACTID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>25149c4f-b158-48e6-b114-cc7e05ebe75b</name>
+          <tableName>ORGANISATION</tableName>
+          <primaryKey>ORGANISATIONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>d653cba9-df2f-4b78-8bf3-8e92d8965d36</name>
+          <tableName>PERSON</tableName>
+          <primaryKey>PERSONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/LetterRecipient_entity/entityfields/icon/colorProcess.js b/entity/LetterRecipient_entity/entityfields/icon/colorProcess.js
index 2284141675c76efe4d00742da5cc858c9b3b97c9..25d65f8b52561d95c5e3d6879fd99d0fb9d85264 100644
--- a/entity/LetterRecipient_entity/entityfields/icon/colorProcess.js
+++ b/entity/LetterRecipient_entity/entityfields/icon/colorProcess.js
@@ -2,5 +2,5 @@ import("system.vars");
 import("system.result");
 import("system.neon");
 
-if (vars.get("$field.HASCOMMRESTRICTION") == "true" || !vars.get("$field.ADDRESS_ID.displayValue").trim())
+if (vars.get("$field.HASCOMMRESTRICTION") == "true" || vars.get("$field.ADDRESS_ID.displayValue").trim() == "-" || !vars.get("$field.ADDRESS_ID.displayValue").trim())
     result.string(neon.PRIORITY_HIGH_COLOR);
\ No newline at end of file
diff --git a/entity/Letter_entity/Letter_entity.aod b/entity/Letter_entity/Letter_entity.aod
index 5e357ba666061841bd96270267b9be9f7dc091ca..1cd209bbe24e5d306cd48ea4ee0b2fe208fad318 100644
--- a/entity/Letter_entity/Letter_entity.aod
+++ b/entity/Letter_entity/Letter_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Letter_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Letter_entity/documentation.adoc</documentation>
diff --git a/entity/LogHistory_entity/LogHistory_entity.aod b/entity/LogHistory_entity/LogHistory_entity.aod
index b7abfc4219a2b8478201416b55233d42b5207737..059c91250db6c8663797945a0a537cc699c7307e 100644
--- a/entity/LogHistory_entity/LogHistory_entity.aod
+++ b/entity/LogHistory_entity/LogHistory_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>LogHistory_entity</name>
+  <title>Log</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/LogHistory_entity/documentation.adoc</documentation>
-  <title>Log</title>
   <grantUpdate v="false" />
   <grantDelete v="false" />
   <iconId>NEON:HISTORY</iconId>
@@ -39,12 +39,6 @@
     <entityProvider>
       <name>LogHistoryProvider</name>
       <documentation>%aditoprj%/entity/LogHistory_entity/entityfields/loghistoryprovider/documentation.adoc</documentation>
-      <children>
-        <entityParameter>
-          <name>tablenames_param</name>
-          <documentation>%aditoprj%/entity/LogHistory_entity/entityfields/loghistoryprovider/children/tablenames_param/documentation.adoc</documentation>
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>23dbfa51-5340-48e3-bd60-e0dcb7d44ad3</name>
@@ -131,6 +125,12 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>tablenames_param</name>
+          <documentation>%aditoprj%/entity/LogHistory_entity/entityfields/loghistoryprovider/children/tablenames_param/documentation.adoc</documentation>
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityParameter>
       <name>tablenames_param</name>
diff --git a/entity/MSTTeamLink_entity/MSTTeamLink_entity.aod b/entity/MSTTeamLink_entity/MSTTeamLink_entity.aod
index d2df3a1cd3f9fc1b4d60743b0143d100153d3191..3660a3783e7130d2d9c515823b0bf6dd58b9628f 100644
--- a/entity/MSTTeamLink_entity/MSTTeamLink_entity.aod
+++ b/entity/MSTTeamLink_entity/MSTTeamLink_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>MSTTeamLink_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/MSTTeamLink_entity/documentation.adoc</documentation>
@@ -66,27 +66,11 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <fromClauseProcess>%aditoprj%/entity/MSTTeamLink_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/MSTTeamLink_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <onDBInsert>%aditoprj%/entity/MSTTeamLink_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/MSTTeamLink_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
-      <linkInformation>
-        <linkInformation>
-          <name>178230f3-4ee4-4ec0-a7f6-4f4ddddbbb22</name>
-          <tableName>MST_TEAMLINK</tableName>
-          <primaryKey>MST_TEAMLINKID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>53378325-f195-4eb3-9e22-68fd769eef03</name>
-          <tableName>MST_TEAM</tableName>
-          <primaryKey>MST_TEAMID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>MST_TEAMLINKID.value</name>
@@ -109,6 +93,22 @@
           <recordfield>MST_TEAM.TEAMNAME</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>178230f3-4ee4-4ec0-a7f6-4f4ddddbbb22</name>
+          <tableName>MST_TEAMLINK</tableName>
+          <primaryKey>MST_TEAMLINKID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>53378325-f195-4eb3-9e22-68fd769eef03</name>
+          <tableName>MST_TEAM</tableName>
+          <primaryKey>MST_TEAMID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/MSTTeamMember_entity/MSTTeamMember_entity.aod b/entity/MSTTeamMember_entity/MSTTeamMember_entity.aod
index 1f1e68f496fa64090a7ddcdb33ef5aad5634e607..3c692264449930b67d31618a638c5c7aeb10245f 100644
--- a/entity/MSTTeamMember_entity/MSTTeamMember_entity.aod
+++ b/entity/MSTTeamMember_entity/MSTTeamMember_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>MSTTeamMember_entity</name>
+  <title>Member</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/MSTTeamMember_entity/documentation.adoc</documentation>
-  <title>Member</title>
   <siblings />
   <titlePlural>Members</titlePlural>
   <recordContainer>jdito</recordContainer>
@@ -39,6 +39,11 @@
     </entityParameter>
     <entityConsumer>
       <name>ProjectMembers</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Member_entity</entityName>
+        <fieldName>TeamMemberProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
@@ -49,11 +54,6 @@
           <valueProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/projectmembers/children/objecttype_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Member_entity</entityName>
-        <fieldName>TeamMemberProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>ISEXTERN</name>
diff --git a/entity/MSTTeam_entity/MSTTeam_entity.aod b/entity/MSTTeam_entity/MSTTeam_entity.aod
index f7675657fed04c925d381d928cb6d43ce6d14d20..16929c27f7d6349825f5f3cfb85851fb493da0b5 100644
--- a/entity/MSTTeam_entity/MSTTeam_entity.aod
+++ b/entity/MSTTeam_entity/MSTTeam_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>MSTTeam_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/MSTTeam_entity/documentation.adoc</documentation>
@@ -41,6 +41,11 @@
       <name>TeamMembers</name>
       <stateProcess>%aditoprj%/entity/MSTTeam_entity/entityfields/teammembers/stateProcess.js</stateProcess>
       <onValidation>%aditoprj%/entity/MSTTeam_entity/entityfields/teammembers/onValidation.js</onValidation>
+      <dependency>
+        <name>dependency</name>
+        <entityName>MSTTeamMember_entity</entityName>
+        <fieldName>MembersOfTeam</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>MSTTeamId_param</name>
@@ -55,11 +60,6 @@
           <valueProcess>%aditoprj%/entity/MSTTeam_entity/entityfields/teammembers/children/objecttype_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>MSTTeamMember_entity</entityName>
-        <fieldName>MembersOfTeam</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>TEAMID_AND_NAME</name>
@@ -79,17 +79,17 @@
     </entityParameter>
     <entityConsumer>
       <name>Channels</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>MSTeamsChannel_entity</entityName>
+        <fieldName>ChannelsForTeam</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>TeamId_param</name>
           <valueProcess>%aditoprj%/entity/MSTTeam_entity/entityfields/channels/children/teamid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>MSTeamsChannel_entity</entityName>
-        <fieldName>ChannelsForTeam</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>#PROVIDER_AGGREGATES</name>
@@ -104,13 +104,6 @@
       <name>TeamsByIdAndName</name>
       <lookupIdfield>TEAMID_AND_NAME</lookupIdfield>
       <documentation>%aditoprj%/entity/MSTTeam_entity/entityfields/teamsbyidandname/documentation.adoc</documentation>
-      <children>
-        <entityParameter>
-          <name>UseCache_param</name>
-          <valueProcess>%aditoprj%/entity/MSTTeam_entity/entityfields/teamsbyidandname/children/usecache_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>e48136a2-5f66-4399-903a-cd1363fa30c6</name>
@@ -119,6 +112,13 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>UseCache_param</name>
+          <valueProcess>%aditoprj%/entity/MSTTeam_entity/entityfields/teamsbyidandname/children/usecache_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityParameter>
       <name>UseCache_param</name>
diff --git a/entity/MSTeamsActivityImport_entity/MSTeamsActivityImport_entity.aod b/entity/MSTeamsActivityImport_entity/MSTeamsActivityImport_entity.aod
index 17cde5886a40df0410dcd5b3c9ea721f13d32cf1..5a3b3cc6b813e48b8674a6acb8e1000a42f4f4a6 100644
--- a/entity/MSTeamsActivityImport_entity/MSTeamsActivityImport_entity.aod
+++ b/entity/MSTeamsActivityImport_entity/MSTeamsActivityImport_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>MSTeamsActivityImport_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/MSTeamsActivityImport_entity/documentation.adoc</documentation>
@@ -13,6 +13,11 @@
     <entityConsumer>
       <name>Messages</name>
       <selectionMode>MULTI</selectionMode>
+      <dependency>
+        <name>dependency</name>
+        <entityName>MSTeamsMessage_entity</entityName>
+        <fieldName>Messages</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>Channel_param</name>
@@ -27,11 +32,6 @@
           <valueProcess>%aditoprj%/entity/MSTeamsActivityImport_entity/entityfields/messages/children/loadnext_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>MSTeamsMessage_entity</entityName>
-        <fieldName>Messages</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>CHANNEL_ID</name>
@@ -49,17 +49,17 @@
     </entityField>
     <entityConsumer>
       <name>Channels</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>MSTeamsChannel_entity</entityName>
+        <fieldName>ChannelsForTeam</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>TeamId_param</name>
           <valueProcess>%aditoprj%/entity/MSTeamsActivityImport_entity/entityfields/channels/children/teamid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>MSTeamsChannel_entity</entityName>
-        <fieldName>ChannelsForTeam</fieldName>
-      </dependency>
     </entityConsumer>
     <entityActionField>
       <name>loadNextMessages</name>
diff --git a/entity/MSTeamsChannel_entity/MSTeamsChannel_entity.aod b/entity/MSTeamsChannel_entity/MSTeamsChannel_entity.aod
index 4c2ea19b1014949ea8bc56f1a925d367ff004286..88467d44647314dcfe53fa5d31f47142bf79944d 100644
--- a/entity/MSTeamsChannel_entity/MSTeamsChannel_entity.aod
+++ b/entity/MSTeamsChannel_entity/MSTeamsChannel_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>MSTeamsChannel_entity</name>
+  <title>Channel</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/MSTeamsChannel_entity/documentation.adoc</documentation>
-  <title>Channel</title>
   <siblings />
   <contentTitleProcess>%aditoprj%/entity/MSTeamsChannel_entity/contentTitleProcess.js</contentTitleProcess>
   <titlePlural>Channels</titlePlural>
diff --git a/entity/MSTeamsDocument_entity/MSTeamsDocument_entity.aod b/entity/MSTeamsDocument_entity/MSTeamsDocument_entity.aod
index 282dfbc5ff907b3da341b62f9a5079a3628c3645..6ba0493ae1f7e53e1929d69f92b7ba88a086e031 100644
--- a/entity/MSTeamsDocument_entity/MSTeamsDocument_entity.aod
+++ b/entity/MSTeamsDocument_entity/MSTeamsDocument_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>MSTeamsDocument_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/MSTeamsDocument_entity/documentation.adoc</documentation>
@@ -40,17 +40,17 @@
     </entityParameter>
     <entityConsumer>
       <name>Channels</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>MSTeamsChannel_entity</entityName>
+        <fieldName>ChannelsByName</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>TeamId_param</name>
           <valueProcess>%aditoprj%/entity/MSTeamsDocument_entity/entityfields/channels/children/teamid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>MSTeamsChannel_entity</entityName>
-        <fieldName>ChannelsByName</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>MSTTeamId_param</name>
@@ -65,6 +65,7 @@
       <name>importDocuments</name>
       <title>Import Documents</title>
       <onActionProcess>%aditoprj%/entity/MSTeamsDocument_entity/entityfields/importdocuments/onActionProcess.js</onActionProcess>
+      <iconId>NEON:IMPORT</iconId>
     </entityActionField>
   </entityFields>
   <recordContainers>
diff --git a/entity/MSTeamsMessage_entity/MSTeamsMessage_entity.aod b/entity/MSTeamsMessage_entity/MSTeamsMessage_entity.aod
index 8100af9bbee696961ab43850b8e49906237b4f00..eb9b4954def6f93d5f51650148618ae46813bae6 100644
--- a/entity/MSTeamsMessage_entity/MSTeamsMessage_entity.aod
+++ b/entity/MSTeamsMessage_entity/MSTeamsMessage_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>MSTeamsMessage_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/MSTeamsMessage_entity/documentation.adoc</documentation>
@@ -61,15 +61,17 @@
       <name>importMessages</name>
       <title>Import</title>
       <onActionProcess>%aditoprj%/entity/MSTeamsMessage_entity/entityfields/importmessages/onActionProcess.js</onActionProcess>
+      <iconId>NEON:IMPORT</iconId>
     </entityActionField>
     <entityActionField>
       <name>loadNext</name>
       <title>Next</title>
-      <onActionProcess>%aditoprj%/entity/MSTeamsMessage_entity/entityfields/loadnext/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:ARROWS_LONG_RIGHT</iconId>
     </entityActionField>
     <entityActionField>
       <name>loadPrevious</name>
       <title>Prev</title>
+      <iconId>VAADIN:ARROW_LONG_LEFT</iconId>
     </entityActionField>
   </entityFields>
   <recordContainers>
diff --git a/entity/MSTeamsMessage_entity/entityfields/loadnext/onActionProcess.js b/entity/MSTeamsMessage_entity/entityfields/loadnext/onActionProcess.js
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/entity/MarketingWorkflowLauncher_entity/MarketingWorkflowLauncher_entity.aod b/entity/MarketingWorkflowLauncher_entity/MarketingWorkflowLauncher_entity.aod
index 791b08d72b2e85a807d11a6c47284056ae16a977..272d727e2b88e8dba72f92d5d0cfc8fbb446b988 100644
--- a/entity/MarketingWorkflowLauncher_entity/MarketingWorkflowLauncher_entity.aod
+++ b/entity/MarketingWorkflowLauncher_entity/MarketingWorkflowLauncher_entity.aod
@@ -1,8 +1,8 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>MarketingWorkflowLauncher_entity</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
   <title>Marketing workflow</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
   <recordContainer>dataLess</recordContainer>
   <entityFields>
     <entityProvider>
diff --git a/entity/MemberRoles_entity/MemberRoles_entity.aod b/entity/MemberRoles_entity/MemberRoles_entity.aod
index 2871a36c5d9a4d53641f4e2a6788e31f3a2ca46f..c373bff12a3a9f3f8b5d98c7af1f0c03edaaa0d4 100644
--- a/entity/MemberRoles_entity/MemberRoles_entity.aod
+++ b/entity/MemberRoles_entity/MemberRoles_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>MemberRoles_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/MemberRoles_entity/documentation.adoc</documentation>
@@ -43,17 +43,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/MemberRoles_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>26c8ba40-981a-400b-9502-b561e8007b17</name>
-          <tableName>AB_KEYWORD_ENTRY</tableName>
-          <primaryKey>AB_KEYWORD_ENTRYID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>AB_KEYWORD_ENTRID.value</name>
@@ -68,6 +59,15 @@
           <recordfield>AB_KEYWORD_ENTRY.TITLE</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>26c8ba40-981a-400b-9502-b561e8007b17</name>
+          <tableName>AB_KEYWORD_ENTRY</tableName>
+          <primaryKey>AB_KEYWORD_ENTRYID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/MemberRoles_entity/recordcontainers/db/conditionProcess.js b/entity/MemberRoles_entity/recordcontainers/db/conditionProcess.js
index b0f946ee1d5c070f85e8fb962a46326ad613a162..2a0cb647a2c2a8bd86844a719cefc1518c20c579 100644
--- a/entity/MemberRoles_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/MemberRoles_entity/recordcontainers/db/conditionProcess.js
@@ -5,7 +5,7 @@ import("KeywordRegistry_basic");
 import("Sql_lib");
 import("Keyword_lib");
 
-var cond = newWhere("AB_KEYWORD_ENTRY.CONTAINER", $KeywordRegistry.MemberRole());
+var cond = newWhere("AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID", KeywordUtils.getCategoryIdByName($KeywordRegistry.MemberRole()));
 
 
 var usageFilter = vars.get("$param.UsageFilter_param");
diff --git a/entity/Member_entity/Member_entity.aod b/entity/Member_entity/Member_entity.aod
index a416ef148b261e8877df19ee82ee0802b49753fb..63d29d339cf70bccf9e3e0ada83a04288168a083 100644
--- a/entity/Member_entity/Member_entity.aod
+++ b/entity/Member_entity/Member_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Member_entity</name>
+  <title>${SALESPROJECT_MEMBER}</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Member_entity/documentation.adoc</documentation>
-  <title>${SALESPROJECT_MEMBER}</title>
   <siblings>
     <element>MSTTeam_entity</element>
     <element>MSTTeamLink_entity</element>
@@ -20,7 +20,7 @@
     </entityProvider>
     <entityField>
       <name>CONTACT_ID</name>
-      <title>Person</title>
+      <title>Contact</title>
       <consumer>Contacts</consumer>
       <linkedContext>Person</linkedContext>
       <mandatory v="true" />
@@ -86,6 +86,11 @@
     </entityField>
     <entityConsumer>
       <name>Contacts</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Person_entity</entityName>
+        <fieldName>IdFilteredActiveContacts</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ExcludedContactIds_param</name>
@@ -96,25 +101,20 @@
           <valueProcess>%aditoprj%/entity/Member_entity/entityfields/contacts/children/onlyactive_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Person_entity</entityName>
-        <fieldName>IdFilteredActiveContacts</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>KeywordMemberRoles</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>MemberRoles_entity</entityName>
+        <fieldName>ByCategory</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>UsageFilter_param</name>
           <valueProcess>%aditoprj%/entity/Member_entity/entityfields/keywordmemberroles/children/usagefilter_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>MemberRoles_entity</entityName>
-        <fieldName>ByCategory</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>TARGETCONTEXT</name>
@@ -154,6 +154,11 @@
     </entityParameter>
     <entityConsumer>
       <name>Objects</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Object_entity</entityName>
+        <fieldName>AllObjects</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectType_param</name>
@@ -162,11 +167,6 @@
           <mandatory v="true" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Object_entity</entityName>
-        <fieldName>AllObjects</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Contexts</name>
@@ -310,39 +310,9 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <fromClauseProcess>%aditoprj%/entity/Member_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/Member_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>b14ff9f6-97cc-4353-b19b-8acd50d56d5c</name>
-          <tableName>ORGANISATION</tableName>
-          <primaryKey>ORGANISATIONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>85599074-129e-4de8-b2b3-464bcfa8fb40</name>
-          <tableName>PERSON</tableName>
-          <primaryKey>PERSONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>ae87b90e-b40d-4472-9bd0-08c080da7f7c</name>
-          <tableName>CONTACT</tableName>
-          <primaryKey>CONTACTID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>1455636c-66c8-4100-892d-80e6a37ccd4d</name>
-          <tableName>OBJECTMEMBER</tableName>
-          <primaryKey>OBJECTMEMBERID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>ORGANISATION_NAME.value</name>
@@ -431,11 +401,42 @@
           <expression>%aditoprj%/entity/Member_entity/recordcontainers/db/recordfieldmappings/mst_memberrole.value/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>b14ff9f6-97cc-4353-b19b-8acd50d56d5c</name>
+          <tableName>ORGANISATION</tableName>
+          <primaryKey>ORGANISATIONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>85599074-129e-4de8-b2b3-464bcfa8fb40</name>
+          <tableName>PERSON</tableName>
+          <primaryKey>PERSONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>ae87b90e-b40d-4472-9bd0-08c080da7f7c</name>
+          <tableName>CONTACT</tableName>
+          <primaryKey>CONTACTID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>1455636c-66c8-4100-892d-80e6a37ccd4d</name>
+          <tableName>OBJECTMEMBER</tableName>
+          <primaryKey>OBJECTMEMBERID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
     <jDitoRecordContainer>
       <name>jdito</name>
       <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
       <isFilterable v="true" />
+      <isSortable v="true" />
       <contentProcess>%aditoprj%/entity/Member_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
       <onInsert>%aditoprj%/entity/Member_entity/recordcontainers/jdito/onInsert.js</onInsert>
       <onUpdate>%aditoprj%/entity/Member_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
diff --git a/entity/ModuleTree_entity/ModuleTree_entity.aod b/entity/ModuleTree_entity/ModuleTree_entity.aod
index 576d1171a8410d0c8fc1a15614a746438582b1c0..f799c2ef9b653646252b369d8a81e6996a4471a9 100644
--- a/entity/ModuleTree_entity/ModuleTree_entity.aod
+++ b/entity/ModuleTree_entity/ModuleTree_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>ModuleTree_entity</name>
+  <title>History</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/ModuleTree_entity/documentation.adoc</documentation>
-  <title>History</title>
   <recordContainer>jdito</recordContainer>
   <entityFields>
     <entityProvider>
diff --git a/entity/Notification_entity/Notification_entity.aod b/entity/Notification_entity/Notification_entity.aod
index 07dd08d1d45a3f702685d1a844e52d28ff548ddf..a6d76f43b45ddca29ebe511c0aaba259817c1e1e 100644
--- a/entity/Notification_entity/Notification_entity.aod
+++ b/entity/Notification_entity/Notification_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Notification_entity</name>
+  <title>Notifications</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Notification_entity/documentation.adoc</documentation>
-  <title>Notifications</title>
   <initFilterProcess>%aditoprj%/entity/Notification_entity/initFilterProcess.js</initFilterProcess>
   <iconId>VAADIN:BELL</iconId>
   <titlePlural>Notifications</titlePlural>
@@ -79,7 +79,9 @@
     </entityField>
     <entityField>
       <name>LINKCONTEXT</name>
+      <groupable v="false" />
       <valueProcess>%aditoprj%/entity/Notification_entity/entityfields/linkcontext/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Notification_entity/entityfields/linkcontext/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>LINKID</name>
@@ -132,31 +134,31 @@
     </entityField>
     <entityConsumer>
       <name>StateKeywords</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Notification_entity/entityfields/statekeywords/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>PrioKeywords</name>
       <dependency>
         <name>dependency</name>
         <entityName>KeywordEntry_entity</entityName>
         <fieldName>#PROVIDER</fieldName>
       </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>PrioKeywords</name>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Notification_entity/entityfields/priokeywords/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>#PROVIDER</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>#PROVIDER_AGGREGATES</name>
@@ -179,28 +181,12 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>_____SYSTEMALIAS</alias>
       <isPageable v="true" />
       <fromClauseProcess>%aditoprj%/entity/Notification_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/Notification_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/Notification_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
       <onDBDelete>%aditoprj%/entity/Notification_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>3061f3b4-a5d1-4436-9c4d-28415363a056</name>
-          <tableName>ASYS_NOTIFICATIONCONTENTS</tableName>
-          <primaryKey>CONTENTID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>c4e34b96-6081-4d04-8377-040a8ed3e14c</name>
-          <tableName>ASYS_NOTIFICATIONS</tableName>
-          <primaryKey>ID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>_____SYSTEMALIAS</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>BACKPACK.value</name>
@@ -293,6 +279,22 @@
           <isLookupFilter v="true" />
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>3061f3b4-a5d1-4436-9c4d-28415363a056</name>
+          <tableName>ASYS_NOTIFICATIONCONTENTS</tableName>
+          <primaryKey>CONTENTID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>c4e34b96-6081-4d04-8377-040a8ed3e14c</name>
+          <tableName>ASYS_NOTIFICATIONS</tableName>
+          <primaryKey>ID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/Notification_entity/entityfields/linkcontext/displayValueProcess.js b/entity/Notification_entity/entityfields/linkcontext/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..21c6c6ec6981e201e5aefde8d34996c3b0955128
--- /dev/null
+++ b/entity/Notification_entity/entityfields/linkcontext/displayValueProcess.js
@@ -0,0 +1,9 @@
+import("Context_lib");
+import("system.vars");
+import("system.translate");
+import("system.result");
+
+let type = vars.get("$this.value");
+
+if (type)
+    result.string(translate.text(ContextUtils.getContextName(type)));
\ No newline at end of file
diff --git a/entity/ObjectProxy_entity/ObjectProxy_entity.aod b/entity/ObjectProxy_entity/ObjectProxy_entity.aod
index 8eb6e53ec1fac158f5a89f6eed26678277279810..71ef1a617e9be009da686d4da8c5d16f587760b3 100644
--- a/entity/ObjectProxy_entity/ObjectProxy_entity.aod
+++ b/entity/ObjectProxy_entity/ObjectProxy_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>ObjectProxy_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/ObjectProxy_entity/documentation.adoc</documentation>
@@ -32,6 +32,12 @@
           <fieldName>LinkedObject</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>ccc805b6-14ea-457c-956d-8c025e178936</name>
+          <entityName>Observation_entity</entityName>
+          <fieldName>ObjectProxyConsumer</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
         <entityDependency>
           <name>9d75842d-0f91-4ddf-bd94-d8f092f17224</name>
           <entityName>KnowledgeLink_entity</entityName>
diff --git a/entity/ObjectRelationType_entity/ObjectRelationType_entity.aod b/entity/ObjectRelationType_entity/ObjectRelationType_entity.aod
index a2a47eb12c23e662e6c4e789dd4f4b5ae4d032a0..4da3974ee653f99c331db00e1c7f75c28d293d0c 100644
--- a/entity/ObjectRelationType_entity/ObjectRelationType_entity.aod
+++ b/entity/ObjectRelationType_entity/ObjectRelationType_entity.aod
@@ -1,10 +1,10 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>ObjectRelationType_entity</name>
+  <title>Relation Type</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/ObjectRelationType_entity/documentation.adoc</documentation>
   <icon>VAADIN:SPLIT</icon>
-  <title>Relation Type</title>
   <grantDeleteProcess>%aditoprj%/entity/ObjectRelationType_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/ObjectRelationType_entity/contentTitleProcess.js</contentTitleProcess>
   <iconId>VAADIN:SPLIT</iconId>
@@ -62,7 +62,6 @@
       <name>HIERARCHY</name>
       <title>Hierarchy</title>
       <contentType>BOOLEAN</contentType>
-      <dropDownProcess>%aditoprj%/entity/ObjectRelationType_entity/entityfields/hierarchy/dropDownProcess.js</dropDownProcess>
       <valueProcess>%aditoprj%/entity/ObjectRelationType_entity/entityfields/hierarchy/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
@@ -112,7 +111,6 @@
       <name>Type2Enabled_proxy</name>
       <title>Enable relation type 2</title>
       <contentType>BOOLEAN</contentType>
-      <dropDownProcess>%aditoprj%/entity/ObjectRelationType_entity/entityfields/type2enabled_proxy/dropDownProcess.js</dropDownProcess>
       <stateProcess>%aditoprj%/entity/ObjectRelationType_entity/entityfields/type2enabled_proxy/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/ObjectRelationType_entity/entityfields/type2enabled_proxy/valueProcess.js</valueProcess>
     </entityField>
diff --git a/entity/ObjectRelationType_entity/entityfields/hierarchy/dropDownProcess.js b/entity/ObjectRelationType_entity/entityfields/hierarchy/dropDownProcess.js
deleted file mode 100644
index 1324968dfff10e56efe6268f8520572d56f21d1b..0000000000000000000000000000000000000000
--- a/entity/ObjectRelationType_entity/entityfields/hierarchy/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-     ["1", translate.text("Yes")]
-    ,["0", translate.text("No")]
-]);
\ No newline at end of file
diff --git a/entity/ObjectRelationType_entity/entityfields/type2enabled_proxy/dropDownProcess.js b/entity/ObjectRelationType_entity/entityfields/type2enabled_proxy/dropDownProcess.js
deleted file mode 100644
index 1324968dfff10e56efe6268f8520572d56f21d1b..0000000000000000000000000000000000000000
--- a/entity/ObjectRelationType_entity/entityfields/type2enabled_proxy/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-     ["1", translate.text("Yes")]
-    ,["0", translate.text("No")]
-]);
\ No newline at end of file
diff --git a/entity/ObjectTree_entity/ObjectTree_entity.aod b/entity/ObjectTree_entity/ObjectTree_entity.aod
index 4266919a6b46eca1ea8ba194b849935a8c606e23..f3a46c5839d338501ef343806fcf249244a0490a 100644
--- a/entity/ObjectTree_entity/ObjectTree_entity.aod
+++ b/entity/ObjectTree_entity/ObjectTree_entity.aod
@@ -1,12 +1,13 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>ObjectTree_entity</name>
+  <title>Object relation</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/ObjectTree_entity/documentation.adoc</documentation>
-  <title>Object relation</title>
   <grantUpdate v="true" />
   <grantUpdateProcess>%aditoprj%/entity/ObjectTree_entity/grantUpdateProcess.js</grantUpdateProcess>
   <grantDeleteProcess>%aditoprj%/entity/ObjectTree_entity/grantDeleteProcess.js</grantDeleteProcess>
+  <contentTitleProcess>%aditoprj%/entity/ObjectTree_entity/contentTitleProcess.js</contentTitleProcess>
   <titlePlural>Relations</titlePlural>
   <recordContainer>jdito</recordContainer>
   <entityFields>
@@ -134,8 +135,8 @@
       <children>
         <entityParameter>
           <name>ObjectType_param</name>
-          <title></title>
           <valueProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/objects/children/objecttype_param/valueProcess.js</valueProcess>
+          <title></title>
         </entityParameter>
         <entityParameter>
           <name>ExcludedObjectIds_param</name>
diff --git a/entity/ObjectTree_entity/contentTitleProcess.js b/entity/ObjectTree_entity/contentTitleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..94f61859cc64100bb6a6dcd445efc67835002c1a
--- /dev/null
+++ b/entity/ObjectTree_entity/contentTitleProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.TITLE"));
\ No newline at end of file
diff --git a/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js b/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js
index 7980a2bd4337487f4d163001299d364840e52f4e..b56971288c6698b3255dfafab871cd784de0680b 100644
--- a/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js
@@ -84,6 +84,14 @@ else
             _loadObjectRelationTree.call(tree, originalObjectIds[i], originalObjectTypes[i], selectedRelationType);
         }
     }
+    else if (!vars.exists("$param.ObjectIds_param") && uidParam) 
+    {
+        newSelect("OBJECT" + (pObjectRelationId ? myNum : otherNum) + "_ROWID, AB_OBJECTRELATIONID, OBJECT_TYPE, RELATION_TITLE, INFO, AB_OBJECTRELATIONTYPEID")
+        .from("AB_OBJECTRELATION")
+        .join("AB_OBJECTRELATIONTYPE", onConditionForRelationTypeJoin)
+        .whereIfSet("AB_OBJECTRELATION.AB_OBJECTRELATIONID", pObjectRelationId || null) // set id to null, as only null works with .andIfSet
+        .table();
+    }
     if (uidParam) //workaround! 
         tree = tree.filter(function (row) {return JSON.parse(row[0])[UID.objectRelationId] == uidParam});
 }
diff --git a/entity/ObjectTree_entity/recordcontainers/jdito/onDelete.js b/entity/ObjectTree_entity/recordcontainers/jdito/onDelete.js
index 6541f935b87fc18c6d06480e84f365f647b42c24..c0b52c0e41fb5d2587f877afcf93b0792050f63c 100644
--- a/entity/ObjectTree_entity/recordcontainers/jdito/onDelete.js
+++ b/entity/ObjectTree_entity/recordcontainers/jdito/onDelete.js
@@ -1,6 +1,9 @@
+import("Workflow_lib");
 import("system.vars");
 import("Sql_lib");
 
 var objectRelationId = vars.get("$local.rowdata")["OBJECTRELATIONID.value"];
 
-newWhereIfSet("AB_OBJECTRELATION.AB_OBJECTRELATIONID", objectRelationId).deleteData();
\ No newline at end of file
+newWhereIfSet("AB_OBJECTRELATION.AB_OBJECTRELATIONID", objectRelationId).deleteData();
+
+WorkflowSignalSender.deleted();
\ No newline at end of file
diff --git a/entity/ObjectTree_entity/recordcontainers/jdito/onInsert.js b/entity/ObjectTree_entity/recordcontainers/jdito/onInsert.js
index 4ff38cdf98c122625cf196a8ad0d0fbf8647b782..799e7985e6eb1457f964bade7b8a1bc64ddca3ae 100644
--- a/entity/ObjectTree_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/ObjectTree_entity/recordcontainers/jdito/onInsert.js
@@ -1,3 +1,4 @@
+import("Workflow_lib");
 import("Contact_lib");
 import("system.util");
 import("ObjectRelation_lib");
@@ -39,4 +40,6 @@ if (selectedObjectRelationTypeId)
             info || ""
         ]);
     }
-}
\ No newline at end of file
+}
+
+WorkflowSignalSender.inserted();
\ No newline at end of file
diff --git a/entity/ObjectTree_entity/recordcontainers/jdito/onUpdate.js b/entity/ObjectTree_entity/recordcontainers/jdito/onUpdate.js
index eeb63ca799b10d70e54f1e522cb2d941942dc8a0..b60a3b50c4b94a9ce260613afc93b48a253fa203 100644
--- a/entity/ObjectTree_entity/recordcontainers/jdito/onUpdate.js
+++ b/entity/ObjectTree_entity/recordcontainers/jdito/onUpdate.js
@@ -1,3 +1,4 @@
+import("Workflow_lib");
 import("system.vars");
 import("Sql_lib");
 
@@ -7,3 +8,5 @@ if (vars.get("$local.changed").indexOf("INFO.value") !== -1)
     newWhereIfSet("AB_OBJECTRELATION.AB_OBJECTRELATIONID", rowdata["OBJECTRELATIONID.value"])
         .updateFields({"INFO" : rowdata["INFO.value"]});
 }
+
+WorkflowSignalSender.updated();
\ No newline at end of file
diff --git a/entity/Object_entity/Object_entity.aod b/entity/Object_entity/Object_entity.aod
index e3633e2483c72e9e19c36651dd093c209f4b90d0..860935ef74c48b42e5dc6379fd4c7b76d3c8fac1 100644
--- a/entity/Object_entity/Object_entity.aod
+++ b/entity/Object_entity/Object_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Object_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Object_entity/documentation.adoc</documentation>
diff --git a/entity/Observation_entity/Observation_entity.aod b/entity/Observation_entity/Observation_entity.aod
new file mode 100644
index 0000000000000000000000000000000000000000..bccdb0c9b868f6137c54681abf0cb4a05a4220d1
--- /dev/null
+++ b/entity/Observation_entity/Observation_entity.aod
@@ -0,0 +1,322 @@
+<?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.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
+  <name>Observation_entity</name>
+  <title>Observation</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <documentation>%aditoprj%/entity/Observation_entity/documentation.adoc</documentation>
+  <titlePlural>Observations</titlePlural>
+  <recordContainer>db</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+    </entityProvider>
+    <entityProvider>
+      <name>#PROVIDER_AGGREGATES</name>
+      <useAggregates v="true" />
+    </entityProvider>
+    <entityField>
+      <name>OBSERVATIONID</name>
+      <title>ObservationID</title>
+      <mandatory v="true" />
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <title>Date new</title>
+      <contentType>DATE</contentType>
+      <resolution>SECOND</resolution>
+      <valueProcess>%aditoprj%/entity/Observation_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <title>Date Edit</title>
+      <contentType>DATE</contentType>
+      <resolution>SECOND</resolution>
+      <valueProcess>%aditoprj%/entity/Observation_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_NEW</name>
+      <valueProcess>%aditoprj%/entity/Observation_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>OBSERVER</name>
+      <title>Observer</title>
+      <consumer>Users</consumer>
+      <groupable v="true" />
+      <mandatory v="true" />
+      <stateProcess>%aditoprj%/entity/Observation_entity/entityfields/observer/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/Observation_entity/entityfields/observer/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Observation_entity/entityfields/observer/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Observation_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>OBJECT_TYPE</name>
+      <title>Object Type</title>
+      <consumer>Contexts</consumer>
+      <groupable v="false" />
+      <mandatory v="true" />
+      <stateProcess>%aditoprj%/entity/Observation_entity/entityfields/object_type/stateProcess.js</stateProcess>
+      <displayValueProcess>%aditoprj%/entity/Observation_entity/entityfields/object_type/displayValueProcess.js</displayValueProcess>
+      <onValueChange>%aditoprj%/entity/Observation_entity/entityfields/object_type/onValueChange.js</onValueChange>
+    </entityField>
+    <entityField>
+      <name>OBJECT_ID</name>
+      <title>Dataset</title>
+      <consumer>ObjectProxyConsumer</consumer>
+      <linkedContextProcess>%aditoprj%/entity/Observation_entity/entityfields/object_id/linkedContextProcess.js</linkedContextProcess>
+      <stateProcess>%aditoprj%/entity/Observation_entity/entityfields/object_id/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/Observation_entity/entityfields/object_id/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Observation_entity/entityfields/object_id/displayValueProcess.js</displayValueProcess>
+      <onValueChange>%aditoprj%/entity/Observation_entity/entityfields/object_id/onValueChange.js</onValueChange>
+    </entityField>
+    <entityConsumer>
+      <name>PrioKeywords</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Observation_entity/entityfields/priokeywords/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Users</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Employee_entity</entityName>
+        <fieldName>EmployeesByUserId</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityConsumer>
+      <name>ObjectProxyConsumer</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ObjectProxy_entity</entityName>
+        <fieldName>FilteredObjects</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>Entity_param</name>
+          <valueProcess>%aditoprj%/entity/Observation_entity/entityfields/objectproxyconsumer/children/entity_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>TRIGGEREVENTUPDATE</name>
+      <title>Update</title>
+      <contentType>BOOLEAN</contentType>
+      <groupable v="false" />
+      <valueProcess>%aditoprj%/entity/Observation_entity/entityfields/triggereventupdate/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>TRIGGEREVENTINSERT</name>
+      <title>Insert</title>
+      <contentType>BOOLEAN</contentType>
+      <groupable v="false" />
+      <stateProcess>%aditoprj%/entity/Observation_entity/entityfields/triggereventinsert/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/Observation_entity/entityfields/triggereventinsert/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>TRIGGEREVENTDELETE</name>
+      <title>Delete</title>
+      <contentType>BOOLEAN</contentType>
+      <groupable v="false" />
+      <valueProcess>%aditoprj%/entity/Observation_entity/entityfields/triggereventdelete/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>OBJECT_FILTER</name>
+      <title>Filter</title>
+      <contentType>FILTER_TREE</contentType>
+      <stateProcess>%aditoprj%/entity/Observation_entity/entityfields/object_filter/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/Observation_entity/entityfields/object_filter/valueProcess.js</valueProcess>
+      <onValueChange>%aditoprj%/entity/Observation_entity/entityfields/object_filter/onValueChange.js</onValueChange>
+    </entityField>
+    <entityField>
+      <name>OBJECT_FIELD</name>
+      <title>Fields</title>
+      <contentType>TEXT</contentType>
+      <dropDownProcess>%aditoprj%/entity/Observation_entity/entityfields/object_field/dropDownProcess.js</dropDownProcess>
+      <selectionMode>MULTI</selectionMode>
+      <stateProcess>%aditoprj%/entity/Observation_entity/entityfields/object_field/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/Observation_entity/entityfields/object_field/valueProcess.js</valueProcess>
+    </entityField>
+    <entityParameter>
+      <name>OnlyMyObservations_param</name>
+      <valueProcess>%aditoprj%/entity/Observation_entity/entityfields/onlymyobservations_param/valueProcess.js</valueProcess>
+      <expose v="true" />
+    </entityParameter>
+    <entityParameter>
+      <name>Observer_param</name>
+      <valueProcess>%aditoprj%/entity/Observation_entity/entityfields/observer_param/valueProcess.js</valueProcess>
+      <expose v="true" />
+    </entityParameter>
+    <entityProvider>
+      <name>MyObservation</name>
+      <children>
+        <entityParameter>
+          <name>Observer_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OnlyMyObservations_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityField>
+      <name>observationType</name>
+      <title>Observation Type</title>
+      <groupable v="false" />
+      <displayValueProcess>%aditoprj%/entity/Observation_entity/entityfields/observationtype/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>Contexts</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Context_entity</entityName>
+        <fieldName>Exclusive</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>Blacklist_param</name>
+          <valueProcess>%aditoprj%/entity/Observation_entity/entityfields/contexts/children/blacklist_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>InvertBlacklist_param</name>
+          <valueProcess>%aditoprj%/entity/Observation_entity/entityfields/contexts/children/invertblacklist_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>OBSERVATION_ID</name>
+      <groupable v="false" />
+      <valueProcess>%aditoprj%/entity/Observation_entity/entityfields/observation_id/valueProcess.js</valueProcess>
+    </entityField>
+    <entityActionGroup>
+      <name>FilterActions</name>
+      <children>
+        <entityActionField>
+          <name>addDependency</name>
+          <title>Add Dependency</title>
+          <onActionProcess>%aditoprj%/entity/Observation_entity/entityfields/filteractions/children/adddependency/onActionProcess.js</onActionProcess>
+          <isSelectionAction v="true" />
+          <stateProcess>%aditoprj%/entity/Observation_entity/entityfields/filteractions/children/adddependency/stateProcess.js</stateProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
+    <entityParameter>
+      <name>Observation_id_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityField>
+      <name>NOTIFICATION_PRIO</name>
+      <title>Priority</title>
+      <consumer>PrioKeywords</consumer>
+      <valueProcess>%aditoprj%/entity/Observation_entity/entityfields/notification_prio/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Observation_entity/entityfields/notification_prio/displayValueProcess.js</displayValueProcess>
+    </entityField>
+  </entityFields>
+  <recordContainers>
+    <dbRecordContainer>
+      <name>db</name>
+      <isPageable v="false" />
+      <hasDependentRecords v="true" />
+      <conditionProcess>%aditoprj%/entity/Observation_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <orderClauseProcess>%aditoprj%/entity/Observation_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
+      <onDBDelete>%aditoprj%/entity/Observation_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
+      <alias>Data_alias</alias>
+      <cacheType>GLOBAL</cacheType>
+      <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>OBSERVATION.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>OBSERVATION.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OBJECT_ID.value</name>
+          <recordfield>OBSERVATION.OBJECT_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OBJECT_TYPE.value</name>
+          <recordfield>OBSERVATION.OBJECT_TYPE</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OBSERVATIONID.value</name>
+          <recordfield>OBSERVATION.OBSERVATIONID</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>OBSERVATION.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>OBSERVATION.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OBSERVER.value</name>
+          <recordfield>OBSERVATION.OBSERVER</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>TRIGGEREVENTDELETE.value</name>
+          <recordfield>OBSERVATION.TRIGGEREVENTDELETE</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>TRIGGEREVENTINSERT.value</name>
+          <recordfield>OBSERVATION.TRIGGEREVENTINSERT</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>TRIGGEREVENTUPDATE.value</name>
+          <recordfield>OBSERVATION.TRIGGEREVENTUPDATE</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OBJECT_FIELD.value</name>
+          <recordfield>OBSERVATION.OBJECT_FIELD</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OBJECT_FILTER.value</name>
+          <recordfield>OBSERVATION.OBJECT_FILTER</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>observationType.value</name>
+          <expression>%aditoprj%/entity/Observation_entity/recordcontainers/db/recordfieldmappings/observationtype.value/expression.js</expression>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OBSERVATION_ID.value</name>
+          <recordfield>OBSERVATION.OBSERVATION_ID</recordfield>
+          <isFilterable v="true" />
+          <isLookupFilter v="true" />
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>NOTIFICATION_PRIO.value</name>
+          <recordfield>OBSERVATION.NOTIFICATION_PRIO</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
+      </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>013ae123-fbb0-42c1-b57a-0d6fcbf21477</name>
+          <tableName>OBSERVATION</tableName>
+          <primaryKey>OBSERVATIONID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
+    </dbRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/Observation_entity/documentation.adoc b/entity/Observation_entity/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..7ecfc5a25ee243668153799dfbc20d77c4caade5
--- /dev/null
+++ b/entity/Observation_entity/documentation.adoc
@@ -0,0 +1,16 @@
+= Observation
+
+This entity is responsible for the administration of the observations and their dependencies.
+
+
+It is possible to set observations for different entities that are triggered based on changes in a data set 
+that is being observed directly or is contained in a filter. Fields that are not relevant for the observer 
+can be excluded. In addition, the user can decide whether he would like to know when a data record is 
+inserted, updated or deleted.
+
+=== Things for Observable Entities required
+
+* The entity had to trigger the Workflow in the onInsert, onUpdate and onDelete Processes
+* The entity had to have a content Title
+* The entity had to be customizing in the Blacklist_param of the Context Consumer if its not an dependency. Otherwise it had to be customizing in the Dependency_lib with the "isObservable" option
+* The entityfields which should not be displayed must also be customized
diff --git a/entity/Observation_entity/entityfields/contexts/children/blacklist_param/valueProcess.js b/entity/Observation_entity/entityfields/contexts/children/blacklist_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..dbd58f3a427a81168f0db636cb951787858c430f
--- /dev/null
+++ b/entity/Observation_entity/entityfields/contexts/children/blacklist_param/valueProcess.js
@@ -0,0 +1,28 @@
+import("Observation_lib");
+import("system.vars");
+import("system.result");
+import("Sql_lib")
+
+if (vars.get("$field.OBSERVATION_ID"))
+{
+    result.object(Observation.getAllDependencyValue(newSelect("OBSERVATION.OBJECT_TYPE").from("OBSERVATION").where("OBSERVATION.OBSERVATIONID", vars.get("$field.OBSERVATION_ID")).cell()));
+} 
+else 
+{
+    result.object([
+    "Activity",
+    "Campaign",
+    "Contract",
+    "Employee",
+    // "Favorite", TODO: Fix errors in favorites dependencies and then remove the comment
+    "Leadimport",
+    "Offer",
+    "Order",
+    "Organisation",
+    "Person",
+    "Product",
+    "Salesproject",
+    "SupportTicket",
+    "Task"
+]);
+}
diff --git a/entity/Attribute_entity/entityfields/expanded/valueProcess.js b/entity/Observation_entity/entityfields/contexts/children/invertblacklist_param/valueProcess.js
similarity index 55%
rename from entity/Attribute_entity/entityfields/expanded/valueProcess.js
rename to entity/Observation_entity/entityfields/contexts/children/invertblacklist_param/valueProcess.js
index dcb435b5f5508a654ce8c39f81aa6dd9c74fb323..40effa0178464da0c7850912345f19c7fa95975a 100644
--- a/entity/Attribute_entity/entityfields/expanded/valueProcess.js
+++ b/entity/Observation_entity/entityfields/contexts/children/invertblacklist_param/valueProcess.js
@@ -1,3 +1,3 @@
 import("system.result");
 
-result.object(false);
\ No newline at end of file
+result.string(true);
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/date_edit/valueProcess.js b/entity/Observation_entity/entityfields/date_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..8d41a64d6993f71d00e0879f5eb4aed0aa0b866d
--- /dev/null
+++ b/entity/Observation_entity/entityfields/date_edit/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
+    result.string(vars.get("$sys.date"));
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/date_new/valueProcess.js b/entity/Observation_entity/entityfields/date_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..8ee28e84edb9930de54975f81e8cb5a13c9aa02f
--- /dev/null
+++ b/entity/Observation_entity/entityfields/date_new/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    result.string(vars.get("$sys.date"));
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/filteractions/children/adddependency/onActionProcess.js b/entity/Observation_entity/entityfields/filteractions/children/adddependency/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..3f1d0c11b35d36ecaf864732aac6a84ee3dc449c
--- /dev/null
+++ b/entity/Observation_entity/entityfields/filteractions/children/adddependency/onActionProcess.js
@@ -0,0 +1,13 @@
+import("system.vars");
+import("system.entities");
+import("Observation_lib");
+import("system.neon");
+
+let selectedUIDs = vars.get("$sys.selection");
+
+if (selectedUIDs.length === 1){
+    let params = {
+        "Observation_id_param" : selectedUIDs[0]
+    }
+    neon.openContext("Observation", "ObservationEdit_view", null, neon.OPERATINGSTATE_NEW, params);
+}
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/filteractions/children/adddependency/stateProcess.js b/entity/Observation_entity/entityfields/filteractions/children/adddependency/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..2a13adbf563e621b559ce419dc5290a1701ddb90
--- /dev/null
+++ b/entity/Observation_entity/entityfields/filteractions/children/adddependency/stateProcess.js
@@ -0,0 +1,11 @@
+import("Context_lib");
+import("system.result");
+import("system.vars");
+import("system.neon");
+let selectedUIDs = vars.get("$sys.selection");
+ContextUtils.getContextId("Observation_entity");
+
+if (selectedUIDs.length !== 1 || vars.get("$field.OBSERVATION_ID"))
+    result.string(neon.COMPONENTSTATE_DISABLED);
+else 
+    result.string(neon.COMPONENTSTATE_EDITABLE);
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/notification_prio/displayValueProcess.js b/entity/Observation_entity/entityfields/notification_prio/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..0f475486d679f56d4a977f7e00a5cdb544331bbf
--- /dev/null
+++ b/entity/Observation_entity/entityfields/notification_prio/displayValueProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("system.vars");
+import("KeywordRegistry_basic");
+import("Keyword_lib");
+
+result.string(KeywordUtils.getViewValue($KeywordRegistry.notificationPriority(), vars.get("$this.value")));
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/notification_prio/valueProcess.js b/entity/Observation_entity/entityfields/notification_prio/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..efe3d0935078133f3da505a8e13e8b5a36a732a1
--- /dev/null
+++ b/entity/Observation_entity/entityfields/notification_prio/valueProcess.js
@@ -0,0 +1,6 @@
+import("KeywordRegistry_basic");
+import("system.result");
+import("system.vars");
+
+if (!vars.get("$this.value"))
+    result.string($KeywordRegistry.notificationPriority$normal());
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/object_field/dropDownProcess.js b/entity/Observation_entity/entityfields/object_field/dropDownProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b0d5277bc58c7f968310c549db58fa67fa61e917
--- /dev/null
+++ b/entity/Observation_entity/entityfields/object_field/dropDownProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Observation_lib");
+import("system.vars");
+
+
+result.object(Observation.getAllPosibleFields(vars.get("$field.OBJECT_TYPE")));
diff --git a/entity/Observation_entity/entityfields/object_field/stateProcess.js b/entity/Observation_entity/entityfields/object_field/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..95baf534c8ea447534f59933ddd965ae053e7d19
--- /dev/null
+++ b/entity/Observation_entity/entityfields/object_field/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+if (vars.get("$field.OBJECT_TYPE"))
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
diff --git a/entity/Observation_entity/entityfields/object_field/valueProcess.js b/entity/Observation_entity/entityfields/object_field/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..99147fd1e3f393ceaf6053ba8d320411a66ac717
--- /dev/null
+++ b/entity/Observation_entity/entityfields/object_field/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.vars");
+import("Observation_lib");
+import("system.result");
+import("system.neon");
+
+if (!vars.get("$this.value") && vars.get("$field.OBJECT_TYPE") && (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT))
+    result.string(Observation.getAllFieldValue(vars.get("$field.OBJECT_TYPE")));
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/object_filter/onValueChange.js b/entity/Observation_entity/entityfields/object_filter/onValueChange.js
new file mode 100644
index 0000000000000000000000000000000000000000..55c74d79ec6e955417f2dbe7176b0d1480bc8358
--- /dev/null
+++ b/entity/Observation_entity/entityfields/object_filter/onValueChange.js
@@ -0,0 +1,4 @@
+import("system.vars");
+
+if (vars.get("$this.value") && JSON.parse(vars.get("$this.value")).filter.childs.length > 0)
+    vars.set("$field.OBJECT_ID", null);
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/object_filter/stateProcess.js b/entity/Observation_entity/entityfields/object_filter/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..5e0b2ea0ea55e6962770bc343dc5471b105420a7
--- /dev/null
+++ b/entity/Observation_entity/entityfields/object_filter/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+if (vars.get("$field.OBJECT_TYPE") && !vars.get("$field.OBJECT_ID"))
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
diff --git a/entity/Observation_entity/entityfields/object_filter/valueProcess.js b/entity/Observation_entity/entityfields/object_filter/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e1eab777e321453398af0f07b195fe48287fe6ff
--- /dev/null
+++ b/entity/Observation_entity/entityfields/object_filter/valueProcess.js
@@ -0,0 +1,8 @@
+import("Observation_lib");
+import("Context_lib");
+import("system.vars");
+import("system.result");
+
+if ((vars.get("$this.value") == null || vars.get("$this.value") == "") && vars.get("$field.OBJECT_TYPE") && !vars.get("$field.OBJECT_ID")) {
+    result.string(Observation.getContextFilter(vars.get("$field.OBJECT_TYPE"), null));
+}
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/object_id/displayValueProcess.js b/entity/Observation_entity/entityfields/object_id/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7980bda1dde583895008c0a6cdd922077878ae53
--- /dev/null
+++ b/entity/Observation_entity/entityfields/object_id/displayValueProcess.js
@@ -0,0 +1,14 @@
+import("system.vars");
+import("system.entities");
+import("system.result");
+import("Employee_lib")
+
+if (vars.get("$field.OBJECT_TYPE") && vars.get("$field.OBJECT_ID"))
+{
+    var loadConfig = entities.createConfigForLoadingRows()
+    .entity(vars.get("$field.OBJECT_TYPE") + "_entity")
+    .fields(["#CONTENTTITLE"])
+    .uid(vars.get("$field.OBJECT_ID"))
+        
+    result.string(entities.getRow(loadConfig)["#CONTENTTITLE"]);
+}
diff --git a/entity/Observation_entity/entityfields/object_id/linkedContextProcess.js b/entity/Observation_entity/entityfields/object_id/linkedContextProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6c0f139c434895f76ce4180c889efc953c74bfdb
--- /dev/null
+++ b/entity/Observation_entity/entityfields/object_id/linkedContextProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.result");
+
+if (vars.get("$field.OBJECT_ID"))
+    result.string(vars.get("$field.OBJECT_TYPE"));
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/object_id/onValueChange.js b/entity/Observation_entity/entityfields/object_id/onValueChange.js
new file mode 100644
index 0000000000000000000000000000000000000000..058703b23436c4742aadbf71ec710e220f21e65d
--- /dev/null
+++ b/entity/Observation_entity/entityfields/object_id/onValueChange.js
@@ -0,0 +1,11 @@
+import("Context_lib");
+import("Observation_lib");
+import("system.vars");
+
+if (vars.get("$this.value"))
+{
+    vars.set("$field.OBJECT_FILTER", null);
+    vars.set("$field.TRIGGEREVENTINSERT", 0);
+}
+else 
+    vars.set("$field.TRIGGEREVENTINSERT", 1);
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/object_id/stateProcess.js b/entity/Observation_entity/entityfields/object_id/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..09e42012ed6ff88e18ac1c12ce9fa660eaeb3bfc
--- /dev/null
+++ b/entity/Observation_entity/entityfields/object_id/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+if (vars.get("$field.OBJECT_TYPE") && !(vars.get("$field.OBJECT_FILTER") && JSON.parse(vars.get("$field.OBJECT_FILTER")).filter.childs.length > 0))
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
diff --git a/entity/Observation_entity/entityfields/object_id/valueProcess.js b/entity/Observation_entity/entityfields/object_id/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..0d548d4da42d78867153de937258b1388ee775ec
--- /dev/null
+++ b/entity/Observation_entity/entityfields/object_id/valueProcess.js
@@ -0,0 +1,8 @@
+import("Employee_lib");
+import("system.vars");
+import("system.result");
+
+let value = vars.get("$this.value");
+
+if (vars.get("$this.value"))
+    result.string(vars.get("$field.OBJECT_TYPE") == "Employee" && value.length == 36  ? EmployeeUtils.prefixUserId(value) : value);
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/object_type/displayValueProcess.js b/entity/Observation_entity/entityfields/object_type/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..1805b1860acb81fa6e80120a160b3f6cb1351c14
--- /dev/null
+++ b/entity/Observation_entity/entityfields/object_type/displayValueProcess.js
@@ -0,0 +1,9 @@
+import("system.translate");
+import("system.result");
+import("system.vars");
+import("Context_lib");
+
+let type = vars.get("$field.OBJECT_TYPE");
+
+if (type)
+    result.string(translate.text(ContextUtils.getContextName(type)));
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/object_type/onValueChange.js b/entity/Observation_entity/entityfields/object_type/onValueChange.js
new file mode 100644
index 0000000000000000000000000000000000000000..9bcd9261bdd4b363f261de9b5e1edad733a7b9ea
--- /dev/null
+++ b/entity/Observation_entity/entityfields/object_type/onValueChange.js
@@ -0,0 +1,6 @@
+import("system.neon");
+import("Observation_lib");
+import("system.vars");
+
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+    vars.set("$field.OBJECT_FIELD",null);
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/object_type/stateProcess.js b/entity/Observation_entity/entityfields/object_type/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..643741ad3220ee883606474ee01ebcbbbf5ad208
--- /dev/null
+++ b/entity/Observation_entity/entityfields/object_type/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_EDIT)
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_READONLY);
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/objectproxyconsumer/children/entity_param/valueProcess.js b/entity/Observation_entity/entityfields/objectproxyconsumer/children/entity_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..574d469f847e371987a6b404c575b8e6c2b4d415
--- /dev/null
+++ b/entity/Observation_entity/entityfields/objectproxyconsumer/children/entity_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("Context_lib")
+
+result.string(ContextUtils.getEntity(vars.get("$field.OBJECT_TYPE")));
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/observation_id/valueProcess.js b/entity/Observation_entity/entityfields/observation_id/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a8558e58cad26d101cdb073a9b68d3b5ead61ef2
--- /dev/null
+++ b/entity/Observation_entity/entityfields/observation_id/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("system.vars");
+if (vars.exists("$param.Observation_id_param") && vars.getString("$param.Observation_id_param"))
+{
+    result.string(vars.getString("$param.Observation_id_param"));
+}
diff --git a/entity/Observation_entity/entityfields/observationtype/displayValueProcess.js b/entity/Observation_entity/entityfields/observationtype/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7c3584c65dbe3d112d03467516ed92a7b061c519
--- /dev/null
+++ b/entity/Observation_entity/entityfields/observationtype/displayValueProcess.js
@@ -0,0 +1,15 @@
+import("system.result");
+import("system.entities");
+import("system.vars");
+
+if (vars.get("$this.value") && vars.get("$this.value") != "FILTER" )
+{
+    var loadConfig = entities.createConfigForLoadingRows()
+    .entity(vars.get("$field.OBJECT_TYPE") + "_entity")
+    .fields(["#CONTENTTITLE"])
+    .uid(vars.get("$this.value"))
+        
+    result.string(entities.getRow(loadConfig)["#CONTENTTITLE"]);
+} else {
+    result.string("Filter");
+}
diff --git a/entity/Observation_entity/entityfields/observer/displayValueProcess.js b/entity/Observation_entity/entityfields/observer/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..cb2f2d2c69db5f0e82ae95bfa6b8f8090c8de433
--- /dev/null
+++ b/entity/Observation_entity/entityfields/observer/displayValueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.logging");
+import("system.vars");
+import("system.tools");
+
+var user = tools.getUserByAttribute(tools.NAME, vars.get("$field.OBSERVER"), tools.PROFILE_DEFAULT);
+if (user)
+    result.string((user.params.firstname + " " + user.params.lastname).trim());
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/observer/stateProcess.js b/entity/Observation_entity/entityfields/observer/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e930c613bf00b043822b8deda3fb50fffc555121
--- /dev/null
+++ b/entity/Observation_entity/entityfields/observer/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_EDIT && vars.get("$param.OnlyMyObservations_param") != "true")
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_READONLY);
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/observer/valueProcess.js b/entity/Observation_entity/entityfields/observer/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9643850fd4816576b543c3fefb624575d6957e1e
--- /dev/null
+++ b/entity/Observation_entity/entityfields/observer/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("system.vars")
+
+if (!vars.get("$this.value") && vars.get("$param.Observer_param"))
+    result.string(vars.get("$param.Observer_param"));
+    
+    
diff --git a/entity/Observation_entity/entityfields/observer_param/valueProcess.js b/entity/Observation_entity/entityfields/observer_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..3bc7f5cd1797ce903128a6d074df6ee4cc34dd18
--- /dev/null
+++ b/entity/Observation_entity/entityfields/observer_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("Employee_lib");
+import("system.result");
+
+
+result.string( EmployeeUtils.getCurrentUserId());
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/onlymyobservations_param/valueProcess.js b/entity/Observation_entity/entityfields/onlymyobservations_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..599bfc35195077f2fb171156ddaf1faddd9b3254
--- /dev/null
+++ b/entity/Observation_entity/entityfields/onlymyobservations_param/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string(true)
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/priokeywords/children/containername_param/valueProcess.js b/entity/Observation_entity/entityfields/priokeywords/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..1a1a50c90c786f687c2ed3833d696dc022b3d4d0
--- /dev/null
+++ b/entity/Observation_entity/entityfields/priokeywords/children/containername_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+
+
+result.string("NotificationPriority");
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/phase/valueProcess.js b/entity/Observation_entity/entityfields/triggereventdelete/valueProcess.js
similarity index 64%
rename from entity/Salesproject_entity/entityfields/phase/valueProcess.js
rename to entity/Observation_entity/entityfields/triggereventdelete/valueProcess.js
index 7ff3aa7c6b2ad21f43934b9e4ff5131980b35005..72e22f0a52f1d6439b67df5abc59a66280df8fd4 100644
--- a/entity/Salesproject_entity/entityfields/phase/valueProcess.js
+++ b/entity/Observation_entity/entityfields/triggereventdelete/valueProcess.js
@@ -1,7 +1,6 @@
-import("KeywordRegistry_basic");
 import("system.neon");
 import("system.vars");
 import("system.result");
 
 if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
-    result.string($KeywordRegistry.salesprojectPhase$nqc());
\ No newline at end of file
+    result.string("1");
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/triggereventinsert/stateProcess.js b/entity/Observation_entity/entityfields/triggereventinsert/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..af9cbe9f36d002960c26b820a9d5cf02f5f6ee36
--- /dev/null
+++ b/entity/Observation_entity/entityfields/triggereventinsert/stateProcess.js
@@ -0,0 +1,6 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+if (vars.get("$field.OBJECT_ID") && (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT))
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
diff --git a/entity/Observation_entity/entityfields/triggereventinsert/valueProcess.js b/entity/Observation_entity/entityfields/triggereventinsert/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..72e22f0a52f1d6439b67df5abc59a66280df8fd4
--- /dev/null
+++ b/entity/Observation_entity/entityfields/triggereventinsert/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
+    result.string("1");
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/triggereventupdate/valueProcess.js b/entity/Observation_entity/entityfields/triggereventupdate/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..72e22f0a52f1d6439b67df5abc59a66280df8fd4
--- /dev/null
+++ b/entity/Observation_entity/entityfields/triggereventupdate/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
+    result.string("1");
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/user_edit/valueProcess.js b/entity/Observation_entity/entityfields/user_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..90383c071316dc55fe51d43a93dd7db75551842e
--- /dev/null
+++ b/entity/Observation_entity/entityfields/user_edit/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
+    result.string(vars.get("$sys.user"));
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/user_new/valueProcess.js b/entity/Observation_entity/entityfields/user_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..dda83cfd00e13df5c6da64151f5d1e6d932a681e
--- /dev/null
+++ b/entity/Observation_entity/entityfields/user_new/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    result.string(vars.get("$sys.user"));
\ No newline at end of file
diff --git a/entity/Observation_entity/recordcontainers/db/conditionProcess.js b/entity/Observation_entity/recordcontainers/db/conditionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..759cf5066513e03d38f993d73c8d40bb31398393
--- /dev/null
+++ b/entity/Observation_entity/recordcontainers/db/conditionProcess.js
@@ -0,0 +1,9 @@
+import("Employee_lib");
+import("system.vars");
+import("Sql_lib");
+import("system.result");
+
+var cond = newWhere();
+if (vars.get("$param.OnlyMyObservations_param") == "true")
+    cond.andIfSet("OBSERVATION.OBSERVER", vars.get("$param.Observer_param"));
+result.string(cond.toString());
\ No newline at end of file
diff --git a/entity/Observation_entity/recordcontainers/db/onDBDelete.js b/entity/Observation_entity/recordcontainers/db/onDBDelete.js
new file mode 100644
index 0000000000000000000000000000000000000000..61647984def3293cbba0ec6e7f594bebe2f431ee
--- /dev/null
+++ b/entity/Observation_entity/recordcontainers/db/onDBDelete.js
@@ -0,0 +1,5 @@
+import("Sql_lib");
+import("system.vars");
+
+newWhere("OBSERVATION.OBSERVATION_ID" , vars.get("$local.uid"))
+.deleteData(true, "OBSERVATION");
\ No newline at end of file
diff --git a/entity/Observation_entity/recordcontainers/db/orderClauseProcess.js b/entity/Observation_entity/recordcontainers/db/orderClauseProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..058d334e7b904ddbba221fdb96df9ec9f5a6e0cc
--- /dev/null
+++ b/entity/Observation_entity/recordcontainers/db/orderClauseProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.db");
+
+result.object({"OBSERVATION.OBSERVATION_ID": db.DESCENDING});
\ No newline at end of file
diff --git a/entity/Observation_entity/recordcontainers/db/recordfieldmappings/observationtype.value/expression.js b/entity/Observation_entity/recordcontainers/db/recordfieldmappings/observationtype.value/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..c70fa3937d7c97f9abfd5aa72e03abc85f77caa1
--- /dev/null
+++ b/entity/Observation_entity/recordcontainers/db/recordfieldmappings/observationtype.value/expression.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string("CASE WHEN OBSERVATION.OBJECT_ID IS NOT NULL THEN OBSERVATION.OBJECT_ID ELSE 'FILTER' END");
diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod
index 2cfb61b2ae7d1ad11c1c3dea35fa7840de750c82..d03d338d99b497acd580e820f5cb8713eb9c53c1 100644
--- a/entity/Offer_entity/Offer_entity.aod
+++ b/entity/Offer_entity/Offer_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Offer_entity</name>
+  <title>Offer</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Offer_entity/documentation.adoc</documentation>
-  <title>Offer</title>
   <siblings>
     <element>Offeritem_entity</element>
   </siblings>
@@ -118,6 +118,11 @@
       <name>Offeritems</name>
       <refreshParent v="true" />
       <description></description>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Offeritem_entity</entityName>
+        <fieldName>OfferItems</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>OfferId_param</name>
@@ -151,18 +156,7 @@
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offeritems/children/discount_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Offeritem_entity</entityName>
-        <fieldName>OfferItems</fieldName>
-      </dependency>
     </entityConsumer>
-    <entityActionField>
-      <name>newOfferVersion</name>
-      <title>New offer version</title>
-      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/newofferversion/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CART</iconId>
-    </entityActionField>
     <entityField>
       <name>NET</name>
       <title>Total net</title>
@@ -192,12 +186,6 @@
       <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/isolanguage/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/isolanguage/displayValueProcess.js</displayValueProcess>
     </entityField>
-    <entityActionField>
-      <name>copyOffer</name>
-      <title>Copy offer</title>
-      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/copyoffer/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:COPY</iconId>
-    </entityActionField>
     <entityField>
       <name>VERSNR</name>
       <documentation>%aditoprj%/entity/Offer_entity/entityfields/versnr/documentation.adoc</documentation>
@@ -229,13 +217,6 @@
       <mandatory v="true" />
       <description>PARAMETER</description>
     </entityParameter>
-    <entityActionField>
-      <name>showOffer</name>
-      <title>Show offer</title>
-      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/showoffer/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:FILE_TEXT_O</iconId>
-      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/showoffer/stateProcess.js</stateProcess>
-    </entityActionField>
     <entityField>
       <name>CONTACT_ORG_ID</name>
       <title>Company</title>
@@ -252,22 +233,27 @@
     </entityField>
     <entityConsumer>
       <name>AnyContacts</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AnyContact_entity</entityName>
+        <fieldName>OnlySameCompany</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/anycontacts/children/contactid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AnyContact_entity</entityName>
-        <fieldName>OnlySameCompany</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Documents</name>
       <selectionMode>MULTI</selectionMode>
       <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/documents/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>Documents</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>AssignmentRowId_param</name>
@@ -278,15 +264,15 @@
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>Documents</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>MainDocuments</name>
       <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/maindocuments/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>MainDocuments</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>AssignmentRowId_param</name>
@@ -297,11 +283,6 @@
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/maindocuments/children/assignmenttable_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>MainDocuments</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>ADDRESS</name>
@@ -323,11 +304,15 @@
       <onValueChange>%aditoprj%/entity/Offer_entity/entityfields/chosenaddress/onValueChange.js</onValueChange>
       <onValueChangeTypes>
         <element>MASK</element>
-        <element>PROCESS</element>
       </onValueChangeTypes>
     </entityField>
     <entityConsumer>
       <name>KeywordCurrencies</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -335,14 +320,14 @@
           <expose v="false" />
         </entityParameter>
       </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordOfferStates</name>
       <dependency>
         <name>dependency</name>
         <entityName>KeywordEntry_entity</entityName>
         <fieldName>SpecificContainerKeywords</fieldName>
       </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>KeywordOfferStates</name>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -350,18 +335,7 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
-    <entityActionField>
-      <name>newOrder</name>
-      <title>Create receipt</title>
-      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/neworder/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:DOLLAR</iconId>
-    </entityActionField>
     <entityConsumer>
       <name>Languages</name>
       <dependency>
@@ -372,6 +346,11 @@
     </entityConsumer>
     <entityConsumer>
       <name>KeywordProbabilities</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -379,14 +358,14 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Activities</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Activity_entity</entityName>
+        <fieldName>LinkedObjects</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectId_param</name>
@@ -401,22 +380,29 @@
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/activities/children/presetlinks_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Activity_entity</entityName>
-        <fieldName>LinkedObjects</fieldName>
-      </dependency>
     </entityConsumer>
-    <entityActionField>
-      <name>newActivity</name>
-      <title>New activity</title>
-      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:HOURGLASS_END</iconId>
-      <tooltip>New activity</tooltip>
-      <tooltipProcess>%aditoprj%/entity/Offer_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
-    </entityActionField>
     <entityProvider>
       <name>ContactOffers</name>
+      <dependencies>
+        <entityDependency>
+          <name>5c9720b5-1288-4a30-88fd-6dcff6359083</name>
+          <entityName>Person_entity</entityName>
+          <fieldName>Offers</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>b308795f-3c81-4e60-99ca-3b5f8e82f62a</name>
+          <entityName>Organisation_entity</entityName>
+          <fieldName>Offers</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>a74b02c4-bdb3-4ba8-9207-66a0af528b1b</name>
+          <entityName>Order_entity</entityName>
+          <fieldName>Offers</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
@@ -467,26 +453,6 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependencies>
-        <entityDependency>
-          <name>5c9720b5-1288-4a30-88fd-6dcff6359083</name>
-          <entityName>Person_entity</entityName>
-          <fieldName>Offers</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>b308795f-3c81-4e60-99ca-3b5f8e82f62a</name>
-          <entityName>Organisation_entity</entityName>
-          <fieldName>Offers</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>a74b02c4-bdb3-4ba8-9207-66a0af528b1b</name>
-          <entityName>Order_entity</entityName>
-          <fieldName>Offers</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
     </entityProvider>
     <entityParameter>
       <name>OfferCurrency_param</name>
@@ -530,12 +496,6 @@
       <mandatory v="false" />
       <description>PARAMETER</description>
     </entityParameter>
-    <entityActionField>
-      <name>newTask</name>
-      <title>New task</title>
-      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:TASKS</iconId>
-    </entityActionField>
     <entityField>
       <name>PAYMENTTERMS</name>
       <title>Payment term</title>
@@ -556,35 +516,40 @@
     </entityField>
     <entityConsumer>
       <name>KeywordPaymentTerm</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keywordpaymentterm/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordDeliveryTerm</name>
       <dependency>
         <name>dependency</name>
         <entityName>KeywordEntry_entity</entityName>
         <fieldName>SpecificContainerKeywords</fieldName>
       </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>KeywordDeliveryTerm</name>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keyworddeliveryterm/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Tasks</name>
       <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/tasks/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Task_entity</entityName>
+        <fieldName>Tasks</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>RowId_param</name>
@@ -599,11 +564,6 @@
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/tasks/children/presetlinks_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Task_entity</entityName>
-        <fieldName>Tasks</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>INFO</name>
@@ -615,6 +575,11 @@
       <name>Attributes</name>
       <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/attributes/stateProcess.js</stateProcess>
       <onValidation>%aditoprj%/entity/Offer_entity/entityfields/attributes/onValidation.js</onValidation>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>AttributeRelations</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
@@ -625,11 +590,6 @@
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>AttributeRelations</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>OfferPaymentTerm_param</name>
@@ -669,17 +629,17 @@
     </entityField>
     <entityConsumer>
       <name>PossibleAddresses</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Address_entity</entityName>
+        <fieldName>OrganisationAndContactAddresses</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/possibleaddresses/children/contactid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Address_entity</entityName>
-        <fieldName>OrganisationAndContactAddresses</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>ChoosenTEXHeader</name>
@@ -721,6 +681,11 @@
     </entityField>
     <entityConsumer>
       <name>Objects</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Object_entity</entityName>
+        <fieldName>FilteredObjects</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectType_param</name>
@@ -731,14 +696,14 @@
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/objects/children/contactid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Object_entity</entityName>
-        <fieldName>FilteredObjects</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Contexts</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Context_entity</entityName>
+        <fieldName>Exclusive</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>Blacklist_param</name>
@@ -749,15 +714,18 @@
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/contexts/children/invertblacklist_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Context_entity</entityName>
-        <fieldName>Exclusive</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>Links</name>
       <recordContainer>db</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>88a166e6-ccd0-4d51-b554-e3327f66d834</name>
+          <entityName>Salesproject_entity</entityName>
+          <fieldName>Offers</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
       <children>
         <entityParameter>
           <name>OfferDeliveryTerm_param</name>
@@ -813,14 +781,6 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependencies>
-        <entityDependency>
-          <name>88a166e6-ccd0-4d51-b554-e3327f66d834</name>
-          <entityName>Salesproject_entity</entityName>
-          <fieldName>Offers</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
     </entityProvider>
     <entityParameter>
       <name>ObjectRowId_param</name>
@@ -838,6 +798,11 @@
     </entityField>
     <entityConsumer>
       <name>DocumentTemplateTexHeader</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>DocumentTemplate_entity</entityName>
+        <fieldName>DocumentTemplateProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>DocumentTemplateType_param</name>
@@ -848,25 +813,20 @@
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/documenttemplatetexheader/children/documenttemplatetypeclassification_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>DocumentTemplate_entity</entityName>
-        <fieldName>DocumentTemplateProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>LogHistories</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>LogHistory_entity</entityName>
+        <fieldName>LogHistoryProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>tablenames_param</name>
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>LogHistory_entity</entityName>
-        <fieldName>LogHistoryProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>FOOTER</name>
@@ -893,6 +853,11 @@
     </entityField>
     <entityConsumer>
       <name>DocumentTemplateTexFooter</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>DocumentTemplate_entity</entityName>
+        <fieldName>DocumentTemplateProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>DocumentTemplateType_param</name>
@@ -903,30 +868,25 @@
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/documenttemplatetexfooter/children/documenttemplatetypeclassification_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>DocumentTemplate_entity</entityName>
-        <fieldName>DocumentTemplateProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Salesprojects</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Salesproject_entity</entityName>
+        <fieldName>Salesprojects</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Salesproject_entity</entityName>
-        <fieldName>Salesprojects</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>CONTACT_ID</name>
       <documentation>%aditoprj%/entity/Offer_entity/entityfields/contact_id/documentation.adoc</documentation>
-      <title>Contact</title>
+      <title>Recipient</title>
       <consumer>AnyContacts</consumer>
       <groupable v="true" />
       <linkedContextProcess>%aditoprj%/entity/Offer_entity/entityfields/contact_id/linkedContextProcess.js</linkedContextProcess>
@@ -949,13 +909,6 @@
       <title>Letter salutation</title>
       <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/lettersalutation/stateProcess.js</stateProcess>
     </entityField>
-    <entityActionField>
-      <name>openAdminView</name>
-      <title>Open admin view</title>
-      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CURLY_BRACKETS</iconId>
-      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/openadminview/stateProcess.js</stateProcess>
-    </entityActionField>
     <entityProvider>
       <name>SentOffers</name>
       <children>
@@ -976,14 +929,6 @@
       <mandatory v="false" />
       <documentation>%aditoprj%/entity/Offer_entity/entityfields/activityid_param/documentation.adoc</documentation>
     </entityParameter>
-    <entityActionField>
-      <name>startWorkflow</name>
-      <title>Start workflow</title>
-      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/startworkflow/onActionProcess.js</onActionProcess>
-      <isSelectionAction v="true" />
-      <iconId>VAADIN:PLAY</iconId>
-      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/startworkflow/stateProcess.js</stateProcess>
-    </entityActionField>
     <entityField>
       <name>OFFER_REPORT_DATA</name>
       <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offer_report_data/valueProcess.js</valueProcess>
@@ -1004,20 +949,6 @@
         <fieldName>Contact</fieldName>
       </dependency>
     </entityConsumer>
-    <entityActionGroup>
-      <name>offerReportDispatch</name>
-      <children>
-        <entityActionField>
-          <name>dispatchOfferReport</name>
-          <title>Dispatch as mail</title>
-          <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/offerreportdispatch/children/dispatchofferreport/onActionProcess.js</onActionProcess>
-          <isMenuAction v="true" />
-          <isObjectAction v="false" />
-          <iconId>VAADIN:AT</iconId>
-          <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/offerreportdispatch/children/dispatchofferreport/stateProcess.js</stateProcess>
-        </entityActionField>
-      </children>
-    </entityActionGroup>
     <entityConsumer>
       <name>Emails</name>
       <dependency>
@@ -1101,28 +1032,116 @@
       <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/discounted_vat/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityConsumer>
-      <name>Products</name>
+        <name>Products</name>
+        <children>
+            <entityParameter>
+                <name>OrderOfferInformations_param</name>
+                <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/products/children/orderofferinformations_param/valueProcess.js</valueProcess>
+            </entityParameter>
+            <entityParameter>
+                <name>ShownInOfferMainView_param</name>
+                <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/products/children/showninoffermainview_param/valueProcess.js</valueProcess>
+            </entityParameter>
+        </children>
+        <dependency>
+            <name>dependency</name>
+            <entityName>Product_entity</entityName>
+            <fieldName>Products</fieldName>
+        </dependency>
+    </entityConsumer>
+    <entityActionGroup>
+      <name>observeActionGroup</name>
       <children>
-        <entityParameter>
-          <name>OrderOfferInformations_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/products/children/orderofferinformations_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ShownInOfferMainView_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/products/children/showninoffermainview_param/valueProcess.js</valueProcess>
-        </entityParameter>
+        <entityActionField>
+          <name>observe</name>
+          <title>Observe</title>
+          <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js</onActionProcess>
+          <isObjectAction v="true" />
+          <iconId>VAADIN:EYE</iconId>
+          <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/observeactiongroup/children/observe/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Offer_entity/entityfields/observeactiongroup/children/observe/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>cancelObservation</name>
+          <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:EYE_SLASH</iconId>
+          <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Offer_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
+        </entityActionField>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Product_entity</entityName>
-        <fieldName>Products</fieldName>
-      </dependency>
-    </entityConsumer>
+    </entityActionGroup>
+    <entityActionField>
+      <name>newOfferVersion</name>
+      <title>New offer version</title>
+      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/newofferversion/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CART</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>copyOffer</name>
+      <title>Copy offer</title>
+      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/copyoffer/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:COPY</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>showOffer</name>
+      <title>Show offer</title>
+      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/showoffer/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:FILE_TEXT_O</iconId>
+      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/showoffer/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>newOrder</name>
+      <title>Create receipt</title>
+      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/neworder/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:DOLLAR</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>newActivity</name>
+      <title>New activity</title>
+      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:HOURGLASS_END</iconId>
+      <tooltip>New activity</tooltip>
+      <tooltipProcess>%aditoprj%/entity/Offer_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>newTask</name>
+      <title>New task</title>
+      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:TASKS</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>startWorkflow</name>
+      <title>Start workflow</title>
+      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/startworkflow/onActionProcess.js</onActionProcess>
+      <isSelectionAction v="true" />
+      <iconId>VAADIN:PLAY</iconId>
+      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/startworkflow/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityActionGroup>
+      <name>offerReportDispatch</name>
+      <children>
+        <entityActionField>
+          <name>dispatchOfferReport</name>
+          <title>Dispatch as mail</title>
+          <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/offerreportdispatch/children/dispatchofferreport/onActionProcess.js</onActionProcess>
+          <isMenuAction v="true" />
+          <isObjectAction v="false" />
+          <iconId>VAADIN:AT</iconId>
+          <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/offerreportdispatch/children/dispatchofferreport/stateProcess.js</stateProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
+    <entityActionField>
+      <name>openAdminView</name>
+      <title>Open admin view</title>
+      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CURLY_BRACKETS</iconId>
+      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/openadminview/stateProcess.js</stateProcess>
+    </entityActionField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <maximumDbRows v="0" />
       <fromClauseProcess>%aditoprj%/entity/Offer_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/Offer_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
@@ -1130,43 +1149,7 @@
       <onDBInsert>%aditoprj%/entity/Offer_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/Offer_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/Offer_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>69b62a9f-95bf-48be-8891-b6c2524f6ea1</name>
-          <tableName>OFFER</tableName>
-          <primaryKey>OFFERID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>d2334c28-1be0-4377-b13a-062bb1613c5a</name>
-          <tableName>CONTACT</tableName>
-          <primaryKey>CONTACTID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>16e5d66a-f156-4855-9da4-b9dee497c3f3</name>
-          <tableName>SALESPROJECT</tableName>
-          <primaryKey>SALESPROJECTID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>6b708a89-8864-433b-bdec-4edcedb3d7d1</name>
-          <tableName>ORGANISATION</tableName>
-          <primaryKey>ORGANISATIONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>4cdfe047-48d0-409e-8b01-e2c1312e8a5b</name>
-          <tableName>PERSON</tableName>
-          <primaryKey>PERSONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>CURRENCY.value</name>
@@ -1205,6 +1188,8 @@
         <dbRecordFieldMapping>
           <name>PROBABILITY.value</name>
           <recordfield>OFFER.PROBABILITY</recordfield>
+          <isFilterable v="true" />
+          <isLookupFilter v="false" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>STATUS.value</name>
@@ -1318,6 +1303,7 @@
         <dbRecordFieldMapping>
           <name>LETTERSALUTATION.value</name>
           <recordfield>OFFER.LETTERSALUTATION</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>CONTACT_ORG_ID.displayValue</name>
@@ -1383,6 +1369,43 @@
           <recordfield>OFFER.DISCOUNTED_VAT</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>69b62a9f-95bf-48be-8891-b6c2524f6ea1</name>
+          <tableName>OFFER</tableName>
+          <primaryKey>OFFERID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>d2334c28-1be0-4377-b13a-062bb1613c5a</name>
+          <tableName>CONTACT</tableName>
+          <primaryKey>CONTACTID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>16e5d66a-f156-4855-9da4-b9dee497c3f3</name>
+          <tableName>SALESPROJECT</tableName>
+          <primaryKey>SALESPROJECTID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>6b708a89-8864-433b-bdec-4edcedb3d7d1</name>
+          <tableName>ORGANISATION</tableName>
+          <primaryKey>ORGANISATIONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>4cdfe047-48d0-409e-8b01-e2c1312e8a5b</name>
+          <tableName>PERSON</tableName>
+          <primaryKey>PERSONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
       <filterExtensions>
         <filterExtensionSet>
           <name>Attribute_filter</name>
diff --git a/entity/Offer_entity/entityfields/address/valueProcess.js b/entity/Offer_entity/entityfields/address/valueProcess.js
index 160f9518edab8b5ed593d921661aada906512ee4..e7878513e8aaa088d2ba5623aac2c49be81f73ab 100644
--- a/entity/Offer_entity/entityfields/address/valueProcess.js
+++ b/entity/Offer_entity/entityfields/address/valueProcess.js
@@ -1,7 +1,7 @@
 import("system.result");
 import("system.vars");
 
-if (vars.exists("$param.OfferAddress_param")) 
+if (vars.get("$param.OfferAddress_param") && vars.get("$this.value") == null) 
 {
     result.string(vars.get("$param.OfferAddress_param"));
 }
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/deliveryterms/valueProcess.js b/entity/Offer_entity/entityfields/deliveryterms/valueProcess.js
index ff143a3b866db9b739ae9532997d6dd4041b5a89..58333ceee85c85ca43b36ec1a03d4d3067f6a9a9 100644
--- a/entity/Offer_entity/entityfields/deliveryterms/valueProcess.js
+++ b/entity/Offer_entity/entityfields/deliveryterms/valueProcess.js
@@ -11,7 +11,7 @@ if (vars.exists("$param.OfferDeliveryTerm_param") && vars.get("$param.OfferDeliv
 {
     result.string(vars.get("$param.OfferDeliveryTerm_param"));
 } 
-else if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+else if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null && vars.get("$field.CONTACT_ID"))
 {
     var presetValue = "";
     var contactIds = ContactUtils.getPersOrgIds(vars.getString("$field.CONTACT_ID"))
diff --git a/entity/Offer_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js b/entity/Offer_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..35102b677cbb52d1d4a9723a42cceaef3fd5ea03
--- /dev/null
+++ b/entity/Offer_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.cancelAction();
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js b/entity/Offer_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a0350f5edebe397b96a84766e7cdb8d99f77ee5
--- /dev/null
+++ b/entity/Offer_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js b/entity/Offer_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..87553a373a055879a524774695e4c18bcab617e9
--- /dev/null
+++ b/entity/Offer_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("Observation_lib");
+
+result.string(Observation.cancelActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js b/entity/Offer_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..66cf7bc2991c142ee0753fec88e151d3dcf71141
--- /dev/null
+++ b/entity/Offer_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.insertAction();
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/observeactiongroup/children/observe/stateProcess.js b/entity/Offer_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..461276ea5e1e98e967047207ac6d654225a1b1c6
--- /dev/null
+++ b/entity/Offer_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (!Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/observeactiongroup/children/observe/titleProcess.js b/entity/Offer_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..abdfbd3d7c4aff7beba9ff22cbb39abc8d195a30
--- /dev/null
+++ b/entity/Offer_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Observation_lib");
+import("system.vars");
+
+result.string(Observation.observeActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/openadminview/onActionProcess.js b/entity/Offer_entity/entityfields/openadminview/onActionProcess.js
index 9257ff40784f0d506f2b68484ae292b951c069bd..a6781db7db09cfa1e51de183d2f14ed06cba737e 100644
--- a/entity/Offer_entity/entityfields/openadminview/onActionProcess.js
+++ b/entity/Offer_entity/entityfields/openadminview/onActionProcess.js
@@ -6,8 +6,8 @@ result.string(AdminViewUtils.open("OFFERID", [
     ["CONTACT_ID", vars.get("$field.CONTACT_ID")],
     ["CONTACT_ORG_ID", vars.get("$field.CONTACT_ORG_ID")],
     ["CONTACT_PERSON_ID", vars.get("$field.CONTACT_PERSON_ID")],
-    ["DATE_NEW", vars.get("$field.DATE_NEW")],
-    ["DATE_EDIT", vars.get("$field.DATE_EDIT")],
+    ["DATE_NEW", vars.get("$field.DATE_NEW"), "DATE"],
+    ["DATE_EDIT", vars.get("$field.DATE_EDIT"), "DATE"],
     ["USER_NEW", vars.get("$field.USER_NEW")],
     ["USER_EDIT", vars.get("$field.USER_EDIT")]
 ]));
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/paymentterms/valueProcess.js b/entity/Offer_entity/entityfields/paymentterms/valueProcess.js
index 4b13796a10e4c66b70d7abe004fa7369b3c515b3..b9fd6cd7aee19dcfa86cb5e4625f9998548efd02 100644
--- a/entity/Offer_entity/entityfields/paymentterms/valueProcess.js
+++ b/entity/Offer_entity/entityfields/paymentterms/valueProcess.js
@@ -11,7 +11,7 @@ if (vars.exists("$param.OfferPaymentTerm_param") && vars.get("$param.OfferPaymen
 {
     result.string(vars.get("$param.OfferPaymentTerm_param"));
 }
-else if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+else if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null && vars.get("$field.CONTACT_ID"))
 {
     var presetValue = "";
     var contactIds = ContactUtils.getPersOrgIds(vars.getString("$field.CONTACT_ID"))
diff --git a/entity/Offer_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js b/entity/Offer_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
index 4157abe2c850e42fb49e06207d907884670e46e2..63107e39aba496b0175d11ffbcc930fcef263d46 100644
--- a/entity/Offer_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
+++ b/entity/Offer_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
@@ -1,11 +1,12 @@
+import("system.vars");
 import("Favorites_lib");
 import("system.result");
 import("Sql_lib");
 
-var favoFilterCond = newWhere();
-var rowIds = FavoritesUtil.getRowIdsOfFavoriteGroup();
+var operator = vars.get("$local.operator");
+var rawvalue = vars.get("$local.rawvalue");
 
-for(i = 0; i < rowIds.length; i++)
-    favoFilterCond.or("OFFER.OFFERID", rowIds[i], SqlBuilder.EQUAL());
+var objecttype = vars.get("$field.OFFER_OBJECTTYPE");
+var idcolumn = "OFFER.OFFERID";
 
-result.string(favoFilterCond.toString());
\ No newline at end of file
+result.string(FavoritesUtil.getFilterDisplayCondition(objecttype, operator, rawvalue, idcolumn));
diff --git a/entity/Offeritem_entity/Offeritem_entity.aod b/entity/Offeritem_entity/Offeritem_entity.aod
index 648d3ef347fe73ceaf135c1967ab8f4c65d57e76..08b8e12dc9d6ccb982b1d5aacd57015d342c350f 100644
--- a/entity/Offeritem_entity/Offeritem_entity.aod
+++ b/entity/Offeritem_entity/Offeritem_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Offeritem_entity</name>
+  <title>Offeritem</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Offeritem_entity/documentation.adoc</documentation>
-  <title>Offeritem</title>
   <siblings>
     <element>Offer_entity</element>
   </siblings>
@@ -23,6 +23,8 @@
       <name>DISCOUNT</name>
       <title>Discount</title>
       <contentType>NUMBER</contentType>
+      <maxValue v="100" />
+      <minValue v="0" />
       <outputFormat>0.00'%'</outputFormat>
       <inputFormat>0.00</inputFormat>
       <onValidation>%aditoprj%/entity/Offeritem_entity/entityfields/discount/onValidation.js</onValidation>
@@ -63,7 +65,6 @@
       <name>OPTIONAL</name>
       <title>Optional</title>
       <contentType>BOOLEAN</contentType>
-      <dropDownProcess>%aditoprj%/entity/Offeritem_entity/entityfields/optional/dropDownProcess.js</dropDownProcess>
       <valueProcess>%aditoprj%/entity/Offeritem_entity/entityfields/optional/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
@@ -95,6 +96,7 @@
       <documentation>%aditoprj%/entity/Offeritem_entity/entityfields/quantity/documentation.adoc</documentation>
       <title>Quantity</title>
       <contentType>NUMBER</contentType>
+      <minValue v="1" />
       <outputFormat>#</outputFormat>
       <inputFormat>#</inputFormat>
       <mandatory v="true" />
@@ -184,8 +186,8 @@
         </entityParameter>
         <entityParameter>
           <name>Language_param</name>
-          <title></title>
           <expose v="true" />
+          <title></title>
         </entityParameter>
       </children>
       <dependencies>
@@ -262,7 +264,6 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <maximumDbRows v="0" />
       <hasDependentRecords v="true" />
       <conditionProcess>%aditoprj%/entity/Offeritem_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
@@ -270,15 +271,7 @@
       <onDBInsert>%aditoprj%/entity/Offeritem_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/Offeritem_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/Offeritem_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>1894a7fa-bc31-43c2-9ba9-d432892efdaa</name>
-          <tableName>OFFERITEM</tableName>
-          <primaryKey>OFFERITEMID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>ASSIGNEDTO.value</name>
@@ -375,6 +368,15 @@
           <expression>%aditoprj%/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/product_id.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>1894a7fa-bc31-43c2-9ba9-d432892efdaa</name>
+          <tableName>OFFERITEM</tableName>
+          <primaryKey>OFFERITEMID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/Offeritem_entity/entityfields/optional/dropDownProcess.js b/entity/Offeritem_entity/entityfields/optional/dropDownProcess.js
deleted file mode 100644
index 1324968dfff10e56efe6268f8520572d56f21d1b..0000000000000000000000000000000000000000
--- a/entity/Offeritem_entity/entityfields/optional/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-     ["1", translate.text("Yes")]
-    ,["0", translate.text("No")]
-]);
\ No newline at end of file
diff --git a/entity/Order_entity/Order_entity.aod b/entity/Order_entity/Order_entity.aod
index 8693ca47070b1a975fac096bd9874f65cbcd1ed5..ad9892139f1fd85ceec66e62b2b6d490095a13b0 100644
--- a/entity/Order_entity/Order_entity.aod
+++ b/entity/Order_entity/Order_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Order_entity</name>
+  <title>Receipt</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Order_entity/documentation.adoc</documentation>
-  <title>Receipt</title>
   <grantDeleteProcess>%aditoprj%/entity/Order_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/Order_entity/contentTitleProcess.js</contentTitleProcess>
   <contentDescriptionProcess>%aditoprj%/entity/Order_entity/contentDescriptionProcess.js</contentDescriptionProcess>
@@ -72,11 +72,12 @@
     <entityField>
       <name>CONTACT_ID</name>
       <documentation>%aditoprj%/entity/Order_entity/entityfields/contact_id/documentation.adoc</documentation>
-      <title>Connection</title>
+      <title>Recipient</title>
       <consumer>AnyContacts</consumer>
       <linkedContextProcess>%aditoprj%/entity/Order_entity/entityfields/contact_id/linkedContextProcess.js</linkedContextProcess>
       <mandatory v="true" />
       <displayValueProcess>%aditoprj%/entity/Order_entity/entityfields/contact_id/displayValueProcess.js</displayValueProcess>
+      <onValueChange>%aditoprj%/entity/Order_entity/entityfields/contact_id/onValueChange.js</onValueChange>
       <onValueChangeTypes>
         <element>MASK</element>
       </onValueChangeTypes>
@@ -415,7 +416,6 @@
       <title>Sent</title>
       <contentType>BOOLEAN</contentType>
       <groupable v="true" />
-      <dropDownProcess>%aditoprj%/entity/Order_entity/entityfields/orderstatus/dropDownProcess.js</dropDownProcess>
       <valueProcess>%aditoprj%/entity/Order_entity/entityfields/orderstatus/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
@@ -433,7 +433,6 @@
       <title>${ORDER_CANCELLED}</title>
       <contentType>BOOLEAN</contentType>
       <groupable v="true" />
-      <dropDownProcess>%aditoprj%/entity/Order_entity/entityfields/cancellation/dropDownProcess.js</dropDownProcess>
       <valueProcess>%aditoprj%/entity/Order_entity/entityfields/cancellation/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
@@ -734,7 +733,6 @@
       <documentation>%aditoprj%/entity/Order_entity/entityfields/chosenpaymentaddress/documentation.adoc</documentation>
       <title>Choose payment address</title>
       <consumer>PossibleAddresses</consumer>
-      <valueProcess>%aditoprj%/entity/Order_entity/entityfields/chosenpaymentaddress/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/Order_entity/entityfields/chosenpaymentaddress/displayValueProcess.js</displayValueProcess>
       <onValueChange>%aditoprj%/entity/Order_entity/entityfields/chosenpaymentaddress/onValueChange.js</onValueChange>
       <onValueChangeTypes>
@@ -748,7 +746,6 @@
       <documentation>%aditoprj%/entity/Order_entity/entityfields/chosendeliveryaddress/documentation.adoc</documentation>
       <title>Choose delivery address</title>
       <consumer>PossibleAddresses</consumer>
-      <valueProcess>%aditoprj%/entity/Order_entity/entityfields/chosendeliveryaddress/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/Order_entity/entityfields/chosendeliveryaddress/displayValueProcess.js</displayValueProcess>
       <onValueChange>%aditoprj%/entity/Order_entity/entityfields/chosendeliveryaddress/onValueChange.js</onValueChange>
       <onValueChangeTypes>
@@ -800,6 +797,44 @@
       <parentField>COUNT</parentField>
       <title>Count</title>
     </entityAggregateField>
+    <entityField>
+      <name>INFO</name>
+      <title>Info</title>
+      <contentType>LONG_TEXT</contentType>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
+    </entityField>
+    <entityField>
+      <name>ACTIVE</name>
+    </entityField>
+    <entityParameter>
+      <name>SourceOrderId_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityActionGroup>
+      <name>observeActionGroup</name>
+      <children>
+        <entityActionField>
+          <name>observe</name>
+          <title>Observe</title>
+          <onActionProcess>%aditoprj%/entity/Order_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js</onActionProcess>
+          <isObjectAction v="true" />
+          <iconId>VAADIN:EYE</iconId>
+          <stateProcess>%aditoprj%/entity/Order_entity/entityfields/observeactiongroup/children/observe/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Order_entity/entityfields/observeactiongroup/children/observe/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>cancelObservation</name>
+          <onActionProcess>%aditoprj%/entity/Order_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:EYE_SLASH</iconId>
+          <stateProcess>%aditoprj%/entity/Order_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Order_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
     <entityActionField>
       <name>copyOrder</name>
       <documentation>%aditoprj%/entity/Order_entity/entityfields/copyorder/documentation.adoc</documentation>
@@ -887,13 +922,6 @@
       <iconId>VAADIN:FILE</iconId>
       <stateProcess>%aditoprj%/entity/Order_entity/entityfields/printreminder/stateProcess.js</stateProcess>
     </entityActionField>
-    <entityActionField>
-      <name>openAdminView</name>
-      <title>Open admin view</title>
-      <onActionProcess>%aditoprj%/entity/Order_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CURLY_BRACKETS</iconId>
-      <stateProcess>%aditoprj%/entity/Order_entity/entityfields/openadminview/stateProcess.js</stateProcess>
-    </entityActionField>
     <entityActionGroup>
       <name>orderReportDispatch</name>
       <children>
@@ -920,19 +948,13 @@
         </entityActionField>
       </children>
     </entityActionGroup>
-    <entityParameter>
-      <name>SourceOrderId_param</name>
-      <expose v="true" />
-      <description></description>
-    </entityParameter>
-    <entityField>
-      <name>DATE_NEW</name>
-      <contentType>DATE</contentType>
-      <resolution>DAY</resolution>
-    </entityField>
-    <entityField>
-      <name>ACTIVE</name>
-    </entityField>
+    <entityActionField>
+      <name>openAdminView</name>
+      <title>Open admin view</title>
+      <onActionProcess>%aditoprj%/entity/Order_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CURLY_BRACKETS</iconId>
+      <stateProcess>%aditoprj%/entity/Order_entity/entityfields/openadminview/stateProcess.js</stateProcess>
+    </entityActionField>
     <entityConsumer>
       <name>Products</name>
       <children>
@@ -955,7 +977,6 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <maximumDbRows v="0" />
       <fromClauseProcess>%aditoprj%/entity/Order_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/Order_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
@@ -963,36 +984,7 @@
       <onDBInsert>%aditoprj%/entity/Order_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/Order_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/Order_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>43290f18-46fb-4d1f-b653-60f39f1fe3fb</name>
-          <tableName>SALESORDER</tableName>
-          <primaryKey>SALESORDERID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>3f8c21b4-a81e-4405-8b4f-346ff724b8a5</name>
-          <tableName>CONTACT</tableName>
-          <primaryKey>CONTACTID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>0131be90-6232-4dda-9036-bbde951eded5</name>
-          <tableName>PERSON</tableName>
-          <primaryKey>PERSONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>0efeab02-efaf-4155-9312-0aee1f7f5535</name>
-          <tableName>ORGANISATION</tableName>
-          <primaryKey>ORGANISATIONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>CURRENCY.value</name>
@@ -1003,14 +995,17 @@
         <dbRecordFieldMapping>
           <name>FOOTER.value</name>
           <recordfield>SALESORDER.FOOTER</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>HEADER.value</name>
           <recordfield>SALESORDER.HEADER</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>NET.value</name>
           <recordfield>SALESORDER.NET</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>SALESORDERCODE.value</name>
@@ -1021,6 +1016,7 @@
         <dbRecordFieldMapping>
           <name>SALESORDERDATE.value</name>
           <recordfield>SALESORDER.SALESORDERDATE</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>SALESORDERID.value</name>
@@ -1029,6 +1025,7 @@
         <dbRecordFieldMapping>
           <name>VAT.value</name>
           <recordfield>SALESORDER.VAT</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>CONTACT_ID.value</name>
@@ -1069,14 +1066,17 @@
         <dbRecordFieldMapping>
           <name>CANCELLATION.value</name>
           <recordfield>SALESORDER.CANCELLATION</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>DUNNINGDATE.value</name>
           <recordfield>SALESORDER.DUNNINGDATE</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>DUNNINGLEVEL.value</name>
           <recordfield>SALESORDER.DUNNINGLEVEL</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>ORDERSTATUS.value</name>
@@ -1092,6 +1092,7 @@
         <dbRecordFieldMapping>
           <name>PAID.value</name>
           <recordfield>SALESORDER.PAID</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>PAYDATE.value</name>
@@ -1102,6 +1103,7 @@
         <dbRecordFieldMapping>
           <name>PAYDUEDATE.value</name>
           <recordfield>SALESORDER.PAYDUEDATE</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>OBJECT_ROWID.value</name>
@@ -1126,18 +1128,22 @@
         <dbRecordFieldMapping>
           <name>DELIVERYADDRESS.value</name>
           <recordfield>SALESORDER.DELIVERYADDRESS</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>PAYMENTADDRESS.value</name>
           <recordfield>SALESORDER.PAYMENTADDRESS</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>NOTICE.value</name>
           <recordfield>SALESORDER.NOTICE</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>DUNNINGTEXT.value</name>
           <recordfield>SALESORDER.DUNNINGTEXT</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>DELIVERYTERMS.displayValue</name>
@@ -1174,7 +1180,42 @@
           <name>ACTIVE.value</name>
           <expression>%aditoprj%/entity/Order_entity/recordcontainers/db/recordfieldmappings/active.value/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>INFO.value</name>
+          <recordfield>SALESORDER.INFO</recordfield>
+          <isFilterable v="true" />
+        </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>43290f18-46fb-4d1f-b653-60f39f1fe3fb</name>
+          <tableName>SALESORDER</tableName>
+          <primaryKey>SALESORDERID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>3f8c21b4-a81e-4405-8b4f-346ff724b8a5</name>
+          <tableName>CONTACT</tableName>
+          <primaryKey>CONTACTID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>0131be90-6232-4dda-9036-bbde951eded5</name>
+          <tableName>PERSON</tableName>
+          <primaryKey>PERSONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>0efeab02-efaf-4155-9312-0aee1f7f5535</name>
+          <tableName>ORGANISATION</tableName>
+          <primaryKey>ORGANISATIONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
       <filterExtensions>
         <filterExtension>
           <name>Favorite_filter</name>
diff --git a/entity/Order_entity/entityfields/cancellation/dropDownProcess.js b/entity/Order_entity/entityfields/cancellation/dropDownProcess.js
deleted file mode 100644
index eb7b41eef018d34f85906aa931250cb812ff3392..0000000000000000000000000000000000000000
--- a/entity/Order_entity/entityfields/cancellation/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-["1", translate.text("Yes")]
-,["0", translate.text("No")]
-]);
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/chosendeliveryaddress/displayValueProcess.js b/entity/Order_entity/entityfields/chosendeliveryaddress/displayValueProcess.js
index 0c813a182c67edfa8cad70ef3f3ce43d0b06c126..6edd38999f3754199fb568bb13f3da9b9275ce10 100644
--- a/entity/Order_entity/entityfields/chosendeliveryaddress/displayValueProcess.js
+++ b/entity/Order_entity/entityfields/chosendeliveryaddress/displayValueProcess.js
@@ -2,4 +2,4 @@ import("system.vars");
 import("PostalAddress_lib");
 import("system.result");
 
-result.string(AddressUtils.getFormattedOnlineAddressById(vars.get("$field.ChosenPaymentAddress")))
\ No newline at end of file
+result.string(AddressUtils.getFormattedOnlineAddressById(vars.get("$field.ChosenDeliveryAddress")))
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/chosendeliveryaddress/onValueChange.js b/entity/Order_entity/entityfields/chosendeliveryaddress/onValueChange.js
index 0af12a93e35e4df8221666d3c95d483b44b38aeb..44c16bd3e5047c572ec2bcbc3f9e15ce215be9ac 100644
--- a/entity/Order_entity/entityfields/chosendeliveryaddress/onValueChange.js
+++ b/entity/Order_entity/entityfields/chosendeliveryaddress/onValueChange.js
@@ -8,4 +8,5 @@ var newAddressId = vars.get("$local.value");
 if (newAddressId)
 {
     neon.setFieldValue("$field.DELIVERYADDRESS", AddressUtils.getAddressById(newAddressId));
+    
 }
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/chosendeliveryaddress/valueProcess.js b/entity/Order_entity/entityfields/chosendeliveryaddress/valueProcess.js
deleted file mode 100644
index f0b227bdb4b0fe3afa8e9542ce9f10af4630d3b9..0000000000000000000000000000000000000000
--- a/entity/Order_entity/entityfields/chosendeliveryaddress/valueProcess.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import("Contact_lib");
-import("system.result");
-import("system.neon");
-import("system.vars");
-
-if (((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && vars.get("$this.value") == null))
-{
-    if (vars.get("$field.DELIVERYADDRESS")) //case when a receipt is made from an offer i.e. the address is already set
-    {
-    result.string(null);
-    }
-    else 
-        {
-    var defaultAddressId = ContactUtils.getDefaultAddressId(vars.get("$field.CONTACT_ID")); //otherwise get the default address
-    if (defaultAddressId)
-        result.string(defaultAddressId);
-        }
-}
-else //(i.e this.value!=null)
-{
- var defaultAddressId2 = ContactUtils.getDefaultAddressId(vars.get("$field.CONTACT_ID")); //if the user changes the contact and project again, get the address of the new contact
-    if (defaultAddressId2)
-        result.string(defaultAddressId2);   
-}
diff --git a/entity/Order_entity/entityfields/chosenpaymentaddress/onValueChange.js b/entity/Order_entity/entityfields/chosenpaymentaddress/onValueChange.js
index e30268bc6a8cb9585934bdd8bcbcdbb29a9d7efa..939aea52612434f5450d2f2a56cafdb07de0f079 100644
--- a/entity/Order_entity/entityfields/chosenpaymentaddress/onValueChange.js
+++ b/entity/Order_entity/entityfields/chosenpaymentaddress/onValueChange.js
@@ -8,6 +8,7 @@ var newAddressId = vars.get("$local.value");
 if (newAddressId)
 {
     neon.setFieldValue("$field.PAYMENTADDRESS", AddressUtils.getAddressById(newAddressId));
-    neon.setFieldValue("$field.ChosenDeliveryAddress", AddressUtils.getAddressById(newAddressId));
+    neon.setFieldValue("$field.ChosenDeliveryAddress", newAddressId);
     neon.setFieldValue("$field.DELIVERYADDRESS", AddressUtils.getAddressById(newAddressId));
+    
 }
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/chosenpaymentaddress/valueProcess.js b/entity/Order_entity/entityfields/chosenpaymentaddress/valueProcess.js
deleted file mode 100644
index 5520b6f007660f1ce62e6216c5b587c5e3bbdaf6..0000000000000000000000000000000000000000
--- a/entity/Order_entity/entityfields/chosenpaymentaddress/valueProcess.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import("Contact_lib");
-import("system.result");
-import("system.neon");
-import("system.vars");
-
-if (((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && vars.get("$this.value") == null))
-{
-    if (vars.get("$field.PAYMENTADDRESS")) //case when a receipt is made from an offer i.e. the address is already set
-    {
-    result.string(null);
-    }
-    else 
-        {
-    var defaultAddressId = ContactUtils.getDefaultAddressId(vars.get("$field.CONTACT_ID")); //otherwise get the default address
-    if (defaultAddressId)
-        result.string(defaultAddressId);
-        }
-}
-else //(i.e this.value!=null)
-{
- var defaultAddressId2 = ContactUtils.getDefaultAddressId(vars.get("$field.CONTACT_ID")); //if the user changes the contact and project again, get the address of the new contact
-    if (defaultAddressId2)
-        result.string(defaultAddressId2);   
-}
diff --git a/entity/Order_entity/entityfields/contact_id/onValueChange.js b/entity/Order_entity/entityfields/contact_id/onValueChange.js
new file mode 100644
index 0000000000000000000000000000000000000000..b0695547e1c2b02e41ad59aa861999bd9747ca51
--- /dev/null
+++ b/entity/Order_entity/entityfields/contact_id/onValueChange.js
@@ -0,0 +1,7 @@
+import("system.neon");
+import("system.vars");
+import("Contact_lib");
+
+
+neon.setFieldValue("$field.ChosenPaymentAddress", ContactUtils.getDefaultAddressId(vars.get("local.value")));
+neon.setFieldValue("$field.ChosenDeliveryAddress", ContactUtils.getDefaultAddressId(vars.get("local.value")));
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/deliveryterms/valueProcess.js b/entity/Order_entity/entityfields/deliveryterms/valueProcess.js
index 8e6fb1be5bc999ff98be26570bbd8ff5d5233ff1..ed78d05852c8a088d333cf55307036313541b3e1 100644
--- a/entity/Order_entity/entityfields/deliveryterms/valueProcess.js
+++ b/entity/Order_entity/entityfields/deliveryterms/valueProcess.js
@@ -9,7 +9,7 @@ import("Contact_lib");
 
 
 
-if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null && vars.get("$field.CONTACT_ID"))
 {
     var presetValue = "";
     var contactIds = ContactUtils.getPersOrgIds(vars.getString("$field.CONTACT_ID"));
diff --git a/entity/Order_entity/entityfields/dunningdate/valueProcess.js b/entity/Order_entity/entityfields/dunningdate/valueProcess.js
index d5ae1be32b21e27a07049d1388af7d1feab5f678..ae262c3cac6b62c6d2deb314b0a67fe451575747 100644
--- a/entity/Order_entity/entityfields/dunningdate/valueProcess.js
+++ b/entity/Order_entity/entityfields/dunningdate/valueProcess.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.neon");
 import("system.vars");
 import("system.result");
diff --git a/entity/Order_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js b/entity/Order_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..35102b677cbb52d1d4a9723a42cceaef3fd5ea03
--- /dev/null
+++ b/entity/Order_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.cancelAction();
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js b/entity/Order_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a0350f5edebe397b96a84766e7cdb8d99f77ee5
--- /dev/null
+++ b/entity/Order_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js b/entity/Order_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..87553a373a055879a524774695e4c18bcab617e9
--- /dev/null
+++ b/entity/Order_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("Observation_lib");
+
+result.string(Observation.cancelActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js b/entity/Order_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..66cf7bc2991c142ee0753fec88e151d3dcf71141
--- /dev/null
+++ b/entity/Order_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.insertAction();
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/observeactiongroup/children/observe/stateProcess.js b/entity/Order_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..461276ea5e1e98e967047207ac6d654225a1b1c6
--- /dev/null
+++ b/entity/Order_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (!Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/observeactiongroup/children/observe/titleProcess.js b/entity/Order_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..abdfbd3d7c4aff7beba9ff22cbb39abc8d195a30
--- /dev/null
+++ b/entity/Order_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Observation_lib");
+import("system.vars");
+
+result.string(Observation.observeActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/offers/children/contactid_param/valueProcess.js b/entity/Order_entity/entityfields/offers/children/contactid_param/valueProcess.js
index 7b92c1bb14aa08001b7d5738111337ab7e81f4cc..cf4b6cd38a6154032bc3607894ce054e4754a062 100644
--- a/entity/Order_entity/entityfields/offers/children/contactid_param/valueProcess.js
+++ b/entity/Order_entity/entityfields/offers/children/contactid_param/valueProcess.js
@@ -1,10 +1,4 @@
 import("system.result");
 import("system.vars");
-import("Contact_lib");
 
-if (vars.get("$field.CONTACT_ID"))
-{
-    var ids = ContactUtils.getPersOrgIds(vars.getString("$field.CONTACT_ID"));
-    if (ids.length >= 3 && ids[2])
-        result.string(ids[2]);
-}
\ No newline at end of file
+result.string(vars.get("$field.CONTACT_ID"));
diff --git a/entity/Order_entity/entityfields/orderstatus/dropDownProcess.js b/entity/Order_entity/entityfields/orderstatus/dropDownProcess.js
deleted file mode 100644
index eb7b41eef018d34f85906aa931250cb812ff3392..0000000000000000000000000000000000000000
--- a/entity/Order_entity/entityfields/orderstatus/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-["1", translate.text("Yes")]
-,["0", translate.text("No")]
-]);
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/paydate/valueProcess.js b/entity/Order_entity/entityfields/paydate/valueProcess.js
index d5ae1be32b21e27a07049d1388af7d1feab5f678..ae262c3cac6b62c6d2deb314b0a67fe451575747 100644
--- a/entity/Order_entity/entityfields/paydate/valueProcess.js
+++ b/entity/Order_entity/entityfields/paydate/valueProcess.js
@@ -1,4 +1,3 @@
-import("system.logging");
 import("system.neon");
 import("system.vars");
 import("system.result");
diff --git a/entity/Order_entity/entityfields/paymentterms/valueProcess.js b/entity/Order_entity/entityfields/paymentterms/valueProcess.js
index 7501b966d14bf76fa1fc2ded5b655a8f0e3e9129..8cf77fdb2b60bc5b819d97a770b3b3c3e8cd8199 100644
--- a/entity/Order_entity/entityfields/paymentterms/valueProcess.js
+++ b/entity/Order_entity/entityfields/paymentterms/valueProcess.js
@@ -7,23 +7,23 @@ import("system.result");
 import("system.vars");
 import("Attribute_lib");
 
-if (vars.get("$this.value") == null) {
-    if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null && vars.get("$field.CONTACT_ID"))
+{
+    var presetValue = "";
+    var contactIds = ContactUtils.getPersOrgIds(vars.getString("$field.CONTACT_ID"));
+    if (contactIds.length >= 3 && contactIds[2])
     {
-        var presetValue = "";
-        var contactIds = ContactUtils.getPersOrgIds(vars.getString("$field.CONTACT_ID"));
-        if (contactIds.length >= 3 && contactIds[2])
-        {
-            var orgContactId = ContactUtils.getOrgContactId(contactIds[2]);
-            if (orgContactId)
-            { 
-                presetValue = new AttributeRelationQuery(orgContactId, $AttributeRegistry.paymentTerm()).getSingleAttributeValue();
-            }
+        var orgContactId = ContactUtils.getOrgContactId(contactIds[2]);
+        if (orgContactId)
+        { 
+            presetValue = new AttributeRelationQuery(orgContactId, $AttributeRegistry.paymentTerm()).getSingleAttributeValue();
         }
-
-        if (presetValue)
-            result.string(presetValue);
-        else
-            result.string(KeywordUtils.getFirst($KeywordRegistry.paymentTerm()));
     }
+
+    if (presetValue)
+        result.string(presetValue);
+    else
+        result.string(KeywordUtils.getFirst($KeywordRegistry.paymentTerm()));
 }
+
diff --git a/entity/Order_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js b/entity/Order_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
index 647507498cf404c675a2a3225f36369d7012659d..7d1adc14150119dd7ff8be0b48535cccc4aadf52 100644
--- a/entity/Order_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
+++ b/entity/Order_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
@@ -1,11 +1,12 @@
+import("system.vars");
 import("Favorites_lib");
 import("system.result");
 import("Sql_lib");
 
-var favoFilterCond = newWhere();
-var rowIds = FavoritesUtil.getRowIdsOfFavoriteGroup();
+var operator = vars.get("$local.operator");
+var rawvalue = vars.get("$local.rawvalue");
 
-for(i = 0; i < rowIds.length; i++)
-    favoFilterCond.or("SALESORDER.SALESORDERID", rowIds[i], SqlBuilder.EQUAL());
+var objecttype = vars.get("$field.ORDER_OBJECTTYPE");
+var idcolumn = "SALESORDER.SALESORDERID";
 
-result.string(favoFilterCond.toString());
\ No newline at end of file
+result.string(FavoritesUtil.getFilterDisplayCondition(objecttype, operator, rawvalue, idcolumn));
diff --git a/entity/Orderitem_entity/Orderitem_entity.aod b/entity/Orderitem_entity/Orderitem_entity.aod
index 18a9c4003b8a29e4f09e68ac6000e2599d98acd6..6a02b00aea28efcf29007d0437180314c300cf2c 100644
--- a/entity/Orderitem_entity/Orderitem_entity.aod
+++ b/entity/Orderitem_entity/Orderitem_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Orderitem_entity</name>
+  <title>Orderitem</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Orderitem_entity/documentation.adoc</documentation>
-  <title>Orderitem</title>
   <siblings>
     <element>Order_entity</element>
   </siblings>
@@ -58,7 +58,6 @@
       <name>OPTIONAL</name>
       <title>Optional</title>
       <contentType>BOOLEAN</contentType>
-      <dropDownProcess>%aditoprj%/entity/Orderitem_entity/entityfields/optional/dropDownProcess.js</dropDownProcess>
       <valueProcess>%aditoprj%/entity/Orderitem_entity/entityfields/optional/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
@@ -254,7 +253,6 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <maximumDbRows v="0" />
       <hasDependentRecords v="true" />
       <conditionProcess>%aditoprj%/entity/Orderitem_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
@@ -262,15 +260,7 @@
       <onDBInsert>%aditoprj%/entity/Orderitem_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/Orderitem_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/Orderitem_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>cb0f1bfa-92eb-4ee9-bb02-8ac0ef3f987d</name>
-          <tableName>SALESORDERITEM</tableName>
-          <primaryKey>SALESORDERITEMID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>ASSIGNEDTO.value</name>
@@ -355,6 +345,15 @@
           <isLookupFilter v="true" />
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>cb0f1bfa-92eb-4ee9-bb02-8ac0ef3f987d</name>
+          <tableName>SALESORDERITEM</tableName>
+          <primaryKey>SALESORDERITEMID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/Orderitem_entity/entityfields/optional/dropDownProcess.js b/entity/Orderitem_entity/entityfields/optional/dropDownProcess.js
deleted file mode 100644
index 1324968dfff10e56efe6268f8520572d56f21d1b..0000000000000000000000000000000000000000
--- a/entity/Orderitem_entity/entityfields/optional/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-     ["1", translate.text("Yes")]
-    ,["0", translate.text("No")]
-]);
\ No newline at end of file
diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod
index 3c28665b6f4dafd38a997021fa55dd2fca257d70..07dea630082c21d0cba6341b9cd989752485f9ba 100644
--- a/entity/Organisation_entity/Organisation_entity.aod
+++ b/entity/Organisation_entity/Organisation_entity.aod
@@ -1,14 +1,15 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Organisation_entity</name>
+  <title>Company</title>
   <description>former Org</description>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Organisation_entity/documentation.adoc</documentation>
-  <title>Company</title>
   <grantDeleteProcess>%aditoprj%/entity/Organisation_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/Organisation_entity/contentTitleProcess.js</contentTitleProcess>
   <contentDescriptionProcess>%aditoprj%/entity/Organisation_entity/contentDescriptionProcess.js</contentDescriptionProcess>
   <afterUiInit>%aditoprj%/entity/Organisation_entity/afterUiInit.js</afterUiInit>
+  <afterSave>%aditoprj%/entity/Organisation_entity/afterSave.js</afterSave>
   <initFilterProcess>%aditoprj%/entity/Organisation_entity/initFilterProcess.js</initFilterProcess>
   <useFavorites v="true" />
   <iconId>VAADIN:BUILDING</iconId>
@@ -72,6 +73,11 @@
     </entityField>
     <entityConsumer>
       <name>Activities</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Activity_entity</entityName>
+        <fieldName>LinkedObjects</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>RowId_param</name>
@@ -82,26 +88,21 @@
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/activities/children/objectid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Activity_entity</entityName>
-        <fieldName>LinkedObjects</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Contact</name>
       <selectionMode>MULTI</selectionMode>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Person_entity</entityName>
+        <fieldName>OrganisationRelated</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>OrgId_param</name>
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/contact/children/orgid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Person_entity</entityName>
-        <fieldName>OrganisationRelated</fieldName>
-      </dependency>
     </entityConsumer>
     <entityFieldGroup>
       <name>CUSTOMERCODE_DISPLAY_fieldGroup</name>
@@ -115,36 +116,6 @@
       <name>Organisations</name>
       <documentation>%aditoprj%/entity/Organisation_entity/entityfields/organisations/documentation.adoc</documentation>
       <recordContainer>db</recordContainer>
-      <children>
-        <entityParameter>
-          <name>WithPrivate_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ExcludeOrganisationsByPersonId</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>ExcludedContactIds_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>AttributeKeyId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>AttributeId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>DuplicateActionsControl_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>DuplicateCurrentContactId_param</name>
-          <expose v="false" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>85aa363e-d8ba-4df5-8422-bf7aff86a4f8</name>
@@ -182,10 +153,63 @@
           <fieldName>Organisations</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>b64b29e6-59c5-4250-9bc7-b08c85976e7e</name>
+          <entityName>DistrictContact_entity</entityName>
+          <fieldName>Organisations</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>WithPrivate_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ExcludeOrganisationsByPersonId</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ExcludedContactIds_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>AttributeKeyId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>AttributeId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>DuplicateActionsControl_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>DuplicateCurrentContactId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewAdditionalFeatures_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewCenterLat_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewCenterLon_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityConsumer>
       <name>Addresses</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Address_entity</entityName>
+        <fieldName>OrganisationAddresses</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>DefaultAddressId_param</name>
@@ -197,11 +221,6 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Address_entity</entityName>
-        <fieldName>OrganisationAddresses</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>ADDRESS_ID</name>
@@ -209,9 +228,19 @@
       <consumer>Addresses</consumer>
       <state>AUTO</state>
       <displayValueProcess>%aditoprj%/entity/Organisation_entity/entityfields/address_id/displayValueProcess.js</displayValueProcess>
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+        <element>PROCESS_SETVALUE</element>
+      </onValueChangeTypes>
     </entityField>
     <entityConsumer>
       <name>Communications</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Communication_entity</entityName>
+        <fieldName>AllCommunications</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
@@ -223,15 +252,15 @@
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/communications/children/contactsmaincountry_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Communication_entity</entityName>
-        <fieldName>AllCommunications</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Contracts</name>
       <selectionMode>MULTI</selectionMode>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Contract_entity</entityName>
+        <fieldName>Contracts</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
@@ -240,14 +269,14 @@
           <mandatory v="true" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Contract_entity</entityName>
-        <fieldName>Contracts</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Productprices</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Productprice_entity</entityName>
+        <fieldName>Productprices</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
@@ -256,11 +285,6 @@
           <mandatory v="true" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Productprice_entity</entityName>
-        <fieldName>Productprices</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>#PROVIDER</name>
@@ -300,6 +324,11 @@
     <entityConsumer>
       <name>Documents</name>
       <selectionMode>MULTI</selectionMode>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>Documents</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>AssignmentRowId_param</name>
@@ -310,11 +339,6 @@
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>Documents</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>STANDARD_EMAIL_COMMUNICATION</name>
@@ -330,6 +354,11 @@
     </entityField>
     <entityConsumer>
       <name>PhoneCommunications</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Communication_entity</entityName>
+        <fieldName>PhoneCommunications</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
@@ -337,14 +366,14 @@
           <expose v="false" />
         </entityParameter>
       </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>EmailCommunications</name>
       <dependency>
         <name>dependency</name>
         <entityName>Communication_entity</entityName>
-        <fieldName>PhoneCommunications</fieldName>
+        <fieldName>EmailCommunications</fieldName>
       </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>EmailCommunications</name>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
@@ -352,11 +381,6 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Communication_entity</entityName>
-        <fieldName>EmailCommunications</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Countries</name>
@@ -369,25 +393,30 @@
     <entityConsumer>
       <name>Attributes</name>
       <onValidation>%aditoprj%/entity/Organisation_entity/entityfields/attributes/onValidation.js</onValidation>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>AttributeRelations</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
-          <title></title>
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
+          <title></title>
         </entityParameter>
         <entityParameter>
           <name>ObjectType_param</name>
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>AttributeRelations</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>KeywordContactStates</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -395,14 +424,14 @@
           <expose v="false" />
         </entityParameter>
       </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordOrganisationTypes</name>
       <dependency>
         <name>dependency</name>
         <entityName>KeywordEntry_entity</entityName>
         <fieldName>SpecificContainerKeywords</fieldName>
       </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>KeywordOrganisationTypes</name>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -410,11 +439,6 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Languages</name>
@@ -426,6 +450,11 @@
     </entityConsumer>
     <entityConsumer>
       <name>KeywordPricePolitics</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -433,14 +462,14 @@
           <expose v="false" />
         </entityParameter>
       </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordWeaknesses</name>
       <dependency>
         <name>dependency</name>
         <entityName>KeywordEntry_entity</entityName>
         <fieldName>SpecificContainerKeywords</fieldName>
       </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>KeywordWeaknesses</name>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -448,14 +477,14 @@
           <expose v="false" />
         </entityParameter>
       </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordStrenghts</name>
       <dependency>
         <name>dependency</name>
         <entityName>KeywordEntry_entity</entityName>
         <fieldName>SpecificContainerKeywords</fieldName>
       </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>KeywordStrenghts</name>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -463,14 +492,14 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Salesprojects</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Salesproject_entity</entityName>
+        <fieldName>Salesprojects</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
@@ -479,14 +508,14 @@
           <mandatory v="true" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Salesproject_entity</entityName>
-        <fieldName>Salesprojects</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Offers</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Offer_entity</entityName>
+        <fieldName>ContactOffers</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
@@ -495,14 +524,14 @@
           <mandatory v="true" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Offer_entity</entityName>
-        <fieldName>ContactOffers</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Tasks</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Task_entity</entityName>
+        <fieldName>Tasks</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>RowId_param</name>
@@ -513,11 +542,6 @@
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/tasks/children/objectid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Task_entity</entityName>
-        <fieldName>Tasks</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>WithPrivate_param</name>
@@ -528,6 +552,11 @@
     </entityParameter>
     <entityConsumer>
       <name>ObjectTrees</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ObjectTree_entity</entityName>
+        <fieldName>TreeProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectIds_param</name>
@@ -538,30 +567,30 @@
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/objecttrees/children/objecttypes_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>ObjectTree_entity</entityName>
-        <fieldName>TreeProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>LogHistories</name>
-      <children>
-        <entityParameter>
-          <name>tablenames_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <mandatory v="true" />
-        </entityParameter>
-      </children>
       <dependency>
         <name>dependency</name>
         <entityName>LogHistory_entity</entityName>
         <fieldName>LogHistoryProvider</fieldName>
       </dependency>
+      <children>
+        <entityParameter>
+          <name>tablenames_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityConsumer>
       <name>360DegreeObjects</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>360Degree_entity</entityName>
+        <fieldName>OrganisationObjects</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
@@ -572,11 +601,6 @@
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/360degreeobjects/children/objectstatus_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>360Degree_entity</entityName>
-        <fieldName>OrganisationObjects</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>ExcludeOrganisationsByPersonId</name>
@@ -587,12 +611,32 @@
     <entityProvider>
       <name>WithPersonIdFilter</name>
       <documentation>%aditoprj%/entity/Organisation_entity/entityfields/withpersonidfilter/documentation.adoc</documentation>
+      <dependencies>
+        <entityDependency>
+          <name>5a456b04-f0ca-4a45-9c1f-bdfdf074434a</name>
+          <entityName>Contact_entity</entityName>
+          <fieldName>Organisations</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>a80c3db0-29db-433c-8f7c-4ebf6639ad6d</name>
+          <entityName>Person_entity</entityName>
+          <fieldName>Organisations</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>748a3083-89c2-41b4-a233-3fd5364396e9</name>
+          <entityName>Competition_entity</entityName>
+          <fieldName>Organisation</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
       <children>
         <entityParameter>
           <name>ExcludeOrganisationsByPersonId</name>
-          <title></title>
           <expose v="true" />
           <mandatory v="true" />
+          <title></title>
         </entityParameter>
         <entityParameter>
           <name>WithPrivate_param</name>
@@ -618,27 +662,19 @@
           <name>DuplicateCurrentContactId_param</name>
           <expose v="false" />
         </entityParameter>
+        <entityParameter>
+          <name>MapViewAdditionalFeatures_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewCenterLat_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewCenterLon_param</name>
+          <expose v="false" />
+        </entityParameter>
       </children>
-      <dependencies>
-        <entityDependency>
-          <name>5a456b04-f0ca-4a45-9c1f-bdfdf074434a</name>
-          <entityName>Contact_entity</entityName>
-          <fieldName>Organisations</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>a80c3db0-29db-433c-8f7c-4ebf6639ad6d</name>
-          <entityName>Person_entity</entityName>
-          <fieldName>Organisations</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>748a3083-89c2-41b4-a233-3fd5364396e9</name>
-          <entityName>Competition_entity</entityName>
-          <fieldName>Organisation</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
     </entityProvider>
     <entityParameter>
       <name>AttributeId_param</name>
@@ -653,6 +689,20 @@
     <entityProvider>
       <name>WithAttribute</name>
       <documentation>%aditoprj%/entity/Organisation_entity/entityfields/withattribute/documentation.adoc</documentation>
+      <dependencies>
+        <entityDependency>
+          <name>10480df2-f0b6-4cb6-8bfb-4a468b994996</name>
+          <entityName>Competition_entity</entityName>
+          <fieldName>Organisations</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>f368be61-1a15-449f-b37c-b1343069412c</name>
+          <entityName>Product_entity</entityName>
+          <fieldName>Organisations</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
       <children>
         <entityParameter>
           <name>AttributeId_param</name>
@@ -683,21 +733,19 @@
           <name>DuplicateCurrentContactId_param</name>
           <expose v="false" />
         </entityParameter>
+        <entityParameter>
+          <name>MapViewAdditionalFeatures_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewCenterLat_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewCenterLon_param</name>
+          <expose v="false" />
+        </entityParameter>
       </children>
-      <dependencies>
-        <entityDependency>
-          <name>10480df2-f0b6-4cb6-8bfb-4a468b994996</name>
-          <entityName>Competition_entity</entityName>
-          <fieldName>Organisations</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>f368be61-1a15-449f-b37c-b1343069412c</name>
-          <entityName>Product_entity</entityName>
-          <fieldName>Organisations</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
     </entityProvider>
     <entityParameter>
       <name>ExcludedContactIds_param</name>
@@ -706,6 +754,11 @@
     </entityParameter>
     <entityConsumer>
       <name>AttributeTree</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>TreeProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
@@ -716,11 +769,6 @@
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>TreeProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>DATE_NEW</name>
@@ -772,6 +820,11 @@
     <entityConsumer>
       <name>AttributeConditions</name>
       <onValidation>%aditoprj%/entity/Organisation_entity/entityfields/attributeconditions/onValidation.js</onValidation>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>AttributeRelations</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
@@ -794,14 +847,14 @@
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/attributeconditions/children/showempty_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>AttributeRelations</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>LinkedAppointments</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Appointment_entity</entityName>
+        <fieldName>LinkedAppointments</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>LinkedObjectId_param</name>
@@ -812,11 +865,6 @@
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/linkedappointments/children/erroronpermissiondenied/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Appointment_entity</entityName>
-        <fieldName>LinkedAppointments</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Products</name>
@@ -862,145 +910,10 @@
       <colorProcess>%aditoprj%/entity/Organisation_entity/entityfields/lastactivity/colorProcess.js</colorProcess>
       <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/lastactivity/valueProcess.js</valueProcess>
     </entityField>
-    <entityActionField>
-      <name>openEditDefaultsView</name>
-      <documentation>%aditoprj%/entity/Organisation_entity/entityfields/openeditdefaultsview/documentation.adoc</documentation>
-      <title>Edit defaults</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/openeditdefaultsview/onActionProcess.js</onActionProcess>
-      <actionOrder v="1" />
-      <iconId>NEON:WRENCH</iconId>
-      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/openeditdefaultsview/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>newOffer</name>
-      <documentation>%aditoprj%/entity/Organisation_entity/entityfields/newoffer/documentation.adoc</documentation>
-      <title>New offer</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newoffer/onActionProcess.js</onActionProcess>
-      <actionOrder v="2" />
-      <iconId>VAADIN:CART</iconId>
-      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newoffer/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>newActivity</name>
-      <title>New activity</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
-      <actionOrder v="0" />
-      <iconId>VAADIN:HOURGLASS_END</iconId>
-      <tooltip>New activity</tooltip>
-      <tooltipProcess>%aditoprj%/entity/Organisation_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>orgReport</name>
-      <title>Customer Base Sheet</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/orgreport/onActionProcess.js</onActionProcess>
-      <actionOrder v="4" />
-      <iconId>VAADIN:FILE_TEXT_O</iconId>
-    </entityActionField>
-    <entityActionField>
-      <name>newTask</name>
-      <title>New task</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
-      <actionOrder v="3" />
-      <iconId>VAADIN:TASKS</iconId>
-      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newtask/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>newAppointment</name>
-      <title>New appointment</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newappointment/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CALENDAR</iconId>
-      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newappointment/stateProcess.js</stateProcess>
-      <tooltip>New Appointment</tooltip>
-    </entityActionField>
-    <entityActionGroup>
-      <name>filterViewActionGroup</name>
-      <documentation>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/documentation.adoc</documentation>
-      <title>Serial Actions</title>
-      <iconId>NEON:GROUP_APPOINTMENT</iconId>
-      <children>
-        <entityActionField>
-          <name>addToCampaignFromTable</name>
-          <title>Add to Campaign</title>
-          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtocampaignfromtable/onActionProcess.js</onActionProcess>
-          <isObjectAction v="false" />
-          <isSelectionAction v="false" />
-          <iconId>NEON:GROUP_APPOINTMENT</iconId>
-          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtocampaignfromtable/stateProcess.js</stateProcess>
-          <tooltip>Add the selection to a campaign</tooltip>
-          <tooltipProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtocampaignfromtable/tooltipProcess.js</tooltipProcess>
-        </entityActionField>
-        <entityActionField>
-          <name>addToBulkMailFromTable</name>
-          <title>Add to Bulkmail</title>
-          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/onActionProcess.js</onActionProcess>
-          <isObjectAction v="false" />
-          <iconId>VAADIN:AT</iconId>
-          <state>EDITABLE</state>
-          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/stateProcess.js</stateProcess>
-          <tooltipProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/tooltipProcess.js</tooltipProcess>
-        </entityActionField>
-        <entityActionField>
-          <name>addToSerialLetter</name>
-          <title>Add to serial letter</title>
-          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtoserialletter/onActionProcess.js</onActionProcess>
-          <isObjectAction v="false" />
-          <iconId>VAADIN:ENVELOPES</iconId>
-          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtoserialletter/stateProcess.js</stateProcess>
-          <tooltipProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtoserialletter/tooltipProcess.js</tooltipProcess>
-        </entityActionField>
-        <entityActionField>
-          <name>export</name>
-          <title>Export</title>
-          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/export/onActionProcess.js</onActionProcess>
-          <isMenuAction v="true" />
-          <isObjectAction v="false" />
-          <iconId>NEON:EXPORT</iconId>
-          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/export/stateProcess.js</stateProcess>
-          <tooltip>Export fields of this table</tooltip>
-          <tooltipProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/export/tooltipProcess.js</tooltipProcess>
-        </entityActionField>
-        <entityActionField>
-          <name>startMarketingWorkflows</name>
-          <title>Start marketing mailing</title>
-          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/startmarketingworkflows/onActionProcess.js</onActionProcess>
-          <isObjectAction v="false" />
-          <iconId>VAADIN:ENVELOPES</iconId>
-        </entityActionField>
-      </children>
-    </entityActionGroup>
-    <entityActionField>
-      <name>addToCampaign</name>
-      <title>Add to Campaign</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/addtocampaign/onActionProcess.js</onActionProcess>
-      <iconId>NEON:GROUP_APPOINTMENT</iconId>
-      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/addtocampaign/stateProcess.js</stateProcess>
-      <tooltip>Choose a campaign and a step to add the contact to a  campaign</tooltip>
-    </entityActionField>
-    <entityActionField>
-      <name>newEmail</name>
-      <title>Write email</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newemail/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:AT</iconId>
-      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newemail/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>newLetter</name>
-      <title>New letter</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newletter/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:ENVELOPE</iconId>
-      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newletter/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>openAdminView</name>
-      <title>Open admin view</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CURLY_BRACKETS</iconId>
-      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/openadminview/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityProvider>
-      <name>SelfDuplicates</name>
-      <documentation>%aditoprj%/entity/Organisation_entity/entityfields/selfduplicates/documentation.adoc</documentation>
-      <titlePlural>Duplicates</titlePlural>
+    <entityProvider>
+      <name>SelfDuplicates</name>
+      <documentation>%aditoprj%/entity/Organisation_entity/entityfields/selfduplicates/documentation.adoc</documentation>
+      <titlePlural>Duplicates</titlePlural>
       <children>
         <entityParameter>
           <name>AttributeId_param</name>
@@ -1030,6 +943,18 @@
           <name>ExcludeOrganisationsByPersonId</name>
           <expose v="false" />
         </entityParameter>
+        <entityParameter>
+          <name>MapViewAdditionalFeatures_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewCenterLat_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewCenterLon_param</name>
+          <expose v="false" />
+        </entityParameter>
       </children>
     </entityProvider>
     <entityParameter>
@@ -1044,52 +969,6 @@
       <name>DuplicateCurrentContactId_param</name>
       <expose v="true" />
     </entityParameter>
-    <entityActionGroup>
-      <name>DuplicateActions</name>
-      <title>Duplicate actions</title>
-      <state>AUTO</state>
-      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicateactions/stateProcess.js</stateProcess>
-      <children>
-        <entityActionField>
-          <name>IntegrateSelectedIntoCurrentAction</name>
-          <title>Integrate selected into current contact</title>
-          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicateactions/children/integrateselectedintocurrentaction/onActionProcess.js</onActionProcess>
-          <isMenuAction v="true" />
-          <isObjectAction v="false" />
-          <isSelectionAction v="true" />
-          <iconId>NEON:IMPORT</iconId>
-          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicateactions/children/integrateselectedintocurrentaction/stateProcess.js</stateProcess>
-        </entityActionField>
-        <entityActionField>
-          <name>IntegrateCurrentIntoSelectedAction</name>
-          <title>Integrate current into selected contact</title>
-          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicateactions/children/integratecurrentintoselectedaction/onActionProcess.js</onActionProcess>
-          <isMenuAction v="true" />
-          <isObjectAction v="false" />
-          <isSelectionAction v="true" />
-          <iconId>NEON:EXPORT</iconId>
-          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicateactions/children/integratecurrentintoselectedaction/stateProcess.js</stateProcess>
-        </entityActionField>
-        <entityActionField>
-          <name>IgnoreDuplicate</name>
-          <title>Ignore Duplicate</title>
-          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicateactions/children/ignoreduplicate/onActionProcess.js</onActionProcess>
-          <isMenuAction v="true" />
-          <isObjectAction v="false" />
-          <isSelectionAction v="true" />
-          <iconId>VAADIN:CLOSE</iconId>
-          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicateactions/children/ignoreduplicate/stateProcess.js</stateProcess>
-        </entityActionField>
-        <entityActionField>
-          <name>IgnoreWholeCluster</name>
-          <title>Ignore whole Cluster</title>
-          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicateactions/children/ignorewholecluster/onActionProcess.js</onActionProcess>
-          <isObjectAction v="false" />
-          <iconId>VAADIN:CLOSE</iconId>
-          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicateactions/children/ignorewholecluster/stateProcess.js</stateProcess>
-        </entityActionField>
-      </children>
-    </entityActionGroup>
     <entityField>
       <name>STANDARD_COUNTRY</name>
       <title>Standard Country</title>
@@ -1101,6 +980,11 @@
     </entityParameter>
     <entityConsumer>
       <name>SelfDuplicatesUncached</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Organisation_entity</entityName>
+        <fieldName>SelfDuplicates</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>DuplicateActionsControl_param</name>
@@ -1108,8 +992,8 @@
         </entityParameter>
         <entityParameter>
           <name>DuplicateCurrentContactId_param</name>
-          <title></title>
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/selfduplicatesuncached/children/duplicatecurrentcontactid_param/valueProcess.js</valueProcess>
+          <title></title>
         </entityParameter>
         <entityParameter>
           <name>OnlyShowContactIds_param</name>
@@ -1120,25 +1004,20 @@
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/selfduplicatesuncached/children/excludedcontactids_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Organisation_entity</entityName>
-        <fieldName>SelfDuplicates</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>CommRestrictions</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>CommRestriction_Entity</entityName>
+        <fieldName>CommRestrictions</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/commrestrictions/children/contactid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>CommRestriction_Entity</entityName>
-        <fieldName>CommRestrictions</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>COMMRESTRICTIONS_ACTIVE</name>
@@ -1146,13 +1025,6 @@
       <color>$priority-high-color</color>
       <displayValueProcess>%aditoprj%/entity/Organisation_entity/entityfields/commrestrictions_active/displayValueProcess.js</displayValueProcess>
     </entityField>
-    <entityActionField>
-      <name>startWorkflow</name>
-      <title>Start workflow</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/startworkflow/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:PLAY</iconId>
-      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/startworkflow/stateProcess.js</stateProcess>
-    </entityActionField>
     <entityField>
       <name>STANDARD_ADDRESS</name>
     </entityField>
@@ -1170,29 +1042,14 @@
       <name>ORGANISATION_REPORT_DATA</name>
       <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/organisation_report_data/valueProcess.js</valueProcess>
     </entityField>
-    <entityActionField>
-      <name>newVisitRecommendation</name>
-      <title>New Visit Recommendation</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitrecommendation/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CALENDAR</iconId>
-      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitrecommendation/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>newVisitPlanEntry</name>
-      <title>New Weekplanentry</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitplanentry/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CAR</iconId>
-      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitplanentry/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>openLocation</name>
-      <title>Open Location</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/openlocation/onActionProcess.js</onActionProcess>
-      <iconId>NEON:TACKED</iconId>
-    </entityActionField>
     <entityConsumer>
       <name>Classifications</name>
       <refreshParent v="true" />
+      <dependency>
+        <name>dependency</name>
+        <entityName>Classification_entity</entityName>
+        <fieldName>Classifications</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ClassificationType_param</name>
@@ -1210,11 +1067,6 @@
           <expose v="true" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Classification_entity</entityName>
-        <fieldName>Classifications</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>COUNT</name>
@@ -1235,6 +1087,14 @@
       <name>OrganisationsViaIndex</name>
       <documentation>%aditoprj%/entity/Organisation_entity/entityfields/organisationsviaindex/documentation.adoc</documentation>
       <recordContainer>index</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>e60b8983-166d-4280-a1a5-f990ad77eeb9</name>
+          <entityName>AroundLocation_entity</entityName>
+          <fieldName>Organisations</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
       <children>
         <entityParameter>
           <name>ExcludeOrganisationsByPersonId</name>
@@ -1276,16 +1136,431 @@
           <name>WithPrivate_param</name>
           <expose v="true" />
         </entityParameter>
+        <entityParameter>
+          <name>MapViewAdditionalFeatures_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewCenterLat_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewCenterLon_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityField>
+      <name>STANDARD_LAT</name>
+    </entityField>
+    <entityField>
+      <name>STANDARD_LON</name>
+    </entityField>
+    <entityProvider>
+      <name>#PROVIDER_AGGREGATES</name>
+      <useAggregates v="true" />
+    </entityProvider>
+    <entityField>
+      <name>ORGANISATION_OBJECTTYPE</name>
+      <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/organisation_objecttype/valueProcess.js</valueProcess>
+    </entityField>
+    <entityProvider>
+      <name>indexP</name>
+      <documentation>%aditoprj%/entity/Organisation_entity/entityfields/indexp/documentation.adoc</documentation>
+      <recordContainer>index</recordContainer>
+      <children>
+        <entityParameter>
+          <name>AttributeId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ExcludedContactIds_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OnlyShowContactIds_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>DuplicateCurrentContactId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ExcludeOrganisationsByPersonId</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>FilterPreSet_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OnlyOwnSupervised_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>WithPrivate_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OrganisationType_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewAdditionalFeatures_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewCenterLat_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewCenterLon_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityConsumer>
+      <name>DistrictResponsibles</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>DistrictResponsible_entity</entityName>
+        <fieldName>OrganisationResponsibles</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>OrgUid_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/districtresponsibles/children/orguid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityParameter>
+      <name>FilterPreSet_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityProvider>
+      <name>NonselfDuplicates</name>
+      <documentation>%aditoprj%/entity/Organisation_entity/entityfields/nonselfduplicates/documentation.adoc</documentation>
+      <dependencies>
+        <entityDependency>
+          <name>2e410b9e-5ebc-48ea-9562-da386202d7e8</name>
+          <entityName>Duplicates_entity</entityName>
+          <fieldName>DuplicateOrganisationsConsumer</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>AttributeKeyId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>DuplicateCurrentContactId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ExcludedContactIds_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OnlyShowContactIds_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>OnlyOwnSupervised_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewAdditionalFeatures_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewCenterLon_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>MapViewCenterLat_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityConsumer>
+      <name>AttributesFilter</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>FilterProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/attributesfilter/children/objectrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/attributesfilter/children/objecttype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityParameter>
+      <name>OnlyActive_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityField>
+      <name>MAP_CONFIG</name>
+      <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/map_config/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>MAP_FEATURE_COLLECTION</name>
+      <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/map_feature_collection/valueProcess.js</valueProcess>
+    </entityField>
+    <entityParameter>
+      <name>MapViewAdditionalFeatures_param</name>
+      <expose v="true" />
+      <documentation>%aditoprj%/entity/Organisation_entity/entityfields/mapviewadditionalfeatures_param/documentation.adoc</documentation>
+    </entityParameter>
+    <entityParameter>
+      <name>MapViewCenterLat_param</name>
+      <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/mapviewcenterlat_param/valueProcess.js</valueProcess>
+      <expose v="true" />
+      <documentation>%aditoprj%/entity/Organisation_entity/entityfields/mapviewcenterlat_param/documentation.adoc</documentation>
+    </entityParameter>
+    <entityParameter>
+      <name>MapViewCenterLon_param</name>
+      <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/mapviewcenterlon_param/valueProcess.js</valueProcess>
+      <expose v="true" />
+      <documentation>%aditoprj%/entity/Organisation_entity/entityfields/mapviewcenterlon_param/documentation.adoc</documentation>
+    </entityParameter>
+    <entityConsumer>
+      <name>DistrictContacts</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>DistrictContact_entity</entityName>
+        <fieldName>DistrictContacts</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>currentOrganisationId_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/districtcontacts/children/currentorganisationid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityActionField>
+      <name>openEditDefaultsView</name>
+      <documentation>%aditoprj%/entity/Organisation_entity/entityfields/openeditdefaultsview/documentation.adoc</documentation>
+      <title>Edit defaults</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/openeditdefaultsview/onActionProcess.js</onActionProcess>
+      <actionOrder v="1" />
+      <iconId>NEON:WRENCH</iconId>
+      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/openeditdefaultsview/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>newOffer</name>
+      <documentation>%aditoprj%/entity/Organisation_entity/entityfields/newoffer/documentation.adoc</documentation>
+      <title>New offer</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newoffer/onActionProcess.js</onActionProcess>
+      <actionOrder v="2" />
+      <iconId>VAADIN:CART</iconId>
+      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newoffer/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>newActivity</name>
+      <title>New activity</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
+      <actionOrder v="0" />
+      <iconId>VAADIN:HOURGLASS_END</iconId>
+      <tooltip>New activity</tooltip>
+      <tooltipProcess>%aditoprj%/entity/Organisation_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>orgReport</name>
+      <title>Customer Base Sheet</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/orgreport/onActionProcess.js</onActionProcess>
+      <actionOrder v="4" />
+      <iconId>VAADIN:FILE_TEXT_O</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>newTask</name>
+      <title>New task</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
+      <actionOrder v="3" />
+      <iconId>VAADIN:TASKS</iconId>
+      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newtask/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>newAppointment</name>
+      <title>New appointment</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newappointment/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CALENDAR</iconId>
+      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newappointment/stateProcess.js</stateProcess>
+      <tooltip>New Appointment</tooltip>
+    </entityActionField>
+    <entityActionGroup>
+      <name>filterViewActionGroup</name>
+      <documentation>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/documentation.adoc</documentation>
+      <title>Serial Actions</title>
+      <iconId>NEON:GROUP_APPOINTMENT</iconId>
+      <children>
+        <entityActionField>
+          <name>cancelObservation</name>
+          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:EYE_SLASH</iconId>
+          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>observe</name>
+          <title>Observe</title>
+          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/observe/onActionProcess.js</onActionProcess>
+          <isObjectAction v="true" />
+          <iconId>VAADIN:EYE</iconId>
+          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/observe/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/observe/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>addToCampaignFromTable</name>
+          <title>Add to Campaign</title>
+          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtocampaignfromtable/onActionProcess.js</onActionProcess>
+          <isObjectAction v="false" />
+          <isSelectionAction v="false" />
+          <iconId>NEON:GROUP_APPOINTMENT</iconId>
+          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtocampaignfromtable/stateProcess.js</stateProcess>
+          <tooltip>Add the selection to a campaign</tooltip>
+          <tooltipProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtocampaignfromtable/tooltipProcess.js</tooltipProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>addToBulkMailFromTable</name>
+          <title>Add to Bulkmail</title>
+          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/onActionProcess.js</onActionProcess>
+          <isObjectAction v="false" />
+          <iconId>VAADIN:AT</iconId>
+          <state>EDITABLE</state>
+          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/stateProcess.js</stateProcess>
+          <tooltipProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/tooltipProcess.js</tooltipProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>addToSerialLetter</name>
+          <title>Add to serial letter</title>
+          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtoserialletter/onActionProcess.js</onActionProcess>
+          <isObjectAction v="false" />
+          <iconId>VAADIN:ENVELOPES</iconId>
+          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtoserialletter/stateProcess.js</stateProcess>
+          <tooltipProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtoserialletter/tooltipProcess.js</tooltipProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>export</name>
+          <title>Export</title>
+          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/export/onActionProcess.js</onActionProcess>
+          <isMenuAction v="true" />
+          <isObjectAction v="false" />
+          <iconId>NEON:EXPORT</iconId>
+          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/export/stateProcess.js</stateProcess>
+          <tooltip>Export fields of this table</tooltip>
+          <tooltipProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/export/tooltipProcess.js</tooltipProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>startMarketingWorkflows</name>
+          <title>Start marketing mailing</title>
+          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/startmarketingworkflows/onActionProcess.js</onActionProcess>
+          <isObjectAction v="false" />
+          <iconId>VAADIN:ENVELOPES</iconId>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
+    <entityActionField>
+      <name>addToCampaign</name>
+      <title>Add to Campaign</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/addtocampaign/onActionProcess.js</onActionProcess>
+      <iconId>NEON:GROUP_APPOINTMENT</iconId>
+      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/addtocampaign/stateProcess.js</stateProcess>
+      <tooltip>Choose a campaign and a step to add the contact to a  campaign</tooltip>
+    </entityActionField>
+    <entityActionField>
+      <name>newEmail</name>
+      <title>Write email</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newemail/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:AT</iconId>
+      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newemail/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>newLetter</name>
+      <title>New letter</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newletter/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:ENVELOPE</iconId>
+      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newletter/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityActionGroup>
+      <name>DuplicateActions</name>
+      <title>Duplicate actions</title>
+      <state>AUTO</state>
+      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicateactions/stateProcess.js</stateProcess>
+      <children>
+        <entityActionField>
+          <name>IntegrateSelectedIntoCurrentAction</name>
+          <title>Integrate selected into current contact</title>
+          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicateactions/children/integrateselectedintocurrentaction/onActionProcess.js</onActionProcess>
+          <isMenuAction v="true" />
+          <isObjectAction v="false" />
+          <isSelectionAction v="true" />
+          <iconId>NEON:IMPORT</iconId>
+          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicateactions/children/integrateselectedintocurrentaction/stateProcess.js</stateProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>IntegrateCurrentIntoSelectedAction</name>
+          <title>Integrate current into selected contact</title>
+          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicateactions/children/integratecurrentintoselectedaction/onActionProcess.js</onActionProcess>
+          <isMenuAction v="true" />
+          <isObjectAction v="false" />
+          <isSelectionAction v="true" />
+          <iconId>NEON:EXPORT</iconId>
+          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicateactions/children/integratecurrentintoselectedaction/stateProcess.js</stateProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>IgnoreDuplicate</name>
+          <title>Ignore Duplicate</title>
+          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicateactions/children/ignoreduplicate/onActionProcess.js</onActionProcess>
+          <isMenuAction v="true" />
+          <isObjectAction v="false" />
+          <isSelectionAction v="true" />
+          <iconId>VAADIN:CLOSE</iconId>
+          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicateactions/children/ignoreduplicate/stateProcess.js</stateProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>IgnoreWholeCluster</name>
+          <title>Ignore whole Cluster</title>
+          <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicateactions/children/ignorewholecluster/onActionProcess.js</onActionProcess>
+          <isObjectAction v="false" />
+          <iconId>VAADIN:CLOSE</iconId>
+          <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/duplicateactions/children/ignorewholecluster/stateProcess.js</stateProcess>
+        </entityActionField>
       </children>
-      <dependencies>
-        <entityDependency>
-          <name>e60b8983-166d-4280-a1a5-f990ad77eeb9</name>
-          <entityName>AroundLocation_entity</entityName>
-          <fieldName>Organisations</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-    </entityProvider>
+    </entityActionGroup>
+    <entityActionField>
+      <name>startWorkflow</name>
+      <title>Start workflow</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/startworkflow/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:PLAY</iconId>
+      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/startworkflow/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>newVisitRecommendation</name>
+      <title>New Visit Recommendation</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitrecommendation/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CALENDAR</iconId>
+      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitrecommendation/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>newVisitPlanEntry</name>
+      <title>New Weekplanentry</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitplanentry/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CAR</iconId>
+      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitplanentry/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>openLocation</name>
+      <title>Open Location</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/openlocation/onActionProcess.js</onActionProcess>
+      <iconId>NEON:TACKED</iconId>
+    </entityActionField>
     <entityActionField>
       <name>openAroundLocation</name>
       <documentation>%aditoprj%/entity/Organisation_entity/entityfields/openaroundlocation/documentation.adoc</documentation>
@@ -1296,115 +1571,6 @@
       <state>DISABLED</state>
       <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/openaroundlocation/stateProcess.js</stateProcess>
     </entityActionField>
-    <entityField>
-      <name>STANDARD_LAT</name>
-    </entityField>
-    <entityField>
-      <name>STANDARD_LON</name>
-    </entityField>
-    <entityProvider>
-      <name>#PROVIDER_AGGREGATES</name>
-      <useAggregates v="true" />
-    </entityProvider>
-    <entityField>
-      <name>ORGANISATION_OBJECTTYPE</name>
-      <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/organisation_objecttype/valueProcess.js</valueProcess>
-    </entityField>
-    <entityProvider>
-      <name>indexP</name>
-      <documentation>%aditoprj%/entity/Organisation_entity/entityfields/indexp/documentation.adoc</documentation>
-      <recordContainer>index</recordContainer>
-      <children>
-        <entityParameter>
-          <name>AttributeId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>ExcludedContactIds_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OnlyShowContactIds_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>DuplicateCurrentContactId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>ExcludeOrganisationsByPersonId</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>FilterPreSet_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OnlyOwnSupervised_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>WithPrivate_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OrganisationType_param</name>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityConsumer>
-      <name>DistrictResponsibles</name>
-      <children>
-        <entityParameter>
-          <name>OrgUid_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/districtresponsibles/children/orguid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>DistrictResponsible_entity</entityName>
-        <fieldName>OrganisationResponsibles</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityParameter>
-      <name>FilterPreSet_param</name>
-      <expose v="true" />
-    </entityParameter>
-    <entityProvider>
-      <name>NonselfDuplicates</name>
-      <documentation>%aditoprj%/entity/Organisation_entity/entityfields/nonselfduplicates/documentation.adoc</documentation>
-      <children>
-        <entityParameter>
-          <name>AttributeKeyId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>DuplicateCurrentContactId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>ExcludedContactIds_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OnlyShowContactIds_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>OnlyOwnSupervised_param</name>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-      <dependencies>
-        <entityDependency>
-          <name>2e410b9e-5ebc-48ea-9562-da386202d7e8</name>
-          <entityName>Duplicates_entity</entityName>
-          <fieldName>DuplicateOrganisationsConsumer</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-    </entityProvider>
     <entityActionGroup>
       <name>orgReportDispatch</name>
       <children>
@@ -1418,65 +1584,24 @@
         </entityActionField>
       </children>
     </entityActionGroup>
-    <entityConsumer>
-      <name>AttributesFilter</name>
-      <children>
-        <entityParameter>
-          <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/attributesfilter/children/objectrowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectType_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/attributesfilter/children/objecttype_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>FilterProvider</fieldName>
-      </dependency>
-    </entityConsumer>
+    <entityActionField>
+      <name>openAdminView</name>
+      <title>Open admin view</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CURLY_BRACKETS</iconId>
+      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/openadminview/stateProcess.js</stateProcess>
+    </entityActionField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <fromClauseProcess>%aditoprj%/entity/Organisation_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/Organisation_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/Organisation_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
       <onDBInsert>%aditoprj%/entity/Organisation_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/Organisation_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/Organisation_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>f63d7d1a-118a-4cc1-9963-495f57468f8d</name>
-          <tableName>ORGANISATION</tableName>
-          <primaryKey>ORGANISATIONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>3cca93ac-fb3b-4dae-933e-0ee1e8c84260</name>
-          <tableName>CONTACT</tableName>
-          <primaryKey>CONTACTID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>c0bcece8-306a-47ac-a406-7e42014fa4d7</name>
-          <tableName>ADDRESS</tableName>
-          <primaryKey>ADDRESSID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>c00213e6-4f5d-41df-a5f3-fd751a46e94b</name>
-          <tableName>CLASSIFICATIONSTORAGE</tableName>
-          <primaryKey>CLASSIFICATIONSTORAGEID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>ADDRESS_ID.value</name>
@@ -1670,6 +1795,36 @@
           <recordfield>ADDRESS.LON</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>f63d7d1a-118a-4cc1-9963-495f57468f8d</name>
+          <tableName>ORGANISATION</tableName>
+          <primaryKey>ORGANISATIONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>3cca93ac-fb3b-4dae-933e-0ee1e8c84260</name>
+          <tableName>CONTACT</tableName>
+          <primaryKey>CONTACTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>c0bcece8-306a-47ac-a406-7e42014fa4d7</name>
+          <tableName>ADDRESS</tableName>
+          <primaryKey>ADDRESSID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>c00213e6-4f5d-41df-a5f3-fd751a46e94b</name>
+          <tableName>CLASSIFICATIONSTORAGE</tableName>
+          <primaryKey>CLASSIFICATIONSTORAGEID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
       <filterExtensions>
         <filterExtensionSet>
           <name>Attribute_filter</name>
@@ -1706,6 +1861,14 @@
           <filterConditionProcess>%aditoprj%/entity/Organisation_entity/recordcontainers/db/filterextensions/favorites_filter/filterConditionProcess.js</filterConditionProcess>
           <filtertype>BASIC</filtertype>
         </filterExtension>
+        <filterExtension>
+          <name>ResponsibleAssignment</name>
+          <title>Supervisor assignment</title>
+          <contentType>TEXT</contentType>
+          <filterValuesProcess>%aditoprj%/entity/Organisation_entity/recordcontainers/db/filterextensions/responsibleassignment/filterValuesProcess.js</filterValuesProcess>
+          <filterConditionProcess>%aditoprj%/entity/Organisation_entity/recordcontainers/db/filterextensions/responsibleassignment/filterConditionProcess.js</filterConditionProcess>
+          <filtertype>EXTENDED</filtertype>
+        </filterExtension>
       </filterExtensions>
     </dbRecordContainer>
     <indexRecordContainer>
diff --git a/entity/Organisation_entity/afterSave.js b/entity/Organisation_entity/afterSave.js
new file mode 100644
index 0000000000000000000000000000000000000000..4e40d8d824716c3690bb87b0f774ea3895246b3d
--- /dev/null
+++ b/entity/Organisation_entity/afterSave.js
@@ -0,0 +1,11 @@
+import("system.logging");
+import("system.vars");
+import("District_lib");
+import("system.neon");
+
+if (vars.get("$local.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    //Assign this new organisation to all according districts with auto assignment is true
+    //2nd parameter "undefined" means, that the current user is determined in the function
+    DistrictUtils.assignDistrictOnServer([], undefined, vars.get("$local.entitydata")["CONTACTID"])
+}
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/districtcontacts/children/currentorganisationid_param/valueProcess.js b/entity/Organisation_entity/entityfields/districtcontacts/children/currentorganisationid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..70a1c0fcc1293fa4bf37109294829055704eeaea
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/districtcontacts/children/currentorganisationid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.CONTACTID"));
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/duplicateactions/children/integrateselectedintocurrentaction/onActionProcess.js b/entity/Organisation_entity/entityfields/duplicateactions/children/integrateselectedintocurrentaction/onActionProcess.js
index 6bb5f4cde7193d3a4171b6d613cbfb0bfee097c8..5ac58579f1326724bf4e6340a751ee86b12850b4 100644
--- a/entity/Organisation_entity/entityfields/duplicateactions/children/integrateselectedintocurrentaction/onActionProcess.js
+++ b/entity/Organisation_entity/entityfields/duplicateactions/children/integrateselectedintocurrentaction/onActionProcess.js
@@ -1,5 +1,4 @@
 import("Employee_lib");
-import("system.logging");
 import("system.vars");
 import("system.neon");
 import("DuplicateScanner_lib");
diff --git a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/cancelobservation/onActionProcess.js b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/cancelobservation/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..35102b677cbb52d1d4a9723a42cceaef3fd5ea03
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/cancelobservation/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.cancelAction();
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/cancelobservation/stateProcess.js b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/cancelobservation/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a0350f5edebe397b96a84766e7cdb8d99f77ee5
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/cancelobservation/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/cancelobservation/titleProcess.js b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/cancelobservation/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..87553a373a055879a524774695e4c18bcab617e9
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/cancelobservation/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("Observation_lib");
+
+result.string(Observation.cancelActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/observe/onActionProcess.js b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/observe/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..66cf7bc2991c142ee0753fec88e151d3dcf71141
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/observe/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.insertAction();
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/observe/stateProcess.js b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/observe/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..461276ea5e1e98e967047207ac6d654225a1b1c6
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/observe/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (!Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/observe/titleProcess.js b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/observe/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..abdfbd3d7c4aff7beba9ff22cbb39abc8d195a30
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/observe/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Observation_lib");
+import("system.vars");
+
+result.string(Observation.observeActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/map_config/valueProcess.js b/entity/Organisation_entity/entityfields/map_config/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b5c60bd2e238e1e5e3478f33dffe0becdb6a71aa
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/map_config/valueProcess.js
@@ -0,0 +1,56 @@
+import("system.translate");
+import("system.vars");
+import("system.util");
+import("system.fileIO");
+import("system.result");
+
+/* !WARNING! This openstreetmap TileLayer Server is only used for demonstration purposes and to show how this map template configuration works.
+ * From the tile-usage-policy: 
+ * "Heavy use (e.g. distributing an app that uses tiles from openstreetmap.org) is forbidden without prior permission"
+ * See more about the openstreetmap policy here:
+ * https://operations.osmfoundation.org/policies/tiles/
+ *
+ * This means you have to change the following tile source for using the MapViewTemplate in any real scenario (Dev-Serers, Test-Servers, 
+ * Production-Servers and so on).
+ */
+var licenseCaption = translate.text("License");
+var contributionCaption = translate.text("Contribute map data");
+var selectedTile = {
+    title: "Open Street Map",
+    url: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
+    attribution: translate.withArguments("Map data © %0 contributors | %1 | %2", [
+        "<a href=\"https://openstreetmap.org\">OpenStreetMap</a>", 
+        "<a href=\"https://www.openstreetmap.org/copyright\">" + licenseCaption + "</a>", 
+        "<a href=\"https://www.openstreetmap.org/fixthemap\">" + contributionCaption + "</a>"])
+};
+
+
+var config = {
+    startingCenterPosition : {
+        lat: parseFloat(vars.get("$param.MapViewCenterLat_param")),
+        lon: parseFloat(vars.get("$param.MapViewCenterLon_param")),
+        zoomLevel: 5,
+        //but let's try to locate the users posistion for a better view
+        autoLocate: true
+    },
+    boundaries: {
+        minZoom: 0,
+        maxZoom: 20
+    },
+    tiles: [
+        /*add more tile layer sources here*/
+    ]
+};
+
+//when opening the AroundLocation view we do want to have the source organisation as center, so let's not overwrite the starting center position by 
+//looking for the users current location
+if (vars.get("$param.MapViewAdditionalFeatures_param"))
+{
+   config.startingCenterPosition.zoomLevel = 10;//max amount of km is 100, so let's zoom in
+   config.startingCenterPosition.autoLocate = false;
+}
+
+config.tiles.push(selectedTile);//the last tile layer will be always selected by leaflet, so let's push it here
+
+var res = JSON.stringify(config);
+result.string(res);
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/map_feature_collection/valueProcess.js b/entity/Organisation_entity/entityfields/map_feature_collection/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..609c09148d65619d0ba26d0d72146dea6c533c80
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/map_feature_collection/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.vars");
+import("system.neon");
+import("system.result");
+
+var additionalMapFeatures = vars.get("$param.MapViewAdditionalFeatures_param");
+
+if (additionalMapFeatures)//additionalMapFeatures is already a stringified object
+    result.string("[" + additionalMapFeatures + "]");
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/mapviewadditionalfeatures_param/documentation.adoc b/entity/Organisation_entity/entityfields/mapviewadditionalfeatures_param/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..ec5cbf7e00db1b0c02945e69debc6b60975bb6ad
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/mapviewadditionalfeatures_param/documentation.adoc
@@ -0,0 +1,5 @@
+You may provide a `GeoJSON` `FeatureCollection` that will be display in the `MapViewTemplate` of the `OrganisationFilter_view` here.
+This is usefull for the "AroundLocation"-Search. 
+
+If this param is passed the map view will not autolocate your position and center the view based on the parameters `MapViewCenterLat_param` and 
+`MapViewCenterLon_param`
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/mapviewcenterlat_param/documentation.adoc b/entity/Organisation_entity/entityfields/mapviewcenterlat_param/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..f92fe01e05c83b2494bda29e055703b4c0361734
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/mapviewcenterlat_param/documentation.adoc
@@ -0,0 +1,2 @@
+Pass a valid default decimal (or string-decimal) latitude-value to set the default center position of the Map-view which is based on the parameters 
+`MapViewCenterLat_param` and `MapViewCenterLon_param`.
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/mapviewcenterlat_param/valueProcess.js b/entity/Organisation_entity/entityfields/mapviewcenterlat_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..75f0dea1eb7137a40bac5eccca2c2e06bcc753d8
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/mapviewcenterlat_param/valueProcess.js
@@ -0,0 +1,2 @@
+import("system.result");
+result.string("50.989791");
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/mapviewcenterlon_param/documentation.adoc b/entity/Organisation_entity/entityfields/mapviewcenterlon_param/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..ede2490bd8ba1bca620a1802bebb2d0c441748fc
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/mapviewcenterlon_param/documentation.adoc
@@ -0,0 +1,2 @@
+Pass a valid default decimal (or string-decimal) longitude-value to set the default center position of the Map-view which is based on the parameters 
+`MapViewCenterLat_param` and `MapViewCenterLon_param`.
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/mapviewcenterlon_param/valueProcess.js b/entity/Organisation_entity/entityfields/mapviewcenterlon_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..2cdca40931a3a2e532a2d0d1d13bc70c7d955238
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/mapviewcenterlon_param/valueProcess.js
@@ -0,0 +1,2 @@
+import("system.result");
+result.string("4.772377");
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/newvisitplanentry/onActionProcess.js b/entity/Organisation_entity/entityfields/newvisitplanentry/onActionProcess.js
index a4b75c65374cd0c2b158597b4afc565669916962..3c74f21974a25e4f2437b5721c8cc56fe1a93548 100644
--- a/entity/Organisation_entity/entityfields/newvisitplanentry/onActionProcess.js
+++ b/entity/Organisation_entity/entityfields/newvisitplanentry/onActionProcess.js
@@ -4,6 +4,7 @@ import("system.vars");
 var params = {};
 
 params["NoVisitPlanEmployeeWeek_param"] = true;
+params["ContactId_param"] = vars.get("$field.CONTACTID");
 params["OrganisationId_param"] = vars.get("$field.CONTACTID");
 
 neon.openContext("VisitPlanEntry", "VisitPlanEntryEdit_view", null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/openadminview/onActionProcess.js b/entity/Organisation_entity/entityfields/openadminview/onActionProcess.js
index 8a1b220f1e40e5d36f51e6d5afec394b6d9f8b52..dead60a3cae8657e02ea12b39ca0226f6a427755 100644
--- a/entity/Organisation_entity/entityfields/openadminview/onActionProcess.js
+++ b/entity/Organisation_entity/entityfields/openadminview/onActionProcess.js
@@ -4,9 +4,9 @@ import("Context_lib");
 AdminViewUtils.open("CONTACTID", [
     ["ORGANISATION_ID", vars.get("$field.ORGANISATION_ID")],
     ["ADDRESS_ID", vars.get("$field.ADDRESS_ID")],
-    ["DATE_NEW", vars.get("$field.DATE_NEW")],
-    ["DATE_EDIT", vars.get("$field.DATE_EDIT")],
-    ["DATE_NEW_CONTACT", vars.get("$field.DATE_NEW_CONTACT")],
+    ["DATE_NEW", vars.get("$field.DATE_NEW"), "DATE"],
+    ["DATE_EDIT", vars.get("$field.DATE_EDIT"), "DATE"],
+    ["DATE_NEW_CONTACT", vars.get("$field.DATE_NEW_CONTACT"), "DATE"],
     ["USER_NEW", vars.get("$field.USER_NEW")],
     ["USER_EDIT", vars.get("$field.USER_EDIT")],
     ["USER_NEW_CONTACT", vars.get("$field.USER_NEW_CONTACT")],
diff --git a/entity/Organisation_entity/recordcontainers/db/conditionProcess.js b/entity/Organisation_entity/recordcontainers/db/conditionProcess.js
index a38a50972c05d3a71887d352e767a4413d5398bb..284a5df816a268ac7887194caf4624a6579541ec 100644
--- a/entity/Organisation_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/Organisation_entity/recordcontainers/db/conditionProcess.js
@@ -1,3 +1,4 @@
+import("KeywordRegistry_basic");
 import("Employee_lib");
 import("AttributeRegistry_basic");
 import("Attribute_lib");
@@ -40,7 +41,9 @@ if (vars.exists("$param.ExcludedContactIds_param") && vars.get("$param.ExcludedC
     var excludedContacts = JSON.parse(vars.getString("$param.ExcludedContactIds_param"));
     cond.andIfSet("CONTACT.CONTACTID", excludedContacts, SqlBuilder.NOT_IN())
 }
-
+if (vars.exists("$param.OnlyActive_param") && vars.get("$param.OnlyActive_param"))
+    cond.and("CONTACT.STATUS", $KeywordRegistry.contactStatus$active())
+    
 cond.andIfSet("ORGANISATION.KIND", "$param.OrganisationType_param");
 cond.andIfSet("CONTACT.CONTACTID", onlyShowContactIds, SqlBuilder.IN())
 
diff --git a/entity/Organisation_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js b/entity/Organisation_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js
index a4e9edc5b2c7f90da86619beb5d4d968bb0a392b..bffcdb6a1e0be8fb6cc55de23fc79701ba3d660d 100644
--- a/entity/Organisation_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js
+++ b/entity/Organisation_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js
@@ -18,7 +18,7 @@ var sql = newSelect(isCount ? "1" : columns)
                     .leftJoin("CLASSIFICATION", newWhere("CLASSIFICATION.OBJECT_ROWID = CONTACT.CONTACTID")
                         .and("CLASSIFICATION.OBJECT_TYPE", "Organisation")
                         .and("CLASSIFICATION.CLASSIFICATIONTYPE_ID", classificationId))
-                    .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCOREID = CLASSIFICATION.CLASSIFICATIONSCORE_ID")
+                    .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCOREID = CLASSIFICATION.VALUE")
                     .whereIfSet(condition.trim())
                     .groupBy(groupedColumns);
 
diff --git a/entity/Organisation_entity/recordcontainers/db/filterextensions/favorites_filter/filterConditionProcess.js b/entity/Organisation_entity/recordcontainers/db/filterextensions/favorites_filter/filterConditionProcess.js
index d42520a347c8e8d594fb1af389acb8af1a2e824c..888ac0657242f41866a37f471b9765b045b52594 100644
--- a/entity/Organisation_entity/recordcontainers/db/filterextensions/favorites_filter/filterConditionProcess.js
+++ b/entity/Organisation_entity/recordcontainers/db/filterextensions/favorites_filter/filterConditionProcess.js
@@ -1,19 +1,27 @@
+import("system.vars");
 import("Favorites_lib");
 import("system.result");
 import("Sql_lib");
 
-var favoFilterCond = newWhere();
-var rowIds = FavoritesUtil.getRowIdsOfFavoriteGroup();
+
+var operator = vars.get("$local.operator");
+var rawvalue = vars.get("$local.rawvalue");
+var objecttype = vars.get("$field.ORGANISATION_OBJECTTYPE");
+var idcolumn = "ORGANISATION.ORGANISATIONID";
+
+
+var rowIds = FavoritesUtil.getRowIdsOfFavorites(objecttype, operator, rawvalue);
+var preparedIds = [];
 
 for(i = 0; i < rowIds.length; i++)
 {        
-    var orga_id = new SqlBuilder().select("CONTACT.ORGANISATION_ID")
+    var person_id = new SqlBuilder().select("CONTACT.ORGANISATION_ID")
         .from("CONTACT")
         .where(newWhere("CONTACT.CONTACTID", rowIds[i]))
         .arrayColumn();
 
-    if(orga_id.length > 0)
-        favoFilterCond.or("ORGANISATION.ORGANISATIONID", orga_id[0], SqlBuilder.EQUAL());
+    if(person_id.length > 0)
+        preparedIds.push(person_id[0]);
 }
 
-result.string(favoFilterCond.toString());
\ No newline at end of file
+result.string(FavoritesUtil.getFilterDisplayCondition(objecttype, operator, rawvalue, idcolumn, preparedIds));
\ No newline at end of file
diff --git a/entity/Organisation_entity/recordcontainers/db/filterextensions/responsibleassignment/filterConditionProcess.js b/entity/Organisation_entity/recordcontainers/db/filterextensions/responsibleassignment/filterConditionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..dec63bfd984d6224a90a64f10a70daaaa670f011
--- /dev/null
+++ b/entity/Organisation_entity/recordcontainers/db/filterextensions/responsibleassignment/filterConditionProcess.js
@@ -0,0 +1,38 @@
+import("Employee_lib");
+import("KeywordRegistry_basic");
+import("Sql_lib");
+import("system.vars");
+import("system.result");
+
+var operator = vars.get("$local.operator");
+var rawvalue = vars.get("$local.rawvalue");
+var operator2 = vars.get("$local.operator2");
+var sqlCond = "";
+
+rawvalue = (rawvalue == "true");
+
+
+if(operator == "1" && rawvalue ||  operator == "2" && !rawvalue )
+    operator2 = SqlBuilder.IN();
+else if(operator == "1" && !rawvalue ||  operator == "2" && rawvalue)
+    operator2 = SqlBuilder.NOT_IN();
+else 
+    sqlCond = "1=1";
+
+
+
+if (sqlCond == "")
+    sqlCond = new SqlBuilder().where("CONTACT.CONTACTID", 
+            newSelect("DISTRICTCONTACT.CONTACT_ID")
+            .from("DISTRICTCONTACT")
+            .where("DISTRICTCONTACT.ADVISER_CONTACT_ID", EmployeeUtils.getCurrentContactId())
+            .and(
+                newWhere(
+                    newWhere("current_date >= cast(DISTRICTCONTACT.VALID_FROM as DATE)")
+                    .and("current_date <= cast(DISTRICTCONTACT.VALID_UNTIL as DATE)"))
+                .or(newWhere("current_date >= cast(DISTRICTCONTACT.VALID_FROM as DATE)")
+                    .and("DISTRICTCONTACT.VALID_UNTIL is null")))
+            .and("DISTRICTCONTACT.STATUS", $KeywordRegistry.contactStatus$active()), operator2).toString();
+            
+
+result.string(sqlCond);
\ No newline at end of file
diff --git a/entity/Organisation_entity/recordcontainers/db/filterextensions/responsibleassignment/filterValuesProcess.js b/entity/Organisation_entity/recordcontainers/db/filterextensions/responsibleassignment/filterValuesProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4462144da5638267f7c76cce0c779305ae80c089
--- /dev/null
+++ b/entity/Organisation_entity/recordcontainers/db/filterextensions/responsibleassignment/filterValuesProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.object([["true", translate.text("Yes")], ["false", translate.text("No")]]);
\ No newline at end of file
diff --git a/entity/Organisation_entity/recordcontainers/db/onDBDelete.js b/entity/Organisation_entity/recordcontainers/db/onDBDelete.js
index 730c29c8f1984d5ebc75d045a5ee75779f13a204..00e50690d485216c4b4956f416b688ab433e68a8 100644
--- a/entity/Organisation_entity/recordcontainers/db/onDBDelete.js
+++ b/entity/Organisation_entity/recordcontainers/db/onDBDelete.js
@@ -16,5 +16,6 @@ newWhere("COMMUNICATION.CONTACT_ID", contactId).deleteData();
 newWhere("ADDRESS.CONTACT_ID", contactId).deleteData();
 newWhere("COMMRESTRICTION.CONTACT_ID", contactId).deleteData();
 newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", vars.get("$field.CONTACTID")).deleteData();
+newWhere("CLASSIFICATION.OBJECT_ROWID", vars.get("$field.CONTACTID")).deleteData();
 
 WorkflowSignalSender.deleted();
\ No newline at end of file
diff --git a/entity/Organisation_entity/recordcontainers/db/onDBInsert.js b/entity/Organisation_entity/recordcontainers/db/onDBInsert.js
index 87c54eb133ade2f232b31f1ef23e47e3053e1f7f..60299cd7d4eda2ceed743571cec9cbda912ad318 100644
--- a/entity/Organisation_entity/recordcontainers/db/onDBInsert.js
+++ b/entity/Organisation_entity/recordcontainers/db/onDBInsert.js
@@ -1,9 +1,6 @@
 import("system.vars");
 import("Workflow_lib");
 
-var uid = vars.get("$sys.uid");
-var contextname = vars.get("$sys.currentcontextname");
-
 //start the execution in afterOperatingState, because here the dataset is not yet inserted
 vars.set("$context.workflowQueue", {});
 WorkflowSignalSender.inserted();
\ No newline at end of file
diff --git a/entity/Organisation_entity/recordcontainers/db/onDBUpdate.js b/entity/Organisation_entity/recordcontainers/db/onDBUpdate.js
index 1f1a45acc4ec6c3e34db3bdba54fdfab62ad32ca..9f0337793c84207f61013809345f829d1f874671 100644
--- a/entity/Organisation_entity/recordcontainers/db/onDBUpdate.js
+++ b/entity/Organisation_entity/recordcontainers/db/onDBUpdate.js
@@ -1,3 +1,4 @@
+import("Employee_lib");
 import("Sql_lib");
 import("system.vars");
 import("Organisation_lib");
diff --git a/entity/PermissionAction_entity/PermissionAction_entity.aod b/entity/PermissionAction_entity/PermissionAction_entity.aod
index ff1497fcaa30b1b0ccc00ddf5a03bffa290d137f..dc33aff6f6f00543fe24e16daee87b59094b507e 100644
--- a/entity/PermissionAction_entity/PermissionAction_entity.aod
+++ b/entity/PermissionAction_entity/PermissionAction_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>PermissionAction_entity</name>
+  <title>Action</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/PermissionAction_entity/documentation.adoc</documentation>
-  <title>Action</title>
   <onValidation>%aditoprj%/entity/PermissionAction_entity/onValidation.js</onValidation>
   <titlePlural>Actions</titlePlural>
   <recordContainer>jDito</recordContainer>
diff --git a/entity/PermissionCalendar_entity/PermissionCalendar_entity.aod b/entity/PermissionCalendar_entity/PermissionCalendar_entity.aod
index 6fd9cfebf50492e7de30e44e050a9e60450778b5..c21dd398145e59c0b1391486cfd18f2540199db6 100644
--- a/entity/PermissionCalendar_entity/PermissionCalendar_entity.aod
+++ b/entity/PermissionCalendar_entity/PermissionCalendar_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>PermissionCalendar_entity</name>
+  <title>Calendar Permission</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/PermissionCalendar_entity/documentation.adoc</documentation>
-  <title>Calendar Permission</title>
   <grantCreate v="true" />
   <grantDelete v="true" />
   <contentTitleProcess>%aditoprj%/entity/PermissionCalendar_entity/contentTitleProcess.js</contentTitleProcess>
@@ -247,17 +247,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>permissionCalendarDb</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/PermissionCalendar_entity/recordcontainers/permissioncalendardb/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>6df4271e-d95f-4526-bdcc-7f127f0f1b31</name>
-          <tableName>AB_PERMISSIONCALENDAR</tableName>
-          <primaryKey>AB_PERMISSIONCALENDARID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>AB_PERMISSIONCALENDARID.value</name>
@@ -308,6 +299,15 @@
           <recordfield>AB_PERMISSIONCALENDAR.PERMISSIONDEALER_ROWID</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>6df4271e-d95f-4526-bdcc-7f127f0f1b31</name>
+          <tableName>AB_PERMISSIONCALENDAR</tableName>
+          <primaryKey>AB_PERMISSIONCALENDARID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/PermissionDetail_entity/PermissionDetail_entity.aod b/entity/PermissionDetail_entity/PermissionDetail_entity.aod
index 2adfbf836586ba40322bbdfd1e2d28fb40bff967..39f346f5c668b7003d1499b74960e4e98842687b 100644
--- a/entity/PermissionDetail_entity/PermissionDetail_entity.aod
+++ b/entity/PermissionDetail_entity/PermissionDetail_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>PermissionDetail_entity</name>
+  <title>Permission Detail</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/PermissionDetail_entity/documentation.adoc</documentation>
-  <title>Permission Detail</title>
   <siblings>
     <element>PermissionOverview_entity</element>
   </siblings>
diff --git a/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js b/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js
index 531be41df5558d08f05b6f5ff71d5966d69ac31e..7b6b21e95324e385275e8450f172b15dd6092b52 100644
--- a/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js
@@ -9,7 +9,7 @@ if (entityTitle != undefined && entityTitle != null && entityTitle != "") {
 
     for (var field in entityStructure.fields) { 
         field = entityStructure.fields[field];
-        if (field.usePermissions == true) {
+        if (field.usePermissions == true && field.fieldType != "ACTION") {
             var name = field.name;
             var title = field.title;
             if (title != undefined && title != null && title != "") {
diff --git a/entity/PermissionMetaData_entity/PermissionMetaData_entity.aod b/entity/PermissionMetaData_entity/PermissionMetaData_entity.aod
index 36e70416b835fd711ead67d87f15d54b0cabb3f1..c611be5a933d6bf1bae16636842e63a4bbf2ae4e 100644
--- a/entity/PermissionMetaData_entity/PermissionMetaData_entity.aod
+++ b/entity/PermissionMetaData_entity/PermissionMetaData_entity.aod
@@ -1,10 +1,10 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>PermissionMetaData_entity</name>
+  <title>Permission</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/PermissionMetaData_entity/documentation.adoc</documentation>
   <icon>VAADIN:CONNECT</icon>
-  <title>Permission</title>
   <grantCreate v="false" />
   <grantUpdate v="false" />
   <grantDelete v="false" />
@@ -58,7 +58,7 @@
       <children>
         <entityParameter>
           <name>EntityId_param</name>
-          <valueProcess>%aditoprj%/entity/PermissionMetaData_entity/entityfields/permissionoverviews/children/entitytitle_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/PermissionMetaData_entity/entityfields/permissionoverviews/children/entityid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
@@ -73,7 +73,7 @@
       <children>
         <entityParameter>
           <name>EntityId_param</name>
-          <valueProcess>%aditoprj%/entity/PermissionMetaData_entity/entityfields/permissiondetails/children/entitytitle_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/PermissionMetaData_entity/entityfields/permissiondetails/children/entityid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
diff --git a/entity/PermissionMetaData_entity/entityfields/permissionoverviews/children/entitytitle_param/valueProcess.js b/entity/PermissionMetaData_entity/entityfields/permissiondetails/children/entityid_param/valueProcess.js
similarity index 96%
rename from entity/PermissionMetaData_entity/entityfields/permissionoverviews/children/entitytitle_param/valueProcess.js
rename to entity/PermissionMetaData_entity/entityfields/permissiondetails/children/entityid_param/valueProcess.js
index 2c71e53a498b1ad3d5a0f915aacb4a836b81657f..16c85500b5355a72548030867e3d300661e9d4aa 100644
--- a/entity/PermissionMetaData_entity/entityfields/permissionoverviews/children/entitytitle_param/valueProcess.js
+++ b/entity/PermissionMetaData_entity/entityfields/permissiondetails/children/entityid_param/valueProcess.js
@@ -1,4 +1,4 @@
-import("system.vars");
-import("system.result");
-
+import("system.vars");
+import("system.result");
+
 result.string(vars.get("$field.UID"));
\ No newline at end of file
diff --git a/entity/PermissionMetaData_entity/entityfields/permissiondetails/children/entitytitle_param/valueProcess.js b/entity/PermissionMetaData_entity/entityfields/permissionoverviews/children/entityid_param/valueProcess.js
similarity index 96%
rename from entity/PermissionMetaData_entity/entityfields/permissiondetails/children/entitytitle_param/valueProcess.js
rename to entity/PermissionMetaData_entity/entityfields/permissionoverviews/children/entityid_param/valueProcess.js
index 2c71e53a498b1ad3d5a0f915aacb4a836b81657f..16c85500b5355a72548030867e3d300661e9d4aa 100644
--- a/entity/PermissionMetaData_entity/entityfields/permissiondetails/children/entitytitle_param/valueProcess.js
+++ b/entity/PermissionMetaData_entity/entityfields/permissionoverviews/children/entityid_param/valueProcess.js
@@ -1,4 +1,4 @@
-import("system.vars");
-import("system.result");
-
+import("system.vars");
+import("system.result");
+
 result.string(vars.get("$field.UID"));
\ No newline at end of file
diff --git a/entity/PermissionOverview_entity/PermissionOverview_entity.aod b/entity/PermissionOverview_entity/PermissionOverview_entity.aod
index f0e8a0786144a64086670e6506476e93f625f4de..16c9910812240e9439516b2d3daa4d37ca83f36c 100644
--- a/entity/PermissionOverview_entity/PermissionOverview_entity.aod
+++ b/entity/PermissionOverview_entity/PermissionOverview_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>PermissionOverview_entity</name>
+  <title>Permission Overview</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/PermissionOverview_entity/documentation.adoc</documentation>
-  <title>Permission Overview</title>
   <siblings>
     <element>PermissionDetail_entity</element>
   </siblings>
diff --git a/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js
index 74858275777a3decccb191074f1cf3c611ca0333..684c606088bd42f9ffb9db28f4f24b22afb32ac0 100644
--- a/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js
@@ -10,7 +10,6 @@ var res = [];
 var roleName = "";
 var entityName = "";
 let alias = SqlUtils.getSystemAlias();
-var roleInternalEveryone = "INTERNAL_EVERYONE";
 
 var entitiesMetaData = project.getDataModels(project.DATAMODEL_KIND_ENTITY);
 var entitiesUsePermFlagSet = []; // array, which contains ids of entities with usePermission flag set
@@ -27,24 +26,11 @@ var rolesOrEntities = [];
 
 if (vars.exists("$param.RoleName_param") && vars.get("$param.RoleName_param")) {
     roleName = vars.getString("$param.RoleName_param");
-    if (roleName == roleInternalEveryone) {
-        var counter = 0;
-        for each (let entityUsePermFlagSet in entitiesUsePermFlagSet) {
-            if (PermissionUtil.getNumberOfPermissions(entityUsePermFlagSet, roleName) == 0) {
-                // no permissions for INTERNAL_EVERYONE found -> display X's for all actions
-                res.push(["NOREALPERMINDB" + counter++, entityUsePermFlagSet, "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE"]);
-            }
-        }
-    }
     rolesOrEntitiesSelect.select("distinct ASYS_PERMISSIONSET.ENTITY_ID")
         .from("ASYS_PERMISSIONSET")
         .and("ASYS_PERMISSIONSET.ROLE_ID", roleName);
 } else if (vars.exists("$param.EntityId_param") && vars.get("$param.EntityId_param")) {
     entityName = vars.getString("$param.EntityId_param");
-    if (PermissionUtil.getNumberOfPermissions(entityName, roleInternalEveryone) == 0) {
-        // no permissions for INTERNAL_EVERYONE found -> display X's for all actions
-        res.push(["NOREALPERMINDB", roleInternalEveryone, "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE"]);
-    }
     rolesOrEntitiesSelect.select("distinct ASYS_PERMISSIONSET.ROLE_ID")
         .from("ASYS_PERMISSIONSET")
         .and("ASYS_PERMISSIONSET.ENTITY_ID", entityName);
@@ -71,11 +57,11 @@ for each (var entry in rolesOrEntities) { // entry contains either a role or an
     if (entityPermSetId)
     {
         recordPermSetId = new SqlBuilder(alias)
-                                .select("ASYS_PERMISSIONSETID")
-                                .from("ASYS_PERMISSIONSET")
-                                .where("ASYS_PERMISSIONSET.ASYS_PERMISSIONSET_ID", entityPermSetId)
-                                .and("ASYS_PERMISSIONSET.ACCESSTYPE", "R")
-                                .arrayColumn();
+            .select("ASYS_PERMISSIONSETID")
+            .from("ASYS_PERMISSIONSET")
+            .where("ASYS_PERMISSIONSET.ASYS_PERMISSIONSET_ID", entityPermSetId)
+            .and("ASYS_PERMISSIONSET.ACCESSTYPE", "R")
+            .arrayColumn();
 
         currOverview = [entityPermSetId, entry, "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE"];
 
diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod
index b209d491c916e9bb01a4079feb5ab570b0065f62..7f6c58e19e2c1da276d51145f93d1d2cdc1daf4d 100644
--- a/entity/Person_entity/Person_entity.aod
+++ b/entity/Person_entity/Person_entity.aod
@@ -1,10 +1,10 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Person_entity</name>
+  <title>Contact</title>
   <description>former Pers</description>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Person_entity/documentation.adoc</documentation>
-  <title>Contact</title>
   <siblings>
     <element>Address_entity</element>
     <element>Contact_entity</element>
@@ -91,6 +91,11 @@
     </entityFieldGroup>
     <entityConsumer>
       <name>Activities</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Activity_entity</entityName>
+        <fieldName>LinkedObjects</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>RowId_param</name>
@@ -105,11 +110,6 @@
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/activities/children/presetlinks_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Activity_entity</entityName>
-        <fieldName>LinkedObjects</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>CONTACTID</name>
@@ -120,6 +120,14 @@
       <name>OrganisationRelated</name>
       <documentation>%aditoprj%/entity/Person_entity/entityfields/organisationrelated/documentation.adoc</documentation>
       <recordContainer>db</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>41952879-c2f0-411f-8ca1-36c38914a629</name>
+          <entityName>Organisation_entity</entityName>
+          <fieldName>Contact</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
@@ -138,14 +146,6 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependencies>
-        <entityDependency>
-          <name>41952879-c2f0-411f-8ca1-36c38914a629</name>
-          <entityName>Organisation_entity</entityName>
-          <fieldName>Contact</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
     </entityProvider>
     <entityField>
       <name>PERSON_ID</name>
@@ -163,6 +163,11 @@
     </entityField>
     <entityConsumer>
       <name>PersAddresses</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Address_entity</entityName>
+        <fieldName>ContactAddresses</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>DefaultAddressId_param</name>
@@ -182,14 +187,14 @@
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/persaddresses/children/replacestandardaddress_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Address_entity</entityName>
-        <fieldName>ContactAddresses</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Communications</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Communication_entity</entityName>
+        <fieldName>AllCommunications</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
@@ -207,29 +212,29 @@
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/communications/children/contactsmaincountry_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Communication_entity</entityName>
-        <fieldName>AllCommunications</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Organisations</name>
       <selectionMode>SINGLE</selectionMode>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Organisation_entity</entityName>
+        <fieldName>WithPersonIdFilter</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ExcludeOrganisationsByPersonId</name>
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/organisations/children/excludeorganisationsbypersonid/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Organisation_entity</entityName>
-        <fieldName>WithPersonIdFilter</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Contracts</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Contract_entity</entityName>
+        <fieldName>Contracts</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
@@ -238,16 +243,16 @@
           <mandatory v="true" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Contract_entity</entityName>
-        <fieldName>Contracts</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Pricelists</name>
       <state>AUTO</state>
       <stateProcess>%aditoprj%/entity/Person_entity/entityfields/pricelists/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Productprice_entity</entityName>
+        <fieldName>Productprices</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
@@ -256,11 +261,6 @@
           <mandatory v="true" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Productprice_entity</entityName>
-        <fieldName>Productprices</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Genders</name>
@@ -315,6 +315,11 @@
     <entityConsumer>
       <name>Documents</name>
       <selectionMode>MULTI</selectionMode>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>Documents</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>AssignmentRowId_param</name>
@@ -329,11 +334,6 @@
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/documents/children/disallowcreate_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>Documents</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>ContactId_param</name>
@@ -358,6 +358,14 @@
       <name>Contact</name>
       <documentation>%aditoprj%/entity/Person_entity/entityfields/contact/documentation.adoc</documentation>
       <recordContainer>db</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>f925c8e6-b096-4093-bd39-c9cd30a6a71a</name>
+          <entityName>Lead_entity</entityName>
+          <fieldName>ContactId</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
       <children>
         <entityParameter>
           <name>OrgId_param</name>
@@ -385,19 +393,16 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependencies>
-        <entityDependency>
-          <name>f925c8e6-b096-4093-bd39-c9cd30a6a71a</name>
-          <entityName>Lead_entity</entityName>
-          <fieldName>ContactId</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
     </entityProvider>
     <entityConsumer>
       <name>OrgAddresses</name>
       <state>READONLY</state>
       <stateProcess>%aditoprj%/entity/Person_entity/entityfields/orgaddresses/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Address_entity</entityName>
+        <fieldName>OrganisationAddressesByContact</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
@@ -409,11 +414,6 @@
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/orgaddresses/children/defaultaddressid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Address_entity</entityName>
-        <fieldName>OrganisationAddressesByContact</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>STANDARD_EMAIL_COMMUNICATION</name>
@@ -430,6 +430,11 @@
     <entityConsumer>
       <name>PhoneCommunications</name>
       <description>Used for standard communication</description>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Communication_entity</entityName>
+        <fieldName>PhoneCommunications</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
@@ -439,15 +444,15 @@
                         Usually this is used for filtering COMMUNICATION-entries by a specified contact or creating a new entry that is related to a contact.</description>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Communication_entity</entityName>
-        <fieldName>PhoneCommunications</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>EmailCommunications</name>
       <description>Used for standard communication</description>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Communication_entity</entityName>
+        <fieldName>EmailCommunications</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
@@ -457,11 +462,6 @@
                         Usually this is used for filtering COMMUNICATION-entries by a specified contact or creating a new entry that is related to a contact.</description>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Communication_entity</entityName>
-        <fieldName>EmailCommunications</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>ADDRESS_ID</name>
@@ -473,6 +473,11 @@
     </entityField>
     <entityConsumer>
       <name>KeywordGenders</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -480,11 +485,6 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Languages</name>
@@ -496,35 +496,40 @@
     </entityConsumer>
     <entityConsumer>
       <name>Offers</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Offer_entity</entityName>
+        <fieldName>ContactOffers</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/offers/children/contactid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Offer_entity</entityName>
-        <fieldName>ContactOffers</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Salutations</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>SalutationDistinct_entity</entityName>
+        <fieldName>Salutations</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>Language_param</name>
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/salutations/children/language_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>SalutationDistinct_entity</entityName>
-        <fieldName>Salutations</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Attributes</name>
       <onValidation>%aditoprj%/entity/Person_entity/entityfields/attributes/onValidation.js</onValidation>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>AttributeRelations</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
@@ -539,14 +544,14 @@
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/attributes/children/showdsgvomessage_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>AttributeRelations</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>SalutationTitles</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>SalutationTitleDistinct_entity</entityName>
+        <fieldName>SalutationTitles</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>Salutation_param</name>
@@ -557,15 +562,15 @@
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/salutationtitles/children/language_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>SalutationTitleDistinct_entity</entityName>
-        <fieldName>SalutationTitles</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Tasks</name>
       <state>EDITABLE</state>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Task_entity</entityName>
+        <fieldName>Tasks</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>RowId_param</name>
@@ -580,14 +585,14 @@
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/tasks/children/presetlinks_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Task_entity</entityName>
-        <fieldName>Tasks</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>ObjectTrees</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ObjectTree_entity</entityName>
+        <fieldName>TreeProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectIds_param</name>
@@ -598,11 +603,6 @@
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/objecttrees/children/objecttypes_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>ObjectTree_entity</entityName>
-        <fieldName>TreeProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>STATUS</name>
@@ -614,20 +614,25 @@
     </entityField>
     <entityConsumer>
       <name>KeywordContactStates</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/keywordcontactstates/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>ContactAndOrganisationAddresses</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Address_entity</entityName>
+        <fieldName>OrganisationAndContactAddresses</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
@@ -638,11 +643,6 @@
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/contactandorganisationaddresses/children/organisationid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Address_entity</entityName>
-        <fieldName>OrganisationAndContactAddresses</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>DEPARTMENT</name>
@@ -665,6 +665,11 @@
     </entityField>
     <entityConsumer>
       <name>LogHistories</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>LogHistory_entity</entityName>
+        <fieldName>LogHistoryProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>tablenames_param</name>
@@ -673,14 +678,14 @@
           <mandatory v="true" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>LogHistory_entity</entityName>
-        <fieldName>LogHistoryProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>OtherContacts</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Contact_entity</entityName>
+        <fieldName>PersonsContactsExceptOwn</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>OwnContactId_param</name>
@@ -691,11 +696,6 @@
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/othercontacts/children/languagekey_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Contact_entity</entityName>
-        <fieldName>PersonsContactsExceptOwn</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>ORGANISATION_NAME</name>
@@ -708,32 +708,6 @@
     <entityProvider>
       <name>Contacts</name>
       <documentation>%aditoprj%/entity/Person_entity/entityfields/contacts/documentation.adoc</documentation>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>ExcludedContactIds_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>OrgId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OnlyShowContactIds_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>OnlyActive_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>DuplicateCurrentContactId_param</name>
-          <expose v="false" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>c98da62f-d6b2-4ddb-9101-92e9a60abdfb</name>
@@ -747,10 +721,47 @@
           <fieldName>Persons</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>6854e035-f459-41b2-84f8-9f5cca5dbe80</name>
+          <entityName>DistrictResponsible_entity</entityName>
+          <fieldName>Persons</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ExcludedContactIds_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>OrgId_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>OnlyShowContactIds_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>OnlyActive_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>DuplicateCurrentContactId_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityConsumer>
       <name>360DegreeObjects</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>360Degree_entity</entityName>
+        <fieldName>PersonObjects</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
@@ -761,14 +772,14 @@
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/360degreeobjects/children/objectstatus_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>360Degree_entity</entityName>
-        <fieldName>PersonObjects</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>AttributeTree</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>TreeProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
@@ -783,11 +794,6 @@
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/attributetree/children/showdsgvomessage_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>TreeProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>DATE_NEW</name>
@@ -824,8 +830,8 @@
     </entityField>
     <entityParameter>
       <name>AdditionalActivityTaskLinks_param</name>
-      <title></title>
       <valueProcess>%aditoprj%/entity/Person_entity/entityfields/additionalactivitytasklinks_param/valueProcess.js</valueProcess>
+      <title></title>
       <description>PARAMETER</description>
     </entityParameter>
     <entityField>
@@ -847,35 +853,40 @@
     </entityParameter>
     <entityConsumer>
       <name>CommRestrictions</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>CommRestriction_Entity</entityName>
+        <fieldName>CommRestrictions</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/commrestrictions/children/contactid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>CommRestriction_Entity</entityName>
-        <fieldName>CommRestrictions</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>DSGVOEntries</name>
       <stateProcess>%aditoprj%/entity/Person_entity/entityfields/dsgvoentries/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>DSGVO_entity</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/dsgvoentries/children/contactid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>DSGVO_entity</entityName>
-        <fieldName>#PROVIDER</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Appointments</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Appointment_entity</entityName>
+        <fieldName>LinkedAppointments</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>LinkedObjectId_param</name>
@@ -886,11 +897,6 @@
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/appointments/children/erroronpermissiondenied/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Appointment_entity</entityName>
-        <fieldName>LinkedAppointments</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>OpenTasks</name>
@@ -907,6 +913,7 @@
       <title>Company</title>
       <consumer>Organisations</consumer>
       <linkedContextProcess>%aditoprj%/entity/Person_entity/entityfields/organisation_contactid/linkedContextProcess.js</linkedContextProcess>
+      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/organisation_contactid/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/Person_entity/entityfields/organisation_contactid/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/organisation_contactid/displayValueProcess.js</displayValueProcess>
       <onValidation>%aditoprj%/entity/Person_entity/entityfields/organisation_contactid/onValidation.js</onValidation>
@@ -927,6 +934,11 @@
     </entityField>
     <entityConsumer>
       <name>SelfDuplicatesUncached</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Person_entity</entityName>
+        <fieldName>SelfDuplicates</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>DuplicateActionsControl_param</name>
@@ -945,11 +957,6 @@
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/selfduplicatesuncached/children/excludedcontactids_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Person_entity</entityName>
-        <fieldName>SelfDuplicates</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>LEAD_LEADID</name>
@@ -980,6 +987,14 @@
       <name>QuickEntryContacts</name>
       <documentation>%aditoprj%/entity/Person_entity/entityfields/quickentrycontacts/documentation.adoc</documentation>
       <titlePlural>Additional Contacts</titlePlural>
+      <dependencies>
+        <entityDependency>
+          <name>6d137850-63ba-4be0-9ca5-1464e71d4f77</name>
+          <entityName>QuickEntry_entity</entityName>
+          <fieldName>Contacts</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
@@ -1002,15 +1017,242 @@
           <expose v="false" />
         </entityParameter>
       </children>
+    </entityProvider>
+    <entityParameter>
+      <name>OnlyShowContactIds_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityProvider>
+      <name>SelfDuplicates</name>
+      <documentation>%aditoprj%/entity/Person_entity/entityfields/selfduplicates/documentation.adoc</documentation>
+      <titlePlural>Duplicates</titlePlural>
+      <children>
+        <entityParameter>
+          <name>OnlyShowContactIds_param</name>
+          <mandatory v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>OnlyActive_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OrgId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OnlyOwnSupervised_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityField>
+      <name>IndexCommunication</name>
+    </entityField>
+    <entityField>
+      <name>IndexAddress</name>
+    </entityField>
+    <entityField>
+      <name>IndexCountry</name>
+      <groupable v="false" />
+    </entityField>
+    <entityField>
+      <name>IndexZIP</name>
+      <groupable v="false" />
+    </entityField>
+    <entityField>
+      <name>IndexCity</name>
+      <groupable v="false" />
+    </entityField>
+    <entityParameter>
+      <name>OnlyOwnSupervised_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityField>
+      <name>IndexPhoneticLastname</name>
+    </entityField>
+    <entityField>
+      <name>IndexPhoneticFirstname</name>
+    </entityField>
+    <entityProvider>
+      <name>IdFilteredActiveContacts</name>
+      <documentation>%aditoprj%/entity/Person_entity/entityfields/idfilteredactivecontacts/documentation.adoc</documentation>
       <dependencies>
         <entityDependency>
-          <name>6d137850-63ba-4be0-9ca5-1464e71d4f77</name>
-          <entityName>QuickEntry_entity</entityName>
+          <name>511f3e4c-7493-4a31-a136-0ba80ba2ec85</name>
+          <entityName>Member_entity</entityName>
+          <fieldName>Contacts</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>ExcludedContactIds_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>DuplicateActionsControl_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OnlyOwnSupervised_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OrgId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OnlyShowContactIds_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OnlyActive_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>DuplicateCurrentContactId_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityField>
+      <name>COUNT</name>
+      <title>Count</title>
+      <contentType>NUMBER</contentType>
+    </entityField>
+    <entityAggregateField>
+      <name>COUNT_aggregate</name>
+      <parentField>COUNT</parentField>
+      <title>Count</title>
+    </entityAggregateField>
+    <entityProvider>
+      <name>indexP</name>
+      <documentation>%aditoprj%/entity/Person_entity/entityfields/indexp/documentation.adoc</documentation>
+      <recordContainer>index</recordContainer>
+      <children>
+        <entityParameter>
+          <name>DuplicateActionsControl_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityField>
+      <name>PERSON_OBJECTTYPE</name>
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/person_objecttype/valueProcess.js</valueProcess>
+    </entityField>
+    <entityProvider>
+      <name>#PROVIDER_AGGREGATES</name>
+      <useAggregates v="true" />
+    </entityProvider>
+    <entityConsumer>
+      <name>Districts</name>
+      <state>INVISIBLE</state>
+      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/districts/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>District_entity</entityName>
+        <fieldName>ResponsibleDistricts</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>DistrictsByContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/districts/children/districtsbycontactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityProvider>
+      <name>NonselfDuplicates</name>
+      <documentation>%aditoprj%/entity/Person_entity/entityfields/nonselfduplicates/documentation.adoc</documentation>
+      <dependencies>
+        <entityDependency>
+          <name>3a4352e2-9686-4c52-9d01-dbfad8c68ea7</name>
+          <entityName>Duplicates_entity</entityName>
+          <fieldName>DuplicatePersonsConsumer</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>DuplicateCurrentContactId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OnlyShowContactIds_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>OrgId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OnlyOwnSupervised_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityConsumer>
+      <name>DistrictResponsibles</name>
+      <state>INVISIBLE</state>
+      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/districtresponsibles/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>DistrictResponsible_entity</entityName>
+        <fieldName>OrganisationResponsibles</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>OrgUid_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/districtresponsibles/children/orguid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityProvider>
+      <name>ebdb88f5-f030-426c-b261-9f3828d19356</name>
+      <dependencies>
+        <entityDependency>
+          <name>511f3e4c-7493-4a31-a136-0ba80ba2ec85</name>
+          <entityName>Member_entity</entityName>
           <fieldName>Contacts</fieldName>
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
     </entityProvider>
+    <entityConsumer>
+      <name>Orders</name>
+      <documentation>%aditoprj%/entity/Person_entity/entityfields/orders/documentation.adoc</documentation>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Order_entity</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/orders/children/contactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>BIRTHDAY</name>
+      <title>Birthday</title>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
+      <outputFormat>dd.MM.</outputFormat>
+      <inputFormat>dd.MM.</inputFormat>
+      <state>READONLY</state>
+    </entityField>
     <entityActionField>
       <name>openEditDefaultsView</name>
       <title>Edit defaults</title>
@@ -1110,6 +1352,36 @@
           <isObjectAction v="false" />
           <iconId>VAADIN:ENVELOPES</iconId>
         </entityActionField>
+        <entityActionField>
+          <name>observe</name>
+          <title>Observe</title>
+          <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/filterviewactiongroup/children/observe/onActionProcess.js</onActionProcess>
+          <isObjectAction v="true" />
+          <iconId>VAADIN:EYE</iconId>
+          <stateProcess>%aditoprj%/entity/Person_entity/entityfields/filterviewactiongroup/children/observe/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Person_entity/entityfields/filterviewactiongroup/children/observe/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>cancelObservation</name>
+          <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/filterviewactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:EYE_SLASH</iconId>
+          <stateProcess>%aditoprj%/entity/Person_entity/entityfields/filterviewactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Person_entity/entityfields/filterviewactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>addToContactSync</name>
+          <title>add Contact to Sync</title>
+          <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/filterviewactiongroup/children/addtocontactsync/onActionProcess.js</onActionProcess>
+          <iconId>NEON:RECURRING_APPOINTMENT</iconId>
+          <state>EDITABLE</state>
+        </entityActionField>
+        <entityActionField>
+          <name>removeFromContactSync</name>
+          <title>remove Contact from Sync</title>
+          <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/filterviewactiongroup/children/removefromcontactsync/onActionProcess.js</onActionProcess>
+          <iconId>NEON:RECURRING_APPOINTMENT_MOVED</iconId>
+          <state>AUTO</state>
+        </entityActionField>
       </children>
     </entityActionGroup>
     <entityActionGroup>
@@ -1167,92 +1439,33 @@
     </entityActionField>
     <entityActionField>
       <name>newAppointment</name>
-      <title>New appointment</title>
-      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newappointment/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CALENDAR</iconId>
-      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/newappointment/stateProcess.js</stateProcess>
-      <tooltip>New Appointment</tooltip>
-    </entityActionField>
-    <entityActionField>
-      <name>newLetter</name>
-      <title>New letter</title>
-      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newletter/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:ENVELOPE</iconId>
-      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/newletter/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>startWorkflow</name>
-      <title>Start workflow</title>
-      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/startworkflow/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:PLAY</iconId>
-      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/startworkflow/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>openAdminView</name>
-      <title>Open admin view</title>
-      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CURLY_BRACKETS</iconId>
-      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/openadminview/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityParameter>
-      <name>OnlyShowContactIds_param</name>
-      <expose v="true" />
-    </entityParameter>
-    <entityProvider>
-      <name>SelfDuplicates</name>
-      <documentation>%aditoprj%/entity/Person_entity/entityfields/selfduplicates/documentation.adoc</documentation>
-      <titlePlural>Duplicates</titlePlural>
-      <children>
-        <entityParameter>
-          <name>OnlyShowContactIds_param</name>
-          <mandatory v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>OnlyActive_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OrgId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OnlyOwnSupervised_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityField>
-      <name>IndexCommunication</name>
-    </entityField>
-    <entityField>
-      <name>IndexAddress</name>
-    </entityField>
-    <entityField>
-      <name>IndexCountry</name>
-      <groupable v="false" />
-    </entityField>
-    <entityField>
-      <name>IndexZIP</name>
-      <groupable v="false" />
-    </entityField>
-    <entityField>
-      <name>IndexCity</name>
-      <groupable v="false" />
-    </entityField>
-    <entityParameter>
-      <name>OnlyOwnSupervised_param</name>
-      <expose v="true" />
-    </entityParameter>
-    <entityField>
-      <name>IndexPhoneticLastname</name>
-    </entityField>
-    <entityField>
-      <name>IndexPhoneticFirstname</name>
-    </entityField>
+      <title>New appointment</title>
+      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newappointment/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CALENDAR</iconId>
+      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/newappointment/stateProcess.js</stateProcess>
+      <tooltip>New Appointment</tooltip>
+    </entityActionField>
+    <entityActionField>
+      <name>newLetter</name>
+      <title>New letter</title>
+      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newletter/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:ENVELOPE</iconId>
+      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/newletter/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>startWorkflow</name>
+      <title>Start workflow</title>
+      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/startworkflow/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:PLAY</iconId>
+      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/startworkflow/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>newVisitrecommendation</name>
+      <title>New Visit Recommendation</title>
+      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newvisitrecommendation/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CALENDAR</iconId>
+      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/newvisitrecommendation/stateProcess.js</stateProcess>
+    </entityActionField>
     <entityActionField>
       <name>newVisitPlanEntry</name>
       <title>New Weekplanentry</title>
@@ -1260,162 +1473,6 @@
       <iconId>VAADIN:CAR</iconId>
       <stateProcess>%aditoprj%/entity/Person_entity/entityfields/newvisitplanentry/stateProcess.js</stateProcess>
     </entityActionField>
-    <entityProvider>
-      <name>IdFilteredActiveContacts</name>
-      <documentation>%aditoprj%/entity/Person_entity/entityfields/idfilteredactivecontacts/documentation.adoc</documentation>
-      <children>
-        <entityParameter>
-          <name>ExcludedContactIds_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>DuplicateActionsControl_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OnlyOwnSupervised_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OrgId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OnlyShowContactIds_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OnlyActive_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>DuplicateCurrentContactId_param</name>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-      <dependencies>
-        <entityDependency>
-          <name>511f3e4c-7493-4a31-a136-0ba80ba2ec85</name>
-          <entityName>Member_entity</entityName>
-          <fieldName>Contacts</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-    </entityProvider>
-    <entityField>
-      <name>COUNT</name>
-      <title>Count</title>
-      <contentType>NUMBER</contentType>
-    </entityField>
-    <entityAggregateField>
-      <name>COUNT_aggregate</name>
-      <parentField>COUNT</parentField>
-      <title>Count</title>
-    </entityAggregateField>
-    <entityProvider>
-      <name>indexP</name>
-      <documentation>%aditoprj%/entity/Person_entity/entityfields/indexp/documentation.adoc</documentation>
-      <recordContainer>index</recordContainer>
-      <children>
-        <entityParameter>
-          <name>DuplicateActionsControl_param</name>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityField>
-      <name>PERSON_OBJECTTYPE</name>
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/person_objecttype/valueProcess.js</valueProcess>
-    </entityField>
-    <entityProvider>
-      <name>#PROVIDER_AGGREGATES</name>
-      <useAggregates v="true" />
-    </entityProvider>
-    <entityConsumer>
-      <name>Districts</name>
-      <state>INVISIBLE</state>
-      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/districts/stateProcess.js</stateProcess>
-      <children>
-        <entityParameter>
-          <name>DistrictsByContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/districts/children/districtsbycontactid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>District_entity</entityName>
-        <fieldName>ResponsibleDistricts</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityProvider>
-      <name>NonselfDuplicates</name>
-      <documentation>%aditoprj%/entity/Person_entity/entityfields/nonselfduplicates/documentation.adoc</documentation>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>DuplicateCurrentContactId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OnlyShowContactIds_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>OrgId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OnlyOwnSupervised_param</name>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-      <dependencies>
-        <entityDependency>
-          <name>3a4352e2-9686-4c52-9d01-dbfad8c68ea7</name>
-          <entityName>Duplicates_entity</entityName>
-          <fieldName>DuplicatePersonsConsumer</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-    </entityProvider>
-    <entityConsumer>
-      <name>DistrictResponsibles</name>
-      <state>INVISIBLE</state>
-      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/districtresponsibles/stateProcess.js</stateProcess>
-      <children>
-        <entityParameter>
-          <name>OrgUid_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/districtresponsibles/children/orguid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>DistrictResponsible_entity</entityName>
-        <fieldName>OrganisationResponsibles</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Orders</name>
-      <documentation>%aditoprj%/entity/Person_entity/entityfields/orders/documentation.adoc</documentation>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/orders/children/contactid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Order_entity</entityName>
-        <fieldName>#PROVIDER</fieldName>
-      </dependency>
-    </entityConsumer>
     <entityActionField>
       <name>deleteFunction</name>
       <title>Delete this Function</title>
@@ -1423,47 +1480,24 @@
       <iconId>NEON:TRASH</iconId>
       <stateProcess>%aditoprj%/entity/Person_entity/entityfields/deletefunction/stateProcess.js</stateProcess>
     </entityActionField>
+    <entityActionField>
+      <name>openAdminView</name>
+      <title>Open admin view</title>
+      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CURLY_BRACKETS</iconId>
+      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/openadminview/stateProcess.js</stateProcess>
+    </entityActionField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <fromClauseProcess>%aditoprj%/entity/Person_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/Person_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/Person_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
       <onDBInsert>%aditoprj%/entity/Person_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/Person_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/Person_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>bfc9ae0b-bd68-4913-b26e-64fcfdae835d</name>
-          <tableName>PERSON</tableName>
-          <primaryKey>PERSONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>53ce95ab-08a3-4763-8540-8f3074f13d1f</name>
-          <tableName>CONTACT</tableName>
-          <primaryKey>CONTACTID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>e9124a94-cc1b-4967-84ec-e315a7565ce0</name>
-          <tableName>ORGANISATION</tableName>
-          <primaryKey>ORGANISATIONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>0b6ca3ff-31f7-4dcd-99f6-bb8f64948cb0</name>
-          <tableName>ADDRESS</tableName>
-          <primaryKey>ADDRESSID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>PERSONID.value</name>
@@ -1717,7 +1751,43 @@
           <name>STATUS.displayValue</name>
           <expression>%aditoprj%/entity/Person_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>BIRTHDAY.value</name>
+          <expression>%aditoprj%/entity/Person_entity/recordcontainers/db/recordfieldmappings/birthday.value/expression.js</expression>
+          <isFilterable v="true" />
+          <isLookupFilter v="false" />
+        </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>bfc9ae0b-bd68-4913-b26e-64fcfdae835d</name>
+          <tableName>PERSON</tableName>
+          <primaryKey>PERSONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>53ce95ab-08a3-4763-8540-8f3074f13d1f</name>
+          <tableName>CONTACT</tableName>
+          <primaryKey>CONTACTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>e9124a94-cc1b-4967-84ec-e315a7565ce0</name>
+          <tableName>ORGANISATION</tableName>
+          <primaryKey>ORGANISATIONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>0b6ca3ff-31f7-4dcd-99f6-bb8f64948cb0</name>
+          <tableName>ADDRESS</tableName>
+          <primaryKey>ADDRESSID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
       <filterExtensions>
         <filterExtensionSet>
           <name>Attribute_filter</name>
@@ -1736,6 +1806,14 @@
           <filterConditionProcess>%aditoprj%/entity/Person_entity/recordcontainers/db/filterextensions/favorites_filter/filterConditionProcess.js</filterConditionProcess>
           <filtertype>BASIC</filtertype>
         </filterExtension>
+        <filterExtension>
+          <name>SupervisorAssignment</name>
+          <title>Supervisor assignment</title>
+          <contentType>TEXT</contentType>
+          <filterValuesProcess>%aditoprj%/entity/Person_entity/recordcontainers/db/filterextensions/supervisorassignment/filterValuesProcess.js</filterValuesProcess>
+          <filterConditionProcess>%aditoprj%/entity/Person_entity/recordcontainers/db/filterextensions/supervisorassignment/filterConditionProcess.js</filterConditionProcess>
+          <filtertype>BASIC</filtertype>
+        </filterExtension>
       </filterExtensions>
     </dbRecordContainer>
     <indexRecordContainer>
diff --git a/entity/Person_entity/entityfields/attributes/children/showdsgvomessage_param/valueProcess.js b/entity/Person_entity/entityfields/attributes/children/showdsgvomessage_param/valueProcess.js
index fce9fde135bfde9221a9956f545862641098ff7c..c96eec50f67631c175c60d748ded5821644aea70 100644
--- a/entity/Person_entity/entityfields/attributes/children/showdsgvomessage_param/valueProcess.js
+++ b/entity/Person_entity/entityfields/attributes/children/showdsgvomessage_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.vars");
 import("system.neon");
 import("system.result");
 
-result.string(vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW);
\ No newline at end of file
+result.string(vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW && vars.get("$sys.recordstate") != neon.OPERATINGSTATE_EDIT);
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/communications/children/showdsgvomessage_param/valueProcess.js b/entity/Person_entity/entityfields/communications/children/showdsgvomessage_param/valueProcess.js
index fce9fde135bfde9221a9956f545862641098ff7c..c96eec50f67631c175c60d748ded5821644aea70 100644
--- a/entity/Person_entity/entityfields/communications/children/showdsgvomessage_param/valueProcess.js
+++ b/entity/Person_entity/entityfields/communications/children/showdsgvomessage_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.vars");
 import("system.neon");
 import("system.result");
 
-result.string(vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW);
\ No newline at end of file
+result.string(vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW && vars.get("$sys.recordstate") != neon.OPERATINGSTATE_EDIT);
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/filterviewactiongroup/children/addtocontactsync/onActionProcess.js b/entity/Person_entity/entityfields/filterviewactiongroup/children/addtocontactsync/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..3ba5646790e532ee17f5d19d6fd57fbaece4a4d1
--- /dev/null
+++ b/entity/Person_entity/entityfields/filterviewactiongroup/children/addtocontactsync/onActionProcess.js
@@ -0,0 +1,4 @@
+import("EwsClientSync_lib");
+import("system.vars");
+
+EwsClientSyncUtils.openEwsSyncAddContactView(vars.get("$sys.selection"), vars.get("$sys.filter"), "ADD");
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/filterviewactiongroup/children/cancelobservation/onActionProcess.js b/entity/Person_entity/entityfields/filterviewactiongroup/children/cancelobservation/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..35102b677cbb52d1d4a9723a42cceaef3fd5ea03
--- /dev/null
+++ b/entity/Person_entity/entityfields/filterviewactiongroup/children/cancelobservation/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.cancelAction();
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/filterviewactiongroup/children/cancelobservation/stateProcess.js b/entity/Person_entity/entityfields/filterviewactiongroup/children/cancelobservation/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a0350f5edebe397b96a84766e7cdb8d99f77ee5
--- /dev/null
+++ b/entity/Person_entity/entityfields/filterviewactiongroup/children/cancelobservation/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/filterviewactiongroup/children/cancelobservation/titleProcess.js b/entity/Person_entity/entityfields/filterviewactiongroup/children/cancelobservation/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..87553a373a055879a524774695e4c18bcab617e9
--- /dev/null
+++ b/entity/Person_entity/entityfields/filterviewactiongroup/children/cancelobservation/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("Observation_lib");
+
+result.string(Observation.cancelActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/filterviewactiongroup/children/observe/onActionProcess.js b/entity/Person_entity/entityfields/filterviewactiongroup/children/observe/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..66cf7bc2991c142ee0753fec88e151d3dcf71141
--- /dev/null
+++ b/entity/Person_entity/entityfields/filterviewactiongroup/children/observe/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.insertAction();
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/filterviewactiongroup/children/observe/stateProcess.js b/entity/Person_entity/entityfields/filterviewactiongroup/children/observe/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..461276ea5e1e98e967047207ac6d654225a1b1c6
--- /dev/null
+++ b/entity/Person_entity/entityfields/filterviewactiongroup/children/observe/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (!Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/filterviewactiongroup/children/observe/titleProcess.js b/entity/Person_entity/entityfields/filterviewactiongroup/children/observe/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..abdfbd3d7c4aff7beba9ff22cbb39abc8d195a30
--- /dev/null
+++ b/entity/Person_entity/entityfields/filterviewactiongroup/children/observe/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Observation_lib");
+import("system.vars");
+
+result.string(Observation.observeActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/filterviewactiongroup/children/removefromcontactsync/onActionProcess.js b/entity/Person_entity/entityfields/filterviewactiongroup/children/removefromcontactsync/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..1c6e00c85cdc5ec2423caf9c9f046f3fb7305168
--- /dev/null
+++ b/entity/Person_entity/entityfields/filterviewactiongroup/children/removefromcontactsync/onActionProcess.js
@@ -0,0 +1,4 @@
+import("EwsClientSync_lib");
+import("system.vars");
+
+EwsClientSyncUtils.openEwsSyncAddContactView(vars.get("$sys.selection"), vars.get("$sys.filter"), "REMOVE");
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/newvisitplanentry/onActionProcess.js b/entity/Person_entity/entityfields/newvisitplanentry/onActionProcess.js
index f32b45bbbf4dcad4715cdee536fa1326f7bb3ae3..3c74f21974a25e4f2437b5721c8cc56fe1a93548 100644
--- a/entity/Person_entity/entityfields/newvisitplanentry/onActionProcess.js
+++ b/entity/Person_entity/entityfields/newvisitplanentry/onActionProcess.js
@@ -5,5 +5,6 @@ var params = {};
 
 params["NoVisitPlanEmployeeWeek_param"] = true;
 params["ContactId_param"] = vars.get("$field.CONTACTID");
+params["OrganisationId_param"] = vars.get("$field.CONTACTID");
 
 neon.openContext("VisitPlanEntry", "VisitPlanEntryEdit_view", null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/newvisitrecommendation/onActionProcess.js b/entity/Person_entity/entityfields/newvisitrecommendation/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..20eba0e1aca21c0349ba3eb04313ac6985330162
--- /dev/null
+++ b/entity/Person_entity/entityfields/newvisitrecommendation/onActionProcess.js
@@ -0,0 +1,15 @@
+import("system.logging");
+import("Sql_lib");
+import("system.neon");
+import("system.vars");
+
+var personContactId = vars.getString("$field.CONTACTID");
+var params = {};
+
+var orgId = newSelect("CONTACT.ORGANISATION_ID").from("CONTACT").where("CONTACT.CONTACTID", personContactId).cell();
+var orgContactId = newSelect("CONTACT.CONTACTID").from("CONTACT").where("CONTACT.ORGANISATION_ID", orgId).and("CONTACT.PERSON_ID is null").cell();
+
+params["ContactIdPerson_param"] = personContactId;
+params["ContactId_param"] = orgContactId;
+
+neon.openContext("VisitRecommendation", null, null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/newvisitrecommendation/stateProcess.js b/entity/Person_entity/entityfields/newvisitrecommendation/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..aefbc6e8f76f99c4281890f3461553c49562d5b9
--- /dev/null
+++ b/entity/Person_entity/entityfields/newvisitrecommendation/stateProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+import("KeywordRegistry_basic");
+
+if (vars.get("$field.STATUS") == $KeywordRegistry.contactStatus$inactive())
+    result.string(neon.COMPONENTSTATE_DISABLED);
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/openadminview/onActionProcess.js b/entity/Person_entity/entityfields/openadminview/onActionProcess.js
index b56b52a65ff35e86346bb7966b3cca71e3bed711..8d0d6178c38495c99041a7f7bbc5859000549aae 100644
--- a/entity/Person_entity/entityfields/openadminview/onActionProcess.js
+++ b/entity/Person_entity/entityfields/openadminview/onActionProcess.js
@@ -5,9 +5,9 @@ AdminViewUtils.open("CONTACTID", [
     ["PERSON_ID", vars.get("$field.PERSON_ID")],
     ["ORGANISATION_ID", vars.get("$field.ORGANISATION_ID")],
     ["ADDRESS_ID", vars.get("$field.ADDRESS_ID")],
-    ["DATE_NEW", vars.get("$field.DATE_NEW")],
-    ["DATE_EDIT", vars.get("$field.DATE_EDIT")],
-    ["DATE_NEW_CONTACT", vars.get("$field.DATE_NEW_CONTACT")],
+    ["DATE_NEW", vars.get("$field.DATE_NEW"), "DATE"],
+    ["DATE_EDIT", vars.get("$field.DATE_EDIT"), "DATE"],
+    ["DATE_NEW_CONTACT", vars.get("$field.DATE_NEW_CONTACT"), "DATE"],
     ["USER_NEW", vars.get("$field.USER_NEW")],
     ["USER_EDIT", vars.get("$field.USER_EDIT")],
     ["USER_NEW_CONTACT", vars.get("$field.USER_NEW_CONTACT")],
diff --git a/entity/Person_entity/entityfields/organisation_contactid/stateProcess.js b/entity/Person_entity/entityfields/organisation_contactid/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7d8abdebb5fe1f2471641ff52029303f559bc3e1
--- /dev/null
+++ b/entity/Person_entity/entityfields/organisation_contactid/stateProcess.js
@@ -0,0 +1,23 @@
+import("Context_lib");
+import("system.vars");
+import("system.result");
+import("Entity_lib");
+import("system.neon");
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT) {
+    
+var currentContext = ContextUtils.getCurrentContextId();
+var contactId = vars.get("$field.CONTACTID");
+    
+var linkedObject = new HasLinkedObjectTester()
+.andNoEntityRows("Activity_entity", "LinkedObjects", {ObjectId_param : currentContext, RowId_param : contactId})
+.andNoEntityRows("360Degree_entity", "PersonObjects", {ObjectRowId_param : contactId , ObjectStatus_param : vars.get("$field.STATUS")})
+.andNoEntityRows("ObjectTree_entity", "TreeProvider", {ObjectIds_param : [vars.get("$field.CONTACTID"), vars.get("$field.PERSON_ID")], ObjectTypes_param : currentContext})
+//.andNoEntityRows("AttributeRelation_entity", "TreeProvider", {ObjectRowId_param : contactId, ObjectType_param : currentContext})
+//.andNoEntityRows("DistrictResponsible_entity", "OrganisationResponsibles", {OrgUid_param : vars.get("$field.ORGANISATION_CONTACTID")}) //District Responsible and Object Tree is default data record
+.andNoEntityRows("Document_entity", "Documents", {AssignmentRowId_param : contactId, AssignmentTable_param : "RELATION"})
+.validate()
+
+if(!linkedObject)
+    result.string(neon.COMPONENTSTATE_READONLY);
+}
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/persaddresses/children/showdsgvomessage_param/valueProcess.js b/entity/Person_entity/entityfields/persaddresses/children/showdsgvomessage_param/valueProcess.js
index fce9fde135bfde9221a9956f545862641098ff7c..c96eec50f67631c175c60d748ded5821644aea70 100644
--- a/entity/Person_entity/entityfields/persaddresses/children/showdsgvomessage_param/valueProcess.js
+++ b/entity/Person_entity/entityfields/persaddresses/children/showdsgvomessage_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.vars");
 import("system.neon");
 import("system.result");
 
-result.string(vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW);
\ No newline at end of file
+result.string(vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW && vars.get("$sys.recordstate") != neon.OPERATINGSTATE_EDIT);
\ No newline at end of file
diff --git a/entity/Person_entity/recordcontainers/db/filterextensions/favorites_filter/filterConditionProcess.js b/entity/Person_entity/recordcontainers/db/filterextensions/favorites_filter/filterConditionProcess.js
index 26e0adde33d17eab1378a9d8aa4cfee3eea401bb..0c4956dc698a76bdf4426e973ffeb5237ad7d641 100644
--- a/entity/Person_entity/recordcontainers/db/filterextensions/favorites_filter/filterConditionProcess.js
+++ b/entity/Person_entity/recordcontainers/db/filterextensions/favorites_filter/filterConditionProcess.js
@@ -1,9 +1,17 @@
+import("system.vars");
 import("Favorites_lib");
 import("system.result");
 import("Sql_lib");
 
-var favoFilterCond = newWhere();
-var rowIds = FavoritesUtil.getRowIdsOfFavoriteGroup();
+
+var operator = vars.get("$local.operator");
+var rawvalue = vars.get("$local.rawvalue");
+var objecttype = vars.get("$field.PERSON_OBJECTTYPE");
+var idcolumn = "PERSON.PERSONID";
+
+
+var rowIds = FavoritesUtil.getRowIdsOfFavorites(objecttype, operator, rawvalue);
+var preparedIds = [];
 
 for(i = 0; i < rowIds.length; i++)
 {        
@@ -13,7 +21,7 @@ for(i = 0; i < rowIds.length; i++)
         .arrayColumn();
 
     if(person_id.length > 0)
-        favoFilterCond.or("PERSON.PERSONID", person_id[0], SqlBuilder.EQUAL());
+        preparedIds.push(person_id[0]);
 }
 
-result.string(favoFilterCond.toString());
\ No newline at end of file
+result.string(FavoritesUtil.getFilterDisplayCondition(objecttype, operator, rawvalue, idcolumn, preparedIds));
diff --git a/entity/Person_entity/recordcontainers/db/filterextensions/supervisorassignment/filterConditionProcess.js b/entity/Person_entity/recordcontainers/db/filterextensions/supervisorassignment/filterConditionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9b9b11b65c2fe1c8206d87c6ccc85a9b8c9e7d04
--- /dev/null
+++ b/entity/Person_entity/recordcontainers/db/filterextensions/supervisorassignment/filterConditionProcess.js
@@ -0,0 +1,40 @@
+import("Employee_lib");
+import("KeywordRegistry_basic");
+import("Sql_lib");
+import("system.vars");
+import("system.result");
+
+var operator = vars.get("$local.operator");
+var rawvalue = vars.get("$local.rawvalue");
+var operator2 = vars.get("$local.operator2");
+var sqlCond = "";
+
+rawvalue = (rawvalue == "true");
+
+
+if(operator == "1" && rawvalue ||  operator == "2" && !rawvalue )
+    operator2 = SqlBuilder.IN();
+else if(operator == "1" && !rawvalue ||  operator == "2" && rawvalue)
+    operator2 = SqlBuilder.NOT_IN();
+else 
+    sqlCond = "1=1";
+
+
+
+if (sqlCond == "")
+    sqlCond = new SqlBuilder().where("CONTACT.CONTACTID", 
+            newSelect("pers.CONTACTID")
+            .from("DISTRICTCONTACT")
+            .join("CONTACT", "DISTRICTCONTACT.CONTACT_ID = org.CONTACTID", "org")
+            .join("CONTACT", "pers.ORGANISATION_ID = org.ORGANISATION_ID and pers.PERSON_ID is not null", "pers")
+            .where("DISTRICTCONTACT.ADVISER_CONTACT_ID", EmployeeUtils.getCurrentContactId())
+            .and(
+                newWhere(
+                    newWhere("current_date >= cast(DISTRICTCONTACT.VALID_FROM as DATE)")
+                    .and("current_date <= cast(DISTRICTCONTACT.VALID_UNTIL as DATE)"))
+                .or(newWhere("current_date >= cast(DISTRICTCONTACT.VALID_FROM as DATE)")
+                    .and("DISTRICTCONTACT.VALID_UNTIL is null")))
+            .and("DISTRICTCONTACT.STATUS", $KeywordRegistry.contactStatus$active()), operator2).toString();
+
+
+result.string(sqlCond);
\ No newline at end of file
diff --git a/entity/Person_entity/recordcontainers/db/filterextensions/supervisorassignment/filterValuesProcess.js b/entity/Person_entity/recordcontainers/db/filterextensions/supervisorassignment/filterValuesProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4462144da5638267f7c76cce0c779305ae80c089
--- /dev/null
+++ b/entity/Person_entity/recordcontainers/db/filterextensions/supervisorassignment/filterValuesProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.object([["true", translate.text("Yes")], ["false", translate.text("No")]]);
\ No newline at end of file
diff --git a/entity/Person_entity/recordcontainers/db/recordfieldmappings/birthday.value/expression.js b/entity/Person_entity/recordcontainers/db/recordfieldmappings/birthday.value/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..f85e341424a1558d5de59cd048fa408511e89812
--- /dev/null
+++ b/entity/Person_entity/recordcontainers/db/recordfieldmappings/birthday.value/expression.js
@@ -0,0 +1,11 @@
+import("system.result");
+import("Sql_lib");
+import("system.SQLTYPES");
+
+var maskingUtils = new SqlMaskingUtils();
+var year = new Date().getFullYear().toString();
+var month = maskingUtils.monthFromDate("PERSON.DATEOFBIRTH");
+var day = maskingUtils.dayFromDate("PERSON.DATEOFBIRTH");
+var dateSql = maskingUtils.makeDate(year, month, day);
+var timeSql = maskingUtils.cast(dateSql, SQLTYPES.TIMESTAMP);
+result.string("case when PERSON.DATEOFBIRTH is null then null else " + timeSql + " end");
diff --git a/entity/PrivatePerson_entity/PrivatePerson_entity.aod b/entity/PrivatePerson_entity/PrivatePerson_entity.aod
index e3cc784be65ee3ec69e37b8921bdc7fa2076e089..67d65775c2f3ffe527aa14ef30497695aa3f7316 100644
--- a/entity/PrivatePerson_entity/PrivatePerson_entity.aod
+++ b/entity/PrivatePerson_entity/PrivatePerson_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>PrivatePerson_entity</name>
+  <title>Private person</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/PrivatePerson_entity/documentation.adoc</documentation>
-  <title>Private person</title>
   <contentTitleProcess>%aditoprj%/entity/PrivatePerson_entity/contentTitleProcess.js</contentTitleProcess>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -84,18 +84,9 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/PrivatePerson_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/PrivatePerson_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>b2ae9c8c-c6de-46b7-ae10-e6823576f1ff</name>
-          <tableName>PERSON</tableName>
-          <primaryKey>PERSONID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>DATE_EDIT.value</name>
@@ -140,6 +131,15 @@
           <recordfield>PERSON.SALUTATION</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>b2ae9c8c-c6de-46b7-ae10-e6823576f1ff</name>
+          <tableName>PERSON</tableName>
+          <primaryKey>PERSONID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/Prod2prod_entity/Prod2prod_entity.aod b/entity/Prod2prod_entity/Prod2prod_entity.aod
index 824ac6d55edafc5cacd1bee2233dc435a517f290..117f8e1f51570fe677d30a076459a60d7491a84d 100644
--- a/entity/Prod2prod_entity/Prod2prod_entity.aod
+++ b/entity/Prod2prod_entity/Prod2prod_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Prod2prod_entity</name>
+  <title>Parts list</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Prod2prod_entity/documentation.adoc</documentation>
-  <title>Parts list</title>
   <titlePlural>Parts list</titlePlural>
   <recordContainer>jdito</recordContainer>
   <entityFields>
@@ -20,7 +20,6 @@
       <documentation>%aditoprj%/entity/Prod2prod_entity/entityfields/optional/documentation.adoc</documentation>
       <title>Optional</title>
       <contentType>BOOLEAN</contentType>
-      <dropDownProcess>%aditoprj%/entity/Prod2prod_entity/entityfields/optional/dropDownProcess.js</dropDownProcess>
       <valueProcess>%aditoprj%/entity/Prod2prod_entity/entityfields/optional/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
@@ -48,7 +47,6 @@
       <documentation>%aditoprj%/entity/Prod2prod_entity/entityfields/takeprice/documentation.adoc</documentation>
       <title>Take price</title>
       <contentType>BOOLEAN</contentType>
-      <dropDownProcess>%aditoprj%/entity/Prod2prod_entity/entityfields/takeprice/dropDownProcess.js</dropDownProcess>
       <valueProcess>%aditoprj%/entity/Prod2prod_entity/entityfields/takeprice/valueProcess.js</valueProcess>
     </entityField>
     <entityParameter>
diff --git a/entity/Prod2prod_entity/entityfields/optional/dropDownProcess.js b/entity/Prod2prod_entity/entityfields/optional/dropDownProcess.js
deleted file mode 100644
index 1324968dfff10e56efe6268f8520572d56f21d1b..0000000000000000000000000000000000000000
--- a/entity/Prod2prod_entity/entityfields/optional/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-     ["1", translate.text("Yes")]
-    ,["0", translate.text("No")]
-]);
\ No newline at end of file
diff --git a/entity/Prod2prod_entity/entityfields/takeprice/dropDownProcess.js b/entity/Prod2prod_entity/entityfields/takeprice/dropDownProcess.js
deleted file mode 100644
index 1324968dfff10e56efe6268f8520572d56f21d1b..0000000000000000000000000000000000000000
--- a/entity/Prod2prod_entity/entityfields/takeprice/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-     ["1", translate.text("Yes")]
-    ,["0", translate.text("No")]
-]);
\ No newline at end of file
diff --git a/entity/Product_entity/Product_entity.aod b/entity/Product_entity/Product_entity.aod
index d19bf320a1689a1016dd7def5caccb9214d3d3be..745495cdc92b5f0b239f8e781ba54e1ea711fb2c 100644
--- a/entity/Product_entity/Product_entity.aod
+++ b/entity/Product_entity/Product_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Product_entity</name>
+  <title>Product</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Product_entity/documentation.adoc</documentation>
-  <title>Product</title>
   <siblings>
     <element>Productprice_entity</element>
   </siblings>
@@ -17,10 +17,31 @@
   <titlePlural>Products</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
+    <entityActionGroup>
+      <name>observeActionGroup</name>
+      <children>
+        <entityActionField>
+          <name>observe</name>
+          <title>Observe</title>
+          <onActionProcess>%aditoprj%/entity/Product_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js</onActionProcess>
+          <isObjectAction v="true" />
+          <iconId>VAADIN:EYE</iconId>
+          <stateProcess>%aditoprj%/entity/Product_entity/entityfields/observeactiongroup/children/observe/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Product_entity/entityfields/observeactiongroup/children/observe/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>cancelObservation</name>
+          <onActionProcess>%aditoprj%/entity/Product_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:EYE_SLASH</iconId>
+          <stateProcess>%aditoprj%/entity/Product_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Product_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
     <entityField>
       <name>ADVERTISING</name>
       <title>Advertising material</title>
-      <contentType>BOOLEAN</contentType>
+      <contentType>TEXT</contentType>
       <dropDownProcess>%aditoprj%/entity/Product_entity/entityfields/advertising/dropDownProcess.js</dropDownProcess>
       <valueProcess>%aditoprj%/entity/Product_entity/entityfields/advertising/valueProcess.js</valueProcess>
     </entityField>
@@ -61,7 +82,6 @@
       <title>Active</title>
       <contentType>BOOLEAN</contentType>
       <groupable v="true" />
-      <dropDownProcess>%aditoprj%/entity/Product_entity/entityfields/status/dropDownProcess.js</dropDownProcess>
       <valueProcess>%aditoprj%/entity/Product_entity/entityfields/status/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
@@ -489,40 +509,57 @@
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityConsumer>
+      <name>KnowledgeManagements</name>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Product_entity/entityfields/knowledgemanagements/children/objectrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Product_entity/entityfields/knowledgemanagements/children/objecttype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KnowledgeManagement_entity</entityName>
+        <fieldName>Provider</fieldName>
+      </dependency>
+    </entityConsumer>
     <entityActionField>
-      <name>addToOrder</name>
-      <title>Add to order</title>
-      <onActionProcess>%aditoprj%/entity/Product_entity/entityfields/addtoorder/onActionProcess.js</onActionProcess>
-      <isObjectAction v="false" />
-      <iconId>VAADIN:FILE_TEXT_O</iconId>
-      <state>INVISIBLE</state>
-      <stateProcess>%aditoprj%/entity/Product_entity/entityfields/addtoorder/stateProcess.js</stateProcess>
+        <name>addToOrder</name>
+        <title>Add to order</title>
+        <onActionProcess>%aditoprj%/entity/Product_entity/entityfields/addtoorder/onActionProcess.js</onActionProcess>
+        <isObjectAction v="false" />
+        <iconId>VAADIN:FILE_TEXT_O</iconId>
+        <state>INVISIBLE</state>
+        <stateProcess>%aditoprj%/entity/Product_entity/entityfields/addtoorder/stateProcess.js</stateProcess>
     </entityActionField>
     <entityActionField>
-      <name>addToOffer</name>
-      <title>Add to offer</title>
-      <onActionProcess>%aditoprj%/entity/Product_entity/entityfields/addtooffer/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CART</iconId>
-      <state>INVISIBLE</state>
-      <stateProcess>%aditoprj%/entity/Product_entity/entityfields/addtooffer/stateProcess.js</stateProcess>
+        <name>addToOffer</name>
+        <title>Add to offer</title>
+        <onActionProcess>%aditoprj%/entity/Product_entity/entityfields/addtooffer/onActionProcess.js</onActionProcess>
+        <iconId>VAADIN:CART</iconId>
+        <state>INVISIBLE</state>
+        <stateProcess>%aditoprj%/entity/Product_entity/entityfields/addtooffer/stateProcess.js</stateProcess>
     </entityActionField>
     <entityParameter>
-      <name>ShownInOfferMainView_param</name>
-      <expose v="true" />
+        <name>ShownInOfferMainView_param</name>
+        <expose v="true" />
     </entityParameter>
     <entityParameter>
-      <name>ShownInOrderMainView_param</name>
-      <expose v="true" />
+        <name>ShownInOrderMainView_param</name>
+        <expose v="true" />
     </entityParameter>
     <entityParameter>
-      <name>OrderOfferInformations_param</name>
-      <expose v="true" />
+        <name>OrderOfferInformations_param</name>
+        <expose v="true" />
     </entityParameter>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <maximumDbRows v="0" />
       <fromClauseProcess>%aditoprj%/entity/Product_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/Product_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
@@ -530,29 +567,7 @@
       <onDBInsert>%aditoprj%/entity/Product_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/Product_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/Product_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>0c8977f6-8d3d-4377-adb4-3ddde463ab1a</name>
-          <tableName>PRODUCT</tableName>
-          <primaryKey>PRODUCTID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>6d77303b-6d0f-4636-b230-bb498470eec7</name>
-          <tableName>CONTACT</tableName>
-          <primaryKey>CONTACTID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>a4cc4ee2-e913-4c1a-bfe8-bdd83ccb3b5e</name>
-          <tableName>ORGANISATION</tableName>
-          <primaryKey>ORGANISATIONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>ADVERTISING.value</name>
@@ -648,6 +663,29 @@
           <aggregateType>COUNT</aggregateType>
         </aggregateFieldDbMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>0c8977f6-8d3d-4377-adb4-3ddde463ab1a</name>
+          <tableName>PRODUCT</tableName>
+          <primaryKey>PRODUCTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>6d77303b-6d0f-4636-b230-bb498470eec7</name>
+          <tableName>CONTACT</tableName>
+          <primaryKey>CONTACTID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>a4cc4ee2-e913-4c1a-bfe8-bdd83ccb3b5e</name>
+          <tableName>ORGANISATION</tableName>
+          <primaryKey>ORGANISATIONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
       <filterExtensions>
         <filterExtensionSet>
           <name>Attribute_filter</name>
diff --git a/entity/Product_entity/entityfields/knowledgemanagements/children/objectrowid_param/valueProcess.js b/entity/Product_entity/entityfields/knowledgemanagements/children/objectrowid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..24f19f37786781bff6661183f3fcd8ae8d1efb45
--- /dev/null
+++ b/entity/Product_entity/entityfields/knowledgemanagements/children/objectrowid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.PRODUCTID"));
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/projecttypeattribute/children/objecttype_param/valueProcess.js b/entity/Product_entity/entityfields/knowledgemanagements/children/objecttype_param/valueProcess.js
similarity index 100%
rename from entity/Salesproject_entity/entityfields/projecttypeattribute/children/objecttype_param/valueProcess.js
rename to entity/Product_entity/entityfields/knowledgemanagements/children/objecttype_param/valueProcess.js
diff --git a/entity/Product_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js b/entity/Product_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..35102b677cbb52d1d4a9723a42cceaef3fd5ea03
--- /dev/null
+++ b/entity/Product_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.cancelAction();
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js b/entity/Product_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a0350f5edebe397b96a84766e7cdb8d99f77ee5
--- /dev/null
+++ b/entity/Product_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js b/entity/Product_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..87553a373a055879a524774695e4c18bcab617e9
--- /dev/null
+++ b/entity/Product_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("Observation_lib");
+
+result.string(Observation.cancelActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js b/entity/Product_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..66cf7bc2991c142ee0753fec88e151d3dcf71141
--- /dev/null
+++ b/entity/Product_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.insertAction();
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/observeactiongroup/children/observe/stateProcess.js b/entity/Product_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..461276ea5e1e98e967047207ac6d654225a1b1c6
--- /dev/null
+++ b/entity/Product_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (!Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/observeactiongroup/children/observe/titleProcess.js b/entity/Product_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..abdfbd3d7c4aff7beba9ff22cbb39abc8d195a30
--- /dev/null
+++ b/entity/Product_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Observation_lib");
+import("system.vars");
+
+result.string(Observation.observeActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/openadminview/onActionProcess.js b/entity/Product_entity/entityfields/openadminview/onActionProcess.js
index f3bc924625a437b26dbcb3a019d95a4535c99637..7506bf94163c4b2c8e915acc21932da4ee548889 100644
--- a/entity/Product_entity/entityfields/openadminview/onActionProcess.js
+++ b/entity/Product_entity/entityfields/openadminview/onActionProcess.js
@@ -3,8 +3,8 @@ import("Context_lib");
 
 AdminViewUtils.open("PRODUCTID", [
     ["CONTACT_ID", vars.get("$field.CONTACT_ID")],
-    ["DATE_NEW", vars.get("$field.DATE_NEW")],
-    ["DATE_EDIT", vars.get("$field.DATE_EDIT")],
-    ["USER_NEW", vars.get("$field.USER_NEW")],
-    ["USER_EDIT", vars.get("$field.USER_EDIT")]
+    ["DATE_NEW", vars.get("$field.DATE_NEW"), "DATE"],
+    ["DATE_EDIT", vars.get("$field.DATE_EDIT"), "DATE"],
+    ["USER_NEW", vars.get("$field.USER_NEW"), "DATE"],
+    ["USER_EDIT", vars.get("$field.USER_EDIT"), "DATE"]
 ]);
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/status/dropDownProcess.js b/entity/Product_entity/entityfields/status/dropDownProcess.js
deleted file mode 100644
index 1324968dfff10e56efe6268f8520572d56f21d1b..0000000000000000000000000000000000000000
--- a/entity/Product_entity/entityfields/status/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-     ["1", translate.text("Yes")]
-    ,["0", translate.text("No")]
-]);
\ No newline at end of file
diff --git a/entity/Product_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js b/entity/Product_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
index 2db1e9e36cfa068a562f0c1c253c874eb648f33a..d06b0214dc625cee8ca5f435880df2f5deae3b5c 100644
--- a/entity/Product_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
+++ b/entity/Product_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
@@ -1,11 +1,12 @@
+import("system.vars");
 import("Favorites_lib");
 import("system.result");
 import("Sql_lib");
 
-var favoFilterCond = newWhere();
-var rowIds = FavoritesUtil.getRowIdsOfFavoriteGroup();
+var operator = vars.get("$local.operator");
+var rawvalue = vars.get("$local.rawvalue");
 
-for(i = 0; i < rowIds.length; i++)
-    favoFilterCond.or("PRODUCT.PRODUCTID", rowIds[i], SqlBuilder.EQUAL());
+var objecttype = vars.get("$field.PRODUCT_OBJECTTYPE");
+var idcolumn = "PRODUCT.PRODUCTID";
 
-result.string(favoFilterCond.toString());
\ No newline at end of file
+result.string(FavoritesUtil.getFilterDisplayCondition(objecttype, operator, rawvalue, idcolumn));
diff --git a/entity/Productprice_entity/Productprice_entity.aod b/entity/Productprice_entity/Productprice_entity.aod
index 61bf5454ab35395bca8b5fb61db8ee6d5996cfba..32ad155d4473c1621475321e718f8af1d08e71be 100644
--- a/entity/Productprice_entity/Productprice_entity.aod
+++ b/entity/Productprice_entity/Productprice_entity.aod
@@ -1,10 +1,10 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Productprice_entity</name>
+  <title>Prices</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Productprice_entity/documentation.adoc</documentation>
   <icon>VAADIN:MONEY</icon>
-  <title>Prices</title>
   <siblings>
     <element>Product_entity</element>
   </siblings>
@@ -25,6 +25,7 @@
       <name>CURRENCY</name>
       <title>Currency</title>
       <consumer>KeywordCurrencies</consumer>
+      <groupable v="true" />
       <mandatory v="true" />
       <valueProcess>%aditoprj%/entity/Productprice_entity/entityfields/currency/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/Productprice_entity/entityfields/currency/displayValueProcess.js</displayValueProcess>
@@ -58,6 +59,7 @@
       <name>PRODUCT_ID</name>
       <title>Product</title>
       <consumer>Products</consumer>
+      <groupable v="true" />
       <linkedContext>Product</linkedContext>
       <mandatory v="true" />
       <stateProcess>%aditoprj%/entity/Productprice_entity/entityfields/product_id/stateProcess.js</stateProcess>
@@ -93,6 +95,7 @@
       <contentType>NUMBER</contentType>
       <outputFormat>#,##0.00</outputFormat>
       <inputFormat>#,##0.00</inputFormat>
+      <groupable v="true" />
       <mandatory v="true" />
       <stateProcess>%aditoprj%/entity/Productprice_entity/entityfields/vat/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/Productprice_entity/entityfields/vat/valueProcess.js</valueProcess>
@@ -102,7 +105,9 @@
       <name>PRICELIST</name>
       <documentation>%aditoprj%/entity/Productprice_entity/entityfields/pricelist/documentation.adoc</documentation>
       <title>Price list</title>
+      <colorProcess>%aditoprj%/entity/Productprice_entity/entityfields/pricelist/colorProcess.js</colorProcess>
       <consumer>KeywordPricelists</consumer>
+      <groupable v="true" />
       <state>AUTO</state>
       <stateProcess>%aditoprj%/entity/Productprice_entity/entityfields/pricelist/stateProcess.js</stateProcess>
       <titleProcess>%aditoprj%/entity/Productprice_entity/entityfields/pricelist/titleProcess.js</titleProcess>
@@ -242,19 +247,10 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <hasDependentRecords v="true" />
       <conditionProcess>%aditoprj%/entity/Productprice_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/Productprice_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>85fd1bcf-499f-4708-ad8e-18f5a0f5337d</name>
-          <tableName>PRODUCTPRICE</tableName>
-          <primaryKey>PRODUCTPRICEID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>BUYSELL.value</name>
@@ -324,15 +320,20 @@
           <name>CURRENCY.displayValue</name>
           <expression>%aditoprj%/entity/Productprice_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PRODUCT_ID.displayValue</name>
-          <expression>%aditoprj%/entity/Productprice_entity/recordcontainers/db/recordfieldmappings/product_id.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>FROMQUANTITY.displayValue</name>
           <expression>%aditoprj%/entity/Productprice_entity/recordcontainers/db/recordfieldmappings/fromquantity.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>85fd1bcf-499f-4708-ad8e-18f5a0f5337d</name>
+          <tableName>PRODUCTPRICE</tableName>
+          <primaryKey>PRODUCTPRICEID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
       <filterExtensions>
         <filterExtension>
           <name>FavoriteFilter</name>
diff --git a/entity/Productprice_entity/entityfields/image/valueProcess.js b/entity/Productprice_entity/entityfields/image/valueProcess.js
index 8ba121f73f08d59b6efda0fbaa02d9761e31b5b3..adbcde4fe369ba6683fcfb308ffbb6ae8c74639c 100644
--- a/entity/Productprice_entity/entityfields/image/valueProcess.js
+++ b/entity/Productprice_entity/entityfields/image/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("system.result");
 
-result.string("TEXT:" + vars.getString("$field.PRICELIST.displayValue"));
\ No newline at end of file
+result.string("TEXT:" + vars.getString("$field.PRODUCT_ID.displayValue"));
\ No newline at end of file
diff --git a/entity/Productprice_entity/entityfields/pricelist/colorProcess.js b/entity/Productprice_entity/entityfields/pricelist/colorProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..df4926b10119acd76184d30eb15a8ea1dc63d4d3
--- /dev/null
+++ b/entity/Productprice_entity/entityfields/pricelist/colorProcess.js
@@ -0,0 +1,25 @@
+import("system.result");
+import("KeywordRegistry_basic");
+import("system.vars");
+import("system.neon");
+
+let color; 
+
+switch (vars.get("$field.PRICELIST"))
+{
+    case $KeywordRegistry.productPricelist$keyList():
+        color = neon.PRIORITY_LOW_COLOR;
+        break;
+    case $KeywordRegistry.productPricelist$specialList():
+        color = neon.PRIORITY_HIGH_COLOR;
+        break;
+    case $KeywordRegistry.productPricelist$serviceList():
+        color = neon.PRIORITY_NONE_COLOR
+        break;
+    case $KeywordRegistry.productPricelist$standardList():
+    default:
+        color = neon.BRAND_COLOR;
+        break;
+}
+
+result.string(color);
\ No newline at end of file
diff --git a/entity/Productprice_entity/recordcontainers/db/filterextensions/favoritefilter/filterConditionProcess.js b/entity/Productprice_entity/recordcontainers/db/filterextensions/favoritefilter/filterConditionProcess.js
index c657ebe1ac71578a6aa535aa58f3c953ae76ceeb..2b8c460855ed332f311597ff9151edecd5835c4e 100644
--- a/entity/Productprice_entity/recordcontainers/db/filterextensions/favoritefilter/filterConditionProcess.js
+++ b/entity/Productprice_entity/recordcontainers/db/filterextensions/favoritefilter/filterConditionProcess.js
@@ -1,11 +1,12 @@
+import("system.vars");
 import("Favorites_lib");
 import("system.result");
 import("Sql_lib");
 
-var favoFilterCond = newWhere();
-var rowIds = FavoritesUtil.getRowIdsOfFavoriteGroup();
+var operator = vars.get("$local.operator");
+var rawvalue = vars.get("$local.rawvalue");
 
-for(i = 0; i < rowIds.length; i++)
-    favoFilterCond.or("PRODUCTPRICE.PRODUCTPRICEID", rowIds[i], SqlBuilder.EQUAL());
+var objecttype = vars.get("$field.PRODUCTPRICE_OBJECTTYPE");
+var idcolumn = "PRODUCTPRICE.PRODUCTPRICEID";
 
-result.string(favoFilterCond.toString());
\ No newline at end of file
+result.string(FavoritesUtil.getFilterDisplayCondition(objecttype, operator, rawvalue, idcolumn));
diff --git a/entity/Productprice_entity/recordcontainers/db/recordfieldmappings/product_id.displayvalue/expression.js b/entity/Productprice_entity/recordcontainers/db/recordfieldmappings/product_id.displayvalue/expression.js
deleted file mode 100644
index d43ca1490d74c4fc1baa5dd375e5c77f6a2b61fd..0000000000000000000000000000000000000000
--- a/entity/Productprice_entity/recordcontainers/db/recordfieldmappings/product_id.displayvalue/expression.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import("system.result");
-
-result.string("select PRODUCT.PRODUCTNAME from PRODUCT where PRODUCT.PRODUCTID = PRODUCTPRICE.PRODUCT_ID");
\ No newline at end of file
diff --git a/entity/QuickEntry_entity/QuickEntry_entity.aod b/entity/QuickEntry_entity/QuickEntry_entity.aod
index fe83641faf97bfc9c0ccc2d595d9105d5ff1b3d2..9ce66331b3242cbbba9001036cd3e65dc920d156 100644
--- a/entity/QuickEntry_entity/QuickEntry_entity.aod
+++ b/entity/QuickEntry_entity/QuickEntry_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>QuickEntry_entity</name>
+  <title>Quick entry</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/QuickEntry_entity/documentation.adoc</documentation>
-  <title>Quick entry</title>
   <onValidation>%aditoprj%/entity/QuickEntry_entity/onValidation.js</onValidation>
   <iconId>VAADIN:BOLT</iconId>
   <recordContainer>jdito</recordContainer>
diff --git a/entity/QuickEntry_entity/entityfields/activities/children/insertlinks_param/valueProcess.js b/entity/QuickEntry_entity/entityfields/activities/children/insertlinks_param/valueProcess.js
index 5d1e594fc0428daa3f2703390270052ffe3d6c77..3f6e93c8d5f4cc6891f50a7cad1de4c637738234 100644
--- a/entity/QuickEntry_entity/entityfields/activities/children/insertlinks_param/valueProcess.js
+++ b/entity/QuickEntry_entity/entityfields/activities/children/insertlinks_param/valueProcess.js
@@ -4,6 +4,10 @@ import("system.result");
 var links = [
     ["Organisation", vars.get("$field.UID")]
 ];
+if(vars.get("$field.LASTNAME")) {
+    links.push(["Person", vars.get("$field.PERSON_CONTACT_ID")]);
+}
+
 //TODO: verify if only insertedRows are really relevant
 var contactLinks = vars.get("$field.Contacts.insertedRows").map(function (row)
 {
diff --git a/entity/QuickEntry_entity/entityfields/leadquickacquisition/onValueChange.js b/entity/QuickEntry_entity/entityfields/leadquickacquisition/onValueChange.js
index cda8298ccbbe68e0a66a3fb3ff8f40e08b08e467..b947b83417f285ad03738e8fd67ba59f1dd07162 100644
--- a/entity/QuickEntry_entity/entityfields/leadquickacquisition/onValueChange.js
+++ b/entity/QuickEntry_entity/entityfields/leadquickacquisition/onValueChange.js
@@ -43,10 +43,10 @@ if(vars.get("$local.value"))
             };
             
             var getRowsConfig = entities.createConfigForLoadingRows()
-                                            .entity("AddressValidation_entity")
-                                            .provider("FullAddressValidation")
-                                            .fields(["CITY", "ZIP", "STREET"])
-                                            .addParameter("CurrentValue_param", response.address);
+            .entity("AddressValidation_entity")
+            .provider("FullAddressValidation")
+            .fields(["CITY", "ZIP", "STREET"])
+            .addParameter("CurrentValue_param", response.address);
                 
             var rows = entities.getRows(getRowsConfig);
             
@@ -103,7 +103,7 @@ if(vars.get("$local.value"))
         {
             neon.addRecord("Communications", {
                 "MEDIUM_ID" : $KeywordRegistry.communicationMedium$linkedin(),
-                "ADDR" : response.linkedInUrl
+                "ADDR" : _formatLinkaddress(response.linkedInUrl)
             });
         }
     
@@ -111,7 +111,7 @@ if(vars.get("$local.value"))
         {
             neon.addRecord("Communications", {
                 "MEDIUM_ID" : $KeywordRegistry.communicationMedium$internet(),
-                "ADDR" : response.website
+                "ADDR" : _formatLinkaddress(response.website)
             });
         }
     
@@ -121,4 +121,19 @@ if(vars.get("$local.value"))
         if(response.lastName) neon.setFieldValue("$field.LASTNAME", response.lastName);
     }
 
+}
+
+/**
+ * Adds "https://" if the address begins not with it or with "http://".
+ * 
+ * @param {String} [pAddr] the link
+ * @return {String}
+ */
+function _formatLinkaddress (pAddr) 
+{
+    if (!pAddr.startsWith("https://") && !pAddr.startsWith("http://"))
+    {
+        return ("https://" + pAddr).toString();
+    }
+    return pAddr.toString();
 }
\ No newline at end of file
diff --git a/entity/RoleChildren_entity/RoleChildren_entity.aod b/entity/RoleChildren_entity/RoleChildren_entity.aod
index 89c17291b48f25526ea7a47de2b33a46a6a09bed..353284819b7f5f9730cfcb8e16e6d7748ccc204c 100644
--- a/entity/RoleChildren_entity/RoleChildren_entity.aod
+++ b/entity/RoleChildren_entity/RoleChildren_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>RoleChildren_entity</name>
+  <title>Child Role</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/RoleChildren_entity/documentation.adoc</documentation>
-  <title>Child Role</title>
   <titlePlural>Child Roles</titlePlural>
   <recordContainer>jDito</recordContainer>
   <entityFields>
diff --git a/entity/RoleParent_entity/RoleParent_entity.aod b/entity/RoleParent_entity/RoleParent_entity.aod
index a48ffa5d0dcbad43da264927c486add10341c1fa..86b569290664d1f362b0a808d39fe4a669ce07e5 100644
--- a/entity/RoleParent_entity/RoleParent_entity.aod
+++ b/entity/RoleParent_entity/RoleParent_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>RoleParent_entity</name>
+  <title>Parent Role</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/RoleParent_entity/documentation.adoc</documentation>
-  <title>Parent Role</title>
   <titlePlural>Parent Roles</titlePlural>
   <recordContainer>jDito</recordContainer>
   <entityFields>
diff --git a/entity/Role_entity/Role_entity.aod b/entity/Role_entity/Role_entity.aod
index b2d23b5d87cd6cc41b29d3cbee11c913218217c3..55e062d3da7d3020b2666d9341f8ff0321b90e05 100644
--- a/entity/Role_entity/Role_entity.aod
+++ b/entity/Role_entity/Role_entity.aod
@@ -1,10 +1,10 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Role_entity</name>
+  <title>Roles</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Role_entity/documentation.adoc</documentation>
   <icon>VAADIN:USER_CHECK</icon>
-  <title>Roles</title>
   <grantUpdateProcess>%aditoprj%/entity/Role_entity/grantUpdateProcess.js</grantUpdateProcess>
   <grantDeleteProcess>%aditoprj%/entity/Role_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/Role_entity/contentTitleProcess.js</contentTitleProcess>
@@ -41,18 +41,6 @@
     </entityField>
     <entityConsumer>
       <name>TheirPermissions</name>
-      <children>
-        <entityParameter>
-          <name>RoleName_param</name>
-          <valueProcess>%aditoprj%/entity/Role_entity/entityfields/theirpermissions/children/roletitle_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-      <children>
-        <entityParameter>
-          <name>RoleTitle_param</name>
-          <valueProcess>%aditoprj%/entity/Role_entity/entityfields/theirpermissions/children/roletitle_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
       <dependency>
         <name>dependency</name>
         <entityName>PermissionDetail_entity</entityName>
@@ -61,12 +49,6 @@
     </entityConsumer>
     <entityConsumer>
       <name>PermissionOverviews</name>
-      <children>
-        <entityParameter>
-          <name>RoleName_param</name>
-          <valueProcess>%aditoprj%/entity/Role_entity/entityfields/permissionoverviews/children/roletitle_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
       <dependency>
         <name>dependency</name>
         <entityName>PermissionOverview_entity</entityName>
@@ -76,12 +58,6 @@
     <entityProvider>
       <name>Roles</name>
       <recordContainer>jDito</recordContainer>
-      <children>
-        <entityParameter>
-          <name>ExcludeRoles_param</name>
-          <expose v="false" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>64d800d0-4db5-4b95-ab6a-9197b83cc09c</name>
@@ -102,6 +78,12 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>ExcludeRoles_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityParameter>
       <name>ExcludeRoles_param</name>
@@ -129,7 +111,6 @@
       <name>IS_ASSIGNABLE</name>
       <title>is assignable</title>
       <contentType>BOOLEAN</contentType>
-      <dropDownProcess>%aditoprj%/entity/Role_entity/entityfields/is_assignable/dropDownProcess.js</dropDownProcess>
       <valueProcess>%aditoprj%/entity/Role_entity/entityfields/is_assignable/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
@@ -139,6 +120,11 @@
     <entityConsumer>
       <name>RoleChildrens</name>
       <onValidation>%aditoprj%/entity/Role_entity/entityfields/rolechildrens/onValidation.js</onValidation>
+      <dependency>
+        <name>dependency</name>
+        <entityName>RoleChildren_entity</entityName>
+        <fieldName>RoleChildrens</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>RoleId_param</name>
@@ -149,11 +135,6 @@
           <valueProcess>%aditoprj%/entity/Role_entity/entityfields/rolechildrens/children/roletype_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>RoleChildren_entity</entityName>
-        <fieldName>RoleChildrens</fieldName>
-      </dependency>
     </entityConsumer>
     <entityActionField>
       <name>deleteEverythingLinkedToRole</name>
@@ -164,17 +145,17 @@
     </entityActionField>
     <entityConsumer>
       <name>RoleParents</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>RoleParent_entity</entityName>
+        <fieldName>RoleParents</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>RoleId_param</name>
           <valueProcess>%aditoprj%/entity/Role_entity/entityfields/roleparents/children/roleid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>RoleParent_entity</entityName>
-        <fieldName>RoleParents</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>#PROVIDER_AGGREGATES</name>
diff --git a/entity/Role_entity/entityfields/is_assignable/dropDownProcess.js b/entity/Role_entity/entityfields/is_assignable/dropDownProcess.js
deleted file mode 100644
index 409b902f45aba4b1329dfc2be68b3852b980e8ea..0000000000000000000000000000000000000000
--- a/entity/Role_entity/entityfields/is_assignable/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-["1", translate.text("Yes")]
-,["0", translate.text("No")]
-]);
\ No newline at end of file
diff --git a/entity/SalesprojectAnalyses_entity/SalesprojectAnalyses_entity.aod b/entity/SalesprojectAnalyses_entity/SalesprojectAnalyses_entity.aod
index 3c35c7cf03086585c3973d2112236a060fc1d1c7..153d97d7307a0475640a7ed9cbb61dee68cdb2ba 100644
--- a/entity/SalesprojectAnalyses_entity/SalesprojectAnalyses_entity.aod
+++ b/entity/SalesprojectAnalyses_entity/SalesprojectAnalyses_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>SalesprojectAnalyses_entity</name>
+  <title>Sales Project Analyses</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/SalesprojectAnalyses_entity/documentation.adoc</documentation>
-  <title>Sales Project Analyses</title>
   <iconId>VAADIN:PIE_CHART</iconId>
   <recordContainer>jdito</recordContainer>
   <entityFields>
@@ -56,18 +56,22 @@
     <entityActionField>
       <name>openSalesprojects</name>
       <onActionProcess>%aditoprj%/entity/SalesprojectAnalyses_entity/entityfields/opensalesprojects/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:BOOK_DOLLAR</iconId>
     </entityActionField>
     <entityActionField>
       <name>sentOffers</name>
       <onActionProcess>%aditoprj%/entity/SalesprojectAnalyses_entity/entityfields/sentoffers/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CART</iconId>
     </entityActionField>
     <entityActionField>
       <name>openForecast</name>
       <onActionProcess>%aditoprj%/entity/SalesprojectAnalyses_entity/entityfields/openforecast/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:BAR_CHART_H</iconId>
     </entityActionField>
     <entityActionField>
       <name>openTurnover</name>
       <onActionProcess>%aditoprj%/entity/SalesprojectAnalyses_entity/entityfields/openturnover/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CHART</iconId>
     </entityActionField>
     <entityField>
       <name>MY_FORECAST</name>
diff --git a/entity/SalesprojectAnalyses_entity/recordcontainers/jdito/contentProcess.js b/entity/SalesprojectAnalyses_entity/recordcontainers/jdito/contentProcess.js
index eee423852dcd66baeefb18745cc79f82ad09109e..7905f1295088e933708ad63f22994da836438987 100644
--- a/entity/SalesprojectAnalyses_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/SalesprojectAnalyses_entity/recordcontainers/jdito/contentProcess.js
@@ -14,7 +14,7 @@ import("KeywordRegistry_basic");
 var phases = newSelect("KEYID, AB_KEYWORD_ENTRY.TITLE, count(PHASE), AB_KEYWORD_ENTRY.SORTING")
     .from("SALESPROJECT")
     .join("AB_KEYWORD_ENTRY", newWhere("KEYID = PHASE")
-        .and("AB_KEYWORD_ENTRY.CONTAINER", $KeywordRegistry.salesprojectPhase())
+        .and("AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID", KeywordUtils.getCategoryIdByName($KeywordRegistry.salesprojectPhase()))
         .and("SORTING != 7"))
     .groupBy("KEYID, AB_KEYWORD_ENTRY.TITLE, AB_KEYWORD_ENTRY.SORTING")
     .orderBy("SORTING")
diff --git a/entity/SalesprojectConversionRate_entity/SalesprojectConversionRate_entity.aod b/entity/SalesprojectConversionRate_entity/SalesprojectConversionRate_entity.aod
index 2432f8fbbf75729f20244a387f7868c528ab3265..834661f182666bfb72d744ba2a9e67ae4185900f 100644
--- a/entity/SalesprojectConversionRate_entity/SalesprojectConversionRate_entity.aod
+++ b/entity/SalesprojectConversionRate_entity/SalesprojectConversionRate_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>SalesprojectConversionRate_entity</name>
+  <title>Conversion Rate</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/SalesprojectConversionRate_entity/documentation.adoc</documentation>
-  <title>Conversion Rate</title>
   <initFilterProcess>%aditoprj%/entity/SalesprojectConversionRate_entity/initFilterProcess.js</initFilterProcess>
   <iconId>VAADIN:PIE_CHART</iconId>
   <recordContainer>jdito</recordContainer>
@@ -23,18 +23,22 @@
     <entityActionField>
       <name>openSalesprojects</name>
       <onActionProcess>%aditoprj%/entity/SalesprojectConversionRate_entity/entityfields/opensalesprojects/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:BOOK_DOLLAR</iconId>
     </entityActionField>
     <entityActionField>
       <name>sentOffers</name>
       <onActionProcess>%aditoprj%/entity/SalesprojectConversionRate_entity/entityfields/sentoffers/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CART</iconId>
     </entityActionField>
     <entityActionField>
       <name>openForecast</name>
       <onActionProcess>%aditoprj%/entity/SalesprojectConversionRate_entity/entityfields/openforecast/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:BAR_CHART_H</iconId>
     </entityActionField>
     <entityActionField>
       <name>openTurnover</name>
       <onActionProcess>%aditoprj%/entity/SalesprojectConversionRate_entity/entityfields/openturnover/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CHART</iconId>
     </entityActionField>
     <entityField>
       <name>AB_KEYWORD_ENTRYID_KEYID</name>
diff --git a/entity/SalesprojectConversionRate_entity/recordcontainers/jdito/contentProcess.js b/entity/SalesprojectConversionRate_entity/recordcontainers/jdito/contentProcess.js
index 32a839f38d92337f1f7acd8cf64fc5ba961cd529..d4d779b0c5261b8ad759fec03c049e544903aac1 100644
--- a/entity/SalesprojectConversionRate_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/SalesprojectConversionRate_entity/recordcontainers/jdito/contentProcess.js
@@ -13,8 +13,7 @@ var phasenManager = new SalesprojectConversionRate();
 
 var sql = new SqlBuilder()
 .from("AB_KEYWORD_ENTRY")
-.where("AB_KEYWORD_ENTRY.CONTAINER", $KeywordRegistry.salesprojectPhase())
-.and("AB_KEYWORD_ENTRY.KEYID", $KeywordRegistry.salesprojectPhase$nego(), SqlBuilder.NOT_EQUAL());
+.where("AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID", KeywordUtils.getCategoryIdByName($KeywordRegistry.salesprojectPhase()));
 
 if (filter != null)
 {
diff --git a/entity/SalesprojectConversionRate_entity/recordcontainers/jdito/rowCountProcess.js b/entity/SalesprojectConversionRate_entity/recordcontainers/jdito/rowCountProcess.js
index f30b4775d6c3f4356b76028e7faa2a488a3a2d66..9d19863bd9c26153fd71bfb7d5b648dee630245b 100644
--- a/entity/SalesprojectConversionRate_entity/recordcontainers/jdito/rowCountProcess.js
+++ b/entity/SalesprojectConversionRate_entity/recordcontainers/jdito/rowCountProcess.js
@@ -13,8 +13,7 @@ var phasenManager = new SalesprojectConversionRate();
 
 var sql = new SqlBuilder()
 .from("AB_KEYWORD_ENTRY")
-.where("AB_KEYWORD_ENTRY.CONTAINER", $KeywordRegistry.salesprojectPhase())
-.and("AB_KEYWORD_ENTRY.KEYID", $KeywordRegistry.salesprojectPhase$nego(), SqlBuilder.NOT_EQUAL());
+.where("AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID", KeywordUtils.getCategoryIdByName($KeywordRegistry.salesprojectPhase()));
 
 if (filter != null)
 {
diff --git a/entity/SalesprojectMilestone_entity/SalesprojectMilestone_entity.aod b/entity/SalesprojectMilestone_entity/SalesprojectMilestone_entity.aod
index 8da44d6020598d2c9a5d4a108f7e9d5017a85e11..9b33104d183410e5faf5ea980bc1ced20093efd5 100644
--- a/entity/SalesprojectMilestone_entity/SalesprojectMilestone_entity.aod
+++ b/entity/SalesprojectMilestone_entity/SalesprojectMilestone_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>SalesprojectMilestone_entity</name>
+  <title></title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/SalesprojectMilestone_entity/documentation.adoc</documentation>
-  <title></title>
   <grantCreate v="false" />
   <grantUpdate v="false" />
   <grantDelete v="false" />
@@ -73,17 +73,17 @@
     </entityField>
     <entityConsumer>
       <name>Keywords</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/SalesprojectMilestone_entity/entityfields/keywords/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>Kind_param</name>
@@ -92,12 +92,6 @@
     </entityParameter>
     <entityProvider>
       <name>StateMilestones</name>
-      <children>
-        <entityParameter>
-          <name>Kind_param</name>
-          <valueProcess>%aditoprj%/entity/SalesprojectMilestone_entity/entityfields/statemilestones/children/kind_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>f705534d-dcf3-4049-a1ea-3f75e93aa2f0</name>
@@ -106,15 +100,15 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
-    </entityProvider>
-    <entityProvider>
-      <name>PhaseMilestones</name>
       <children>
         <entityParameter>
           <name>Kind_param</name>
-          <valueProcess>%aditoprj%/entity/SalesprojectMilestone_entity/entityfields/phasemilestones/children/kind_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/SalesprojectMilestone_entity/entityfields/statemilestones/children/kind_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
+    </entityProvider>
+    <entityProvider>
+      <name>PhaseMilestones</name>
       <dependencies>
         <entityDependency>
           <name>b132527b-990c-416a-b2d6-ddbe6f4397e2</name>
@@ -123,6 +117,12 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>Kind_param</name>
+          <valueProcess>%aditoprj%/entity/SalesprojectMilestone_entity/entityfields/phasemilestones/children/kind_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityConsumer>
       <name>SalesProjectPhases</name>
@@ -151,20 +151,11 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/SalesprojectMilestone_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/SalesprojectMilestone_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
       <onDBUpdate>%aditoprj%/entity/SalesprojectMilestone_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
+      <alias>Data_alias</alias>
       <title></title>
-      <linkInformation>
-        <linkInformation>
-          <name>464f1fd7-e5b6-4cfc-92f8-4873d4e10ce3</name>
-          <tableName>SALESPROJECT_MILESTONE</tableName>
-          <primaryKey>SALESPROJECT_MILESTONEID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>DATE_END.value</name>
@@ -197,6 +188,15 @@
           <isLookupFilter v="true" />
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>464f1fd7-e5b6-4cfc-92f8-4873d4e10ce3</name>
+          <tableName>SALESPROJECT_MILESTONE</tableName>
+          <primaryKey>SALESPROJECT_MILESTONEID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/SalesprojectPhaseDefinition_entity/SalesprojectPhaseDefinition_entity.aod b/entity/SalesprojectPhaseDefinition_entity/SalesprojectPhaseDefinition_entity.aod
new file mode 100644
index 0000000000000000000000000000000000000000..29cb770c0a049830e8884a6a41d1dcd3c5e5290b
--- /dev/null
+++ b/entity/SalesprojectPhaseDefinition_entity/SalesprojectPhaseDefinition_entity.aod
@@ -0,0 +1,154 @@
+<?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.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
+  <name>SalesprojectPhaseDefinition_entity</name>
+  <title>Salesproject phases</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>VAADIN:LIST_UL</icon>
+  <siblings />
+  <iconIdProcess>%aditoprj%/entity/SalesprojectPhaseDefinition_entity/iconIdProcess.js</iconIdProcess>
+  <recordContainer>db</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+    </entityProvider>
+    <entityProvider>
+      <name>#PROVIDER_AGGREGATES</name>
+      <useAggregates v="true" />
+    </entityProvider>
+    <entityField>
+      <name>SALESPROJECTPHASETRAITDEFINITIONID</name>
+    </entityField>
+    <entityField>
+      <name>USER_NEW</name>
+      <valueProcess>%aditoprj%/entity/SalesprojectPhaseDefinition_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <valueProcess>%aditoprj%/entity/SalesprojectPhaseDefinition_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <valueProcess>%aditoprj%/entity/SalesprojectPhaseDefinition_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <valueProcess>%aditoprj%/entity/SalesprojectPhaseDefinition_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>PHASE</name>
+      <title>Phase</title>
+      <mandatory v="true" />
+      <dropDownProcess>%aditoprj%/entity/SalesprojectPhaseDefinition_entity/entityfields/phase/dropDownProcess.js</dropDownProcess>
+      <displayValueProcess>%aditoprj%/entity/SalesprojectPhaseDefinition_entity/entityfields/phase/displayValueProcess.js</displayValueProcess>
+      <onValidation>%aditoprj%/entity/SalesprojectPhaseDefinition_entity/entityfields/phase/onValidation.js</onValidation>
+    </entityField>
+    <entityParameter>
+      <name>SalesprojectUid_param</name>
+      <expose v="false" />
+    </entityParameter>
+    <entityParameter>
+      <name>SalesprojectPhaseId_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityProvider>
+      <name>SalesprojectPhaseDefinitions</name>
+      <lookupIdfield>SALESPROJECTPHASETRAITDEFINITIONID</lookupIdfield>
+      <dependencies>
+        <entityDependency>
+          <name>1d8760d0-186d-411d-a84e-dc82556ad722</name>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+    <entityFieldGroup>
+      <name>SalesprojectPhaseFullname</name>
+      <valueProcess>%aditoprj%/entity/SalesprojectPhaseDefinition_entity/entityfields/salesprojectphasefullname/valueProcess.js</valueProcess>
+      <fields>
+        <element>PHASE</element>
+      </fields>
+    </entityFieldGroup>
+    <entityConsumer>
+      <name>ChecklistEntries</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ChecklistEntry_entity</entityName>
+        <fieldName>ChecklistEntries</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ChecklistUid_param</name>
+          <valueProcess>%aditoprj%/entity/SalesprojectPhaseDefinition_entity/entityfields/checklistentries/children/checklistuid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>CHECKLIST_ID</name>
+      <valueProcess>%aditoprj%/entity/SalesprojectPhaseDefinition_entity/entityfields/checklist_id/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>traitCount</name>
+      <title>Traits</title>
+      <valueProcess>%aditoprj%/entity/SalesprojectPhaseDefinition_entity/entityfields/traitcount/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DESCRIPTION</name>
+      <title>Description</title>
+      <contentType>LONG_TEXT</contentType>
+    </entityField>
+  </entityFields>
+  <recordContainers>
+    <dbRecordContainer>
+      <name>db</name>
+      <onDBInsert>%aditoprj%/entity/SalesprojectPhaseDefinition_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
+      <alias>Data_alias</alias>
+      <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>CHECKLIST_ID.value</name>
+          <recordfield>SALESPROJECTPHASEDEFINITION.CHECKLIST_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>SALESPROJECTPHASEDEFINITION.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>SALESPROJECTPHASEDEFINITION.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DESCRIPTION.value</name>
+          <recordfield>SALESPROJECTPHASEDEFINITION.DESCRIPTION</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PHASE.value</name>
+          <recordfield>SALESPROJECTPHASEDEFINITION.PHASE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PHASE.displayValue</name>
+          <recordfield>SALESPROJECTPHASEDEFINITION.PHASE</recordfield>
+          <expression>%aditoprj%/entity/SalesprojectPhaseDefinition_entity/recordcontainers/db/recordfieldmappings/phase.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>SALESPROJECTPHASETRAITDEFINITIONID.value</name>
+          <recordfield>SALESPROJECTPHASEDEFINITION.SALESPROJECTPHASEDEFINITIONID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>SALESPROJECTPHASEDEFINITION.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>SALESPROJECTPHASEDEFINITION.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+      </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>6b48c807-5948-41ff-a5b5-b1556db01c3e</name>
+          <tableName>SALESPROJECTPHASEDEFINITION</tableName>
+          <primaryKey>SALESPROJECTPHASEDEFINITIONID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
+    </dbRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/SalesprojectPhaseDefinition_entity/entityfields/checklist_id/valueProcess.js b/entity/SalesprojectPhaseDefinition_entity/entityfields/checklist_id/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4d1a3077043fd3b0444e1f1a87839cc1d5844519
--- /dev/null
+++ b/entity/SalesprojectPhaseDefinition_entity/entityfields/checklist_id/valueProcess.js
@@ -0,0 +1,9 @@
+import("system.vars");
+import("system.result");
+import("system.util");
+
+
+if (!vars.get("$field.CHECKLIST_ID")) 
+{
+    result.string(util.getNewUUID());
+}
\ No newline at end of file
diff --git a/entity/SalesprojectPhaseDefinition_entity/entityfields/checklistentries/children/checklistuid_param/valueProcess.js b/entity/SalesprojectPhaseDefinition_entity/entityfields/checklistentries/children/checklistuid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..91d7fc39bc8d5ad5a55eb72f53dff893886aac9e
--- /dev/null
+++ b/entity/SalesprojectPhaseDefinition_entity/entityfields/checklistentries/children/checklistuid_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+
+
+result.string(vars.get("$field.CHECKLIST_ID"));
\ No newline at end of file
diff --git a/entity/SalesprojectPhaseDefinition_entity/entityfields/date_edit/valueProcess.js b/entity/SalesprojectPhaseDefinition_entity/entityfields/date_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4b3fffc0c63f47083ae49e08b9b746227c628443
--- /dev/null
+++ b/entity/SalesprojectPhaseDefinition_entity/entityfields/date_edit/valueProcess.js
@@ -0,0 +1,13 @@
+import("system.vars");
+import("system.neon");
+import("system.result");
+
+
+var currentDate = null;
+
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT)
+{
+    currentUser = vars.get("$sys.date");
+}
+
+result.string(currentDate);
\ No newline at end of file
diff --git a/entity/SalesprojectPhaseDefinition_entity/entityfields/date_new/valueProcess.js b/entity/SalesprojectPhaseDefinition_entity/entityfields/date_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b4e0581883113b47c4aa2ecf96fcb2258bf87768
--- /dev/null
+++ b/entity/SalesprojectPhaseDefinition_entity/entityfields/date_new/valueProcess.js
@@ -0,0 +1,13 @@
+import("system.vars");
+import("system.neon");
+import("system.result");
+
+
+var currentDate = null;
+
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+{
+    currentUser = vars.get("$sys.date");
+}
+
+result.string(currentDate);
\ No newline at end of file
diff --git a/entity/SalesprojectPhaseDefinition_entity/entityfields/phase/displayValueProcess.js b/entity/SalesprojectPhaseDefinition_entity/entityfields/phase/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..909b87ff774205c98165542547d1286c455092f8
--- /dev/null
+++ b/entity/SalesprojectPhaseDefinition_entity/entityfields/phase/displayValueProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("system.vars");
+import("KeywordRegistry_basic");
+import("Keyword_lib");
+
+result.string(KeywordUtils.getViewValue($KeywordRegistry.salesprojectPhase(), vars.get("$field.PHASE")));
\ No newline at end of file
diff --git a/entity/SalesprojectPhaseDefinition_entity/entityfields/phase/dropDownProcess.js b/entity/SalesprojectPhaseDefinition_entity/entityfields/phase/dropDownProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..268d3b2dc5db832a404d50b25a958a9e216b8d27
--- /dev/null
+++ b/entity/SalesprojectPhaseDefinition_entity/entityfields/phase/dropDownProcess.js
@@ -0,0 +1,27 @@
+import("system.result");
+import("system.vars");
+import("KeywordRegistry_basic");
+import("Keyword_lib");
+import("Sql_lib");
+
+
+var salesprojectPhases = KeywordUtils.getEntryNamesAndIdsByContainer($KeywordRegistry.salesprojectPhase());
+var dropDownEntries = [];
+var counter = 0;
+
+var exisitingPhases = newSelect("PHASE")
+                        .from("SALESPROJECTPHASEDEFINITION")
+                        .arrayColumn();
+
+salesprojectPhases.forEach(function(pSalesprojectPhase){
+    
+    var isExistent = exisitingPhases.includes(pSalesprojectPhase[0]);
+    
+    if (!isExistent || (vars.get("$field.PHASE") == pSalesprojectPhase[0])) {
+        dropDownEntries[counter] = [pSalesprojectPhase[0], pSalesprojectPhase[1]];
+    }
+    
+    counter++;
+});
+
+result.object(dropDownEntries);
\ No newline at end of file
diff --git a/entity/SalesprojectPhaseDefinition_entity/entityfields/phase/onValidation.js b/entity/SalesprojectPhaseDefinition_entity/entityfields/phase/onValidation.js
new file mode 100644
index 0000000000000000000000000000000000000000..61a58a68724cade1ca65ed289ed9a56594c2ab5c
--- /dev/null
+++ b/entity/SalesprojectPhaseDefinition_entity/entityfields/phase/onValidation.js
@@ -0,0 +1,24 @@
+import("system.vars");
+import("system.result");
+import("system.translate");
+import("system.neon");
+import("Sql_lib");
+
+
+var thisValue = vars.get("$this.value");
+
+if(thisValue != null && thisValue != "" && 
+    vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW &&
+    thisValue != vars.get("$field.PHASE"))
+{
+   var isExistent = newSelect("COUNT(*)")
+                    .from("SALESPROJECTPHASEDEFINITION")
+                    .where("SALESPROJECTPHASEDEFINITION.SALESPROJECTPHASE", localValue)
+                    .cell();
+    
+    if (isExistent > 0)
+    {
+        result.string(translate.text("For this salesproject phase are already traits defined."));
+    }
+}
+                    
diff --git a/entity/SalesprojectPhaseDefinition_entity/entityfields/salesprojectphasefullname/valueProcess.js b/entity/SalesprojectPhaseDefinition_entity/entityfields/salesprojectphasefullname/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..75192dbbe5da1c412c31fb25d1849b2b6572b455
--- /dev/null
+++ b/entity/SalesprojectPhaseDefinition_entity/entityfields/salesprojectphasefullname/valueProcess.js
@@ -0,0 +1,36 @@
+import("system.result");
+import("system.vars");
+import("KeywordRegistry_basic");
+
+
+var salesprojectPhase = vars.get("$field.PHASE");
+var longForm = "";
+
+switch(salesprojectPhase){
+    case $KeywordRegistry.salesprojectPhase$mal():
+        longForm = "Marketing Accepted Lead";
+        break;
+    case $KeywordRegistry.salesprojectPhase$mql():
+        longForm = "Marketing Qualified Lead";
+        break;
+    case $KeywordRegistry.salesprojectPhase$nego():
+        longForm = "Negotiation";
+        break;
+    case $KeywordRegistry.salesprojectPhase$nqc():
+        longForm = "Non Qualified Contact";
+        break;
+    case $KeywordRegistry.salesprojectPhase$offer():
+        longForm = "Offer";
+        break;
+    case $KeywordRegistry.salesprojectPhase$sal():
+        longForm = "Sales Accepted Lead";
+        break;
+    case $KeywordRegistry.salesprojectPhase$sqo():
+        longForm = "Sales Qualified Offer";
+        break;
+    case $KeywordRegistry.salesprojectPhase$mqc():
+        longForm = "Marketing Qualified Contact";
+        break;
+}
+
+result.string(longForm);
diff --git a/entity/SalesprojectPhaseDefinition_entity/entityfields/traitcount/valueProcess.js b/entity/SalesprojectPhaseDefinition_entity/entityfields/traitcount/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b2430c974f84383660f14bef9d6b4a6d943eae10
--- /dev/null
+++ b/entity/SalesprojectPhaseDefinition_entity/entityfields/traitcount/valueProcess.js
@@ -0,0 +1,11 @@
+import("system.result");
+import("system.vars");
+import("Sql_lib");
+
+
+var traitCounting = newSelect("COUNT(*)")
+                        .from("CHECKLISTENTRY")
+                        .where("CHECKLISTENTRY.CHECKLIST_ID", vars.get("$field.CHECKLIST_ID"))
+                        .cell();
+
+result.string(traitCounting);
\ No newline at end of file
diff --git a/entity/SalesprojectPhaseDefinition_entity/entityfields/user_edit/valueProcess.js b/entity/SalesprojectPhaseDefinition_entity/entityfields/user_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a55cb327464d6def9b94735913c25ffb5e4328ef
--- /dev/null
+++ b/entity/SalesprojectPhaseDefinition_entity/entityfields/user_edit/valueProcess.js
@@ -0,0 +1,13 @@
+import("system.vars");
+import("system.neon");
+import("system.result");
+
+
+var currentUser = null;
+
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT)
+{
+    currentUser = vars.get("$sys.user");
+}
+
+result.string(currentUser);
\ No newline at end of file
diff --git a/entity/SalesprojectPhaseDefinition_entity/entityfields/user_new/valueProcess.js b/entity/SalesprojectPhaseDefinition_entity/entityfields/user_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..1411b9ac93e217a76a876371a2609ff9464f4997
--- /dev/null
+++ b/entity/SalesprojectPhaseDefinition_entity/entityfields/user_new/valueProcess.js
@@ -0,0 +1,13 @@
+import("system.vars");
+import("system.neon");
+import("system.result");
+
+
+var currentUser = null;
+
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+{
+    currentUser = vars.get("$sys.user");
+}
+
+result.string(currentUser);
\ No newline at end of file
diff --git a/entity/SalesprojectPhaseDefinition_entity/iconIdProcess.js b/entity/SalesprojectPhaseDefinition_entity/iconIdProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b647759848390c03032e49219e04c68b5f8cf93f
--- /dev/null
+++ b/entity/SalesprojectPhaseDefinition_entity/iconIdProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string("TEXT:" + vars.getString("$field.PHASE").substr(vars.getString("$field.PHASE").indexOf("PHASE",0)+5, vars.getString("$field.PHASE").length).trim());
\ No newline at end of file
diff --git a/entity/SalesprojectPhaseDefinition_entity/recordcontainers/db/onDBInsert.js b/entity/SalesprojectPhaseDefinition_entity/recordcontainers/db/onDBInsert.js
new file mode 100644
index 0000000000000000000000000000000000000000..c2501480abe5308c33ececdd86eb5f91ab7c59ed
--- /dev/null
+++ b/entity/SalesprojectPhaseDefinition_entity/recordcontainers/db/onDBInsert.js
@@ -0,0 +1,12 @@
+import("system.vars");
+import("system.entities");
+
+var rowData = vars.get("$local.rowdata");
+var creatingConf = entities.createConfigForAddingRows()
+                                .entity("Checklist_entity")
+                                .fieldValues({
+                                    "CHECKLISTID" : rowData["SALESPROJECTPHASEDEFINITION.CHECKLIST_ID"],
+                                    "USER_NEW" : vars.get("$sys.user"),
+                                    "DATE_NEW" : vars.get("$sys.date")
+                                });
+entities.createRow(creatingConf);
diff --git a/entity/SalesprojectPhaseDefinition_entity/recordcontainers/db/recordfieldmappings/phase.displayvalue/expression.js b/entity/SalesprojectPhaseDefinition_entity/recordcontainers/db/recordfieldmappings/phase.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..c566f14a5d945b383ff38cbe41f3b3dc01cb1c9f
--- /dev/null
+++ b/entity/SalesprojectPhaseDefinition_entity/recordcontainers/db/recordfieldmappings/phase.displayvalue/expression.js
@@ -0,0 +1,9 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+import("Sql_lib");
+
+var resolvingSql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectPhase(), "SALESPROJECTPHASEDEFINITION.SALESPROJECTPHASE");
+//var sql = "case when SALESPROJECT_PHASE = '" + $KeywordRegistry.salesprojectPhase$offer() + "' THEN 'Offer' ELSE (" + resolvingSql.toString() + ") end";
+
+result.string(resolvingSql);
diff --git a/entity/SalesprojectPhase_entity/SalesprojectPhase_entity.aod b/entity/SalesprojectPhase_entity/SalesprojectPhase_entity.aod
index fe5610bd1313ceb3c056d46f83d887e6f38e752f..8bbdd874ccb3a760aa05be55f8269b54a6215e9c 100644
--- a/entity/SalesprojectPhase_entity/SalesprojectPhase_entity.aod
+++ b/entity/SalesprojectPhase_entity/SalesprojectPhase_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>SalesprojectPhase_entity</name>
+  <title>Phase</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/SalesprojectPhase_entity/documentation.adoc</documentation>
-  <title>Phase</title>
   <siblings>
     <element>SalesprojectMilestone_entity</element>
   </siblings>
@@ -52,6 +52,14 @@
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityParameter>
+      <name>DisabledPhases_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityParameter>
+      <name>SalesprojectUid_param</name>
+      <expose v="true" />
+    </entityParameter>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
diff --git a/entity/SalesprojectPhase_entity/recordcontainers/jdito/contentProcess.js b/entity/SalesprojectPhase_entity/recordcontainers/jdito/contentProcess.js
index a961d29c0531224c6213dc70ecd0eb509faa3e23..c66d85815d3f52def5b26491e9e6ccaff853f137 100644
--- a/entity/SalesprojectPhase_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/SalesprojectPhase_entity/recordcontainers/jdito/contentProcess.js
@@ -1,12 +1,16 @@
-import("Sql_lib");
 import("system.db");
-import("Keyword_lib");
-import("KeywordRegistry_basic");
 import("system.result");
 import("system.vars");
+import("KeywordRegistry_basic");
+import("Keyword_lib");
+import("Sql_lib");
+import("Util_lib");
 
-var steps = KeywordUtils.getEntryNamesAndIdsByContainer($KeywordRegistry.salesprojectPhase());
+
+var res = [];
 var ids = vars.get("$local.idvalues");
+var disabledPhases = JSON.parse(vars.get("$param.DisabledPhases_param")) || [];
+var steps = KeywordUtils.getEntryNamesAndIdsByContainer($KeywordRegistry.salesprojectPhase());
 var selected = vars.exists("$param.CurrentPhase_param") && vars.get("$param.CurrentPhase_param");
 
 // filter only for steps reqested by the system
@@ -23,14 +27,18 @@ if (ids)
     })
 }
 
-var res = [];
 steps.forEach(function ([stepId, title])
 {
-    if (ids)
-        res.push([stepId, ids.indexOf(stepId) > -1  ? "ACTIVE" : "EDITABLE", title, _getIcon(stepId)]);
-    else
-        res.push([stepId, stepId === selected ? "ACTIVE" : "EDITABLE", title, _getIcon(stepId)]);
+    var stepState = "DISABLED";
+    if (stepId === selected)
+        stepState = "ACTIVE";
+    else if (!disabledPhases.includes(stepId))
+        stepState = "EDITABLE";
+
+    var resStep = [stepId, stepState, title, _getIcon(stepId)];
+    res.push(resStep);
 });
+
 result.object(res);
 
 function _getIcon (pPhase)
diff --git a/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod b/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod
index 4effdbc2ceaff937a8ea9eb6a86b1f419c17a587..6621e3295e7e4c328cb55dee2b6b35decccc78e2 100644
--- a/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod
+++ b/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>SalesprojectSource_entity</name>
+  <title>Touchpoint</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/SalesprojectSource_entity/documentation.adoc</documentation>
-  <title>Touchpoint</title>
   <iconId>VAADIN:HANDSHAKE</iconId>
   <titlePlural>Touchpoints</titlePlural>
   <recordContainer>db</recordContainer>
@@ -55,6 +55,11 @@
     </entityField>
     <entityConsumer>
       <name>KeywordSources</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -62,11 +67,6 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>INFO</name>
@@ -86,17 +86,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/SalesprojectSource_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>fa43b303-700e-43ea-a755-7db8aceffa0f</name>
-          <tableName>SALESPROJECT_TOUCHPOINT</tableName>
-          <primaryKey>SALESPROJECT_TOUCHPOINTID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>ENTRYDATE.value</name>
@@ -129,6 +120,15 @@
           <recordfield>SALESPROJECT_TOUCHPOINT.SALESPROJECT_TOUCHPOINTID</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>fa43b303-700e-43ea-a755-7db8aceffa0f</name>
+          <tableName>SALESPROJECT_TOUCHPOINT</tableName>
+          <primaryKey>SALESPROJECT_TOUCHPOINTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod
index bbe19fd7cf0c5a29fb1036d0841e1f07169f5e32..bcfcc3b972f3bdd1ccc586d49c2ed66fbad84d63 100644
--- a/entity/Salesproject_entity/Salesproject_entity.aod
+++ b/entity/Salesproject_entity/Salesproject_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Salesproject_entity</name>
+  <title>Sales Project</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Salesproject_entity/documentation.adoc</documentation>
-  <title>Sales Project</title>
   <siblings>
     <element>SalesprojectMilestone_entity</element>
     <element>Member_entity</element>
@@ -60,7 +60,6 @@
       <groupable v="false" />
       <mandatory v="true" />
       <state>EDITABLE</state>
-      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/phase/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/phase/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
@@ -103,8 +102,7 @@
       <outputFormat>dd.MM.yyyy</outputFormat>
       <inputFormat>dd.MM.yyyy</inputFormat>
       <groupable v="true" />
-      <mandatory v="true" />
-      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/startdate/valueProcess.js</valueProcess>
+      <mandatory v="false" />
     </entityField>
     <entityField>
       <name>STATUS</name>
@@ -258,6 +256,7 @@
     </entityConsumer>
     <entityConsumer>
       <name>Members</name>
+      <refreshParent v="true" />
       <dependency>
         <name>dependency</name>
         <entityName>Member_entity</entityName>
@@ -288,14 +287,6 @@
         </entityParameter>
       </children>
     </entityConsumer>
-    <entityActionField>
-      <name>newOffer</name>
-      <documentation>%aditoprj%/entity/Salesproject_entity/entityfields/newoffer/documentation.adoc</documentation>
-      <title>New offer</title>
-      <description>Opens the Offer context in NEW-Mode and fills salesproject and contact.</description>
-      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newoffer/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CART</iconId>
-    </entityActionField>
     <entityConsumer>
       <name>Timetrackings</name>
       <refreshParent v="true" />
@@ -376,13 +367,6 @@
         </entityParameter>
       </children>
     </entityConsumer>
-    <entityActionField>
-      <name>newTimetracking</name>
-      <title>New time tracking</title>
-      <description>Opens the time tracking context in new-mode for the selected salesproject</description>
-      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newtimetracking/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:STOPWATCH</iconId>
-    </entityActionField>
     <entityConsumer>
       <name>KeywordProbabilties</name>
       <dependency>
@@ -393,9 +377,9 @@
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
-          <title></title>
           <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/keywordprobabilties/children/containername_param/valueProcess.js</valueProcess>
           <expose v="false" />
+          <title></title>
         </entityParameter>
       </children>
     </entityConsumer>
@@ -414,14 +398,6 @@
         </entityParameter>
       </children>
     </entityConsumer>
-    <entityActionField>
-      <name>newActivity</name>
-      <title>New activity</title>
-      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:HOURGLASS_END</iconId>
-      <tooltip>New activity</tooltip>
-      <tooltipProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
-    </entityActionField>
     <entityField>
       <name>InactiveTime</name>
       <title>Days inactive</title>
@@ -489,14 +465,12 @@
           <name>PresetTitle_param</name>
           <expose v="false" />
         </entityParameter>
+        <entityParameter>
+          <name>PhaseRequirementsFulfilled_parm</name>
+          <expose v="false" />
+        </entityParameter>
       </children>
     </entityProvider>
-    <entityActionField>
-      <name>newTask</name>
-      <title>New task</title>
-      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:TASKS</iconId>
-    </entityActionField>
     <entityConsumer>
       <name>Tasks</name>
       <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/tasks/stateProcess.js</stateProcess>
@@ -539,6 +513,10 @@
           <name>PresetTitle_param</name>
           <expose v="false" />
         </entityParameter>
+        <entityParameter>
+          <name>PhaseRequirementsFulfilled_parm</name>
+          <expose v="false" />
+        </entityParameter>
       </children>
     </entityProvider>
     <entityParameter>
@@ -684,6 +662,14 @@
           <name>CurrentPhase_param</name>
           <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/salesprojectphasestepper/children/currentphase_param/valueProcess.js</valueProcess>
         </entityParameter>
+        <entityParameter>
+          <name>SalesprojectUid_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/salesprojectphasestepper/children/salesprojectuid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>DisabledPhases_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/salesprojectphasestepper/children/disabledphases_param/valueProcess.js</valueProcess>
+        </entityParameter>
       </children>
     </entityConsumer>
     <entityField>
@@ -692,13 +678,6 @@
       <contentType>HTML</contentType>
       <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/phaseinfo/valueProcess.js</valueProcess>
     </entityField>
-    <entityActionField>
-      <name>openAdminView</name>
-      <title>Open admin view</title>
-      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CURLY_BRACKETS</iconId>
-      <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/openadminview/stateProcess.js</stateProcess>
-    </entityActionField>
     <entityField>
       <name>PROJECTTYPE</name>
       <title>Project type</title>
@@ -714,8 +693,8 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>ObjectType_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/projecttypeattribute/children/objecttype_param/valueProcess.js</valueProcess>
+          <name>ParentId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/projecttypeattribute/children/parentid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
@@ -729,18 +708,17 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>PhaseRequirementsFulfilled_parm</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityParameter>
       <name>PresetTitle_param</name>
       <expose v="true" />
     </entityParameter>
-    <entityActionField>
-      <name>startWorkflow</name>
-      <title>Start workflow</title>
-      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/startworkflow/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:PLAY</iconId>
-      <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/startworkflow/stateProcess.js</stateProcess>
-    </entityActionField>
     <entityField>
       <name>PROBABILITY_AI</name>
       <title>Probability AI</title>
@@ -781,58 +759,129 @@
     </entityField>
     <entityField>
       <name>DATE_NEW</name>
+      <title>Created on</title>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
+      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/date_new/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>ACTIVE</name>
     </entityField>
+    <entityConsumer>
+      <name>ChecklistEntryValues</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ChecklistEntryValue_entity</entityName>
+        <fieldName>ChecklistEntryValues</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/checklistentryvalues/children/objectrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ChecklistId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/checklistentryvalues/children/checklistid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityParameter>
+      <name>PhaseDisabledUids_param</name>
+      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/phasedisableduids_param/valueProcess.js</valueProcess>
+      <documentation>%aditoprj%/entity/Salesproject_entity/entityfields/phasedisableduids_param/documentation.adoc</documentation>
+    </entityParameter>
+    <entityParameter>
+      <name>PhaseRequirementsFulfilled_parm</name>
+      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/phaserequirementsfulfilled_parm/valueProcess.js</valueProcess>
+      <expose v="true" />
+      <documentation>%aditoprj%/entity/Salesproject_entity/entityfields/phaserequirementsfulfilled_parm/documentation.adoc</documentation>
+      <title></title>
+    </entityParameter>
+    <entityProvider>
+      <name>NoPhaseRequirementLoading</name>
+      <children>
+        <entityParameter>
+          <name>PhaseRequirementsFulfilled_parm</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/nophaserequirementloading/children/phaserequirementsfulfilled_parm/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityActionGroup>
+      <name>observeActionGroup</name>
+      <children>
+        <entityActionField>
+          <name>observe</name>
+          <title>Observe</title>
+          <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js</onActionProcess>
+          <isObjectAction v="true" />
+          <iconId>VAADIN:EYE</iconId>
+          <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/observe/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/observe/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>cancelObservation</name>
+          <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:EYE_SLASH</iconId>
+          <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
+    <entityActionField>
+      <name>newOffer</name>
+      <documentation>%aditoprj%/entity/Salesproject_entity/entityfields/newoffer/documentation.adoc</documentation>
+      <title>New offer</title>
+      <description>Opens the Offer context in NEW-Mode and fills salesproject and contact.</description>
+      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newoffer/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CART</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>newTimetracking</name>
+      <title>New time tracking</title>
+      <description>Opens the time tracking context in new-mode for the selected salesproject</description>
+      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newtimetracking/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:STOPWATCH</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>newActivity</name>
+      <title>New activity</title>
+      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:HOURGLASS_END</iconId>
+      <tooltip>New activity</tooltip>
+      <tooltipProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>newTask</name>
+      <title>New task</title>
+      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:TASKS</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>startWorkflow</name>
+      <title>Start workflow</title>
+      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/startworkflow/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:PLAY</iconId>
+      <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/startworkflow/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>openAdminView</name>
+      <title>Open admin view</title>
+      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CURLY_BRACKETS</iconId>
+      <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/openadminview/stateProcess.js</stateProcess>
+    </entityActionField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <fromClauseProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
       <onDBInsert>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>75cc0cd9-09fc-46a8-b25d-369c4e9c0fd7</name>
-          <tableName>SALESPROJECT</tableName>
-          <primaryKey>SALESPROJECTID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>a7b7adf3-c2fd-4688-9970-0000841712d7</name>
-          <tableName>ORGANISATION</tableName>
-          <primaryKey>ORGANISATIONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>b14de4fd-28a8-4503-9c29-0c4dd8b31607</name>
-          <tableName>AB_KEYWORD_ENTRY</tableName>
-          <primaryKey>AB_KEYWORD_ENTRYID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>1c73b0de-0e70-421e-a8aa-660dbd177f81</name>
-          <tableName>CLASSIFICATIONSTORAGE</tableName>
-          <primaryKey>CLASSIFICATIONSTORAGEID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>44fba381-e477-4a92-ba82-fc22c3d98c23</name>
-          <tableName>MST_TEAM</tableName>
-          <primaryKey>MST_TEAMID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>ENDDATE.value</name>
@@ -953,13 +1002,51 @@
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>DATE_NEW.value</name>
-          <recordfield>SALESPROJECT.STARTDATE</recordfield>
+          <recordfield>SALESPROJECT.DATE_NEW</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>ACTIVE.value</name>
           <expression>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/active.value/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>75cc0cd9-09fc-46a8-b25d-369c4e9c0fd7</name>
+          <tableName>SALESPROJECT</tableName>
+          <primaryKey>SALESPROJECTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>a7b7adf3-c2fd-4688-9970-0000841712d7</name>
+          <tableName>ORGANISATION</tableName>
+          <primaryKey>ORGANISATIONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>b14de4fd-28a8-4503-9c29-0c4dd8b31607</name>
+          <tableName>AB_KEYWORD_ENTRY</tableName>
+          <primaryKey>AB_KEYWORD_ENTRYID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>1c73b0de-0e70-421e-a8aa-660dbd177f81</name>
+          <tableName>CLASSIFICATIONSTORAGE</tableName>
+          <primaryKey>CLASSIFICATIONSTORAGEID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>44fba381-e477-4a92-ba82-fc22c3d98c23</name>
+          <tableName>MST_TEAM</tableName>
+          <primaryKey>MST_TEAMID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
       <filterExtensions>
         <filterExtensionSet>
           <name>Attribute_filter</name>
diff --git a/entity/Salesproject_entity/entityfields/checklistentryvalues/children/checklistid_param/valueProcess.js b/entity/Salesproject_entity/entityfields/checklistentryvalues/children/checklistid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7d139bbd2167e2965f317440302f3484f608b65e
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/checklistentryvalues/children/checklistid_param/valueProcess.js
@@ -0,0 +1,12 @@
+import("system.result");
+import("system.vars");
+import("KeywordRegistry_basic");
+import("Sql_lib");
+
+
+var checklistId = newSelect("CHECKLIST_ID")
+                        .from("SALESPROJECTPHASEDEFINITION")
+                        .where("SALESPROJECTPHASEDEFINITION.PHASE", vars.get("$field.PHASE"))
+                        .cell();
+
+result.string(checklistId);
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/checklistentryvalues/children/objectrowid_param/valueProcess.js b/entity/Salesproject_entity/entityfields/checklistentryvalues/children/objectrowid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..35c86fce60207e00936f99096038f1ee1f4519e9
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/checklistentryvalues/children/objectrowid_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+
+
+result.string(vars.get("$field.SALESPROJECTID"));
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/date_new/valueProcess.js b/entity/Salesproject_entity/entityfields/date_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..0c68e0b1ce5d1bcb6519f306dfa01de18c10be7c
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/date_new/valueProcess.js
@@ -0,0 +1,9 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    result.string(vars.get("$sys.date"));
+}
+    
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/nophaserequirementloading/children/phaserequirementsfulfilled_parm/valueProcess.js b/entity/Salesproject_entity/entityfields/nophaserequirementloading/children/phaserequirementsfulfilled_parm/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..aa48a92d7c004d71e1191445a5c1f6766c8b7a37
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/nophaserequirementloading/children/phaserequirementsfulfilled_parm/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+
+//overwrite the value in the providers parameter so that the default parameter value will not be calculated
+result.string(false);
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js b/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..35102b677cbb52d1d4a9723a42cceaef3fd5ea03
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.cancelAction();
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js b/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a0350f5edebe397b96a84766e7cdb8d99f77ee5
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js b/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..87553a373a055879a524774695e4c18bcab617e9
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("Observation_lib");
+
+result.string(Observation.cancelActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js b/entity/Salesproject_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..66cf7bc2991c142ee0753fec88e151d3dcf71141
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.insertAction();
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/observeactiongroup/children/observe/stateProcess.js b/entity/Salesproject_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..461276ea5e1e98e967047207ac6d654225a1b1c6
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (!Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/observeactiongroup/children/observe/titleProcess.js b/entity/Salesproject_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..abdfbd3d7c4aff7beba9ff22cbb39abc8d195a30
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Observation_lib");
+import("system.vars");
+
+result.string(Observation.observeActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/phasedisableduids_param/documentation.adoc b/entity/Salesproject_entity/entityfields/phasedisableduids_param/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..50c7caa62a1b01ac720b798474a4309a556a5cd8
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/phasedisableduids_param/documentation.adoc
@@ -0,0 +1,5 @@
+Contains a stingified array of all IDs of the phases that are gonna be disabled by the stepper component.
+There are two reasons why a single step (phase) is disabled:
+
+. Only the next step to current selected step is available
+. The next step is not available when all pre conditions (the checklist items) are no fulfilled
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/phasedisableduids_param/valueProcess.js b/entity/Salesproject_entity/entityfields/phasedisableduids_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..f6c858840ee253227282c53265a3474d5a9044fb
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/phasedisableduids_param/valueProcess.js
@@ -0,0 +1,28 @@
+import("Keyword_lib");
+import("system.result");
+import("KeywordRegistry_basic");
+import("system.vars");
+import("Util_lib");
+
+var currentPhase = vars.get("$field.PHASE");
+var allPhasesInOrder = KeywordUtils.getEntryNamesAndIdsByContainer($KeywordRegistry.salesprojectPhase()).map(function (row){
+    return row[0];
+});
+
+var res = JSON.stringify(_getDisabledPhases(currentPhase));
+result.string(res);
+
+function _getDisabledPhases(pPhase)
+{
+    var phases = [];
+    var startIdx = allPhasesInOrder.indexOf(pPhase) + 1;//+1 to skip "ourself"
+    var requirementsForNextPhaseFulfilled = Utils.toBoolean(vars.get("$param.PhaseRequirementsFulfilled_parm"));
+    if (requirementsForNextPhaseFulfilled)
+        startIdx++;//skip the next phase to be able switch to the next phase
+    for (var i = startIdx; i < allPhasesInOrder.length; i++) 
+    {
+        phases.push(allPhasesInOrder[i]);
+    }
+    
+    return phases;
+}
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/phaserequirementsfulfilled_parm/documentation.adoc b/entity/Salesproject_entity/entityfields/phaserequirementsfulfilled_parm/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..1650b2a2441f3b1d421ef2f1b7cc23ed245867ac
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/phaserequirementsfulfilled_parm/documentation.adoc
@@ -0,0 +1,2 @@
+This param determines if all precondition have been fulfilled of the current phases checklist or not.
+Returns a boolean.
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/phaserequirementsfulfilled_parm/valueProcess.js b/entity/Salesproject_entity/entityfields/phaserequirementsfulfilled_parm/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..d1da1efd8bcd5651e9609f671aca9ad902d1871c
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/phaserequirementsfulfilled_parm/valueProcess.js
@@ -0,0 +1,33 @@
+import("system.vars");
+import("system.result");
+import("system.entities");
+import("KeywordRegistry_basic");
+import("Sql_lib");
+
+var currentPhase = vars.get("$field.PHASE");
+
+result.string(_requirementsFulfilled(currentPhase));
+
+function _requirementsFulfilled(pPhase)
+{    
+    var fulFilled = true;    
+    var checklistId = newSelect("CHECKLIST_ID")
+        .from("SALESPROJECTPHASEDEFINITION")
+        .where("SALESPROJECTPHASEDEFINITION.PHASE", pPhase)
+        .cell();
+    var salesprojectId = vars.get("$field.SALESPROJECTID");
+    var loadingConf = entities.createConfigForLoadingRows()
+        .entity("ChecklistEntryValue_entity")
+        .fields(["IS_FULFILLED"])
+        .provider("ChecklistEntryValues")
+        .addParameter("ChecklistId_param", checklistId)
+        .addParameter("ObjectRowId_param", salesprojectId);
+
+    var rows = entities.getRows(loadingConf);
+    
+    rows.some(function(pRow){
+        if (pRow["IS_FULFILLED"] == 0) fulFilled = false;
+    });
+        
+    return fulFilled;
+}
\ No newline at end of file
diff --git a/entity/DistrictResponsible_entity/entityfields/departments/children/parentid_param/valueProcess.js b/entity/Salesproject_entity/entityfields/projecttypeattribute/children/parentid_param/valueProcess.js
similarity index 53%
rename from entity/DistrictResponsible_entity/entityfields/departments/children/parentid_param/valueProcess.js
rename to entity/Salesproject_entity/entityfields/projecttypeattribute/children/parentid_param/valueProcess.js
index 246beece1e0537e3649fa0eeda40218eaa852864..ced111e47d6e67cf16c54610df4b5eb6b893961a 100644
--- a/entity/DistrictResponsible_entity/entityfields/departments/children/parentid_param/valueProcess.js
+++ b/entity/Salesproject_entity/entityfields/projecttypeattribute/children/parentid_param/valueProcess.js
@@ -1,4 +1,4 @@
 import("AttributeRegistry_basic");
 import("system.result");
 
-result.string($AttributeRegistry.departments());
\ No newline at end of file
+result.string($AttributeRegistry.salesprojectType());
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/salesprojectphasestepper/children/currentphase_param/valueProcess.js b/entity/Salesproject_entity/entityfields/salesprojectphasestepper/children/currentphase_param/valueProcess.js
index 7d27814e727ef51078645ba0c65fa52b22dc4a3d..5c51a518dd93510c15eeb34fefb2b348853b5fd0 100644
--- a/entity/Salesproject_entity/entityfields/salesprojectphasestepper/children/currentphase_param/valueProcess.js
+++ b/entity/Salesproject_entity/entityfields/salesprojectphasestepper/children/currentphase_param/valueProcess.js
@@ -1,4 +1,5 @@
-import("system.vars");
 import("system.result");
+import("system.vars");
 
+        
 result.string(vars.get("$field.PHASE"));
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/salesprojectphasestepper/children/disabledphases_param/valueProcess.js b/entity/Salesproject_entity/entityfields/salesprojectphasestepper/children/disabledphases_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..bc33444f52e2367d42bf3b55176855a684b69dc1
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/salesprojectphasestepper/children/disabledphases_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$param.PhaseDisabledUids_param"));
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/salesprojectphasestepper/children/salesprojectuid_param/valueProcess.js b/entity/Salesproject_entity/entityfields/salesprojectphasestepper/children/salesprojectuid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..35c86fce60207e00936f99096038f1ee1f4519e9
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/salesprojectphasestepper/children/salesprojectuid_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+
+
+result.string(vars.get("$field.SALESPROJECTID"));
\ No newline at end of file
diff --git a/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js b/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js
index cf3462e69ddf08a90ec5e2a230b1c0d8bcdd3856..2120bd1a538559a9c50f8af3831405f0471cfb70 100644
--- a/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js
+++ b/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js
@@ -16,7 +16,7 @@ var sql = newSelect(isCount ? "1" : columns)
     .leftJoin("CLASSIFICATION", newWhere("CLASSIFICATION.OBJECT_ROWID = SALESPROJECT.SALESPROJECTID")
         .and("CLASSIFICATION.OBJECT_TYPE", "Salesproject")
         .and("CLASSIFICATION.CLASSIFICATIONTYPE_ID", classificationId))
-    .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID = CLASSIFICATION.CLASSIFICATIONSCORE_ID")
+    .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID = CLASSIFICATION.VALUE")
     .whereIfSet(condition.trim())
     .groupBy(groupedColumns);
 
diff --git a/entity/Salesproject_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js b/entity/Salesproject_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
index bf9199d48642536122035a91a371f8193e23271c..157e471a8f17a97b96a9efe7098a4b2e12448118 100644
--- a/entity/Salesproject_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
+++ b/entity/Salesproject_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
@@ -1,11 +1,12 @@
+import("system.vars");
 import("Favorites_lib");
 import("system.result");
 import("Sql_lib");
 
-var favoFilterCond = newWhere();
-var rowIds = FavoritesUtil.getRowIdsOfFavoriteGroup();
+var operator = vars.get("$local.operator");
+var rawvalue = vars.get("$local.rawvalue");
 
-for(i = 0; i < rowIds.length; i++)
-    favoFilterCond.or("SALESPROJECT.SALESPROJECTID", rowIds[i], SqlBuilder.EQUAL());
+var objecttype = vars.get("$field.SALESPROJECT_OBJECTTYPE");
+var idcolumn = "SALESPROJECT.SALESPROJECTID";
 
-result.string(favoFilterCond.toString());
\ No newline at end of file
+result.string(FavoritesUtil.getFilterDisplayCondition(objecttype, operator, rawvalue, idcolumn));
diff --git a/entity/Salesproject_entity/recordcontainers/db/filterextensions/phase_filterextention/groupQueryProcess.js b/entity/Salesproject_entity/recordcontainers/db/filterextensions/phase_filterextention/groupQueryProcess.js
index 308e821efaad27ef7cc947f8fcd0710229304998..eb4293c44f98b55df38ff494a122f8cef7077ab5 100644
--- a/entity/Salesproject_entity/recordcontainers/db/filterextensions/phase_filterextention/groupQueryProcess.js
+++ b/entity/Salesproject_entity/recordcontainers/db/filterextensions/phase_filterextention/groupQueryProcess.js
@@ -9,7 +9,7 @@ var order = vars.get("$local.order");
 var sqlHelper = new SqlMaskingUtils();
 var groupedList = "SALESPROJECT.PHASE"
 var condition = vars.get("$local.condition");
-var stmt = new SqlBuilder().from("SALESPROJECT").join("AB_KEYWORD_ENTRY", newWhere("AB_KEYWORD_ENTRY.KEYID = SALESPROJECT.PHASE").and("AB_KEYWORD_ENTRY.CONTAINER", $KeywordRegistry.salesprojectPhase())).groupBy(groupedList + ", AB_KEYWORD_ENTRY.SORTING, AB_KEYWORD_ENTRY.KEYID");
+var stmt = new SqlBuilder().from("SALESPROJECT").join("AB_KEYWORD_ENTRY", newWhere("AB_KEYWORD_ENTRY.KEYID = SALESPROJECT.PHASE").and("AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID", KeywordUtils.getCategoryIdByName($KeywordRegistry.salesprojectPhase()))).groupBy(groupedList + ", AB_KEYWORD_ENTRY.SORTING, AB_KEYWORD_ENTRY.KEYID");
 
 if (condition != "  ")
     stmt.where(condition);
diff --git a/entity/SalutationDistinct_entity/SalutationDistinct_entity.aod b/entity/SalutationDistinct_entity/SalutationDistinct_entity.aod
index bacd4cd101bf6204fbe070899602d47442afcd16..b3181e070d98eda13c99a61241dd4c8bb9a8e7e2 100644
--- a/entity/SalutationDistinct_entity/SalutationDistinct_entity.aod
+++ b/entity/SalutationDistinct_entity/SalutationDistinct_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>SalutationDistinct_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/SalutationDistinct_entity/documentation.adoc</documentation>
diff --git a/entity/SalutationTitleDistinct_entity/SalutationTitleDistinct_entity.aod b/entity/SalutationTitleDistinct_entity/SalutationTitleDistinct_entity.aod
index e23ed314f9c293c89abced5dd2aad800d5deddd9..967342e884d3c8323471238a7e58b891b08dde4b 100644
--- a/entity/SalutationTitleDistinct_entity/SalutationTitleDistinct_entity.aod
+++ b/entity/SalutationTitleDistinct_entity/SalutationTitleDistinct_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>SalutationTitleDistinct_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/SalutationTitleDistinct_entity/documentation.adoc</documentation>
diff --git a/entity/Salutation_entity/Salutation_entity.aod b/entity/Salutation_entity/Salutation_entity.aod
index 48def7ff858d71be38bba90a5da0a11ae0c556a1..09ab3134e33c28818a418c5219f9f8ffbea238b8 100644
--- a/entity/Salutation_entity/Salutation_entity.aod
+++ b/entity/Salutation_entity/Salutation_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Salutation_entity</name>
+  <title>Salutation</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Salutation_entity/documentation.adoc</documentation>
-  <title>Salutation</title>
   <iconId>VAADIN:COMMENT_ELLIPSIS</iconId>
   <titlePlural>Salutations</titlePlural>
   <recordContainer>db</recordContainer>
@@ -87,17 +87,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <orderClauseProcess>%aditoprj%/entity/Salutation_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>4cbc9860-9a09-4250-8540-7017c7d22545</name>
-          <tableName>SALUTATION</tableName>
-          <primaryKey>SALUTATIONID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>HEADLINE.value</name>
@@ -150,6 +141,15 @@
           <expression>%aditoprj%/entity/Salutation_entity/recordcontainers/db/recordfieldmappings/isolanguage.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>4cbc9860-9a09-4250-8540-7017c7d22545</name>
+          <tableName>SALUTATION</tableName>
+          <primaryKey>SALUTATIONID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/SerialLetterAddRecipients_entity/SerialLetterAddRecipients_entity.aod b/entity/SerialLetterAddRecipients_entity/SerialLetterAddRecipients_entity.aod
index a72c0501c5a9c495afa42ec2453e1b715c50867c..6109b0da0af9beceaa48ca285e4190ba1745554e 100644
--- a/entity/SerialLetterAddRecipients_entity/SerialLetterAddRecipients_entity.aod
+++ b/entity/SerialLetterAddRecipients_entity/SerialLetterAddRecipients_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>SerialLetterAddRecipients_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/SerialLetterAddRecipients_entity/documentation.adoc</documentation>
diff --git a/entity/SerialLetter_entity/SerialLetter_entity.aod b/entity/SerialLetter_entity/SerialLetter_entity.aod
index 315503bad3d29396d5daeabbf8bff267ab8147d1..2e747b5209ad1e75e3d17ce1595d1ee92ff27934 100644
--- a/entity/SerialLetter_entity/SerialLetter_entity.aod
+++ b/entity/SerialLetter_entity/SerialLetter_entity.aod
@@ -1,10 +1,10 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>SerialLetter_entity</name>
+  <title>Serial Letter</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/SerialLetter_entity/documentation.adoc</documentation>
   <icon>VAADIN:ENVELOPES</icon>
-  <title>Serial Letter</title>
   <grantDeleteProcess>%aditoprj%/entity/SerialLetter_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/SerialLetter_entity/contentTitleProcess.js</contentTitleProcess>
   <onValidation>%aditoprj%/entity/SerialLetter_entity/onValidation.js</onValidation>
@@ -145,28 +145,6 @@
         </entityParameter>
       </children>
     </entityConsumer>
-    <entityActionField>
-      <name>downloadLetter</name>
-      <title>Download letter</title>
-      <onActionProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/downloadletter/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:DOWNLOAD_ALT</iconId>
-      <stateProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/downloadletter/stateProcess.js</stateProcess>
-      <tooltip>Download letter</tooltip>
-    </entityActionField>
-    <entityActionField>
-      <name>downloadTemplate</name>
-      <title>Download template</title>
-      <onActionProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/downloadtemplate/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:FILE_FONT</iconId>
-      <stateProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/downloadtemplate/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>openAdminView</name>
-      <title>Open admin view</title>
-      <onActionProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CURLY_BRACKETS</iconId>
-      <stateProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/openadminview/stateProcess.js</stateProcess>
-    </entityActionField>
     <entityField>
       <name>generated</name>
       <valueProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/generated/valueProcess.js</valueProcess>
@@ -198,6 +176,25 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityProvider>
+      <name>#PROVIDER_AGGREGATES</name>
+      <useAggregates v="true" />
+    </entityProvider>
+    <entityActionField>
+      <name>downloadLetter</name>
+      <title>Download letter</title>
+      <onActionProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/downloadletter/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:DOWNLOAD_ALT</iconId>
+      <stateProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/downloadletter/stateProcess.js</stateProcess>
+      <tooltip>Download letter</tooltip>
+    </entityActionField>
+    <entityActionField>
+      <name>downloadTemplate</name>
+      <title>Download template</title>
+      <onActionProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/downloadtemplate/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:FILE_FONT</iconId>
+      <stateProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/downloadtemplate/stateProcess.js</stateProcess>
+    </entityActionField>
     <entityActionField>
       <name>generateLetter</name>
       <title>Generate letter</title>
@@ -205,35 +202,22 @@
       <iconId>VAADIN:FILE_PROCESS</iconId>
       <tooltip>Generate letter</tooltip>
     </entityActionField>
-    <entityProvider>
-      <name>#PROVIDER_AGGREGATES</name>
-      <useAggregates v="true" />
-    </entityProvider>
+    <entityActionField>
+      <name>openAdminView</name>
+      <title>Open admin view</title>
+      <onActionProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CURLY_BRACKETS</iconId>
+      <stateProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/openadminview/stateProcess.js</stateProcess>
+    </entityActionField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <fromClauseProcess>%aditoprj%/entity/SerialLetter_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <onDBInsert>%aditoprj%/entity/SerialLetter_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/SerialLetter_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/SerialLetter_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>5d9c983a-b129-437a-ae9d-203fb8ad03ec</name>
-          <tableName>SERIALLETTER</tableName>
-          <primaryKey>SERIALLETTERID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>bc81b1c3-ce99-4581-ac70-4e24bebb0c75</name>
-          <tableName>DOCUMENTTEMPLATE</tableName>
-          <primaryKey>DOCUMENTTEMPLATEID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>DOCUMENTTEMPLATE_ID.value</name>
@@ -272,6 +256,22 @@
           <expression>%aditoprj%/entity/SerialLetter_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>5d9c983a-b129-437a-ae9d-203fb8ad03ec</name>
+          <tableName>SERIALLETTER</tableName>
+          <primaryKey>SERIALLETTERID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>bc81b1c3-ce99-4581-ac70-4e24bebb0c75</name>
+          <tableName>DOCUMENTTEMPLATE</tableName>
+          <primaryKey>DOCUMENTTEMPLATEID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/SingleObject_entity/SingleObject_entity.aod b/entity/SingleObject_entity/SingleObject_entity.aod
index b2d528450e42e8451f323774cd5f1cbc16495f97..c6b3b52e6d48e650d3b579fe99f38b6ddc2e84f4 100644
--- a/entity/SingleObject_entity/SingleObject_entity.aod
+++ b/entity/SingleObject_entity/SingleObject_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>SingleObject_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <recordContainer>jdito</recordContainer>
diff --git a/entity/Social_entity/Social_entity.aod b/entity/Social_entity/Social_entity.aod
index 41ff421fb24975e2ac5117cc70209fbb641ce1e8..1f3883abe85bdf5d1de98470cae7fb076cc4b905 100644
--- a/entity/Social_entity/Social_entity.aod
+++ b/entity/Social_entity/Social_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Social_entity</name>
+  <title>Social Media</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Social_entity/documentation.adoc</documentation>
-  <title>Social Media</title>
   <entityFields>
     <entityField>
       <name>TWITTER_TIMELINE</name>
@@ -25,9 +25,9 @@
     </entityField>
     <entityParameter>
       <name>Account_param</name>
-      <title>User</title>
       <expose v="true" />
       <mandatory v="true" />
+      <title>User</title>
       <description>User</description>
     </entityParameter>
     <entityProvider>
diff --git a/entity/Stock_entity/Stock_entity.aod b/entity/Stock_entity/Stock_entity.aod
index 79a929f5a6b9403a98d9b9d03c1d6c07c7401b98..d41f642e3ef523e7714df230e050a4e4b1891007 100644
--- a/entity/Stock_entity/Stock_entity.aod
+++ b/entity/Stock_entity/Stock_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Stock_entity</name>
+  <title>Stock</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Stock_entity/documentation.adoc</documentation>
-  <title>Stock</title>
   <recordContainer>db</recordContainer>
   <entityFields>
     <entityField>
@@ -116,19 +116,10 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <maximumDbRows v="0" />
       <conditionProcess>%aditoprj%/entity/Stock_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/Stock_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>d291e552-0b6a-48e1-a830-1558beb5f58e</name>
-          <tableName>STOCK</tableName>
-          <primaryKey>STOCKID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>ENTRYDATE.value</name>
@@ -163,6 +154,15 @@
           <expression>%aditoprj%/entity/Stock_entity/recordcontainers/db/recordfieldmappings/warehouse.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>d291e552-0b6a-48e1-a830-1558beb5f58e</name>
+          <tableName>STOCK</tableName>
+          <primaryKey>STOCKID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/SupportTicket_entity/SupportTicket_entity.aod b/entity/SupportTicket_entity/SupportTicket_entity.aod
index 7449b20944182a2ae8080df096fc422e31e44ca2..18411b1b108aadcd8107ce353aed8febb31b5fc8 100644
--- a/entity/SupportTicket_entity/SupportTicket_entity.aod
+++ b/entity/SupportTicket_entity/SupportTicket_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>SupportTicket_entity</name>
+  <title>Support Ticket</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/SupportTicket_entity/documentation.adoc</documentation>
-  <title>Support Ticket</title>
   <contentTitleProcess>%aditoprj%/entity/SupportTicket_entity/contentTitleProcess.js</contentTitleProcess>
   <contentDescriptionProcess>%aditoprj%/entity/SupportTicket_entity/contentDescriptionProcess.js</contentDescriptionProcess>
   <afterUiInit>%aditoprj%/entity/SupportTicket_entity/afterUiInit.js</afterUiInit>
@@ -14,6 +14,27 @@
   <titlePlural>Support Tickets</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
+    <entityActionGroup>
+      <name>observeActionGroup</name>
+      <children>
+        <entityActionField>
+          <name>observe</name>
+          <title>Observe</title>
+          <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js</onActionProcess>
+          <isObjectAction v="true" />
+          <iconId>VAADIN:EYE</iconId>
+          <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/observeactiongroup/children/observe/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/observeactiongroup/children/observe/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>cancelObservation</name>
+          <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:EYE_SLASH</iconId>
+          <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
     <entityProvider>
       <name>#PROVIDER</name>
       <dependencies>
@@ -470,7 +491,6 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <isRequireContainerFiltering v="true" />
       <fromClauseProcess>%aditoprj%/entity/SupportTicket_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/SupportTicket_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
@@ -478,22 +498,7 @@
       <onDBInsert>%aditoprj%/entity/SupportTicket_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/SupportTicket_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/SupportTicket_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>512c662b-33f6-4491-bd24-a8b862f2de84</name>
-          <tableName>TICKET</tableName>
-          <primaryKey>TICKETID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>4e818524-bb9c-46e7-a336-e48da60c06d1</name>
-          <tableName>TASK</tableName>
-          <primaryKey>TASKID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>CODE.value</name>
@@ -613,6 +618,22 @@
           <expression>%aditoprj%/entity/SupportTicket_entity/recordcontainers/db/recordfieldmappings/active.value/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>512c662b-33f6-4491-bd24-a8b862f2de84</name>
+          <tableName>TICKET</tableName>
+          <primaryKey>TICKETID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>4e818524-bb9c-46e7-a336-e48da60c06d1</name>
+          <tableName>TASK</tableName>
+          <primaryKey>TASKID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
       <filterExtensions>
         <filterExtension>
           <name>Favorite_filter</name>
diff --git a/entity/SupportTicket_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js b/entity/SupportTicket_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..35102b677cbb52d1d4a9723a42cceaef3fd5ea03
--- /dev/null
+++ b/entity/SupportTicket_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.cancelAction();
\ No newline at end of file
diff --git a/entity/SupportTicket_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js b/entity/SupportTicket_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a0350f5edebe397b96a84766e7cdb8d99f77ee5
--- /dev/null
+++ b/entity/SupportTicket_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/SupportTicket_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js b/entity/SupportTicket_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..87553a373a055879a524774695e4c18bcab617e9
--- /dev/null
+++ b/entity/SupportTicket_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("Observation_lib");
+
+result.string(Observation.cancelActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/SupportTicket_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js b/entity/SupportTicket_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..66cf7bc2991c142ee0753fec88e151d3dcf71141
--- /dev/null
+++ b/entity/SupportTicket_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.insertAction();
\ No newline at end of file
diff --git a/entity/SupportTicket_entity/entityfields/observeactiongroup/children/observe/stateProcess.js b/entity/SupportTicket_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..461276ea5e1e98e967047207ac6d654225a1b1c6
--- /dev/null
+++ b/entity/SupportTicket_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (!Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/SupportTicket_entity/entityfields/observeactiongroup/children/observe/titleProcess.js b/entity/SupportTicket_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..abdfbd3d7c4aff7beba9ff22cbb39abc8d195a30
--- /dev/null
+++ b/entity/SupportTicket_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Observation_lib");
+import("system.vars");
+
+result.string(Observation.observeActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/SupportTicket_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js b/entity/SupportTicket_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
index 765e2ce46b47b556bb602c68ad610db83b1195df..a49514ad69abfed288c70f506f3b9dd30bdd53de 100644
--- a/entity/SupportTicket_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
+++ b/entity/SupportTicket_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
@@ -1,11 +1,12 @@
+import("system.vars");
 import("Favorites_lib");
 import("system.result");
 import("Sql_lib");
 
-var favoFilterCond = newWhere();
-var rowIds = FavoritesUtil.getRowIdsOfFavoriteGroup();
+var operator = vars.get("$local.operator");
+var rawvalue = vars.get("$local.rawvalue");
 
-for(i = 0; i < rowIds.length; i++)
-    favoFilterCond.or("TICKET.TICKETID", rowIds[i], SqlBuilder.EQUAL());
+var objecttype = vars.get("$field.SUPPORTTICKET_OBJECTTYPE");
+var idcolumn = "TICKET.TICKETID";
 
-result.string(favoFilterCond.toString());
\ No newline at end of file
+result.string(FavoritesUtil.getFilterDisplayCondition(objecttype, operator, rawvalue, idcolumn));
diff --git a/entity/TaskLink_entity/TaskLink_entity.aod b/entity/TaskLink_entity/TaskLink_entity.aod
index 759282daf39bbcbd59b7a37223e1c9d4873dfaca..b78981407b37c38dbf1590f0f6e5f852109c2214 100644
--- a/entity/TaskLink_entity/TaskLink_entity.aod
+++ b/entity/TaskLink_entity/TaskLink_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>TaskLink_entity</name>
+  <title>Connection</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/TaskLink_entity/documentation.adoc</documentation>
-  <title>Connection</title>
   <titlePlural>Connections</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -95,17 +95,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/TaskLink_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>75141ff0-c6de-4dfd-ad35-6bf2fc931fb9</name>
-          <tableName>TASKLINK</tableName>
-          <primaryKey>TASKLINKID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>OBJECT_ROWID.value</name>
@@ -124,6 +115,15 @@
           <recordfield>TASKLINK.TASKLINKID</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>75141ff0-c6de-4dfd-ad35-6bf2fc931fb9</name>
+          <tableName>TASKLINK</tableName>
+          <primaryKey>TASKLINKID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/Task_entity/Task_entity.aod b/entity/Task_entity/Task_entity.aod
index 45f3ee0f0cf0c4079ae2e8cbc05a6560bf58e0a7..114cb43a38296aa9104aa099b51d5e3bf182c470 100644
--- a/entity/Task_entity/Task_entity.aod
+++ b/entity/Task_entity/Task_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Task_entity</name>
+  <title>Task</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Task_entity/documentation.adoc</documentation>
-  <title>Task</title>
   <grantDeleteProcess>%aditoprj%/entity/Task_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/Task_entity/contentTitleProcess.js</contentTitleProcess>
   <contentDescriptionProcess>%aditoprj%/entity/Task_entity/contentDescriptionProcess.js</contentDescriptionProcess>
@@ -15,6 +15,27 @@
   <titlePlural>Tasks</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
+    <entityActionGroup>
+      <name>observeActionGroup</name>
+      <children>
+        <entityActionField>
+          <name>observe</name>
+          <title>Observe</title>
+          <onActionProcess>%aditoprj%/entity/Task_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js</onActionProcess>
+          <isObjectAction v="true" />
+          <iconId>VAADIN:EYE</iconId>
+          <stateProcess>%aditoprj%/entity/Task_entity/entityfields/observeactiongroup/children/observe/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Task_entity/entityfields/observeactiongroup/children/observe/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>cancelObservation</name>
+          <onActionProcess>%aditoprj%/entity/Task_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:EYE_SLASH</iconId>
+          <stateProcess>%aditoprj%/entity/Task_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/Task_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
     <entityProvider>
       <name>#PROVIDER</name>
       <recordContainer>db</recordContainer>
@@ -99,7 +120,6 @@
       <name>PROTECTIONLEVEL</name>
       <contentType>BOOLEAN</contentType>
       <contentTypeProcess>%aditoprj%/entity/Task_entity/entityfields/protectionlevel/contentTypeProcess.js</contentTypeProcess>
-      <dropDownProcess>%aditoprj%/entity/Task_entity/entityfields/protectionlevel/dropDownProcess.js</dropDownProcess>
       <titleProcess>%aditoprj%/entity/Task_entity/entityfields/protectionlevel/titleProcess.js</titleProcess>
       <valueProcess>%aditoprj%/entity/Task_entity/entityfields/protectionlevel/valueProcess.js</valueProcess>
     </entityField>
@@ -128,6 +148,11 @@
     <entityConsumer>
       <name>MainDocuments</name>
       <stateProcess>%aditoprj%/entity/Task_entity/entityfields/maindocuments/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>AssignmentRowId_param</name>
@@ -138,14 +163,14 @@
           <valueProcess>%aditoprj%/entity/Task_entity/entityfields/maindocuments/children/assignmenttable_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>#PROVIDER</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>KeywordStates</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -157,14 +182,14 @@
           <valueProcess>%aditoprj%/entity/Task_entity/entityfields/keywordstates/children/whitelistids_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>ModuleTrees</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ModuleTree_entity</entityName>
+        <fieldName>TreeProviders</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ID_param</name>
@@ -179,11 +204,6 @@
           <mandatory v="false" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>ModuleTree_entity</entityName>
-        <fieldName>TreeProviders</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>PARENT_CONTEXT</name>
@@ -230,6 +250,11 @@
     </entityParameter>
     <entityConsumer>
       <name>KeywordPriorities</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
@@ -237,11 +262,6 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityActionField>
       <name>newOffer</name>
@@ -260,58 +280,36 @@
     </entityField>
     <entityConsumer>
       <name>KeywordProgress</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Task_entity/entityfields/keywordprogress/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Links</name>
       <state>EDITABLE</state>
+      <dependency>
+        <name>dependency</name>
+        <entityName>TaskLink_entity</entityName>
+        <fieldName>Link</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>TaskId_param</name>
           <valueProcess>%aditoprj%/entity/Task_entity/entityfields/links/children/taskid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>TaskLink_entity</entityName>
-        <fieldName>Link</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>Tasks</name>
       <documentation>%aditoprj%/entity/Task_entity/entityfields/tasks/documentation.adoc</documentation>
-      <children>
-        <entityParameter>
-          <name>RowId_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>PresetLinks_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ParentId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>ParentContext_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectId_param</name>
-          <expose v="true" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>dd79df43-264c-494b-9c92-cadf19e61db6</name>
@@ -380,6 +378,28 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>RowId_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>PresetLinks_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ParentId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ParentContext_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectId_param</name>
+          <expose v="true" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityParameter>
       <name>PresetLinks_param</name>
@@ -408,21 +428,26 @@
     </entityField>
     <entityConsumer>
       <name>LogHistories</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>LogHistory_entity</entityName>
+        <fieldName>LogHistoryProvider</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>tablenames_param</name>
           <valueProcess>%aditoprj%/entity/Task_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>LogHistory_entity</entityName>
-        <fieldName>LogHistoryProvider</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>Documents</name>
       <selectionMode>MULTI</selectionMode>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>Documents</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>AssignmentRowId_param</name>
@@ -433,11 +458,6 @@
           <valueProcess>%aditoprj%/entity/Task_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>Documents</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>TYPE</name>
@@ -511,21 +531,12 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/Task_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/Task_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
       <onDBInsert>%aditoprj%/entity/Task_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/Task_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/Task_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>6dfe6f25-2b83-413b-89e4-5c5b9839be2e</name>
-          <tableName>TASK</tableName>
-          <primaryKey>TASKID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>DESCRIPTION.value</name>
@@ -630,6 +641,15 @@
           <aggregateType>COUNT</aggregateType>
         </aggregateFieldDbMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>6dfe6f25-2b83-413b-89e4-5c5b9839be2e</name>
+          <tableName>TASK</tableName>
+          <primaryKey>TASKID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/Task_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js b/entity/Task_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..35102b677cbb52d1d4a9723a42cceaef3fd5ea03
--- /dev/null
+++ b/entity/Task_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.cancelAction();
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js b/entity/Task_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a0350f5edebe397b96a84766e7cdb8d99f77ee5
--- /dev/null
+++ b/entity/Task_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js b/entity/Task_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..87553a373a055879a524774695e4c18bcab617e9
--- /dev/null
+++ b/entity/Task_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("Observation_lib");
+
+result.string(Observation.cancelActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js b/entity/Task_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..66cf7bc2991c142ee0753fec88e151d3dcf71141
--- /dev/null
+++ b/entity/Task_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.insertAction();
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/observeactiongroup/children/observe/stateProcess.js b/entity/Task_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..461276ea5e1e98e967047207ac6d654225a1b1c6
--- /dev/null
+++ b/entity/Task_entity/entityfields/observeactiongroup/children/observe/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+if (!Observation.countObservations())
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/observeactiongroup/children/observe/titleProcess.js b/entity/Task_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..abdfbd3d7c4aff7beba9ff22cbb39abc8d195a30
--- /dev/null
+++ b/entity/Task_entity/entityfields/observeactiongroup/children/observe/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Observation_lib");
+import("system.vars");
+
+result.string(Observation.observeActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/priority/valueProcess.js b/entity/Task_entity/entityfields/priority/valueProcess.js
index 0639e8287e8797db0bd0a19c31781facd3409367..ee23436dbb536eaf7196891941f62bb15384741c 100644
--- a/entity/Task_entity/entityfields/priority/valueProcess.js
+++ b/entity/Task_entity/entityfields/priority/valueProcess.js
@@ -4,5 +4,7 @@ import("system.neon");
 import("system.vars");
 import("KeywordRegistry_basic");
 
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
+{
     result.string($KeywordRegistry.taskPriority$low());
+}
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/protectionlevel/dropDownProcess.js b/entity/Task_entity/entityfields/protectionlevel/dropDownProcess.js
deleted file mode 100644
index b7afd80d5b3bea244cfac3ecc4c5989660fff356..0000000000000000000000000000000000000000
--- a/entity/Task_entity/entityfields/protectionlevel/dropDownProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.object([
-     ["1", translate.text("Yes")]
-    ,["0", translate.text("No")]
-    ]);
\ No newline at end of file
diff --git a/entity/Timetracking_entity/Timetracking_entity.aod b/entity/Timetracking_entity/Timetracking_entity.aod
index fc202492285ba2545d3502221077c49200a9f2cf..7801512b42160c39b811dd0b390d34a678aa0b96 100644
--- a/entity/Timetracking_entity/Timetracking_entity.aod
+++ b/entity/Timetracking_entity/Timetracking_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Timetracking_entity</name>
+  <title>Timetracking</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Timetracking_entity/documentation.adoc</documentation>
-  <title>Timetracking</title>
   <titlePlural>Timetracking entries</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -126,25 +126,9 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <fromClauseProcess>%aditoprj%/entity/Timetracking_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/Timetracking_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>56c74a11-cd33-44e3-9d41-da54d64a997c</name>
-          <tableName>TIMETRACKING</tableName>
-          <primaryKey>TIMETRACKINGID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>c2ef3832-61c5-4d49-8484-f3188b95e277</name>
-          <tableName>PERSON</tableName>
-          <primaryKey>PERSONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>INFO.value</name>
@@ -179,6 +163,22 @@
           <recordfield>TIMETRACKING.TRACKINGMINUTES</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>56c74a11-cd33-44e3-9d41-da54d64a997c</name>
+          <tableName>TIMETRACKING</tableName>
+          <primaryKey>TIMETRACKINGID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>c2ef3832-61c5-4d49-8484-f3188b95e277</name>
+          <tableName>PERSON</tableName>
+          <primaryKey>PERSONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/TurnoverTree_entity/TurnoverTree_entity.aod b/entity/TurnoverTree_entity/TurnoverTree_entity.aod
index d275ce95c96dde9bf3a79215960a2701d79a014d..dc19068f6d1d91e2fafb207c321293bf91982ff3 100644
--- a/entity/TurnoverTree_entity/TurnoverTree_entity.aod
+++ b/entity/TurnoverTree_entity/TurnoverTree_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>TurnoverTree_entity</name>
+  <title>Tree</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/TurnoverTree_entity/documentation.adoc</documentation>
-  <title>Tree</title>
   <iconId>NEON:LOGO</iconId>
   <recordContainer>jdito</recordContainer>
   <entityFields>
diff --git a/entity/Turnover_entity/Turnover_entity.aod b/entity/Turnover_entity/Turnover_entity.aod
index 0737e151be2ff946ccf52770b97fc832bbae30ea..5949a1679dc99db0137406414b81cb4b22c7d8e8 100644
--- a/entity/Turnover_entity/Turnover_entity.aod
+++ b/entity/Turnover_entity/Turnover_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Turnover_entity</name>
+  <title>Turnover</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Turnover_entity/documentation.adoc</documentation>
-  <title>Turnover</title>
   <siblings>
     <element>Forecast_entity</element>
   </siblings>
diff --git a/entity/UniversalFileProcessor_entity/UniversalFileProcessor_entity.aod b/entity/UniversalFileProcessor_entity/UniversalFileProcessor_entity.aod
index 1abb59ffc8bc30f70492cbe64475651d62da62a8..c02555601d5382f8af78f3e63e9087f1a2136d75 100644
--- a/entity/UniversalFileProcessor_entity/UniversalFileProcessor_entity.aod
+++ b/entity/UniversalFileProcessor_entity/UniversalFileProcessor_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>UniversalFileProcessor_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/UniversalFileProcessor_entity/documentation.adoc</documentation>
@@ -10,6 +10,7 @@
     <entityActionField>
       <name>drop_action</name>
       <onActionProcess>%aditoprj%/entity/UniversalFileProcessor_entity/entityfields/drop_action/onActionProcess.js</onActionProcess>
+      <iconId>NEON:TRASH</iconId>
     </entityActionField>
     <entityField>
       <name>UID</name>
diff --git a/entity/UnlinkedMailMappingLink_entity/UnlinkedMailMappingLink_entity.aod b/entity/UnlinkedMailMappingLink_entity/UnlinkedMailMappingLink_entity.aod
index 32072b9ff371549124437be92adcfdb598f6be37..b769af088b5a4c8e5d959bcd29ed97aa951acb1f 100644
--- a/entity/UnlinkedMailMappingLink_entity/UnlinkedMailMappingLink_entity.aod
+++ b/entity/UnlinkedMailMappingLink_entity/UnlinkedMailMappingLink_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>UnlinkedMailMappingLink_entity</name>
+  <title>${UNLINKEDMAILMAPPING_ADDITIONAL_LINK}</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/UnlinkedMailMappingLink_entity/documentation.adoc</documentation>
-  <title>${UNLINKEDMAILMAPPING_ADDITIONAL_LINK}</title>
   <titlePlural>${UNLINKEDMAILMAPPING_ADDITIONAL_LINKS}</titlePlural>
   <recordContainer>jdito</recordContainer>
   <entityFields>
diff --git a/entity/UnlinkedMailMappingWrapper_entity/UnlinkedMailMappingWrapper_entity.aod b/entity/UnlinkedMailMappingWrapper_entity/UnlinkedMailMappingWrapper_entity.aod
index 42eb73a718ae614066df3597d25cc982dc96b69b..54532cd9c86648b4b23ca5242bbf2dd46f5ae71f 100644
--- a/entity/UnlinkedMailMappingWrapper_entity/UnlinkedMailMappingWrapper_entity.aod
+++ b/entity/UnlinkedMailMappingWrapper_entity/UnlinkedMailMappingWrapper_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>UnlinkedMailMappingWrapper_entity</name>
+  <title>Link unlinked e-mail</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/UnlinkedMailMappingWrapper_entity/documentation.adoc</documentation>
-  <title>Link unlinked e-mail</title>
   <recordContainer>dummyJdito</recordContainer>
   <entityFields>
     <entityProvider>
diff --git a/entity/UnlinkedMailMappingWrapper_entity/recordcontainers/dummyjdito/onUpdate.js b/entity/UnlinkedMailMappingWrapper_entity/recordcontainers/dummyjdito/onUpdate.js
index 1910f493948e777cbf153d2fc3dcacd413a0666c..a925172feffc026c0060394edb06e49c1957d69c 100644
--- a/entity/UnlinkedMailMappingWrapper_entity/recordcontainers/dummyjdito/onUpdate.js
+++ b/entity/UnlinkedMailMappingWrapper_entity/recordcontainers/dummyjdito/onUpdate.js
@@ -69,5 +69,5 @@ if (communicationsToInsert.length > 0)
     db.inserts(communicationsToInsert);
     DataPrivacyUtils.notifyNeedDataPrivacyUpdate();
 }
-
-neon.refreshAll();//this is needed for the dashboard: other elements are refreshed and display for example unlinkedMails
\ No newline at end of file
+// UnlinkedMail_entity is deprecated; This will be deleted.
+//neon.refreshAll();//this is needed for the dashboard: other elements are refreshed and display for example unlinkedMails
\ No newline at end of file
diff --git a/entity/UnlinkedMail_entity/UnlinkedMail_entity.aod b/entity/UnlinkedMail_entity/UnlinkedMail_entity.aod
index 7cc21c5dc1d1bc6760394038399e025abe51dc7d..3d3bf8f882d37350f1387d165d08824a0ceb3129 100644
--- a/entity/UnlinkedMail_entity/UnlinkedMail_entity.aod
+++ b/entity/UnlinkedMail_entity/UnlinkedMail_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>UnlinkedMail_entity</name>
+  <title>Unlinked e-mail</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/UnlinkedMail_entity/documentation.adoc</documentation>
-  <title>Unlinked e-mail</title>
   <grantCreate v="false" />
   <grantUpdate v="false" />
   <iconId>VAADIN:AT</iconId>
@@ -68,17 +68,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <orderClauseProcess>%aditoprj%/entity/UnlinkedMail_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>eb823408-6792-4374-b6c5-749ee836c47a</name>
-          <tableName>AB_UNLINKEDMAIL</tableName>
-          <primaryKey>AB_UNLINKEDMAILID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>AB_UNLINKEDMAILID.value</name>
@@ -105,6 +96,15 @@
           <recordfield>AB_UNLINKEDMAIL.SUBJECT</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>eb823408-6792-4374-b6c5-749ee836c47a</name>
+          <tableName>AB_UNLINKEDMAIL</tableName>
+          <primaryKey>AB_UNLINKEDMAILID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/UserhelpResources_entity/UserhelpResources_entity.aod b/entity/UserhelpResources_entity/UserhelpResources_entity.aod
index 32f253d41162e3e5c8b4e33f1bcba45bdc803965..39dd475719ae970e55ee4ecd00e9b0f05458f10d 100644
--- a/entity/UserhelpResources_entity/UserhelpResources_entity.aod
+++ b/entity/UserhelpResources_entity/UserhelpResources_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>UserhelpResources_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/UserhelpResources_entity/documentation.adoc</documentation>
@@ -12,6 +12,11 @@
     </entityField>
     <entityConsumer>
       <name>Documents</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>Documents</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>AssignmentTable_param</name>
@@ -22,11 +27,6 @@
           <valueProcess>%aditoprj%/entity/UserhelpResources_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>Documents</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>#PROVIDER_AGGREGATES</name>
diff --git a/entity/Usersettings_entity/Usersettings_entity.aod b/entity/Usersettings_entity/Usersettings_entity.aod
index 0214bb75b50a9467e503653a3f415170ae56a24c..2653396deac35232a2ca79f7464a20c9cbc99f1e 100644
--- a/entity/Usersettings_entity/Usersettings_entity.aod
+++ b/entity/Usersettings_entity/Usersettings_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>Usersettings_entity</name>
+  <title>Settings</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Usersettings_entity/documentation.adoc</documentation>
-  <title>Settings</title>
   <grantDelete v="false" />
   <afterUiInit>%aditoprj%/entity/Usersettings_entity/afterUiInit.js</afterUiInit>
   <titlePlural>Settings</titlePlural>
diff --git a/entity/VisitPlanEmployeeWeek_entity/VisitPlanEmployeeWeek_entity.aod b/entity/VisitPlanEmployeeWeek_entity/VisitPlanEmployeeWeek_entity.aod
index d7e664a23695770a983a66ae5599360454629498..df9c843f9b51af26f4093e09c4b3cc78a37cd715 100644
--- a/entity/VisitPlanEmployeeWeek_entity/VisitPlanEmployeeWeek_entity.aod
+++ b/entity/VisitPlanEmployeeWeek_entity/VisitPlanEmployeeWeek_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>VisitPlanEmployeeWeek_entity</name>
+  <title>Visitplan Weekly Overview</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/documentation.adoc</documentation>
-  <title>Visitplan Weekly Overview</title>
   <grantDeleteProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/grantDeleteProcess.js</grantDeleteProcess>
   <iconId>VAADIN:CAR</iconId>
   <image>VAADIN:CAR</image>
@@ -18,15 +18,22 @@
     <entityField>
       <name>YEAR</name>
       <title>Year</title>
-      <resolution>YEAR</resolution>
+      <contentType>NUMBER</contentType>
+      <outputFormat>##00</outputFormat>
+      <inputFormat>##00</inputFormat>
+      <groupable v="true" />
+      <mandatory v="true" />
       <valueProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/year/valueProcess.js</valueProcess>
       <onValidation>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/year/onValidation.js</onValidation>
     </entityField>
     <entityField>
       <name>WEEK</name>
       <title>Week</title>
+      <groupable v="true" />
+      <mandatory v="true" />
       <dropDownProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/week/dropDownProcess.js</dropDownProcess>
       <valueProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/week/valueProcess.js</valueProcess>
+      <onValidation>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/week/onValidation.js</onValidation>
     </entityField>
     <entityField>
       <name>INFO</name>
@@ -35,8 +42,12 @@
     <entityField>
       <name>CONTACT_ID</name>
       <title>Employee</title>
-      <state>INVISIBLE</state>
+      <consumer>Employees</consumer>
+      <groupable v="true" />
+      <linkedContext>Person</linkedContext>
+      <state>AUTO</state>
       <valueProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/contact_id/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/contact_id/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>icon</name>
@@ -82,6 +93,11 @@
     </entityConsumer>
     <entityConsumer>
       <name>Entries</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>VisitPlanEntry_entity</entityName>
+        <fieldName>Entries</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>Entries_param</name>
@@ -89,32 +105,31 @@
           <expose v="true" />
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>VisitPlanEntry_entity</entityName>
-        <fieldName>Entries</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityConsumer>
+      <name>Employees</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Employee_entity</entityName>
+        <fieldName>Employees</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>OnlyActives_param</name>
+          <valueProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/employees/children/onlyactives_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
-      <conditionProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>3c138105-f800-4216-8b1e-42d08a20f1ae</name>
-          <tableName>VISITPLANEMPLOYEEWEEK</tableName>
-          <primaryKey>VISITPLANEMPLOYEEWEEKID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>VISITPLANEMPLOYEEWEEKID.value</name>
@@ -123,10 +138,12 @@
         <dbRecordFieldMapping>
           <name>YEAR.value</name>
           <recordfield>VISITPLANEMPLOYEEWEEK.VISITPLAN_YEAR</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>WEEK.value</name>
           <recordfield>VISITPLANEMPLOYEEWEEK.VISITPLAN_WEEK</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>INFO.value</name>
@@ -135,8 +152,22 @@
         <dbRecordFieldMapping>
           <name>CONTACT_ID.value</name>
           <recordfield>VISITPLANEMPLOYEEWEEK.CONTACT_ID</recordfield>
+          <isFilterable v="true" />
         </dbRecordFieldMapping>
+        <consumerMapping>
+          <name>Employees</name>
+          <isFilterable v="false" />
+        </consumerMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>3c138105-f800-4216-8b1e-42d08a20f1ae</name>
+          <tableName>VISITPLANEMPLOYEEWEEK</tableName>
+          <primaryKey>VISITPLANEMPLOYEEWEEKID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/VisitPlanEmployeeWeek_entity/entityfields/contact_id/displayValueProcess.js b/entity/VisitPlanEmployeeWeek_entity/entityfields/contact_id/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..edca7faf0b2b011d95ec2f010108b663eaf20d33
--- /dev/null
+++ b/entity/VisitPlanEmployeeWeek_entity/entityfields/contact_id/displayValueProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("Contact_lib");
+import("system.result");
+
+result.string(ContactUtils.getFullTitleByContactId(vars.get("$field.CONTACT_ID"), false));
\ No newline at end of file
diff --git a/entity/VisitPlanEmployeeWeek_entity/entityfields/employees/children/onlyactives_param/valueProcess.js b/entity/VisitPlanEmployeeWeek_entity/entityfields/employees/children/onlyactives_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..599bfc35195077f2fb171156ddaf1faddd9b3254
--- /dev/null
+++ b/entity/VisitPlanEmployeeWeek_entity/entityfields/employees/children/onlyactives_param/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string(true)
\ No newline at end of file
diff --git a/entity/VisitPlanEmployeeWeek_entity/entityfields/week/onValidation.js b/entity/VisitPlanEmployeeWeek_entity/entityfields/week/onValidation.js
new file mode 100644
index 0000000000000000000000000000000000000000..b16c0d7eda66954a018dfe07f5d95dfb32a83577
--- /dev/null
+++ b/entity/VisitPlanEmployeeWeek_entity/entityfields/week/onValidation.js
@@ -0,0 +1,22 @@
+import("system.result");
+import("Sql_lib");
+import("system.neon");
+import("system.eMath");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    var year = eMath.absInt(vars.get("$field.YEAR"));
+    var week = vars.get("$local.value");
+    var user = vars.get("$field.CONTACT_ID");
+
+    var weekEntry = newSelect("VISITPLANEMPLOYEEWEEKID")
+                .from("VISITPLANEMPLOYEEWEEK")
+                .where("VISITPLANEMPLOYEEWEEK.VISITPLAN_YEAR", year)
+                .and("VISITPLANEMPLOYEEWEEK.VISITPLAN_WEEK", week)
+                .and("VISITPLANEMPLOYEEWEEK.CONTACT_ID", user)
+                .cell();
+
+    if(weekEntry)
+        result.string("Weekplan already exists!");
+}
\ No newline at end of file
diff --git a/entity/VisitPlanEmployeeWeek_entity/entityfields/year/onValidation.js b/entity/VisitPlanEmployeeWeek_entity/entityfields/year/onValidation.js
index efe1ad7a3f2a0e8f24c0d5243d9e5cf21e13163b..36df8e4197e4e63aededc90180b62d6ec83db7f0 100644
--- a/entity/VisitPlanEmployeeWeek_entity/entityfields/year/onValidation.js
+++ b/entity/VisitPlanEmployeeWeek_entity/entityfields/year/onValidation.js
@@ -4,7 +4,7 @@ import("system.translate");
 import("system.vars");
 import("system.result");
 
-var year = eMath.absInt(vars.get("$local.value"));                             //input
-var currentYear = eMath.absInt(datetime.toDate(vars.get("$sys.date"), "yyyy"));//2019
+var year = eMath.absInt(vars.get("$local.value"));
+var currentYear = eMath.absInt(datetime.toDate(vars.get("$sys.date"), "yyyy"));
 if(year < currentYear || year >= 10000 )
     result.string(translate.text("Invalid year!"));
diff --git a/entity/VisitPlanEmployeeWeek_entity/entityfields/year/valueProcess.js b/entity/VisitPlanEmployeeWeek_entity/entityfields/year/valueProcess.js
index c79b83acb5a542cb7b197d5e7eae812502f4a67f..f58c37080a73ef9fe822bc9bd0f75c1a32bf7f69 100644
--- a/entity/VisitPlanEmployeeWeek_entity/entityfields/year/valueProcess.js
+++ b/entity/VisitPlanEmployeeWeek_entity/entityfields/year/valueProcess.js
@@ -4,6 +4,5 @@ import("system.result");
 import("system.neon");
 import("system.vars");
 
-//use current year if recordstate = new and this field empty
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
     result.string(datetime.toDate(vars.get("$sys.date"), "yyyy"));
\ No newline at end of file
diff --git a/entity/VisitPlanEmployeeWeek_entity/recordcontainers/db/conditionProcess.js b/entity/VisitPlanEmployeeWeek_entity/recordcontainers/db/conditionProcess.js
deleted file mode 100644
index dfed3430a9ea724ab52316ad51e4bbf11129d2ae..0000000000000000000000000000000000000000
--- a/entity/VisitPlanEmployeeWeek_entity/recordcontainers/db/conditionProcess.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import("system.logging");
-import("Sql_lib");
-import("Employee_lib");
-import("system.result");
-
-var cond = newWhere();
-
-cond.and("VISITPLANEMPLOYEEWEEK.CONTACT_ID", EmployeeUtils.getCurrentContactId());
-
-result.string(cond);
\ No newline at end of file
diff --git a/entity/VisitPlanEntry_entity/VisitPlanEntry_entity.aod b/entity/VisitPlanEntry_entity/VisitPlanEntry_entity.aod
index f059c7a9862bda4da4b6708cac9b114e81fd9423..02cf25cfe30338a9c0616acbd4dc9633652a5b57 100644
--- a/entity/VisitPlanEntry_entity/VisitPlanEntry_entity.aod
+++ b/entity/VisitPlanEntry_entity/VisitPlanEntry_entity.aod
@@ -1,13 +1,14 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>VisitPlanEntry_entity</name>
+  <title>Weekplan</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/VisitPlanEntry_entity/documentation.adoc</documentation>
-  <title>Weekplan</title>
   <grantCreateProcess>%aditoprj%/entity/VisitPlanEntry_entity/grantCreateProcess.js</grantCreateProcess>
   <grantUpdateProcess>%aditoprj%/entity/VisitPlanEntry_entity/grantUpdateProcess.js</grantUpdateProcess>
   <grantDeleteProcess>%aditoprj%/entity/VisitPlanEntry_entity/grantDeleteProcess.js</grantDeleteProcess>
   <onValidation>%aditoprj%/entity/VisitPlanEntry_entity/onValidation.js</onValidation>
+  <afterSave>%aditoprj%/entity/VisitPlanEntry_entity/afterSave.js</afterSave>
   <titlePlural></titlePlural>
   <recordContainer>jDito</recordContainer>
   <entityFields>
@@ -26,6 +27,7 @@
       <name>STATUS</name>
       <title>Status</title>
       <consumer>KeywordVisitPlanEntryStatus</consumer>
+      <state>INVISIBLE</state>
       <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/status/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/status/displayValueProcess.js</displayValueProcess>
     </entityField>
@@ -47,6 +49,14 @@
       <outputFormat>dd.MM.yyyy</outputFormat>
       <inputFormat>dd.MM.yyyy</inputFormat>
       <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entrydate/valueProcess.js</valueProcess>
+      <onValueChange>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entrydate/onValueChange.js</onValueChange>
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+        <element>PROCESS_SETVALUE</element>
+        <element>RECORD</element>
+      </onValueChangeTypes>
     </entityField>
     <entityField>
       <name>END_TIME</name>
@@ -58,6 +68,11 @@
       <mandatory v="true" />
       <dropDownProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/end_time/dropDownProcess.js</dropDownProcess>
       <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/end_time/valueProcess.js</valueProcess>
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+        <element>PROCESS_SETVALUE</element>
+      </onValueChangeTypes>
     </entityField>
     <entityField>
       <name>BEGIN_TIME</name>
@@ -69,6 +84,10 @@
       <mandatory v="true" />
       <dropDownProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/begin_time/dropDownProcess.js</dropDownProcess>
       <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/begin_time/valueProcess.js</valueProcess>
+      <onValueChange>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/begin_time/onValueChange.js</onValueChange>
+      <onValueChangeTypes>
+        <element>MASK</element>
+      </onValueChangeTypes>
     </entityField>
     <entityActionGroup>
       <name>entityActionGroup</name>
@@ -91,7 +110,7 @@
           <title>New Appointment</title>
           <onActionProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js</onActionProcess>
           <iconId>VAADIN:CALENDAR</iconId>
-          <state>AUTO</state>
+          <state>EDITABLE</state>
           <stateProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/stateProcess.js</stateProcess>
           <tooltip>Create new Appointment</tooltip>
           <tooltipProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/tooltipProcess.js</tooltipProcess>
@@ -115,6 +134,12 @@
         <entityName>Organisation_entity</entityName>
         <fieldName>Organisations</fieldName>
       </dependency>
+      <children>
+        <entityParameter>
+          <name>OnlyActive_param</name>
+          <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/organisations/children/onlyactive_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityConsumer>
       <name>KeywordVisitPlanEntryStatus</name>
@@ -162,6 +187,7 @@
     </entityField>
     <entityField>
       <name>VISITRECOMMENDATION_ID</name>
+      <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/visitrecommendation_id/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>APPOINTMENT_ID</name>
@@ -193,7 +219,8 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>ExcludedContactIds_param</name>
+          <name>OrgId_param</name>
+          <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/persons/children/orgid_param/valueProcess.js</valueProcess>
           <expose v="true" />
         </entityParameter>
         <entityParameter>
@@ -222,6 +249,48 @@
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityParameter>
+      <name>Entrydate_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityField>
+      <name>VISITPLANEMPLOYEEWEEK_INFO</name>
+      <title>Weekplan Info</title>
+      <color>priority-high-color</color>
+      <state>INVISIBLE</state>
+      <stateProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_info/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_info/valueProcess.js</valueProcess>
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+        <element>PROCESS_SETVALUE</element>
+      </onValueChangeTypes>
+    </entityField>
+    <entityField>
+      <name>STATUS_APPOINTMENT</name>
+      <title>Status Appointment</title>
+      <consumer>KeywordVisitPlanEntryStatusAppointment</consumer>
+      <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/status_appointment/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/status_appointment/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>KeywordVisitPlanEntryStatusAppointment</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/keywordvisitplanentrystatusappointment/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityParameter>
+      <name>VisitrecommendationId_param</name>
+      <expose v="true" />
+    </entityParameter>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
@@ -278,6 +347,15 @@
         <jDitoRecordFieldMapping>
           <name>STATUS.displayValue</name>
         </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>STATUS_APPOINTMENT.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>STATUS_APPOINTMENT.displayValue</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>VISITRECOMMENDATION_ID.value</name>
+        </jDitoRecordFieldMapping>
       </recordFieldMappings>
     </jDitoRecordContainer>
   </recordContainers>
diff --git a/entity/VisitPlanEntry_entity/afterSave.js b/entity/VisitPlanEntry_entity/afterSave.js
new file mode 100644
index 0000000000000000000000000000000000000000..0474f7803292e84fd36388734a67e8a568cefc41
--- /dev/null
+++ b/entity/VisitPlanEntry_entity/afterSave.js
@@ -0,0 +1,46 @@
+import("Sql_lib");
+import("system.translate");
+import("system.eMath");
+import("system.datetime");
+import("Date_lib");
+import("system.logging");
+import("system.result");
+import("system.neon");
+import("system.calendars");
+import("system.util");
+import("system.vars");
+import("system.db");
+import("Calendar_lib");
+import("Communication_lib");
+
+var savedData = vars.get("$local.entitydata");
+
+if(savedData["VISITRECOMMENDATION_ID"])
+{
+    newWhere("VISITRECOMMENDATION.VISITRECOMMENDATIONID", savedData["VISITRECOMMENDATION_ID"])
+                            .updateData(true, "VISITRECOMMENDATION", ["STATUS"], null, ["PLANNED"]);
+}
+if(savedData["STATUS_APPOINTMENT"] == "VISITSTATUSAPPOINTMENTCONFIRMED")
+{
+    var summary = translate.text("Site visit") + " | " + savedData["CONTACT_ID.displayValue"];
+    var description = savedData["CONTACT_ID.displayValue"];
+    var standardMail = CommUtil.getStandardMail(savedData["CONTACT_ID"]); 
+    
+    var entryDate = datetime.toDate(savedData["ENTRYDATE"], "dd-MM-yyyy");
+    var startTime = entryDate + " " + datetime.toDate(savedData["BEGIN_TIME"], "HH:mm:ss.S");
+        startTime = datetime.toLong(startTime, "dd-MM-yyyy HH:mm:ss.S");
+    var endTime = savedData["END_TIME"];
+    var duration = eMath.subInt(endTime, startTime);
+    
+    var params = {};
+    params["Entry_param"] = JSON.stringify(CalendarUtil.createEntry(util.getNewUUID(), calendars.VEVENT, summary, description, false, null, null
+                                        , null, null, startTime, duration, null, null, null, null, [standardMail]));
+                                        
+    params["PresetLinks_param"] = JSON.stringify([
+            ["Organisation", savedData["ORGANISATION_CONTACT_ID"]], 
+            ["Person", savedData["CONTACT_ID"]]
+        ]);
+    
+    neon.openContext("Appointment", "AppointmentEdit_view", [vars.get("$field.UID")], neon.OPERATINGSTATE_NEW, params, null);
+    result.string(true);
+}
diff --git a/entity/VisitPlanEntry_entity/entityfields/begin_time/dropDownProcess.js b/entity/VisitPlanEntry_entity/entityfields/begin_time/dropDownProcess.js
index f5ef197dc6d959c10471831543b60f96634e9f9c..12411ad70b3b6d08ee98e1c841e860d8a53256a4 100644
--- a/entity/VisitPlanEntry_entity/entityfields/begin_time/dropDownProcess.js
+++ b/entity/VisitPlanEntry_entity/entityfields/begin_time/dropDownProcess.js
@@ -12,13 +12,14 @@ for(var i = 0; i < 24; i++)
     i = i.toString();
     if(i.length == 1)
     {
-        values.push([datetime.toLong("0" + i + ":00", "HH:mm"), "0" + i + ":00"]);
-        values.push([datetime.toLong("0" + i + ":30", "HH:mm"), "0" + i + ":30"]);
+        values.push([datetime.toLong("0" + i + ":00", "HH:mm", "UTC"), "0" + i + ":00"]);
+        values.push([datetime.toLong("0" + i + ":30", "HH:mm", "UTC"), "0" + i + ":30"]);
     }
     else
     {
-        values.push([datetime.toLong(i + ":00", "HH:mm"), i + ":00"]);
-        values.push([datetime.toLong(i + ":30", "HH:mm"), i + ":30"]);
+        values.push([datetime.toLong(i + ":00", "HH:mm", "UTC"), i + ":00"]);
+        if(i != "23")
+            values.push([datetime.toLong(i + ":30", "HH:mm", "UTC"), i + ":30"]);
     }
 }
 
diff --git a/entity/VisitPlanEntry_entity/entityfields/begin_time/onValueChange.js b/entity/VisitPlanEntry_entity/entityfields/begin_time/onValueChange.js
new file mode 100644
index 0000000000000000000000000000000000000000..7250691eb897d766a2c439be45dd7e9a05553581
--- /dev/null
+++ b/entity/VisitPlanEntry_entity/entityfields/begin_time/onValueChange.js
@@ -0,0 +1,9 @@
+import("system.datetime");
+import("system.vars");
+import("system.eMath");
+import("system.neon");
+
+if(datetime.toDate(vars.get("$this.value"), "HH:mm") == "23:00")
+    neon.setFieldValue("$field.END_TIME", eMath.absInt(vars.get("$this.value")) + datetime.ONE_MINUTE * 30);
+else
+    neon.setFieldValue("$field.END_TIME", eMath.absInt(vars.get("$this.value")) + datetime.ONE_HOUR);
\ No newline at end of file
diff --git a/entity/VisitPlanEntry_entity/entityfields/begin_time/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/begin_time/valueProcess.js
index f320a45527c475f10db0d36dea1edc224a2ed3f9..052b11da3b9bbea6a4ab378f728c67806ea67b71 100644
--- a/entity/VisitPlanEntry_entity/entityfields/begin_time/valueProcess.js
+++ b/entity/VisitPlanEntry_entity/entityfields/begin_time/valueProcess.js
@@ -4,7 +4,6 @@ import("system.neon");
 import("system.result");
 import("system.vars");
 
-// 7am as default value if field is empty and recordstate = new
 if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.getString("$this.value") == null)
 {
     result.string(datetime.toLong("07:00", "HH:mm"));
diff --git a/entity/VisitPlanEntry_entity/entityfields/end_time/dropDownProcess.js b/entity/VisitPlanEntry_entity/entityfields/end_time/dropDownProcess.js
index fad1ff9a83ebe192458c199e819f2a8a4186a6aa..fc6e5d4034f088b335e35322609771d3594ce05a 100644
--- a/entity/VisitPlanEntry_entity/entityfields/end_time/dropDownProcess.js
+++ b/entity/VisitPlanEntry_entity/entityfields/end_time/dropDownProcess.js
@@ -12,13 +12,14 @@ for(var i = 0; i < 24; i++)
     i = i.toString();
     if(i.length == 1)
     {
-        values.push([datetime.toLong("0" + i + ":00", "HH:mm"), "0" + i + ":00"]);
-        values.push([datetime.toLong("0" + i + ":30", "HH:mm"), "0" + i + ":30"]);
+        if(i != "0")
+            values.push([datetime.toLong("0" + i + ":00", "HH:mm", "UTC"), "0" + i + ":00"]);
+        values.push([datetime.toLong("0" + i + ":30", "HH:mm", "UTC"), "0" + i + ":30"]);
     }
     else 
     {
-        values.push([datetime.toLong(i + ":00", "HH:mm"), i + ":00"]);
-        values.push([datetime.toLong(i + ":30", "HH:mm"), i + ":30"]);
+        values.push([datetime.toLong(i + ":00", "HH:mm", "UTC"), i + ":00"]);
+        values.push([datetime.toLong(i + ":30", "HH:mm", "UTC"), i + ":30"]);
     }
 }
 
diff --git a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/onActionProcess.js b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/onActionProcess.js
index 5fdb3779fc2b8699a502c17353bbf34ff9a59bb1..9c215fd3ee4f53ee55b7558fa704565a87ecffc3 100644
--- a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/onActionProcess.js
+++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/onActionProcess.js
@@ -19,27 +19,14 @@ var pointOfContact = newSelect("CONTACT.CONTACTID", db.getCurrentAlias())
                                 .where("AB_ATTRIBUTE.AB_ATTRIBUTEID", $AttributeRegistry.visitPlanPointOfContact()) 
                                 .and("CONTACT.CONTACTID", vars.get("$field.ORGANISATION_CONTACT_ID"))
                                 .cell();
-var context;
 
 if(pointOfContact)
     links.push([ContactUtils.getContextByContactId(pointOfContact), pointOfContact]);
 else
 {
-    var contactId = vars.get("$field.ORGANISATION_CONTACT_ID");
-    context = ContactUtils.getContextByContactId(contactId);
-    if(context == 'Person')
-    {
-        var orgContactId = newSelect("CONTACTID")
-                                        .from("CONTACT")
-                                        .where("PERSON_ID is null")
-                                        .and("CONTACT.ORGANISATION_ID", newSelect("ORGANISATION_ID")
-                                                                            .from("CONTACT")
-                                                                            .where("CONTACT.CONTACTID", contactId)
-                                                                            .cell()).cell();
-        if(orgContactId)
-            links.push(["Organisation", orgContactId]);
-    }  
-    links.push([context, contactId]);
+    links.push(["Organisation", vars.get("$field.ORGANISATION_CONTACT_ID")]);
+    links.push(["Person", vars.get("$field.CONTACT_ID")]);
 }
 
 ActivityUtils.createNewActivity(null, links, null, null, null, null, $KeywordRegistry.activityDirection$outgoing(), null, $KeywordRegistry.activityCategory$visit(), vars.get("$field.ENTRYDATE"), vars.get("$field.UID"));
+
diff --git a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js
index d5d0373503802bd20c6e17d52696af9a2ae87961..83d2148d4e05ea1d5c71a3b04cedc476baee492b 100644
--- a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js
+++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js
@@ -1,113 +1,46 @@
-import("Keyword_lib");
-import("Address_lib");
-import("Person_lib");
-import("Contact_lib");
-import("KeywordRegistry_basic");
-import("system.translate");
 import("Sql_lib");
-import("AttributeRegistry_basic");
-import("system.datetime");
-import("system.logging");
-import("Communication_lib");
+import("system.translate");
 import("system.db");
-import("system.vars");
-import("system.neon");
+import("Communication_lib");
+import("system.datetime");
+import("system.eMath");
 import("system.calendars");
-import("Calendar_lib");
-import("system.date");
-import("Context_lib");
 import("system.util");
-import("system.eMath");
-import("system.text");
-
-var params = {};
-var mailAffectedUser = [];
+import("Calendar_lib");
+import("system.vars");
+import("system.neon");
+import("system.result");
+import("Contact_lib")
 
 var selectionRowData = vars.get("$sys.selectionRows");
 
-var uid = selectionRowData[0].UID;
-var isGroup = selectionRowData[0].ISGROUP; //not Bool
-var entryDateAsLong = selectionRowData[0].ENTRYDATE;
-var entryDate = datetime.toDate(entryDateAsLong, "dd-MM-yyyy");
-var startTime = selectionRowData[0].BEGIN_TIME;
-var endTime = selectionRowData[0].END_TIME;
-var organisationContact_id = selectionRowData[0].ORGANISATION_CONTACT_ID;
-var organisationName = OrganisationUtils.getNameByContactId(organisationContact_id);
-var contact_id = selectionRowData[0].CONTACT_ID;
-var contactName = ContactUtils.getFullTitleByContactId(contact_id);
-var contactMail = CommUtil.getStandardSubSqlMail(contact_id)
-var contactData = newSelect("CONTACT.DEPARTMENT, CONTACT.CONTACTROLE")
-                            .from("CONTACT")
-                            .where("CONTACT.CONTACTID", contact_id)
-                            .arrayRow()
-var department = contactData[0];
-var contactRole = contactData[1];
-var addressId = newSelect("CONTACT.ADDRESS_ID")
-                            .from("CONTACT")
-                            .where("CONTACT.CONTACTID", organisationContact_id)
-                            .cell();
-var organisationAddress = new AddrObject(organisationContact_id);
-var organisationAddressFormatted = organisationAddress.getFormattedAddress(false, "{salutation_name}\n {street} {buildingno}\n {country_short} - {zip} {city}");
-var contactCommunication = newSelect("COMMUNICATION.MEDIUM_ID, COMMUNICATION.ADDR")
-                                        .from("COMMUNICATION")
-                                        .where("COMMUNICATION.CONTACT_ID", contact_id)
-                                        .table();
-if(contactCommunication.length > 0)
+if(selectionRowData[0].VISITRECOMMENDATION_ID)
 {
-    var communicationString;
-    for (let i = 0; i < contactCommunication.length; i++) 
-    {
-            communicationString += KeywordUtils.getViewValue($KeywordRegistry.communicationMedium(), contactCommunication[i][0]) + ": " 
-                                    + contactCommunication[i][1] + "</br>"
-    }
-    communicationString = communicationString.substring(9);
+    newWhere("VISITRECOMMENDATION.VISITRECOMMENDATIONID", selectionRowData[0].VISITRECOMMENDATION_ID)
+            .updateData(true, "VISITRECOMMENDATION", ["STATUS"], null, ["PLANNED"]);
 }
-var summary = translate.text("Visit") +  " " + contactName + " | "+  organisationName;
-var description = contactName + "</br>"
-                  + department + "</br>"
-                  + contactRole + "</br>"
-                  + communicationString + "</br>" + "</br>"
-                  + organisationName + "</br>"
-                  + organisationAddressFormatted;
 
-userMailto = [];
-userMailto.push("mailto:" + contactMail, "CN:" + contactMail);
-mailAffectedUser.push(text.encodeMS(userMailto));
+var fullName = ContactUtils.getFullTitleByContactId(selectionRowData[0].CONTACT_ID, true)
+var summary = translate.text("Site visit") + " || " + fullName;
+var description = fullName;
+var standardMail = CommUtil.getStandardMail(selectionRowData[0].CONTACT_ID); 
 
+var startTime = selectionRowData[0].BEGIN_TIME;
+var endTime = selectionRowData[0].END_TIME;
+var duration = eMath.subInt(endTime, startTime);
+var entryDate = datetime.toDate(selectionRowData[0].ENTRYDATE, "dd-MM-yyyy");
+startTime = entryDate + " " + datetime.toDate(selectionRowData[0].BEGIN_TIME, "HH:mm:ss.S");
+startTime = datetime.toLong(startTime, "dd-MM-yyyy HH:mm:ss.S");
 
-var startdate = entryDate + " " + datetime.toDate(startTime, "HH:mm:ss.S");
-startdate = datetime.toLong(startdate, "dd-MM-yyyy HH:mm:ss.S");
+var params = {};
+params["Entry_param"] = JSON.stringify(CalendarUtil.createEntry(util.getNewUUID(), calendars.VEVENT, summary, description, false, null, null
+                                    , null, null, startTime, duration, null, null, null, null, [standardMail]));
 
-var duration = eMath.subInt(endTime, startTime);
-    
-var entry = CalendarUtil.createEntry("", calendars.VEVENT, summary, description, false, false, false,
-                vars.get("$sys.user"), [vars.get("$sys.user")], startdate, duration, null, calendars.STATUS_TENTATIVE, null, null);
-            
-params["Entry_param"] = JSON.stringify(entry);
-var uidAppointment = calendars.insert([entry]);
-    
-var columns = ["AB_APPOINTMENTLINK_ID",
-            "APPOINTMENT_ID",
-            "OBJECT_TYPE",
-            "OBJECT_ROWID"]
-    
-var values = [util.getNewUUID(),
-          uidAppointment[0],
-          "Organisation",
-          organisationContact_id]
-db.insertData("AB_APPOINTMENTLINK", columns, null, values)
-    
-values = [util.getNewUUID(),
-          uidAppointment[0],
-          "Person",
-          contact_id]
-db.insertData("AB_APPOINTMENTLINK", columns, null, values)
-    
-values = [$KeywordRegistry.visitPlanEntryStatus$Appointmentarranged(), uidAppointment[0]];
-columns = ["STATUS", "APPOINTMENT_ID"];
-    
-newWhere("VISITPLANENTRY.VISITPLANENTRYID", uid)
-    .updateData(true, "VISITPLANENTRY", columns, null, values);
+params["PresetLinks_param"] = JSON.stringify([
+        ["Organisation", selectionRowData[0].ORGANISATION_CONTACT_ID], 
+        ["Person", selectionRowData[0].CONTACT_ID]
+    ]);
+
+neon.openContext("Appointment", "AppointmentEdit_view", [vars.get("$field.UID")], neon.OPERATINGSTATE_NEW, params, null);
+result.string(true);
 
-neon.setFieldValue("$field.STATUS", $KeywordRegistry.visitPlanEntryStatus$Appointmentarranged());
-neon.refreshAll();
\ No newline at end of file
diff --git a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/stateProcess.js b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/stateProcess.js
index 00cae70329680cdd31c029965dc471e53f65d642..3f986eb99cdd8c56ea85788bc2ab0f547f172b25 100644
--- a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/stateProcess.js
+++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/stateProcess.js
@@ -1,8 +1,10 @@
+import("system.logging");
 import("system.result");
 import("system.vars");
 import("system.neon");
 
-var state = neon.COMPONENTSTATE_DISABLED;
-if (vars.get("$field.ISGROUP") == "false" && vars.get("$sys.selectionRows") != "")
-    state = neon.COMPONENTSTATE_EDITABLE;
-result.string(state);
+if (vars.get("$field.ISGROUP") == "false" && vars.get("$sys.selectionRows") != "" 
+        && (vars.get("$field.STATUS") == "VISITSTATUSAPPPLANED"
+        || vars.get("$field.STATUS_APPOINTMENT") == "VISITSTATUSAPPOINTMENTCONFIRMED     "))
+    result.string(neon.COMPONENTSTATE_DISABLED);
+
diff --git a/entity/VisitPlanEntry_entity/entityfields/entrydate/onValueChange.js b/entity/VisitPlanEntry_entity/entityfields/entrydate/onValueChange.js
new file mode 100644
index 0000000000000000000000000000000000000000..2e2ab9e1659616926f5721ca8640068c0b6bdf75
--- /dev/null
+++ b/entity/VisitPlanEntry_entity/entityfields/entrydate/onValueChange.js
@@ -0,0 +1,25 @@
+import("system.neon");
+import("system.logging");
+import("system.translate");
+import("system.result");
+import("Sql_lib");
+import("system.vars");
+import("system.datetime");
+import("Employee_lib");
+
+var user = EmployeeUtils.getCurrentContactId();
+var calendarWeek = datetime.toDate(vars.get("$field.ENTRYDATE"), "w");
+var calendarYear = datetime.toDate(vars.get("$field.ENTRYDATE"), "yyyy");
+var info = newSelect("INFO")
+                        .from("VISITPLANEMPLOYEEWEEK") 
+                        .where("VISITPLANEMPLOYEEWEEK.VISITPLAN_WEEK", calendarWeek)
+                        .and("VISITPLANEMPLOYEEWEEK.VISITPLAN_YEAR", calendarYear)
+                        .and("VISITPLANEMPLOYEEWEEK.CONTACT_ID", user)
+                        .cell();
+
+if(info)
+    neon.setFieldValue("$field.VISITPLANEMPLOYEEWEEK_INFO", "Calendar week: " + calendarWeek + " Info: " + info);
+else
+    neon.setFieldValue("$field.VISITPLANEMPLOYEEWEEK_INFO", "");
+
+
diff --git a/entity/VisitPlanEntry_entity/entityfields/entrydate/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/entrydate/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..459c622245d9f40641c694f9e11c1f157081cc87
--- /dev/null
+++ b/entity/VisitPlanEntry_entity/entityfields/entrydate/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.logging");
+import("system.neon");
+import("system.result");
+import("system.vars");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && (vars.get("$this.value") == null || vars.get("$this.value") == undefined))
+    result.string(vars.get("$param.Entrydate_param"));
\ No newline at end of file
diff --git a/entity/VisitPlanEntry_entity/entityfields/keywordvisitplanentrystatusappointment/children/containername_param/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/keywordvisitplanentrystatusappointment/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a796e1af63d2e67f15030524f185dd73b26c11cf
--- /dev/null
+++ b/entity/VisitPlanEntry_entity/entityfields/keywordvisitplanentrystatusappointment/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result"); 
+import("Keyword_lib"); 
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.visitPlanEntryStatusAppointment());
\ No newline at end of file
diff --git a/entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/stateProcess.js b/entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/stateProcess.js
index 832f94c08cd6b525fa8a549e6332eea384362f65..b8cad0c73fa5d1649c5a09e20f4e48fe27645ba8 100644
--- a/entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/stateProcess.js
+++ b/entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/stateProcess.js
@@ -1,10 +1,6 @@
-import("system.logging");
 import("system.neon");
-import("system.result");
 import("system.vars");
+import("system.result");
 
-if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null 
-    && vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param"))
-{
-    result.string(neon.COMPONENTSTATE_INVISIBLE);
-}
\ No newline at end of file
+if(vars.get("$param.VisitrecommendationId_param"))
+    result.string(neon.COMPONENTSTATE_READONLY)
\ No newline at end of file
diff --git a/entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/valueProcess.js
index 8e22e5c11f08455e5f445c1fbd3d05e4a222cd75..2b90b668563cd3c022b2e3a32c9bab71c44f1783 100644
--- a/entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/valueProcess.js
+++ b/entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/valueProcess.js
@@ -1,3 +1,4 @@
+import("Sql_lib");
 import("system.neon");
 import("system.result");
 import("system.vars");
@@ -5,5 +6,15 @@ import("system.vars");
 if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null 
     && vars.exists("$param.OrganisationId_param") && vars.get("$param.OrganisationId_param"))
 {
-    result.string(vars.get("$param.OrganisationId_param"));
+    
+    var OrgId = newSelect("CONTACT.ORGANISATION_ID").from("CONTACT")
+        .where("CONTACT.CONTACTID", vars.get("$param.OrganisationId_param"))
+        .cell()
+    
+    var contactIdWithoutPerson = newSelect("CONTACT.CONTACTID").from("CONTACT")
+        .where("CONTACT.ORGANISATION_ID", OrgId)
+        .and("CONTACT.PERSON_ID is null")
+        .cell()
+        
+    result.string(contactIdWithoutPerson);
 }
\ No newline at end of file
diff --git a/entity/VisitPlanEntry_entity/entityfields/organisations/children/onlyactive_param/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/organisations/children/onlyactive_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..40effa0178464da0c7850912345f19c7fa95975a
--- /dev/null
+++ b/entity/VisitPlanEntry_entity/entityfields/organisations/children/onlyactive_param/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string(true);
\ No newline at end of file
diff --git a/entity/VisitPlanEntry_entity/entityfields/persons/children/orgid_param/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/persons/children/orgid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c6e583e8bd66c32b6b8243af36cc6c2264c8ac18
--- /dev/null
+++ b/entity/VisitPlanEntry_entity/entityfields/persons/children/orgid_param/valueProcess.js
@@ -0,0 +1,9 @@
+import("system.logging");
+import("Sql_lib");
+import("system.vars");
+import("system.result");
+
+var orgContactId = vars.get("$field.ORGANISATION_CONTACT_ID")
+var orgId = newSelect("CONTACT.ORGANISATION_ID").from("CONTACT").where("CONTACT.CONTACTID", orgContactId).cell();
+
+result.string(orgId);
\ No newline at end of file
diff --git a/entity/VisitPlanEntry_entity/entityfields/status_appointment/displayValueProcess.js b/entity/VisitPlanEntry_entity/entityfields/status_appointment/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6da13f3303b3eb4dd4da2a507f9ea6ba6bdc71a9
--- /dev/null
+++ b/entity/VisitPlanEntry_entity/entityfields/status_appointment/displayValueProcess.js
@@ -0,0 +1,8 @@
+import("system.translate");
+import("system.logging");
+import("system.result");
+import("system.vars");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string(KeywordUtils.getViewValue($KeywordRegistry.visitPlanEntryStatusAppointment(), vars.get("$field.STATUS_APPOINTMENT")));
\ No newline at end of file
diff --git a/entity/VisitPlanEntry_entity/entityfields/status_appointment/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/status_appointment/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..32f48a2b8d5ccab1d3ec284c2958e4ef14713430
--- /dev/null
+++ b/entity/VisitPlanEntry_entity/entityfields/status_appointment/valueProcess.js
@@ -0,0 +1,9 @@
+import("KeywordRegistry_basic");
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.getString("$this.value") == null)
+{
+    result.string($KeywordRegistry.visitPlanEntryStatusAppointment$requested());
+}
\ No newline at end of file
diff --git a/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_info/stateProcess.js b/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_info/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c1b91b310592bd609d821e730603d5097a3d8439
--- /dev/null
+++ b/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_info/stateProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if(vars.get("$field.ENTRYDATE"))
+    result.string(neon.COMPONENTSTATE_READONLY);
\ No newline at end of file
diff --git a/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_info/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_info/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..8848cb05cb421139c05f93526854cbf0ca8fac01
--- /dev/null
+++ b/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_info/valueProcess.js
@@ -0,0 +1,20 @@
+import("system.logging");
+import("system.translate");
+import("system.result");
+import("Sql_lib");
+import("system.vars");
+import("system.datetime");
+import("Employee_lib");
+
+var user = EmployeeUtils.getCurrentContactId();
+var calendarWeek = datetime.toDate(vars.get("$field.ENTRYDATE"), "w");
+var calendarYear = datetime.toDate(vars.get("$field.ENTRYDATE"), "yyyy");
+var info = newSelect("INFO")
+                        .from("VISITPLANEMPLOYEEWEEK") 
+                        .where("VISITPLANEMPLOYEEWEEK.VISITPLAN_WEEK", calendarWeek)
+                        .and("VISITPLANEMPLOYEEWEEK.VISITPLAN_YEAR", calendarYear)
+                        .and("VISITPLANEMPLOYEEWEEK.CONTACT_ID", user)
+                        .cell();
+
+if(info)
+    result.string(info);
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/contact_id/stateProcess.js b/entity/VisitPlanEntry_entity/entityfields/visitrecommendation_id/valueProcess.js
similarity index 57%
rename from entity/VisitRecommendation_entity/entityfields/contact_id/stateProcess.js
rename to entity/VisitPlanEntry_entity/entityfields/visitrecommendation_id/valueProcess.js
index 5cc1152733bc77ebadb70d7da6bec021692745a0..dbfee2528ec4bfc6ac624c6e0751f4b2f983bb2a 100644
--- a/entity/VisitRecommendation_entity/entityfields/contact_id/stateProcess.js
+++ b/entity/VisitPlanEntry_entity/entityfields/visitrecommendation_id/valueProcess.js
@@ -3,5 +3,5 @@ import("system.neon");
 import("system.result");
 import("system.vars");
 
-if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$param.ContactId_param") && vars.exists("$param.ContactId_param"))
-result.string(neon.COMPONENTSTATE_INVISIBLE)
\ No newline at end of file
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value")== null)
+    result.string(vars.get("$param.VisitrecommendationId_param"));
\ No newline at end of file
diff --git a/entity/VisitPlanEntry_entity/onValidation.js b/entity/VisitPlanEntry_entity/onValidation.js
index 15c1007b0a9286bb7512a4c9dc0d510e59350624..2b341575427fda464e3356d01061e405b7b75e30 100644
--- a/entity/VisitPlanEntry_entity/onValidation.js
+++ b/entity/VisitPlanEntry_entity/onValidation.js
@@ -1,3 +1,4 @@
+import("system.neon");
 import("system.eMath");
 import("Sql_lib");
 import("system.logging");
@@ -13,9 +14,10 @@ var begin_time = eMath.absInt(vars.get("$field.BEGIN_TIME"));
 if (endTime != "" && begin_time != "" && endTime < begin_time)
     result.string(translate.text("The endtime can't be before begintime!"));
 
-if(vars.get("$param.NoVisitPlanEmployeeWeek_param") != "true")
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$param.NoVisitPlanEmployeeWeek_param"))
 {
-        var week = newSelect("VISITPLAN_WEEK") 
+
+    var week = newSelect("VISITPLAN_WEEK") 
                                 .from("VISITPLANEMPLOYEEWEEK")
                                 .where("VISITPLANEMPLOYEEWEEK.VISITPLANEMPLOYEEWEEKID", vars.get("$field.VISITPLANEMPLOYEEWEEK_ID"))
                                 .cell();                
@@ -23,4 +25,5 @@ if(vars.get("$param.NoVisitPlanEmployeeWeek_param") != "true")
 
     if(week != weekEntrydate)
         result.string(translate.text("Entrydate has to be in the selected calendar week!"));
+    
 }
diff --git a/entity/VisitPlanEntry_entity/recordcontainers/jdito/contentProcess.js b/entity/VisitPlanEntry_entity/recordcontainers/jdito/contentProcess.js
index ae8d3918edde1c772c1f09bb3623506cce40cdc1..c2156fee4955f99b1bf8781a2d18a0aadadd8e07 100644
--- a/entity/VisitPlanEntry_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/VisitPlanEntry_entity/recordcontainers/jdito/contentProcess.js
@@ -16,7 +16,8 @@ var items = [];
 var group = [];
 var entryData = "";
 
-var entrySQL = newSelect("ENTRYDATE, VISITPLANENTRYID, BEGIN_TIME, END_TIME, ORGANISATION_CONTACT_ID, CONTACT_ID,STATUS, VISITPLANEMPLOYEEWEEK_ID, APPOINTMENT_ID")
+var entrySQL = newSelect("ENTRYDATE, VISITPLANENTRYID, BEGIN_TIME, END_TIME, ORGANISATION_CONTACT_ID, CONTACT_ID,STATUS, VISITPLANEMPLOYEEWEEK_ID"
+                        +", APPOINTMENT_ID, STATUS_APPOINTMENT, VISITRECOMMENDATION_ID")
                             .from("VISITPLANENTRY");
 
 if (vars.exists("$local.idvalues") && vars.get("$local.idvalues"))
@@ -46,8 +47,8 @@ if(entryData.length > 0)
 {
     for(var i = 0; i < entryData.length; i++)
     {
-        var entryDateRaw, visitPlanEntryId, beginTime, endTime, organisationContactId, contactId, status, visitplanEmployeeWeekId, appointmentid;
-        [entryDateRaw, visitPlanEntryId, beginTime, endTime, organisationContactId, contactId, status, visitplanEmployeeWeekId, appointmentid] = entryData[i]
+        var entryDateRaw, visitPlanEntryId, beginTime, endTime, organisationContactId, contactId, status, visitplanEmployeeWeekId, appointmentid, statusAppointment, visitrecommendation_id;
+        [entryDateRaw, visitPlanEntryId, beginTime, endTime, organisationContactId, contactId, status, visitplanEmployeeWeekId, appointmentid, statusAppointment, visitrecommendation_id] = entryData[i]
         
         var contactname = ContactUtils.getTitleByContactId(contactId);
         var orgname = OrganisationUtils.getNameByContactId(organisationContactId);
@@ -55,16 +56,18 @@ if(entryData.length > 0)
         entryDate = datetime.toDate(entryDateRaw, "dd.MM.yyyy");
 
         var statusDisplay = KeywordUtils.getViewValue($KeywordRegistry.visitPlanEntryStatus(), status)
+        var statusAppointmentDisplay = KeywordUtils.getViewValue($KeywordRegistry.visitPlanEntryStatusAppointment(), statusAppointment)
         var alias = SqlUtils.getSystemAlias();
 
         items.push([visitPlanEntryId, false, parentName + "#" + entryDate, "",  beginTime
-            , endTime, organisationContactId, orgname, contactId, contactname, entryDateRaw, status, visitplanEmployeeWeekId, appointmentid, statusDisplay]);
+            , endTime, organisationContactId, orgname, contactId, contactname, entryDateRaw, status, visitplanEmployeeWeekId, appointmentid
+            , statusDisplay, statusAppointment, statusAppointmentDisplay, visitrecommendation_id]);
 
         if(!vars.get("$local.idvalues"))
         {
             if(group.indexOf(parentName + "#" + entryDate) == -1)
             {
-                items.push([parentName + "#" + entryDate, true, "", parentName + " " + entryDate, "", "",  "", "", "", "", "", "", "", "", ""]);
+                items.push([parentName + "#" + entryDate, true, "", parentName + " " + entryDate, "", "",  "", "", "", "", "", "", "", "", "", "", "", ""]);
                 group.push(parentName + "#" + entryDate);
             }
         }
diff --git a/entity/VisitPlanEntry_entity/recordcontainers/jdito/onDelete.js b/entity/VisitPlanEntry_entity/recordcontainers/jdito/onDelete.js
index a507271c6792ee838fad76db423cae2fb2209c8b..77424135ff0acd196f784311bbc6b6497a9f743e 100644
--- a/entity/VisitPlanEntry_entity/recordcontainers/jdito/onDelete.js
+++ b/entity/VisitPlanEntry_entity/recordcontainers/jdito/onDelete.js
@@ -5,6 +5,10 @@ import("Sql_lib");
 import("system.db");
 
 var id = vars.get("$field.APPOINTMENT_ID") //deletes appointmententries (+ the linked Objects) if an appointment has been made
+var recommendationId = vars.get("$field.VISITRECOMMENDATION_ID");
+
+newWhere("VISITRECOMMENDATION.VISITRECOMMENDATIONID", recommendationId)
+    .updateData(true, "VISITRECOMMENDATION", ["STATUS"], null, [""]);
 
 new SqlBuilder(SqlUtils.getSystemAlias()).whereIfSet("ASYS_CALENDARBACKEND.ELEMENTUID", id)
     .deleteData();
@@ -13,4 +17,5 @@ newWhereIfSet("AB_APPOINTMENTLINK.APPOINTMENT_ID", id)
     .deleteData();
 
 newWhereIfSet("VISITPLANENTRY.VISITPLANENTRYID", "$field.UID")
-    .deleteData();
\ No newline at end of file
+    .deleteData();
+    
diff --git a/entity/VisitPlanEntry_entity/recordcontainers/jdito/onInsert.js b/entity/VisitPlanEntry_entity/recordcontainers/jdito/onInsert.js
index 513409e05735c092c8170ae3dc7184dc1c7e0933..c9f89a1065270df5b8602b0a086d052662774858 100644
--- a/entity/VisitPlanEntry_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/VisitPlanEntry_entity/recordcontainers/jdito/onInsert.js
@@ -50,7 +50,8 @@ else
 }
 
 var rowData = vars.get("$local.rowdata");
-
+//logging.log("rowData: " + rowData["VISITRECOMMENDATION_ID.value"]);
+//logging.log("field: " +vars.get("$field.VISITRECOMMENDATION_ID"));
 var valuesEntry = [
     rowData["UID.value"],
     rowData["ENTRYDATE.value"],
@@ -59,7 +60,9 @@ var valuesEntry = [
     rowData["ORGANISATION_CONTACT_ID.value"],
     rowData["CONTACT_ID.value"],
     visitPlanEmployeeWeekID,
-    rowData["STATUS.value"]
+    rowData["STATUS.value"],
+    rowData["STATUS_APPOINTMENT.value"],
+    rowData["VISITRECOMMENDATION_ID.value"] || ""
 ];
 
 var columnsEntry = [
@@ -70,7 +73,9 @@ var columnsEntry = [
     "ORGANISATION_CONTACT_ID",
     "CONTACT_ID",
     "VISITPLANEMPLOYEEWEEK_ID",
-    "STATUS"
+    "STATUS",
+    "STATUS_APPOINTMENT",
+    "VISITRECOMMENDATION_ID"
 ];
 
 insertData.push(["VISITPLANENTRY", columnsEntry, null, valuesEntry])
diff --git a/entity/VisitPlanEntry_entity/recordcontainers/jdito/onUpdate.js b/entity/VisitPlanEntry_entity/recordcontainers/jdito/onUpdate.js
index c22eeca42034c0676686e931650daeb0b22b5bb1..d5c991243c8c5ab3fd254ea668979b2d147de171 100644
--- a/entity/VisitPlanEntry_entity/recordcontainers/jdito/onUpdate.js
+++ b/entity/VisitPlanEntry_entity/recordcontainers/jdito/onUpdate.js
@@ -1,3 +1,6 @@
+import("Employee_lib");
+import("system.util");
+import("system.datetime");
 import("Sql_lib");
 import("system.logging");
 import("system.neon");
@@ -5,13 +8,49 @@ import("system.db");
 import("system.vars");
 
 var rowData = vars.get("$local.rowdata");
+var user = EmployeeUtils.getCurrentContactId()
+var calendarWeek = datetime.toDate(rowData["ENTRYDATE.value"], "w");
+var calendarYear = datetime.toDate(rowData["ENTRYDATE.value"], "yyyy");
+var weekId = newSelect("VISITPLANEMPLOYEEWEEKID")
+                        .from("VISITPLANEMPLOYEEWEEK") 
+                        .where("VISITPLANEMPLOYEEWEEK.VISITPLAN_WEEK", calendarWeek)
+                        .and("VISITPLANEMPLOYEEWEEK.VISITPLAN_YEAR", calendarYear)
+                        .and("VISITPLANEMPLOYEEWEEK.CONTACT_ID", user)
+                        .cell();
+
+if(weekId)
+    visitPlanEmployeeWeekID = weekId;
+else
+{
+    var newWeekId = util.getNewUUID();
+
+    var valuesWeek = [
+        newWeekId,
+        calendarWeek,
+        calendarYear,
+        user
+    ];
+
+    var columnsWeek = [
+        "VISITPLANEMPLOYEEWEEKID",
+        "VISITPLAN_WEEK",
+        "VISITPLAN_YEAR",
+        "CONTACT_ID",
+    ];
+
+    db.insertData("VISITPLANEMPLOYEEWEEK", columnsWeek, null, valuesWeek);
+
+    visitPlanEmployeeWeekID = newWeekId;
+}    
 
 var values = [
     rowData["ENTRYDATE.value"],
     rowData["BEGIN_TIME.value"],
     rowData["END_TIME.value"],
     rowData["ORGANISATION_CONTACT_ID.value"],
-    rowData["STATUS"]
+    rowData["STATUS.value"],
+    rowData["STATUS_APPOINTMENT.value"],
+    visitPlanEmployeeWeekID
 ];
 
 var columns = [
@@ -19,7 +58,9 @@ var columns = [
     "BEGIN_TIME",
     "END_TIME",
     "ORGANISATION_CONTACT_ID",
-    "STATUS"
+    "STATUS",
+    "STATUS_APPOINTMENT",
+    "VISITPLANEMPLOYEEWEEK_ID"
 ];
 
 var cond = newWhere("VISITPLANENTRY.VISITPLANENTRYID", vars.get("$field.UID")).toString();
diff --git a/entity/VisitRecommendation_entity/VisitRecommendation_entity.aod b/entity/VisitRecommendation_entity/VisitRecommendation_entity.aod
index 6010af8787908086fb34aeabc91e2b53396345e4..5b3aed5fe7eb132446e7268945dd6ba265eb60c5 100644
--- a/entity/VisitRecommendation_entity/VisitRecommendation_entity.aod
+++ b/entity/VisitRecommendation_entity/VisitRecommendation_entity.aod
@@ -1,12 +1,13 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>VisitRecommendation_entity</name>
+  <title>Visit Recommendation</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/VisitRecommendation_entity/documentation.adoc</documentation>
-  <title>Visit Recommendation</title>
   <grantCreate v="true" />
   <grantUpdateProcess>%aditoprj%/entity/VisitRecommendation_entity/grantUpdateProcess.js</grantUpdateProcess>
   <grantDeleteProcess>%aditoprj%/entity/VisitRecommendation_entity/grantDeleteProcess.js</grantDeleteProcess>
+  <initFilterProcess>%aditoprj%/entity/VisitRecommendation_entity/initFilterProcess.js</initFilterProcess>
   <iconId>VAADIN:BRIEFCASE</iconId>
   <image>VAADIN:BRIEFCASE</image>
   <titlePlural>Visit Recommendations</titlePlural>
@@ -15,7 +16,7 @@
     <entityProvider>
       <name>#PROVIDER</name>
       <targetContextField>TARGET_CONTEXT</targetContextField>
-      <targetIdField>CONTACT_ID</targetIdField>
+      <targetIdField>TARGET_ID</targetIdField>
       <documentation>%aditoprj%/entity/VisitRecommendation_entity/entityfields/#provider/documentation.adoc</documentation>
       <dependencies>
         <entityDependency>
@@ -29,10 +30,13 @@
     <entityField>
       <name>CONTACT_ID</name>
       <documentation>%aditoprj%/entity/VisitRecommendation_entity/entityfields/contact_id/documentation.adoc</documentation>
-      <title>Customer</title>
+      <title>Organisation</title>
       <consumer>OrganisationConsumer</consumer>
-      <stateProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/contact_id/stateProcess.js</stateProcess>
+      <groupable v="false" />
+      <linkedContext>Organisation</linkedContext>
+      <mandatory v="true" />
       <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/contact_id/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/contact_id/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>UID</name>
@@ -40,11 +44,8 @@
     </entityField>
     <entityField>
       <name>ORGANISATION_NAME</name>
-      <title>Customer</title>
-    </entityField>
-    <entityField>
-      <name>ORGANISATION_POINT_OF_CONTACT</name>
-      <title>Organisation point Of Contact</title>
+      <title>Organisation</title>
+      <groupable v="true" />
     </entityField>
     <entityField>
       <name>ORGANISATION_ADDRESS</name>
@@ -54,13 +55,16 @@
       <name>PRIORITY</name>
       <title>Priority</title>
       <consumer>KeywordVisitRecommendationPriority</consumer>
+      <groupable v="true" />
       <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/priority/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/priority/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>PRIORITY_SOURCE</name>
       <title>Priority Source</title>
       <consumer>KeywordVisitRecommendationSource</consumer>
+      <groupable v="true" />
       <displayValueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/priority_source/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
@@ -70,21 +74,14 @@
       <resolution>DAY</resolution>
       <outputFormat>dd.MM.yyyy</outputFormat>
       <inputFormat>dd.MM.yyyy</inputFormat>
+      <groupable v="true" />
       <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/due_date/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>INFO</name>
       <title>Info</title>
-    </entityField>
-    <entityField>
-      <name>DATE_PLANNED</name>
-      <title>Date Planned</title>
-      <contentType>DATE</contentType>
-      <resolution>DAY</resolution>
-    </entityField>
-    <entityField>
-      <name>USER_PLANNED</name>
-      <title>Planned By</title>
+      <contentType>LONG_TEXT</contentType>
     </entityField>
     <entityConsumer>
       <name>KeywordVisitRecommendationPriority</name>
@@ -109,6 +106,12 @@
         <entityName>Organisation_entity</entityName>
         <fieldName>Organisations</fieldName>
       </dependency>
+      <children>
+        <entityParameter>
+          <name>OnlyActive_param</name>
+          <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/organisationconsumer/children/onlyactive_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityConsumer>
       <name>PersonConsumer</name>
@@ -123,6 +126,15 @@
           <expose v="true" />
           <mandatory v="true" />
         </entityParameter>
+        <entityParameter>
+          <name>OrgId_param</name>
+          <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/personconsumer/children/orgid_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>OnlyActive_param</name>
+          <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/personconsumer/children/onlyactive_param/valueProcess.js</valueProcess>
+        </entityParameter>
       </children>
     </entityConsumer>
     <entityParameter>
@@ -136,28 +148,42 @@
       <children>
         <entityActionField>
           <name>NewVisitPlaneEntry</name>
-          <documentation>%aditoprj%/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/documentation.adoc</documentation>
           <title>New Weekplanentry</title>
           <onActionProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/onActionProcess.js</onActionProcess>
           <iconId>NEON:EXPORT</iconId>
           <state>AUTO</state>
           <stateProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/stateProcess.js</stateProcess>
-          <tooltip>Create New Weekplanentry</tooltip>
-          <tooltipProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/tooltipProcess.js</tooltipProcess>
         </entityActionField>
       </children>
     </entityActionGroup>
     <entityField>
-      <name>PRIORITY_ICON</name>
+      <name>ICON</name>
       <title></title>
-      <colorProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/priority_icon/colorProcess.js</colorProcess>
+      <colorProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/icon/colorProcess.js</colorProcess>
       <contentType>IMAGE</contentType>
-      <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/priority_icon/valueProcess.js</valueProcess>
+      <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/icon/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>TARGET_CONTEXT</name>
       <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/target_context/valueProcess.js</valueProcess>
     </entityField>
+    <entityField>
+      <name>USER_NEW</name>
+      <title>Created from</title>
+      <consumer>Employees</consumer>
+      <groupable v="true" />
+      <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>CONTACT_PERSON_ID</name>
+      <title>Contact</title>
+      <description></description>
+      <consumer>PersonConsumer</consumer>
+      <groupable v="true" />
+      <linkedContext>Person</linkedContext>
+      <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/contact_person_id/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/contact_person_id/displayValueProcess.js</displayValueProcess>
+    </entityField>
     <entityProvider>
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
@@ -176,9 +202,58 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityParameter>
+      <name>ContactIdPerson_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityField>
+      <name>RESPONSIBLE</name>
+      <title>Responsible</title>
+      <consumer>Employees</consumer>
+      <groupable v="true" />
+      <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/responsible/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/responsible/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>Employees</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Employee_entity</entityName>
+        <fieldName>Employees</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>OnlyActives_param</name>
+          <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/employees/children/onlyactives_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
     <entityField>
-      <name>ADDRESS_ZIP</name>
-      <title>Zip</title>
+      <name>STREET</name>
+      <title>Street</title>
+    </entityField>
+    <entityField>
+      <name>COUNTRY</name>
+      <title>Country</title>
+      <groupable v="true" />
+    </entityField>
+    <entityField>
+      <name>ZIP</name>
+      <title>ZIP</title>
+      <groupable v="true" />
+    </entityField>
+    <entityField>
+      <name>CITY</name>
+      <title>City</title>
+      <groupable v="true" />
+    </entityField>
+    <entityField>
+      <name>STATUS</name>
+    </entityField>
+    <entityField>
+      <name>TARGET_ID</name>
+      <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/target_id/valueProcess.js</valueProcess>
     </entityField>
   </entityFields>
   <recordContainers>
@@ -186,6 +261,8 @@
       <name>jDito</name>
       <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
       <isFilterable v="true" />
+      <isGroupable v="true" />
+      <isSortable v="true" />
       <contentProcess>%aditoprj%/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
       <onInsert>%aditoprj%/entity/VisitRecommendation_entity/recordcontainers/jdito/onInsert.js</onInsert>
       <onUpdate>%aditoprj%/entity/VisitRecommendation_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
@@ -196,41 +273,76 @@
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
           <name>ORGANISATION_NAME.value</name>
+          <isFilterable v="false" />
+          <isLookupFilter v="false" />
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>STREET.value</name>
           <isFilterable v="true" />
-          <isLookupFilter v="true" />
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
-          <name>ORGANISATION_POINT_OF_CONTACT.value</name>
+          <name>COUNTRY.value</name>
+          <isFilterable v="true" />
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
-          <name>ORGANISATION_ADDRESS.value</name>
+          <name>ZIP.value</name>
+          <isFilterable v="true" />
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>CITY.value</name>
+          <isFilterable v="true" />
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
           <name>PRIORITY.value</name>
           <isFilterable v="true" />
-          <isLookupFilter v="true" />
+          <isLookupFilter v="false" />
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
           <name>PRIORITY_SOURCE.value</name>
+          <isFilterable v="true" />
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
           <name>PRIORITY.displayValue</name>
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
           <name>DUE_DATE.value</name>
+          <isFilterable v="true" />
+          <isLookupFilter v="false" />
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
           <name>INFO.value</name>
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
           <name>CONTACT_ID.value</name>
+          <isFilterable v="true" />
+          <isLookupFilter v="true" />
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
           <name>PRIORITY_SOURCE.displayValue</name>
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
-          <name>ADDRESS_ZIP.value</name>
+          <name>USER_NEW.displayValue</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>USER_NEW.value</name>
           <isFilterable v="true" />
+          <isLookupFilter v="true" />
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>CONTACT_PERSON_ID.displayValue</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>CONTACT_PERSON_ID.value</name>
+          <isFilterable v="true" />
+          <isLookupFilter v="true" />
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>RESPONSIBLE.displayValue</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>RESPONSIBLE.value</name>
+          <isFilterable v="true" />
+          <isLookupFilter v="true" />
         </jDitoRecordFieldMapping>
       </recordFieldMappings>
       <filterExtensions>
diff --git a/entity/VisitRecommendation_entity/entityfields/contact_id/displayValueProcess.js b/entity/VisitRecommendation_entity/entityfields/contact_id/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e91b48435345a0dad841873c3199e8f9f1fd5ad6
--- /dev/null
+++ b/entity/VisitRecommendation_entity/entityfields/contact_id/displayValueProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("Contact_lib");
+import("system.result");
+
+result.string(ContactUtils.getFullTitleByContactId(vars.get("$field.CONTACT_ID")));
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/contact_id/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/contact_id/valueProcess.js
index 683ba24292b07fb95f063e4d5e7a2c25bcfe1807..f816ac54f7ec6f78adcdabf383dbb4b13faddb27 100644
--- a/entity/VisitRecommendation_entity/entityfields/contact_id/valueProcess.js
+++ b/entity/VisitRecommendation_entity/entityfields/contact_id/valueProcess.js
@@ -3,5 +3,5 @@ import("system.neon");
 import("system.result");
 import("system.vars");
 
-if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && (vars.get("$this.value") == null || vars.get("$this.value") == undefined))
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
     result.string(vars.get("$param.ContactId_param"));
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/contact_person_id/displayValueProcess.js b/entity/VisitRecommendation_entity/entityfields/contact_person_id/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..2b20cde46f73e3abf1d2d2a1fdf5d9380639900b
--- /dev/null
+++ b/entity/VisitRecommendation_entity/entityfields/contact_person_id/displayValueProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("Contact_lib");
+import("system.result");
+
+result.string(ContactUtils.getFullTitleByContactId(vars.get("$field.CONTACT_PERSON_ID")));
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/contact_person_id/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/contact_person_id/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a00c3df76bc3df83ed648214e443d6cdf4fb1a68
--- /dev/null
+++ b/entity/VisitRecommendation_entity/entityfields/contact_person_id/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.logging");
+import("system.neon");
+import("system.result");
+import("system.vars");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && (vars.get("$this.value") == null || vars.get("$this.value") == undefined))
+    result.string(vars.get("$param.ContactIdPerson_param"));
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/due_date/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/due_date/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9d7a1644833767138c6693baa5090f9d41247257
--- /dev/null
+++ b/entity/VisitRecommendation_entity/entityfields/due_date/valueProcess.js
@@ -0,0 +1,36 @@
+import("system.datetime");
+import("Sql_lib");
+import("Employee_lib");
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
+{
+    var contactidResp = vars.get("$field.RESPONSIBLE")
+    var maturity = newSelect("AB_ATTRIBUTE.ATTRIBUTE_NAME")
+                        .from("AB_ATTRIBUTERELATION")
+                        .join("AB_ATTRIBUTE", "AB_ATTRIBUTE.AB_ATTRIBUTEID = AB_ATTRIBUTERELATION.ID_VALUE")
+                        .where("AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID", "e8770b60-160c-466e-af57-4f90bd6e02d7")
+                        .and("AB_ATTRIBUTERELATION.OBJECT_ROWID", contactidResp)
+                        .cell();
+    
+    var due_date = new Date();
+    switch(maturity)
+    {
+        case "2 Weeks":
+            due_date =due_date.setDate(due_date.getDate() +  14);
+            break;
+        case "1 Month":
+            due_date = due_date.setMonth(due_date.getMonth() + 1);
+            break;
+        case "6 Months":
+            due_date = due_date.setMonth(due_date.getMonth() +  6);
+            break;
+        case "12 Months":
+            due_date = due_date.setMonth(due_date.getMonth() +  12);
+            break;
+    }
+    result.string(due_date);
+}
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/employees/children/onlyactives_param/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/employees/children/onlyactives_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..40effa0178464da0c7850912345f19c7fa95975a
--- /dev/null
+++ b/entity/VisitRecommendation_entity/entityfields/employees/children/onlyactives_param/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string(true);
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/priority_icon/colorProcess.js b/entity/VisitRecommendation_entity/entityfields/icon/colorProcess.js
similarity index 82%
rename from entity/VisitRecommendation_entity/entityfields/priority_icon/colorProcess.js
rename to entity/VisitRecommendation_entity/entityfields/icon/colorProcess.js
index ab4b8c5257b11b9cb7bd3dc359c767708096fec2..024b512f4ab73e7b68f250c62a934b403432666f 100644
--- a/entity/VisitRecommendation_entity/entityfields/priority_icon/colorProcess.js
+++ b/entity/VisitRecommendation_entity/entityfields/icon/colorProcess.js
@@ -5,20 +5,17 @@ import("system.neon");
 
 switch(vars.getString("$field.PRIORITY"))
 {
-    case $KeywordRegistry.taskPriority$none():
-        result.string(neon.PRIORITY_NONE_COLOR);
-        break;
     case $KeywordRegistry.visitRecommendationPriority$low():
-        result.string(neon.PRIORITY_LOW_COLOR);
+        result.string(neon.PRIORITY_NONE_COLOR);
         break;
     case $KeywordRegistry.visitRecommendationPriority$medium():
-        result.string(neon.PRIORITY_MEDIUM_COLOR);
+        result.string(neon.PRIORITY_LOW_COLOR);
         break;
     case $KeywordRegistry.visitRecommendationPriority$high():
-        result.string(neon.PRIORITY_HIGH_COLOR);
+        result.string(neon.PRIORITY_MEDIUM_COLOR);
         break;
     case $KeywordRegistry.visitRecommendationPriority$veryHigh():
-        result.string(neon.PRIORITY_HIGH_COLOR);
+        result.string(neon.PRIORITY_MEDIUM_COLOR);
         break;
     case $KeywordRegistry.visitRecommendationPriority$critical():
         result.string(neon.PRIORITY_HIGH_COLOR);
diff --git a/entity/VisitRecommendation_entity/entityfields/icon/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/icon/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4a854c12a8ace3163b6711ad66fb7c0b6de60095
--- /dev/null
+++ b/entity/VisitRecommendation_entity/entityfields/icon/valueProcess.js
@@ -0,0 +1,12 @@
+import("system.logging");
+import("system.vars");
+import("Keyword_lib");
+import("ActivityTask_lib");
+import("KeywordRegistry_basic");
+import("system.result");
+
+var source = vars.get("$field.PRIORITY_SOURCE");
+if(source== "MANUAL")
+    result.string("NEON:CONVERSATION_PLANNING_MANUAL");
+else if(source== "VISITFREQUENCY")
+    result.string("NEON:CONVERSATION_PLANNING_FREQUENCY");
diff --git a/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/documentation.adoc b/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/documentation.adoc
deleted file mode 100644
index cb90b44b24aeaa10d2a2516a74821433c31c6fae..0000000000000000000000000000000000000000
--- a/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/documentation.adoc
+++ /dev/null
@@ -1 +0,0 @@
-Creates a new Weekplanentry
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/onActionProcess.js b/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/onActionProcess.js
index 18fed0aa2bf4948e022c030e7276e08d780977bd..e5ac707432897a4fca32c7d98e93f4deea37f655 100644
--- a/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/onActionProcess.js
+++ b/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/onActionProcess.js
@@ -7,5 +7,8 @@ var params = {};
 params["OrganisationId_param"] = vars.get("$field.CONTACT_ID")
 params["NoVisitPlanEmployeeWeek_param"] = true;
 params["ComingFromRecommendation_param"] = true;
+params["ContactId_param"] = vars.get("$field.CONTACT_PERSON_ID");
+params["Entrydate_param"] = vars.get("$field.DUE_DATE");
+params["VisitrecommendationId_param"] = vars.get("$field.UID");
 
 neon.openContext("VisitPlanEntry", null, null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/tooltipProcess.js b/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/tooltipProcess.js
deleted file mode 100644
index 13967e50f1a7555e4a856ac9dde648b9501d5a4f..0000000000000000000000000000000000000000
--- a/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/tooltipProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.translate");
-import("system.result");
-
-result.string(translate.text("Create New Weekplanentry"));
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/organisationconsumer/children/onlyactive_param/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/organisationconsumer/children/onlyactive_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..40effa0178464da0c7850912345f19c7fa95975a
--- /dev/null
+++ b/entity/VisitRecommendation_entity/entityfields/organisationconsumer/children/onlyactive_param/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string(true);
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/personconsumer/children/onlyactive_param/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/personconsumer/children/onlyactive_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..40effa0178464da0c7850912345f19c7fa95975a
--- /dev/null
+++ b/entity/VisitRecommendation_entity/entityfields/personconsumer/children/onlyactive_param/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string(true);
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/personconsumer/children/orgid_param/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/personconsumer/children/orgid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e954cbeb0d367090f994ec596ab42d068a912cfd
--- /dev/null
+++ b/entity/VisitRecommendation_entity/entityfields/personconsumer/children/orgid_param/valueProcess.js
@@ -0,0 +1,9 @@
+import("Sql_lib");
+import("system.vars");
+import("system.result");
+
+if(vars.get("$field.CONTACT_ID"))
+{
+    orgid = newSelect("CONTACT.ORGANISATION_ID").from("CONTACT").where("CONTACT.CONTACTID", vars.get("$field.CONTACT_ID")).cell();
+    result.string(orgid);
+}
diff --git a/entity/VisitRecommendation_entity/entityfields/priority/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/priority/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..cbdf0752457c49ae5a0da79ccefde5d978056b3c
--- /dev/null
+++ b/entity/VisitRecommendation_entity/entityfields/priority/valueProcess.js
@@ -0,0 +1,10 @@
+import("system.logging");
+import("system.neon");
+import("system.vars");
+import("KeywordRegistry_basic");
+import("system.result");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
+    result.string($KeywordRegistry.visitRecommendationPriority$medium());
+
+    
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/priority_icon/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/priority_icon/valueProcess.js
deleted file mode 100644
index e966de8384cdb82778eb0d4ac5be2e27f7d129ae..0000000000000000000000000000000000000000
--- a/entity/VisitRecommendation_entity/entityfields/priority_icon/valueProcess.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import("ActivityTask_lib");
-import("KeywordRegistry_basic");
-import("system.result");
-
-result.string(TaskUtils.getStatusIcon($KeywordRegistry.taskStatus$new));
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/responsible/displayValueProcess.js b/entity/VisitRecommendation_entity/entityfields/responsible/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..46777a8ba61d19bf3a9f8b3dfe737b8bc15744dc
--- /dev/null
+++ b/entity/VisitRecommendation_entity/entityfields/responsible/displayValueProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("Contact_lib");
+import("system.result");
+
+
+result.string(ContactUtils.getFullTitleByContactId(vars.get("$field.RESPONSIBLE"), false));
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/responsible/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/responsible/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..f5a6569b2823a8bf027f16e51ebda3a2c25d383d
--- /dev/null
+++ b/entity/VisitRecommendation_entity/entityfields/responsible/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.neon");
+import("system.vars");
+import("Employee_lib");
+import("system.result");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
+    result.string(EmployeeUtils.getCurrentContactId())
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/target_context/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/target_context/valueProcess.js
index a16a18c5851a7581712372aa29616de6b8ea61af..2899d9fff95bf928083f552f5b71d35327b7009b 100644
--- a/entity/VisitRecommendation_entity/entityfields/target_context/valueProcess.js
+++ b/entity/VisitRecommendation_entity/entityfields/target_context/valueProcess.js
@@ -1,3 +1,7 @@
+import("system.vars");
 import("system.result");
 
-result.string("Organisation")
\ No newline at end of file
+if(vars.get("$field.CONTACT_PERSON_ID"))
+    result.string("Person")
+else
+    result.string("Organisation")
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/target_id/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/target_id/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b68d32e6889172a4a1710a2ea1a45875faadf869
--- /dev/null
+++ b/entity/VisitRecommendation_entity/entityfields/target_id/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("system.vars");
+
+if(vars.get("$field.CONTACT_PERSON_ID"))
+    result.string(vars.get("$field.CONTACT_PERSON_ID"))
+else
+    result.string(vars.get("$field.CONTACT_ID"))
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/user_new/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/user_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..23de8e21545009a5333ff42b4d9d67e2c3afbf9a
--- /dev/null
+++ b/entity/VisitRecommendation_entity/entityfields/user_new/valueProcess.js
@@ -0,0 +1,7 @@
+import("Employee_lib");
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && (vars.get("$this.value") == null || vars.get("$this.value") == undefined))
+    result.string(EmployeeUtils.getCurrentContactId());
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/initFilterProcess.js b/entity/VisitRecommendation_entity/initFilterProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..66870117e5c56c7922c951a7242e4d4829a977f3
--- /dev/null
+++ b/entity/VisitRecommendation_entity/initFilterProcess.js
@@ -0,0 +1,37 @@
+import("Contact_lib");
+import("system.neon");
+import("system.vars");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+import("system.result");
+import("Employee_lib");
+
+var res;
+if (vars.get("$sys.presentationmode") === neon.CONTEXT_PRESENTATIONMODE_FILTER) 
+{
+    var sourceKey = $KeywordRegistry.visitRecommendationPrioSource$manual()
+    filter = {
+        type: "group",
+        operator: "OR",
+        childs: [{
+            type: "row",
+            name: "RESPONSIBLE",
+            operator: "EQUAL",
+            contenttype: "TEXT",
+            key: EmployeeUtils.getCurrentContactId(),
+            value: ContactUtils.getFullTitleByContactId(EmployeeUtils.getCurrentContactId(), false)
+        },
+        {
+            type: "row",
+            name: "RESPONSIBLE",
+            operator: "ISNULL",
+            contenttype: "TEXT",
+            key: ""
+        }
+    ]
+    };
+    res = JSON.stringify(filter);
+}
+
+if (res)
+    result.string(res);
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js b/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js
index 42fecc4e3d198603e333edf0c71beed523ff615a..b81300d798fe257ccabdec92ab27e71394fc5f2b 100644
--- a/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js
@@ -1,4 +1,4 @@
-import("system.SQLTYPES");
+import("JditoFilter_lib");
 import("system.eMath");
 import("system.tools");
 import("PostalAddress_lib");
@@ -17,288 +17,258 @@ import("AttributeRegistry_basic");
 import("KeywordRegistry_basic");
 import("Util_lib");
 import("Address_lib");
-import("JditoFilter_lib");
 
-var sqlMasker = new SqlMaskingUtils();
+var recommendationData = [];
+var tmpData = [];
+var activitySubQuery = "";
+var recommendationSQLData = newSelect(
+                            [
+                                "VISITRECOMMENDATIONID",                //0
+                                "VISITRECOMMENDATION.CONTACT_ID",       //1
+                                "PRIORITY",                             //2
+                                "DUE_DATE",                             //3
+                                "SOURCE",                               //4
+                                "INFO",                                 //5
+                                "ADDRESS.ADDRESS",                      //6
+                                "ADDRESS.COUNTRY",                      //7
+                                "ADDRESS.ZIP",                          //8
+                                "ADDRESS.CITY",                         //9
+                                "VISITRECOMMENDATION.USER_NEW",         //10
+                                "VISITRECOMMENDATION.CONTACT_PERSON_ID",//11
+                                "VISITRECOMMENDATION.RESPONSIBLE",      //12
+                            ]) 
+                            .from("VISITRECOMMENDATION")
+                            .join("CONTACT", "coalesce(VISITRECOMMENDATION.CONTACT_PERSON_ID, VISITRECOMMENDATION.CONTACT_ID) = CONTACT.CONTACTID")
+                            .leftJoin("ADDRESS", "CONTACT.ADDRESS_ID = ADDRESS.ADDRESSID")
+                            .where("VISITRECOMMENDATION.STATUS is null")
 
-var activitySubQuery = newSelect("max(ENTRYDATE)")
-                                .from("ACTIVITY")
-                                .join("ACTIVITYLINK", "ACTIVITYID = ACTIVITY_ID")
-                                .where("ACTIVITYLINK.OBJECT_ROWID = org.ORGANISATIONID")
-                                .and("ACTIVITY.CATEGORY", "VISIT")
 
-var idValues = null;
+var idValues = false;
 if (vars.exists("$local.idvalues") && vars.get("$local.idvalues"))
-    idValues = vars.get("$local.idvalues");
+    idValues = true;
 
-//dynamic Recommendations
-//recommended Organisations containing the attribute Visit Frequency
+if(idValues == true)
+    recommendationSQLData.and("VISITRECOMMENDATION.VISITRECOMMENDATIONID", vars.get("$local.idvalues"), SqlBuilder.IN())
 
-if (!idValues)
-{
-    var visitFrequencyData = newSelect([
-            "org.ORGANISATIONID", 
-            "NAME", 
-            newSelect("CONTACT.CONTACTID")
-                .from("CONTACT")
-                .leftJoin("AB_ATTRIBUTERELATION", "CONTACT.CONTACTID = AB_ATTRIBUTERELATION.OBJECT_ROWID")
-                .leftJoin("AB_ATTRIBUTE", "AB_ATTRIBUTE.AB_ATTRIBUTEID = AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID")
-                .leftJoin("ORGANISATION", "ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID")
-                .where("AB_ATTRIBUTE.AB_ATTRIBUTEID", $AttributeRegistry.visitPlanPointOfContact()), 
-            AddressUtils.formatOnelineSql(), 
-            "visitPlanFrequency.ID_VALUE", 
-            "'" + $KeywordRegistry.visitRecommendationPrioSource$visitFrequency()+"'" , 
-            activitySubQuery, 
-            "CONTACTID",
-            newSelect("min(ENTRYDATE)")
-                .from("VISITPLANENTRY") 
-                .where("CONTACT.CONTACTID", "VISITPLANENTRY.ORGANISATION_CONTACT_ID") 
-                .and(newWhere("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$planned())
-                    .or("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$Appointmentarranged()))
-                .and("VISITPLANENTRY.ENTRYDATE", newSelect("min(vp.ENTRYDATE)")
-                    .from("VISITPLANENTRY", "vp")
-                    .where(["VISITPLANENTRY", "ORGANISATION_CONTACT_ID", "vp"], "visitplanentry.ORGANISATION_CONTACT_ID")
-                    .and(["VISITPLANENTRY", "ENTRYDATE", "vp"], datetime.today())
-                    .and(newWhere(["VISITPLANENTRY", "STATUS", "vp"], 
-                    $KeywordRegistry.visitPlanEntryStatus$planned())
-                    .or(["VISITPLANENTRY", "STATUS", "vp"], 
-                    $KeywordRegistry.visitPlanEntryStatus$Appointmentarranged()))
-                    .cell()),
-            "ADDRESS.ZIP"
-        ])
-        .from("CONTACT")
-        .join("ORGANISATION", "CONTACT.ORGANISATION_ID = org.ORGANISATIONID", "org")
-        .leftJoin("PERSON", "PERSON.PERSONID = CONTACT.PERSON_ID")
-        .leftJoin("ADDRESS", "ADDRESS_ID = ADDRESSID")
-        .join("AB_ATTRIBUTERELATION", "visitPlanFrequency.OBJECT_ROWID = CONTACT.CONTACTID", "visitPlanFrequency")
-        .where(["AB_ATTRIBUTERELATION", "AB_ATTRIBUTE_ID", "visitPlanFrequency"], $AttributeRegistry.visitPlanFrequency())
-        .table();
-        
-    
- }
+recommendationSQLData = recommendationSQLData.table();
 
-var prioSubSql = _getPrioByDueDateSubSql("VISITRECOMMENDATION.DUE_DATE", "VISITRECOMMENDATION.PRIORITY");
-
-var recommendationSQLData = newSelect([
-    "VISITRECOMMENDATIONID", 
-    "VISITRECOMMENDATION.CONTACT_ID", 
-    "ORGANISATION.NAME", 
-    prioSubSql, 
-    "VISITRECOMMENDATION.DUE_DATE", 
-    "VISITRECOMMENDATION.SOURCE", 
-    "VISITRECOMMENDATION.INFO", 
-    AddressUtils.formatOnelineSql(), 
-    newSelect("CONTACT.CONTACTID")
-                .from("CONTACT")
-                .leftJoin("AB_ATTRIBUTERELATION", "CONTACT.CONTACTID = AB_ATTRIBUTERELATION.OBJECT_ROWID")
-                .leftJoin("AB_ATTRIBUTE", "AB_ATTRIBUTE.AB_ATTRIBUTEID = AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID")
-                .leftJoin("ORGANISATION", "ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID")
-                .where("AB_ATTRIBUTE.AB_ATTRIBUTEID", $AttributeRegistry.visitPlanPointOfContact())
-                .and("CONTACT.CONTACTID", "VISITRECOMMENDATION.CONTACT_ID")
-                .cell(),
-                
-    newSelect("min(ENTRYDATE)")
-                .from("VISITPLANENTRY")
-                .where("VISITPLANENTRY.ORGANISATION_CONTACT_ID", "VISITRECOMMENDATION.CONTACT_ID")
-                .and("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$planned())
-                .or("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$Appointmentarranged())
-                .and("VISITPLANENTRY.entrydate", datetime.today(), SqlBuilder.GREATER())
-                .cell(),
-                
-    newSelect("VISITRECOMMENDATION.CONTACT_ID")
-                .from("VISITPLANEMPLOYEEWEEK, VISITPLANENTRY")
-                .where("VISITPLANENTRY.VISITPLANEMPLOYEEWEEK_ID", "VISITPLANEMPLOYEEWEEK.VISITPLANEMPLOYEEWEEKID")
-                .and("VISITRECOMMENDATION.CONTACT_ID", "VISITPLANENTRY.ORGANISATION_CONTACT_ID")
-                .and(newWhere("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$planned())
-                .or("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$Appointmentarranged()))
-                .and("VISITPLANENTRY.entrydate", newSelect("min(vp.entrydate)")
-                                                                .from("visitplanentry", "VP")
-                                                                .where(["VISITPLANENTRY", "entrydate", "vp"], datetime.today(), SqlBuilder.GREATER())
-                                                                .and(["VISITPLANENTRY", "STATUS", "vp"], $KeywordRegistry.visitPlanEntryStatus$planned())
-                                                                .or(["VISITPLANENTRY", "STATUS", "vp"], $KeywordRegistry.visitPlanEntryStatus$Appointmentarranged()).cell()),
-    "ADDRESS.ZIP"
-])
-        .from("VISITRECOMMENDATION")
-        .join("CONTACT", "VISITRECOMMENDATION.CONTACT_ID = CONTACT.CONTACTID")
-        .leftJoin("ORGANISATION", "CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID")
-        .join("ADDRESS", "CONTACT.ADDRESS_ID = ADDRESS.ADDRESSID")
-        .whereIfSet("VISITRECOMMENDATION.VISITRECOMMENDATIONID", idValues, SqlBuilder.IN());
-
-var filterCond = new FilterSqlTranslator(vars.get("$local.filter"), "VISITRECOMMENDATION")
-    .addSqlFieldMapping("ORGANISATION_NAME", "ORGANISATION.NAME")
-    .addSqlFieldMapping("ADDRESS_ZIP", "ADDRESS.ZIP")
-    .addSpecialFieldConditionFn("PRIORITY", function (pFilterValue, pOperator)
-    {
-        switch (pOperator)
-        {
-            case "EQUAL":
-                return [prioSubSql[0] + " = ?", prioSubSql[1].concat([[pFilterValue, SQLTYPES.VARCHAR]])];
-            case "NOT_EQUAL":
-                return [prioSubSql[0] + " != ?", prioSubSql[1].concat([[pFilterValue, SQLTYPES.VARCHAR]])];
-            case "ISNULL":
-                return [prioSubSql[0] + " is null", prioSubSql[1]];
-            case "ISNOTNULL":
-                return [prioSubSql[0] + " is not null", prioSubSql[1]];
-            default:
-                return false;
-        }
-    })
-    .getSqlCondition();
-
-recommendationSQLData = recommendationSQLData.andIfSet(filterCond).table();
-
-var recommendationData = recommendationSQLData.map(function ([uid, contactId, organisationName, priority, dueDate, prioSource, info, address, what, plannedDate, visitContact, addressZip])
+for( let i = 0; i < recommendationSQLData.length; i++)
 {
-    var title = "";
-    if(visitContact)
-    {
-        var user = tools.getUserByAttribute(tools.CONTACTID, visitContact);
-        title = user[tools.TITLE]
-    }
-    
-    return [
-        uid,
-        organisationName,
-        plannedDate,
-        address,
-        priority,
-        prioSource,
-        KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPrioSource(), prioSource), //Source of Priority (displayvalue)
-        dueDate,
-        info,
-        contactId,
-        "",
-        addressZip
+    if(recommendationSQLData[i][2])
+        var prio = recommendationSQLData[i][2];
+    else if(recommendationSQLData[i][3])
+        prio = getPrioByDueDate(recommendationSQLData[i][3]);
+    else
+        prio = $KeywordRegistry.visitRecommendationPriority$low();  
+
+    tmpData = [
+        recommendationSQLData[i][0], //UID.value
+        ContactUtils.getFullTitleByContactId(recommendationSQLData[i][1]), //ORGANISATION_NAME.value
+        recommendationSQLData[i][6], //STREET.value
+        recommendationSQLData[i][7], //COUNTRY.value
+        recommendationSQLData[i][8], //ZIP.value
+        recommendationSQLData[i][9], //CITY.value
+        prio, //PRIORITY.value
+        recommendationSQLData[i][4], //PRIORITY_SOURCE.value
+        KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPriority(), prio), //PRIORITY.displayValue
+        recommendationSQLData[i][3], //DUE_DATE.value
+        recommendationSQLData[i][5], //INFO.value
+        recommendationSQLData[i][1], //CONTACT_ID.value
+        KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPrioSource(), recommendationSQLData[i][4]), //PRIORITY_SOURCE.displayValue
+        ContactUtils.getFullTitleByContactId(recommendationSQLData[i][10], false), //USER_NEW.displayvalue
+        recommendationSQLData[i][10], //USER_NEW.value
+        ContactUtils.getFullTitleByContactId(recommendationSQLData[i][11], false), //CONTACT_PERSON_ID.displayvalue
+        recommendationSQLData[i][11], //CONTACT_PERSON_ID.value
+        ContactUtils.getFullTitleByContactId(recommendationSQLData[i][12], false), //RESPONSIBLE.displayvalue
+        recommendationSQLData[i][12] //RESPONSIBLE.value
     ];
-});
 
+    recommendationData.push(tmpData);
+}
+
+//===========Visitfrequency============
 var monthly = parseInt(datetime.ONE_DAY * 31);
 var semiannually = parseInt(datetime.ONE_DAY * 183);
 var quarterly = parseInt(datetime.ONE_DAY * 93);
 var yearly = parseInt(datetime.ONE_DAY * 365);
 
-if (!idValues)
+//dynamic Recommendations
+//recommended Organisations containing the attribute Visit Frequency
+if(idValues == false)
 {
-    var frequencyData = [];
+    
+    activitySubQuery = newSelect("max(ENTRYDATE)")
+                        .from("ACTIVITY")
+                        .join("ACTIVITYLINK", "ACTIVITYID = ACTIVITY_ID")
+                        .where("ACTIVITYLINK.OBJECT_ROWID = CONTACT.CONTACTID")
+                        .and("ACTIVITY.CATEGORY", "VISIT")
+
+    var visitFrequencyData = newSelect(["''"    //0
+                                        , "CONTACT.CONTACTID" //1
+                                        , "(" + newSelect("CONTACT.CONTACTID")
+                                                .from("CONTACT")
+                                                .leftJoin("AB_ATTRIBUTERELATION", "CONTACT.CONTACTID = AB_ATTRIBUTERELATION.OBJECT_ROWID")
+                                                .leftJoin("AB_ATTRIBUTE", "AB_ATTRIBUTE.AB_ATTRIBUTEID = AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID")
+                                                .leftJoin("ORGANISATION", "ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID")
+                                                .where("AB_ATTRIBUTE.AB_ATTRIBUTEID", $AttributeRegistry.visitPlanPointOfContact())
+                                                + 
+                                            ")"            //2
+                                        ,"ADDRESS.ADDRESS" //3
+                                        ,"ADDRESS.COUNTRY" //4
+                                        ,"ADDRESS.ZIP"     //5
+                                        ,"ADDRESS.CITY"    //6
+                                        , "visitPlanFrequency.ID_VALUE"//7
+                                        , activitySubQuery //8
+                                        , "org.NAME" //9
+                                        , "PERSON.PERSONID" //10
+                                ])
+                            .from("CONTACT")
+                            .join("ORGANISATION", "CONTACT.ORGANISATION_ID = org.ORGANISATIONID", "org")
+                            .leftJoin("PERSON", "PERSON.PERSONID = CONTACT.PERSON_ID")
+                            .leftJoin("ADDRESS", "ADDRESS_ID = ADDRESSID")
+                            .join("AB_ATTRIBUTERELATION", "visitPlanFrequency.OBJECT_ROWID = CONTACT.CONTACTID", "visitPlanFrequency")
+                            .where(["AB_ATTRIBUTERELATION", "AB_ATTRIBUTE_ID", "visitPlanFrequency"], $AttributeRegistry.visitPlanFrequency())
+                            .table()
+     
     for (var i = 0; i < visitFrequencyData.length; i++)
     {
-        let title = "";
-
-        if(visitFrequencyData[i][10])
-        {
-            let user = tools.getUserByAttribute(tools.CONTACTID, visitFrequencyData[i][9]);
-            title = user[tools.TITLE]
-        }
-        
-        let tmpData = [
-            visitFrequencyData[i][0],                 //UID
-            visitFrequencyData[i][1],                 //Organisation Name
-            visitFrequencyData[i][2],                 //point of contact
-            visitFrequencyData[i][3],                 //Address
-            "",                                       //prio
-            visitFrequencyData[i][5],                 //Source of Priority (Id)
-            "",                                       //Source of Priority (displayvalue)
-            "",                                       //dueDate
-            "",                                       //info
-            visitFrequencyData[i][7],                 //ContactId
-            "",
-            visitFrequencyData[i][9]
-        ];
+        var isPersonContact = visitFrequencyData[i][10] != ""
         var dueDate = "";
-        var lastVisitDate = visitFrequencyData[i][8];
-
-        if (!lastVisitDate)
+        var lastVisitDate = "";
+        var today = datetime.date();
+        if((visitFrequencyData[i][8]).length == 0)
         {
-            dueDate = datetime.date();
+            dueDate = today;
         }
         else
         {
-            switch(visitFrequencyData[i][4])
+            lastVisitDate = visitFrequencyData[i][8];
+            switch(visitFrequencyData[i][7])
             {
                 case $AttributeRegistry.visitPlanFrequency$monthly():
-                {
                     dueDate = eMath.addInt(lastVisitDate, monthly);
                     break;
-                }
                 case $AttributeRegistry.visitPlanFrequency$quarterly():
-                {
                     dueDate = eMath.addInt(lastVisitDate, quarterly);
                     break;
-                }
                 case $AttributeRegistry.visitPlanFrequency$semiannually():
-                {
                     dueDate = eMath.addInt(lastVisitDate, semiannually);
                     break;
-                }
                 case $AttributeRegistry.visitPlanFrequency$yearly():
-                {
                     dueDate = eMath.addInt(lastVisitDate, yearly);
                     break;
-                }
                 default:
-                {
                     break;
-                }
-
             }
         }
-        tmpData[7] = dueDate;                                       //Due Date
-        tmpData[4] = getPrioByDueDate(dueDate);                     //Priority
-
-        frequencyData.push(tmpData);
+        
+        tmpData = [
+            visitFrequencyData[i][1], //UID.value
+            visitFrequencyData[i][9], //ORGANISATION_NAME.value
+            visitFrequencyData[i][3], //STREET.value
+            visitFrequencyData[i][4], //COUNTRY.value
+            visitFrequencyData[i][5], //ZIP.value
+            visitFrequencyData[i][6], //CITY.value
+            getPrioByDueDate(dueDate), //PRIORITY.value
+            $KeywordRegistry.visitRecommendationPrioSource$visitFrequency(), //PRIORITY_SOURCE.value
+            KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPriority(), getPrioByDueDate(dueDate)), //PRIORITY.displayValue
+            dueDate, //DUE_DATE.value
+            "", //INFO.value
+            visitFrequencyData[i][1], //CONTACT_ID.value
+            KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPrioSource(), $KeywordRegistry.visitRecommendationPrioSource$visitFrequency()), //PRIORITY_SOURCE.displayValue
+            "", //USER_NEW.displayValue
+            "", //USER_NEW.value
+            ContactUtils.getFullTitleByContactId(visitFrequencyData[i][1], false), //CONTACT_PERSON_ID.displayValue
+            isPersonContact ? visitFrequencyData[i][1]: "", //CONTACT_PERSON_ID.value
+            "", //RESPONSIBLE.displayValue
+            "" //RESPONSIBLE.value
+        ];
+        
+        
+        var manualRec = newSelect("VISITRECOMMENDATION.VISITRECOMMENDATIONID")
+        .from("VISITRECOMMENDATION")
+        .where("VISITRECOMMENDATION.CONTACT_ID", tmpData[0])
+        .or("VISITRECOMMENDATION.CONTACT_PERSON_ID", tmpData[0])
+        .cell()
+        
+        var visitEntry = newSelect("VISITPLANENTRY.VISITPLANENTRYID")
+        .from("VISITPLANENTRY")
+        .where(newWhere("VISITPLANENTRY.CONTACT_ID", tmpData[0])
+            .or("VISITPLANENTRY.ORGANISATION_CONTACT_ID", tmpData[0]))
+        
+       var visitEntryExists = visitEntry.cell();
+       
+       visitEntry = visitEntry.and(newWhere("VISITPLANENTRY.ENTRYDATE", eMath.subInt(vars.get("$sys.today"), datetime.ONE_DAY * 7), SqlBuilder.LESS_OR_EQUAL())
+            .and("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$Visitreportcreated(), SqlBuilder.NOT_EQUAL()))
+            .or("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$Visitreportcreated(), SqlBuilder.EQUAL()).cell()
+       
+       if(!manualRec) //if manual Record was created, visitfrequency is not relevant
+       {
+           //!visitEntryExists - if no visitplanentry for the organisation/person from recommendation was created -> show recommendation so it can be planned
+           if(!visitEntryExists || visitEntry)
+           {    
+               recommendationData.push(tmpData);
+           }
+       }
     }
-    var recordFilter = vars.get("$local.filter");
-    if (recordFilter && recordFilter.filter)
-        frequencyData = JditoFilterUtils.filterRecords(["UID", "ORGANISATION_NAME", "", "ORGANISATION_ADDRESS", "PRIORITY", "", "", "DUE_DATE", "INFO", "CONTACT_ID", "", "ADDRESS_ZIP"], 
-            frequencyData, recordFilter.filter);
-    recommendationData = recommendationData.concat(frequencyData);
 }
 
+var filter = vars.get("$local.filter"); 
+//TODO: this is a workaround that filters the records manually, it should be possible to filter the users with a tools.* method
+var filterFields = ["", "ORGANISATION_NAME", "STREET", "COUNTRY" , "ZIP", "CITY", "PRIORITY", "PRIORITY_SOURCE", "", "DUE_DATE", "INFO", "CONTACT_ID"
+    , "", "", "USER_NEW", "", "CONTACT_PERSON_ID", "", "RESPONSIBLE"];
+var filterFns = {
+    "$$$LOOKUPFIELD$$$" : function (pRecordValue, pFilterValue, pOperator, pRow)
+    {
+        if (pOperator == "CONTAINS")
+        {
+            pRow = [pRow[1], pRow[3], pRow[4], pRow[5]];
+            var filterValues = pFilterValue.split(" ").filter(function (val) {return val.trim();});
+            return filterValues.every(function (filterValue)
+            {
+                return pRow.some(function (fieldValue)
+                {
+                    return (new RegExp(filterValue, "i")).test(fieldValue);
+                });
+            });
+        }
+        return false;
+    }
+};
+recommendationData = JditoFilterUtils.filterRecords(filterFields, recommendationData, filter.filter, filterFns);
 
-//add Display Value for Priority and PrioritySource
-for (let i = 0; i < recommendationData.length; i++)
-{
-    recommendationData[i][6] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPriority(), recommendationData[i][4])
-    recommendationData[i][10] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPrioSource(), recommendationData[i][5])
-}
-
-//sort Array by priority; highest priority first
-ArrayUtils.sort2d(recommendationData, 4, true)
 
-result.object(recommendationData);
+var order = vars.get("$local.order");
 
-function _getPrioByDueDateSubSql (pDueDateField, pPriorityField)
+var columnOrder = {
+    "ORGANISATION_NAME.value": 1, 
+    "STREET.value": 2,
+    "COUNTRY.value": 3, 
+    "ZIP.value": 4, 
+    "CITY.value": 5, 
+    "PRIORITY.value": 6, 
+    "PRIORITY_SOURCE.value": 7, 
+    "DUE_DATE.value": 9,
+    "USER_NEW.displayValue": 13,
+    "CONTACT_PERSON_ID.displayValue": 15,
+    "RESPONSIBLE.displayValue": 17
+};
+var sortOrder = [];
+for (let field in order)
 {
-    var currentDate = datetime.date();
-    var sqlMasker = new SqlMaskingUtils();
-    //!SqlBuilder
-    var subSql = "case when " + pDueDateField + " < ? then '" + $KeywordRegistry.visitRecommendationPriority$critical()
-        + "' when " + pDueDateField + " < ? then '" + $KeywordRegistry.visitRecommendationPriority$veryHigh()
-        + "' when " + pDueDateField + " < ? then '" + $KeywordRegistry.visitRecommendationPriority$high()
-        + "' when " + pDueDateField + " < ? then '" + $KeywordRegistry.visitRecommendationPriority$medium()
-        + "' else '" + $KeywordRegistry.visitRecommendationPriority$low() + "' end";
-    
-    var [table, field] = pDueDateField.split(".");
-    var dateFieldType = db.getColumnTypes(table, [field])[0];
-    
-    var dateDiffs = [
-        0,                      //critical
-        datetime.ONE_DAY * 3,   //very high
-        datetime.ONE_WEEK,      //high
-        datetime.ONE_WEEK * 2   //medium
-    ];
-    
-    var preparedValues = dateDiffs.map(function (dateDiff)
+    if (field in columnOrder)
     {
-        return [(currentDate + dateDiff).toString(), dateFieldType];
-    });
-    
-    if (pPriorityField)
-        subSql = sqlMasker.isNull(pPriorityField, "(" + subSql + ")");
-    
-    return [subSql, preparedValues];
+        sortOrder.push(columnOrder[field]);
+        sortOrder.push(order[field] == "DOWN");
+    }
 }
 
+if (!sortOrder.length) 
+    sortOrder = [9, false]; //default sort by duedate
+
+ArrayUtils.sortMulti(recommendationData, sortOrder);
+result.object(recommendationData);
+
 function getPrioByDueDate(pDueDate)
 {
     var prio = "";
diff --git a/entity/VisitRecommendation_entity/recordcontainers/jdito/onInsert.js b/entity/VisitRecommendation_entity/recordcontainers/jdito/onInsert.js
index 1da186c5ef681fd19c07d840b01e23304d33dba9..39eb6a4365c275ec35467aa8f880cf570f1acef0 100644
--- a/entity/VisitRecommendation_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/VisitRecommendation_entity/recordcontainers/jdito/onInsert.js
@@ -3,16 +3,18 @@ import("system.db");
 import("system.vars");
 
 var rowData = vars.get("$local.rowdata");
-var contact_id = rowData["CONTACT_ID.value"];
 var source = $KeywordRegistry.visitRecommendationPrioSource$manual();
 
 var values = [
     rowData["UID.value"],
-    contact_id,
+    rowData["CONTACT_ID.value"],
     rowData["DUE_DATE.value"],
     rowData["PRIORITY.value"],
     source,
-    vars.get("$field.INFO")
+    rowData["INFO.value"] || '',
+    rowData["CONTACT_PERSON_ID.value"] || '',
+    vars.get("$field.USER_NEW"),
+    vars.get("$field.RESPONSIBLE")
 ];
 
 var columns = [
@@ -21,7 +23,10 @@ var columns = [
     "DUE_DATE",
     "PRIORITY",
     "SOURCE",
-    "INFO"
+    "INFO",
+    "CONTACT_PERSON_ID",
+    "USER_NEW",
+    "RESPONSIBLE"
 ];
 
 db.insertData("VISITRECOMMENDATION", columns, null, values);
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/recordcontainers/jdito/onUpdate.js b/entity/VisitRecommendation_entity/recordcontainers/jdito/onUpdate.js
index b27ed4d0483f8515f6552defc190addbb70cf8b1..bf266e7b7780d5313d1b544cd2c0a8731dec2a08 100644
--- a/entity/VisitRecommendation_entity/recordcontainers/jdito/onUpdate.js
+++ b/entity/VisitRecommendation_entity/recordcontainers/jdito/onUpdate.js
@@ -5,11 +5,15 @@ import("system.vars");
 var rowdata = vars.get("$local.rowdata");
 var dbFields = {
     "ORGANISATION_NAME.value": "ORGANISATION_NAME",
+    "CONTACT_ID.value": "CONTACT_ID",
     "ORGANISATION_POINT_OF_CONTACT.value": "ORGANISATION_POINT_OF_CONTACT",
     "ORGANISATION_ADDRESS.value" : "ORGANISATION_ADDRESS",
     "PRIORITY.value" : "PRIORITY",
     "DUE_DATE.value": "DUE_DATE",
-    "INFO.value": "INFO"
+    "INFO.value": "INFO",
+    "CONTACT_PERSON_ID.value": "CONTACT_PERSON_ID",
+    "USER_NEW.value": "USER_NEW",
+    "RESPONSIBLE.value": "RESPONSIBLE"
 };
 var fieldValues = {};
 vars.get("$local.changed").forEach(function (field)
diff --git a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod
index b523e8b8d09e3810d231cab32aa37701e5ec5046..17bfa5940323c1306ad8b4a09841f9e3cc53e973 100644
--- a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod
+++ b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>WorkflowDefinition_entity</name>
+  <title>Workflow Definition</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/WorkflowDefinition_entity/documentation.adoc</documentation>
-  <title>Workflow Definition</title>
   <grantCreateProcess>%aditoprj%/entity/WorkflowDefinition_entity/grantCreateProcess.js</grantCreateProcess>
   <grantDelete v="false" />
   <contentTitleProcess>%aditoprj%/entity/WorkflowDefinition_entity/contentTitleProcess.js</contentTitleProcess>
@@ -34,26 +34,6 @@
       <name>UID</name>
       <valueProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/uid/valueProcess.js</valueProcess>
     </entityField>
-    <entityActionGroup>
-      <name>tableActions</name>
-      <children>
-        <entityActionField>
-          <name>openModeler</name>
-          <title>Open modeler</title>
-          <onActionProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/tableactions/children/openmodeler/onActionProcess.js</onActionProcess>
-          <isObjectAction v="false" />
-          <iconId>VAADIN:EXTERNAL_LINK</iconId>
-          <stateProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/tableactions/children/openmodeler/stateProcess.js</stateProcess>
-        </entityActionField>
-        <entityActionField>
-          <name>createModel</name>
-          <title>Create model</title>
-          <onActionProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/tableactions/children/createmodel/onActionProcess.js</onActionProcess>
-          <isObjectAction v="false" />
-          <iconId>NEON:PLUS</iconId>
-        </entityActionField>
-      </children>
-    </entityActionGroup>
     <entityField>
       <name>CATEGORY</name>
       <title>Category</title>
@@ -77,17 +57,17 @@
     <entityConsumer>
       <name>Instances</name>
       <selectionMode>MULTI</selectionMode>
+      <dependency>
+        <name>dependency</name>
+        <entityName>WorkflowInstance_entity</entityName>
+        <fieldName>InstancesOfWorkflow</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>WorkflowDefinitionKey_param</name>
           <valueProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/instances/children/workflowdefinitionkey_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>WorkflowInstance_entity</entityName>
-        <fieldName>InstancesOfWorkflow</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>KEY</name>
@@ -110,13 +90,6 @@
       <contentType>IMAGE</contentType>
       <valueProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/diagram/valueProcess.js</valueProcess>
     </entityField>
-    <entityActionField>
-      <name>openAdminView</name>
-      <title>Open admin view</title>
-      <onActionProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CURLY_BRACKETS</iconId>
-      <stateProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/openadminview/stateProcess.js</stateProcess>
-    </entityActionField>
     <entityParameter>
       <name>ProcessDefinitionKey_param</name>
       <expose v="true" />
@@ -135,6 +108,11 @@
     </entityParameter>
     <entityConsumer>
       <name>OtherVersions</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>WorkflowDefinition_entity</entityName>
+        <fieldName>WorkflowVersions</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ProcessDefinitionKey_param</name>
@@ -145,11 +123,6 @@
           <valueProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/otherversions/children/currentversion_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>WorkflowDefinition_entity</entityName>
-        <fieldName>WorkflowVersions</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>WorkflowVersions</name>
@@ -172,30 +145,29 @@
     </entityField>
     <entityConsumer>
       <name>StartConfigs</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>WorkflowStartConfig_entity</entityName>
+        <fieldName>StartConfig</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ProcessDefinitionKey_param</name>
           <valueProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/startconfigs/children/processdefinitionkey_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>WorkflowStartConfig_entity</entityName>
-        <fieldName>StartConfig</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>Context_param</name>
       <expose v="true" />
     </entityParameter>
-    <entityActionField>
-      <name>downloadXML</name>
-      <title>Export workflow</title>
-      <onActionProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/downloadxml/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:DOWNLOAD</iconId>
-    </entityActionField>
     <entityConsumer>
       <name>Signals</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>WorkflowSignal_entity</entityName>
+        <fieldName>ProcessDefinitionSignals</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ProcessDefinitionId_param</name>
@@ -206,11 +178,6 @@
           <valueProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/signals/children/processdefinitionkey_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>WorkflowSignal_entity</entityName>
-        <fieldName>ProcessDefinitionSignals</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>VERSION_TITLE</name>
@@ -219,35 +186,68 @@
       <name>IsWorkflowImport_param</name>
       <expose v="true" />
     </entityParameter>
-    <entityActionField>
-      <name>editWorkflow</name>
-      <title>Edit workflow</title>
-      <onActionProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/editworkflow/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:EDIT</iconId>
-      <tooltip>Edit workflow</tooltip>
-    </entityActionField>
     <entityField>
       <name>WORKFLOWDEFINITION_OBJECTTYPE</name>
       <valueProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/workflowdefinition_objecttype/valueProcess.js</valueProcess>
     </entityField>
     <entityConsumer>
       <name>CategoryKeyword</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/categorykeyword/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityActionGroup>
+      <name>tableActions</name>
+      <children>
+        <entityActionField>
+          <name>openModeler</name>
+          <title>Open modeler</title>
+          <onActionProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/tableactions/children/openmodeler/onActionProcess.js</onActionProcess>
+          <isObjectAction v="false" />
+          <iconId>VAADIN:EXTERNAL_LINK</iconId>
+          <stateProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/tableactions/children/openmodeler/stateProcess.js</stateProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>createModel</name>
+          <title>Create model</title>
+          <onActionProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/tableactions/children/createmodel/onActionProcess.js</onActionProcess>
+          <isObjectAction v="false" />
+          <iconId>NEON:PLUS</iconId>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
+    <entityActionField>
+      <name>downloadXML</name>
+      <title>Export workflow</title>
+      <onActionProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/downloadxml/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:DOWNLOAD</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>editWorkflow</name>
+      <title>Edit workflow</title>
+      <onActionProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/editworkflow/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:EDIT</iconId>
+      <tooltip>Edit workflow</tooltip>
+    </entityActionField>
+    <entityActionField>
+      <name>openAdminView</name>
+      <title>Open admin view</title>
+      <onActionProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CURLY_BRACKETS</iconId>
+      <stateProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/openadminview/stateProcess.js</stateProcess>
+    </entityActionField>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
diff --git a/entity/WorkflowDefinition_entity/entityfields/diagram/valueProcess.js b/entity/WorkflowDefinition_entity/entityfields/diagram/valueProcess.js
index a9231e7044d7ab9e4331809c863662b08f525404..ec59f1adf3910e1a61ea891917b4bd11789be6e4 100644
--- a/entity/WorkflowDefinition_entity/entityfields/diagram/valueProcess.js
+++ b/entity/WorkflowDefinition_entity/entityfields/diagram/valueProcess.js
@@ -1,7 +1,19 @@
+import("system.logging");
 import("system.vars");
 import("system.result");
 import("system.neon");
 import("system.workflow");
 
 if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW && vars.get("$field.VERSION"))
-    result.string(workflow.getProcessDiagram(vars.get("$field.UID")));
\ No newline at end of file
+{
+    try
+    {
+        var uid = vars.get("$field.UID");
+        var diagram = workflow.getProcessDiagram(uid);
+        result.string(diagram);
+    }
+    catch (err)
+    {
+        logging.log(err);
+    }
+}
\ No newline at end of file
diff --git a/entity/WorkflowInstanceHistory_entity/WorkflowInstanceHistory_entity.aod b/entity/WorkflowInstanceHistory_entity/WorkflowInstanceHistory_entity.aod
index 4b33d427532d30ddafb627ea0089fbae66a6bd11..2ca484e8dd1742dd952588ea6501469843056906 100644
--- a/entity/WorkflowInstanceHistory_entity/WorkflowInstanceHistory_entity.aod
+++ b/entity/WorkflowInstanceHistory_entity/WorkflowInstanceHistory_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>WorkflowInstanceHistory_entity</name>
+  <title>History</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/WorkflowInstanceHistory_entity/documentation.adoc</documentation>
-  <title>History</title>
   <grantCreate v="false" />
   <grantUpdate v="false" />
   <grantDelete v="false" />
@@ -78,17 +78,17 @@
     </entityField>
     <entityConsumer>
       <name>ActivityTypeKeyword</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/WorkflowInstanceHistory_entity/entityfields/activitytypekeyword/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>#PROVIDER_AGGREGATES</name>
diff --git a/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod b/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod
index baf0056902e1eada308214db5fdd0f30d9c05c91..ecdc057e397f87bea6051e6797f820fb170545b2 100644
--- a/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod
+++ b/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>WorkflowInstance_entity</name>
+  <title>Workflow instance</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/WorkflowInstance_entity/documentation.adoc</documentation>
-  <title>Workflow instance</title>
   <contentTitleProcess>%aditoprj%/entity/WorkflowInstance_entity/contentTitleProcess.js</contentTitleProcess>
   <initFilterProcess>%aditoprj%/entity/WorkflowInstance_entity/initFilterProcess.js</initFilterProcess>
   <titlePlural>Workflow instances</titlePlural>
@@ -80,31 +80,31 @@
     </entityField>
     <entityConsumer>
       <name>Tasks</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>WorkflowTask_entity</entityName>
+        <fieldName>InstanceTasks</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>WorkflowInstanceId_param</name>
           <valueProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/tasks/children/workflowinstanceid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>WorkflowTask_entity</entityName>
-        <fieldName>InstanceTasks</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>WorkflowDefinitions</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>WorkflowDefinition_entity</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>Context_param</name>
           <valueProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/workflowdefinitions/children/context_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>WorkflowDefinition_entity</entityName>
-        <fieldName>#PROVIDER</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>ProcessVariables_param</name>
@@ -132,6 +132,11 @@
     </entityActionField>
     <entityConsumer>
       <name>FinishedTasks</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>WorkflowTask_entity</entityName>
+        <fieldName>FinishedInstanceTasks</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>WorkflowInstanceId_param</name>
@@ -142,11 +147,6 @@
           <valueProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/finishedtasks/children/includeservicetasks_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>WorkflowTask_entity</entityName>
-        <fieldName>FinishedInstanceTasks</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>ICON</name>
@@ -154,17 +154,17 @@
     </entityField>
     <entityConsumer>
       <name>History</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>WorkflowInstanceHistory_entity</entityName>
+        <fieldName>HistoryForWorkflowInstance</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ProcessInstanceId_param</name>
           <valueProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/history/children/processinstanceid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>WorkflowInstanceHistory_entity</entityName>
-        <fieldName>HistoryForWorkflowInstance</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>ISFINISHED</name>
@@ -175,17 +175,17 @@
     <entityConsumer>
       <name>Variables</name>
       <stateProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/variables/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>WorkflowVariableValue_entity</entityName>
+        <fieldName>VariablesOfInstance</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>WorkflowInstanceId_param</name>
           <valueProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/variables/children/workflowinstanceid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>WorkflowVariableValue_entity</entityName>
-        <fieldName>VariablesOfInstance</fieldName>
-      </dependency>
     </entityConsumer>
     <entityField>
       <name>DIAGRAM</name>
diff --git a/entity/WorkflowLauncher_entity/WorkflowLauncher_entity.aod b/entity/WorkflowLauncher_entity/WorkflowLauncher_entity.aod
index cb1c24289be4239a3071a00dcf8f9193b8038421..f33bea3edcaa3205f2f185b9d33422e940fbd82a 100644
--- a/entity/WorkflowLauncher_entity/WorkflowLauncher_entity.aod
+++ b/entity/WorkflowLauncher_entity/WorkflowLauncher_entity.aod
@@ -1,5 +1,5 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>WorkflowLauncher_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/WorkflowLauncher_entity/documentation.adoc</documentation>
@@ -62,17 +62,17 @@
     </entityProvider>
     <entityConsumer>
       <name>WorkflowDefinitions</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>WorkflowDefinition_entity</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>Context_param</name>
           <valueProcess>%aditoprj%/entity/WorkflowLauncher_entity/entityfields/workflowdefinitions/children/context_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>WorkflowDefinition_entity</entityName>
-        <fieldName>#PROVIDER</fieldName>
-      </dependency>
     </entityConsumer>
     <entityParameter>
       <name>Validationerrors_param</name>
diff --git a/entity/WorkflowModel_entity/WorkflowModel_entity.aod b/entity/WorkflowModel_entity/WorkflowModel_entity.aod
index 73b8d4ebc7888490bfb767a15e59fe1fddf44f94..674696c52739d76ac96b4dd2ccd79a59e54d53bf 100644
--- a/entity/WorkflowModel_entity/WorkflowModel_entity.aod
+++ b/entity/WorkflowModel_entity/WorkflowModel_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>WorkflowModel_entity</name>
+  <title>Workflow Model</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/WorkflowModel_entity/documentation.adoc</documentation>
-  <title>Workflow Model</title>
   <contentTitleProcess>%aditoprj%/entity/WorkflowModel_entity/contentTitleProcess.js</contentTitleProcess>
   <afterSave>%aditoprj%/entity/WorkflowModel_entity/afterSave.js</afterSave>
   <recordContainer>jdito</recordContainer>
diff --git a/entity/WorkflowSignal_entity/WorkflowSignal_entity.aod b/entity/WorkflowSignal_entity/WorkflowSignal_entity.aod
index 1e857118e9c07f4b1ac03110221c77f1c07688be..a64a66745a095455ea7bfa4a3134cd0fe135b180 100644
--- a/entity/WorkflowSignal_entity/WorkflowSignal_entity.aod
+++ b/entity/WorkflowSignal_entity/WorkflowSignal_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>WorkflowSignal_entity</name>
+  <title>Signal</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/WorkflowSignal_entity/documentation.adoc</documentation>
-  <title>Signal</title>
   <titlePlural>Signals</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -47,6 +47,11 @@
     </entityField>
     <entityConsumer>
       <name>Contexts</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Context_entity</entityName>
+        <fieldName>Exclusive</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>Blacklist_param</name>
@@ -57,25 +62,20 @@
           <valueProcess>%aditoprj%/entity/WorkflowSignal_entity/entityfields/contexts/children/invertblacklist_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Context_entity</entityName>
-        <fieldName>Exclusive</fieldName>
-      </dependency>
     </entityConsumer>
     <entityConsumer>
       <name>TriggerKeyword</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/WorkflowSignal_entity/entityfields/triggerkeyword/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
     </entityConsumer>
     <entityProvider>
       <name>ProcessDefinitionSignals</name>
@@ -117,17 +117,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/WorkflowSignal_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>f6162cb6-c209-4607-8d67-0d630b28feab</name>
-          <tableName>WORKFLOWSIGNAL</tableName>
-          <primaryKey>WORKFLOWSIGNALID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>WORKFLOWSIGNALID.value</name>
@@ -164,6 +155,15 @@
           <recordfield>WORKFLOWSIGNAL.VARIABLES</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>f6162cb6-c209-4607-8d67-0d630b28feab</name>
+          <tableName>WORKFLOWSIGNAL</tableName>
+          <primaryKey>WORKFLOWSIGNALID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/WorkflowSignal_entity/entityfields/variables/dropDownProcess.js b/entity/WorkflowSignal_entity/entityfields/variables/dropDownProcess.js
index 9df9881e4fae360b6fd3c520402d6c852d240a0e..388bf3d042ac37136d25201c1f6f6dc5968c5b09 100644
--- a/entity/WorkflowSignal_entity/entityfields/variables/dropDownProcess.js
+++ b/entity/WorkflowSignal_entity/entityfields/variables/dropDownProcess.js
@@ -2,9 +2,7 @@ import("Workflow_lib");
 import("system.translate");
 import("system.result");
 
-var targetIdVar = WorkflowVariables.TARGET_ID();
-var targetContextVar = WorkflowVariables.TARGET_CONTEXT();
-result.object([
-    [targetIdVar, targetIdVar],
-    [targetContextVar, targetContextVar]
-]);
\ No newline at end of file
+let variables = WorkflowVariables.getAllVariablesName().map(function (v) {
+    return [v, v]
+});
+result.object(variables);
\ No newline at end of file
diff --git a/entity/WorkflowSignal_entity/entityfields/variables/valueProcess.js b/entity/WorkflowSignal_entity/entityfields/variables/valueProcess.js
index 49817c094590da7680ccf4644a6aad0feda26844..5f7cdc6027bf012af5facf2d5c124858b1795ac4 100644
--- a/entity/WorkflowSignal_entity/entityfields/variables/valueProcess.js
+++ b/entity/WorkflowSignal_entity/entityfields/variables/valueProcess.js
@@ -5,4 +5,4 @@ import("system.vars");
 import("system.result");
 
 if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
-    result.string(text.encodeMS([WorkflowVariables.TARGET_ID(), WorkflowVariables.TARGET_CONTEXT()]));
\ No newline at end of file
+    result.string(text.encodeMS(WorkflowVariables.getAllVariablesName()));
\ No newline at end of file
diff --git a/entity/WorkflowStartConfig_entity/WorkflowStartConfig_entity.aod b/entity/WorkflowStartConfig_entity/WorkflowStartConfig_entity.aod
index e57032a87e242a6b8ff0c370c488b2b318835316..dde2a612a51ebc947a7c5f96d59effd665d91992 100644
--- a/entity/WorkflowStartConfig_entity/WorkflowStartConfig_entity.aod
+++ b/entity/WorkflowStartConfig_entity/WorkflowStartConfig_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>WorkflowStartConfig_entity</name>
+  <title>Usage</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/WorkflowStartConfig_entity/documentation.adoc</documentation>
-  <title>Usage</title>
   <imageProcess>%aditoprj%/entity/WorkflowStartConfig_entity/imageProcess.js</imageProcess>
   <titlePlural>Usage</titlePlural>
   <recordContainer>db</recordContainer>
@@ -87,17 +87,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
-      <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/WorkflowStartConfig_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>abfd68be-ace3-4db3-940c-c81bc86ad1c6</name>
-          <tableName>WORKFLOWSTARTCONFIG</tableName>
-          <primaryKey>WORKFLOWSTARTCONFIGID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
+      <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
           <name>WORKFLOWSTARTCONFIGID.value</name>
@@ -128,6 +119,15 @@
           <expression>%aditoprj%/entity/WorkflowStartConfig_entity/recordcontainers/db/recordfieldmappings/trigger_event.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
       </recordFieldMappings>
+      <linkInformation>
+        <linkInformation>
+          <name>abfd68be-ace3-4db3-940c-c81bc86ad1c6</name>
+          <tableName>WORKFLOWSTARTCONFIG</tableName>
+          <primaryKey>WORKFLOWSTARTCONFIGID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
     </dbRecordContainer>
   </recordContainers>
 </entity>
diff --git a/entity/WorkflowTask_entity/WorkflowTask_entity.aod b/entity/WorkflowTask_entity/WorkflowTask_entity.aod
index 5a9cabd4bea5789fa4b4cc7f5c4e3ebddde6571d..f686333ba78f732e4a59061abd44b4c146be7a75 100644
--- a/entity/WorkflowTask_entity/WorkflowTask_entity.aod
+++ b/entity/WorkflowTask_entity/WorkflowTask_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>WorkflowTask_entity</name>
+  <title>Task</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/WorkflowTask_entity/documentation.adoc</documentation>
-  <title>Task</title>
   <grantCreate v="false" />
   <grantUpdateProcess>%aditoprj%/entity/WorkflowTask_entity/grantUpdateProcess.js</grantUpdateProcess>
   <grantDelete v="false" />
@@ -77,6 +77,14 @@
     <entityProvider>
       <name>InstanceTasks</name>
       <documentation>%aditoprj%/entity/WorkflowTask_entity/entityfields/instancetasks/documentation.adoc</documentation>
+      <dependencies>
+        <entityDependency>
+          <name>5913327f-1bb4-48b8-846e-639274290cee</name>
+          <entityName>WorkflowInstance_entity</entityName>
+          <fieldName>Tasks</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
       <children>
         <entityParameter>
           <name>OnlyFinishedTasks_param</name>
@@ -87,14 +95,6 @@
           <expose v="false" />
         </entityParameter>
       </children>
-      <dependencies>
-        <entityDependency>
-          <name>5913327f-1bb4-48b8-846e-639274290cee</name>
-          <entityName>WorkflowInstance_entity</entityName>
-          <fieldName>Tasks</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
     </entityProvider>
     <entityParameter>
       <name>WorkflowInstanceId_param</name>
@@ -185,13 +185,6 @@
     <entityProvider>
       <name>FinishedInstanceTasks</name>
       <documentation>%aditoprj%/entity/WorkflowTask_entity/entityfields/finishedinstancetasks/documentation.adoc</documentation>
-      <children>
-        <entityParameter>
-          <name>OnlyFinishedTasks_param</name>
-          <valueProcess>%aditoprj%/entity/WorkflowTask_entity/entityfields/finishedinstancetasks/children/onlyfinishedtasks_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-        </entityParameter>
-      </children>
       <dependencies>
         <entityDependency>
           <name>d5d39281-0183-42fa-960a-01347cddc85a</name>
@@ -200,6 +193,13 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>OnlyFinishedTasks_param</name>
+          <valueProcess>%aditoprj%/entity/WorkflowTask_entity/entityfields/finishedinstancetasks/children/onlyfinishedtasks_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityParameter>
       <name>IncludeServiceTasks_param</name>
@@ -207,17 +207,17 @@
     </entityParameter>
     <entityConsumer>
       <name>LinkedObject</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ObjectProxy_entity</entityName>
+        <fieldName>FilteredObjects</fieldName>
+      </dependency>
       <children>
         <entityParameter>
           <name>Entity_param</name>
           <valueProcess>%aditoprj%/entity/WorkflowTask_entity/entityfields/linkedobject/children/entity_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-      <dependency>
-        <name>dependency</name>
-        <entityName>ObjectProxy_entity</entityName>
-        <fieldName>FilteredObjects</fieldName>
-      </dependency>
     </entityConsumer>
     <entityActionGroup>
       <name>tableActions</name>
diff --git a/entity/WorkflowVariableValue_entity/WorkflowVariableValue_entity.aod b/entity/WorkflowVariableValue_entity/WorkflowVariableValue_entity.aod
index 21b68b882b86779e038b545bdde94320daa33713..76e08b7ad6b6eb6e33adab9d93c38e2fc5b8701a 100644
--- a/entity/WorkflowVariableValue_entity/WorkflowVariableValue_entity.aod
+++ b/entity/WorkflowVariableValue_entity/WorkflowVariableValue_entity.aod
@@ -1,9 +1,9 @@
 <?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.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17">
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18">
   <name>WorkflowVariableValue_entity</name>
+  <title>Variable</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/WorkflowVariableValue_entity/documentation.adoc</documentation>
-  <title>Variable</title>
   <titlePlural>Variables</titlePlural>
   <recordContainer>jdito</recordContainer>
   <entityFields>
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index c8f697eb37c54696ad3a806fb357c661cf301fff..a2533252710e522d04c573380324ad194b229aaa 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -7584,12 +7584,498 @@
     <entry>
       <key>Verantwortlicher</key>
     </entry>
+    <entry>
+      <key>Marketing Workflow</key>
+    </entry>
+    <entry>
+      <key>Traits</key>
+    </entry>
+    <entry>
+      <key>Salesproject Phase</key>
+    </entry>
+    <entry>
+      <key>Document template</key>
+    </entry>
+    <entry>
+      <key>Kontext</key>
+    </entry>
+    <entry>
+      <key>Checklist</key>
+    </entry>
+    <entry>
+      <key>Trait</key>
+    </entry>
+    <entry>
+      <key>Salesproject phase</key>
+    </entry>
+    <entry>
+      <key>Status: \"won\"</key>
+    </entry>
+    <entry>
+      <key>Project team roles</key>
+    </entry>
+    <entry>
+      <key>Offer sent</key>
+    </entry>
+    <entry>
+      <key>Classification fields</key>
+    </entry>
+    <entry>
+      <key>Project start within next 12 months</key>
+    </entry>
+    <entry>
+      <key>Project team: \"Internal distribution\"</key>
+    </entry>
+    <entry>
+      <key>Probablity: 100%</key>
+    </entry>
+    <entry>
+      <key>Project team: \"Project manager\"</key>
+    </entry>
+    <entry>
+      <key>Offer exists</key>
+    </entry>
+    <entry>
+      <key>Its not allowed to step over some salesproject phases.</key>
+    </entry>
+    <entry>
+      <key>Salesproject phases</key>
+    </entry>
+    <entry>
+      <key>Not all prerequisites are fulfilled.</key>
+    </entry>
+    <entry>
+      <key>To skip a salesproject phase isn't allowed.</key>
+    </entry>
+    <entry>
+      <key>No Restrictions</key>
+    </entry>
+    <entry>
+      <key>Gradings in Percent</key>
+    </entry>
+    <entry>
+      <key>Max Points</key>
+    </entry>
+    <entry>
+      <key>Are you sure you want to reload all classifications using the current classificationgradings?</key>
+    </entry>
+    <entry>
+      <key>Filter set</key>
+    </entry>
     <entry>
       <key>The team must have at least one owner</key>
     </entry>
     <entry>
       <key>Delete this Function</key>
     </entry>
+    <entry>
+      <key>Automatically</key>
+    </entry>
+    <entry>
+      <key>Checklist entries</key>
+    </entry>
+    <entry>
+      <key>Communication strategy designed</key>
+    </entry>
+    <entry>
+      <key>Probability checked and eventually readjusted</key>
+    </entry>
+    <entry>
+      <key>Contract have been signed</key>
+    </entry>
+    <entry>
+      <key>Communication strategy introduced</key>
+    </entry>
+    <entry>
+      <key>Workshop for project-realization planned</key>
+    </entry>
+    <entry>
+      <key>Risk audit performed</key>
+    </entry>
+    <entry>
+      <key>Appointment for offer-agreement occured</key>
+    </entry>
+    <entry>
+      <key>Follow-up appointment(s) exists (e.g.: for workshops..)</key>
+    </entry>
+    <entry>
+      <key>Subtotal</key>
+    </entry>
+    <entry>
+      <key>incl. Vat</key>
+    </entry>
+    <entry>
+      <key>Invoice Discount</key>
+    </entry>
+    <entry>
+      <key>discounted Vat</key>
+    </entry>
+    <entry>
+      <key>discounted Price</key>
+    </entry>
+    <entry>
+      <key>The selected Contact doesn't have an address set.</key>
+    </entry>
+    <entry>
+      <key>Set completed</key>
+    </entry>
+    <entry>
+      <key>without Vat</key>
+    </entry>
+    <entry>
+      <key>Object Filter</key>
+    </entry>
+    <entry>
+      <key>Insert</key>
+    </entry>
+    <entry>
+      <key>Observation Type</key>
+    </entry>
+    <entry>
+      <key>Shows all your Observations</key>
+    </entry>
+    <entry>
+      <key>Add Dependency</key>
+    </entry>
+    <entry>
+      <key>Fields</key>
+    </entry>
+    <entry>
+      <key>ObservationID</key>
+    </entry>
+    <entry>
+      <key>Observe</key>
+    </entry>
+    <entry>
+      <key>Observer</key>
+    </entry>
+    <entry>
+      <key>Observation</key>
+    </entry>
+    <entry>
+      <key>Observations</key>
+    </entry>
+    <entry>
+      <key>was set to</key>
+    </entry>
+    <entry>
+      <key>The data of this Leadimport has already been transfered. Do you want to transfer it again?</key>
+    </entry>
+    <entry>
+      <key>Observe ID</key>
+    </entry>
+    <entry>
+      <key>Cancel IDs Observation</key>
+    </entry>
+    <entry>
+      <key>has</key>
+    </entry>
+    <entry>
+      <key>Cancel ID Observation</key>
+    </entry>
+    <entry>
+      <key>inserted</key>
+    </entry>
+    <entry>
+      <key>INSERT</key>
+    </entry>
+    <entry>
+      <key>Site visit</key>
+    </entry>
+    <entry>
+      <key>Observe Filter</key>
+    </entry>
+    <entry>
+      <key>and</key>
+    </entry>
+    <entry>
+      <key>Observe IDs</key>
+    </entry>
+    <entry>
+      <key>deleted</key>
+    </entry>
+    <entry>
+      <key>DELETE</key>
+    </entry>
+    <entry>
+      <key>Cancel Filter Observation</key>
+    </entry>
+    <entry>
+      <key>changed</key>
+    </entry>
+    <entry>
+      <key>Date Edit</key>
+    </entry>
+    <entry>
+      <key>Import</key>
+    </entry>
+    <entry>
+      <key>Percent</key>
+    </entry>
+    <entry>
+      <key>Prev</key>
+    </entry>
+    <entry>
+      <key>Focus</key>
+    </entry>
+    <entry>
+      <key>Next</key>
+    </entry>
+    <entry>
+      <key>Import Documents</key>
+    </entry>
+    <entry>
+      <key>Adviser Contact</key>
+    </entry>
+    <entry>
+      <key>Office Duty</key>
+    </entry>
+    <entry>
+      <key>Adviser Role</key>
+    </entry>
+    <entry>
+      <key>District Contacts</key>
+    </entry>
+    <entry>
+      <key>Area Manager</key>
+    </entry>
+    <entry>
+      <key>Auto assignment</key>
+    </entry>
+    <entry>
+      <key>Field Service</key>
+    </entry>
+    <entry>
+      <key>Sales Manager</key>
+    </entry>
+    <entry>
+      <key>Region Manager</key>
+    </entry>
+    <entry>
+      <key>District Contact</key>
+    </entry>
+    <entry>
+      <key>Supervisors</key>
+    </entry>
+    <entry>
+      <key>Supervisor assignment</key>
+    </entry>
+    <entry>
+      <key>Supervisor</key>
+    </entry>
+    <entry>
+      <key>My responsible Districts</key>
+    </entry>
+    <entry>
+      <key>It lists all areas that the user has to take care of.</key>
+    </entry>
+    <entry>
+      <key>Assignment for all selected districts will start now!</key>
+    </entry>
+    <entry>
+      <key>Set status to active</key>
+    </entry>
+    <entry>
+      <key>Assign all selected districts</key>
+    </entry>
+    <entry>
+      <key>Set active</key>
+    </entry>
+    <entry>
+      <key>%0 companies were newley assigned. \n%1 companies are no longer assigned (these assignments got the status 'review'). \n%2 valid assignments were unchanged.\nThe Process took %3 seconds.</key>
+    </entry>
+    <entry>
+      <key>Adviser role</key>
+    </entry>
+    <entry>
+      <key>Error: The Importfile could not be found anymore.</key>
+    </entry>
+    <entry>
+      <key>Assign district</key>
+    </entry>
+    <entry>
+      <key>Set inactive</key>
+    </entry>
+    <entry>
+      <key>My district assignments to check</key>
+    </entry>
+    <entry>
+      <key>Assignment of district \"%0\" is completed!</key>
+    </entry>
+    <entry>
+      <key>Set status to inactive</key>
+    </entry>
+    <entry>
+      <key>District assignment status</key>
+    </entry>
+    <entry>
+      <key>District assignment will start now!</key>
+    </entry>
+    <entry>
+      <key>Adviser contact</key>
+    </entry>
+    <entry>
+      <key>Assignment of all selected districts is completed!</key>
+    </entry>
+    <entry>
+      <key>The Value has to be in the 0-100% range</key>
+    </entry>
+    <entry>
+      <key>Only Integers allowed</key>
+    </entry>
+    <entry>
+      <key>No file selected.</key>
+    </entry>
+    <entry>
+      <key>auto</key>
+    </entry>
+    <entry>
+      <key>District assigned</key>
+    </entry>
+    <entry>
+      <key>District Responsibles</key>
+    </entry>
+    <entry>
+      <key>Show my district assignments with status review</key>
+    </entry>
+    <entry>
+      <key>Payment Address</key>
+    </entry>
+    <entry>
+      <key>manual</key>
+    </entry>
+    <entry>
+      <key>Adviser status</key>
+    </entry>
+    <entry>
+      <key>Checklist entry</key>
+    </entry>
+    <entry>
+      <key>License</key>
+    </entry>
+    <entry>
+      <key>Contribute map data</key>
+    </entry>
+    <entry>
+      <key>Map data © %0 contributors | %1 | %2</key>
+    </entry>
+    <entry>
+      <key>Weekplan Info</key>
+    </entry>
+    <entry>
+      <key>12 Months</key>
+    </entry>
+    <entry>
+      <key>add Contact to Sync</key>
+    </entry>
+    <entry>
+      <key>ChecklistEntryValue</key>
+    </entry>
+    <entry>
+      <key>6 Months</key>
+    </entry>
+    <entry>
+      <key>remove Contact from Sync</key>
+    </entry>
+    <entry>
+      <key>1 Month</key>
+    </entry>
+    <entry>
+      <key>add to sync</key>
+    </entry>
+    <entry>
+      <key>Created from</key>
+    </entry>
+    <entry>
+      <key>requested</key>
+    </entry>
+    <entry>
+      <key>remove from sync</key>
+    </entry>
+    <entry>
+      <key>Status Appointment</key>
+    </entry>
+    <entry>
+      <key>add  contact to ewssync</key>
+    </entry>
+    <entry>
+      <key>Sync Exchange Contacts</key>
+    </entry>
+    <entry>
+      <key>number of connections</key>
+    </entry>
+    <entry>
+      <key>2 Weeks</key>
+    </entry>
+    <entry>
+      <key>The given Keyword Category Name is already used but needs to be unique</key>
+    </entry>
+    <entry>
+      <key>Keyword Entries</key>
+    </entry>
+    <entry>
+      <key>Keyword Category</key>
+    </entry>
+    <entry>
+      <key>Keyword Categories</key>
+    </entry>
+    <entry>
+      <key>Keyword Entry</key>
+    </entry>
+    <entry>
+      <key>Category Name</key>
+    </entry>
+    <entry>
+      <key>Migrate keyword containers</key>
+    </entry>
+    <entry>
+      <key>Sorting direction</key>
+    </entry>
+    <entry>
+      <key>Sorting by</key>
+    </entry>
+    <entry>
+      <key>refresh classifications</key>
+    </entry>
+    <entry>
+      <key>ascending</key>
+    </entry>
+    <entry>
+      <key>Weekplan already exists!</key>
+    </entry>
+    <entry>
+      <key>descending</key>
+    </entry>
+    <entry>
+      <key>by translated name</key>
+    </entry>
+    <entry>
+      <key>Sent offers</key>
+    </entry>
+    <entry>
+      <key>Calendar week</key>
+    </entry>
+    <entry>
+      <key>by name</key>
+    </entry>
+    <entry>
+      <key>by sorting</key>
+    </entry>
+    <entry>
+      <key>Starts the serverprocess manually, which will recalculate all (potentially) outdated classifications. Use this after changes to the configuration of classifications.</key>
+    </entry>
+    <entry>
+      <key>Recalculate Classifications</key>
+    </entry>
+    <entry>
+      <key>Are you sure you want to recalculate all classifications using the current classificationgradings? This can take some time, since ALL classifications will get freshly calculated and updated if needed.</key>
+    </entry>
+    <entry>
+      <key>Starts the serverprocess manually, which will recalculate all classifications from scratch. Only do this after e.g importing data from elsewhere where the outdated flag couldn't been set correctly. Since this can take some time.</key>
+    </entry>
+    <entry>
+      <key>EML files can't be edited here. You can download, edit and reupload the template to change the content.</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 a00f483ea2e2c8fd456a3bfcd959c49e4eb506ea..045b4a294e877d356edd2a60506858b206d6524f 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -19,12 +19,44 @@
       <value>Übergebener Operator ungültig in Funktion "buildFilterObj"</value>
     </entry>
     <entry>
-      <key>Add to offer</key>
-      <value>Zu Angebot hinzufügen</value>
+      <key>EML files can't be edited here. You can download, edit and reupload the template to change the content.</key>
+      <value>Das Bearbeiten von EML-Dateien ist hier nicht möglich. Um den Inhalt zu ändern, können Sie die Vorlage herunterladen, bearbeiten und erneut hochladen.</value>
     </entry>
     <entry>
-      <key>Add to order</key>
-      <value>Zu Beleg hinzufügen</value>
+      <key>Checklist entries</key>
+      <value>Checklisteneinträge</value>
+    </entry>
+    <entry>
+      <key>Project team: \"Project manager\"</key>
+      <value>Projektteam: \"Projektmanager\"</value>
+    </entry>
+    <entry>
+      <key>Checklist entry</key>
+      <value>Checklisteneintrag</value>
+    </entry>
+    <entry>
+      <key>descending</key>
+      <value>absteigend</value>
+    </entry>
+    <entry>
+      <key>Salesproject phases</key>
+      <value>Vertriebsprojektphasen</value>
+    </entry>
+    <entry>
+      <key>To skip a salesproject phase isn't allowed.</key>
+      <value>Das Ãœberspringen einer Vertriebsprojektphase ist nicht erlaubt.</value>
+    </entry>
+    <entry>
+      <key>Its not allowed to step over some salesproject phases.</key>
+      <value>Es ist nicht erlaubt Vertriebsprojektphasen zu überspringen.</value>
+    </entry>
+    <entry>
+        <key>Add to offer</key>
+        <value>Zu Angebot hinzufügen</value>
+    </entry>
+    <entry>
+        <key>Add to order</key>
+        <value>Zu Beleg hinzufügen</value>
     </entry>
     <entry>
       <key>Probability AI</key>
@@ -42,6 +74,10 @@
       <key>Restore Team</key>
       <value>Team wiederherstellen</value>
     </entry>
+    <entry>
+      <key>The given Keyword Category Name is already used but needs to be unique</key>
+      <value>Der angegebene Schlüsselwort Kategoriename existiert bereits, muss aber eindeutig sein</value>
+    </entry>
     <entry>
       <key>Choose Team</key>
       <value>Team auswählen</value>
@@ -66,6 +102,14 @@
       <key>The start date has to be before the end date.</key>
       <value>Das Startdatum muss vor dem Enddatum sein.</value>
     </entry>
+    <entry>
+      <key>Supervisors</key>
+      <value>Betreuer</value>
+    </entry>
+    <entry>
+      <key>Supervisor assignment</key>
+      <value>Betreuerzuordnung</value>
+    </entry>
     <entry>
       <key>The given starting location is empty. An area search can not be performed.</key>
       <value>Der übergebene Startpunkt ist leer. Die Umkreissuche kann nicht ausgeführt werden.</value>
@@ -106,6 +150,10 @@
       <key>Variables</key>
       <value>Variablen</value>
     </entry>
+    <entry>
+      <key>The data of this Leadimport has already been transfered. Do you want to transfer it again?</key>
+      <value>Die Daten dieses Leadimports wurden schon transferiert. Wollen Sie diese nochmal transferien?</value>
+    </entry>
     <entry>
       <key>Finished</key>
       <value>Fertig</value>
@@ -122,6 +170,10 @@
       <key>Radius Search</key>
       <value>Umkreissuche</value>
     </entry>
+    <entry>
+      <key>No file selected.</key>
+      <value>Keine Datei ausgewählt.</value>
+    </entry>
     <entry>
       <key>Discussion</key>
       <value>Diskussion</value>
@@ -238,6 +290,10 @@
       <key>${CONDITION}</key>
       <value>Bedingung</value>
     </entry>
+    <entry>
+      <key>License</key>
+      <value>Lizenz</value>
+    </entry>
     <entry>
       <key>Failed</key>
       <value>Fehlgeschlagen</value>
@@ -478,10 +534,6 @@
       <key>Priority</key>
       <value>Priorität</value>
     </entry>
-    <entry>
-      <key>Salesproject Phases</key>
-      <value>Vertriebsprojektphasen</value>
-    </entry>
     <entry>
       <key>%0 new recipients will be added to the bulk mail.</key>
       <value>Der Serienmail werden %0 neue Empfänger hinzugefügt.</value>
@@ -946,6 +998,10 @@
       <key>Social Media</key>
       <value>Social Media</value>
     </entry>
+    <entry>
+      <key>Adviser contact</key>
+      <value>Verantwortlicher</value>
+    </entry>
     <entry>
       <key>Visit</key>
       <value>Besuch</value>
@@ -958,6 +1014,10 @@
       <key>Language</key>
       <value>Sprache</value>
     </entry>
+    <entry>
+      <key>Adviser role</key>
+      <value>Rolle des Verantwortlichen</value>
+    </entry>
     <entry>
       <key>Phone</key>
       <value>Telefon</value>
@@ -1253,7 +1313,7 @@
     </entry>
     <entry>
       <key>VAT</key>
-      <value>UmsSt.</value>
+      <value>Ust.</value>
     </entry>
     <entry>
       <key>The expiry date must be after the start date!</key>
@@ -1427,6 +1487,10 @@
       <key>Maindocuments</key>
       <value>Hauptdokumente</value>
     </entry>
+    <entry>
+      <key>ascending</key>
+      <value>aufsteigend</value>
+    </entry>
     <entry>
       <key>Price</key>
       <value>Preis</value>
@@ -1463,6 +1527,10 @@
       <key>The product number already exists!</key>
       <value>Die Produktnummer existiert bereits!</value>
     </entry>
+    <entry>
+      <key>by name</key>
+      <value>Name</value>
+    </entry>
     <entry>
       <key>Quantity</key>
       <value>Menge</value>
@@ -1499,6 +1567,10 @@
       <key>Volume</key>
       <value>Volumen</value>
     </entry>
+    <entry>
+      <key>by translated name</key>
+      <value>Name (Ãœbersetzt)</value>
+    </entry>
     <entry>
       <key>Partial order</key>
       <value>Teilauftrag</value>
@@ -1802,6 +1874,10 @@
       <key>Show all offers</key>
       <value>Alle Angebote anzeigen</value>
     </entry>
+    <entry>
+      <key>Project team: \"Internal distribution\"</key>
+      <value>Projektteam: \"Interner Vertrieb\"</value>
+    </entry>
     <entry>
       <key>Filetype</key>
       <value>Dateityp</value>
@@ -1852,7 +1928,6 @@
     </entry>
     <entry>
       <key>Sent Offers</key>
-      <value>Versendete Angebote</value>
     </entry>
     <entry>
       <key>responsible</key>
@@ -2291,6 +2366,10 @@
       <key>Key Figures</key>
       <value>Kennzahlen</value>
     </entry>
+    <entry>
+      <key>Map data © %0 contributors | %1 | %2</key>
+      <value>Kartendaten © %0 Mitwirkende | %1 | %2</value>
+    </entry>
     <entry>
       <key>Person</key>
       <value>Person</value>
@@ -2367,6 +2446,10 @@
       <key>Outgoing</key>
       <value>ausgehend</value>
     </entry>
+    <entry>
+      <key>Classification fields</key>
+      <value>Klassifizierungsfelder</value>
+    </entry>
     <entry>
       <key>Paraguay</key>
       <value>Paraguay</value>
@@ -2895,6 +2978,10 @@
       <key>Adviser</key>
       <value>Berater</value>
     </entry>
+    <entry>
+      <key>It lists all areas that the user has to take care of.</key>
+      <value>Es werden alle Gebiete aufgelistet, die der Benutzer betreuen muss.</value>
+    </entry>
     <entry>
       <key>Company_size</key>
       <value>Unternehmen_Größe</value>
@@ -4094,7 +4181,7 @@
     </entry>
     <entry>
       <key>VAT in %</key>
-      <value>UmsSt. in %</value>
+      <value>Ust. in %</value>
     </entry>
     <entry>
       <key>Sales manager</key>
@@ -4274,7 +4361,7 @@
     </entry>
     <entry>
       <key>Enable relation type 2</key>
-      <value>Beziehungsart 2 aktiv</value>
+      <value>Beziehungstyp 2 aktiv</value>
     </entry>
     <entry>
       <key>Salesproject Analyses</key>
@@ -4916,6 +5003,10 @@
       <key>Charts</key>
       <value>Diagramme</value>
     </entry>
+    <entry>
+      <key>Contribute map data</key>
+      <value>Bei Kartendaten mitwirken</value>
+    </entry>
     <entry>
       <key>Keywords</key>
       <value>Schlüsselwörter</value>
@@ -5241,7 +5332,7 @@
     </entry>
     <entry>
       <key>Delete</key>
-      <value>löschen</value>
+      <value>Löschen</value>
     </entry>
     <entry>
       <key>Street</key>
@@ -5890,6 +5981,10 @@
       <key>Consisted customer</key>
       <value>Bestandskunde</value>
     </entry>
+    <entry>
+      <key>Project start within next 12 months</key>
+      <value>Projektstart innerhalb nächster 12 Monate</value>
+    </entry>
     <entry>
       <key>Prospective customer</key>
       <value>Interessent</value>
@@ -5942,6 +6037,10 @@
       <key>2 big</key>
       <value>gross</value>
     </entry>
+    <entry>
+      <key>Probablity: 100%</key>
+      <value>Wahrscheinlichkeit: 100%</value>
+    </entry>
     <entry>
       <key>Weight (kg)</key>
       <value>Gewicht (kg)</value>
@@ -6299,7 +6398,7 @@
     </entry>
     <entry>
       <key>Update</key>
-      <value>Update</value>
+      <value>Bearbeiten</value>
     </entry>
     <entry>
       <key>Blog</key>
@@ -6624,7 +6723,7 @@
     </entry>
     <entry>
       <key>Payment address</key>
-      <value>Zahlungsadresse</value>
+      <value>Rechnungsadresse</value>
     </entry>
     <entry>
       <key>Texts</key>
@@ -6864,6 +6963,10 @@
       <key>Credit</key>
       <value>Gutschrift</value>
     </entry>
+    <entry>
+      <key>Status: \"won\"</key>
+      <value>Status: \"gewonnen\"</value>
+    </entry>
     <entry>
       <key>The replacement name has to be unique.</key>
       <value>Der Ersatzname muss eindeutig sein</value>
@@ -7003,7 +7106,7 @@
     </entry>
     <entry>
       <key>Total VAT</key>
-      <value>gesamte Mehrwertsteuer</value>
+      <value>MWST</value>
     </entry>
     <entry>
       <key>DataPrivacy Use</key>
@@ -7037,10 +7140,18 @@
       <key>Everyone</key>
       <value>Alle</value>
     </entry>
+    <entry>
+      <key>Offer exists</key>
+      <value>Angebot existiert</value>
+    </entry>
     <entry>
       <key>Salesproject member Id</key>
       <value>VertriebsprojektsteilnehmerId</value>
     </entry>
+    <entry>
+      <key>Offer sent</key>
+      <value>Angebot versendet</value>
+    </entry>
     <entry>
       <key>Edit</key>
       <value>Editieren</value>
@@ -7069,6 +7180,10 @@
       <key>To buildingnumber</key>
       <value>Bis hausnummer</value>
     </entry>
+    <entry>
+      <key>Project team roles</key>
+      <value>Projektteamrollen</value>
+    </entry>
     <entry>
       <key>Ignore daily series</key>
       <value>Tägliche Serie ignorieren</value>
@@ -7512,6 +7627,10 @@
       <key>Info (Company)</key>
       <value>Info (Firma)</value>
     </entry>
+    <entry>
+      <key>Supervisor</key>
+      <value>Betreuer</value>
+    </entry>
     <entry>
       <key>Möglicherweise ist ein Import-Feld zu groß für das Zielfeld.</key>
       <value>An import field may be too large for the target field.</value>
@@ -7800,6 +7919,10 @@
       <key>Try to create activity automatically and ask for more information if necessary</key>
       <value>Versuche Aktivität automatisch anzulegen und fordert weitere Informationen an wenn nötig</value>
     </entry>
+    <entry>
+      <key>Not all prerequisites are fulfilled.</key>
+      <value>Es sind leider nicht alle Vorraussetzungen erfüllt.</value>
+    </entry>
     <entry>
       <key>New Appointment</key>
       <value>Neuer Termin</value>
@@ -8127,6 +8250,9 @@ Bitte Datumseingabe prüfen</value>
       <key>Export CSV \"%0\" can now be downloaded</key>
       <value>Export CSV \"%0\" kann heruntergeladen werden</value>
     </entry>
+    <entry>
+      <key>Automatically</key>
+    </entry>
     <entry>
       <key>Templatename</key>
       <value>Vorlagenname</value>
@@ -8409,6 +8535,7 @@ Bitte Datumseingabe prüfen</value>
     </entry>
     <entry>
       <key>Subcategory</key>
+      <value>Unterkategorie</value>
     </entry>
     <entry>
       <key>The radius has to be at least %0.</key>
@@ -9437,6 +9564,22 @@ Bitte Datumseingabe prüfen</value>
       <key>Recalculate all Classifications</key>
       <value>Alle Klassifizierungen neuberechnen</value>
     </entry>
+    <entry>
+      <key>Recalculate Classifications</key>
+      <value>Klassifizierungen neuberechnen</value>
+    </entry>
+    <entry>
+      <key>Starts the serverprocess manually, which will recalculate all (potentially) outdated classifications. Use this after changes to the configuration of classifications.</key>
+      <value>Startet den Serverprozess Manuell. Berechnet alle (potenziell) veralteten Klassifizierungen. Benutze dies nach Änderungen an den Klassifizierungseinstellungen.</value>
+    </entry>
+    <entry>
+      <key>Starts the serverprocess manually, which will recalculate all classifications from scratch. Only do this after e.g importing data from elsewhere where the outdated flag couldn't been set correctly. Since this can take some time.</key>
+      <value>Startet den Serverprozess Manuell. Berechnet alle Klassifizierungen neu. Benutze dies nur nach z.B dem Importieren von Daten von ausserhalb des Systems bei denen der outdated flag nciht richtig gesetzt wurde, da dieser Durchlauf länger dauen kann</value>
+    </entry>
+    <entry>
+      <key>Are you sure you want to recalculate all classifications using the current classificationgradings? This can take some time, since ALL classifications will get freshly calculated and updated if needed.</key>
+      <value>Sind sie sich sicher, dass sie alle Klassifizierungen anhand der konfigurierten Bewertungen neuberechnen willst? Dies kann länger dauern, da ALLE Klassifizierungen neuberechnet werden und wenn nötig geupdated werden.</value>
+    </entry>
     <entry>
       <key>Reminder:</key>
       <value>Erinnerung:</value>
@@ -9486,8 +9629,8 @@ Bitte Datumseingabe prüfen</value>
       <value>Ãœbergeordnetes Gebiet</value>
     </entry>
     <entry>
-      <key>Responsible Districts</key>
-      <value>Verantwortliche Gebiete</value>
+      <key>My responsible Districts</key>
+      <value>Meine verantwortlichen Gebiete</value>
     </entry>
     <entry>
       <key>District No.:</key>
@@ -9697,6 +9840,10 @@ Bitte Datumseingabe prüfen</value>
     <entry>
       <key>Seite</key>
     </entry>
+    <entry>
+      <key>by sorting</key>
+      <value>Manuell</value>
+    </entry>
     <entry>
       <key>from 350 €</key>
       <value>ab 350€</value>
@@ -10045,6 +10192,451 @@ Bitte Datumseingabe prüfen</value>
     <entry>
       <key>Verantwortlicher</key>
     </entry>
+    <entry>
+      <key>No Restrictions</key>
+      <value>Keine Einschränkungen</value>
+    </entry>
+    <entry>
+      <key>Gradings in Percent</key>
+      <value>Bewertungen in Prozent</value>
+    </entry>
+    <entry>
+      <key>Max Points</key>
+      <value>Maximale Punktzahl</value>
+    </entry>
+    <entry>
+      <key>Are you sure you want to reload all classifications using the current classificationgradings?</key>
+      <value>Bist du dir sicher, dass du alle Klassifizierungen anhand der konfigurierten Bewertungen neuberechnen willst?</value>
+    </entry>
+    <entry>
+      <key>Filter set</key>
+      <value>Filter gesetzt</value>
+    </entry>
+    <entry>
+      <key>The Value has to be in the 0-100% range</key>
+      <value>Der Wert muss sich zwischen 0 und 100% liegen</value>
+    </entry>
+    <entry>
+      <key>Only Integers allowed</key>
+      <value>Nur ganze Zahlen erlaubt</value>
+    </entry>
+    <entry>
+      <key>Salesproject phase</key>
+      <value>Vertriebsprojektphase</value>
+    </entry>
+    <entry>
+      <key>Kontext</key>
+    </entry>
+    <entry>
+      <key>Trait</key>
+      <value>Merkmal</value>
+    </entry>
+    <entry>
+      <key>Document template</key>
+    </entry>
+    <entry>
+      <key>Traits</key>
+      <value>Merkmale</value>
+    </entry>
+    <entry>
+      <key>Salesproject Phases</key>
+    </entry>
+    <entry>
+      <key>Object Filter</key>
+      <value>Objekt Filter</value>
+    </entry>
+    <entry>
+      <key>Insert</key>
+      <value>Neuanlage</value>
+    </entry>
+    <entry>
+      <key>Observation Type</key>
+      <value>Beobachtungstyp</value>
+    </entry>
+    <entry>
+      <key>Shows all your Observations</key>
+      <value>Zeige all deine Beobachtungen</value>
+    </entry>
+    <entry>
+      <key>Add Dependency</key>
+      <value>Abhängigkeit hinzufügen</value>
+    </entry>
+    <entry>
+      <key>Fields</key>
+      <value>Felder</value>
+    </entry>
+    <entry>
+      <key>ObservationID</key>
+      <value>BeobachtungsID</value>
+    </entry>
+    <entry>
+      <key>Observe</key>
+      <value>beobachten</value>
+    </entry>
+    <entry>
+      <key>Observer</key>
+      <value>Beobachter</value>
+    </entry>
+    <entry>
+      <key>Observation</key>
+      <value>Beobachtung</value>
+    </entry>
+    <entry>
+      <key>Observations</key>
+      <value>Beobachtungen</value>
+    </entry>
+    <entry>
+      <key>Observe ID</key>
+      <value>Beobachte Datensatz</value>
+    </entry>
+    <entry>
+      <key>Observe IDs</key>
+      <value>Beobachte Datensätze</value>
+    </entry>
+    <entry>
+      <key>Observe Filter</key>
+      <value>Beobachte Filter</value>
+    </entry>
+    <entry>
+      <key>Cancel ID Observation</key>
+      <value>Beobachtung Datensatz aufheben</value>
+    </entry>
+    <entry>
+      <key>Cancel IDs Observation</key>
+      <value>Beobachtung Datensätz aufheben</value>
+    </entry>
+    <entry>
+      <key>Cancel Filter Observation</key>
+      <value>Beobachtung Filter aufheben</value>
+    </entry>
+    <entry>
+      <key>was set to</key>
+      <value>wurde gesetzt auf</value>
+    </entry>
+    <entry>
+      <key>has</key>
+      <value>hat</value>
+    </entry>
+    <entry>
+      <key>inserted</key>
+      <value>eingefügt</value>
+    </entry>
+    <entry>
+      <key>changed</key>
+      <value>bearbeitet</value>
+    </entry>
+    <entry>
+      <key>deleted</key>
+      <value>gelöscht</value>
+    </entry>
+    <entry>
+      <key>and</key>
+      <value>und</value>
+    </entry>
+    <entry>
+      <key>DELETE</key>
+      <value>LÖSCHEN</value>
+    </entry>
+    <entry>
+      <key>Date Edit</key>
+    </entry>
+    <entry>
+      <key>Import</key>
+    </entry>
+    <entry>
+      <key>Percent</key>
+    </entry>
+    <entry>
+      <key>Prev</key>
+    </entry>
+    <entry>
+      <key>Focus</key>
+    </entry>
+    <entry>
+      <key>Next</key>
+    </entry>
+    <entry>
+      <key>Import Documents</key>
+    </entry>
+    <entry>
+      <key>Error: The Importfile could not be found anymore.</key>
+      <value>Fehler: Die Importdatei konnte nicht mehr gefunden werden.</value>
+    </entry>
+    <entry>
+      <key>Auto assignment</key>
+      <value>Auto-Zuordnung</value>
+    </entry>
+    <entry>
+      <key>District Contact</key>
+      <value>Gebietsverantwortlicher</value>
+    </entry>
+    <entry>
+      <key>District Contacts</key>
+      <value>Gebietsverantwortlichen</value>
+    </entry>
+    <entry>
+      <key>Adviser Role</key>
+      <value>Rolle des Verantwortlichen</value>
+    </entry>
+    <entry>
+      <key>Adviser Contact</key>
+      <value>Verantwortlicher</value>
+    </entry>
+    <entry>
+      <key>Sales Manager</key>
+      <value>Verkaufsleiter</value>
+    </entry>
+    <entry>
+      <key>Office Duty</key>
+      <value>Innendienst</value>
+    </entry>
+    <entry>
+      <key>Region Manager</key>
+      <value>Regionsleiter</value>
+    </entry>
+    <entry>
+      <key>Area Manager</key>
+      <value>Gebietsleiter</value>
+    </entry>
+    <entry>
+      <key>Field Service</key>
+      <value>Außendienst</value>
+    </entry>
+    <entry>
+      <key>Assign district</key>
+      <value>Gebiet zuordnen</value>
+    </entry>
+    <entry>
+      <key>District assignment will start now!</key>
+      <value>Die Gebietszuordnung wird jetzt gestartet!</value>
+    </entry>
+    <entry>
+      <key>Assignment of district \"%0\" is completed!</key>
+      <value>Zuordnung des Gebietes \"%0\" ist abgeschlossen!</value>
+    </entry>
+    <entry>
+      <key>%0 companies were newley assigned. \n%1 companies are no longer assigned (these assignments got the status 'review'). \n%2 valid assignments were unchanged.\nThe Process took %3 seconds.</key>
+      <value>%0 Firmen wurden neu hinzugefügt. \n %1 Firmen sind nicht länger zugeordnet (diese Zuordnungen wurden auf den Status 'zur Prüfung' gesetzt). \n %2 gültige Zuordnungen blieben unverändert. \n Der Prozess dauert %3 Sekunden. </value>
+    </entry>
+    <entry>
+      <key>District assignment status</key>
+      <value>Gebietzuordnungstatus</value>
+    </entry>
+    <entry>
+      <key>Assign all selected districts</key>
+      <value>Zuordnung für alle selektierten Gebiete</value>
+    </entry>
+    <entry>
+      <key>Assignment for all selected districts will start now!</key>
+      <value>Zuordnung für alle selektierten Gebiete wird jetzt gestartet</value>
+    </entry>
+    <entry>
+      <key>Assignment of all selected districts is completed!</key>
+      <value>Zuordnung für alle selektierten Gebiete abgeschlossen</value>
+    </entry>
+    <entry>
+      <key>Set active</key>
+      <value>Aktiv setzen</value>
+    </entry>
+    <entry>
+      <key>Set inactive</key>
+      <value>Inaktiv setzen</value>
+    </entry>
+    <entry>
+      <key>Set status to active</key>
+      <value>Status auf aktiv setzen</value>
+    </entry>
+    <entry>
+      <key>Set status to inactive</key>
+      <value>Status auf inaktiv setzen</value>
+    </entry>
+    <entry>
+      <key>My district assignments to check</key>
+      <value>Meine zu prüfenden Gebietszuweisungen</value>
+    </entry>
+    <entry>
+      <key>Checklist</key>
+      <value>Checkliste</value>
+    </entry>
+    <entry>
+      <key>Salesproject Phase</key>
+    </entry>
+    <entry>
+      <key>Communication strategy designed</key>
+      <value>Kommunikationsstrategie erarbeitet</value>
+    </entry>
+    <entry>
+      <key>Probability checked and eventually readjusted</key>
+      <value>Wahrscheinlichkeit überprüfen und ggf. nachjustieren</value>
+    </entry>
+    <entry>
+      <key>Communication strategy introduced</key>
+      <value>Kommunikationsstrategie wurde vorgestellt</value>
+    </entry>
+    <entry>
+      <key>Follow-up appointment(s) exists (e.g.: for workshops..)</key>
+      <value>Folgetermin(e) existiert (z.B. für Workshops..)</value>
+    </entry>
+    <entry>
+      <key>Risk audit performed</key>
+      <value>Risikoaudit durchgeführt</value>
+    </entry>
+    <entry>
+      <key>Workshop for project-realization planned</key>
+      <value>Workshop für Projektumsetzung geplannt</value>
+    </entry>
+    <entry>
+      <key>Appointment for offer-agreement occured</key>
+      <value>Termin zur Angebotsabstimmung hat stattgefunden</value>
+    </entry>
+    <entry>
+      <key>Contract have been signed</key>
+      <value>Vertrag wurde unterschrieben</value>
+    </entry>
+    <entry>
+      <key>Set completed</key>
+      <value>Erledigt setzen</value>
+    </entry>
+    <entry>
+      <key>Responsible Districts</key>
+    </entry>
+    <entry>
+      <key>auto</key>
+    </entry>
+    <entry>
+      <key>District assigned</key>
+    </entry>
+    <entry>
+      <key>District Responsibles</key>
+    </entry>
+    <entry>
+      <key>Show my district assignments with status review</key>
+    </entry>
+    <entry>
+      <key>Payment Address</key>
+    </entry>
+    <entry>
+      <key>manual</key>
+    </entry>
+    <entry>
+      <key>Adviser status</key>
+    </entry>
+    <entry>
+      <key>Site visit</key>
+    </entry>
+    <entry>
+      <key>Marketing Workflow</key>
+    </entry>
+    <entry>
+      <key>INSERT</key>
+    </entry>
+    <entry>
+      <key>Weekplan Info</key>
+      <value>Wochenplaninformation</value>
+    </entry>
+    <entry>
+      <key>12 Months</key>
+      <value>12 Monate</value>
+    </entry>
+    <entry>
+      <key>add Contact to Sync</key>
+      <value>Kontakt zur Synchronisierung hinzufügen</value>
+    </entry>
+    <entry>
+      <key>ChecklistEntryValue</key>
+    </entry>
+    <entry>
+      <key>6 Months</key>
+      <value>6 Monate</value>
+    </entry>
+    <entry>
+      <key>remove Contact from Sync</key>
+      <value>Kontakt aus der Synchronisierung entfernen</value>
+    </entry>
+    <entry>
+      <key>1 Month</key>
+      <value>1 Monat</value>
+    </entry>
+    <entry>
+      <key>add to sync</key>
+      <value>zur Synchronisierung hinzufügen</value>
+    </entry>
+    <entry>
+      <key>Created from</key>
+      <value>erstellt von</value>
+    </entry>
+    <entry>
+      <key>requested</key>
+      <value>angefordert</value>
+    </entry>
+    <entry>
+      <key>remove from sync</key>
+      <value>aus der Synchronisierung entfernen</value>
+    </entry>
+    <entry>
+      <key>Status Appointment</key>
+      <value>Status Notification</value>
+    </entry>
+    <entry>
+      <key>add  contact to ewssync</key>
+      <value>Kontakt zu ewssync hinzufügen</value>
+    </entry>
+    <entry>
+      <key>Sync Exchange Contacts</key>
+      <value>Exchange-Kontakte synchronisieren</value>
+    </entry>
+    <entry>
+      <key>number of connections</key>
+      <value>Anzahl der Verbindungen</value>
+    </entry>
+    <entry>
+      <key>2 Weeks</key>
+      <value>2 Wochen</value>
+    </entry>
+    <entry>
+      <key>Keyword Entries</key>
+      <value>Schlüsselwort-Einträge</value>
+    </entry>
+    <entry>
+      <key>Keyword Categories</key>
+      <value>Schlüsselwort-Kategorien</value>
+    </entry>
+    <entry>
+      <key>Keyword Category</key>
+      <value>Schlüsselwort-Kategorie</value>
+    </entry>
+    <entry>
+      <key>Keyword Entry</key>
+      <value>Schlüsselwort-Eintrag</value>
+    </entry>
+    <entry>
+      <key>Category Name</key>
+      <value>Kategoriename</value>
+    </entry>
+    <entry>
+      <key>Migrate keyword containers</key>
+    </entry>
+    <entry>
+      <key>Sorting direction</key>
+      <value>Sortierrichtung</value>
+    </entry>
+    <entry>
+      <key>Sorting by</key>
+      <value>Sortieren nach</value>
+    </entry>
+    <entry>
+      <key>refresh classifications</key>
+      <value>Klassifizierungen neuberechnen</value>
+    </entry>
+    <entry>
+      <key>Weekplan already exists!</key>
+    </entry>
+    <entry>
+      <key>Sent offers</key>
+    </entry>
+    <entry>
+      <key>Calendar week</key>
+    </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 56cb1721db20330175fd6f807047dfd6f89657fd..aab38d453ab679337ca3e7173fb8bbdebccfa89f 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -7350,6 +7350,36 @@
     <entry>
       <key>Probability in %</key>
     </entry>
+    <entry>
+      <key>Created from</key>
+    </entry>
+    <entry>
+      <key>12 Months</key>
+    </entry>
+    <entry>
+      <key>6 Months</key>
+    </entry>
+    <entry>
+      <key>1 Month</key>
+    </entry>
+    <entry>
+      <key>2 Weeks</key>
+    </entry>
+    <entry>
+      <key>Calendar week</key>
+    </entry>
+    <entry>
+      <key>Weekplan already exists!</key>
+    </entry>
+    <entry>
+      <key>Weekplan Info</key>
+    </entry>
+    <entry>
+      <key>requested</key>
+    </entry>
+    <entry>
+      <key>Status Appointment</key>
+    </entry>
     <entry>
       <key>Standard City</key>
     </entry>
@@ -7665,12 +7695,468 @@
     <entry>
       <key>Verantwortlicher</key>
     </entry>
+    <entry>
+      <key>No Restrictions</key>
+    </entry>
+    <entry>
+      <key>Gradings in Percent</key>
+    </entry>
+    <entry>
+      <key>Max Points</key>
+    </entry>
+    <entry>
+      <key>Are you sure you want to reload all classifications using the current classificationgradings?</key>
+    </entry>
+    <entry>
+      <key>Filter set</key>
+    </entry>
     <entry>
       <key>The team must have at least one owner</key>
     </entry>
     <entry>
       <key>Delete this Function</key>
     </entry>
+    <entry>
+      <key>Subtotal</key>
+    </entry>
+    <entry>
+      <key>incl. Vat</key>
+    </entry>
+    <entry>
+      <key>Invoice Discount</key>
+    </entry>
+    <entry>
+      <key>discounted Vat</key>
+    </entry>
+    <entry>
+      <key>discounted Price</key>
+    </entry>
+    <entry>
+      <key>The selected Contact doesn't have an address set.</key>
+    </entry>
+    <entry>
+      <key>Sent offers</key>
+    </entry>
+    <entry>
+      <key>Salesproject phases</key>
+    </entry>
+    <entry>
+      <key>without Vat</key>
+    </entry>
+    <entry>
+      <key>Object Filter</key>
+    </entry>
+    <entry>
+      <key>Insert</key>
+    </entry>
+    <entry>
+      <key>Observation Type</key>
+    </entry>
+    <entry>
+      <key>Shows all your Observations</key>
+    </entry>
+    <entry>
+      <key>Add Dependency</key>
+    </entry>
+    <entry>
+      <key>Fields</key>
+    </entry>
+    <entry>
+      <key>ObservationID</key>
+    </entry>
+    <entry>
+      <key>Observe</key>
+    </entry>
+    <entry>
+      <key>Observer</key>
+    </entry>
+    <entry>
+      <key>Observation</key>
+    </entry>
+    <entry>
+      <key>Observations</key>
+    </entry>
+    <entry>
+      <key>was set to</key>
+    </entry>
+    <entry>
+      <key>The data of this Leadimport has already been transfered. Do you want to transfer it again?</key>
+    </entry>
+    <entry>
+      <key>Observe ID</key>
+    </entry>
+    <entry>
+      <key>Cancel IDs Observation</key>
+    </entry>
+    <entry>
+      <key>has</key>
+    </entry>
+    <entry>
+      <key>Cancel ID Observation</key>
+    </entry>
+    <entry>
+      <key>inserted</key>
+    </entry>
+    <entry>
+      <key>INSERT</key>
+    </entry>
+    <entry>
+      <key>Site visit</key>
+    </entry>
+    <entry>
+      <key>Observe Filter</key>
+    </entry>
+    <entry>
+      <key>and</key>
+    </entry>
+    <entry>
+      <key>Observe IDs</key>
+    </entry>
+    <entry>
+      <key>deleted</key>
+    </entry>
+    <entry>
+      <key>DELETE</key>
+    </entry>
+    <entry>
+      <key>Cancel Filter Observation</key>
+    </entry>
+    <entry>
+      <key>changed</key>
+    </entry>
+    <entry>
+      <key>Date Edit</key>
+    </entry>
+    <entry>
+      <key>Import</key>
+    </entry>
+    <entry>
+      <key>Percent</key>
+    </entry>
+    <entry>
+      <key>Prev</key>
+    </entry>
+    <entry>
+      <key>Focus</key>
+    </entry>
+    <entry>
+      <key>Next</key>
+    </entry>
+    <entry>
+      <key>Import Documents</key>
+    </entry>
+    <entry>
+      <key>Adviser Contact</key>
+    </entry>
+    <entry>
+      <key>Office Duty</key>
+    </entry>
+    <entry>
+      <key>Adviser Role</key>
+    </entry>
+    <entry>
+      <key>District Contacts</key>
+    </entry>
+    <entry>
+      <key>Area Manager</key>
+    </entry>
+    <entry>
+      <key>Auto assignment</key>
+    </entry>
+    <entry>
+      <key>Field Service</key>
+    </entry>
+    <entry>
+      <key>Sales Manager</key>
+    </entry>
+    <entry>
+      <key>Region Manager</key>
+    </entry>
+    <entry>
+      <key>District Contact</key>
+    </entry>
+    <entry>
+      <key>Supervisors</key>
+    </entry>
+    <entry>
+      <key>Supervisor assignment</key>
+    </entry>
+    <entry>
+      <key>Supervisor</key>
+    </entry>
+    <entry>
+      <key>Adviser role</key>
+    </entry>
+    <entry>
+      <key>Adviser contact</key>
+    </entry>
+    <entry>
+      <key>Assignment for all selected districts will start now!</key>
+    </entry>
+    <entry>
+      <key>Set status to active</key>
+    </entry>
+    <entry>
+      <key>Assign all selected districts</key>
+    </entry>
+    <entry>
+      <key>Set active</key>
+    </entry>
+    <entry>
+      <key>%0 companies were newley assigned. \n%1 companies are no longer assigned (these assignments got the status 'review'). \n%2 valid assignments were unchanged.\nThe Process took %3 seconds.</key>
+    </entry>
+    <entry>
+      <key>Assign district</key>
+    </entry>
+    <entry>
+      <key>Set inactive</key>
+    </entry>
+    <entry>
+      <key>My district assignments to check</key>
+    </entry>
+    <entry>
+      <key>Assignment of district \"%0\" is completed!</key>
+    </entry>
+    <entry>
+      <key>Set status to inactive</key>
+    </entry>
+    <entry>
+      <key>District assignment status</key>
+    </entry>
+    <entry>
+      <key>District assignment will start now!</key>
+    </entry>
+    <entry>
+      <key>Assignment of all selected districts is completed!</key>
+    </entry>
+    <entry>
+      <key>My responsible Districts</key>
+    </entry>
+    <entry>
+      <key>It lists all areas that the user has to take care of.</key>
+    </entry>
+    <entry>
+      <key>Error: The Importfile could not be found anymore.</key>
+    </entry>
+    <entry>
+      <key>The Value has to be in the 0-100% range</key>
+    </entry>
+    <entry>
+      <key>Only Integers allowed</key>
+    </entry>
+    <entry>
+      <key>No file selected.</key>
+    </entry>
+    <entry>
+      <key>auto</key>
+    </entry>
+    <entry>
+      <key>District assigned</key>
+    </entry>
+    <entry>
+      <key>District Responsibles</key>
+    </entry>
+    <entry>
+      <key>Show my district assignments with status review</key>
+    </entry>
+    <entry>
+      <key>Payment Address</key>
+    </entry>
+    <entry>
+      <key>manual</key>
+    </entry>
+    <entry>
+      <key>Adviser status</key>
+    </entry>
+    <entry>
+      <key>License</key>
+    </entry>
+    <entry>
+      <key>Contribute map data</key>
+    </entry>
+    <entry>
+      <key>Map data © %0 contributors | %1 | %2</key>
+    </entry>
+    <entry>
+      <key>add Contact to Sync</key>
+    </entry>
+    <entry>
+      <key>ChecklistEntryValue</key>
+    </entry>
+    <entry>
+      <key>remove Contact from Sync</key>
+    </entry>
+    <entry>
+      <key>add to sync</key>
+    </entry>
+    <entry>
+      <key>remove from sync</key>
+    </entry>
+    <entry>
+      <key>add  contact to ewssync</key>
+    </entry>
+    <entry>
+      <key>Sync Exchange Contacts</key>
+    </entry>
+    <entry>
+      <key>number of connections</key>
+    </entry>
+    <entry>
+      <key>The given Keyword Category Name is already used but needs to be unique</key>
+    </entry>
+    <entry>
+      <key>Keyword Entries</key>
+    </entry>
+    <entry>
+      <key>Keyword Category</key>
+    </entry>
+    <entry>
+      <key>Keyword Categories</key>
+    </entry>
+    <entry>
+      <key>Keyword Entry</key>
+    </entry>
+    <entry>
+      <key>Category Name</key>
+    </entry>
+    <entry>
+      <key>Migrate keyword containers</key>
+    </entry>
+    <entry>
+      <key>Sorting direction</key>
+    </entry>
+    <entry>
+      <key>Sorting by</key>
+    </entry>
+    <entry>
+      <key>Communication strategy designed</key>
+    </entry>
+    <entry>
+      <key>refresh classifications</key>
+    </entry>
+    <entry>
+      <key>ascending</key>
+    </entry>
+    <entry>
+      <key>Salesproject Phase</key>
+    </entry>
+    <entry>
+      <key>Checklist entry</key>
+    </entry>
+    <entry>
+      <key>Status: \"won\"</key>
+    </entry>
+    <entry>
+      <key>Marketing Workflow</key>
+    </entry>
+    <entry>
+      <key>Salesproject phase</key>
+    </entry>
+    <entry>
+      <key>Project team roles</key>
+    </entry>
+    <entry>
+      <key>Kontext</key>
+    </entry>
+    <entry>
+      <key>Trait</key>
+    </entry>
+    <entry>
+      <key>Offer sent</key>
+    </entry>
+    <entry>
+      <key>To skip a salesproject phase isn't allowed.</key>
+    </entry>
+    <entry>
+      <key>descending</key>
+    </entry>
+    <entry>
+      <key>Probability checked and eventually readjusted</key>
+    </entry>
+    <entry>
+      <key>by translated name</key>
+    </entry>
+    <entry>
+      <key>Document template</key>
+    </entry>
+    <entry>
+      <key>Contract have been signed</key>
+    </entry>
+    <entry>
+      <key>Set completed</key>
+    </entry>
+    <entry>
+      <key>Communication strategy introduced</key>
+    </entry>
+    <entry>
+      <key>Traits</key>
+    </entry>
+    <entry>
+      <key>Workshop for project-realization planned</key>
+    </entry>
+    <entry>
+      <key>Automatically</key>
+    </entry>
+    <entry>
+      <key>Classification fields</key>
+    </entry>
+    <entry>
+      <key>Risk audit performed</key>
+    </entry>
+    <entry>
+      <key>by name</key>
+    </entry>
+    <entry>
+      <key>Checklist entries</key>
+    </entry>
+    <entry>
+      <key>Project start within next 12 months</key>
+    </entry>
+    <entry>
+      <key>Its not allowed to step over some salesproject phases.</key>
+    </entry>
+    <entry>
+      <key>by sorting</key>
+    </entry>
+    <entry>
+      <key>Project team: \"Internal distribution\"</key>
+    </entry>
+    <entry>
+      <key>Probablity: 100%</key>
+    </entry>
+    <entry>
+      <key>Appointment for offer-agreement occured</key>
+    </entry>
+    <entry>
+      <key>Checklist</key>
+    </entry>
+    <entry>
+      <key>Follow-up appointment(s) exists (e.g.: for workshops..)</key>
+    </entry>
+    <entry>
+      <key>Not all prerequisites are fulfilled.</key>
+    </entry>
+    <entry>
+      <key>Project team: \"Project manager\"</key>
+    </entry>
+    <entry>
+      <key>Offer exists</key>
+    </entry>
+    <entry>
+      <key>Starts the serverprocess manually, which will recalculate all (potentially) outdated classifications. Use this after changes to the configuration of classifications.</key>
+    </entry>
+    <entry>
+      <key>Recalculate Classifications</key>
+    </entry>
+    <entry>
+      <key>Are you sure you want to recalculate all classifications using the current classificationgradings? This can take some time, since ALL classifications will get freshly calculated and updated if needed.</key>
+    </entry>
+    <entry>
+      <key>Starts the serverprocess manually, which will recalculate all classifications from scratch. Only do this after e.g importing data from elsewhere where the outdated flag couldn't been set correctly. Since this can take some time.</key>
+    </entry>
+    <entry>
+      <key>EML files can't be edited here. You can download, edit and reupload the template to change the content.</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonContext/Checklist/Checklist.aod b/neonContext/Checklist/Checklist.aod
new file mode 100644
index 0000000000000000000000000000000000000000..d30de3d0d0b4d5fe7e35cf47b845d88b8034d68d
--- /dev/null
+++ b/neonContext/Checklist/Checklist.aod
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1">
+  <name>Checklist</name>
+  <title>Checklist</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>NEON:MQL</icon>
+  <entity>Checklist_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>bec4bdfb-d61d-418e-ac97-6905b00a0393</name>
+      <view>ChecklistEdit_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>2a7eb3a8-1ef9-4ecd-a302-42bd676ed24f</name>
+      <view>ChecklistFilter_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonContext/ChecklistEntry/ChecklistEntry.aod b/neonContext/ChecklistEntry/ChecklistEntry.aod
new file mode 100644
index 0000000000000000000000000000000000000000..7ce3bb78ee5dd96197c0fa9707ab800cbe0afb1a
--- /dev/null
+++ b/neonContext/ChecklistEntry/ChecklistEntry.aod
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1">
+  <name>ChecklistEntry</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>NEON:MQL</icon>
+  <entity>ChecklistEntry_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>af6c9ce2-43e8-4076-bd78-58e54c673104</name>
+      <view>ChecklistEntryMultiEdit_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>53b9dc65-df64-4e1c-bf6f-4854a30bf689</name>
+      <view>ChecklistEntryList_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonContext/ChecklistEntryValue/ChecklistEntryValue.aod b/neonContext/ChecklistEntryValue/ChecklistEntryValue.aod
new file mode 100644
index 0000000000000000000000000000000000000000..842a8f0eed5a50064ca7e6a3b6e3e849b5599c00
--- /dev/null
+++ b/neonContext/ChecklistEntryValue/ChecklistEntryValue.aod
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1">
+  <name>ChecklistEntryValue</name>
+  <title>ChecklistEntryValue</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>NEON:MQL</icon>
+  <entity>ChecklistEntryValue_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>12d29401-307b-48cc-8703-a645c8c2f190</name>
+      <view>ChecklistEntryValueList_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonContext/Classification/Classification.aod b/neonContext/Classification/Classification.aod
index b6c29daeda62c2747e8e1f8ba59e94c5b727ada8..07bc14712048df8b6962b9852069175b5954d472 100644
--- a/neonContext/Classification/Classification.aod
+++ b/neonContext/Classification/Classification.aod
@@ -3,6 +3,7 @@
   <name>Classification</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/neonContext/Classification/documentation.adoc</documentation>
+  <filterView>ClassificationTree_view</filterView>
   <previewView>ClassificationPreview_view</previewView>
   <entity>Classification_entity</entity>
   <references>
diff --git a/neonContext/DistrictContact/DistrictContact.aod b/neonContext/DistrictContact/DistrictContact.aod
new file mode 100644
index 0000000000000000000000000000000000000000..8db3d54af752ddd113a94b0e68df38a00c3f6bf8
--- /dev/null
+++ b/neonContext/DistrictContact/DistrictContact.aod
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1">
+  <name>DistrictContact</name>
+  <title>Supervisor</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>VAADIN:GLOBE</icon>
+  <filterView>DistrictContactFilter_view</filterView>
+  <editView>DistrictContactEdit_view</editView>
+  <entity>DistrictContact_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>d3f8cf3c-bf79-4b52-a7a6-f26dcc3b6cb3</name>
+      <view>DistrictContactFilter_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>a271900d-e4cb-40cf-8172-93169a513ee4</name>
+      <view>DistrictContactEdit_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonContext/DistrictResponsible/DistrictResponsible.aod b/neonContext/DistrictResponsible/DistrictResponsible.aod
index 58d47bc30bb3ee9a657e860f9b9f6b45872194e5..1a7fdf7c9c460ca3d629a372a4ffba1cf1aa8cc3 100644
--- a/neonContext/DistrictResponsible/DistrictResponsible.aod
+++ b/neonContext/DistrictResponsible/DistrictResponsible.aod
@@ -1,8 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1">
   <name>DistrictResponsible</name>
+  <title>District Responsibles</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <icon>VAADIN:GLOBE</icon>
+  <filterView>DistrictResponsibleFilter_view</filterView>
+  <editView>DistrictResponsibleEdit_view</editView>
+  <previewView>DistrictResponsiblePreviewList_view</previewView>
+  <lookupView>DistrictResponsibleLookup_view</lookupView>
+  <devices>
+    <element>MOBILE</element>
+    <element>TABLET</element>
+    <element>DESKTOP</element>
+  </devices>
   <entity>DistrictResponsible_entity</entity>
   <references>
     <neonViewReference>
@@ -17,5 +27,17 @@
       <name>cba355d3-4ef4-441e-8976-f51c8fe65eec</name>
       <view>DistrictResponsiblePreviewList_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>4fb58e00-a771-4a2b-a820-d0f863572d89</name>
+      <view>DistrictResponsibleFilter_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>bf0655aa-60e7-47b8-a3e7-eb7ba8b37cac</name>
+      <view>DistrictResponsibleEdit_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>30960bbf-184a-4e4e-8058-983d4c150d89</name>
+      <view>DistrictResponsibleLookup_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/EwsSyncAddContacts/EwsSyncAddContacts.aod b/neonContext/EwsSyncAddContacts/EwsSyncAddContacts.aod
new file mode 100644
index 0000000000000000000000000000000000000000..9f9809ee4ab68bc9abc7fd254e23aba11fb0b2c3
--- /dev/null
+++ b/neonContext/EwsSyncAddContacts/EwsSyncAddContacts.aod
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1">
+  <name>EwsSyncAddContacts</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <editView>EwsSyncAddContactsEdit_view</editView>
+  <entity>EwsSyncAddContacts_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>c4d8f240-388e-4a1d-9455-e100a33c4819</name>
+      <view>EwsSyncAddContactsEdit_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonContext/KeywordCategory/KeywordCategory.aod b/neonContext/KeywordCategory/KeywordCategory.aod
new file mode 100644
index 0000000000000000000000000000000000000000..339af18455583a17b912f5df191b0904950d33a8
--- /dev/null
+++ b/neonContext/KeywordCategory/KeywordCategory.aod
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1">
+  <name>KeywordCategory</name>
+  <title>Keyword Category</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterView>KeywordCategoryFilter_view</filterView>
+  <editView>KeywordCategoryEdit_view</editView>
+  <previewView>KeywordCategoryPreview_view</previewView>
+  <entity>KeywordCategory_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>1e20d23b-c7d2-4218-ab81-2e4358eae7bc</name>
+      <view>KeywordCategoryFilter_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>1daa1f4f-f6d3-4ce7-b83b-2b3617bc2136</name>
+      <view>KeywordCategoryEdit_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>bc8a8d1d-d5fe-4518-a487-a2530820c78d</name>
+      <view>KeywordCategoryPreview_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonContext/KeywordEntry/KeywordEntry.aod b/neonContext/KeywordEntry/KeywordEntry.aod
index db9d9aa2b1577a069150e06299fd59bb6570372b..605540f62d6ca5743e6c0c4c3892217df14ba252 100644
--- a/neonContext/KeywordEntry/KeywordEntry.aod
+++ b/neonContext/KeywordEntry/KeywordEntry.aod
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1">
   <name>KeywordEntry</name>
-  <title>Keyword</title>
+  <title>Keyword Entry</title>
   <description>&lt;null value&gt;</description>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterView>KeywordEntryFilter_view</filterView>
@@ -21,5 +21,13 @@
       <name>9bb352b9-5a8c-41ac-9c42-7f4f7f4827f3</name>
       <view>KeywordEntryPreview_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>e2b889cf-1159-429b-978e-c005d0306156</name>
+      <view>KeywordEntryMultiEdit_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>71a850a4-1ec3-4a3f-abc0-f0b6eba2e514</name>
+      <view>KeywordEntryList_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/Observation/Observation.aod b/neonContext/Observation/Observation.aod
new file mode 100644
index 0000000000000000000000000000000000000000..aeab7d749b7e799c4c22e6d58f55bbc73c5be06c
--- /dev/null
+++ b/neonContext/Observation/Observation.aod
@@ -0,0 +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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1">
+  <name>Observation</name>
+  <title>Observation</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>VAADIN:EYE</icon>
+  <filterView>ObservationFilter_view</filterView>
+  <editView>ObservationEdit_view</editView>
+  <previewView>ObservationPreview_view</previewView>
+  <entity>Observation_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>081e645d-ede7-4987-891c-725e2300c7a0</name>
+      <view>ObservationFilter_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>381da87e-006b-4fd6-b2b2-18e53d675928</name>
+      <view>ObservationEdit_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>8e1417a2-f172-451f-9e76-81b852abcaa1</name>
+      <view>ObservationPreview_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonContext/Order/Order.aod b/neonContext/Order/Order.aod
index d3f8ba0860f318063c886afe075a841d34da9858..3aed2f990aa1c611b9800ff36c2f9d14cb569f98 100644
--- a/neonContext/Order/Order.aod
+++ b/neonContext/Order/Order.aod
@@ -51,5 +51,13 @@
       <name>99e9bf9f-3aa0-48c6-b136-6b0d81f602d4</name>
       <view>OrderReport_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>87de3eca-c0cb-4aec-a32b-c7edc1cbac93</name>
+      <view>OrderCondition_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>777804d0-fe8d-43b6-9599-18fc46951d8f</name>
+      <view>OrderAddress_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/Product/Product.aod b/neonContext/Product/Product.aod
index 7d36aaa10f0f067db17fc1a209b7905efb611917..4a1a49078e0a59b2fd6643f45972170c2e52f505 100644
--- a/neonContext/Product/Product.aod
+++ b/neonContext/Product/Product.aod
@@ -31,5 +31,9 @@
       <name>ec872778-87d1-4070-a3da-3808da326119</name>
       <view>ProductLookup_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>8088a294-78dd-4f7b-8bd3-add1b9fe3d90</name>
+      <view>ProductDescritption_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/Salesproject/Salesproject.aod b/neonContext/Salesproject/Salesproject.aod
index 4b997e115ae5c4e69f504b7c85f89b98a9327fb8..57dc7485b7ab4a0cf110be281c8993df2c7663ec 100644
--- a/neonContext/Salesproject/Salesproject.aod
+++ b/neonContext/Salesproject/Salesproject.aod
@@ -31,10 +31,6 @@
       <name>9d4603e0-6e0e-4c9e-af97-f5c059debe9e</name>
       <view>SalesprojectMilestone_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>
@@ -75,5 +71,9 @@
       <name>079db4ee-86fc-4985-a253-249622d9f3ce</name>
       <view>SalesprojectAnalyses_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>b50928ae-ad07-40ea-87e7-4f82daf9715c</name>
+      <view>SalesprojectActivity_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/SalesprojectPhaseDefinition/SalesprojectPhaseDefinition.aod b/neonContext/SalesprojectPhaseDefinition/SalesprojectPhaseDefinition.aod
new file mode 100644
index 0000000000000000000000000000000000000000..abfe2caf79a2a03d4170a7b98c04d168ea55d936
--- /dev/null
+++ b/neonContext/SalesprojectPhaseDefinition/SalesprojectPhaseDefinition.aod
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1">
+  <name>SalesprojectPhaseDefinition</name>
+  <title>Salesproject phases</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>VAADIN:LIST_UL</icon>
+  <filterView>SalesprojectPhaseDefinitionFilter_view</filterView>
+  <editView>SalesprojectPhaseDefinitionEdit_view</editView>
+  <previewView>SalesprojectPhaseDefinitionPreview_view</previewView>
+  <devices>
+    <element>MOBILE</element>
+    <element>TABLET</element>
+    <element>DESKTOP</element>
+  </devices>
+  <entity>SalesprojectPhaseDefinition_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>41bee035-a20a-4eb1-95ba-190dbacf1c7d</name>
+      <view>SalesprojectPhaseDefinitionFilter_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>a1eac585-06e1-4a5f-bb7b-4cbacb0710ae</name>
+      <view>SalesprojectPhaseDefinitionEdit_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>14fcb49f-fd8c-43e4-a3e9-6e6ccd42743c</name>
+      <view>SalesprojectPhaseDefinitionPreview_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonContext/SupportTicket/documentation.adoc b/neonContext/SupportTicket/documentation.adoc
index 3bca58b3124500f53d71883fa7f55ac45ad364ce..f36128eeced596a320c3a68caa4bee3a01cd356d 100644
--- a/neonContext/SupportTicket/documentation.adoc
+++ b/neonContext/SupportTicket/documentation.adoc
@@ -62,19 +62,6 @@ As soon as you need to hardcode the ticket type keyid (e.g. use $KeywordRegistry
 ==== setup
 
 . add a new TicketType Keyword in liquibase (in your own liquibase folder, not the *basic* folder!)
-[source,xml]
-----
-<insert tableName="AB_KEYWORD_ENTRY">
-    <column name="AB_KEYWORD_ENTRYID" value="54fd061b-3897-49c7-a1fb-92a35b87c846"/>
-    <column name="KEYID" value="TESTTICKET"/>
-    <column name="TITLE" value="Testticket"/>
-    <column name="CONTAINER" value="TicketType"/>
-    <column name="SORTING" valueNumeric="1"/>
-    <column name="ISACTIVE" valueNumeric="1"/>
-    <column name="ISESSENTIAL" valueNumeric="1"/>
-</insert>
-----
-
 . remove the preset of the *TicketType_param*: `SupportTicket_entity -> parameters -> TicketType_param -> valueProcess` comment or remove the process. This will enable the TicketType dropdown in the edit view.
 . optionally: change the title and titlePlural of the SupportTicket entity to something more generic (such as "Ticket")
 . deploy
@@ -143,28 +130,7 @@ To alter the possible status just add the *availableStatus* keyword attribute:
 
 It is also just a json array which contains the Keyid's from the Keyword-Container *TaskStatus*.
 
-If you need different / additional status which is not available in *TaskStatus*, just add it to *TaskStatus*:
-
-[source,xml]
-----
-<insert tableName="AB_KEYWORD_ENTRY">
-    <column name="AB_KEYWORD_ENTRYID" value="dbbe484b-be80-4be5-a804-e4aa877f25a2"/>
-    <column name="KEYID" value="SUPERSTATUS"/>
-    <column name="TITLE" value="superstatus"/>
-    <column name="CONTAINER" value="TaskStatus"/>
-    <column name="SORTING" valueNumeric="110"/>
-    <column name="ISACTIVE" valueNumeric="1"/>
-    <column name="ISESSENTIAL" valueNumeric="0"/>
-</insert>
-
-<!-- the Icon used by this new status -->
-<insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
-    <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="03581cd1-1372-43b0-b10e-2bae51a4df30"/>
-    <column name="AB_KEYWORD_ENTRY_ID" value="dbbe484b-be80-4be5-a804-e4aa877f25a2"/>
-    <column name="AB_KEYWORD_ATTRIBUTE_ID" value="472f9bc2-3331-49f9-aba2-72d5eeb89654"/>
-    <column name="CHAR_VALUE" value="NEON:STATUS_NOT_ASSIGNED"/>
-</insert>
-----
+If you need different / additional status which is not available in *TaskStatus*, just add it to *TaskStatus*
 
 Then you can add it to the *availableStatus* array described above
 
@@ -185,17 +151,7 @@ If you just would like to extend the SupportTicket (or another custom context) b
 
 Here an example to add a configuration for hiding the progress-field for certain types.
 
-. first you have to define a new keyword attribute:
-+
-[source,xml]
-----
-<insert tableName="AB_KEYWORD_ATTRIBUTE">
-    <column name="AB_KEYWORD_ATTRIBUTEID" value="c33ce01f-02f2-41ac-b2be-92e5fca67e31"/>
-    <column name="NAME" value="hideProgress"/>
-    <column name="CONTAINER" value="TicketType"/>
-    <column name="KIND" value="BOOL_VALUE"/>
-</insert>
-----
+. first you have to define a new keyword attribute.
 +
 . Then you need to assign *true* (1) to all types which you would like to hide the progress:
 +
diff --git a/neonNotificationType/DistrictAssigned/DistrictAssigned.aod b/neonNotificationType/DistrictAssigned/DistrictAssigned.aod
new file mode 100644
index 0000000000000000000000000000000000000000..d3acf304d7d808619faba61d320706818107cb06
--- /dev/null
+++ b/neonNotificationType/DistrictAssigned/DistrictAssigned.aod
@@ -0,0 +1,7 @@
+<?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>DistrictAssigned</name>
+  <title>District assigned</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>VAADIN:GLOBE</icon>
+</neonNotificationType>
diff --git a/neonNotificationType/ObservationNotification/ObservationNotification.aod b/neonNotificationType/ObservationNotification/ObservationNotification.aod
new file mode 100644
index 0000000000000000000000000000000000000000..da8982e18acd2def55807ba471e214b6150f0c67
--- /dev/null
+++ b/neonNotificationType/ObservationNotification/ObservationNotification.aod
@@ -0,0 +1,7 @@
+<?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>ObservationNotification</name>
+  <title>Observation</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>VAADIN:EYE</icon>
+</neonNotificationType>
diff --git a/neonView/360DegreeFilter_view/360DegreeFilter_view.aod b/neonView/360DegreeFilter_view/360DegreeFilter_view.aod
index bf84f6db4d792b5c1b68175933c73acf1ea7a5ce..26a3200a30ceff3d8ef7307da79661fce7c24362 100644
--- a/neonView/360DegreeFilter_view/360DegreeFilter_view.aod
+++ b/neonView/360DegreeFilter_view/360DegreeFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>360DegreeFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -11,13 +11,12 @@
   <children>
     <treeViewTemplate>
       <name>Tree</name>
-      <favoriteActionGroup2>newModule</favoriteActionGroup2>
       <titleField>TITLE</titleField>
       <descriptionField>DESCRIPTION</descriptionField>
       <iconField>ICON</iconField>
       <hideContentSearch v="false" />
       <entityField>#ENTITY</entityField>
-      <linkedColumns />
+      <favoriteActionGroup2>newModule</favoriteActionGroup2>
       <defaultGroupFields>
         <element>GROUP</element>
       </defaultGroupFields>
@@ -25,13 +24,13 @@
     </treeViewTemplate>
     <timelineViewTemplate>
       <name>Timeline</name>
-      <favoriteActionGroup2>newModule</favoriteActionGroup2>
       <dateField>DATE_NEW</dateField>
       <titleField>TITLE</titleField>
       <descriptionField>GROUP</descriptionField>
       <iconIdField>ICON</iconIdField>
       <hideContentSearch v="false" />
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup2>newModule</favoriteActionGroup2>
     </timelineViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/ActivityAnalyses_view/ActivityAnalyses_view.aod b/neonView/ActivityAnalyses_view/ActivityAnalyses_view.aod
index 606d13134ae41b3962b0b2c53d81c3d7c9e4a9ca..fd67ceed29eb81b3dcee171af5119d624b3ff615 100644
--- a/neonView/ActivityAnalyses_view/ActivityAnalyses_view.aod
+++ b/neonView/ActivityAnalyses_view/ActivityAnalyses_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ActivityAnalyses_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/ActivityDetail_view/ActivityDetail_view.aod b/neonView/ActivityDetail_view/ActivityDetail_view.aod
index 870b77975c3fde5e3c371ff98ac417bc4d57b598..95192a1406ad14b83b8a99cdb152fde8f47eeec8 100644
--- a/neonView/ActivityDetail_view/ActivityDetail_view.aod
+++ b/neonView/ActivityDetail_view/ActivityDetail_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ActivityDetail_view</name>
   <title>Description</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/ActivityDrawer_view/ActivityDrawer_view.aod b/neonView/ActivityDrawer_view/ActivityDrawer_view.aod
index b7d3bb7f8fcfb8ebfd38e4c4af6004b8f00ca7d3..63f7f3f3b83b9307b93a271b5b548f8393b44f84 100644
--- a/neonView/ActivityDrawer_view/ActivityDrawer_view.aod
+++ b/neonView/ActivityDrawer_view/ActivityDrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ActivityDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ActivityEdit_view/ActivityEdit_view.aod b/neonView/ActivityEdit_view/ActivityEdit_view.aod
index 955128744e3c02f1cc7e83bef1f2ea5537d11db4..1ad3a620d03322bd972f6de059140bf7db579c56 100644
--- a/neonView/ActivityEdit_view/ActivityEdit_view.aod
+++ b/neonView/ActivityEdit_view/ActivityEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ActivityEdit_view</name>
   <title>Activity</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/ActivityFilter_view/ActivityFilter_view.aod b/neonView/ActivityFilter_view/ActivityFilter_view.aod
index 0094ed2874568680cfad9c6216168bee3132c2fc..3b3a87820a5d349e2e9ead5d7304aa8349ddbdaa 100644
--- a/neonView/ActivityFilter_view/ActivityFilter_view.aod
+++ b/neonView/ActivityFilter_view/ActivityFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ActivityFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -50,22 +50,24 @@
   <children>
     <timelineViewTemplate>
       <name>ActivitiesTimeline</name>
-      <favoriteActionGroup2>MSTeamsActions</favoriteActionGroup2>
       <dateField>entryDateDateFormat</dateField>
       <titleField>SUBJECT_DETAILS</titleField>
       <descriptionField>INFO</descriptionField>
       <iconIdField>#IMAGE</iconIdField>
       <hideTime v="true" />
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>filterActions</favoriteActionGroup1>
+      <favoriteActionGroup2>MSTeamsActions</favoriteActionGroup2>
     </timelineViewTemplate>
     <tableViewTemplate>
       <name>ActivitiesTable</name>
-      <favoriteActionGroup2>MSTeamsActions</favoriteActionGroup2>
       <iconField>#IMAGE</iconField>
       <titleField>SUBJECT</titleField>
       <subtitleField>ENTRYDATE</subtitleField>
       <descriptionField>DIRECTION</descriptionField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>filterActions</favoriteActionGroup1>
+      <favoriteActionGroup2>MSTeamsActions</favoriteActionGroup2>
       <linkedColumns>
         <element>SUBJECT</element>
       </linkedColumns>
@@ -88,14 +90,15 @@
         </neonTableColumn>
         <neonTableColumn>
           <name>692a655b-18f5-4323-8d87-ee42726bed38</name>
-          <entityField>INFO</entityField>
+          <entityField>infoTable</entityField>
         </neonTableColumn>
       </columns>
     </tableViewTemplate>
     <treeTableViewTemplate>
       <name>ActivitiesTreeTable</name>
-      <favoriteActionGroup2>MSTeamsActions</favoriteActionGroup2>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>filterActions</favoriteActionGroup1>
+      <favoriteActionGroup2>MSTeamsActions</favoriteActionGroup2>
       <columns>
         <neonTreeTableColumn>
           <name>cdf48078-3766-4d45-8bfb-e17e472e32d6</name>
diff --git a/neonView/ActivityLinkFilter_view/ActivityLinkFilter_view.aod b/neonView/ActivityLinkFilter_view/ActivityLinkFilter_view.aod
index b5fff0f4acee7b41242f8fa1e6a29f92e971fb03..ccb7bcc45f849b093bcc10619447024c03385c9c 100644
--- a/neonView/ActivityLinkFilter_view/ActivityLinkFilter_view.aod
+++ b/neonView/ActivityLinkFilter_view/ActivityLinkFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ActivityLinkFilter_view</name>
   <title>Connections</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
@@ -11,8 +11,8 @@
   <children>
     <tableViewTemplate>
       <name>Objects</name>
-      <entityField>#ENTITY</entityField>
       <autoNewRow v="true" />
+      <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
           <name>2cf427f2-2dcd-4e4e-9f5c-82f103f9cf86</name>
diff --git a/neonView/ActivityLinkMultiEdit_view/ActivityLinkMultiEdit_view.aod b/neonView/ActivityLinkMultiEdit_view/ActivityLinkMultiEdit_view.aod
index e19f1da0f82985fe301ad938c70cd9df35f5b7cf..a275e4300d05577a7e7e5a1f74d1329af3db1d1e 100644
--- a/neonView/ActivityLinkMultiEdit_view/ActivityLinkMultiEdit_view.aod
+++ b/neonView/ActivityLinkMultiEdit_view/ActivityLinkMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ActivityLinkMultiEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ActivityLinkPreviewList_view/ActivityLinkPreviewList_view.aod b/neonView/ActivityLinkPreviewList_view/ActivityLinkPreviewList_view.aod
index dab9bccb0a84bf22f2cda551e76107d1dce31107..dba4647aeeb762e9f22966a831b0d2fdf20cd597 100644
--- a/neonView/ActivityLinkPreviewList_view/ActivityLinkPreviewList_view.aod
+++ b/neonView/ActivityLinkPreviewList_view/ActivityLinkPreviewList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ActivityLinkPreviewList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ActivityLinkPreview_view/ActivityLinkPreview_view.aod b/neonView/ActivityLinkPreview_view/ActivityLinkPreview_view.aod
index 5327f5fd86e2440636c94a44cf3c3a557c94b8a2..72b7ef551f446211a0ea68387f10212267a56714 100644
--- a/neonView/ActivityLinkPreview_view/ActivityLinkPreview_view.aod
+++ b/neonView/ActivityLinkPreview_view/ActivityLinkPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ActivityLinkPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ActivityMain_view/ActivityMain_view.aod b/neonView/ActivityMain_view/ActivityMain_view.aod
index 8dd7d3f4f2f73d4fdab425fab12e4150eb2250fe..19b722bfa2bdadd100254525a78a28432f7e9619 100644
--- a/neonView/ActivityMain_view/ActivityMain_view.aod
+++ b/neonView/ActivityMain_view/ActivityMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ActivityMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ActivityMultiEdit_view/ActivityMultiEdit_view.aod b/neonView/ActivityMultiEdit_view/ActivityMultiEdit_view.aod
index 6d74561374a3574953ba099fef208111f2cc9a2a..ab6a19d36a37e2ccb3f4bd5955532320b74e9ae3 100644
--- a/neonView/ActivityMultiEdit_view/ActivityMultiEdit_view.aod
+++ b/neonView/ActivityMultiEdit_view/ActivityMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ActivityMultiEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ActivityPreview_view/ActivityPreview_view.aod b/neonView/ActivityPreview_view/ActivityPreview_view.aod
index 7b82a42582a8444dbfbc726077467d458358ae33..eb0662c53e5fa9c46e2fdaf3c1630de47ff94199 100644
--- a/neonView/ActivityPreview_view/ActivityPreview_view.aod
+++ b/neonView/ActivityPreview_view/ActivityPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ActivityPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ActivityUniversalFileProcessorFilter_view/ActivityUniversalFileProcessorFilter_view.aod b/neonView/ActivityUniversalFileProcessorFilter_view/ActivityUniversalFileProcessorFilter_view.aod
index eaec7e7ddba0db1de1262c4b98c9c9bb7202877e..35f2991a07c02c4d43a8d712481ef4763f53fa6a 100644
--- a/neonView/ActivityUniversalFileProcessorFilter_view/ActivityUniversalFileProcessorFilter_view.aod
+++ b/neonView/ActivityUniversalFileProcessorFilter_view/ActivityUniversalFileProcessorFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ActivityUniversalFileProcessorFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -38,7 +38,7 @@
         </neonTableColumn>
         <neonTableColumn>
           <name>a32a87b0-79ed-4774-9331-a814298c4ee8</name>
-          <entityField>INFO</entityField>
+          <entityField>infoTable</entityField>
         </neonTableColumn>
       </columns>
     </tableViewTemplate>
diff --git a/neonView/AddressList_view/AddressList_view.aod b/neonView/AddressList_view/AddressList_view.aod
index bd5826a7da483c1146e31ec6f855bb07bf3458cc..a3e85b279b9f2af3724d5715227deef394c7d30b 100644
--- a/neonView/AddressList_view/AddressList_view.aod
+++ b/neonView/AddressList_view/AddressList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AddressList_view</name>
   <description>Org addresses</description>
   <majorModelMode>DISTRIBUTED</majorModelMode>
@@ -62,10 +62,6 @@
           <name>aafc58cf-7dbb-42cb-b04c-d0869e58d09a</name>
           <entityField>STATE</entityField>
         </neonTitledListTableColumn>
-        <neonTitledListTableColumn>
-          <name>29dbb3f5-6f80-4100-aed3-334ac0b9cc48</name>
-          <entityField>REGION</entityField>
-        </neonTitledListTableColumn>
         <neonTitledListTableColumn>
           <name>6e369a01-965f-41d9-9b0a-6128a3827e47</name>
           <entityField>ADDRESSADDITION</entityField>
@@ -82,6 +78,10 @@
           <name>9c37669e-e577-44b9-b43f-3734b88de205</name>
           <entityField>LON</entityField>
         </neonTitledListTableColumn>
+        <neonTitledListTableColumn>
+          <name>e8feb907-9f2e-42d9-93fe-ef7ccf11d384</name>
+          <entityField>formattedAddress</entityField>
+        </neonTitledListTableColumn>
       </columns>
     </titledListViewTemplate>
   </children>
diff --git a/neonView/AddressLookup_view/AddressLookup_view.aod b/neonView/AddressLookup_view/AddressLookup_view.aod
index 904f60c6b30424011bcd655ffff8642be2ee6f4e..dc7bde3fd3d4439ea589e6f003a24c0852c3bf76 100644
--- a/neonView/AddressLookup_view/AddressLookup_view.aod
+++ b/neonView/AddressLookup_view/AddressLookup_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AddressLookup_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/AddressOrgMultiEdit_view/AddressOrgMultiEdit_view.aod b/neonView/AddressOrgMultiEdit_view/AddressOrgMultiEdit_view.aod
index dd7ee5507e2bd5b56d4987b657bd9069fdf4ca56..fa53f54f1ac663b38d09708b2c4623a61b52e579 100644
--- a/neonView/AddressOrgMultiEdit_view/AddressOrgMultiEdit_view.aod
+++ b/neonView/AddressOrgMultiEdit_view/AddressOrgMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AddressOrgMultiEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/AddressValidationLookup_view/AddressValidationLookup_view.aod b/neonView/AddressValidationLookup_view/AddressValidationLookup_view.aod
index 7372c60c7af018c61811155bd1f4ad7eb39c7725..c64330a9cbedcdbde366b59227d1f108f5dc59a4 100644
--- a/neonView/AddressValidationLookup_view/AddressValidationLookup_view.aod
+++ b/neonView/AddressValidationLookup_view/AddressValidationLookup_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AddressValidationLookup_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/AdminViewRow_view/AdminViewRow_view.aod b/neonView/AdminViewRow_view/AdminViewRow_view.aod
index cd5a8658bb4b433a42fd9e83b2ecd310d412389d..c2593cbed32c607d724a197f08a3e7eaeec2e564 100644
--- a/neonView/AdminViewRow_view/AdminViewRow_view.aod
+++ b/neonView/AdminViewRow_view/AdminViewRow_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AdminViewRow_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/AdressMultiEdit_view/AdressMultiEdit_view.aod b/neonView/AdressMultiEdit_view/AdressMultiEdit_view.aod
index b4612adcf1a8e53a8a8019260f542eb8d0d76905..3bcfaf74c4c37ba27867f7ac478647fc9572131c 100644
--- a/neonView/AdressMultiEdit_view/AdressMultiEdit_view.aod
+++ b/neonView/AdressMultiEdit_view/AdressMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AdressMultiEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/AnyContactDuplicates_view/AnyContactDuplicates_view.aod b/neonView/AnyContactDuplicates_view/AnyContactDuplicates_view.aod
index ff719ed37110b4efdcbba745efc705ea856e2e85..81b6dfc5414148493a786f64c140c6856e2da7c5 100644
--- a/neonView/AnyContactDuplicates_view/AnyContactDuplicates_view.aod
+++ b/neonView/AnyContactDuplicates_view/AnyContactDuplicates_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AnyContactDuplicates_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/AnyContactLookup_view/AnyContactLookup_view.aod b/neonView/AnyContactLookup_view/AnyContactLookup_view.aod
index 4a06e39e312f5786ac5fc224eafa3a45d7bbabc4..f7eada4ddd36d3071ef516f48a7e936972a41d8d 100644
--- a/neonView/AnyContactLookup_view/AnyContactLookup_view.aod
+++ b/neonView/AnyContactLookup_view/AnyContactLookup_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AnyContactLookup_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/AppointmentCheckUp_view/AppointmentCheckUp_view.aod b/neonView/AppointmentCheckUp_view/AppointmentCheckUp_view.aod
index 2f0e9199d4d5ce506786750e9240645d9517f6d3..68ccb50f6f9b6d648fd39c083843f00caa80784c 100644
--- a/neonView/AppointmentCheckUp_view/AppointmentCheckUp_view.aod
+++ b/neonView/AppointmentCheckUp_view/AppointmentCheckUp_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AppointmentCheckUp_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <dashletConfigurations>
diff --git a/neonView/AppointmentEdit_view/AppointmentEdit_view.aod b/neonView/AppointmentEdit_view/AppointmentEdit_view.aod
index 5b5def3ba12aa516e0da7c4a8a60cdbe653b690b..0278e0201bc50ba382f4c04a00332bdda8c1bfc9 100644
--- a/neonView/AppointmentEdit_view/AppointmentEdit_view.aod
+++ b/neonView/AppointmentEdit_view/AppointmentEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AppointmentEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/neonView/AppointmentEdit_view/documentation.adoc</documentation>
diff --git a/neonView/AppointmentFilterDashlet_view/AppointmentFilterDashlet_view.aod b/neonView/AppointmentFilterDashlet_view/AppointmentFilterDashlet_view.aod
index e0d50c9bd43ba9ecdde48c9a59c5cfcf6e5b94aa..0930b8771599b1a70689872d740da206e3cdc2e8 100644
--- a/neonView/AppointmentFilterDashlet_view/AppointmentFilterDashlet_view.aod
+++ b/neonView/AppointmentFilterDashlet_view/AppointmentFilterDashlet_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AppointmentFilterDashlet_view</name>
   <title>Linked Appointments</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
@@ -36,10 +36,10 @@
   <children>
     <tableViewTemplate>
       <name>Table</name>
+      <autoNewRow v="false" />
       <entityField>#ENTITY</entityField>
       <isDeletable v="false" />
       <isEditable v="false" />
-      <autoNewRow v="false" />
       <columns>
         <neonTableColumn>
           <name>0aa3d147-674f-4765-826e-f97a4b48dc8a</name>
diff --git a/neonView/AppointmentFilter_view/AppointmentFilter_view.aod b/neonView/AppointmentFilter_view/AppointmentFilter_view.aod
index 75dfc0953f85dd44c26ce48b4acf531aba9fc5e2..fc4dc013c156648cf77a5a9893adb7ba741a6803 100644
--- a/neonView/AppointmentFilter_view/AppointmentFilter_view.aod
+++ b/neonView/AppointmentFilter_view/AppointmentFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AppointmentFilter_view</name>
   <title>Linked Appointments</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/AppointmentLinkEdit_view/AppointmentLinkEdit_view.aod b/neonView/AppointmentLinkEdit_view/AppointmentLinkEdit_view.aod
index 1d1f735b094af28a500960cc3e6b870a138549e1..dda4bf55decc3b2d66bb7f82e9e33e169a154a4c 100644
--- a/neonView/AppointmentLinkEdit_view/AppointmentLinkEdit_view.aod
+++ b/neonView/AppointmentLinkEdit_view/AppointmentLinkEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AppointmentLinkEdit_view</name>
   <title>relations</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/AppointmentLinkFilter_view/AppointmentLinkFilter_view.aod b/neonView/AppointmentLinkFilter_view/AppointmentLinkFilter_view.aod
index 7ecded1820ef9fb269701f406730349b3042e922..f2710524d65897538b6b49d4d5f45be80f690256 100644
--- a/neonView/AppointmentLinkFilter_view/AppointmentLinkFilter_view.aod
+++ b/neonView/AppointmentLinkFilter_view/AppointmentLinkFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AppointmentLinkFilter_view</name>
   <title>relations</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/AppointmentPreview_view/AppointmentPreview_view.aod b/neonView/AppointmentPreview_view/AppointmentPreview_view.aod
index 727a644d89918b72ba8e573978d45cf9f7118157..e01ad9965305815cd207a4ac30ed93d47793e4b0 100644
--- a/neonView/AppointmentPreview_view/AppointmentPreview_view.aod
+++ b/neonView/AppointmentPreview_view/AppointmentPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AppointmentPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/neonView/AppointmentPreview_view/documentation.adoc</documentation>
diff --git a/neonView/AroundLocationHeader_view/AroundLocationHeader_view.aod b/neonView/AroundLocationHeader_view/AroundLocationHeader_view.aod
index ce86ba2afd585215bb100fec728104b427bdfd4c..913b456459541c8a1e75145ed1cf7ddb5e336d0c 100644
--- a/neonView/AroundLocationHeader_view/AroundLocationHeader_view.aod
+++ b/neonView/AroundLocationHeader_view/AroundLocationHeader_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AroundLocationHeader_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/AroundOrganisationFooter_view/AroundOrganisationFooter_view.aod b/neonView/AroundOrganisationFooter_view/AroundOrganisationFooter_view.aod
index 74bac1d84439489938b5751fe465909d5128e69d..00b9af66f758a7dd22435376bafae0e59540707a 100644
--- a/neonView/AroundOrganisationFooter_view/AroundOrganisationFooter_view.aod
+++ b/neonView/AroundOrganisationFooter_view/AroundOrganisationFooter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AroundOrganisationFooter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/AroundOrganisationLocation_view/AroundOrganisationLocation_view.aod b/neonView/AroundOrganisationLocation_view/AroundOrganisationLocation_view.aod
index 6ee6f9459fd4bc34294cfec67617be540463888a..bd7d2fcd18b1451bcb0f97c85e195b6690745846 100644
--- a/neonView/AroundOrganisationLocation_view/AroundOrganisationLocation_view.aod
+++ b/neonView/AroundOrganisationLocation_view/AroundOrganisationLocation_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AroundOrganisationLocation_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="false" />
diff --git a/neonView/AttributeEdit_view/AttributeEdit_view.aod b/neonView/AttributeEdit_view/AttributeEdit_view.aod
index f0540f0420d82a95401fb023d144ebba72f28923..b044f7e623aeced5b67fa99ae4e45ec094e42e05 100644
--- a/neonView/AttributeEdit_view/AttributeEdit_view.aod
+++ b/neonView/AttributeEdit_view/AttributeEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AttributeEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/AttributeFilter_view/AttributeFilter_view.aod b/neonView/AttributeFilter_view/AttributeFilter_view.aod
index 573f26dd7d27579936a03fb6c149dd3318390280..41d0b35cc6111b4bf889ef6efecd30eab14c737d 100644
--- a/neonView/AttributeFilter_view/AttributeFilter_view.aod
+++ b/neonView/AttributeFilter_view/AttributeFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AttributeFilter_view</name>
   <title>Attributes</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
@@ -13,11 +13,11 @@
     <treeTableViewTemplate>
       <name>AttributeTreeTable</name>
       <parentField>ATTRIBUTE_PARENT_ID</parentField>
-      <favoriteActionGroup1>AttributeActions</favoriteActionGroup1>
       <nodeExpandedField>expanded</nodeExpandedField>
       <hideContentSearch v="false" />
       <showChildrenCount v="false" />
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>AttributeActions</favoriteActionGroup1>
       <columns>
         <neonTreeTableColumn>
           <name>169aceb2-2ff8-42de-ab89-4d3cc15d5747</name>
diff --git a/neonView/AttributeList_view/AttributeList_view.aod b/neonView/AttributeList_view/AttributeList_view.aod
index 167cf43d52b6481ab3ad36f745aa899f2e53cc3f..b424b24f6e60b4e1051af138961f69727db9d08b 100644
--- a/neonView/AttributeList_view/AttributeList_view.aod
+++ b/neonView/AttributeList_view/AttributeList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AttributeList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -12,8 +12,8 @@
       <name>AttributeList</name>
       <entityField>#ENTITY</entityField>
       <isDeletable v="false" />
-      <isEditable v="false" />
       <isCreatable v="false" />
+      <isEditable v="false" />
       <columns>
         <neonTitledListTableColumn>
           <name>96544713-a302-4e2f-ab7f-6c02d44d9908</name>
diff --git a/neonView/AttributeLookup_view/AttributeLookup_view.aod b/neonView/AttributeLookup_view/AttributeLookup_view.aod
index d1c1580870ec1c39e6eb8bddc18661e5d17f3d67..b09289feb8283465fba38ca839695ec6a728c3b3 100644
--- a/neonView/AttributeLookup_view/AttributeLookup_view.aod
+++ b/neonView/AttributeLookup_view/AttributeLookup_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AttributeLookup_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/AttributeMultiEdit_view/AttributeMultiEdit_view.aod b/neonView/AttributeMultiEdit_view/AttributeMultiEdit_view.aod
index 21e86a1d4deaeeb08225ddcb0e05d793de0d5381..8436964dac5721de29d337c2416c15aa533043c1 100644
--- a/neonView/AttributeMultiEdit_view/AttributeMultiEdit_view.aod
+++ b/neonView/AttributeMultiEdit_view/AttributeMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AttributeMultiEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/AttributePreview_view/AttributePreview_view.aod b/neonView/AttributePreview_view/AttributePreview_view.aod
index f7164ab6941bd0255686fb2ac2d85837af4371c1..f67e3446e9f0e69ccd76b19766edc7144e7c394b 100644
--- a/neonView/AttributePreview_view/AttributePreview_view.aod
+++ b/neonView/AttributePreview_view/AttributePreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AttributePreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/AttributeRelationMultiEdit_view/AttributeRelationMultiEdit_view.aod b/neonView/AttributeRelationMultiEdit_view/AttributeRelationMultiEdit_view.aod
index fab8b8d5f075e070364a482acd84c0fb8cb0b914..2fa36fe2935dec6003a63e364629be8f3acc6828 100644
--- a/neonView/AttributeRelationMultiEdit_view/AttributeRelationMultiEdit_view.aod
+++ b/neonView/AttributeRelationMultiEdit_view/AttributeRelationMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AttributeRelationMultiEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/AttributeRelationPreviewList/AttributeRelationPreviewList.aod b/neonView/AttributeRelationPreviewList/AttributeRelationPreviewList.aod
index 2c17aad789a69aeac878f62ffc517503d9071881..9be6816f386feb6dddd4c62b35f37dede59f6cf5 100644
--- a/neonView/AttributeRelationPreviewList/AttributeRelationPreviewList.aod
+++ b/neonView/AttributeRelationPreviewList/AttributeRelationPreviewList.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AttributeRelationPreviewList</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/AttributeRelationTreeDrawer_view/AttributeRelationTreeDrawer_view.aod b/neonView/AttributeRelationTreeDrawer_view/AttributeRelationTreeDrawer_view.aod
index 872e755c6588e156d1cf6abc8fcb4373f453bb13..fa2d33e968c344663f7be74964f7a121e62bb6d5 100644
--- a/neonView/AttributeRelationTreeDrawer_view/AttributeRelationTreeDrawer_view.aod
+++ b/neonView/AttributeRelationTreeDrawer_view/AttributeRelationTreeDrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AttributeRelationTreeDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/AttributeRelationTreeEdit_view/AttributeRelationTreeEdit_view.aod b/neonView/AttributeRelationTreeEdit_view/AttributeRelationTreeEdit_view.aod
index bcc1303d8a36c78c9f778bd192efafa8e184bf9a..8a621673040dd63deba7c393f121c659431f061f 100644
--- a/neonView/AttributeRelationTreeEdit_view/AttributeRelationTreeEdit_view.aod
+++ b/neonView/AttributeRelationTreeEdit_view/AttributeRelationTreeEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AttributeRelationTreeEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/AttributeRelationTree_view/AttributeRelationTree_view.aod b/neonView/AttributeRelationTree_view/AttributeRelationTree_view.aod
index f0161b804b5aa9a8a7856e36eb5e3b557878e0c0..306acbe32f919565afb6fcccbb0b9a86584fc86b 100644
--- a/neonView/AttributeRelationTree_view/AttributeRelationTree_view.aod
+++ b/neonView/AttributeRelationTree_view/AttributeRelationTree_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AttributeRelationTree_view</name>
   <title>Attributes</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/AttributeTree_view/AttributeTree_view.aod b/neonView/AttributeTree_view/AttributeTree_view.aod
index aa5ab7c094358f33387e21a89713b033915237e5..7e332f41a6a59d888e330fb8cc6f0c0b02ebdd71 100644
--- a/neonView/AttributeTree_view/AttributeTree_view.aod
+++ b/neonView/AttributeTree_view/AttributeTree_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AttributeTree_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/AttributeUsageList_view/AttributeUsageList_view.aod b/neonView/AttributeUsageList_view/AttributeUsageList_view.aod
index 35e765c64583145f4ad366088348df56d2ba814a..a23578a1ef0901bdd9e2644213a24e8ba7905655 100644
--- a/neonView/AttributeUsageList_view/AttributeUsageList_view.aod
+++ b/neonView/AttributeUsageList_view/AttributeUsageList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AttributeUsageList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod b/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod
index 96ed51fb9564dbf9e11fffd6819e173a3b4c5973..785f7ae64d93542997b96f963f811494753f083b 100644
--- a/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod
+++ b/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AttributeUsageMultiEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/AuditLogHistoryFilter_view/AuditLogHistoryFilter_view.aod b/neonView/AuditLogHistoryFilter_view/AuditLogHistoryFilter_view.aod
index 87d730da51efd42cef56757ad691f7ab84a21e57..14a502c8aafe105977242fa88f88f0a776ea5757 100644
--- a/neonView/AuditLogHistoryFilter_view/AuditLogHistoryFilter_view.aod
+++ b/neonView/AuditLogHistoryFilter_view/AuditLogHistoryFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>AuditLogHistoryFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/BulkMailAddRecipientsEdit_view/BulkMailAddRecipientsEdit_view.aod b/neonView/BulkMailAddRecipientsEdit_view/BulkMailAddRecipientsEdit_view.aod
index 3e391de817552197a795d56eae398c21e37f0fdf..4ecfda58d231870c07359fe28fb481de5cd1d367 100644
--- a/neonView/BulkMailAddRecipientsEdit_view/BulkMailAddRecipientsEdit_view.aod
+++ b/neonView/BulkMailAddRecipientsEdit_view/BulkMailAddRecipientsEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>BulkMailAddRecipientsEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/BulkMailContent_view/BulkMailContent_view.aod b/neonView/BulkMailContent_view/BulkMailContent_view.aod
index ba5614086a9060c864343e558d20284f0d70387e..72aeeada11c74bda41b22e2a2ff83eb90c0710ad 100644
--- a/neonView/BulkMailContent_view/BulkMailContent_view.aod
+++ b/neonView/BulkMailContent_view/BulkMailContent_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>BulkMailContent_view</name>
   <title>Content</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
@@ -35,6 +35,10 @@
           <name>30f0e67c-3965-4506-b924-9d0e2693c2af</name>
           <entityField>content</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>6d3abe02-5d37-44df-bcde-4ebbcec5e35c</name>
+          <entityField>emlEditInfo</entityField>
+        </entityFieldLink>
       </fields>
     </genericViewTemplate>
   </children>
diff --git a/neonView/BulkMailEdit_view/BulkMailEdit_view.aod b/neonView/BulkMailEdit_view/BulkMailEdit_view.aod
index 48c0705557962ee3317b30ee2f5ff18bb7c52438..2dbb4bea8358d3d2e1ea6f9ba29c0cc39c26e39d 100644
--- a/neonView/BulkMailEdit_view/BulkMailEdit_view.aod
+++ b/neonView/BulkMailEdit_view/BulkMailEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>BulkMailEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/BulkMailFilter_view/BulkMailFilter_view.aod b/neonView/BulkMailFilter_view/BulkMailFilter_view.aod
index daa8da26604c40f86011da64ebbabbc35e24bdb8..b8e876f95b28c5fc9ba8d93f6a171f09cd9add87 100644
--- a/neonView/BulkMailFilter_view/BulkMailFilter_view.aod
+++ b/neonView/BulkMailFilter_view/BulkMailFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>BulkMailFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/BulkMailMain_view/BulkMailMain_view.aod b/neonView/BulkMailMain_view/BulkMailMain_view.aod
index 5c3d99ce8a8ab59e419574c23b7bee838b8889ae..5b05276c93901121cfd9cd663f1961454d76b4c2 100644
--- a/neonView/BulkMailMain_view/BulkMailMain_view.aod
+++ b/neonView/BulkMailMain_view/BulkMailMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>BulkMailMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/BulkMailPreview_view/BulkMailPreview_view.aod b/neonView/BulkMailPreview_view/BulkMailPreview_view.aod
index 7e3f5b4804e41dc7046fcb805cb520328e2d6ba6..48b1894a84256da8c10d96df4dbb7aea0e9957ab 100644
--- a/neonView/BulkMailPreview_view/BulkMailPreview_view.aod
+++ b/neonView/BulkMailPreview_view/BulkMailPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>BulkMailPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/BulkMailRecipientEdit_view/BulkMailRecipientEdit_view.aod b/neonView/BulkMailRecipientEdit_view/BulkMailRecipientEdit_view.aod
index 1ad8a7d50ee24f76d4d1f2a0c43c82e2841a28c2..6f3cea1d692822fb14d49cf4f2f3aa2272c74f10 100644
--- a/neonView/BulkMailRecipientEdit_view/BulkMailRecipientEdit_view.aod
+++ b/neonView/BulkMailRecipientEdit_view/BulkMailRecipientEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>BulkMailRecipientEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/BulkMailRecipientFilter_view/BulkMailRecipientFilter_view.aod b/neonView/BulkMailRecipientFilter_view/BulkMailRecipientFilter_view.aod
index 5f4bc454fb6344b87ddf7931df64a3643da870ea..9727da8fb78f8ff1ba6abd6414ffe00bbf0a4ffd 100644
--- a/neonView/BulkMailRecipientFilter_view/BulkMailRecipientFilter_view.aod
+++ b/neonView/BulkMailRecipientFilter_view/BulkMailRecipientFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>BulkMailRecipientFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -11,10 +11,10 @@
   <children>
     <tableViewTemplate>
       <name>Table</name>
-      <favoriteActionGroup1>recipientActions</favoriteActionGroup1>
       <inlineEdit v="true" />
-      <entityField>#ENTITY</entityField>
       <autoNewRow v="true" />
+      <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>recipientActions</favoriteActionGroup1>
       <columns>
         <neonTableColumn>
           <name>eadd8b00-f4a8-4634-bcc7-9bd5c6dbc876</name>
@@ -40,8 +40,8 @@
     </tableViewTemplate>
     <treeTableViewTemplate>
       <name>Treetable</name>
-      <favoriteActionGroup1>recipientActions</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>recipientActions</favoriteActionGroup1>
       <columns>
         <neonTreeTableColumn>
           <name>b2b619e2-3626-4ce4-8840-37a87af0657f</name>
diff --git a/neonView/BulkMailStatusChart_view/BulkMailStatusChart_view.aod b/neonView/BulkMailStatusChart_view/BulkMailStatusChart_view.aod
index ca3081b8e4008fbf8490f4b9f6f162fb9bb4abe7..97b6afb3a94a0742b398c37bfa8b02f123301f20 100644
--- a/neonView/BulkMailStatusChart_view/BulkMailStatusChart_view.aod
+++ b/neonView/BulkMailStatusChart_view/BulkMailStatusChart_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>BulkMailStatusChart_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/BulkMailTesting_view/BulkMailTesting_view.aod b/neonView/BulkMailTesting_view/BulkMailTesting_view.aod
index d3a8fa5c4e91d33df9a3b0e52819cd55bb5810de..9d6f129cc68388f95f5bb09396c798204b7cd085 100644
--- a/neonView/BulkMailTesting_view/BulkMailTesting_view.aod
+++ b/neonView/BulkMailTesting_view/BulkMailTesting_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>BulkMailTesting_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/CampaignAddParticipantsEdit_view/CampaignAddParticipantsEdit_view.aod b/neonView/CampaignAddParticipantsEdit_view/CampaignAddParticipantsEdit_view.aod
index c5448b2e2f2a2ff8b9012a77e0ebae80c3056c21..c0e5b31af8f217c20ff51eef4a8c348f132506c5 100644
--- a/neonView/CampaignAddParticipantsEdit_view/CampaignAddParticipantsEdit_view.aod
+++ b/neonView/CampaignAddParticipantsEdit_view/CampaignAddParticipantsEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignAddParticipantsEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/CampaignCharts_view/CampaignCharts_view.aod b/neonView/CampaignCharts_view/CampaignCharts_view.aod
index e17db141336eb902c719c77a685a4a738aa7b0ca..2d3d278d67d1d8ef855d91877c5b4bc5a7f19de2 100644
--- a/neonView/CampaignCharts_view/CampaignCharts_view.aod
+++ b/neonView/CampaignCharts_view/CampaignCharts_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignCharts_view</name>
   <title>Overview</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/CampaignCostAnalysis_view/CampaignCostAnalysis_view.aod b/neonView/CampaignCostAnalysis_view/CampaignCostAnalysis_view.aod
index 8f82f69de82d5daed997666d6fa4684f6f2e15e3..aa30d4eb8b528b30113311fdf964e32d8655f25a 100644
--- a/neonView/CampaignCostAnalysis_view/CampaignCostAnalysis_view.aod
+++ b/neonView/CampaignCostAnalysis_view/CampaignCostAnalysis_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignCostAnalysis_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/CampaignCostChart_view/CampaignCostChart_view.aod b/neonView/CampaignCostChart_view/CampaignCostChart_view.aod
index 24159367f94612a4b7887229f13a811a9d4c1acc..79fa24a99a23064c9911773632f1e97b2261104b 100644
--- a/neonView/CampaignCostChart_view/CampaignCostChart_view.aod
+++ b/neonView/CampaignCostChart_view/CampaignCostChart_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignCostChart_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <dashletConfigurations>
diff --git a/neonView/CampaignCostEdit_view/CampaignCostEdit_view.aod b/neonView/CampaignCostEdit_view/CampaignCostEdit_view.aod
index cb1f3d2f26abe217b3d0c4d8aec538aacee07795..69be24924b78f37d004e352444edb99be0c2f6ec 100644
--- a/neonView/CampaignCostEdit_view/CampaignCostEdit_view.aod
+++ b/neonView/CampaignCostEdit_view/CampaignCostEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignCostEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/CampaignCostExtendedFilter_view/CampaignCostExtendedFilter_view.aod b/neonView/CampaignCostExtendedFilter_view/CampaignCostExtendedFilter_view.aod
index bbd116c757e619b7647b372da0d8fe1ce7307437..ad056faf6ead47d348df95f92d938ac2b0fc0c12 100644
--- a/neonView/CampaignCostExtendedFilter_view/CampaignCostExtendedFilter_view.aod
+++ b/neonView/CampaignCostExtendedFilter_view/CampaignCostExtendedFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignCostExtendedFilter_view</name>
   <title>Stop costs</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/CampaignCostFilter_view/CampaignCostFilter_view.aod b/neonView/CampaignCostFilter_view/CampaignCostFilter_view.aod
index 058c9bca2a29c9e469121ce22c7a92a2a532358d..a3fb49574a351e099bfb8cb106b7623e000dbc8f 100644
--- a/neonView/CampaignCostFilter_view/CampaignCostFilter_view.aod
+++ b/neonView/CampaignCostFilter_view/CampaignCostFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignCostFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="false" />
diff --git a/neonView/CampaignCostFix_view/CampaignCostFix_view.aod b/neonView/CampaignCostFix_view/CampaignCostFix_view.aod
index cd0b9ebdd1b494f1b542bf9b0321d479bfc63dbe..b8a89784ba4499d3c8253463454e14057bd6c6d6 100644
--- a/neonView/CampaignCostFix_view/CampaignCostFix_view.aod
+++ b/neonView/CampaignCostFix_view/CampaignCostFix_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignCostFix_view</name>
   <title>Fix costs</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/CampaignCostVariable_view/CampaignCostVariable_view.aod b/neonView/CampaignCostVariable_view/CampaignCostVariable_view.aod
index dd68e125ee02842ed5a4cbbdec84edefd9e9767a..7507fe7d11d6716d17c4807e5347989cc944b3c5 100644
--- a/neonView/CampaignCostVariable_view/CampaignCostVariable_view.aod
+++ b/neonView/CampaignCostVariable_view/CampaignCostVariable_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignCostVariable_view</name>
   <title>Step costs</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/CampaignCost_view/CampaignCost_view.aod b/neonView/CampaignCost_view/CampaignCost_view.aod
index 03ccab3dbb9ccba29ba81793ec30f82fa684d0b2..6172d3f252ad00ca416c90e0846e5107d8e9c21c 100644
--- a/neonView/CampaignCost_view/CampaignCost_view.aod
+++ b/neonView/CampaignCost_view/CampaignCost_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignCost_view</name>
   <title>Cost</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/CampaignEdit_view/CampaignEdit_view.aod b/neonView/CampaignEdit_view/CampaignEdit_view.aod
index 4636fbdffb1c079793fdc18ffea90285a8c6a508..3555b23ecc971651808d4f33dfb6e1048efccdc4 100644
--- a/neonView/CampaignEdit_view/CampaignEdit_view.aod
+++ b/neonView/CampaignEdit_view/CampaignEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignEdit_view</name>
   <title>Campaign</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/CampaignFilter_view/CampaignFilter_view.aod b/neonView/CampaignFilter_view/CampaignFilter_view.aod
index 4d7c3aac1c158be044fc069bf96cff0cf4c12a3c..eb815faa0960c8179d3a30f1dac5f60992128192 100644
--- a/neonView/CampaignFilter_view/CampaignFilter_view.aod
+++ b/neonView/CampaignFilter_view/CampaignFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignFilter_view</name>
   <title>Campaign</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
@@ -56,6 +56,7 @@
     <tableViewTemplate>
       <name>Campaigns</name>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
       <linkedColumns>
         <element>NAME</element>
       </linkedColumns>
@@ -94,6 +95,7 @@
     <treeTableViewTemplate>
       <name>Treetable</name>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
       <linkedColumns>
         <element>NAME</element>
       </linkedColumns>
diff --git a/neonView/CampaignMain_view/CampaignMain_view.aod b/neonView/CampaignMain_view/CampaignMain_view.aod
index 7b18c973408ba1199ee63d5500cc375fe3b442ca..812508aa6ea4d0e13af4d1ee20398863fa870c88 100644
--- a/neonView/CampaignMain_view/CampaignMain_view.aod
+++ b/neonView/CampaignMain_view/CampaignMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignMain_view</name>
   <title>Campaign</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/CampaignOverview_view/CampaignOverview_view.aod b/neonView/CampaignOverview_view/CampaignOverview_view.aod
index b3d627a88d497a6b3b88396476540d40ce9f4609..8d48635c048e2ba5b327d5004610dc1ce02071ac 100644
--- a/neonView/CampaignOverview_view/CampaignOverview_view.aod
+++ b/neonView/CampaignOverview_view/CampaignOverview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignOverview_view</name>
   <title>Overview</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/CampaignParticipantChart_view/CampaignParticipantChart_view.aod b/neonView/CampaignParticipantChart_view/CampaignParticipantChart_view.aod
index ca3630fb2bd2f59c71daef9ad7c94bca5c9535e2..10f2275e319aaa7c582324be30523367a902ecee 100644
--- a/neonView/CampaignParticipantChart_view/CampaignParticipantChart_view.aod
+++ b/neonView/CampaignParticipantChart_view/CampaignParticipantChart_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignParticipantChart_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/CampaignParticipantEdit_view/CampaignParticipantEdit_view.aod b/neonView/CampaignParticipantEdit_view/CampaignParticipantEdit_view.aod
index f397e74e04e9c6da3fc4ed20089d9ed79b84f87e..03b8a91be27a2147d25b3ae197809bc4f609f923 100644
--- a/neonView/CampaignParticipantEdit_view/CampaignParticipantEdit_view.aod
+++ b/neonView/CampaignParticipantEdit_view/CampaignParticipantEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignParticipantEdit_view</name>
   <title>Add participant to Campaign</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/CampaignParticipantFilter_view/CampaignParticipantFilter_view.aod b/neonView/CampaignParticipantFilter_view/CampaignParticipantFilter_view.aod
index f97bbe8c0fbb6f7ea1f4156660442b0b9b5d71ed..782eef3db5e35cd7b4d443a0c9e8821ace1c5045 100644
--- a/neonView/CampaignParticipantFilter_view/CampaignParticipantFilter_view.aod
+++ b/neonView/CampaignParticipantFilter_view/CampaignParticipantFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignParticipantFilter_view</name>
   <title></title>
   <description></description>
@@ -13,8 +13,8 @@
   <children>
     <tableViewTemplate>
       <name>ParticipantsTable</name>
-      <favoriteActionGroup1>FilterViewActionGroup</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>FilterViewActionGroup</favoriteActionGroup1>
       <linkedColumns />
       <fixedFilterFields />
       <isCreatable v="true" />
@@ -52,8 +52,8 @@
     </tableViewTemplate>
     <treeTableViewTemplate>
       <name>Treetable</name>
-      <favoriteActionGroup1>FilterViewActionGroup</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>FilterViewActionGroup</favoriteActionGroup1>
       <linkedColumns />
       <defaultGroupFields />
       <fixedFilterFields />
diff --git a/neonView/CampaignParticipantPreview_view/CampaignParticipantPreview_view.aod b/neonView/CampaignParticipantPreview_view/CampaignParticipantPreview_view.aod
index 0fe2fda33811029c2e330ce8bb88ef64c4d97e4d..059b2d9f3a18cfd4b89ebd1f85f6a1363e09360c 100644
--- a/neonView/CampaignParticipantPreview_view/CampaignParticipantPreview_view.aod
+++ b/neonView/CampaignParticipantPreview_view/CampaignParticipantPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignParticipantPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/CampaignPlanning_view/CampaignPlanning_view.aod b/neonView/CampaignPlanning_view/CampaignPlanning_view.aod
index ac3d466a4be4d31181dbd6d6dede592366f663e4..48b886b92c0f8ab819e76bb8757cbc3012d98bb4 100644
--- a/neonView/CampaignPlanning_view/CampaignPlanning_view.aod
+++ b/neonView/CampaignPlanning_view/CampaignPlanning_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignPlanning_view</name>
   <title>Campaign planning</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
@@ -19,8 +19,8 @@
       <beginDateField>DATE_START</beginDateField>
       <endDateField>DATE_END</endDateField>
       <predecessorIdField>PREDECESSOR_STEP_ID</predecessorIdField>
-      <favoriteActionGroup2>NewGanttEntries</favoriteActionGroup2>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup2>NewGanttEntries</favoriteActionGroup2>
       <isDeletable v="true" />
       <isEditable v="true" />
       <columns>
diff --git a/neonView/CampaignPreview_view/CampaignPreview_view.aod b/neonView/CampaignPreview_view/CampaignPreview_view.aod
index 6cbe20bbb71cbf84ade1963352435ae8982265bd..b593d6ee9b2adf5e547c89853ff5bcdd33bb79ae 100644
--- a/neonView/CampaignPreview_view/CampaignPreview_view.aod
+++ b/neonView/CampaignPreview_view/CampaignPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignPreview_view</name>
   <title>Campaign</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
@@ -24,7 +24,7 @@
     </cardViewTemplate>
     <favoriteViewTemplate>
       <name>Favorites</name>
-      <objectType>CAMPAIGN_OBEJCTTYPE</objectType>
+      <objectType>CAMPAIGN_OBJECTTYPE</objectType>
       <rowId>#UID</rowId>
       <entityField>#ENTITY</entityField>
       <title>favorites</title>
diff --git a/neonView/CampaignStepAddParticipants_view/CampaignStepAddParticipants_view.aod b/neonView/CampaignStepAddParticipants_view/CampaignStepAddParticipants_view.aod
index 975475f46305254376b82932f589d15c80d3f7c1..0015c6163543ca006dc65f8310ec541e85c39dc3 100644
--- a/neonView/CampaignStepAddParticipants_view/CampaignStepAddParticipants_view.aod
+++ b/neonView/CampaignStepAddParticipants_view/CampaignStepAddParticipants_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignStepAddParticipants_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/CampaignStepAnalysis_view/CampaignStepAnalysis_view.aod b/neonView/CampaignStepAnalysis_view/CampaignStepAnalysis_view.aod
index 138d00449398c5432ae4fbda57e1cbf11b8a303b..092334c8ff7d6d58bb290eeedad561b27085f789 100644
--- a/neonView/CampaignStepAnalysis_view/CampaignStepAnalysis_view.aod
+++ b/neonView/CampaignStepAnalysis_view/CampaignStepAnalysis_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignStepAnalysis_view</name>
   <title>Evaluation</title>
   <description>Charts als Ãœbersicht der Kosten des Kampagnenschrittes</description>
diff --git a/neonView/CampaignStepEdit_view/CampaignStepEdit_view.aod b/neonView/CampaignStepEdit_view/CampaignStepEdit_view.aod
index 930baab2cbd6a0b9e3c993bfb014837b126262dc..e849bc1b35efb5ab59e82109752d4c5af5d7c418 100644
--- a/neonView/CampaignStepEdit_view/CampaignStepEdit_view.aod
+++ b/neonView/CampaignStepEdit_view/CampaignStepEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignStepEdit_view</name>
   <title>New campaign step</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/CampaignStepFilter_view/CampaignStepFilter_view.aod b/neonView/CampaignStepFilter_view/CampaignStepFilter_view.aod
index 39d69eb7a2534010ea23b15b5b16c7ca6785fbb1..72287ed6b7dc4f58834fc89f9fe25f553ebc5e5f 100644
--- a/neonView/CampaignStepFilter_view/CampaignStepFilter_view.aod
+++ b/neonView/CampaignStepFilter_view/CampaignStepFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignStepFilter_view</name>
   <title>Campaign steps </title>
   <description></description>
@@ -13,9 +13,9 @@
   <children>
     <tableViewTemplate>
       <name>StepsTable</name>
+      <autoNewRow v="true" />
       <entityField>#ENTITY</entityField>
       <isEditable v="true" />
-      <autoNewRow v="true" />
       <columns>
         <neonTableColumn>
           <name>5fea2adf-3005-4af0-b83a-a1c932f33a64</name>
diff --git a/neonView/CampaignStepLookup_view/CampaignStepLookup_view.aod b/neonView/CampaignStepLookup_view/CampaignStepLookup_view.aod
index 9f87ec7120123809f585d39d02f75e538b2765f0..60918090dec2f41226b9b5b7e66ac79e17902a47 100644
--- a/neonView/CampaignStepLookup_view/CampaignStepLookup_view.aod
+++ b/neonView/CampaignStepLookup_view/CampaignStepLookup_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignStepLookup_view</name>
   <title>Caimpaignsteps</title>
   <description></description>
@@ -12,8 +12,8 @@
   <children>
     <tableViewTemplate>
       <name>StepsTable</name>
-      <entityField>#ENTITY</entityField>
       <autoNewRow v="true" />
+      <entityField>#ENTITY</entityField>
       <title></title>
       <columns>
         <neonTableColumn>
diff --git a/neonView/CampaignStepMain_view/CampaignStepMain_view.aod b/neonView/CampaignStepMain_view/CampaignStepMain_view.aod
index 7bf5acbf61bde94ec6922b7cb22739d71992177c..52fac9adc94ee0bb918fe8b0de1c91f09b4b6f61 100644
--- a/neonView/CampaignStepMain_view/CampaignStepMain_view.aod
+++ b/neonView/CampaignStepMain_view/CampaignStepMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignStepMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/CampaignStepMembers_view/CampaignStepMembers_view.aod b/neonView/CampaignStepMembers_view/CampaignStepMembers_view.aod
index 7d6034293b0612529866b976b55d6bd4c6843080..e11db29e24c4128c55e21f6686762e87d85931a9 100644
--- a/neonView/CampaignStepMembers_view/CampaignStepMembers_view.aod
+++ b/neonView/CampaignStepMembers_view/CampaignStepMembers_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignStepMembers_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/CampaignStepParticipnatsPerStep_view/CampaignStepParticipnatsPerStep_view.aod b/neonView/CampaignStepParticipnatsPerStep_view/CampaignStepParticipnatsPerStep_view.aod
index cee2045769f117ae07f14d1b8ebef69d3e1e792d..9ff58eaf033c269cb2b282932208c3dc1f2ca621 100644
--- a/neonView/CampaignStepParticipnatsPerStep_view/CampaignStepParticipnatsPerStep_view.aod
+++ b/neonView/CampaignStepParticipnatsPerStep_view/CampaignStepParticipnatsPerStep_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignStepParticipnatsPerStep_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/CampaignStepPreview_view/CampaignStepPreview_view.aod b/neonView/CampaignStepPreview_view/CampaignStepPreview_view.aod
index 34fb03143ea86213b7546216c22720893830c0ad..43a0e4daf113bbd734ec4929b61ffdf2e3c317c8 100644
--- a/neonView/CampaignStepPreview_view/CampaignStepPreview_view.aod
+++ b/neonView/CampaignStepPreview_view/CampaignStepPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignStepPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/CampaignStepsGantt_view/CampaignStepsGantt_view.aod b/neonView/CampaignStepsGantt_view/CampaignStepsGantt_view.aod
index f175784272c48c6b2499de8e04de9765abc1a913..fa93cc7f4c3a663c0b6efe7fc2185538b0a2d365 100644
--- a/neonView/CampaignStepsGantt_view/CampaignStepsGantt_view.aod
+++ b/neonView/CampaignStepsGantt_view/CampaignStepsGantt_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CampaignStepsGantt_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -17,14 +17,14 @@
       <endDateField>DATE_END</endDateField>
       <predecessorIdField>PREDECESSORSTEP_ID</predecessorIdField>
       <entityField>#ENTITY</entityField>
-      <isDeletable v="true" />
-      <isEditable v="true" />
       <title></title>
       <devices>
         <element>TABLET</element>
         <element>DESKTOP</element>
       </devices>
       <isCreatable v="true" />
+      <isDeletable v="true" />
+      <isEditable v="true" />
       <columns>
         <neonTableColumn>
           <name>9469e2f2-35ac-4f87-a4a7-959b47a5e7bb</name>
diff --git a/neonView/ChecklistEdit_view/ChecklistEdit_view.aod b/neonView/ChecklistEdit_view/ChecklistEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..30049e3d38f17bc7eb5145ee1b0ad04c40f5bf4c
--- /dev/null
+++ b/neonView/ChecklistEdit_view/ChecklistEdit_view.aod
@@ -0,0 +1,16 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>ChecklistEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>8499691f-153d-43ee-829e-d586255d9344</name>
+      <view>ChecklistEntryMultiEdit_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/ChecklistEntryList_view/ChecklistEntryList_view.aod b/neonView/ChecklistEntryList_view/ChecklistEntryList_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..9928f472cbbf54d997ab646bf4987464c0517791
--- /dev/null
+++ b/neonView/ChecklistEntryList_view/ChecklistEntryList_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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>ChecklistEntryList_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+  <children>
+    <titledListViewTemplate>
+      <name>titledListViewTemplate</name>
+      <titleField>TYPE</titleField>
+      <columns>
+        <neonTitledListTableColumn>
+          <name>49ad66e3-645d-489a-8bf8-d56645cf5465</name>
+          <entityField>TITLE</entityField>
+          <fullWidth v="true" />
+        </neonTitledListTableColumn>
+      </columns>
+    </titledListViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ChecklistEntryMultiEdit_view/ChecklistEntryMultiEdit_view.aod b/neonView/ChecklistEntryMultiEdit_view/ChecklistEntryMultiEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..5aa3bfcacebf9b5f8e7732eafb144f629d594d17
--- /dev/null
+++ b/neonView/ChecklistEntryMultiEdit_view/ChecklistEntryMultiEdit_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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>ChecklistEntryMultiEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+  <children>
+    <genericMultipleViewTemplate>
+      <name>genericMultipleViewTemplate</name>
+      <title>Checklist entries</title>
+      <columns>
+        <neonGenericMultipleTableColumn>
+          <name>f139b472-471b-45ef-8406-f11fe052e246</name>
+          <entityField>TYPE</entityField>
+        </neonGenericMultipleTableColumn>
+        <neonGenericMultipleTableColumn>
+          <name>ed1eb021-aad1-4228-bcdf-eef2d44f53f8</name>
+          <entityField>TITLE</entityField>
+        </neonGenericMultipleTableColumn>
+      </columns>
+    </genericMultipleViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ChecklistEntryValueList_view/ChecklistEntryValueList_view.aod b/neonView/ChecklistEntryValueList_view/ChecklistEntryValueList_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..1f86e623f5d6595e1b58d4abd826ef2e87dd29b3
--- /dev/null
+++ b/neonView/ChecklistEntryValueList_view/ChecklistEntryValueList_view.aod
@@ -0,0 +1,36 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>ChecklistEntryValueList_view</name>
+  <title>Checklist entries</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+      <direction>HORIZONTAL</direction>
+    </boxLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>tableViewTemplate</name>
+      <iconField>#IMAGE</iconField>
+      <favoriteActionGroup1>setChecklistEntryCompleted</favoriteActionGroup1>
+      <isCreatable v="false" />
+      <isDeletable v="false" />
+      <isEditable v="false" />
+      <columns>
+        <neonTableColumn>
+          <name>6ccac432-a75f-42f3-915a-4e02c141ddb8</name>
+          <entityField>#IMAGE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>35a60394-91ad-4e39-85b4-683564604e97</name>
+          <entityField>type</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>56a78ef9-dcef-4d1c-b30d-5c89f38611ec</name>
+          <entityField>CHECKLISTENTRY_ID</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ChecklistFilter_view/ChecklistFilter_view.aod b/neonView/ChecklistFilter_view/ChecklistFilter_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..81105b42d24250da3b0b6217efea767043b97454
--- /dev/null
+++ b/neonView/ChecklistFilter_view/ChecklistFilter_view.aod
@@ -0,0 +1,10 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>ChecklistFilter_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+</neonView>
diff --git a/neonView/ClassificationAdminEdit_view/ClassificationAdminEdit_view.aod b/neonView/ClassificationAdminEdit_view/ClassificationAdminEdit_view.aod
index 43fd31c31ab964d4bd4d7d0ef08b179b70d9c9e0..84950dabeabac46c65057266f1e87f9c5139a901 100644
--- a/neonView/ClassificationAdminEdit_view/ClassificationAdminEdit_view.aod
+++ b/neonView/ClassificationAdminEdit_view/ClassificationAdminEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ClassificationAdminEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
@@ -26,6 +26,10 @@
           <name>66ce2c02-1cd3-4867-91a6-825655d6d16a</name>
           <entityField>CLASSIFICATIONGROUP</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>a3b4429d-9d40-4057-9df3-7bcbb1664853</name>
+          <entityField>CLASSIFICATIONGROUPDISPLAYVALUE</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>5493520c-27d9-4333-a804-02c07b0b0747</name>
           <entityField>SORTING</entityField>
@@ -38,6 +42,14 @@
           <name>91f2555e-214c-44f0-8798-029b94be9c00</name>
           <entityField>CLASSIFICATIONTYPEIDDISPLAYVALUE</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>274fd441-b0c3-48c2-8b4e-d4cace69946c</name>
+          <entityField>SCOREPOINTS</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>1d35951d-1661-4a5d-93bc-323f11f35667</name>
+          <entityField>classificationTypeFilter</entityField>
+        </entityFieldLink>
       </fields>
     </genericViewTemplate>
   </children>
diff --git a/neonView/ClassificationAdminFilter_view/ClassificationAdminFilter_view.aod b/neonView/ClassificationAdminFilter_view/ClassificationAdminFilter_view.aod
index 616066188353b8e65c14944886f0d9e36692ef62..14e2c433280ce0e447e3d8a838828b9d41be7b2b 100644
--- a/neonView/ClassificationAdminFilter_view/ClassificationAdminFilter_view.aod
+++ b/neonView/ClassificationAdminFilter_view/ClassificationAdminFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ClassificationAdminFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -11,8 +11,8 @@
     <treeTableViewTemplate>
       <name>treetable</name>
       <parentField>CLASSIFICATION_PARENT_ID</parentField>
-      <favoriteActionGroup1>FilterviewActionGroup</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>FilterviewActionGroup</favoriteActionGroup1>
       <linkedColumns />
       <defaultGroupFields />
       <fixedFilterFields />
@@ -21,6 +21,14 @@
           <name>2e04e92e-9af8-46a6-9845-8bf822cd05f3</name>
           <entityField>#CONTENTTITLE</entityField>
         </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>0d27f1ef-91e3-44fd-9514-e666ac10748e</name>
+          <entityField>SCOREPOINTS</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>e9a13e67-4a9c-4086-b7c3-2d1bfcc0b721</name>
+          <entityField>classificationTypeFilter</entityField>
+        </neonTreeTableColumn>
       </columns>
     </treeTableViewTemplate>
   </children>
diff --git a/neonView/ClassificationGradingMultipleEdit_view/ClassificationGradingMultipleEdit_view.aod b/neonView/ClassificationGradingMultipleEdit_view/ClassificationGradingMultipleEdit_view.aod
index 6ba9ff49effd10c4f9e1292bf94f92e3070303d7..faa84e1546daf70f1fb4bc8fb79e2db9d6843101 100644
--- a/neonView/ClassificationGradingMultipleEdit_view/ClassificationGradingMultipleEdit_view.aod
+++ b/neonView/ClassificationGradingMultipleEdit_view/ClassificationGradingMultipleEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ClassificationGradingMultipleEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
@@ -17,8 +17,8 @@
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTitledListTableColumn>
-          <name>9fffb1ac-b842-4c1c-9f81-85a17d78f649</name>
-          <entityField>MAXGRADEFORSCORE</entityField>
+          <name>f9becf36-1a76-4121-a999-8b1fb9619650</name>
+          <entityField>MINPERCENT</entityField>
         </neonTitledListTableColumn>
       </columns>
     </titledListViewTemplate>
diff --git a/neonView/ClassificationGroupPreview_view/ClassificationGroupPreview_view.aod b/neonView/ClassificationGroupPreview_view/ClassificationGroupPreview_view.aod
index ac701fd79bb19e0d3b9afcee91964fda6b03c8d7..d7eff23d2d1a09460441312d02ccb5659aa3c2a1 100644
--- a/neonView/ClassificationGroupPreview_view/ClassificationGroupPreview_view.aod
+++ b/neonView/ClassificationGroupPreview_view/ClassificationGroupPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ClassificationGroupPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ClassificationPreview_view/ClassificationPreview_view.aod b/neonView/ClassificationPreview_view/ClassificationPreview_view.aod
index 8c55fe145f75d6653dc2ba4968b158c6dcf796ed..f97be47068ba298e6853e008a2b91615f34701f2 100644
--- a/neonView/ClassificationPreview_view/ClassificationPreview_view.aod
+++ b/neonView/ClassificationPreview_view/ClassificationPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ClassificationPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <isOverlay v="false" />
@@ -19,9 +19,13 @@
       <hideEmptyFields v="false" />
       <entityField>#ENTITY</entityField>
       <fields>
+        <entityFieldLink>
+          <name>7e79491f-5891-4fd7-b6e1-1045865f36f6</name>
+          <entityField>CLASSIFICATIONTYPEID</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>dfdbc6f4-4859-495b-96e7-0853bdbc611f</name>
-          <entityField>CLASSIFICATIONSCORE_ID</entityField>
+          <entityField>VALUE</entityField>
         </entityFieldLink>
       </fields>
     </genericViewTemplate>
diff --git a/neonView/ClassificationScoreMultipleEdit_view/ClassificationScoreMultipleEdit_view.aod b/neonView/ClassificationScoreMultipleEdit_view/ClassificationScoreMultipleEdit_view.aod
index add9fa38736033c557315fd3b6920b080be9e10f..ca2ae66ae11f424e21abb8c839b9122ef792978e 100644
--- a/neonView/ClassificationScoreMultipleEdit_view/ClassificationScoreMultipleEdit_view.aod
+++ b/neonView/ClassificationScoreMultipleEdit_view/ClassificationScoreMultipleEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ClassificationScoreMultipleEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -15,8 +15,12 @@
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTitledListTableColumn>
-          <name>d56f97c1-a634-4b12-8dd3-c2c32a9e16f1</name>
-          <entityField>SCORE</entityField>
+          <name>8c04eb99-5721-49ff-8db1-90461e11e55e</name>
+          <entityField>SCOREPERCENT</entityField>
+        </neonTitledListTableColumn>
+        <neonTitledListTableColumn>
+          <name>6e729412-1533-4067-a709-5229341037cf</name>
+          <entityField>scoreInPoints</entityField>
         </neonTitledListTableColumn>
       </columns>
     </titledListViewTemplate>
diff --git a/neonView/ClassificationTree_view/ClassificationTree_view.aod b/neonView/ClassificationTree_view/ClassificationTree_view.aod
index ca36f8fd5fa5bb784aa2111d11e4981e1bf01081..4d7d91c696787b2329a89ee872308fea857c45f7 100644
--- a/neonView/ClassificationTree_view/ClassificationTree_view.aod
+++ b/neonView/ClassificationTree_view/ClassificationTree_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ClassificationTree_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -10,20 +10,25 @@
   <children>
     <treeTableViewTemplate>
       <name>ClassificationTreeTable</name>
-      <hideActions v="true" />
       <showChildrenCount v="false" />
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>fitlerviewActionGroup</favoriteActionGroup1>
+      <linkedColumns />
       <defaultGroupFields>
         <element>CLASSIFICATIONGROUP</element>
       </defaultGroupFields>
       <columns>
         <neonTreeTableColumn>
-          <name>246c0212-dadb-4d71-9567-ceab37e9ef10</name>
-          <entityField>SCORETYPE</entityField>
+          <name>5541a641-81c8-46d4-a5c9-e32a8edb8f80</name>
+          <entityField>CLASSIFICATIONTYPEID</entityField>
         </neonTreeTableColumn>
         <neonTreeTableColumn>
           <name>9a62baa4-71cf-4b9d-8cd6-883b233a9b84</name>
-          <entityField>CLASSIFICATIONSCORE_ID</entityField>
+          <entityField>VALUE</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>6ce4567b-d3fb-4be1-9557-46e0f24108d0</name>
+          <entityField>SCOREPOINTS</entityField>
         </neonTreeTableColumn>
       </columns>
     </treeTableViewTemplate>
diff --git a/neonView/ClassificationTypePreview_View/ClassificationTypePreview_View.aod b/neonView/ClassificationTypePreview_View/ClassificationTypePreview_View.aod
index 9b7072fc51941a61d42ed0f8044da5e86732ddc1..e2b699ea8ff8cbca49f7577670d556ba43e43959 100644
--- a/neonView/ClassificationTypePreview_View/ClassificationTypePreview_View.aod
+++ b/neonView/ClassificationTypePreview_View/ClassificationTypePreview_View.aod
@@ -1,7 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ClassificationTypePreview_View</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterable v="false" />
   <layout>
     <headerFooterLayout>
       <name>layout</name>
@@ -11,6 +12,7 @@
   <children>
     <genericViewTemplate>
       <name>generic</name>
+      <editMode v="false" />
       <entityField>#ENTITY</entityField>
       <fields>
         <entityFieldLink>
@@ -26,8 +28,12 @@
           <entityField>SCORETYPE</entityField>
         </entityFieldLink>
         <entityFieldLink>
-          <name>d070599e-2a60-4de2-ae65-efda4943d199</name>
-          <entityField>infoField</entityField>
+          <name>1409747f-68c4-497d-960e-dd53510a63d7</name>
+          <entityField>SCOREPOINTS</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>a992e61b-1bfc-4241-a407-a03500880d85</name>
+          <entityField>FILTER</entityField>
         </entityFieldLink>
       </fields>
     </genericViewTemplate>
@@ -36,5 +42,9 @@
       <entityField>ClassificationScores</entityField>
       <view>ClassificationScoreMultipleEdit_view</view>
     </neonViewReference>
+    <actionsViewTemplate>
+      <name>action</name>
+      <entityField>#ENTITY</entityField>
+    </actionsViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/CommRestrictionDrawer_view/CommRestrictionDrawer_view.aod b/neonView/CommRestrictionDrawer_view/CommRestrictionDrawer_view.aod
index e764fb225134a5ce61892cd2d44d4bfbd8a19c34..e624314e060316a38c150f1ed5c17c541633f2d5 100644
--- a/neonView/CommRestrictionDrawer_view/CommRestrictionDrawer_view.aod
+++ b/neonView/CommRestrictionDrawer_view/CommRestrictionDrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CommRestrictionDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/CommRestrictionFilter_view/CommRestrictionFilter_view.aod b/neonView/CommRestrictionFilter_view/CommRestrictionFilter_view.aod
index 8a4ff768fa40e083af9a83ea9d76df586d9e6df3..7d0d01242d3648a59478b0f925e82fe397381da4 100644
--- a/neonView/CommRestrictionFilter_view/CommRestrictionFilter_view.aod
+++ b/neonView/CommRestrictionFilter_view/CommRestrictionFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CommRestrictionFilter_view</name>
   <title>Restrictions</title>
   <description>Restrictions</description>
diff --git a/neonView/CommRestrictionPreview_view/CommRestrictionPreview_view.aod b/neonView/CommRestrictionPreview_view/CommRestrictionPreview_view.aod
index 58f971c0f6bce48c1ae298834eb5af6774088a51..02f5f8341a320911f379d178362ecfbdbec3b714 100644
--- a/neonView/CommRestrictionPreview_view/CommRestrictionPreview_view.aod
+++ b/neonView/CommRestrictionPreview_view/CommRestrictionPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CommRestrictionPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/CommRestrictionSmallEdit_view/CommRestrictionSmallEdit_view.aod b/neonView/CommRestrictionSmallEdit_view/CommRestrictionSmallEdit_view.aod
index fc757ef341327759a27d89928ef0fd23ffbd64a3..7e91c39ddbb82922631d5b40b665561cd7e58ed0 100644
--- a/neonView/CommRestrictionSmallEdit_view/CommRestrictionSmallEdit_view.aod
+++ b/neonView/CommRestrictionSmallEdit_view/CommRestrictionSmallEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CommRestrictionSmallEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/CommunicationEdit_view/CommunicationEdit_view.aod b/neonView/CommunicationEdit_view/CommunicationEdit_view.aod
index 051e7e5fcbee5bc3d1e929138cd04f41d374e057..8ea6d77ec897d5e187fc566aa5c5a0c87f2e5e53 100644
--- a/neonView/CommunicationEdit_view/CommunicationEdit_view.aod
+++ b/neonView/CommunicationEdit_view/CommunicationEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CommunicationEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/CommunicationFilter_view/CommunicationFilter_view.aod b/neonView/CommunicationFilter_view/CommunicationFilter_view.aod
index 18c53dad65ec9f0029c712c2fd48522d8c07db53..1b8b5fee5dcde2b3a1746038cf53c6d365317e74 100644
--- a/neonView/CommunicationFilter_view/CommunicationFilter_view.aod
+++ b/neonView/CommunicationFilter_view/CommunicationFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CommunicationFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/CommunicationList_view/CommunicationList_view.aod b/neonView/CommunicationList_view/CommunicationList_view.aod
index cf84440573f272b268eda67ae367dcf697586a1a..e321f8cd2e441654af4bd5f660399f0aeafc1972 100644
--- a/neonView/CommunicationList_view/CommunicationList_view.aod
+++ b/neonView/CommunicationList_view/CommunicationList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CommunicationList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/CommunicationMultiEdit_view/CommunicationMultiEdit_view.aod b/neonView/CommunicationMultiEdit_view/CommunicationMultiEdit_view.aod
index ab9ecb3265622ccc290a266d456fa092032f831b..be8a10662b7340da87602493f31a097a02192857 100644
--- a/neonView/CommunicationMultiEdit_view/CommunicationMultiEdit_view.aod
+++ b/neonView/CommunicationMultiEdit_view/CommunicationMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CommunicationMultiEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/CompetitionDrawer_view/CompetitionDrawer_view.aod b/neonView/CompetitionDrawer_view/CompetitionDrawer_view.aod
index de151174dc88a3a19c66fbfe5cd0902f86066b28..e6325607e20d595c4255e0ce13228fd2d08ae66b 100644
--- a/neonView/CompetitionDrawer_view/CompetitionDrawer_view.aod
+++ b/neonView/CompetitionDrawer_view/CompetitionDrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CompetitionDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/CompetitionEdit_view/CompetitionEdit_view.aod b/neonView/CompetitionEdit_view/CompetitionEdit_view.aod
index 2dc804c8fa5e5cc62683314a6c0c390457b807f1..2f4683b36852c576cb90719d6a5e24ce812c35f2 100644
--- a/neonView/CompetitionEdit_view/CompetitionEdit_view.aod
+++ b/neonView/CompetitionEdit_view/CompetitionEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CompetitionEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/CompetitionFilter_view/CompetitionFilter_view.aod b/neonView/CompetitionFilter_view/CompetitionFilter_view.aod
index cc9122ea36d33e6cc79642c9fa3fd7ae08a91eae..b55a777039e1f181a36793c3bc4ddf21d8561502 100644
--- a/neonView/CompetitionFilter_view/CompetitionFilter_view.aod
+++ b/neonView/CompetitionFilter_view/CompetitionFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CompetitionFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -15,8 +15,8 @@
       <titleField>CONTACT_ID</titleField>
       <subtitleField>STATUS</subtitleField>
       <descriptionField>PHASE</descriptionField>
-      <entityField>#ENTITY</entityField>
       <autoNewRow v="true" />
+      <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
           <name>dd971a3f-297e-4055-9961-77faea60236e</name>
diff --git a/neonView/CompetitionPreview_view/CompetitionPreview_view.aod b/neonView/CompetitionPreview_view/CompetitionPreview_view.aod
index 789733a343d48eed24863c61762bba34334101a6..59873837d2ca7884eb9add9af22be1ff4d80702c 100644
--- a/neonView/CompetitionPreview_view/CompetitionPreview_view.aod
+++ b/neonView/CompetitionPreview_view/CompetitionPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CompetitionPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ContactEdit_view/ContactEdit_view.aod b/neonView/ContactEdit_view/ContactEdit_view.aod
index 1ba399ccaff87cb177e8025ad93c7fd3e0740864..a460b7add1301bd49b87700ff88c9dc57a8901b1 100644
--- a/neonView/ContactEdit_view/ContactEdit_view.aod
+++ b/neonView/ContactEdit_view/ContactEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ContactEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -44,5 +44,10 @@
       <entityField>Communications</entityField>
       <view>CommunicationMultiEdit_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>cd3c14c9-f189-483b-9bcd-f3125c9dd77a</name>
+      <entityField>Attributes</entityField>
+      <view>AttributeRelationMultiEdit_view</view>
+    </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/ContactList_view/ContactList_view.aod b/neonView/ContactList_view/ContactList_view.aod
index 182533d0196cee3df21b5a2b72ce151a5e1a66dd..8e2c5d8685c04966fef313dc86b1a685702f0f95 100644
--- a/neonView/ContactList_view/ContactList_view.aod
+++ b/neonView/ContactList_view/ContactList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ContactList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ContactTitledList_view/ContactTitledList_view.aod b/neonView/ContactTitledList_view/ContactTitledList_view.aod
index 9e0050c6a15d4a1eca4753578d1a79bf491a935a..eb6fee471a35d9e6ea010a52981cfe720fdec5c8 100644
--- a/neonView/ContactTitledList_view/ContactTitledList_view.aod
+++ b/neonView/ContactTitledList_view/ContactTitledList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ContactTitledList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ContractEdit_view/ContractEdit_view.aod b/neonView/ContractEdit_view/ContractEdit_view.aod
index 1721da28721b123e7b62d35b18e6d7920d45cbfe..7f2f459f1885beab37a432cf2be0f6ef82329469 100644
--- a/neonView/ContractEdit_view/ContractEdit_view.aod
+++ b/neonView/ContractEdit_view/ContractEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ContractEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ContractFilter_view/ContractFilter_view.aod b/neonView/ContractFilter_view/ContractFilter_view.aod
index b43c2f7fa56d7f2d30204d9369376914532022b8..5464ca31e54ab2ae1f1bf48fbff8a2d5f98ee032 100644
--- a/neonView/ContractFilter_view/ContractFilter_view.aod
+++ b/neonView/ContractFilter_view/ContractFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ContractFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -37,6 +37,7 @@
       <subtitleField>CONTRACTSTATUS</subtitleField>
       <descriptionField>CONTACT_ID</descriptionField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
       <linkedColumns>
         <element>CONTRACTCODE</element>
       </linkedColumns>
@@ -78,6 +79,7 @@
     <treeTableViewTemplate>
       <name>Treetable</name>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
       <linkedColumns>
         <element>CONTRACTCODE</element>
       </linkedColumns>
diff --git a/neonView/ContractMain_view/ContractMain_view.aod b/neonView/ContractMain_view/ContractMain_view.aod
index cc12eb8162421398d1d8010c9539ce9e01f634c7..1fe713c3cd6a3bb23616a2b980e34c161011ed12 100644
--- a/neonView/ContractMain_view/ContractMain_view.aod
+++ b/neonView/ContractMain_view/ContractMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ContractMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ContractPreview_view/ContractPreview_view.aod b/neonView/ContractPreview_view/ContractPreview_view.aod
index d825a03fee18e23e58567ec90ac565079048fae9..8ba4f385405b29a044367d0361668ab8655b2d0f 100644
--- a/neonView/ContractPreview_view/ContractPreview_view.aod
+++ b/neonView/ContractPreview_view/ContractPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ContractPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/CountriesPreview_view/CountriesPreview_view.aod b/neonView/CountriesPreview_view/CountriesPreview_view.aod
index 7b61d0e9d937d18afaecd2be4a88ecaf1826a34f..6cc5af15f51fdf2c4a28177dd3d96c73073c0bde 100644
--- a/neonView/CountriesPreview_view/CountriesPreview_view.aod
+++ b/neonView/CountriesPreview_view/CountriesPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CountriesPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/CountriesTable_view/CountriesTable_view.aod b/neonView/CountriesTable_view/CountriesTable_view.aod
index be33402167b8d87c7baceacfe49e93927cd7eba4..be2df51f24749e2d2aa611b3a96bbc0527d664b1 100644
--- a/neonView/CountriesTable_view/CountriesTable_view.aod
+++ b/neonView/CountriesTable_view/CountriesTable_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>CountriesTable_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/DSGVODrawer_view/DSGVODrawer_view.aod b/neonView/DSGVODrawer_view/DSGVODrawer_view.aod
index 867b93a2dd963ad62f2d3bae5e734f7c7ed29dca..0d5f150a84f2b110da669d4e69bbe2666dce7cf6 100644
--- a/neonView/DSGVODrawer_view/DSGVODrawer_view.aod
+++ b/neonView/DSGVODrawer_view/DSGVODrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DSGVODrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/DSGVOEdit_view/DSGVOEdit_view.aod b/neonView/DSGVOEdit_view/DSGVOEdit_view.aod
index b10ce1465adaebeadf62b7a025c6c08c50e0961c..7b92fa16742092c9b43a0776dcd615180e220712 100644
--- a/neonView/DSGVOEdit_view/DSGVOEdit_view.aod
+++ b/neonView/DSGVOEdit_view/DSGVOEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DSGVOEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/DSGVOFilter_view/DSGVOFilter_view.aod b/neonView/DSGVOFilter_view/DSGVOFilter_view.aod
index 0be528e00a0be5d48a8357a58e729bad5f6475db..77f2a2ce9738e5c08e973eaac348703189451904 100644
--- a/neonView/DSGVOFilter_view/DSGVOFilter_view.aod
+++ b/neonView/DSGVOFilter_view/DSGVOFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DSGVOFilter_view</name>
   <title>Data Privacy</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
@@ -12,13 +12,13 @@
   <children>
     <tableViewTemplate>
       <name>Table</name>
-      <favoriteActionGroup1>DSGVOActions</favoriteActionGroup1>
-      <favoriteActionGroup2>Reports</favoriteActionGroup2>
       <iconField>#IMAGE</iconField>
       <titleField>DSGVOTYPE</titleField>
       <subtitleField>VALUE</subtitleField>
       <descriptionField>STATUORITYSOURCE</descriptionField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>DSGVOActions</favoriteActionGroup1>
+      <favoriteActionGroup2>Reports</favoriteActionGroup2>
       <columns>
         <neonTableColumn>
           <name>a09fc7e3-15d9-4739-84df-71f511f4b758</name>
@@ -44,9 +44,9 @@
     </tableViewTemplate>
     <treeTableViewTemplate>
       <name>Treetable</name>
+      <entityField>#ENTITY</entityField>
       <favoriteActionGroup1>DSGVOActions</favoriteActionGroup1>
       <favoriteActionGroup2>Reports</favoriteActionGroup2>
-      <entityField>#ENTITY</entityField>
       <columns>
         <neonTreeTableColumn>
           <name>0a3d452a-842b-429f-a05d-4a7ee0fb3b15</name>
diff --git a/neonView/DSGVOInfoEdit_view/DSGVOInfoEdit_view.aod b/neonView/DSGVOInfoEdit_view/DSGVOInfoEdit_view.aod
index 322834185a83b93efde46f10ee93dcc1f9c66f96..df27aca67d1ddda269f5a01010a1f1aecb220fd6 100644
--- a/neonView/DSGVOInfoEdit_view/DSGVOInfoEdit_view.aod
+++ b/neonView/DSGVOInfoEdit_view/DSGVOInfoEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DSGVOInfoEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/DSGVOPreviewAnonym_view/DSGVOPreviewAnonym_view.aod b/neonView/DSGVOPreviewAnonym_view/DSGVOPreviewAnonym_view.aod
index 16b162e36e1f40868b649f8033af7cd7ef25bf23..277b8e563ebd2dd29c6969203bc5e4f832e03683 100644
--- a/neonView/DSGVOPreviewAnonym_view/DSGVOPreviewAnonym_view.aod
+++ b/neonView/DSGVOPreviewAnonym_view/DSGVOPreviewAnonym_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DSGVOPreviewAnonym_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/DSGVOPreview_view/DSGVOPreview_view.aod b/neonView/DSGVOPreview_view/DSGVOPreview_view.aod
index 89ff9d67426a5603c64b734f7a6e53d70efdb10b..ff1974aa153cc55a605adae8c55d1bb06c99425d 100644
--- a/neonView/DSGVOPreview_view/DSGVOPreview_view.aod
+++ b/neonView/DSGVOPreview_view/DSGVOPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DSGVOPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/DSGVOReport_view/DSGVOReport_view.aod b/neonView/DSGVOReport_view/DSGVOReport_view.aod
index 3835fcb15b87bf51c774399be84dcfd926d76757..38e2139acede7e2b00c51483bd3e09d4f8c86def 100644
--- a/neonView/DSGVOReport_view/DSGVOReport_view.aod
+++ b/neonView/DSGVOReport_view/DSGVOReport_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DSGVOReport_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -11,8 +11,8 @@
     <reportViewTemplate>
       <name>Report</name>
       <reportData>REPORT_DATA</reportData>
-      <favoriteActionGroup1>dsgvoReportDispatch</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>dsgvoReportDispatch</favoriteActionGroup1>
     </reportViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/DefaultAdminView_view/DefaultAdminView_view.aod b/neonView/DefaultAdminView_view/DefaultAdminView_view.aod
index dcba6ff281318aaf3c687579d0dc84e77d088485..03749261152f559f6e933fa1b52098c33243c97b 100644
--- a/neonView/DefaultAdminView_view/DefaultAdminView_view.aod
+++ b/neonView/DefaultAdminView_view/DefaultAdminView_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DefaultAdminView_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/DefaultLookup_view/DefaultLookup_view.aod b/neonView/DefaultLookup_view/DefaultLookup_view.aod
index 13bbd8a0990a47a6af2f62af96ad0e4a85ba800f..c1df94774a821e733b0b99e5a0a59d401593fc87 100644
--- a/neonView/DefaultLookup_view/DefaultLookup_view.aod
+++ b/neonView/DefaultLookup_view/DefaultLookup_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DefaultLookup_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/DescriptionTranslationEdit_view/DescriptionTranslationEdit_view.aod b/neonView/DescriptionTranslationEdit_view/DescriptionTranslationEdit_view.aod
index 88a2787707419ee251f0cca03aaf2c71c4e68e11..67b72844f907e092102bca736767bc90ef030a56 100644
--- a/neonView/DescriptionTranslationEdit_view/DescriptionTranslationEdit_view.aod
+++ b/neonView/DescriptionTranslationEdit_view/DescriptionTranslationEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DescriptionTranslationEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/DescriptionTranslationFilter_view/DescriptionTranslationFilter_view.aod b/neonView/DescriptionTranslationFilter_view/DescriptionTranslationFilter_view.aod
index 4d86b266dc54aa4f1a2a8439b5740339593201e3..ba3690b8e6b8686a462b06874aa21fe8cc45af8b 100644
--- a/neonView/DescriptionTranslationFilter_view/DescriptionTranslationFilter_view.aod
+++ b/neonView/DescriptionTranslationFilter_view/DescriptionTranslationFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DescriptionTranslationFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/DescriptionTranslationPreview_view/DescriptionTranslationPreview_view.aod b/neonView/DescriptionTranslationPreview_view/DescriptionTranslationPreview_view.aod
index 1e491d1379d406b41850f3f08303c0c441e89730..6d15eecc7d679b7f43132781c249f00c6ea08a9e 100644
--- a/neonView/DescriptionTranslationPreview_view/DescriptionTranslationPreview_view.aod
+++ b/neonView/DescriptionTranslationPreview_view/DescriptionTranslationPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DescriptionTranslationPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/DistrictContactEdit_view/DistrictContactEdit_view.aod b/neonView/DistrictContactEdit_view/DistrictContactEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..95263fb267a2c025538e19a4956b7e1be696d02f
--- /dev/null
+++ b/neonView/DistrictContactEdit_view/DistrictContactEdit_view.aod
@@ -0,0 +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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>DistrictContactEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <size>SMALL</size>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>genericViewTemplate</name>
+      <editMode v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>677efe7a-5cd1-42c1-8e4e-73bf7d634515</name>
+          <entityField>CONTACT_ID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>bc016cdc-cc9a-4dec-afc2-433b65a6519e</name>
+          <entityField>ADVISER_CONTACT_ID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>2b10ba7c-4da2-4fdc-99af-072ea8814237</name>
+          <entityField>ADVISER_ROLE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>7f3fd6a1-1ae0-4939-86ff-22816b39feeb</name>
+          <entityField>STATUS</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>93c3bfba-a4c0-4c39-802f-7391d9680f55</name>
+          <entityField>VALID_FROM</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>09265a39-9e44-4161-93b7-3ee4e8d78a42</name>
+          <entityField>VALID_UNTIL</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>c1b99287-3727-4470-a58a-4ecce35284cc</name>
+          <entityField>ORIGIN</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/DistrictContactFilter_view/DistrictContactFilter_view.aod b/neonView/DistrictContactFilter_view/DistrictContactFilter_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..8cf112f1376d32406bec6202971f660d8e7a15f6
--- /dev/null
+++ b/neonView/DistrictContactFilter_view/DistrictContactFilter_view.aod
@@ -0,0 +1,79 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>DistrictContactFilter_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterable v="true" />
+  <dashletConfigurations>
+    <neonDashletConfiguration>
+      <name>OwnDistrictContactsToCheck</name>
+      <title>My district assignments to check</title>
+      <description>Show my district assignments with status review</description>
+      <fragment>DistrictContact/filter</fragment>
+      <icon>VAADIN:GLOBE</icon>
+      <categories>
+        <neonDashletCategory>
+          <name>district</name>
+          <title>District</title>
+        </neonDashletCategory>
+      </categories>
+      <parameters>
+        <neonDashletParameter>
+          <name>isDashletView_param</name>
+          <value>true</value>
+        </neonDashletParameter>
+      </parameters>
+    </neonDashletConfiguration>
+  </dashletConfigurations>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>districtContacts</name>
+      <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>setStatus</favoriteActionGroup1>
+      <linkedColumns />
+      <fixedFilterFields />
+      <columns>
+        <neonTableColumn>
+          <name>b9295685-3242-4e15-af62-72f4adb758a3</name>
+          <entityField>#ICON</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>b2b3fd8c-2d93-4059-b4e4-24ca24874018</name>
+          <entityField>CONTACT_ID</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>a5b6ac69-712c-45e1-97ff-cf1101da4b95</name>
+          <entityField>ADVISER_CONTACT_ID</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>06c6fc84-5025-4bb2-906a-3de1bbeafbdd</name>
+          <entityField>ADVISER_ROLE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>1870263d-a3be-41fc-989a-2fb8aebef12c</name>
+          <entityField>STATUS</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>26299d80-a74b-4c45-b599-6aec0ab6e82b</name>
+          <entityField>ORIGIN</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>e8942dc0-3661-431e-9bac-2ab15a060438</name>
+          <entityField>DISTRICT_ID</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>873010c6-bd65-40bf-a8f3-7bbb82d56e8a</name>
+          <entityField>VALID_FROM</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>cdd947b0-d546-4aeb-9ec6-7d913e1c45bc</name>
+          <entityField>VALID_UNTIL</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/DistrictEdit_view/DistrictEdit_view.aod b/neonView/DistrictEdit_view/DistrictEdit_view.aod
index ef598ae5665601c0ec565416dd283b994c2c4db6..c50f70e863fcb521571beba5cc648fdc480a2e22 100644
--- a/neonView/DistrictEdit_view/DistrictEdit_view.aod
+++ b/neonView/DistrictEdit_view/DistrictEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DistrictEdit_view</name>
   <title>Responsible Districts</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
@@ -34,6 +34,10 @@
           <name>941cb436-8b93-427d-ae2d-3731e55dd040</name>
           <entityField>DISTRICT_STATUS</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>b7e851f6-0492-4298-98dd-87abb5d01255</name>
+          <entityField>DISTRICT_AUTOADD</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>f77428c6-eaff-4554-aedb-cf56d4c573d6</name>
           <entityField>PARENTDISTRICT_DISTRICTID</entityField>
@@ -48,10 +52,5 @@
         </entityFieldLink>
       </fields>
     </genericViewTemplate>
-    <neonViewReference>
-      <name>f1dddbee-5718-46b8-b682-ba4e707bf529</name>
-      <entityField>DistrictResponsibles</entityField>
-      <view>DistrictResponsibleMultiEdit_view</view>
-    </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/DistrictFilter_view/DistrictFilter_view.aod b/neonView/DistrictFilter_view/DistrictFilter_view.aod
index 0ae033d2346776a6bb816ef83e21f016045031e5..e979e1c1a0e09097bdb0c908ccb859f1dbb7c7e2 100644
--- a/neonView/DistrictFilter_view/DistrictFilter_view.aod
+++ b/neonView/DistrictFilter_view/DistrictFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DistrictFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -15,6 +15,7 @@
       <hideContentSearch v="false" />
       <showChildrenCount v="false" />
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>ActionGroup</favoriteActionGroup1>
       <linkedColumns>
         <element>DISTRICT_NAME</element>
         <element>DISTRICT_NUMBER</element>
@@ -44,6 +45,10 @@
           <name>87184bb1-4d44-4872-bae7-9be903f71354</name>
           <entityField>DISTRICT_STATUS</entityField>
         </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>07781cf0-39f7-4338-8776-a936e2ac9f6e</name>
+          <entityField>DISTRICT_AUTOADD</entityField>
+        </neonTreeTableColumn>
       </columns>
     </treeTableViewTemplate>
   </children>
diff --git a/neonView/DistrictList_view/DistrictList_view.aod b/neonView/DistrictList_view/DistrictList_view.aod
index 161c81303a534d682d1517acae5abfef351e9904..db5a9c329c0e241bb3bc9a69e9e3da5941c93608 100644
--- a/neonView/DistrictList_view/DistrictList_view.aod
+++ b/neonView/DistrictList_view/DistrictList_view.aod
@@ -1,8 +1,29 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DistrictList_view</name>
   <title>Responsible Districts</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <dashletConfigurations>
+    <neonDashletConfiguration>
+      <name>ResponsibleDistrictDashletConfiguration</name>
+      <title>My responsible Districts</title>
+      <description>It lists all areas that the user has to take care of.</description>
+      <fragment>District/DistrictList_view</fragment>
+      <icon>VAADIN:GLOBE</icon>
+      <categories>
+        <neonDashletCategory>
+          <name>Districts</name>
+          <title>Districts</title>
+        </neonDashletCategory>
+      </categories>
+      <parameters>
+        <neonDashletParameter>
+          <name>ResponsibleDistrictsOfCurrentUser_param</name>
+          <value>true</value>
+        </neonDashletParameter>
+      </parameters>
+    </neonDashletConfiguration>
+  </dashletConfigurations>
   <layout>
     <boxLayout>
       <name>layout</name>
diff --git a/neonView/DistrictMain_view/DistrictMain_view.aod b/neonView/DistrictMain_view/DistrictMain_view.aod
index 2babd2f4b0b697301ad2cc98105a9779c53e8da9..d302bb4083e32639d4387ecf65f2e66c09f5fe5b 100644
--- a/neonView/DistrictMain_view/DistrictMain_view.aod
+++ b/neonView/DistrictMain_view/DistrictMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DistrictMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -14,6 +14,16 @@
       <entityField>#ENTITY</entityField>
       <view>DistrictPreview_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>a725b1a4-6c00-41e7-8577-922718e72938</name>
+      <entityField>DistrictResponsibleUIDs</entityField>
+      <view>DistrictResponsibleFilter_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>056f1fea-5cd7-4156-a1ee-1dea0bbcef1e</name>
+      <entityField>DistrictContactUIDs</entityField>
+      <view>DistrictContactFilter_view</view>
+    </neonViewReference>
     <neonViewReference>
       <name>b409f300-c8b4-4052-9012-5e6b79c03a9c</name>
       <entityField>Organisations</entityField>
diff --git a/neonView/DistrictPreview_view/DistrictPreview_view.aod b/neonView/DistrictPreview_view/DistrictPreview_view.aod
index 4f778e75402704706fecfd07dcc094377db9573c..52d71fd47468c7d403fb32b0118ee2c9d1c10124 100644
--- a/neonView/DistrictPreview_view/DistrictPreview_view.aod
+++ b/neonView/DistrictPreview_view/DistrictPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DistrictPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -18,11 +18,6 @@
       <descriptionField>DISTRICT_NUMBER_fieldGroup</descriptionField>
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
-    <neonViewReference>
-      <name>a7a731e8-f93e-4d90-8459-d249a13ecf0d</name>
-      <entityField>DistrictResponsibles</entityField>
-      <view>DistrictResponsiblePreviewList_view</view>
-    </neonViewReference>
     <genericViewTemplate>
       <name>furtherInfosGenericViewTemplate</name>
       <showDrawer v="true" />
@@ -44,6 +39,10 @@
           <name>98be594e-6209-4046-b0e9-07200c8c294e</name>
           <entityField>DISTRICT_STATUS</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>82a03e53-5373-485c-b0e7-9ec72d7bece5</name>
+          <entityField>DISTRICT_AUTOADD</entityField>
+        </entityFieldLink>
       </fields>
     </genericViewTemplate>
     <scoreCardViewTemplate>
diff --git a/neonView/DistrictResponsibleEdit_view/DistrictResponsibleEdit_view.aod b/neonView/DistrictResponsibleEdit_view/DistrictResponsibleEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..2fb95e5410b9bc687d0704fd66e300de8846b47f
--- /dev/null
+++ b/neonView/DistrictResponsibleEdit_view/DistrictResponsibleEdit_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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>DistrictResponsibleEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <size>SMALL</size>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>genericViewTemplate</name>
+      <editMode v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>9e7007c1-7b6e-45d9-961f-7877c2766688</name>
+          <entityField>EMPLOYEE_CONTACT_ID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>77b9ba2a-d7ee-47ba-8908-63e45dbd1db2</name>
+          <entityField>ADVISER_ROLE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>6b4c7d81-48f0-4cc2-a0fd-2fbb090d35da</name>
+          <entityField>ADVISER_STATUS</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>14ba4841-19c5-4282-ae2c-97108e55ed14</name>
+          <entityField>VALID_FROM</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>4bdb4191-6452-44b2-b0b2-54fc00d445cb</name>
+          <entityField>VALID_UNTIL</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/DistrictResponsibleFilter_view/DistrictResponsibleFilter_view.aod b/neonView/DistrictResponsibleFilter_view/DistrictResponsibleFilter_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..04469a199323b98137276f1393bafba7d2b4c9ce
--- /dev/null
+++ b/neonView/DistrictResponsibleFilter_view/DistrictResponsibleFilter_view.aod
@@ -0,0 +1,47 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>DistrictResponsibleFilter_view</name>
+  <title>Responsibles</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterable v="true" />
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>Supervisors</name>
+      <entityField>#ENTITY</entityField>
+      <linkedColumns />
+      <fixedFilterFields />
+      <maxDBRow v="400" />
+      <columns>
+        <neonTableColumn>
+          <name>892cf211-1d55-4976-acba-9d70a925fd26</name>
+          <entityField>#ICON</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>5821447b-a15a-49f8-97d8-cc7411afed0c</name>
+          <entityField>EMPLOYEE_CONTACT_ID</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>1cbd12e3-6de1-4932-afbd-0f856c030984</name>
+          <entityField>ADVISER_ROLE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>f8b3b6e7-8e7c-41f1-aed9-f81e3f3d0bad</name>
+          <entityField>ADVISER_STATUS</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>9896476f-1b08-49c9-91ef-000579e52e0b</name>
+          <entityField>VALID_FROM</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>0ff668e7-8e9a-483d-973a-d74a7a919a5a</name>
+          <entityField>VALID_UNTIL</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/DistrictResponsibleList_view/DistrictResponsibleList_view.aod b/neonView/DistrictResponsibleList_view/DistrictResponsibleList_view.aod
index cab52b315c31f6310d25a10e0194a3df1d0f478b..660992d1acb3be02b328a63cfe525b8f70ae142e 100644
--- a/neonView/DistrictResponsibleList_view/DistrictResponsibleList_view.aod
+++ b/neonView/DistrictResponsibleList_view/DistrictResponsibleList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DistrictResponsibleList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -34,10 +34,6 @@
           <name>32e7b066-76b4-4bd2-b440-bc7844c929a6</name>
           <entityField>EMPLOYEE_CONTACT_ID</entityField>
         </neonTableColumn>
-        <neonTableColumn>
-          <name>dc9bce22-9a99-4db9-a76a-8fd4a91d5f0f</name>
-          <entityField>departmentAttributeName</entityField>
-        </neonTableColumn>
         <neonTableColumn>
           <name>fd46a7b9-60bb-48d1-aac5-0ef28943eac9</name>
           <entityField>PHONE</entityField>
diff --git a/neonView/DistrictResponsibleLookup_view/DistrictResponsibleLookup_view.aod b/neonView/DistrictResponsibleLookup_view/DistrictResponsibleLookup_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..595ca69827adf1b84a0a95b4a1d3939c52415f14
--- /dev/null
+++ b/neonView/DistrictResponsibleLookup_view/DistrictResponsibleLookup_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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>DistrictResponsibleLookup_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>ResponsibleLookup</name>
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>b1180c08-6e1f-459f-868f-2842d034806f</name>
+          <entityField>#ICON</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>e5b2fbc0-174d-4d0e-88d1-a798e65cd773</name>
+          <entityField>EMPLOYEE_CONTACT_ID</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>db77b7a3-80bf-4dc7-9691-8d6aa7422756</name>
+          <entityField>ADVISER_ROLE</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/DistrictResponsibleMultiEdit_view/DistrictResponsibleMultiEdit_view.aod b/neonView/DistrictResponsibleMultiEdit_view/DistrictResponsibleMultiEdit_view.aod
index 9e04ed897b7285c86d4739354d426155106d40dc..bc2e95744287a826338fdc56b87c7da0427e17a8 100644
--- a/neonView/DistrictResponsibleMultiEdit_view/DistrictResponsibleMultiEdit_view.aod
+++ b/neonView/DistrictResponsibleMultiEdit_view/DistrictResponsibleMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DistrictResponsibleMultiEdit_view</name>
   <title></title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/DistrictResponsiblePreviewList_view/DistrictResponsiblePreviewList_view.aod b/neonView/DistrictResponsiblePreviewList_view/DistrictResponsiblePreviewList_view.aod
index c1deba893d69a31f4656fc0959d7510422c5171a..ba4cb8426b968377cf4cb54a981eef4d907833ec 100644
--- a/neonView/DistrictResponsiblePreviewList_view/DistrictResponsiblePreviewList_view.aod
+++ b/neonView/DistrictResponsiblePreviewList_view/DistrictResponsiblePreviewList_view.aod
@@ -1,25 +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.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DistrictResponsiblePreviewList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
-    <noneLayout>
+    <boxLayout>
       <name>layout</name>
-    </noneLayout>
+    </boxLayout>
   </layout>
   <children>
-    <titledListViewTemplate>
-      <name>titledListViewTemplate</name>
-      <titleField>departmentAttributeName</titleField>
+    <genericViewTemplate>
+      <name>Responsibles</name>
       <entityField>#ENTITY</entityField>
       <title>Contactperson</title>
-      <columns>
-        <neonTitledListTableColumn>
-          <name>007d67c4-146b-4202-a677-4390059b4a0a</name>
+      <fields>
+        <entityFieldLink>
+          <name>e65ad43f-0ec6-4a22-b58d-e903acd2648c</name>
           <entityField>EMPLOYEE_CONTACT_ID</entityField>
-          <fullWidth v="true" />
-        </neonTitledListTableColumn>
-      </columns>
-    </titledListViewTemplate>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>2606d85a-1176-4067-97db-27207dfcee4c</name>
+          <entityField>ADVISER_ROLE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>b882f9ff-f877-42e9-9a0c-84206bd78cea</name>
+          <entityField>ADVISER_STATUS</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>fde46c86-a464-4279-9fc8-71da3d6e73eb</name>
+          <entityField>VALID_FROM</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>70e68bd7-6431-4f13-92e0-9efd11a0de96</name>
+          <entityField>VALID_UNTIL</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/DocumentDrawer_view/DocumentDrawer_view.aod b/neonView/DocumentDrawer_view/DocumentDrawer_view.aod
index 330a76e993c45739cc8f63f3b4e3e31bb3978b10..99dd4422af2a0fbbb51a1aef112f385ef7de3f8e 100644
--- a/neonView/DocumentDrawer_view/DocumentDrawer_view.aod
+++ b/neonView/DocumentDrawer_view/DocumentDrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DocumentDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/DocumentEdit_view/DocumentEdit_view.aod b/neonView/DocumentEdit_view/DocumentEdit_view.aod
index 987ec495b6dacc5a0a19666e7985ebcdee26acee..d8b6938872e6353c8a0496071d8273133ca5acf2 100644
--- a/neonView/DocumentEdit_view/DocumentEdit_view.aod
+++ b/neonView/DocumentEdit_view/DocumentEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DocumentEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/DocumentFilter_view/DocumentFilter_view.aod b/neonView/DocumentFilter_view/DocumentFilter_view.aod
index 300a26f92f9f0a8427c8bdbc8a3f762257b97d4b..4967a08c8fa03cd32d829e8dc31ef2d435e759e9 100644
--- a/neonView/DocumentFilter_view/DocumentFilter_view.aod
+++ b/neonView/DocumentFilter_view/DocumentFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DocumentFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="false" />
@@ -17,19 +17,19 @@
       <descriptionField>SIZE</descriptionField>
       <infoTopField>IS_MAIN_DOCUMENT</infoTopField>
       <infoBottomField>DATE_EDIT</infoBottomField>
-      <favoriteActionGroup1>Document_actions</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>Document_actions</favoriteActionGroup1>
       <isCreatable v="true" />
     </tilesViewTemplate>
     <tableViewTemplate>
       <name>Documents</name>
-      <favoriteActionGroup1>Document_actions</favoriteActionGroup1>
-      <favoriteActionGroup2>MSTeam</favoriteActionGroup2>
       <iconField>PREVIEW_IMAGE</iconField>
       <titleField>NAME</titleField>
       <subtitleField>TYPE</subtitleField>
       <descriptionField>SIZE</descriptionField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>Document_actions</favoriteActionGroup1>
+      <favoriteActionGroup2>MSTeam</favoriteActionGroup2>
       <columns>
         <neonTableColumn>
           <name>1ecb7858-44ab-42de-abb8-d8c74afa30d0</name>
@@ -55,8 +55,8 @@
     </tableViewTemplate>
     <treeTableViewTemplate>
       <name>Treetable</name>
-      <favoriteActionGroup1>Document_actions</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>Document_actions</favoriteActionGroup1>
       <columns>
         <neonTreeTableColumn>
           <name>e9438bff-d061-4fff-bcf8-2995cdb636bd</name>
diff --git a/neonView/DocumentList_view/DocumentList_view.aod b/neonView/DocumentList_view/DocumentList_view.aod
index 01bb0076767b1ddfcf62e8091024e42adedc1635..d636e14b11f8ff31e5da8855826c42aab839daeb 100644
--- a/neonView/DocumentList_view/DocumentList_view.aod
+++ b/neonView/DocumentList_view/DocumentList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DocumentList_view</name>
   <title>Errorlogs</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/DocumentMultipleEdit_view/DocumentMultipleEdit_view.aod b/neonView/DocumentMultipleEdit_view/DocumentMultipleEdit_view.aod
index f7e201e275a6c8f3fbbad0a3506a24138646e58e..47d34d212c1dce331a2543486eee7af983c6ddeb 100644
--- a/neonView/DocumentMultipleEdit_view/DocumentMultipleEdit_view.aod
+++ b/neonView/DocumentMultipleEdit_view/DocumentMultipleEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DocumentMultipleEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/DocumentPreview_view/DocumentPreview_view.aod b/neonView/DocumentPreview_view/DocumentPreview_view.aod
index d0d0b9825940d3ed6e9b00d63e85b111e7bfd5f9..6b6f308e9ebaae2973e710b1ddc7d4cb4e09dca3 100644
--- a/neonView/DocumentPreview_view/DocumentPreview_view.aod
+++ b/neonView/DocumentPreview_view/DocumentPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DocumentPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/DocumentTemplateEdit_view/DocumentTemplateEdit_view.aod b/neonView/DocumentTemplateEdit_view/DocumentTemplateEdit_view.aod
index c21e2204ae06b424af7e208eca0e948088608de8..ccec41e215d0185381c742f07ef48ff0f9505c69 100644
--- a/neonView/DocumentTemplateEdit_view/DocumentTemplateEdit_view.aod
+++ b/neonView/DocumentTemplateEdit_view/DocumentTemplateEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DocumentTemplateEdit_view</name>
   <title>Document Template</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/DocumentTemplateFilterSmall_view/DocumentTemplateFilterSmall_view.aod b/neonView/DocumentTemplateFilterSmall_view/DocumentTemplateFilterSmall_view.aod
index fae9c9be8a773334223fe011c34141db1c3700cc..6c0da77042e176bea2d0892991cae12e759a862f 100644
--- a/neonView/DocumentTemplateFilterSmall_view/DocumentTemplateFilterSmall_view.aod
+++ b/neonView/DocumentTemplateFilterSmall_view/DocumentTemplateFilterSmall_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DocumentTemplateFilterSmall_view</name>
   <title>Document Template</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/DocumentTemplateFilter_view/DocumentTemplateFilter_view.aod b/neonView/DocumentTemplateFilter_view/DocumentTemplateFilter_view.aod
index 7eadad0864f0131a237c2304c05dd0e4c5de519b..73eefb9f740e51d9e2ddde03397c1bbfcb7a33d9 100644
--- a/neonView/DocumentTemplateFilter_view/DocumentTemplateFilter_view.aod
+++ b/neonView/DocumentTemplateFilter_view/DocumentTemplateFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DocumentTemplateFilter_view</name>
   <title>Document Template</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/DocumentTemplateLinkList_view/DocumentTemplateLinkList_view.aod b/neonView/DocumentTemplateLinkList_view/DocumentTemplateLinkList_view.aod
index 3358d6c6e41e5473359d11b5a6088ef684e73862..eedfd5fa235f17dc997bbddb9d08be7aaaad9bbc 100644
--- a/neonView/DocumentTemplateLinkList_view/DocumentTemplateLinkList_view.aod
+++ b/neonView/DocumentTemplateLinkList_view/DocumentTemplateLinkList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DocumentTemplateLinkList_view</name>
   <title>Attachments</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/DocumentTemplateLinkMultiEdit_view/DocumentTemplateLinkMultiEdit_view.aod b/neonView/DocumentTemplateLinkMultiEdit_view/DocumentTemplateLinkMultiEdit_view.aod
index 58a2713ae97f46313edbf39f9f3c47c765bac855..ac5a18934b3d866d320345702c3820a56e2dd316 100644
--- a/neonView/DocumentTemplateLinkMultiEdit_view/DocumentTemplateLinkMultiEdit_view.aod
+++ b/neonView/DocumentTemplateLinkMultiEdit_view/DocumentTemplateLinkMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DocumentTemplateLinkMultiEdit_view</name>
   <title>Attachments</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/DocumentTemplatePlaceOfUseList_view/DocumentTemplatePlaceOfUseList_view.aod b/neonView/DocumentTemplatePlaceOfUseList_view/DocumentTemplatePlaceOfUseList_view.aod
index 1ed442ea7033795d86100aecf6ee2be72dc91e4c..a794c79ae5468961a47b76e4ef551e5f22129790 100644
--- a/neonView/DocumentTemplatePlaceOfUseList_view/DocumentTemplatePlaceOfUseList_view.aod
+++ b/neonView/DocumentTemplatePlaceOfUseList_view/DocumentTemplatePlaceOfUseList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DocumentTemplatePlaceOfUseList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/DocumentTemplatePlaceOfUseMultiEdit_view/DocumentTemplatePlaceOfUseMultiEdit_view.aod b/neonView/DocumentTemplatePlaceOfUseMultiEdit_view/DocumentTemplatePlaceOfUseMultiEdit_view.aod
index 63f2c9dd13712b349690318fe2b5d8dde8dae0db..33af6b2a405e6439341fc5f651d1842d9dfad64e 100644
--- a/neonView/DocumentTemplatePlaceOfUseMultiEdit_view/DocumentTemplatePlaceOfUseMultiEdit_view.aod
+++ b/neonView/DocumentTemplatePlaceOfUseMultiEdit_view/DocumentTemplatePlaceOfUseMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DocumentTemplatePlaceOfUseMultiEdit_view</name>
   <title>Documenttemplate Place Of Use</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/DocumentTemplatePlaceOfUseTitledList_view/DocumentTemplatePlaceOfUseTitledList_view.aod b/neonView/DocumentTemplatePlaceOfUseTitledList_view/DocumentTemplatePlaceOfUseTitledList_view.aod
index c625c14dd3cf49d68af90686c21d80f9cd1849c6..d779cd3799341bc0acc795e890955205adc1aa08 100644
--- a/neonView/DocumentTemplatePlaceOfUseTitledList_view/DocumentTemplatePlaceOfUseTitledList_view.aod
+++ b/neonView/DocumentTemplatePlaceOfUseTitledList_view/DocumentTemplatePlaceOfUseTitledList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DocumentTemplatePlaceOfUseTitledList_view</name>
   <title>Documenttemplate Place Of Use</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
@@ -13,8 +13,8 @@
       <name>titledList</name>
       <titleField>PLACEOFUSE</titleField>
       <entityField>#ENTITY</entityField>
-      <isEditable v="true" />
       <isCreatable v="true" />
+      <isEditable v="true" />
     </titledListViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/DocumentTemplatePreview_view/DocumentTemplatePreview_view.aod b/neonView/DocumentTemplatePreview_view/DocumentTemplatePreview_view.aod
index 5c4100bd63747c9cbadff7297a9429ef795eb354..42b53625bfe6ae5119a76738fa1a416fd6d7c536 100644
--- a/neonView/DocumentTemplatePreview_view/DocumentTemplatePreview_view.aod
+++ b/neonView/DocumentTemplatePreview_view/DocumentTemplatePreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DocumentTemplatePreview_view</name>
   <title>Document Template</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/DocumentTemplateTypeCategoryFilter_view/DocumentTemplateTypeCategoryFilter_view.aod b/neonView/DocumentTemplateTypeCategoryFilter_view/DocumentTemplateTypeCategoryFilter_view.aod
index 8cd2d326b934eeaef7f180c4ea90f8daff30d3ff..523d9ee98190e6629ee9bd5d821bdd32e2ec98e3 100644
--- a/neonView/DocumentTemplateTypeCategoryFilter_view/DocumentTemplateTypeCategoryFilter_view.aod
+++ b/neonView/DocumentTemplateTypeCategoryFilter_view/DocumentTemplateTypeCategoryFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DocumentTemplateTypeCategoryFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/DocumentWithIdFilter_view/DocumentWithIdFilter_view.aod b/neonView/DocumentWithIdFilter_view/DocumentWithIdFilter_view.aod
index 3cafd27757d6dac8dd51c5ceb17fc1219e7bc3a0..ba428b6d146493b5d7f86b58d70d4c869a432d33 100644
--- a/neonView/DocumentWithIdFilter_view/DocumentWithIdFilter_view.aod
+++ b/neonView/DocumentWithIdFilter_view/DocumentWithIdFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DocumentWithIdFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -10,12 +10,12 @@
   <children>
     <tableViewTemplate>
       <name>documentsTable</name>
-      <favoriteActionGroup1>Document_actions</favoriteActionGroup1>
       <iconField>PREVIEW_IMAGE</iconField>
       <titleField>NAME</titleField>
       <subtitleField>TYPE</subtitleField>
       <descriptionField>SIZE</descriptionField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>Document_actions</favoriteActionGroup1>
       <columns>
         <neonTableColumn>
           <name>3c8f789e-f62f-4756-8ee4-347e77712ebe</name>
diff --git a/neonView/DuplicateScannerEdit_view/DuplicateScannerEdit_view.aod b/neonView/DuplicateScannerEdit_view/DuplicateScannerEdit_view.aod
index 684c65d5dc6ece746f72a21d0c72a255d3a84a08..12982f0ba5b6c7e3ebaa5fd3a543186a43654c1e 100644
--- a/neonView/DuplicateScannerEdit_view/DuplicateScannerEdit_view.aod
+++ b/neonView/DuplicateScannerEdit_view/DuplicateScannerEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DuplicateScannerEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/DuplicateScannerFilter_view/DuplicateScannerFilter_view.aod b/neonView/DuplicateScannerFilter_view/DuplicateScannerFilter_view.aod
index e70f21cbb44614edea2bbb1dec7a060ff47f0450..5a99ae0226ac05f614f190c54732bedc624b4a5c 100644
--- a/neonView/DuplicateScannerFilter_view/DuplicateScannerFilter_view.aod
+++ b/neonView/DuplicateScannerFilter_view/DuplicateScannerFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DuplicateScannerFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/DuplicateScannerPreview_view/DuplicateScannerPreview_view.aod b/neonView/DuplicateScannerPreview_view/DuplicateScannerPreview_view.aod
index a14a89ccf1bc4bf3f0e094c557b068445931d87b..75c33f74429cbf649d0353217f044074c7a56a4a 100644
--- a/neonView/DuplicateScannerPreview_view/DuplicateScannerPreview_view.aod
+++ b/neonView/DuplicateScannerPreview_view/DuplicateScannerPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DuplicateScannerPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/DuplicateScannerResultFieldConfigEdit_view/DuplicateScannerResultFieldConfigEdit_view.aod b/neonView/DuplicateScannerResultFieldConfigEdit_view/DuplicateScannerResultFieldConfigEdit_view.aod
index 576c3d38332567589e6d9bd6c4084ba8114e8ee6..9798328f4161f04c56cd02f48166a9dce167306c 100644
--- a/neonView/DuplicateScannerResultFieldConfigEdit_view/DuplicateScannerResultFieldConfigEdit_view.aod
+++ b/neonView/DuplicateScannerResultFieldConfigEdit_view/DuplicateScannerResultFieldConfigEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DuplicateScannerResultFieldConfigEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/DuplicatesOverview_view/DuplicatesOverview_view.aod b/neonView/DuplicatesOverview_view/DuplicatesOverview_view.aod
index c019d199c2141122933552eb068b217994355a2a..ad0436323ab2c0829d978e2bf86c24b0766597ab 100644
--- a/neonView/DuplicatesOverview_view/DuplicatesOverview_view.aod
+++ b/neonView/DuplicatesOverview_view/DuplicatesOverview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DuplicatesOverview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/DuplicatesUnrelatedCluster_view/DuplicatesUnrelatedCluster_view.aod b/neonView/DuplicatesUnrelatedCluster_view/DuplicatesUnrelatedCluster_view.aod
index f0ead2ebdc80aecda0abac4c7c0b92f49fcee8f3..670b2c939dc7b4c793999bf90f30c9503d4c0052 100644
--- a/neonView/DuplicatesUnrelatedCluster_view/DuplicatesUnrelatedCluster_view.aod
+++ b/neonView/DuplicatesUnrelatedCluster_view/DuplicatesUnrelatedCluster_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DuplicatesUnrelatedCluster_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/DuplicatesUnrelatedOrganisationFilter_view/DuplicatesUnrelatedOrganisationFilter_view.aod b/neonView/DuplicatesUnrelatedOrganisationFilter_view/DuplicatesUnrelatedOrganisationFilter_view.aod
index 9a595daa534c8876f4c20b7b578bc0a1d3d4c61f..03a42bc169f8edf17595f673f799194149d4eb81 100644
--- a/neonView/DuplicatesUnrelatedOrganisationFilter_view/DuplicatesUnrelatedOrganisationFilter_view.aod
+++ b/neonView/DuplicatesUnrelatedOrganisationFilter_view/DuplicatesUnrelatedOrganisationFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DuplicatesUnrelatedOrganisationFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/DuplicatesUnrelatedPersonFilter_view/DuplicatesUnrelatedPersonFilter_view.aod b/neonView/DuplicatesUnrelatedPersonFilter_view/DuplicatesUnrelatedPersonFilter_view.aod
index 4ba98a70931bba60aeab6a46a6c5c2e9ae2be801..173666ab5f8a8ffb5ded2760fd5da08851e2e209 100644
--- a/neonView/DuplicatesUnrelatedPersonFilter_view/DuplicatesUnrelatedPersonFilter_view.aod
+++ b/neonView/DuplicatesUnrelatedPersonFilter_view/DuplicatesUnrelatedPersonFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>DuplicatesUnrelatedPersonFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/EmailEdit_view/EmailEdit_view.aod b/neonView/EmailEdit_view/EmailEdit_view.aod
index 0606c5788a5daf17f8e709d6cf7311fc0628a307..9a5c272e3d8535e53bafb82dcf9fbb8c8d6bd564 100644
--- a/neonView/EmailEdit_view/EmailEdit_view.aod
+++ b/neonView/EmailEdit_view/EmailEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>EmailEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/EmployeeEdit_view/EmployeeEdit_view.aod b/neonView/EmployeeEdit_view/EmployeeEdit_view.aod
index 8ddd860527f7492638d46cd5d4144cec197630ea..edbeb25e38bf229386d287e3c8d2d5914ead3b1b 100644
--- a/neonView/EmployeeEdit_view/EmployeeEdit_view.aod
+++ b/neonView/EmployeeEdit_view/EmployeeEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>EmployeeEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/EmployeeFilter_view/EmployeeFilter_view.aod b/neonView/EmployeeFilter_view/EmployeeFilter_view.aod
index 7cb12f6d37d22a149b3a90ccb9c7ea1aceea89ba..a2fde8b341971a57e2b0169d24fa014f342edda4 100644
--- a/neonView/EmployeeFilter_view/EmployeeFilter_view.aod
+++ b/neonView/EmployeeFilter_view/EmployeeFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>EmployeeFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -16,6 +16,7 @@
       <subtitleField>TITLE</subtitleField>
       <descriptionField>EMAIL_ADDRESS</descriptionField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
       <linkedColumns>
         <element>TITLE</element>
       </linkedColumns>
diff --git a/neonView/EmployeeLookup_view/EmployeeLookup_view.aod b/neonView/EmployeeLookup_view/EmployeeLookup_view.aod
index a213204aaa00a839ea88781d343c6b88b01d0cb8..3b6928597d37f305df8c804447dfab607a8b2ace 100644
--- a/neonView/EmployeeLookup_view/EmployeeLookup_view.aod
+++ b/neonView/EmployeeLookup_view/EmployeeLookup_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>EmployeeLookup_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/EmployeeMain_view/EmployeeMain_view.aod b/neonView/EmployeeMain_view/EmployeeMain_view.aod
index 94d73c9fd2ed4bcec0c7792bdfd856e732d35ea0..f7db1dcc1222a80bad872958c03d8b3dd8d73c2f 100644
--- a/neonView/EmployeeMain_view/EmployeeMain_view.aod
+++ b/neonView/EmployeeMain_view/EmployeeMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>EmployeeMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/EmployeePassword_view/EmployeePassword_view.aod b/neonView/EmployeePassword_view/EmployeePassword_view.aod
index 9309f0b748f33a80f026f36212d45d6dfadcb3fe..9a1c7eccd087f5cc0a9e5b8261ab2a0ecaa2d489 100644
--- a/neonView/EmployeePassword_view/EmployeePassword_view.aod
+++ b/neonView/EmployeePassword_view/EmployeePassword_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>EmployeePassword_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/EmployeePermission_view/EmployeePermission_view.aod b/neonView/EmployeePermission_view/EmployeePermission_view.aod
index 6bfd87a53c7531a89f16009ef3b4696142301ae8..4b2cec8d2e68265033ff85386f4557c80a900f71 100644
--- a/neonView/EmployeePermission_view/EmployeePermission_view.aod
+++ b/neonView/EmployeePermission_view/EmployeePermission_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>EmployeePermission_view</name>
   <title>Permission</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/EmployeePreview_view/EmployeePreview_view.aod b/neonView/EmployeePreview_view/EmployeePreview_view.aod
index 576e510759eb4062d5692c752cee3607986eed20..d908c43392b62f1c9e92ee188f1aefcf05cda857 100644
--- a/neonView/EmployeePreview_view/EmployeePreview_view.aod
+++ b/neonView/EmployeePreview_view/EmployeePreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>EmployeePreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/EmployeeRoleEdit_view/EmployeeRoleEdit_view.aod b/neonView/EmployeeRoleEdit_view/EmployeeRoleEdit_view.aod
index a7b67bdd57e314e3bf08e166dab14883974cb666..7e3ce4399ecd9414aa61290e3a4289408642ffff 100644
--- a/neonView/EmployeeRoleEdit_view/EmployeeRoleEdit_view.aod
+++ b/neonView/EmployeeRoleEdit_view/EmployeeRoleEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>EmployeeRoleEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/EmployeeRoleFilter_view/EmployeeRoleFilter_view.aod b/neonView/EmployeeRoleFilter_view/EmployeeRoleFilter_view.aod
index 92618fbb9cb53540380f007f2f59a5cc92903a57..bf8ef5c4608d78c3488b66b34ab66903f55dda6b 100644
--- a/neonView/EmployeeRoleFilter_view/EmployeeRoleFilter_view.aod
+++ b/neonView/EmployeeRoleFilter_view/EmployeeRoleFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>EmployeeRoleFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -10,8 +10,8 @@
   <children>
     <tableViewTemplate>
       <name>Table</name>
-      <entityField>#ENTITY</entityField>
       <autoNewRow v="true" />
+      <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
           <name>ab1c8d39-fc29-42e8-8b8e-3557d544b272</name>
diff --git a/neonView/EmployeeRoleGenericEdit_view/EmployeeRoleGenericEdit_view.aod b/neonView/EmployeeRoleGenericEdit_view/EmployeeRoleGenericEdit_view.aod
index 28e2345dee0299e75b7ad8b9a69c7625554c7edb..1ca0a21c3b3b1f0f377840b3d40de6d7b1ddfd9b 100644
--- a/neonView/EmployeeRoleGenericEdit_view/EmployeeRoleGenericEdit_view.aod
+++ b/neonView/EmployeeRoleGenericEdit_view/EmployeeRoleGenericEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>EmployeeRoleGenericEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/EmployeeTokenEdit_view/EmployeeTokenEdit_view.aod b/neonView/EmployeeTokenEdit_view/EmployeeTokenEdit_view.aod
index 9a0bad8cead47190e646443b59d950cd3120f835..5d9e965c72bf1676c607cc214674161f9a9a13d1 100644
--- a/neonView/EmployeeTokenEdit_view/EmployeeTokenEdit_view.aod
+++ b/neonView/EmployeeTokenEdit_view/EmployeeTokenEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>EmployeeTokenEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/EmployeeTokenFilter_view/EmployeeTokenFilter_view.aod b/neonView/EmployeeTokenFilter_view/EmployeeTokenFilter_view.aod
index 852a0eed7cce66f29cb3aeebab709d526a7898a7..6b3a70b943841b03d39d554d2253cb527b4d175f 100644
--- a/neonView/EmployeeTokenFilter_view/EmployeeTokenFilter_view.aod
+++ b/neonView/EmployeeTokenFilter_view/EmployeeTokenFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>EmployeeTokenFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/EwsSyncAddContactsEdit_view/EwsSyncAddContactsEdit_view.aod b/neonView/EwsSyncAddContactsEdit_view/EwsSyncAddContactsEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..74bbe50bf1c6529cfb43c1c895441220675f604e
--- /dev/null
+++ b/neonView/EwsSyncAddContactsEdit_view/EwsSyncAddContactsEdit_view.aod
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>EwsSyncAddContactsEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <size>SMALL</size>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <scoreCardViewTemplate>
+      <name>ewsSyncScorecard</name>
+      <fields>
+        <entityFieldLink>
+          <name>bb922a4f-c170-4158-9241-8ba04ae92370</name>
+          <entityField>countForSync</entityField>
+        </entityFieldLink>
+      </fields>
+    </scoreCardViewTemplate>
+    <actionsViewTemplate>
+      <name>syncAction</name>
+      <actions>
+        <element>syncContacts</element>
+        <element>removeSyncContacts</element>
+      </actions>
+    </actionsViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ExportTemplateEdit_view/ExportTemplateEdit_view.aod b/neonView/ExportTemplateEdit_view/ExportTemplateEdit_view.aod
index eae6477e9a3e0d2881e9df8426ca6740508534af..a821121f1aeb066c44b02cc36a7428411d46f07b 100644
--- a/neonView/ExportTemplateEdit_view/ExportTemplateEdit_view.aod
+++ b/neonView/ExportTemplateEdit_view/ExportTemplateEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ExportTemplateEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ExportTemplateFieldList_view/ExportTemplateFieldList_view.aod b/neonView/ExportTemplateFieldList_view/ExportTemplateFieldList_view.aod
index c7dfb01e23ac7c680a0a0d343293f1f55fffcc6a..28f8da32d3a8828c0f658129fdf81ae91e298b01 100644
--- a/neonView/ExportTemplateFieldList_view/ExportTemplateFieldList_view.aod
+++ b/neonView/ExportTemplateFieldList_view/ExportTemplateFieldList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ExportTemplateFieldList_view</name>
   <title>Field and Position</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/ExportTemplateFieldMultiEdit_view/ExportTemplateFieldMultiEdit_view.aod b/neonView/ExportTemplateFieldMultiEdit_view/ExportTemplateFieldMultiEdit_view.aod
index 32fe782b9baef53197521cc23aa5602e4f0460db..d568ca27848e106958e132471cd1b85b44f96f48 100644
--- a/neonView/ExportTemplateFieldMultiEdit_view/ExportTemplateFieldMultiEdit_view.aod
+++ b/neonView/ExportTemplateFieldMultiEdit_view/ExportTemplateFieldMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ExportTemplateFieldMultiEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ExportTemplateFilter_view/ExportTemplateFilter_view.aod b/neonView/ExportTemplateFilter_view/ExportTemplateFilter_view.aod
index 8291821119db91fcd12efa43e385320d1f3f7cc1..ecfe1548157a26a029eb9d6ca3dabd552485cadc 100644
--- a/neonView/ExportTemplateFilter_view/ExportTemplateFilter_view.aod
+++ b/neonView/ExportTemplateFilter_view/ExportTemplateFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ExportTemplateFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/ExportTemplatePlaceOfUseList_view/ExportTemplatePlaceOfUseList_view.aod b/neonView/ExportTemplatePlaceOfUseList_view/ExportTemplatePlaceOfUseList_view.aod
index bcbd58b13a6a05ba3b2ff54f16bafdacdf6f38cc..9b4d6a978b1032e991dbc8cc4fbc4b483a6b76d7 100644
--- a/neonView/ExportTemplatePlaceOfUseList_view/ExportTemplatePlaceOfUseList_view.aod
+++ b/neonView/ExportTemplatePlaceOfUseList_view/ExportTemplatePlaceOfUseList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ExportTemplatePlaceOfUseList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ExportTemplatePlaceOfUseMultiEdit_view/ExportTemplatePlaceOfUseMultiEdit_view.aod b/neonView/ExportTemplatePlaceOfUseMultiEdit_view/ExportTemplatePlaceOfUseMultiEdit_view.aod
index 3bb9efc85f45fd404c7e51c946b5fd4516a9e292..c32a8477c19869f6a34cce18c963b2a590aca365 100644
--- a/neonView/ExportTemplatePlaceOfUseMultiEdit_view/ExportTemplatePlaceOfUseMultiEdit_view.aod
+++ b/neonView/ExportTemplatePlaceOfUseMultiEdit_view/ExportTemplatePlaceOfUseMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ExportTemplatePlaceOfUseMultiEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ExportTemplatePreview_view/ExportTemplatePreview_view.aod b/neonView/ExportTemplatePreview_view/ExportTemplatePreview_view.aod
index 79713725747aa1250dd4f7667f6e4a77c73280b7..4a0bbc8895e323d34c9c8f3a8ff7b770382651c5 100644
--- a/neonView/ExportTemplatePreview_view/ExportTemplatePreview_view.aod
+++ b/neonView/ExportTemplatePreview_view/ExportTemplatePreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ExportTemplatePreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ExportTemplateSelectionEdit_view/ExportTemplateSelectionEdit_view.aod b/neonView/ExportTemplateSelectionEdit_view/ExportTemplateSelectionEdit_view.aod
index 3886dffb7b0ba7f28718efe0bd922ab036e71352..709d825158f14edab0ab418f8b1ed45b4ebcf352 100644
--- a/neonView/ExportTemplateSelectionEdit_view/ExportTemplateSelectionEdit_view.aod
+++ b/neonView/ExportTemplateSelectionEdit_view/ExportTemplateSelectionEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ExportTemplateSelectionEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/FacebookTimeline_view/FacebookTimeline_view.aod b/neonView/FacebookTimeline_view/FacebookTimeline_view.aod
index c9270765ff02fd1ea409d4cdc47c43162cd7169d..83fbdb545d972beb72da1fd56529358b606292e9 100644
--- a/neonView/FacebookTimeline_view/FacebookTimeline_view.aod
+++ b/neonView/FacebookTimeline_view/FacebookTimeline_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>FacebookTimeline_view</name>
   <title>Facebook</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/FavoriteFilter_view/FavoriteFilter_view.aod b/neonView/FavoriteFilter_view/FavoriteFilter_view.aod
index 61070f4ce2ce005795b193ab22e3432174b1d8db..8c4e917b30501a9dbd6f8664de5539838a007c49 100644
--- a/neonView/FavoriteFilter_view/FavoriteFilter_view.aod
+++ b/neonView/FavoriteFilter_view/FavoriteFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>FavoriteFilter_view</name>
   <title>FavoriteFilter_view</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/FavoritePreview_view/FavoritePreview_view.aod b/neonView/FavoritePreview_view/FavoritePreview_view.aod
index 25f98d8ef427973cf9b81bb09087a39d1da92522..045afa25042ce3e24830a48be7ed2bf175b0711c 100644
--- a/neonView/FavoritePreview_view/FavoritePreview_view.aod
+++ b/neonView/FavoritePreview_view/FavoritePreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>FavoritePreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ForecastDrawer_view/ForecastDrawer_view.aod b/neonView/ForecastDrawer_view/ForecastDrawer_view.aod
index ef5388b84258b92686f7fddba1707facd1c94af6..9b5aab9333a7baa0d331c54b7c360d8ee5c2cb3c 100644
--- a/neonView/ForecastDrawer_view/ForecastDrawer_view.aod
+++ b/neonView/ForecastDrawer_view/ForecastDrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ForecastDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ForecastEdit_view/ForecastEdit_view.aod b/neonView/ForecastEdit_view/ForecastEdit_view.aod
index 28debe56d0facef0164efd638b4d84b4c099a437..95f7a1089f58033cc45cb2648f7ff27663c87fac 100644
--- a/neonView/ForecastEdit_view/ForecastEdit_view.aod
+++ b/neonView/ForecastEdit_view/ForecastEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ForecastEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/ForecastFilter_view/ForecastFilter_view.aod b/neonView/ForecastFilter_view/ForecastFilter_view.aod
index ffa08904f6bad6d9c86b4f0b7c64718d0bae3851..e285996fccb9f5b8f3d241d2a5b5482767a600d3 100644
--- a/neonView/ForecastFilter_view/ForecastFilter_view.aod
+++ b/neonView/ForecastFilter_view/ForecastFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ForecastFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/ForecastPreview_view/ForecastPreview_view.aod b/neonView/ForecastPreview_view/ForecastPreview_view.aod
index f13e83a74c95a132bdef8323d23003ff102363f4..c35834022761561c18ba617f2b659fb5e79c9422 100644
--- a/neonView/ForecastPreview_view/ForecastPreview_view.aod
+++ b/neonView/ForecastPreview_view/ForecastPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ForecastPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ImportFieldEdit_view/ImportFieldEdit_view.aod b/neonView/ImportFieldEdit_view/ImportFieldEdit_view.aod
index 4bcc0eda9db13670681a509f2a80c3314cf743b9..a59bdc058ffa33c662c9b706dde81a24eaf42fdc 100644
--- a/neonView/ImportFieldEdit_view/ImportFieldEdit_view.aod
+++ b/neonView/ImportFieldEdit_view/ImportFieldEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ImportFieldEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/ImportFieldFilterMapping_view/ImportFieldFilterMapping_view.aod b/neonView/ImportFieldFilterMapping_view/ImportFieldFilterMapping_view.aod
index 29a4e8be88bff2ea8e3aa2288698aa80d504f755..776787cbf7a9372f900f055a236f95a66b960bce 100644
--- a/neonView/ImportFieldFilterMapping_view/ImportFieldFilterMapping_view.aod
+++ b/neonView/ImportFieldFilterMapping_view/ImportFieldFilterMapping_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ImportFieldFilterMapping_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ImportFieldFilter_view/ImportFieldFilter_view.aod b/neonView/ImportFieldFilter_view/ImportFieldFilter_view.aod
index ee18157579207f465825d5d80ba93a4958f77494..c44fe4620cadeac8eb7e9ed4fc3caf01f8ef9299 100644
--- a/neonView/ImportFieldFilter_view/ImportFieldFilter_view.aod
+++ b/neonView/ImportFieldFilter_view/ImportFieldFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ImportFieldFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/IndexSearchView/IndexSearchView.aod b/neonView/IndexSearchView/IndexSearchView.aod
index c1a8c71fd037cd07a80b1aea8be782bbf7f2a17a..e492e1b88070ef2fa3116684e9cfce36743194fe 100644
--- a/neonView/IndexSearchView/IndexSearchView.aod
+++ b/neonView/IndexSearchView/IndexSearchView.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>IndexSearchView</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <dashletConfigurations>
diff --git a/neonView/KeywordAttributeEdit_view/KeywordAttributeEdit_view.aod b/neonView/KeywordAttributeEdit_view/KeywordAttributeEdit_view.aod
index 1e906c4ad4030738fcf891530a0ac48e06760f73..04b2c96229f6ffff2f5d5a0c004ab7eeb2a4829e 100644
--- a/neonView/KeywordAttributeEdit_view/KeywordAttributeEdit_view.aod
+++ b/neonView/KeywordAttributeEdit_view/KeywordAttributeEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KeywordAttributeEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
@@ -16,8 +16,8 @@
       <entityField>#ENTITY</entityField>
       <fields>
         <entityFieldLink>
-          <name>88fcd6c8-8dfc-4a1d-96d9-33412768feb9</name>
-          <entityField>CONTAINER</entityField>
+          <name>69049ecf-c6be-4b19-bb5c-1ba1f065446b</name>
+          <entityField>AB_KEYWORD_CATEGORY_ID</entityField>
         </entityFieldLink>
         <entityFieldLink>
           <name>4e120b1d-1016-41a1-abe7-9d28f8053380</name>
diff --git a/neonView/KeywordAttributeFilter_view/KeywordAttributeFilter_view.aod b/neonView/KeywordAttributeFilter_view/KeywordAttributeFilter_view.aod
index 9072b6df51f606f4caae6ec016e30d5ad94ab6be..a212bffda8766c38a24dddf71cfbe8c5e06b1ac3 100644
--- a/neonView/KeywordAttributeFilter_view/KeywordAttributeFilter_view.aod
+++ b/neonView/KeywordAttributeFilter_view/KeywordAttributeFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KeywordAttributeFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -13,18 +13,18 @@
       <name>Attributes</name>
       <hideContentSearch v="false" />
       <titleField>NAME</titleField>
-      <subtitleField>CONTAINER</subtitleField>
+      <subtitleField>AB_KEYWORD_CATEGORY_ID</subtitleField>
       <descriptionField>TYPE</descriptionField>
-      <entityField>#ENTITY</entityField>
       <autoNewRow v="true" />
+      <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
           <name>94fdd272-46f0-415e-aff8-76789a215921</name>
           <entityField>#ICON</entityField>
         </neonTableColumn>
         <neonTableColumn>
-          <name>7efe2ae9-8b76-439f-95cb-547f7dec9057</name>
-          <entityField>CONTAINER</entityField>
+          <name>0c8313b6-897b-4bc2-894b-f850ed75f63b</name>
+          <entityField>AB_KEYWORD_CATEGORY_ID</entityField>
         </neonTableColumn>
         <neonTableColumn>
           <name>682fd08f-b121-469c-b86e-afdf013dbc7b</name>
@@ -45,8 +45,8 @@
           <entityField>#ICON</entityField>
         </neonTreeTableColumn>
         <neonTreeTableColumn>
-          <name>f1e9f968-4b54-4923-a5e4-876097d9e340</name>
-          <entityField>CONTAINER</entityField>
+          <name>860e78bc-65e9-4104-b80c-1255abf27d2c</name>
+          <entityField>AB_KEYWORD_CATEGORY_ID</entityField>
         </neonTreeTableColumn>
         <neonTreeTableColumn>
           <name>5054102d-62aa-43c4-9a38-5ed7d31eecb9</name>
diff --git a/neonView/KeywordAttributeRelationRows_view/KeywordAttributeRelationRows_view.aod b/neonView/KeywordAttributeRelationRows_view/KeywordAttributeRelationRows_view.aod
index 3c349095ff8191de19bfb4e469b95a4815efff2f..c76b4466fa54efcb81082e05d688cf58853ac8f2 100644
--- a/neonView/KeywordAttributeRelationRows_view/KeywordAttributeRelationRows_view.aod
+++ b/neonView/KeywordAttributeRelationRows_view/KeywordAttributeRelationRows_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KeywordAttributeRelationRows_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="false" />
@@ -12,8 +12,8 @@
     <tableViewTemplate>
       <name>Relations</name>
       <inlineEdit v="true" />
-      <entityField>#ENTITY</entityField>
       <autoNewRow v="true" />
+      <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
           <name>f0eec86d-a223-4208-9e9d-6a6bda1969c8</name>
diff --git a/neonView/KeywordAttriubteRelationTitled_view/KeywordAttriubteRelationTitled_view.aod b/neonView/KeywordAttriubteRelationTitled_view/KeywordAttriubteRelationTitled_view.aod
index 35a025815b8d51cd1b65304a528de14ec8f5e51d..41321c05ef422185bcab6f010ac12f6ba614cf19 100644
--- a/neonView/KeywordAttriubteRelationTitled_view/KeywordAttriubteRelationTitled_view.aod
+++ b/neonView/KeywordAttriubteRelationTitled_view/KeywordAttriubteRelationTitled_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KeywordAttriubteRelationTitled_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/KeywordCategoryEdit_view/KeywordCategoryEdit_view.aod b/neonView/KeywordCategoryEdit_view/KeywordCategoryEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..4d8ce0be1755300dbf67616c48f70cb4cea1618f
--- /dev/null
+++ b/neonView/KeywordCategoryEdit_view/KeywordCategoryEdit_view.aod
@@ -0,0 +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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>KeywordCategoryEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <size>SMALL</size>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>CategoryEdit</name>
+      <editMode v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>baf076dd-1119-4604-82da-47b462428b46</name>
+          <entityField>NAME</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>4ab1775f-9ab2-4c41-a9a7-e366df2a85cb</name>
+          <entityField>SORTINGBY</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>6f01e1b2-15fb-4734-a14e-e788aa8096f2</name>
+          <entityField>SORTINGDIRECTION</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+    <neonViewReference>
+      <name>b5c2e29f-564c-4d78-873b-43e9376534d8</name>
+      <entityField>OrderedBySortingFieldKeywordsConsumer</entityField>
+      <view>KeywordEntryMultiEdit_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/KeywordCategoryFilter_view/KeywordCategoryFilter_view.aod b/neonView/KeywordCategoryFilter_view/KeywordCategoryFilter_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..468500bf58a471aff225f42c3d4311bc5c954c5d
--- /dev/null
+++ b/neonView/KeywordCategoryFilter_view/KeywordCategoryFilter_view.aod
@@ -0,0 +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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>KeywordCategoryFilter_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterable v="true" />
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>CategoryTable</name>
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>b5f0f090-3dd8-4407-a1a0-7eff8391017e</name>
+          <entityField>NAME</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>aeb1a10f-0d69-4943-b0d8-0c4395d9b9db</name>
+          <entityField>SORTINGBY</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>10b78f77-574f-4113-bc67-397419dd579b</name>
+          <entityField>SORTINGDIRECTION</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/KeywordCategoryPreview_view/KeywordCategoryPreview_view.aod b/neonView/KeywordCategoryPreview_view/KeywordCategoryPreview_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..febe2de1022188fc96b43928c5b550236cbaf8df
--- /dev/null
+++ b/neonView/KeywordCategoryPreview_view/KeywordCategoryPreview_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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>KeywordCategoryPreview_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <headerFooterLayout>
+      <name>layout</name>
+      <header>header</header>
+    </headerFooterLayout>
+  </layout>
+  <children>
+    <cardViewTemplate>
+      <name>header</name>
+      <titleField>#CONTENTTITLE</titleField>
+      <subtitleField>SORTINGBY</subtitleField>
+      <descriptionField>SORTINGDIRECTION</descriptionField>
+      <entityField>#ENTITY</entityField>
+    </cardViewTemplate>
+    <neonViewReference>
+      <name>7c54144c-2653-4dcb-a2a1-3e59a78a6fd5</name>
+      <entityField>OrderedByNameFieldKeywordsConsumer</entityField>
+      <view>KeywordEntryList_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>d8e67a1f-d8de-4874-97b0-4b5b157f61a0</name>
+      <entityField>OrderedBySortingFieldKeywordsConsumer</entityField>
+      <view>KeywordEntryList_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/KeywordEntryEdit_view/KeywordEntryEdit_view.aod b/neonView/KeywordEntryEdit_view/KeywordEntryEdit_view.aod
index d759384a7067f6e2324dd206641fda2bf2ace168..c384aecd42eea03270ea0e10cbbb34099ed6ad6b 100644
--- a/neonView/KeywordEntryEdit_view/KeywordEntryEdit_view.aod
+++ b/neonView/KeywordEntryEdit_view/KeywordEntryEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KeywordEntryEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
@@ -16,8 +16,8 @@
       <entityField>#ENTITY</entityField>
       <fields>
         <entityFieldLink>
-          <name>236c9d71-a619-47b5-b5a0-8d4e5bc45903</name>
-          <entityField>CONTAINER</entityField>
+          <name>8b14494e-6de4-4d2c-a4c6-a9f6613be569</name>
+          <entityField>AB_KEYWORD_CATEGORY_ID</entityField>
         </entityFieldLink>
         <entityFieldLink>
           <name>f7f66b08-521c-46bf-b6e9-3c3f130648bc</name>
diff --git a/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod b/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod
index 874bbf3c62f6c5150f3e208f50c825539a94715a..efd8bf78f7c8605f00de542b3b0eddc416218d00 100644
--- a/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod
+++ b/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KeywordEntryFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -12,11 +12,16 @@
     <treeTableViewTemplate>
       <name>EntriesTreeTable</name>
       <nodeExpandedField></nodeExpandedField>
+      <hideActions v="false" />
       <hideContentSearch v="false" />
       <entityField>#ENTITY</entityField>
       <defaultGroupFields>
-        <element>CONTAINER</element>
+        <element>AB_KEYWORD_CATEGORY_ID</element>
       </defaultGroupFields>
+      <maxDBRow v="400" />
+      <isCreatable v="true" />
+      <isDeletable v="true" />
+      <isEditable v="true" />
       <columns>
         <neonTreeTableColumn>
           <name>6100879d-dc6a-4c7e-b750-f5b7e627f48a</name>
@@ -40,7 +45,7 @@
       <name>EntriesTable</name>
       <hideContentSearch v="false" />
       <titleField>TITLE</titleField>
-      <subtitleField>CONTAINER</subtitleField>
+      <subtitleField>AB_KEYWORD_CATEGORY_ID</subtitleField>
       <entityField>#ENTITY</entityField>
       <title></title>
       <columns>
@@ -50,7 +55,7 @@
         </neonTableColumn>
         <neonTableColumn>
           <name>7f8c3b75-62dc-4826-bad3-99aa9d471067</name>
-          <entityField>CONTAINER</entityField>
+          <entityField>AB_KEYWORD_CATEGORY_ID</entityField>
         </neonTableColumn>
         <neonTableColumn>
           <name>4dc50d75-d856-4fca-bd4d-d79eb3c8769f</name>
diff --git a/neonView/KeywordEntryList_view/KeywordEntryList_view.aod b/neonView/KeywordEntryList_view/KeywordEntryList_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..7353fb5fc38b0cdcb277b7cdf492046cd4816ed9
--- /dev/null
+++ b/neonView/KeywordEntryList_view/KeywordEntryList_view.aod
@@ -0,0 +1,36 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>KeywordEntryList_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+  <children>
+    <titledListViewTemplate>
+      <name>KeywordList</name>
+      <titleField>KEYID_alwaysReadOnly</titleField>
+      <fixedDrawer v="true" />
+      <autoNewRow v="false" />
+      <entityField>#ENTITY</entityField>
+      <isDeletable v="false" />
+      <isCreatable v="false" />
+      <isEditable v="false" />
+      <columns>
+        <neonTitledListTableColumn>
+          <name>059eac66-9187-4d85-bcd3-0b769b63b54c</name>
+          <entityField>TITLE</entityField>
+        </neonTitledListTableColumn>
+        <neonTitledListTableColumn>
+          <name>ec5245a3-69a2-4daa-9fc8-79378c77e5d5</name>
+          <entityField>TITLE_TRANSLATED</entityField>
+        </neonTitledListTableColumn>
+        <neonTitledListTableColumn>
+          <name>123bfe61-eef6-48fd-bd03-6455394dcb79</name>
+          <entityField>SORTING</entityField>
+        </neonTitledListTableColumn>
+      </columns>
+    </titledListViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/KeywordEntryMultiEdit_view/KeywordEntryMultiEdit_view.aod b/neonView/KeywordEntryMultiEdit_view/KeywordEntryMultiEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..a0ce7c0a967e383c7fc807f8fa60a966317004e7
--- /dev/null
+++ b/neonView/KeywordEntryMultiEdit_view/KeywordEntryMultiEdit_view.aod
@@ -0,0 +1,34 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>KeywordEntryMultiEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+  <children>
+    <genericMultipleViewTemplate>
+      <name>KeywordMultiEdit</name>
+      <entityField>#ENTITY</entityField>
+      <isCreatable v="false" />
+      <isDeletable v="false" />
+      <isEditable v="true" />
+      <columns>
+        <neonGenericMultipleTableColumn>
+          <name>4781603d-8c65-4267-9354-6faf8713ce62</name>
+          <entityField>KEYID_alwaysReadOnly</entityField>
+          <fullWidth v="false" />
+        </neonGenericMultipleTableColumn>
+        <neonGenericMultipleTableColumn>
+          <name>94f13a43-c915-4eba-857c-b0e389c3ee75</name>
+          <entityField>TITLE</entityField>
+        </neonGenericMultipleTableColumn>
+        <neonGenericMultipleTableColumn>
+          <name>2d1f25dc-03ab-4735-996f-be2b6477e740</name>
+          <entityField>TITLE_TRANSLATED</entityField>
+        </neonGenericMultipleTableColumn>
+      </columns>
+    </genericMultipleViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/KeywordEntryPreview_view/KeywordEntryPreview_view.aod b/neonView/KeywordEntryPreview_view/KeywordEntryPreview_view.aod
index 75d472d2485aee715ee438b4a1df85e96cc5ced4..d87afc69b390fb15619324fea66cddf89115c71e 100644
--- a/neonView/KeywordEntryPreview_view/KeywordEntryPreview_view.aod
+++ b/neonView/KeywordEntryPreview_view/KeywordEntryPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KeywordEntryPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -12,7 +12,7 @@
     <cardViewTemplate>
       <name>Header</name>
       <titleField>TITLE</titleField>
-      <subtitleField>CONTAINER</subtitleField>
+      <subtitleField>AB_KEYWORD_CATEGORY_ID</subtitleField>
       <descriptionField>KEYID</descriptionField>
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
diff --git a/neonView/KnowledgeDiscussionEdit_view/KnowledgeDiscussionEdit_view.aod b/neonView/KnowledgeDiscussionEdit_view/KnowledgeDiscussionEdit_view.aod
index 8982a1358125b81e9ea28dacb3380a4924538b75..09f74129517860a20872a8e1122cd58539f91061 100644
--- a/neonView/KnowledgeDiscussionEdit_view/KnowledgeDiscussionEdit_view.aod
+++ b/neonView/KnowledgeDiscussionEdit_view/KnowledgeDiscussionEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeDiscussionEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/KnowledgeDiscussionPreview_view/KnowledgeDiscussionPreview_view.aod b/neonView/KnowledgeDiscussionPreview_view/KnowledgeDiscussionPreview_view.aod
index e98045a42c239c7ba0ac505595373871d633bd4f..d380992c487901387abc0dbec40a8ce308e9f516 100644
--- a/neonView/KnowledgeDiscussionPreview_view/KnowledgeDiscussionPreview_view.aod
+++ b/neonView/KnowledgeDiscussionPreview_view/KnowledgeDiscussionPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeDiscussionPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/KnowledgeDiscussionTree_view/KnowledgeDiscussionTree_view.aod b/neonView/KnowledgeDiscussionTree_view/KnowledgeDiscussionTree_view.aod
index ec4ef34471b15239151ca9603f34964ceda1cbcd..9df4f3e0edcc77c63804b0357de062291b605351 100644
--- a/neonView/KnowledgeDiscussionTree_view/KnowledgeDiscussionTree_view.aod
+++ b/neonView/KnowledgeDiscussionTree_view/KnowledgeDiscussionTree_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeDiscussionTree_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -12,8 +12,8 @@
     <treeTableViewTemplate>
       <name>Treetable</name>
       <parentField>PARENTENTRY</parentField>
-      <favoriteActionGroup1>Edit_ActionGroup</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>Edit_ActionGroup</favoriteActionGroup1>
       <title>Discussions</title>
       <columns>
         <neonTreeTableColumn>
diff --git a/neonView/KnowledgeLinkActionList_view/KnowledgeLinkActionList_view.aod b/neonView/KnowledgeLinkActionList_view/KnowledgeLinkActionList_view.aod
index 23ed8823319a976056fe99e089fbfef34a181fd2..bb3d80ad43e3b60b456b1bde6a5da59214b66651 100644
--- a/neonView/KnowledgeLinkActionList_view/KnowledgeLinkActionList_view.aod
+++ b/neonView/KnowledgeLinkActionList_view/KnowledgeLinkActionList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeLinkActionList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/KnowledgeLinkEdit_view/KnowledgeLinkEdit_view.aod b/neonView/KnowledgeLinkEdit_view/KnowledgeLinkEdit_view.aod
index 34e51015d714cc08e473abe61060d2cfbda2c611..aae81b0785eb4896a4be8dcf236429fa6effb382 100644
--- a/neonView/KnowledgeLinkEdit_view/KnowledgeLinkEdit_view.aod
+++ b/neonView/KnowledgeLinkEdit_view/KnowledgeLinkEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeLinkEdit_view</name>
   <title>Links</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/KnowledgeLinkLookup_view/KnowledgeLinkLookup_view.aod b/neonView/KnowledgeLinkLookup_view/KnowledgeLinkLookup_view.aod
index 49df3025f21d176be96bea6728b179764148070c..9782206e1693fcb12603e37d59543d910effebd1 100644
--- a/neonView/KnowledgeLinkLookup_view/KnowledgeLinkLookup_view.aod
+++ b/neonView/KnowledgeLinkLookup_view/KnowledgeLinkLookup_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeLinkLookup_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/KnowledgeLinkMultiEdit_view/KnowledgeLinkMultiEdit_view.aod b/neonView/KnowledgeLinkMultiEdit_view/KnowledgeLinkMultiEdit_view.aod
index e695b7e4627218fd44ff666bc4f9de05b4665bac..972cbd055fad5f86c86d71e54e57a4a0aa6a4971 100644
--- a/neonView/KnowledgeLinkMultiEdit_view/KnowledgeLinkMultiEdit_view.aod
+++ b/neonView/KnowledgeLinkMultiEdit_view/KnowledgeLinkMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeLinkMultiEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/KnowledgeManagementContent_view/KnowledgeManagementContent_view.aod b/neonView/KnowledgeManagementContent_view/KnowledgeManagementContent_view.aod
index 2318cac28850af5be02942a87ed574063dee9c3f..0dd316f85998fda17cfb8aeee6ace179d73960fe 100644
--- a/neonView/KnowledgeManagementContent_view/KnowledgeManagementContent_view.aod
+++ b/neonView/KnowledgeManagementContent_view/KnowledgeManagementContent_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeManagementContent_view</name>
   <title>Content</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/KnowledgeManagementDetails_view/KnowledgeManagementDetails_view.aod b/neonView/KnowledgeManagementDetails_view/KnowledgeManagementDetails_view.aod
index 1e1a3fa2b9ed98c9038e41b99352299be4514fe8..37c914fe2abf1efa2feb67148bacf3cb1f396e89 100644
--- a/neonView/KnowledgeManagementDetails_view/KnowledgeManagementDetails_view.aod
+++ b/neonView/KnowledgeManagementDetails_view/KnowledgeManagementDetails_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeManagementDetails_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/KnowledgeManagementEdit_view/KnowledgeManagementEdit_view.aod b/neonView/KnowledgeManagementEdit_view/KnowledgeManagementEdit_view.aod
index 5d41560c646764c463f88de8f3b61babc65f771f..79fab81963843df59a4188e5c5a10c4bd105c740 100644
--- a/neonView/KnowledgeManagementEdit_view/KnowledgeManagementEdit_view.aod
+++ b/neonView/KnowledgeManagementEdit_view/KnowledgeManagementEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeManagementEdit_view</name>
   <title>Knowledge</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/KnowledgeManagementFilter_view/KnowledgeManagementFilter_view.aod b/neonView/KnowledgeManagementFilter_view/KnowledgeManagementFilter_view.aod
index 69bb0a57328b9d60c7dd86c5b02d76b6b15d6298..3b046fcd1fc066bbef1d10f60e9f4f843f46a791 100644
--- a/neonView/KnowledgeManagementFilter_view/KnowledgeManagementFilter_view.aod
+++ b/neonView/KnowledgeManagementFilter_view/KnowledgeManagementFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeManagementFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/KnowledgeManagementLookup_view/KnowledgeManagementLookup_view.aod b/neonView/KnowledgeManagementLookup_view/KnowledgeManagementLookup_view.aod
index 163964460fbbcac115a85112858aacb51ff5a10d..4372569ff09aff17f34c5c7bdefe1f888cc0bf63 100644
--- a/neonView/KnowledgeManagementLookup_view/KnowledgeManagementLookup_view.aod
+++ b/neonView/KnowledgeManagementLookup_view/KnowledgeManagementLookup_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeManagementLookup_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/KnowledgeManagementMain_view/KnowledgeManagementMain_view.aod b/neonView/KnowledgeManagementMain_view/KnowledgeManagementMain_view.aod
index dd357ba38b8129753cd65065742eada940bf7268..e7fb17e2a97a9994ddeb3e6db779ccc69d7df214 100644
--- a/neonView/KnowledgeManagementMain_view/KnowledgeManagementMain_view.aod
+++ b/neonView/KnowledgeManagementMain_view/KnowledgeManagementMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeManagementMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/KnowledgeManagementPreview_view/KnowledgeManagementPreview_view.aod b/neonView/KnowledgeManagementPreview_view/KnowledgeManagementPreview_view.aod
index e8ae6cd155b35cd92bed414f8b606171770f19fd..934dbdb3b9951697a1ae5005b492e9fd211393c3 100644
--- a/neonView/KnowledgeManagementPreview_view/KnowledgeManagementPreview_view.aod
+++ b/neonView/KnowledgeManagementPreview_view/KnowledgeManagementPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeManagementPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/KnowledgeManagementRole_view/KnowledgeManagementRole_view.aod b/neonView/KnowledgeManagementRole_view/KnowledgeManagementRole_view.aod
index ef4ea428e8507d991c7faa803080e79b0f6feb88..faf34b0503537dd5593a50f5e98d13dd1eac02c6 100644
--- a/neonView/KnowledgeManagementRole_view/KnowledgeManagementRole_view.aod
+++ b/neonView/KnowledgeManagementRole_view/KnowledgeManagementRole_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeManagementRole_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/KnowledgeManagementTimeline_view/KnowledgeManagementTimeline_view.aod b/neonView/KnowledgeManagementTimeline_view/KnowledgeManagementTimeline_view.aod
index 0dab386afebcd71c6651be4acf7161e3f3a71c95..a40f52e9316ffb8cdb27dffc305f5c2957f316dd 100644
--- a/neonView/KnowledgeManagementTimeline_view/KnowledgeManagementTimeline_view.aod
+++ b/neonView/KnowledgeManagementTimeline_view/KnowledgeManagementTimeline_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeManagementTimeline_view</name>
   <title>Newsfeed (Preview)</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/KnowledgeNewsFeed_view/KnowledgeNewsFeed_view.aod b/neonView/KnowledgeNewsFeed_view/KnowledgeNewsFeed_view.aod
index e0334d035e7a99758544d71f93a5536f3f0dcea3..b60f70cc6c0bdf10ec3cb2affaf836d3f9637df9 100644
--- a/neonView/KnowledgeNewsFeed_view/KnowledgeNewsFeed_view.aod
+++ b/neonView/KnowledgeNewsFeed_view/KnowledgeNewsFeed_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeNewsFeed_view</name>
   <title>Newsfeed (Complete Article)</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/KnowledgeRoleEdit_view/KnowledgeRoleEdit_view.aod b/neonView/KnowledgeRoleEdit_view/KnowledgeRoleEdit_view.aod
index 5d6473c3512dc0a2b0d09d953b4e5ad012fcc4f4..a0aa51c212cb2b739322c8b8dbaf78f94f4b0b5f 100644
--- a/neonView/KnowledgeRoleEdit_view/KnowledgeRoleEdit_view.aod
+++ b/neonView/KnowledgeRoleEdit_view/KnowledgeRoleEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeRoleEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/KnowledgeTagList_GenMult_view/KnowledgeTagList_GenMult_view.aod b/neonView/KnowledgeTagList_GenMult_view/KnowledgeTagList_GenMult_view.aod
index 15748243a6829bd8de904a1c01e4e38acae26c43..750581360681c2d50fe28a50da76cdb95a385f5a 100644
--- a/neonView/KnowledgeTagList_GenMult_view/KnowledgeTagList_GenMult_view.aod
+++ b/neonView/KnowledgeTagList_GenMult_view/KnowledgeTagList_GenMult_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeTagList_GenMult_view</name>
   <title>Tags</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/KnowledgeTagList_view/KnowledgeTagList_view.aod b/neonView/KnowledgeTagList_view/KnowledgeTagList_view.aod
index 61be3f1b770f229a18e8d2f754a91a15ea38fd8b..7b27c1aa77c156b10afcd62eeacc9658a9268bbf 100644
--- a/neonView/KnowledgeTagList_view/KnowledgeTagList_view.aod
+++ b/neonView/KnowledgeTagList_view/KnowledgeTagList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>KnowledgeTagList_view</name>
   <title>Tags</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/LeadFilter_view/LeadFilter_view.aod b/neonView/LeadFilter_view/LeadFilter_view.aod
index 75dc1286e761b80a2542f345752bc68373da2343..3443b42617639003963dfae8ca0a22bc9ee67fd7 100644
--- a/neonView/LeadFilter_view/LeadFilter_view.aod
+++ b/neonView/LeadFilter_view/LeadFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LeadFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/LeadLogFilterDrawer_view/LeadLogFilterDrawer_view.aod b/neonView/LeadLogFilterDrawer_view/LeadLogFilterDrawer_view.aod
index 1463636384ef61e9a23e5af4775d6e344d902b33..40eb204a046152d737c31d613a9f1fa21365909f 100644
--- a/neonView/LeadLogFilterDrawer_view/LeadLogFilterDrawer_view.aod
+++ b/neonView/LeadLogFilterDrawer_view/LeadLogFilterDrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LeadLogFilterDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/LeadLogFilter_view/LeadLogFilter_view.aod b/neonView/LeadLogFilter_view/LeadLogFilter_view.aod
index 7faeebe7aacecb268bf2574b6a5cb577026418dc..b4fbd08607d6ea8ecc55b008288abeda5835753f 100644
--- a/neonView/LeadLogFilter_view/LeadLogFilter_view.aod
+++ b/neonView/LeadLogFilter_view/LeadLogFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LeadLogFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/LeadLogPreview_view/LeadLogPreview_view.aod b/neonView/LeadLogPreview_view/LeadLogPreview_view.aod
index 1db69ba776878b4ac1aeaeb4d18d9bda2dee0ad9..d0fe7ea8108c35d7c92fb280bec2cd7d84470ce9 100644
--- a/neonView/LeadLogPreview_view/LeadLogPreview_view.aod
+++ b/neonView/LeadLogPreview_view/LeadLogPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LeadLogPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/LeadPreview_view/LeadPreview_view.aod b/neonView/LeadPreview_view/LeadPreview_view.aod
index dcd3b2353828fb0da8b71e3b42b3bcd4658be49a..cb45ee89f65f39e09b9b209ffb70e49b272e0ad2 100644
--- a/neonView/LeadPreview_view/LeadPreview_view.aod
+++ b/neonView/LeadPreview_view/LeadPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LeadPreview_view</name>
   <title>Lead preview</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/LeadTempFilter_view/LeadTempFilter_view.aod b/neonView/LeadTempFilter_view/LeadTempFilter_view.aod
index 8b51e246b49096fc00023045ca8855480f10c4c9..1f96c357e49a88ccf7314179ed122e38a8b497da 100644
--- a/neonView/LeadTempFilter_view/LeadTempFilter_view.aod
+++ b/neonView/LeadTempFilter_view/LeadTempFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LeadTempFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/LeadimportDocEdit_view/LeadimportDocEdit_view.aod b/neonView/LeadimportDocEdit_view/LeadimportDocEdit_view.aod
index 32007efecfefdc5c8a42ac23ccfa18e73b30d8c9..732c03ff12bc7b814f78ad022c0b795fee2f00e8 100644
--- a/neonView/LeadimportDocEdit_view/LeadimportDocEdit_view.aod
+++ b/neonView/LeadimportDocEdit_view/LeadimportDocEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LeadimportDocEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/LeadimportEdit_view/LeadimportEdit_view.aod b/neonView/LeadimportEdit_view/LeadimportEdit_view.aod
index 317814aa5adab84fd8ba7cbcc93bac9046d35a67..c91a0f5675bc48f3a39e32c37b8eda2390826b85 100644
--- a/neonView/LeadimportEdit_view/LeadimportEdit_view.aod
+++ b/neonView/LeadimportEdit_view/LeadimportEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LeadimportEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/LeadimportFilter_view/LeadimportFilter_view.aod b/neonView/LeadimportFilter_view/LeadimportFilter_view.aod
index 111d9ee2c1cdce3a3c7b90663c78d668a22e4538..3e22dae8dcc9dbd2598cc3bd9c2bbbd27d3cfbaa 100644
--- a/neonView/LeadimportFilter_view/LeadimportFilter_view.aod
+++ b/neonView/LeadimportFilter_view/LeadimportFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LeadimportFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -12,6 +12,7 @@
     <tableViewTemplate>
       <name>leadimports</name>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
       <columns>
         <neonTableColumn>
           <name>535f6d45-a69f-48ce-b58c-4aeb8955d8be</name>
@@ -35,31 +36,5 @@
         </neonTableColumn>
       </columns>
     </tableViewTemplate>
-    <treeTableViewTemplate>
-      <name>Treetable</name>
-      <entityField>#ENTITY</entityField>
-      <columns>
-        <neonTreeTableColumn>
-          <name>5b550d07-b92f-4429-a9f7-e18013aa3280</name>
-          <entityField>#IMAGE</entityField>
-        </neonTreeTableColumn>
-        <neonTreeTableColumn>
-          <name>e25d671d-50c8-4c77-9a2b-8214b0b87814</name>
-          <entityField>NAME</entityField>
-        </neonTreeTableColumn>
-        <neonTreeTableColumn>
-          <name>3ffd6131-6064-4ca2-958b-50f7eef0b3e1</name>
-          <entityField>IMPORTSOURCE</entityField>
-        </neonTreeTableColumn>
-        <neonTreeTableColumn>
-          <name>5fe0eed1-ed45-478d-b84e-ad65e1e5fd0a</name>
-          <entityField>LEADIMPORT_DATE</entityField>
-        </neonTreeTableColumn>
-        <neonTreeTableColumn>
-          <name>9563e615-fc93-406f-8cbb-2eceafc5bcc4</name>
-          <entityField>STATUS</entityField>
-        </neonTreeTableColumn>
-      </columns>
-    </treeTableViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/LeadimportLeadFilter_view/LeadimportLeadFilter_view.aod b/neonView/LeadimportLeadFilter_view/LeadimportLeadFilter_view.aod
index 5d7859d4cc1718a63c414706f9a2348d1f51d310..619914749e604c8777dead8285f7107834d55d75 100644
--- a/neonView/LeadimportLeadFilter_view/LeadimportLeadFilter_view.aod
+++ b/neonView/LeadimportLeadFilter_view/LeadimportLeadFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LeadimportLeadFilter_view</name>
   <title>Transfer data</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
@@ -17,6 +17,7 @@
       <actions>
         <element>LeadimportReset</element>
         <element>TransferData</element>
+        <element>ReloadTransferdData</element>
       </actions>
       <entityField>#ENTITY</entityField>
       <devices>
diff --git a/neonView/LeadimportLeadTempFilter_view/LeadimportLeadTempFilter_view.aod b/neonView/LeadimportLeadTempFilter_view/LeadimportLeadTempFilter_view.aod
index 6ec6b4bb48e5c1e8656ee8b9726dcf7454385642..de58322772769f212a2fbbafd0224bd2c52a0572 100644
--- a/neonView/LeadimportLeadTempFilter_view/LeadimportLeadTempFilter_view.aod
+++ b/neonView/LeadimportLeadTempFilter_view/LeadimportLeadTempFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LeadimportLeadTempFilter_view</name>
   <title>Import Daten</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/LeadimportLog_view/LeadimportLog_view.aod b/neonView/LeadimportLog_view/LeadimportLog_view.aod
index 950120edca9d3838192fb9df1c7ad2447fb4c5c0..e875000bd8c88220d80e344635dba6bf57a05f75 100644
--- a/neonView/LeadimportLog_view/LeadimportLog_view.aod
+++ b/neonView/LeadimportLog_view/LeadimportLog_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LeadimportLog_view</name>
   <title>Logs</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/LeadimportMain_view/LeadimportMain_view.aod b/neonView/LeadimportMain_view/LeadimportMain_view.aod
index 3cbee3d28bfd15e87892add5f422caf6f7d3116e..21dca8795337ccaec37844efc65f29311ff46e40 100644
--- a/neonView/LeadimportMain_view/LeadimportMain_view.aod
+++ b/neonView/LeadimportMain_view/LeadimportMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LeadimportMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/LeadimportMappingAssistantFilter_view/LeadimportMappingAssistantFilter_view.aod b/neonView/LeadimportMappingAssistantFilter_view/LeadimportMappingAssistantFilter_view.aod
index 0a32f33679c773b9301205153d56d3e8daf8c631..ad8763a3f5bab961c81128d458f0807074f5045f 100644
--- a/neonView/LeadimportMappingAssistantFilter_view/LeadimportMappingAssistantFilter_view.aod
+++ b/neonView/LeadimportMappingAssistantFilter_view/LeadimportMappingAssistantFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LeadimportMappingAssistantFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/LeadimportPreview_view/LeadimportPreview_view.aod b/neonView/LeadimportPreview_view/LeadimportPreview_view.aod
index 4e376d9f72a06e405dcbb8f176b68e93d5ecc93e..ea44c29aa4a8ffe68c7c0fa0dfd269d76e63e85b 100644
--- a/neonView/LeadimportPreview_view/LeadimportPreview_view.aod
+++ b/neonView/LeadimportPreview_view/LeadimportPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LeadimportPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="false" />
diff --git a/neonView/LetterEdit_view/LetterEdit_view.aod b/neonView/LetterEdit_view/LetterEdit_view.aod
index 5f77590bb269118a0a01ecfdee2b6b0f8f969432..2bfbb04c28997e74b30f66de580c6e0cfef6ab58 100644
--- a/neonView/LetterEdit_view/LetterEdit_view.aod
+++ b/neonView/LetterEdit_view/LetterEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LetterEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/LetterRecipientEdit_view/LetterRecipientEdit_view.aod b/neonView/LetterRecipientEdit_view/LetterRecipientEdit_view.aod
index 6bb0a1766a827bc1c3aca1b73ee207cc58d96acf..d3af86ff217a3b744192a7c78f1318f3253cb642 100644
--- a/neonView/LetterRecipientEdit_view/LetterRecipientEdit_view.aod
+++ b/neonView/LetterRecipientEdit_view/LetterRecipientEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LetterRecipientEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/LetterRecipientFilter_view/LetterRecipientFilter_view.aod b/neonView/LetterRecipientFilter_view/LetterRecipientFilter_view.aod
index 2527705649e2aacea831bb62b2f8c4f1d4618b92..a8cc9e21bbd4aafbea9b94870ef658a4ecdc64b2 100644
--- a/neonView/LetterRecipientFilter_view/LetterRecipientFilter_view.aod
+++ b/neonView/LetterRecipientFilter_view/LetterRecipientFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LetterRecipientFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -11,10 +11,10 @@
   <children>
     <tableViewTemplate>
       <name>Table</name>
-      <favoriteActionGroup1>recipientActions</favoriteActionGroup1>
       <inlineEdit v="true" />
-      <entityField>#ENTITY</entityField>
       <autoNewRow v="true" />
+      <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>recipientActions</favoriteActionGroup1>
       <columns>
         <neonTableColumn>
           <name>780af131-1a5e-48f2-b97f-2613295f2373</name>
@@ -32,8 +32,8 @@
     </tableViewTemplate>
     <treeTableViewTemplate>
       <name>Treetable</name>
-      <favoriteActionGroup1>recipientActions</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>recipientActions</favoriteActionGroup1>
       <columns>
         <neonTreeTableColumn>
           <name>f338176b-7bc3-4d4c-94cb-304e7e2bd6ed</name>
diff --git a/neonView/LogHistoryFilterDrawer_view/LogHistoryFilterDrawer_view.aod b/neonView/LogHistoryFilterDrawer_view/LogHistoryFilterDrawer_view.aod
index 0c329f2bd4dbfc96cf6f22562fbada815a3a91b3..b9e464ec96f44ccea050c5e3108a3265f57a179b 100644
--- a/neonView/LogHistoryFilterDrawer_view/LogHistoryFilterDrawer_view.aod
+++ b/neonView/LogHistoryFilterDrawer_view/LogHistoryFilterDrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LogHistoryFilterDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/LogHistoryFilter_view/LogHistoryFilter_view.aod b/neonView/LogHistoryFilter_view/LogHistoryFilter_view.aod
index 046d2f8787fa44504542c665a131526969cb6c25..77c970012a1efddc320c0db4e5c22126e03133a6 100644
--- a/neonView/LogHistoryFilter_view/LogHistoryFilter_view.aod
+++ b/neonView/LogHistoryFilter_view/LogHistoryFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LogHistoryFilter_view</name>
   <title>Log</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
@@ -12,22 +12,22 @@
   <children>
     <timelineViewTemplate>
       <name>LogHistoryTimeLine</name>
-      <favoriteActionGroup1>Reloading_actionGroup</favoriteActionGroup1>
       <dateField>DATE_NEW</dateField>
       <titleField>USER_NEW</titleField>
       <descriptionField>DESCRIPTION</descriptionField>
       <iconIdField>#IMAGE</iconIdField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>Reloading_actionGroup</favoriteActionGroup1>
     </timelineViewTemplate>
     <tableViewTemplate>
       <name>LogHistoryTable</name>
-      <favoriteActionGroup1>Reloading_actionGroup</favoriteActionGroup1>
       <hideContentSearch v="true" />
       <iconField>#IMAGE</iconField>
       <titleField>DATE_NEW</titleField>
       <subtitleField>USER_NEW</subtitleField>
       <descriptionField>DESCRIPTION</descriptionField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>Reloading_actionGroup</favoriteActionGroup1>
       <isEditable v="false" />
       <columns>
         <neonTableColumn>
@@ -46,8 +46,8 @@
     </tableViewTemplate>
     <treeTableViewTemplate>
       <name>Treetable</name>
-      <favoriteActionGroup1>Reloading_actionGroup</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>Reloading_actionGroup</favoriteActionGroup1>
       <columns>
         <neonTreeTableColumn>
           <name>dd9a98c1-3f6e-4bc5-b0bf-272b37112214</name>
diff --git a/neonView/LogHistoryPreview_view/LogHistoryPreview_view.aod b/neonView/LogHistoryPreview_view/LogHistoryPreview_view.aod
index 3ea10300b8edfe35b2ce7d5a8691ccf43db2dfb5..4a4632ff15e12a4bee9ab5d31db7ad7ff55203a6 100644
--- a/neonView/LogHistoryPreview_view/LogHistoryPreview_view.aod
+++ b/neonView/LogHistoryPreview_view/LogHistoryPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>LogHistoryPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/MSTTeamChannelEdit_view/MSTTeamChannelEdit_view.aod b/neonView/MSTTeamChannelEdit_view/MSTTeamChannelEdit_view.aod
index 360a058b7da85822fb6a96554cf0f115a0544bdd..7bc6b98e1de9c6015fe82e48d2d4c5b1b4171f2e 100644
--- a/neonView/MSTTeamChannelEdit_view/MSTTeamChannelEdit_view.aod
+++ b/neonView/MSTTeamChannelEdit_view/MSTTeamChannelEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>MSTTeamChannelEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/MSTTeamEditMembers_view/MSTTeamEditMembers_view.aod b/neonView/MSTTeamEditMembers_view/MSTTeamEditMembers_view.aod
index 37d7d19c88676efb49726f9379135fb47d9b773b..49a58b14aac140e3dd338dc2a934d39ff2e25a15 100644
--- a/neonView/MSTTeamEditMembers_view/MSTTeamEditMembers_view.aod
+++ b/neonView/MSTTeamEditMembers_view/MSTTeamEditMembers_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>MSTTeamEditMembers_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/MSTTeamEdit_view/MSTTeamEdit_view.aod b/neonView/MSTTeamEdit_view/MSTTeamEdit_view.aod
index 867c7a8fa0781b02c4be6a992d28fe003aee072e..de78ef8270f391383fabf5790b874dde6e57ec63 100644
--- a/neonView/MSTTeamEdit_view/MSTTeamEdit_view.aod
+++ b/neonView/MSTTeamEdit_view/MSTTeamEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>MSTTeamEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/MSTTeamLinkEdit_view/MSTTeamLinkEdit_view.aod b/neonView/MSTTeamLinkEdit_view/MSTTeamLinkEdit_view.aod
index acb23701eb4624489a77cb6df3e3fec50ff5d044..b3ce9642c95bd0bd6f3d72802cae3a46da66d829 100644
--- a/neonView/MSTTeamLinkEdit_view/MSTTeamLinkEdit_view.aod
+++ b/neonView/MSTTeamLinkEdit_view/MSTTeamLinkEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>MSTTeamLinkEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/MSTTeamMemberList_view/MSTTeamMemberList_view.aod b/neonView/MSTTeamMemberList_view/MSTTeamMemberList_view.aod
index 55a8b3dda3b706015a093a6e6dbf091169bcbd0e..bd015c2363c7144d64feeb2b41720c8ac82cd772 100644
--- a/neonView/MSTTeamMemberList_view/MSTTeamMemberList_view.aod
+++ b/neonView/MSTTeamMemberList_view/MSTTeamMemberList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>MSTTeamMemberList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -12,8 +12,8 @@
       <name>List</name>
       <entityField>#ENTITY</entityField>
       <isDeletable v="false" />
-      <isEditable v="false" />
       <isCreatable v="false" />
+      <isEditable v="false" />
       <columns>
         <neonTitledListTableColumn>
           <name>ea5cdf04-7476-46f0-9df7-41d66e24acad</name>
diff --git a/neonView/MSTTeamMemberMultiEdit_view/MSTTeamMemberMultiEdit_view.aod b/neonView/MSTTeamMemberMultiEdit_view/MSTTeamMemberMultiEdit_view.aod
index ec552dc14c2183eded087d2c4bd16b96b48f811c..d0b7385720860123a095e52453864b2d0b8fbc13 100644
--- a/neonView/MSTTeamMemberMultiEdit_view/MSTTeamMemberMultiEdit_view.aod
+++ b/neonView/MSTTeamMemberMultiEdit_view/MSTTeamMemberMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>MSTTeamMemberMultiEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/MSTTeamPreview_view/MSTTeamPreview_view.aod b/neonView/MSTTeamPreview_view/MSTTeamPreview_view.aod
index d543b83e6b155c551862a056956144c0f9c73974..8ad34d5058cfde683cb25e1f0f7ac62cb3e3eaee 100644
--- a/neonView/MSTTeamPreview_view/MSTTeamPreview_view.aod
+++ b/neonView/MSTTeamPreview_view/MSTTeamPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>MSTTeamPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/MSTeamsActivityImportEdit_view/MSTeamsActivityImportEdit_view.aod b/neonView/MSTeamsActivityImportEdit_view/MSTeamsActivityImportEdit_view.aod
index cd543c363d5dc8785a8aeaf4285a3103f87b3a2d..f62b45af2915f89c2845d6ef69f1127f3a6c397e 100644
--- a/neonView/MSTeamsActivityImportEdit_view/MSTeamsActivityImportEdit_view.aod
+++ b/neonView/MSTeamsActivityImportEdit_view/MSTeamsActivityImportEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>MSTeamsActivityImportEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>NORMAL</size>
diff --git a/neonView/MSTeamsChannelList_view/MSTeamsChannelList_view.aod b/neonView/MSTeamsChannelList_view/MSTeamsChannelList_view.aod
index 514bf2098ee894329ce406bb16c1772df6baca31..4680aabfb2591078690fc5a3c0e4f1be8bb3ff10 100644
--- a/neonView/MSTeamsChannelList_view/MSTeamsChannelList_view.aod
+++ b/neonView/MSTeamsChannelList_view/MSTeamsChannelList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>MSTeamsChannelList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -12,8 +12,8 @@
       <name>ChannelList</name>
       <entityField>#ENTITY</entityField>
       <isDeletable v="false" />
-      <isEditable v="false" />
       <isCreatable v="false" />
+      <isEditable v="false" />
       <columns>
         <neonTitledListTableColumn>
           <name>04b88bd4-22f4-4640-a4ff-26d90bc48437</name>
diff --git a/neonView/MSTeamsDocumentEdit_view/MSTeamsDocumentEdit_view.aod b/neonView/MSTeamsDocumentEdit_view/MSTeamsDocumentEdit_view.aod
index bc7e317b3b8e1b0445d4fc5c057b5c1687a72ba1..6417cd0609663b6eadde336c6e085f151953ca86 100644
--- a/neonView/MSTeamsDocumentEdit_view/MSTeamsDocumentEdit_view.aod
+++ b/neonView/MSTeamsDocumentEdit_view/MSTeamsDocumentEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>MSTeamsDocumentEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/MSTeamsMessageFilter_view/MSTeamsMessageFilter_view.aod b/neonView/MSTeamsMessageFilter_view/MSTeamsMessageFilter_view.aod
index 14b4fcec5a5044d3572264103fc4888e28f3dbb7..13c8fe42c2b6986e8079fd2263269a8c94a8a35b 100644
--- a/neonView/MSTeamsMessageFilter_view/MSTeamsMessageFilter_view.aod
+++ b/neonView/MSTeamsMessageFilter_view/MSTeamsMessageFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>MSTeamsMessageFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/MarketingWorkflowLauncherEdit_view/MarketingWorkflowLauncherEdit_view.aod b/neonView/MarketingWorkflowLauncherEdit_view/MarketingWorkflowLauncherEdit_view.aod
index 8fe83127e05c62b24ba0fc5ec71929cea5e39df0..251902906a051ebae83b2af60ca8582cbf7f3cb1 100644
--- a/neonView/MarketingWorkflowLauncherEdit_view/MarketingWorkflowLauncherEdit_view.aod
+++ b/neonView/MarketingWorkflowLauncherEdit_view/MarketingWorkflowLauncherEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>MarketingWorkflowLauncherEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/MemberDrawer_view/MemberDrawer_view.aod b/neonView/MemberDrawer_view/MemberDrawer_view.aod
index cfe7ea4229c7d1b0262ef5d40c9162c3d3e9a2d9..ad3fd3ab854356a5ccac31e96ce4fbc08c12bbae 100644
--- a/neonView/MemberDrawer_view/MemberDrawer_view.aod
+++ b/neonView/MemberDrawer_view/MemberDrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>MemberDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/MemberEdit_view/MemberEdit_view.aod b/neonView/MemberEdit_view/MemberEdit_view.aod
index d87d067090a65f8cfca284782ffe693ce7d5de51..36af10ae4bb0700b7867288b13e92db5b6d668a6 100644
--- a/neonView/MemberEdit_view/MemberEdit_view.aod
+++ b/neonView/MemberEdit_view/MemberEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>MemberEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/MemberFilter_view/MemberFilter_view.aod b/neonView/MemberFilter_view/MemberFilter_view.aod
index a6d4fe216729cc8a8b24efa7e59b2be3d7bce881..cb5da3bf207051bf6441d349bfb64a6f2b70bd94 100644
--- a/neonView/MemberFilter_view/MemberFilter_view.aod
+++ b/neonView/MemberFilter_view/MemberFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>MemberFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -11,13 +11,13 @@
   <children>
     <tableViewTemplate>
       <name>Members</name>
-      <favoriteActionGroup1></favoriteActionGroup1>
-      <favoriteActionGroup2>MSTeamsActionGroup</favoriteActionGroup2>
       <iconField>IMAGE</iconField>
       <titleField>PERSON_FULL_NAME</titleField>
       <subtitleField>CONTACTROLE</subtitleField>
       <descriptionField>ORGANISATION_NAME</descriptionField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1></favoriteActionGroup1>
+      <favoriteActionGroup2>MSTeamsActionGroup</favoriteActionGroup2>
       <linkedColumns />
       <fixedFilterFields />
       <columns>
diff --git a/neonView/MemberLookup_view/MemberLookup_view.aod b/neonView/MemberLookup_view/MemberLookup_view.aod
index 705d1bde99d65b3ae89851d393e22ea17667ee69..7fb657b811a96a618738283ff46533b505e7e94b 100644
--- a/neonView/MemberLookup_view/MemberLookup_view.aod
+++ b/neonView/MemberLookup_view/MemberLookup_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>MemberLookup_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ModuleTree_view/ModuleTree_view.aod b/neonView/ModuleTree_view/ModuleTree_view.aod
index 837a6f7608c0ec636eae13e5d835a763c0c8d283..48d4717055628dc298db310ab8761414da2859f1 100644
--- a/neonView/ModuleTree_view/ModuleTree_view.aod
+++ b/neonView/ModuleTree_view/ModuleTree_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ModuleTree_view</name>
   <title>Tree</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
@@ -12,11 +12,11 @@
     <treeViewTemplate>
       <name>Modules</name>
       <parentField>PARENT_ID</parentField>
-      <favoriteActionGroup3></favoriteActionGroup3>
       <titleField>TITLE</titleField>
       <descriptionField>DESCRIPTION</descriptionField>
       <iconField>ICON</iconField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup3></favoriteActionGroup3>
       <title></title>
     </treeViewTemplate>
   </children>
diff --git a/neonView/MyDashboardScoreCard_view/MyDashboardScoreCard_view.aod b/neonView/MyDashboardScoreCard_view/MyDashboardScoreCard_view.aod
index 2c2b62c43e2b9117a8b95aeaa0c72d42a74647d1..202267cd50f060e9986b06cd886c3138a538401e 100644
--- a/neonView/MyDashboardScoreCard_view/MyDashboardScoreCard_view.aod
+++ b/neonView/MyDashboardScoreCard_view/MyDashboardScoreCard_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>MyDashboardScoreCard_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <dashletConfigurations>
diff --git a/neonView/MyTurnoverForecastScoreCard_view/MyTurnoverForecastScoreCard_view.aod b/neonView/MyTurnoverForecastScoreCard_view/MyTurnoverForecastScoreCard_view.aod
index 7285d5d827657d2b559f8420f5e0156e946f74a5..2c67b8c90a7d9a4c44ee74913267712e898bc580 100644
--- a/neonView/MyTurnoverForecastScoreCard_view/MyTurnoverForecastScoreCard_view.aod
+++ b/neonView/MyTurnoverForecastScoreCard_view/MyTurnoverForecastScoreCard_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>MyTurnoverForecastScoreCard_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <dashletConfigurations>
diff --git a/neonView/NotificationFilter_view/NotificationFilter_view.aod b/neonView/NotificationFilter_view/NotificationFilter_view.aod
index 6517c2f9effa294e4d761b89fe839d69d84acef3..35d0b2c6cf579f0957cea817c9ea3919abef9050 100644
--- a/neonView/NotificationFilter_view/NotificationFilter_view.aod
+++ b/neonView/NotificationFilter_view/NotificationFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>NotificationFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -28,7 +28,6 @@
   <children>
     <timelineViewTemplate>
       <name>NotificationTimeline</name>
-      <favoriteActionGroup1>setNotificationState</favoriteActionGroup1>
       <dateField>CREATEDAY</dateField>
       <titleField>CAPTION</titleField>
       <descriptionField>DESCRIPTION</descriptionField>
@@ -36,11 +35,11 @@
       <iconIdField>ICON</iconIdField>
       <additionalInfoField>STATE</additionalInfoField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>setNotificationState</favoriteActionGroup1>
       <isEditable v="false" />
     </timelineViewTemplate>
     <tableViewTemplate>
       <name>NotificationTable</name>
-      <favoriteActionGroup1>setNotificationState</favoriteActionGroup1>
       <inlineEdit v="true" />
       <entryAction></entryAction>
       <iconField>ICON</iconField>
@@ -48,6 +47,7 @@
       <subtitleField>RESOLVEDPRIORITY</subtitleField>
       <descriptionField>DESCRIPTION</descriptionField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>setNotificationState</favoriteActionGroup1>
       <isEditable v="false" />
       <isSaveable v="false" />
       <informationField>SUBCATEGORY</informationField>
@@ -80,8 +80,8 @@
     </tableViewTemplate>
     <treeTableViewTemplate>
       <name>NotificationTreeTable</name>
-      <favoriteActionGroup1>setNotificationState</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>setNotificationState</favoriteActionGroup1>
       <isEditable v="false" />
       <columns>
         <neonTreeTableColumn>
diff --git a/neonView/NotificationPreview_view/NotificationPreview_view.aod b/neonView/NotificationPreview_view/NotificationPreview_view.aod
index e67f2f5699062888c2367683d63acd087f924809..589af6eb891f9ad04fad0833d9f9bb80d1aacb2f 100644
--- a/neonView/NotificationPreview_view/NotificationPreview_view.aod
+++ b/neonView/NotificationPreview_view/NotificationPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>NotificationPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="false" />
diff --git a/neonView/ObjectRelationTypeEdit_view/ObjectRelationTypeEdit_view.aod b/neonView/ObjectRelationTypeEdit_view/ObjectRelationTypeEdit_view.aod
index e354b3573f2c0e6a617136a1983c8b456b77cfa6..152976dbfdbfea4d9262362e0102352309c879bb 100644
--- a/neonView/ObjectRelationTypeEdit_view/ObjectRelationTypeEdit_view.aod
+++ b/neonView/ObjectRelationTypeEdit_view/ObjectRelationTypeEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ObjectRelationTypeEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/ObjectRelationTypeFilter_view/ObjectRelationTypeFilter_view.aod b/neonView/ObjectRelationTypeFilter_view/ObjectRelationTypeFilter_view.aod
index 9e6fa80dafd8382e7d758b5a939012c86d664edd..f68228187102de3ada2b41a26b945aa16c3fe261 100644
--- a/neonView/ObjectRelationTypeFilter_view/ObjectRelationTypeFilter_view.aod
+++ b/neonView/ObjectRelationTypeFilter_view/ObjectRelationTypeFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ObjectRelationTypeFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -10,10 +10,10 @@
   <children>
     <tableViewTemplate>
       <name>RelationTypes</name>
-      <favoriteActionGroup1>removeActionGroup</favoriteActionGroup1>
       <iconField>ICON</iconField>
       <subtitleField>SOURCE_OBJECT_TYPE</subtitleField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>removeActionGroup</favoriteActionGroup1>
       <columns>
         <neonTableColumn>
           <name>ba68e56c-a1fc-4ebe-b064-912428047a9e</name>
@@ -43,8 +43,8 @@
     </tableViewTemplate>
     <treeTableViewTemplate>
       <name>Treetable</name>
-      <favoriteActionGroup1>removeActionGroup</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>removeActionGroup</favoriteActionGroup1>
       <columns>
         <neonTreeTableColumn>
           <name>7a7dda46-ba05-4ec8-a95f-8de362f9b5dc</name>
diff --git a/neonView/ObjectTreeEdit_view/ObjectTreeEdit_view.aod b/neonView/ObjectTreeEdit_view/ObjectTreeEdit_view.aod
index 922ada4bc69f3589ee407b648469eb3d281f7fb2..4643f25f02e930ee31abbb6dddc56279b2e1dbab 100644
--- a/neonView/ObjectTreeEdit_view/ObjectTreeEdit_view.aod
+++ b/neonView/ObjectTreeEdit_view/ObjectTreeEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ObjectTreeEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/ObjectTreeFilter_view/ObjectTreeFilter_view.aod b/neonView/ObjectTreeFilter_view/ObjectTreeFilter_view.aod
index 3497cce9b4d21634068d93c6e65c3f3135056f3c..148e146480f06306665bcc4d44c298023c59798b 100644
--- a/neonView/ObjectTreeFilter_view/ObjectTreeFilter_view.aod
+++ b/neonView/ObjectTreeFilter_view/ObjectTreeFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ObjectTreeFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -12,13 +12,13 @@
     <treeViewTemplate>
       <name>ObjectRelations</name>
       <parentField>PARENT_ID</parentField>
-      <favoriteActionGroup1>alter</favoriteActionGroup1>
       <nodeExpandedField>EXPANDED</nodeExpandedField>
       <titleField>TITLE</titleField>
       <descriptionField>INFO</descriptionField>
       <iconField>ICON</iconField>
       <hideContentSearch v="true" />
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>alter</favoriteActionGroup1>
     </treeViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/ObservationEdit_view/ObservationEdit_view.aod b/neonView/ObservationEdit_view/ObservationEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..6de89791e0f557e7b7c4c2a0e1448200c5618906
--- /dev/null
+++ b/neonView/ObservationEdit_view/ObservationEdit_view.aod
@@ -0,0 +1,55 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>ObservationEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <size>SMALL</size>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>ObserverationEditGeneric</name>
+      <editMode v="true" />
+      <fields>
+        <entityFieldLink>
+          <name>f519c0bd-8c1c-4a8e-aba2-9bd94d70ccb0</name>
+          <entityField>OBSERVER</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>ac1990a8-fe10-4feb-93b2-7def0792c00f</name>
+          <entityField>OBJECT_TYPE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>dd066062-3aca-4caf-873e-64328178fe7f</name>
+          <entityField>OBJECT_ID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>2567d447-a473-4b30-a7a3-9d724f55521e</name>
+          <entityField>OBJECT_FILTER</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>86222081-5406-4a85-8c43-189166566ed1</name>
+          <entityField>OBJECT_FIELD</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>d5f4cb5d-c70d-46fd-ab78-bef71a205f37</name>
+          <entityField>TRIGGEREVENTINSERT</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>ba0cde17-7efb-481f-ae6c-6a75c2d41451</name>
+          <entityField>TRIGGEREVENTUPDATE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>c545362b-42d8-4cd5-83c8-9e4f2426c4ca</name>
+          <entityField>TRIGGEREVENTDELETE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>c6fa82e2-5830-46c5-9127-e273ddf5a194</name>
+          <entityField>NOTIFICATION_PRIO</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ObservationFilter_view/ObservationFilter_view.aod b/neonView/ObservationFilter_view/ObservationFilter_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..b17d094f4cf58ffcccc1d33423d38a7692489a89
--- /dev/null
+++ b/neonView/ObservationFilter_view/ObservationFilter_view.aod
@@ -0,0 +1,58 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>ObservationFilter_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterable v="true" />
+  <dashletConfigurations>
+    <neonDashletConfiguration>
+      <name>neonDashletConfiguration</name>
+      <title>Observations</title>
+      <description>Shows all your Observations</description>
+      <fragment>Observation/filter</fragment>
+      <storeRoles />
+      <icon>VAADIN:EYE</icon>
+      <categories>
+        <neonDashletCategory>
+          <name>Notifications</name>
+          <title>Notifications</title>
+        </neonDashletCategory>
+        <neonDashletCategory>
+          <name>Observations</name>
+          <title>Observations</title>
+        </neonDashletCategory>
+      </categories>
+      <parameters>
+        <neonDashletParameter>
+          <name>OnlyMyObservations_param</name>
+          <value>true</value>
+        </neonDashletParameter>
+      </parameters>
+    </neonDashletConfiguration>
+  </dashletConfigurations>
+  <layout>
+    <groupLayout>
+      <name>layout</name>
+    </groupLayout>
+  </layout>
+  <children>
+    <treeTableViewTemplate>
+      <name>ObservationFilterTreeTable</name>
+      <parentField>OBSERVATION_ID</parentField>
+      <favoriteActionGroup1>FilterActions</favoriteActionGroup1>
+      <columns>
+        <neonTreeTableColumn>
+          <name>41441cfe-e8cb-4529-ac79-3f2beeb46232</name>
+          <entityField>OBJECT_TYPE</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>b92aecdb-2cb8-4dfb-bae4-0fde375a58a7</name>
+          <entityField>NOTIFICATION_PRIO</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>6f6f11b5-0755-413c-953c-4ee4a55d9e66</name>
+          <entityField>observationType</entityField>
+        </neonTreeTableColumn>
+      </columns>
+    </treeTableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ObservationPreview_view/ObservationPreview_view.aod b/neonView/ObservationPreview_view/ObservationPreview_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..3099234bd8a29475995dcb371421e1411570cf0b
--- /dev/null
+++ b/neonView/ObservationPreview_view/ObservationPreview_view.aod
@@ -0,0 +1,55 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>ObservationPreview_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <headerFooterLayout>
+      <name>layout</name>
+      <header>ObservationPreviewCard</header>
+      <footer>ObservationPreviewScoreCard</footer>
+    </headerFooterLayout>
+  </layout>
+  <children>
+    <scoreCardViewTemplate>
+      <name>ObservationPreviewScoreCard</name>
+      <fields>
+        <entityFieldLink>
+          <name>2bd25a93-05e7-4e1d-802c-6021ee0abbb7</name>
+          <entityField>TRIGGEREVENTINSERT</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>218807ea-2dca-478c-bf2c-9e1b9f1fe028</name>
+          <entityField>TRIGGEREVENTUPDATE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>b4df872e-2991-4eba-b872-7d2a359e1481</name>
+          <entityField>TRIGGEREVENTDELETE</entityField>
+        </entityFieldLink>
+      </fields>
+    </scoreCardViewTemplate>
+    <cardViewTemplate>
+      <name>ObservationPreviewCard</name>
+      <titleField>OBJECT_TYPE</titleField>
+      <subtitleField>NOTIFICATION_PRIO</subtitleField>
+    </cardViewTemplate>
+    <genericViewTemplate>
+      <name>ObservationPreviewGeneric</name>
+      <showDrawer v="true" />
+      <hideEmptyFields v="true" />
+      <fields>
+        <entityFieldLink>
+          <name>60d02f92-f82a-4496-835f-a84ac0aaba61</name>
+          <entityField>OBJECT_ID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>c8063a70-4772-4dda-81da-c587ab810c3b</name>
+          <entityField>OBJECT_FILTER</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>9b767452-e034-4e2a-be2d-e038137666b3</name>
+          <entityField>OBJECT_FIELD</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/OfferCoverLetter_view/OfferCoverLetter_view.aod b/neonView/OfferCoverLetter_view/OfferCoverLetter_view.aod
index 667dadc02c646fcc7a5246c0375ab24cd93235c2..bb90fff30a3f3058ead54c485693dd1d14d97953 100644
--- a/neonView/OfferCoverLetter_view/OfferCoverLetter_view.aod
+++ b/neonView/OfferCoverLetter_view/OfferCoverLetter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OfferCoverLetter_view</name>
   <title>Cover letter</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/OfferDrawer_view/OfferDrawer_view.aod b/neonView/OfferDrawer_view/OfferDrawer_view.aod
index b6445f06f7144f29b40eb72b946f40352c23901b..543c71098a81415fd16412fdca4d4e3acfbab204 100644
--- a/neonView/OfferDrawer_view/OfferDrawer_view.aod
+++ b/neonView/OfferDrawer_view/OfferDrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OfferDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/OfferEdit_view/OfferEdit_view.aod b/neonView/OfferEdit_view/OfferEdit_view.aod
index 7d489489df27db7e454a213ef456d153010f108b..a5728d886f9082a66ceebc9f0ae867eeb7c3445e 100644
--- a/neonView/OfferEdit_view/OfferEdit_view.aod
+++ b/neonView/OfferEdit_view/OfferEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OfferEdit_view</name>
   <title>Offer</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/OfferFilter_view/OfferFilter_view.aod b/neonView/OfferFilter_view/OfferFilter_view.aod
index 3e058b7c388417269c73cd30d2ad9e2000be1064..f0ca240b047361acd9f1b322a2e49f72560369f2 100644
--- a/neonView/OfferFilter_view/OfferFilter_view.aod
+++ b/neonView/OfferFilter_view/OfferFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OfferFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -56,6 +56,7 @@
       <subtitleField>STATUS</subtitleField>
       <descriptionField>NET</descriptionField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
       <linkedColumns>
         <element>FullOfferCode</element>
       </linkedColumns>
@@ -97,6 +98,7 @@
     <treeTableViewTemplate>
       <name>TreeTable</name>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
       <linkedColumns>
         <element>FullOfferCode</element>
       </linkedColumns>
diff --git a/neonView/OfferMain_view/OfferMain_view.aod b/neonView/OfferMain_view/OfferMain_view.aod
index e19b4151c282f37babdb6ae42323086db38f824e..2010f32c7d27ac1e66b86c24284e11fed94dc821 100644
--- a/neonView/OfferMain_view/OfferMain_view.aod
+++ b/neonView/OfferMain_view/OfferMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OfferMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/OfferPreviewMultiple_view/OfferPreviewMultiple_view.aod b/neonView/OfferPreviewMultiple_view/OfferPreviewMultiple_view.aod
index 44610fe33c49fdcfb14991a4786f970603a8d240..815171e377a0e13cea23551d3e192c30947de4b8 100644
--- a/neonView/OfferPreviewMultiple_view/OfferPreviewMultiple_view.aod
+++ b/neonView/OfferPreviewMultiple_view/OfferPreviewMultiple_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OfferPreviewMultiple_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/OfferPreview_view/OfferPreview_view.aod b/neonView/OfferPreview_view/OfferPreview_view.aod
index d0e3891b5166dada85ca47fd9c06daa9df7b06ec..4639d6ac8a2101e9384797f8f97ab17527e9bdbf 100644
--- a/neonView/OfferPreview_view/OfferPreview_view.aod
+++ b/neonView/OfferPreview_view/OfferPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OfferPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/OfferReport_view/OfferReport_view.aod b/neonView/OfferReport_view/OfferReport_view.aod
index 6ac54d910d1596b8adc0956163c2e779e27efd33..e45d597ddb2923193934a41112c8c97ea6b9fdf8 100644
--- a/neonView/OfferReport_view/OfferReport_view.aod
+++ b/neonView/OfferReport_view/OfferReport_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OfferReport_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -11,8 +11,8 @@
     <reportViewTemplate>
       <name>Report</name>
       <reportData>OFFER_REPORT_DATA</reportData>
-      <favoriteActionGroup1>offerReportDispatch</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>offerReportDispatch</favoriteActionGroup1>
     </reportViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/OfferitemEdit_view/OfferitemEdit_view.aod b/neonView/OfferitemEdit_view/OfferitemEdit_view.aod
index b249c4127083a8fe0539db54d714c517a64e5081..0c19ce2dd173c2aeb2d075a287a54929bbc00f36 100644
--- a/neonView/OfferitemEdit_view/OfferitemEdit_view.aod
+++ b/neonView/OfferitemEdit_view/OfferitemEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OfferitemEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/OfferitemFilter_view/OfferitemFilter_view.aod b/neonView/OfferitemFilter_view/OfferitemFilter_view.aod
index cd9156a57cc2dd16a96648a25f31a705d7f0ca8e..5986ce5aa6e394d55b2bb6249d6b72a983262e41 100644
--- a/neonView/OfferitemFilter_view/OfferitemFilter_view.aod
+++ b/neonView/OfferitemFilter_view/OfferitemFilter_view.aod
@@ -1,14 +1,81 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OfferitemFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
   <layout>
-    <boxLayout>
+    <groupLayout>
       <name>layout</name>
-    </boxLayout>
+    </groupLayout>
   </layout>
   <children>
+    <multiEditTableViewTemplate>
+      <name>OfferItemsMultiEditTable</name>
+      <editableColumns>
+        <element>PRICE</element>
+        <element>QUANTITY</element>
+        <element>DISCOUNT</element>
+      </editableColumns>
+      <columns>
+        <neonTreeTableColumn>
+          <name>91e85f61-5e5d-48f8-aeb1-a5740ec07e25</name>
+          <entityField>ITEMPOSITION</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>0d896874-cdb1-42bb-8a47-8ee61def6177</name>
+          <entityField>PRODUCT_ID</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>0b493fd0-d94d-4bfa-8533-ff2ad4af7ffb</name>
+          <entityField>QUANTITY</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>917406b8-f030-417d-a961-f391655526ec</name>
+          <entityField>UNIT</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>9e2bcb7e-b042-4f13-946c-0a6422412975</name>
+          <entityField>VAT</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>14da5a9f-4fed-4977-aec0-823ab665e1cb</name>
+          <entityField>PRICE</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>25d9f682-eb5f-4d96-a040-c3f4522affe7</name>
+          <entityField>DISCOUNT</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>7a3b3ce6-a651-4a2a-acfa-0e990fb0b041</name>
+          <entityField>OPTIONAL</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>e43213db-8867-495f-8305-3472a8906222</name>
+          <entityField>TotalPrice</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>ee165147-d91b-4d87-bd8a-90428d6f52be</name>
+          <entityField>INFO</entityField>
+        </neonTreeTableColumn>
+      </columns>
+      <editRendererMapping>
+        <rendererMappingEntry>
+          <name>579b1348-58b1-47a8-8f0d-332945d15122</name>
+          <fieldName>PRICE</fieldName>
+          <renderer>numberInput</renderer>
+        </rendererMappingEntry>
+        <rendererMappingEntry>
+          <name>1a439191-22f0-478f-92bd-a652c2de98a0</name>
+          <fieldName>QUANTITY</fieldName>
+          <renderer>numberInput</renderer>
+        </rendererMappingEntry>
+        <rendererMappingEntry>
+          <name>90aea544-f379-4c3f-a806-0240fc9944c5</name>
+          <fieldName>DISCOUNT</fieldName>
+          <renderer>discount</renderer>
+        </rendererMappingEntry>
+      </editRendererMapping>
+    </multiEditTableViewTemplate>
     <treeTableViewTemplate>
       <name>OfferitemsTreeTable</name>
       <entityField>#ENTITY</entityField>
diff --git a/neonView/OfferitemMultiEdit_view/OfferitemMultiEdit_view.aod b/neonView/OfferitemMultiEdit_view/OfferitemMultiEdit_view.aod
index 7e027e2fc7fd8c34af2db43345aa8149874824be..3931678d959d2a94982c9d558b92763f02d21dec 100644
--- a/neonView/OfferitemMultiEdit_view/OfferitemMultiEdit_view.aod
+++ b/neonView/OfferitemMultiEdit_view/OfferitemMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OfferitemMultiEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/OfferitemPreview_view/OfferitemPreview_view.aod b/neonView/OfferitemPreview_view/OfferitemPreview_view.aod
index 3805f9a7120e5a727b9aae12a093697b62eaf9b8..9f7d0ff44999ccea8629701d9bca1874b4b75bb6 100644
--- a/neonView/OfferitemPreview_view/OfferitemPreview_view.aod
+++ b/neonView/OfferitemPreview_view/OfferitemPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OfferitemPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/OrderAddress_view/OrderAddress_view.aod b/neonView/OrderAddress_view/OrderAddress_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..59f34face384bd1a03421c4a7924c884311e403f
--- /dev/null
+++ b/neonView/OrderAddress_view/OrderAddress_view.aod
@@ -0,0 +1,52 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>OrderAddress_view</name>
+  <title>Address</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+      <direction>HORIZONTAL</direction>
+      <maxDirectionElements v="2" />
+      <autoHeight v="false" />
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>PaymentAddress</name>
+      <editMode v="false" />
+      <showDrawer v="true" />
+      <drawerCaption>Payment Address</drawerCaption>
+      <fixedDrawer v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>4064a2da-3ede-4a13-b1d6-2d07822ab451</name>
+          <entityField>ChosenPaymentAddress</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>a6cf6ba2-6865-4735-a1f4-c09e083995ba</name>
+          <entityField>PAYMENTADDRESS</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+    <genericViewTemplate>
+      <name>DeliveryAddress</name>
+      <editMode v="false" />
+      <showDrawer v="true" />
+      <drawerCaption>Delivery Address</drawerCaption>
+      <fixedDrawer v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>2e9298ca-38e4-4d8e-a20f-a0688a4c4b4e</name>
+          <entityField>ChosenDeliveryAddress</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>d2a2e6e9-069d-464b-aca5-d0c2cbee2c10</name>
+          <entityField>DELIVERYADDRESS</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/OrderCondition_view/OrderCondition_view.aod b/neonView/OrderCondition_view/OrderCondition_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..a7179fb5df70f4f82b40abe1f92b725ff568909c
--- /dev/null
+++ b/neonView/OrderCondition_view/OrderCondition_view.aod
@@ -0,0 +1,61 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>OrderCondition_view</name>
+  <title>Info</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+      <direction>HORIZONTAL</direction>
+      <maxDirectionElements v="2" />
+      <autoHeight v="true" />
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>Conditions</name>
+      <showDrawer v="true" />
+      <drawerCaption>Condition</drawerCaption>
+      <fixedDrawer v="true" />
+      <entityField>#ENTITY</entityField>
+      <title>Condition</title>
+      <fields>
+        <entityFieldLink>
+          <name>fdb5d3bd-d8cb-486f-b5dd-d39eade0184a</name>
+          <entityField>PAYMENTTERMS</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>c0db758d-be42-47bc-95f4-7ba00544b98c</name>
+          <entityField>DELIVERYTERMS</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>3644cf2a-508e-4adb-a821-f4bbe5975db2</name>
+          <entityField>PAYDUEDATE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>a15c9d22-3a20-49e7-a37b-c10443de106a</name>
+          <entityField>CURRENCY</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+    <genericViewTemplate>
+      <name>Information</name>
+      <showDrawer v="true" />
+      <drawerCaption>Information</drawerCaption>
+      <fixedDrawer v="true" />
+      <entityField>#ENTITY</entityField>
+      <title>Information</title>
+      <fields>
+        <entityFieldLink>
+          <name>ae0e3cd0-deb8-49e0-a0a1-c0212cb036e1</name>
+          <entityField>INFO</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+    <neonViewReference>
+      <name>437fca44-8d53-426d-b23c-4295acd92d57</name>
+      <entityField>#ENTITY</entityField>
+      <view>OrderAddress_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/OrderDetail_view/OrderDetail_view.aod b/neonView/OrderDetail_view/OrderDetail_view.aod
index df64544990c9918c2e4521789a5b07ced99f9587..2ce1a7ed62bd2d84b4fd6adc1915674e9bd4ded7 100644
--- a/neonView/OrderDetail_view/OrderDetail_view.aod
+++ b/neonView/OrderDetail_view/OrderDetail_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrderDetail_view</name>
   <title>Cover letter</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/OrderDunning_view/OrderDunning_view.aod b/neonView/OrderDunning_view/OrderDunning_view.aod
index 0a20b0fdb87726636ef6602445cb916027492bb3..a9ee6965dc972a0a52436da914c781e702834a06 100644
--- a/neonView/OrderDunning_view/OrderDunning_view.aod
+++ b/neonView/OrderDunning_view/OrderDunning_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrderDunning_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/OrderEdit_view/OrderEdit_view.aod b/neonView/OrderEdit_view/OrderEdit_view.aod
index e11f3390c8995c5511064190da120587eeb7c7ea..576ed09e070e3a3a4006d823f10de1c2cd198487 100644
--- a/neonView/OrderEdit_view/OrderEdit_view.aod
+++ b/neonView/OrderEdit_view/OrderEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrderEdit_view</name>
   <title>Receipt</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/OrderFilter_view/OrderFilter_view.aod b/neonView/OrderFilter_view/OrderFilter_view.aod
index c2afbae5ef609d323e04c8cef7455021e0f88def..8ad63a857793bfd2b7cc400fd6d7864ecfdca6fe 100644
--- a/neonView/OrderFilter_view/OrderFilter_view.aod
+++ b/neonView/OrderFilter_view/OrderFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrderFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -51,12 +51,13 @@
   <children>
     <tableViewTemplate>
       <name>Orders</name>
-      <inlineEdit v="true" />
+      <inlineEdit v="false" />
       <iconField>IMAGE</iconField>
       <titleField>SALESORDERCODE</titleField>
       <subtitleField>ORDERSTATUS</subtitleField>
       <descriptionField>NET</descriptionField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
       <linkedColumns>
         <element>SALESORDERCODE</element>
       </linkedColumns>
@@ -102,11 +103,12 @@
     </tableViewTemplate>
     <treeTableViewTemplate>
       <name>tree</name>
-      <defaultGroupFields />
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
       <linkedColumns>
         <element>SALESORDERCODE</element>
       </linkedColumns>
+      <defaultGroupFields />
       <fixedFilterFields />
       <columns>
         <neonTreeTableColumn>
diff --git a/neonView/OrderLink_view/OrderLink_view.aod b/neonView/OrderLink_view/OrderLink_view.aod
index f959375bf36879a1b1b3a4f7553eb962f4ad39d4..c70ac5d66db832b24065e15aec813127f41507f3 100644
--- a/neonView/OrderLink_view/OrderLink_view.aod
+++ b/neonView/OrderLink_view/OrderLink_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrderLink_view</name>
   <title>Links</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/OrderMain_view/OrderMain_view.aod b/neonView/OrderMain_view/OrderMain_view.aod
index eee65a63849ad2b53504f21d398e1a5c31218dfd..470461ecaeb0bffd66f046ebf529633ddcb672e3 100644
--- a/neonView/OrderMain_view/OrderMain_view.aod
+++ b/neonView/OrderMain_view/OrderMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrderMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -20,9 +20,14 @@
       <view>OrderitemFilter_view</view>
     </neonViewReference>
     <neonViewReference>
-      <name>07e7374d-8d52-4677-bbf3-dedd9c1d6ab1</name>
-      <entityField>Products</entityField>
-      <view>ProductFilter_view</view>
+      <name>28bc7bdd-f1d5-49dc-9afb-c2e72ed5410d</name>
+      <entityField>#ENTITY</entityField>
+      <view>OrderCondition_view</view>
+    </neonViewReference>
+    <neonViewReference>
+        <name>07e7374d-8d52-4677-bbf3-dedd9c1d6ab1</name>
+        <entityField>Products</entityField>
+        <view>ProductFilter_view</view>
     </neonViewReference>
     <neonViewReference>
       <name>1e0af6a9-9bb6-47b5-944b-636d21ac74d2</name>
diff --git a/neonView/OrderPaid_view/OrderPaid_view.aod b/neonView/OrderPaid_view/OrderPaid_view.aod
index 67d17a1b948fe34f88e3f50b5fdab14d543d8b4a..178b0008726d3c6718ffe5c128a7de1ffed90641 100644
--- a/neonView/OrderPaid_view/OrderPaid_view.aod
+++ b/neonView/OrderPaid_view/OrderPaid_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrderPaid_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/OrderPreview_view/OrderPreview_view.aod b/neonView/OrderPreview_view/OrderPreview_view.aod
index 449cb53093e44483cf3aa756620e62102d37d113..8710a68db4050c688bf06956d5603a725dd7fec9 100644
--- a/neonView/OrderPreview_view/OrderPreview_view.aod
+++ b/neonView/OrderPreview_view/OrderPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrderPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -55,14 +55,6 @@
           <name>22013ee3-0ea1-4830-affd-73429ebd18f5</name>
           <entityField>PAYDATE</entityField>
         </entityFieldLink>
-        <entityFieldLink>
-          <name>e58a3aab-0cd7-493f-a24e-ed9e30f970ce</name>
-          <entityField>PAYMENTTERMS</entityField>
-        </entityFieldLink>
-        <entityFieldLink>
-          <name>8f976c0e-f31d-4482-a8f7-7c93864f1815</name>
-          <entityField>DELIVERYTERMS</entityField>
-        </entityFieldLink>
         <entityFieldLink>
           <name>39a40fbb-b3af-49a2-8ce2-0ece7bbf6fda</name>
           <entityField>ORDERSTATUS</entityField>
diff --git a/neonView/OrderReminderReport_view/OrderReminderReport_view.aod b/neonView/OrderReminderReport_view/OrderReminderReport_view.aod
index 8c0ed255d69772395ea09018326fa4259b6eb61c..bd209e4db7cc5bdac3b5139820dfd6a0ee043da6 100644
--- a/neonView/OrderReminderReport_view/OrderReminderReport_view.aod
+++ b/neonView/OrderReminderReport_view/OrderReminderReport_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrderReminderReport_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -11,8 +11,8 @@
     <reportViewTemplate>
       <name>Report</name>
       <reportData>REMINDER_REPORT_DATA</reportData>
-      <favoriteActionGroup1>reminderReportDispatch</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>reminderReportDispatch</favoriteActionGroup1>
     </reportViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/OrderReport_view/OrderReport_view.aod b/neonView/OrderReport_view/OrderReport_view.aod
index 0f3487512ac3b724cd6ca4aaba79f0e7c92b5def..7be173a974410512e5e4de9c40b3f26d38cfc3f1 100644
--- a/neonView/OrderReport_view/OrderReport_view.aod
+++ b/neonView/OrderReport_view/OrderReport_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrderReport_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -11,9 +11,9 @@
     <reportViewTemplate>
       <name>Report</name>
       <reportData>ORDER_REPORT_DATA</reportData>
+      <entityField>#ENTITY</entityField>
       <favoriteActionGroup1>orderReportDispatch</favoriteActionGroup1>
       <favoriteActionGroup2></favoriteActionGroup2>
-      <entityField>#ENTITY</entityField>
     </reportViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/OrderitemEdit_view/OrderitemEdit_view.aod b/neonView/OrderitemEdit_view/OrderitemEdit_view.aod
index bcc6e174805d9a3f9f6d9289302c4141db0d380d..7d0898028183d97a94d5f0933592d02398e24d93 100644
--- a/neonView/OrderitemEdit_view/OrderitemEdit_view.aod
+++ b/neonView/OrderitemEdit_view/OrderitemEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrderitemEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/OrderitemFilter_view/OrderitemFilter_view.aod b/neonView/OrderitemFilter_view/OrderitemFilter_view.aod
index 4c6e8a7eac674bd309fbe4aefe1f9bda7c40bba0..bfdfcf077f69b819c2b1d69c38480cdcf7ff5bab 100644
--- a/neonView/OrderitemFilter_view/OrderitemFilter_view.aod
+++ b/neonView/OrderitemFilter_view/OrderitemFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrderitemFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -12,8 +12,8 @@
     <tableViewTemplate>
       <name>Orderitems</name>
       <inlineEdit v="false" />
-      <entityField>#ENTITY</entityField>
       <autoNewRow v="true" />
+      <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
           <name>8c74810d-d127-4e64-8fbf-1b3db1835232</name>
diff --git a/neonView/OrderitemMultiEdit_view/OrderitemMultiEdit_view.aod b/neonView/OrderitemMultiEdit_view/OrderitemMultiEdit_view.aod
index fd4c03d14d1b7bd3d8e75c28b0b66b0719acceca..708d17854c4c5e36cb20e545a5ff32d44644a3f5 100644
--- a/neonView/OrderitemMultiEdit_view/OrderitemMultiEdit_view.aod
+++ b/neonView/OrderitemMultiEdit_view/OrderitemMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrderitemMultiEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/OrderitemPreview_view/OrderitemPreview_view.aod b/neonView/OrderitemPreview_view/OrderitemPreview_view.aod
index 40a1e0eac488119ca9355c53de89d7ebaf82c856..4a4081bce85de573239dfad8ad8c1b998ffc1b29 100644
--- a/neonView/OrderitemPreview_view/OrderitemPreview_view.aod
+++ b/neonView/OrderitemPreview_view/OrderitemPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrderitemPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/OrganisationAttributeRestriction_view/OrganisationAttributeRestriction_view.aod b/neonView/OrganisationAttributeRestriction_view/OrganisationAttributeRestriction_view.aod
index b817d9e5a5762152b634d66afd7be95e41bdcf93..946e4932d34ce254e98376daadff0d7bae98bd40 100644
--- a/neonView/OrganisationAttributeRestriction_view/OrganisationAttributeRestriction_view.aod
+++ b/neonView/OrganisationAttributeRestriction_view/OrganisationAttributeRestriction_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrganisationAttributeRestriction_view</name>
   <title>Attributes</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/OrganisationClassification/OrganisationClassification.aod b/neonView/OrganisationClassification/OrganisationClassification.aod
index 9019bf34d2fc9a1c046f10134326513ba14eef59..d01a7d43a0f2e11b2024e5cbfd66cb2bee7ad40a 100644
--- a/neonView/OrganisationClassification/OrganisationClassification.aod
+++ b/neonView/OrganisationClassification/OrganisationClassification.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrganisationClassification</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/OrganisationClassificationDrawer_view/OrganisationClassificationDrawer_view.aod b/neonView/OrganisationClassificationDrawer_view/OrganisationClassificationDrawer_view.aod
index 3f81db3f2e4ff280a021b5b2b8b9271c3ebd5f19..83bd487910c7c79a5be7963674d0b703c93eb2e5 100644
--- a/neonView/OrganisationClassificationDrawer_view/OrganisationClassificationDrawer_view.aod
+++ b/neonView/OrganisationClassificationDrawer_view/OrganisationClassificationDrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrganisationClassificationDrawer_view</name>
   <title>Classifications</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/OrganisationClusterMain_view/OrganisationClusterMain_view.aod b/neonView/OrganisationClusterMain_view/OrganisationClusterMain_view.aod
index 22a28e8cd4062a26a185d95e7672eb386af80b47..72d99cac595e86b488e878b16d1a700b90746e48 100644
--- a/neonView/OrganisationClusterMain_view/OrganisationClusterMain_view.aod
+++ b/neonView/OrganisationClusterMain_view/OrganisationClusterMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrganisationClusterMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/OrganisationConditionPricelist_view/OrganisationConditionPricelist_view.aod b/neonView/OrganisationConditionPricelist_view/OrganisationConditionPricelist_view.aod
index 73db76aeba54cc11a95504d9e29ea58e7369873f..2a4c5be9bf1a65de26eca8de34e5b08470ce7791 100644
--- a/neonView/OrganisationConditionPricelist_view/OrganisationConditionPricelist_view.aod
+++ b/neonView/OrganisationConditionPricelist_view/OrganisationConditionPricelist_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrganisationConditionPricelist_view</name>
   <title>Conditions</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/OrganisationCondition_view/OrganisationCondition_view.aod b/neonView/OrganisationCondition_view/OrganisationCondition_view.aod
index b17a49016c29dd4507a2ffe907de216bf2dba92c..14afea607ab33f7e32ce95ef7800d3854afa3a46 100644
--- a/neonView/OrganisationCondition_view/OrganisationCondition_view.aod
+++ b/neonView/OrganisationCondition_view/OrganisationCondition_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrganisationCondition_view</name>
   <title>Conditions</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/OrganisationDuplicatesFilter_view/OrganisationDuplicatesFilter_view.aod b/neonView/OrganisationDuplicatesFilter_view/OrganisationDuplicatesFilter_view.aod
index dfe48ea0e80130096144fb4c611eb7691a16094e..c950c689201ccb9ecaf23a58f879058711e6c866 100644
--- a/neonView/OrganisationDuplicatesFilter_view/OrganisationDuplicatesFilter_view.aod
+++ b/neonView/OrganisationDuplicatesFilter_view/OrganisationDuplicatesFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrganisationDuplicatesFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -10,10 +10,10 @@
   <children>
     <tableViewTemplate>
       <name>OrganisationDuplicatesTable</name>
-      <favoriteActionGroup1>OrganisationOpenClusterDetailActionGroup</favoriteActionGroup1>
-      <favoriteActionGroup2>DuplicateClusterActionGroup</favoriteActionGroup2>
       <hideContentSearch v="true" />
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>OrganisationOpenClusterDetailActionGroup</favoriteActionGroup1>
+      <favoriteActionGroup2>DuplicateClusterActionGroup</favoriteActionGroup2>
       <isCreatable v="false" />
       <isDeletable v="false" />
       <isEditable v="false" />
diff --git a/neonView/OrganisationDuplicatesTab_view/OrganisationDuplicatesTab_view.aod b/neonView/OrganisationDuplicatesTab_view/OrganisationDuplicatesTab_view.aod
index 6ca9948b472ab1c99e2a53242a35ae95c902ff81..ed86c8059d4920b5576f13406c5d4d4f86597b71 100644
--- a/neonView/OrganisationDuplicatesTab_view/OrganisationDuplicatesTab_view.aod
+++ b/neonView/OrganisationDuplicatesTab_view/OrganisationDuplicatesTab_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrganisationDuplicatesTab_view</name>
   <title>Organisation duplicates</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/OrganisationEditDefaults_view/OrganisationEditDefaults_view.aod b/neonView/OrganisationEditDefaults_view/OrganisationEditDefaults_view.aod
index 70cc47cbd63e649e23277ff71e0c73332b0493fc..d5d389c73d47dae6048cb2b47f5e46fe97bb99c2 100644
--- a/neonView/OrganisationEditDefaults_view/OrganisationEditDefaults_view.aod
+++ b/neonView/OrganisationEditDefaults_view/OrganisationEditDefaults_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrganisationEditDefaults_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/OrganisationEdit_view/OrganisationEdit_view.aod b/neonView/OrganisationEdit_view/OrganisationEdit_view.aod
index 5a59c451c77ae1572ed36fc92ae2d97c156fa020..cf3a70c9a59119e3e829b6fe0acdc0b53b1a0d10 100644
--- a/neonView/OrganisationEdit_view/OrganisationEdit_view.aod
+++ b/neonView/OrganisationEdit_view/OrganisationEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrganisationEdit_view</name>
   <title>Company</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/OrganisationFilter_view/OrganisationFilter_view.aod b/neonView/OrganisationFilter_view/OrganisationFilter_view.aod
index 8fdf03af01df304cbc91a44895bc3912a2c3cc4b..7e177f506451f69addbbb9ce7681d37515ee36d3 100644
--- a/neonView/OrganisationFilter_view/OrganisationFilter_view.aod
+++ b/neonView/OrganisationFilter_view/OrganisationFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrganisationFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -49,10 +49,10 @@
   <children>
     <tableViewTemplate>
       <name>Organisations</name>
-      <favoriteActionGroup1>filterViewActionGroup</favoriteActionGroup1>
-      <favoriteActionGroup2>DuplicateActions</favoriteActionGroup2>
       <subtitleField>CUSTOMERCODE_DISPLAY_fieldGroup</subtitleField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>filterViewActionGroup</favoriteActionGroup1>
+      <favoriteActionGroup2>DuplicateActions</favoriteActionGroup2>
       <linkedColumns>
         <element>NAME</element>
       </linkedColumns>
@@ -98,9 +98,9 @@
     </tableViewTemplate>
     <treeTableViewTemplate>
       <name>Treetable</name>
+      <entityField>#ENTITY</entityField>
       <favoriteActionGroup1>filterViewActionGroup</favoriteActionGroup1>
       <favoriteActionGroup2>DuplicateActions</favoriteActionGroup2>
-      <entityField>#ENTITY</entityField>
       <linkedColumns>
         <element>NAME</element>
       </linkedColumns>
@@ -158,5 +158,15 @@
         </neonDynamicMultiDataChartColumn>
       </columns>
     </dynamicMultiDataChartViewTemplate>
+    <mapViewTemplate>
+      <name>OrganisationMap</name>
+      <configField>MAP_CONFIG</configField>
+      <autoGeneratedMarkerLatitudeField>STANDARD_LAT</autoGeneratedMarkerLatitudeField>
+      <autoGeneratedMarkerLongitudeField>STANDARD_LON</autoGeneratedMarkerLongitudeField>
+      <autoGeneratedMarkerIconField>#ICON</autoGeneratedMarkerIconField>
+      <autoGeneratedMarkerPopupField>ADDRESS_ID</autoGeneratedMarkerPopupField>
+      <geoJsonFeatureCollectionField>MAP_FEATURE_COLLECTION</geoJsonFeatureCollectionField>
+      <maxDBRow v="400" />
+    </mapViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/OrganisationLesserNoiseTable_view/OrganisationLesserNoiseTable_view.aod b/neonView/OrganisationLesserNoiseTable_view/OrganisationLesserNoiseTable_view.aod
index 5b29deefbee8b04a8e679b25b99f4ec3e47866df..0796a7a59e930f98b2675e3f2f6363749c93c09e 100644
--- a/neonView/OrganisationLesserNoiseTable_view/OrganisationLesserNoiseTable_view.aod
+++ b/neonView/OrganisationLesserNoiseTable_view/OrganisationLesserNoiseTable_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrganisationLesserNoiseTable_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/OrganisationLookup_view/OrganisationLookup_view.aod b/neonView/OrganisationLookup_view/OrganisationLookup_view.aod
index 0d9e7c9051b8045e5203369c54659ef9dd9c564a..009895e849f60e770714918c405a05d9fa473bfe 100644
--- a/neonView/OrganisationLookup_view/OrganisationLookup_view.aod
+++ b/neonView/OrganisationLookup_view/OrganisationLookup_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrganisationLookup_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/OrganisationMain_view/OrganisationMain_view.aod b/neonView/OrganisationMain_view/OrganisationMain_view.aod
index df9be823dfc7638ea6bb6f126911731ad6b90784..53376c617bb547c3fcc917315abe17927716bd90 100644
--- a/neonView/OrganisationMain_view/OrganisationMain_view.aod
+++ b/neonView/OrganisationMain_view/OrganisationMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrganisationMain_view</name>
   <title>Attribute</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
@@ -56,9 +56,9 @@
       <view>OrganisationAttributeRestriction_view</view>
     </neonViewReference>
     <neonViewReference>
-      <name>a806bf0f-6214-4aad-872b-74e6f7fd1ee5</name>
-      <entityField>DistrictResponsibles</entityField>
-      <view>DistrictResponsibleList_view</view>
+      <name>c2b37e4d-3b5e-4e23-8b7c-6da02b27ffc0</name>
+      <entityField>DistrictContacts</entityField>
+      <view>DistrictContactFilter_view</view>
     </neonViewReference>
     <neonViewReference>
       <name>eba90ed2-5e55-4cdb-9e0b-5a09feeb7536</name>
diff --git a/neonView/OrganisationNoNoiseTable_view/OrganisationNoNoiseTable_view.aod b/neonView/OrganisationNoNoiseTable_view/OrganisationNoNoiseTable_view.aod
index 2648fff358054098d3c837b50e09de889fb596c7..7d7855112e69d1f0c3ca6325d05db720b499f8ec 100644
--- a/neonView/OrganisationNoNoiseTable_view/OrganisationNoNoiseTable_view.aod
+++ b/neonView/OrganisationNoNoiseTable_view/OrganisationNoNoiseTable_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrganisationNoNoiseTable_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/OrganisationPreview_view/OrganisationPreview_view.aod b/neonView/OrganisationPreview_view/OrganisationPreview_view.aod
index b3ee90540321ac60fbcac02169f6db1862ecfc9f..5a88bf523389fae38dd3fa5da6cc4c61cc7fd319 100644
--- a/neonView/OrganisationPreview_view/OrganisationPreview_view.aod
+++ b/neonView/OrganisationPreview_view/OrganisationPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrganisationPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/OrganisationReport_view/OrganisationReport_view.aod b/neonView/OrganisationReport_view/OrganisationReport_view.aod
index 0c10fa2a0be68aabbdb477fce16f1adda9c1b55f..0b44df85e73e2e68febfa623497e1d6d765a07a7 100644
--- a/neonView/OrganisationReport_view/OrganisationReport_view.aod
+++ b/neonView/OrganisationReport_view/OrganisationReport_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrganisationReport_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -11,8 +11,8 @@
     <reportViewTemplate>
       <name>Report</name>
       <reportData>ORGANISATION_REPORT_DATA</reportData>
-      <favoriteActionGroup1>orgReportDispatch</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>orgReportDispatch</favoriteActionGroup1>
     </reportViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/OrganisationTaskAppointment_view/OrganisationTaskAppointment_view.aod b/neonView/OrganisationTaskAppointment_view/OrganisationTaskAppointment_view.aod
index 9fb952b77a2bad5dc51f3da28bb7353f40994d68..436b9d871f4fad7f504e63a84f0f4c9863b8613f 100644
--- a/neonView/OrganisationTaskAppointment_view/OrganisationTaskAppointment_view.aod
+++ b/neonView/OrganisationTaskAppointment_view/OrganisationTaskAppointment_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrganisationTaskAppointment_view</name>
   <title>ToDo</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/OrganisationUnrelatedDuplicates_view/OrganisationUnrelatedDuplicates_view.aod b/neonView/OrganisationUnrelatedDuplicates_view/OrganisationUnrelatedDuplicates_view.aod
index e8da741d067812b8edb6a0ac8c979cb76fb37051..0b23c809aafd9bedf13995b9049e1be41c8a6ea2 100644
--- a/neonView/OrganisationUnrelatedDuplicates_view/OrganisationUnrelatedDuplicates_view.aod
+++ b/neonView/OrganisationUnrelatedDuplicates_view/OrganisationUnrelatedDuplicates_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>OrganisationUnrelatedDuplicates_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/PermissionActionEdit_view/PermissionActionEdit_view.aod b/neonView/PermissionActionEdit_view/PermissionActionEdit_view.aod
index ab4ce87a232c2c483b2c81404cf0d24397da68d4..4ff68af2b17354675066a5d02ecab55aa0bee381 100644
--- a/neonView/PermissionActionEdit_view/PermissionActionEdit_view.aod
+++ b/neonView/PermissionActionEdit_view/PermissionActionEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PermissionActionEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/PermissionActionFilter_view/PermissionActionFilter_view.aod b/neonView/PermissionActionFilter_view/PermissionActionFilter_view.aod
index 38481861ae2a8cc4905adeae38f659cf0c1084a2..2d6c9490d447652148f61be65e196f2724bfbac2 100644
--- a/neonView/PermissionActionFilter_view/PermissionActionFilter_view.aod
+++ b/neonView/PermissionActionFilter_view/PermissionActionFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PermissionActionFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/PermissionActionList_view/PermissionActionList_view.aod b/neonView/PermissionActionList_view/PermissionActionList_view.aod
index 5019e2d1b3739a17d7c80a9b64da998da4e7d437..d5df8956e3fd5dec0db8a6e7b8eb4e2c959f4506 100644
--- a/neonView/PermissionActionList_view/PermissionActionList_view.aod
+++ b/neonView/PermissionActionList_view/PermissionActionList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PermissionActionList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -14,8 +14,8 @@
       <fixedDrawer v="true" />
       <entityField>#ENTITY</entityField>
       <isDeletable v="false" />
-      <isEditable v="false" />
       <isCreatable v="false" />
+      <isEditable v="false" />
       <columns>
         <neonTitledListTableColumn>
           <name>cc9ac8b7-e98b-4ce6-a0f0-204c05c1a3ce</name>
diff --git a/neonView/PermissionCalendarEdit_view/PermissionCalendarEdit_view.aod b/neonView/PermissionCalendarEdit_view/PermissionCalendarEdit_view.aod
index 60c76072d2afc883a3e23ecccea591e5f236dfab..3cf35da2ac50f15d139ab2629e7609b1cd007ca7 100644
--- a/neonView/PermissionCalendarEdit_view/PermissionCalendarEdit_view.aod
+++ b/neonView/PermissionCalendarEdit_view/PermissionCalendarEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PermissionCalendarEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/PermissionCalendarFilterDrawer_view/PermissionCalendarFilterDrawer_view.aod b/neonView/PermissionCalendarFilterDrawer_view/PermissionCalendarFilterDrawer_view.aod
index bea5b5d3b4c83c14236e3e3ee1164389370c87fd..e451d5f93787bfed17e31174632e47789ed5d529 100644
--- a/neonView/PermissionCalendarFilterDrawer_view/PermissionCalendarFilterDrawer_view.aod
+++ b/neonView/PermissionCalendarFilterDrawer_view/PermissionCalendarFilterDrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PermissionCalendarFilterDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/PermissionCalendarFilterReverse_view/PermissionCalendarFilterReverse_view.aod b/neonView/PermissionCalendarFilterReverse_view/PermissionCalendarFilterReverse_view.aod
index c70bb0052949f5d742d12db7048ec520710913bf..7caa40ebe164c6d284c33b059a262aa5d2dd1f93 100644
--- a/neonView/PermissionCalendarFilterReverse_view/PermissionCalendarFilterReverse_view.aod
+++ b/neonView/PermissionCalendarFilterReverse_view/PermissionCalendarFilterReverse_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PermissionCalendarFilterReverse_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/neonView/PermissionCalendarFilterReverse_view/documentation.adoc</documentation>
@@ -14,8 +14,8 @@
   <children>
     <tableViewTemplate>
       <name>PermissionCalendarFilterReverseTable</name>
-      <favoriteActionGroup1>AddActionsReverse</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>AddActionsReverse</favoriteActionGroup1>
       <isCreatable v="false" />
       <isEditable v="true" />
       <title></title>
diff --git a/neonView/PermissionCalendarFilter_view/PermissionCalendarFilter_view.aod b/neonView/PermissionCalendarFilter_view/PermissionCalendarFilter_view.aod
index ffca2d78c9c23630df69eec76e2f882cd943872e..25455c641f65733569c83d43ba89cc77439f7f55 100644
--- a/neonView/PermissionCalendarFilter_view/PermissionCalendarFilter_view.aod
+++ b/neonView/PermissionCalendarFilter_view/PermissionCalendarFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PermissionCalendarFilter_view</name>
   <title>Their Permissions</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
@@ -13,8 +13,8 @@
   <children>
     <tableViewTemplate>
       <name>PermissionCalendarFilterTable</name>
-      <favoriteActionGroup1>AddActions</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>AddActions</favoriteActionGroup1>
       <isCreatable v="false" />
       <isEditable v="true" />
       <title></title>
@@ -39,8 +39,8 @@
     </tableViewTemplate>
     <treeTableViewTemplate>
       <name>PermissionCalendarTreeTable</name>
-      <favoriteActionGroup1>AddActions</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>AddActions</favoriteActionGroup1>
       <defaultGroupFields>
         <element>PERMISSION</element>
       </defaultGroupFields>
diff --git a/neonView/PermissionCalendarPreview_view/PermissionCalendarPreview_view.aod b/neonView/PermissionCalendarPreview_view/PermissionCalendarPreview_view.aod
index 8671d21b95c8bc5d16f7bdcc597f4d6a0924cfb7..c11b339f2a5aeda909142d29021c1f86210f2eed 100644
--- a/neonView/PermissionCalendarPreview_view/PermissionCalendarPreview_view.aod
+++ b/neonView/PermissionCalendarPreview_view/PermissionCalendarPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PermissionCalendarPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/PermissionDetailEdit_view/PermissionDetailEdit_view.aod b/neonView/PermissionDetailEdit_view/PermissionDetailEdit_view.aod
index b38046275b1de3d27e9720088053b6cac8503ca9..79c5c2a5b8a27cc8662022ed5f8932845c9a1d5d 100644
--- a/neonView/PermissionDetailEdit_view/PermissionDetailEdit_view.aod
+++ b/neonView/PermissionDetailEdit_view/PermissionDetailEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PermissionDetailEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/PermissionDetailFilter_view/PermissionDetailFilter_view.aod b/neonView/PermissionDetailFilter_view/PermissionDetailFilter_view.aod
index 2a069a4c9a5e0e924b01a1cba372741585254201..7d08f710cb6754c166d67032538dafa125d65333 100644
--- a/neonView/PermissionDetailFilter_view/PermissionDetailFilter_view.aod
+++ b/neonView/PermissionDetailFilter_view/PermissionDetailFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PermissionDetailFilter_view</name>
   <title>Permission Detail</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod b/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod
index 949bb12b7ab6e2ef39917b4b59593a621c981f2f..0add1e4b7be9fee7f23b7caa8085e80805189313 100644
--- a/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod
+++ b/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PermissionDetailPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/PermissionMetaDataFilter_view/PermissionMetaDataFilter_view.aod b/neonView/PermissionMetaDataFilter_view/PermissionMetaDataFilter_view.aod
index 9644e50cf2d1d009ffd09a0981d86df7ac8493e7..9bb92085ea8eab1963622074ca1b913b55fd073c 100644
--- a/neonView/PermissionMetaDataFilter_view/PermissionMetaDataFilter_view.aod
+++ b/neonView/PermissionMetaDataFilter_view/PermissionMetaDataFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PermissionMetaDataFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/PermissionMetaDataMain_view/PermissionMetaDataMain_view.aod b/neonView/PermissionMetaDataMain_view/PermissionMetaDataMain_view.aod
index 53e8f0b956cb34f64e1ee26eb4e70ea50d888a65..d00446beb2d5adeaaa20f393ced2d10164cd70dd 100644
--- a/neonView/PermissionMetaDataMain_view/PermissionMetaDataMain_view.aod
+++ b/neonView/PermissionMetaDataMain_view/PermissionMetaDataMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PermissionMetaDataMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/PermissionMetaDataPreview_view/PermissionMetaDataPreview_view.aod b/neonView/PermissionMetaDataPreview_view/PermissionMetaDataPreview_view.aod
index 1f323f20aab7cc59e0d8266ecddfcb8e6db74a8a..a9d7b695fbc244ada8a0719678fed01d73e8a6b4 100644
--- a/neonView/PermissionMetaDataPreview_view/PermissionMetaDataPreview_view.aod
+++ b/neonView/PermissionMetaDataPreview_view/PermissionMetaDataPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PermissionMetaDataPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/PermissionOverviewFilter_view/PermissionOverviewFilter_view.aod b/neonView/PermissionOverviewFilter_view/PermissionOverviewFilter_view.aod
index 7e1ea7f0faabad4a01b7a16f121d93a8de2ff4eb..62df56ab754e64e61e18db84b8bbac589f78d769 100644
--- a/neonView/PermissionOverviewFilter_view/PermissionOverviewFilter_view.aod
+++ b/neonView/PermissionOverviewFilter_view/PermissionOverviewFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PermissionOverviewFilter_view</name>
   <title>Permission  Overview</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/PersonAttributeRestriction_view/PersonAttributeRestriction_view.aod b/neonView/PersonAttributeRestriction_view/PersonAttributeRestriction_view.aod
index 11f7b639939fc66ab3721c8f217d2c248246be36..5202135ce5090b7acdd0b2be53d567ff3c881579 100644
--- a/neonView/PersonAttributeRestriction_view/PersonAttributeRestriction_view.aod
+++ b/neonView/PersonAttributeRestriction_view/PersonAttributeRestriction_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PersonAttributeRestriction_view</name>
   <title>Attributes</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/PersonClusterMain_view/PersonClusterMain_view.aod b/neonView/PersonClusterMain_view/PersonClusterMain_view.aod
index 7ed8cea878e5c243e36fe87981e8d0b3240a7339..dcbd9badb6fe40452c89f4d4f54cef06fb5a0938 100644
--- a/neonView/PersonClusterMain_view/PersonClusterMain_view.aod
+++ b/neonView/PersonClusterMain_view/PersonClusterMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PersonClusterMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/PersonClusterPreview_view/PersonClusterPreview_view.aod b/neonView/PersonClusterPreview_view/PersonClusterPreview_view.aod
index 7465d9548b1552e7720bf332414658905f588dbf..69ab192629f5b172f18bc89eaccf2b384fdfb3bb 100644
--- a/neonView/PersonClusterPreview_view/PersonClusterPreview_view.aod
+++ b/neonView/PersonClusterPreview_view/PersonClusterPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PersonClusterPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/PersonDetail_view/PersonDetail_view.aod b/neonView/PersonDetail_view/PersonDetail_view.aod
index bf877ec44c102df4803f41d11075dacecf76123c..13c2c610cb11ddfc5749458d7490806189ee3612 100644
--- a/neonView/PersonDetail_view/PersonDetail_view.aod
+++ b/neonView/PersonDetail_view/PersonDetail_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PersonDetail_view</name>
   <title>Details</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/PersonDublicatesTab_view/PersonDublicatesTab_view.aod b/neonView/PersonDublicatesTab_view/PersonDublicatesTab_view.aod
index 2099e5c6ee57a9a7fbef13bfbf16b15f8298c108..c11bc1396a663aa39b2f17a1b691d239ddbd79c6 100644
--- a/neonView/PersonDublicatesTab_view/PersonDublicatesTab_view.aod
+++ b/neonView/PersonDublicatesTab_view/PersonDublicatesTab_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PersonDublicatesTab_view</name>
   <title>Person duplicates</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/PersonDuplicateEditview_view/PersonDuplicateEditview_view.aod b/neonView/PersonDuplicateEditview_view/PersonDuplicateEditview_view.aod
index 23c70461d00820365c981737e76d5a410961cc4d..b331c5900d3b446f8632159bd837bb4968b85ef4 100644
--- a/neonView/PersonDuplicateEditview_view/PersonDuplicateEditview_view.aod
+++ b/neonView/PersonDuplicateEditview_view/PersonDuplicateEditview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PersonDuplicateEditview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/PersonDuplicatesFilter_view/PersonDuplicatesFilter_view.aod b/neonView/PersonDuplicatesFilter_view/PersonDuplicatesFilter_view.aod
index 94e88b257d1b94e481ef9fc6350931d736155286..0e95f05f72286d568edddded65e4cd0d21031823 100644
--- a/neonView/PersonDuplicatesFilter_view/PersonDuplicatesFilter_view.aod
+++ b/neonView/PersonDuplicatesFilter_view/PersonDuplicatesFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PersonDuplicatesFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -10,9 +10,9 @@
   <children>
     <tableViewTemplate>
       <name>PersonDuplicatesTable</name>
-      <favoriteActionGroup1>PersonOpenClusterDetailActionGroup</favoriteActionGroup1>
       <hideContentSearch v="true" />
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>PersonOpenClusterDetailActionGroup</favoriteActionGroup1>
       <isCreatable v="false" />
       <isDeletable v="false" />
       <isEditable v="false" />
@@ -31,8 +31,8 @@
     </tableViewTemplate>
     <treeTableViewTemplate>
       <name>Treetable</name>
-      <favoriteActionGroup1>PersonOpenClusterDetailActionGroup</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>PersonOpenClusterDetailActionGroup</favoriteActionGroup1>
       <columns>
         <neonTreeTableColumn>
           <name>060c69aa-242a-4141-acd1-b82a76d99521</name>
diff --git a/neonView/PersonEditDefaults_view/PersonEditDefaults_view.aod b/neonView/PersonEditDefaults_view/PersonEditDefaults_view.aod
index 4be76fd469771d104f909dba2d23f4379c4e8218..c3149864c8564edf5301d39f0cf2fabe3b294e0a 100644
--- a/neonView/PersonEditDefaults_view/PersonEditDefaults_view.aod
+++ b/neonView/PersonEditDefaults_view/PersonEditDefaults_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PersonEditDefaults_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/PersonEdit_view/PersonEdit_view.aod b/neonView/PersonEdit_view/PersonEdit_view.aod
index c31dd51b7ff66255b6c949a7082332d5e5196728..1cc1577de9b2c4f38ee39b97d8e14d70a9d74921 100644
--- a/neonView/PersonEdit_view/PersonEdit_view.aod
+++ b/neonView/PersonEdit_view/PersonEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PersonEdit_view</name>
   <title>Contact</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/PersonFilter_view/PersonFilter_view.aod b/neonView/PersonFilter_view/PersonFilter_view.aod
index 7c17332f6979b0bd956542a2794a7ef6b001431f..5b5773e28c32884abec63caabed9275ac57033f9 100644
--- a/neonView/PersonFilter_view/PersonFilter_view.aod
+++ b/neonView/PersonFilter_view/PersonFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PersonFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -49,14 +49,14 @@
   <children>
     <tableViewTemplate>
       <name>Persons</name>
-      <favoriteActionGroup1>filterViewActionGroup</favoriteActionGroup1>
-      <favoriteActionGroup2>DuplicateActions</favoriteActionGroup2>
       <hideActions v="false" />
       <iconField>PICTURE</iconField>
       <titleField>NAME_fieldGroup</titleField>
       <subtitleField>LANGUAGE</subtitleField>
       <descriptionField>ORGANISATION_CONTACTID</descriptionField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>filterViewActionGroup</favoriteActionGroup1>
+      <favoriteActionGroup2>DuplicateActions</favoriteActionGroup2>
       <linkedColumns>
         <element>FIRSTNAME</element>
         <element>LASTNAME</element>
@@ -103,9 +103,9 @@
     </tableViewTemplate>
     <treeTableViewTemplate>
       <name>Treetable</name>
+      <entityField>#ENTITY</entityField>
       <favoriteActionGroup1>filterViewActionGroup</favoriteActionGroup1>
       <favoriteActionGroup2>DuplicateActions</favoriteActionGroup2>
-      <entityField>#ENTITY</entityField>
       <linkedColumns>
         <element>FIRSTNAME</element>
         <element>LASTNAME</element>
diff --git a/neonView/PersonLookup_view/PersonLookup_view.aod b/neonView/PersonLookup_view/PersonLookup_view.aod
index 5877a1ee07ad8d0e4968e57e21c196804d0f67f0..58a3abae2fcf011feaab0c4bf636b6cccff4f670 100644
--- a/neonView/PersonLookup_view/PersonLookup_view.aod
+++ b/neonView/PersonLookup_view/PersonLookup_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PersonLookup_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/PersonMain_view/PersonMain_view.aod b/neonView/PersonMain_view/PersonMain_view.aod
index 7e88568ac761047866b5e5bfc6167662e731a85b..5f2dc5ffa83f910d3b29a2c446453b47ac6d361e 100644
--- a/neonView/PersonMain_view/PersonMain_view.aod
+++ b/neonView/PersonMain_view/PersonMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PersonMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -44,11 +44,6 @@
       <entityField>#ENTITY</entityField>
       <view>PersonAttributeRestriction_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>1f6cf193-61c3-4681-bafd-c7f9c906cdf6</name>
-      <entityField>Districts</entityField>
-      <view>DistrictList_view</view>
-    </neonViewReference>
     <neonViewReference>
       <name>19a5f9ed-228d-4352-9e82-e7aa690648e9</name>
       <entityField>DistrictResponsibles</entityField>
diff --git a/neonView/PersonMultiEditQuickEntry_view/PersonMultiEditQuickEntry_view.aod b/neonView/PersonMultiEditQuickEntry_view/PersonMultiEditQuickEntry_view.aod
index 5b15646ad0ca10ce8dcbdfdc9b3dbf1b240aafc0..253c58d726b077d4606f7f04df1eadb9e2977d82 100644
--- a/neonView/PersonMultiEditQuickEntry_view/PersonMultiEditQuickEntry_view.aod
+++ b/neonView/PersonMultiEditQuickEntry_view/PersonMultiEditQuickEntry_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PersonMultiEditQuickEntry_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/PersonMultiEdit_view/PersonMultiEdit_view.aod b/neonView/PersonMultiEdit_view/PersonMultiEdit_view.aod
index 511bdae7953a5858e68ec0d570820e2499ac494e..aa935e6dcc797d7d058e97f740e3a6a8f126f467 100644
--- a/neonView/PersonMultiEdit_view/PersonMultiEdit_view.aod
+++ b/neonView/PersonMultiEdit_view/PersonMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PersonMultiEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/PersonPreview_view/PersonPreview_view.aod b/neonView/PersonPreview_view/PersonPreview_view.aod
index c0ecb2926bd1a2d73e4b9c1e9fe738a39265244e..78a6c4a8a2280c3450d220b5a7cd3754ba39a40e 100644
--- a/neonView/PersonPreview_view/PersonPreview_view.aod
+++ b/neonView/PersonPreview_view/PersonPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PersonPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/PersonSimpleList_view/PersonSimpleList_view.aod b/neonView/PersonSimpleList_view/PersonSimpleList_view.aod
index 2f1efab373407d466ee9246b6bd8f3321e996c04..01efec93a7b9e484b098b9b382cc75e405f5de15 100644
--- a/neonView/PersonSimpleList_view/PersonSimpleList_view.aod
+++ b/neonView/PersonSimpleList_view/PersonSimpleList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PersonSimpleList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -11,13 +11,16 @@
   <children>
     <tableViewTemplate>
       <name>Persons</name>
-      <favoriteActionGroup1>filterViewActionGroup</favoriteActionGroup1>
       <iconField>PICTURE</iconField>
       <titleField>NAME_fieldGroup</titleField>
       <subtitleField>LANGUAGE</subtitleField>
       <descriptionField>DEPARTMENT</descriptionField>
       <entityField>#ENTITY</entityField>
-      <linkedColumns />
+      <favoriteActionGroup1>filterViewActionGroup</favoriteActionGroup1>
+      <linkedColumns>
+        <element>FIRSTNAME</element>
+        <element>LASTNAME</element>
+      </linkedColumns>
       <fixedFilterFields />
       <columns>
         <neonTableColumn>
@@ -64,9 +67,12 @@
     </tableViewTemplate>
     <treeTableViewTemplate>
       <name>tree</name>
-      <favoriteActionGroup1>filterViewActionGroup</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
-      <linkedColumns />
+      <favoriteActionGroup1>filterViewActionGroup</favoriteActionGroup1>
+      <linkedColumns>
+        <element>FIRSTNAME</element>
+        <element>LASTNAME</element>
+      </linkedColumns>
       <defaultGroupFields />
       <fixedFilterFields />
       <columns>
diff --git a/neonView/PersonTaskAppointment_view/PersonTaskAppointment_view.aod b/neonView/PersonTaskAppointment_view/PersonTaskAppointment_view.aod
index d23833c4c20d8838144196a95c81cd8ec57fa29f..02d235196c7b0a862a9125aefc5e9f9d5c7a3cdd 100644
--- a/neonView/PersonTaskAppointment_view/PersonTaskAppointment_view.aod
+++ b/neonView/PersonTaskAppointment_view/PersonTaskAppointment_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PersonTaskAppointment_view</name>
   <title>ToDo</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/PrivatePersonFilter_view/PrivatePersonFilter_view.aod b/neonView/PrivatePersonFilter_view/PrivatePersonFilter_view.aod
index 3e106ebb254d6d7ae3657a443f0d6ca9241484f3..6e183761e7b6f4f5b7f26f5fb9aae7b2e2364ddd 100644
--- a/neonView/PrivatePersonFilter_view/PrivatePersonFilter_view.aod
+++ b/neonView/PrivatePersonFilter_view/PrivatePersonFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PrivatePersonFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/PrivatePersonPreview_view/PrivatePersonPreview_view.aod b/neonView/PrivatePersonPreview_view/PrivatePersonPreview_view.aod
index 13f2b9fd014f79514b2417b247f8e079b5cee39a..de138a43230619b9bbe0a97b0ac1273b8f1602f5 100644
--- a/neonView/PrivatePersonPreview_view/PrivatePersonPreview_view.aod
+++ b/neonView/PrivatePersonPreview_view/PrivatePersonPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>PrivatePersonPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <neonViewReference>
-      <name>0a66aea5-bf81-47e4-941d-9158ff8f4f51</name>
+      <name>4c340a9c-252c-4708-9206-31ca98c06593</name>
       <entityField>Persons</entityField>
       <view>ContactTitledList_view</view>
     </neonViewReference>
diff --git a/neonView/Prod2ProdEdit_view/Prod2ProdEdit_view.aod b/neonView/Prod2ProdEdit_view/Prod2ProdEdit_view.aod
index 6048f3f0bdfefff3c4b9228280e9fbd8580946eb..c4f86613868418cfc1246170412984618710abb5 100644
--- a/neonView/Prod2ProdEdit_view/Prod2ProdEdit_view.aod
+++ b/neonView/Prod2ProdEdit_view/Prod2ProdEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>Prod2ProdEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/Prod2prodFilter_view/Prod2prodFilter_view.aod b/neonView/Prod2prodFilter_view/Prod2prodFilter_view.aod
index e5bac593a143711913ac4408d3e13e45be910ef5..76a29fcce0ac96d7cb145f6c9e6c4394152cbdb8 100644
--- a/neonView/Prod2prodFilter_view/Prod2prodFilter_view.aod
+++ b/neonView/Prod2prodFilter_view/Prod2prodFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>Prod2prodFilter_view</name>
   <title>Parts list</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
@@ -12,8 +12,8 @@
     <treeTableViewTemplate>
       <name>PartlistTree</name>
       <parentField>DEST_ID</parentField>
-      <favoriteActionGroup1>alter</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>alter</favoriteActionGroup1>
       <devices>
         <element>MOBILE</element>
         <element>TABLET</element>
diff --git a/neonView/ProductDescritption_view/ProductDescritption_view.aod b/neonView/ProductDescritption_view/ProductDescritption_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..a85032efe375759d5f49e7390f426496a523036a
--- /dev/null
+++ b/neonView/ProductDescritption_view/ProductDescritption_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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>ProductDescritption_view</name>
+  <title>Description</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>d1bc2777-ee77-4604-8d7e-735ec79ed551</name>
+      <entityField>KnowledgeManagements</entityField>
+      <view>KnowledgeManagementFilter_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>1871fa72-d36b-43bd-937b-822ea7c2a08d</name>
+      <entityField>DescriptionTranslations</entityField>
+      <view>DescriptionTranslationFilter_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/ProductEdit_view/ProductEdit_view.aod b/neonView/ProductEdit_view/ProductEdit_view.aod
index 768f479d12d49821655426ff6908c69d9824cc27..a651ea4b7c30d26ad8b6476ca61849cd7cdf0bfd 100644
--- a/neonView/ProductEdit_view/ProductEdit_view.aod
+++ b/neonView/ProductEdit_view/ProductEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ProductEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ProductFilter_view/ProductFilter_view.aod b/neonView/ProductFilter_view/ProductFilter_view.aod
index 87133854a0bf04645764e64768e6037d069b48b9..7e5ae1edad896848c4f4eb775eee3e8932ae70dd 100644
--- a/neonView/ProductFilter_view/ProductFilter_view.aod
+++ b/neonView/ProductFilter_view/ProductFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ProductFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -39,6 +39,7 @@
       <descriptionField>STATUS</descriptionField>
       <tilePresentation>PORTRAIT</tilePresentation>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
       <isCreatable v="true" />
     </tilesViewTemplate>
     <tableViewTemplate>
@@ -46,6 +47,7 @@
       <titleField>PRODUCTNAME</titleField>
       <subtitleField>PRODUCTCODE</subtitleField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
       <linkedColumns>
         <element>PRODUCTNAME</element>
       </linkedColumns>
@@ -83,6 +85,7 @@
     <treeTableViewTemplate>
       <name>Treetable</name>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
       <linkedColumns>
         <element>PRODUCTNAME</element>
       </linkedColumns>
diff --git a/neonView/ProductLookup_view/ProductLookup_view.aod b/neonView/ProductLookup_view/ProductLookup_view.aod
index e038ed3765c689f36212619cc246abf2196bd6f9..880344faf6cff92a935b9e659ecbeed979918480 100644
--- a/neonView/ProductLookup_view/ProductLookup_view.aod
+++ b/neonView/ProductLookup_view/ProductLookup_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ProductLookup_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/neonView/ProductLookup_view/documentation.adoc</documentation>
diff --git a/neonView/ProductMain_view/ProductMain_view.aod b/neonView/ProductMain_view/ProductMain_view.aod
index e284252e8f4b346b4d4a2269780e427e3fb13911..861b85ac39a6409f4ba8f423b3b844909373c7ab 100644
--- a/neonView/ProductMain_view/ProductMain_view.aod
+++ b/neonView/ProductMain_view/ProductMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ProductMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -25,9 +25,9 @@
       <view>TaskFilter_view</view>
     </neonViewReference>
     <neonViewReference>
-      <name>c647d35b-3535-4acf-b6cb-c9786a353b08</name>
-      <entityField>DescriptionTranslations</entityField>
-      <view>DescriptionTranslationFilter_view</view>
+      <name>7a475d46-0ce9-4fd3-ab5b-c5c625a4a3fa</name>
+      <entityField>#ENTITY</entityField>
+      <view>ProductDescritption_view</view>
     </neonViewReference>
     <neonViewReference>
       <name>7f416115-ff89-45ca-be10-ed568cac266c</name>
diff --git a/neonView/ProductPreview_view/ProductPreview_view.aod b/neonView/ProductPreview_view/ProductPreview_view.aod
index 402cd9bb007ef3b604fc0a1e1de7269a248e470d..2117c52998bdb57ddfc55fff4e0fb5475a7c70a2 100644
--- a/neonView/ProductPreview_view/ProductPreview_view.aod
+++ b/neonView/ProductPreview_view/ProductPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ProductPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ProductpriceEdit_view/ProductpriceEdit_view.aod b/neonView/ProductpriceEdit_view/ProductpriceEdit_view.aod
index f2c6e8dac43e719b5612feb930cdb341f50861df..0704f1c49cfc70277c5fb3eaf699eb98a380d8d3 100644
--- a/neonView/ProductpriceEdit_view/ProductpriceEdit_view.aod
+++ b/neonView/ProductpriceEdit_view/ProductpriceEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ProductpriceEdit_view</name>
   <title>Price list</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod b/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod
index f19f9c4d30be0d8b0db3961e302d3af219e437cb..9680051e7399c4618b4de58476ce62cceb09a850 100644
--- a/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod
+++ b/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ProductpriceFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -101,5 +101,58 @@
         </neonTreeTableColumn>
       </columns>
     </treeTableViewTemplate>
+    <multiEditTableViewTemplate>
+      <name>MultiEditTable</name>
+      <editableColumns>
+        <element>PRICE</element>
+        <element>VALID_FROM</element>
+        <element>VALID_TO</element>
+        <element>PRODUCT_ID</element>
+      </editableColumns>
+      <columns>
+        <neonTableColumn>
+          <name>d1633bbc-0dcf-422c-a3fd-c00aebdae5fc</name>
+          <entityField>IMAGE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>bd0d7160-38c5-4ef0-b1b7-454812427f25</name>
+          <entityField>PRODUCT_ID</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>4c497e81-7b36-409e-9284-2ac0f6e8428d</name>
+          <entityField>PRICELIST</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>e9a64198-5eef-4935-aad2-19aab772f394</name>
+          <entityField>VALID_FROM</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>440f29d5-7bbf-45f7-ae78-71961eae3ad0</name>
+          <entityField>VALID_TO</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>e742b1c0-627e-4769-b5bc-7dd39168a91a</name>
+          <entityField>PRICE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>6b192adc-d947-467d-9e00-433ee45d9dec</name>
+          <entityField>CURRENCY</entityField>
+        </neonTableColumn>
+      </columns>
+      <editRendererMapping>
+        <rendererMappingEntry>
+          <name>6bd04999-36b5-4278-a975-a24414058b8e</name>
+          <fieldName>PRICE</fieldName>
+          <renderer>numberInput</renderer>
+        </rendererMappingEntry>
+      </editRendererMapping>
+      <viewRendererMapping>
+        <rendererMappingEntry>
+          <name>cece5a67-394e-4fd2-8b2d-f39660290cee</name>
+          <fieldName>PRICELIST</fieldName>
+          <renderer>badge</renderer>
+        </rendererMappingEntry>
+      </viewRendererMapping>
+    </multiEditTableViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/ProductpriceForProductFilter_view/ProductpriceForProductFilter_view.aod b/neonView/ProductpriceForProductFilter_view/ProductpriceForProductFilter_view.aod
index 181e22f1cc5e9073ca8db6c1dfaafa913c95a38c..24702f56ada2efdd230ff0f5e1c278cae94d82f9 100644
--- a/neonView/ProductpriceForProductFilter_view/ProductpriceForProductFilter_view.aod
+++ b/neonView/ProductpriceForProductFilter_view/ProductpriceForProductFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ProductpriceForProductFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/ProductpricePreview_view/ProductpricePreview_view.aod b/neonView/ProductpricePreview_view/ProductpricePreview_view.aod
index bb516112119a7134549491a865cba256ce618926..09bbb44cccc14d88aebe4d919f49d8fb759e7fb5 100644
--- a/neonView/ProductpricePreview_view/ProductpricePreview_view.aod
+++ b/neonView/ProductpricePreview_view/ProductpricePreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ProductpricePreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/ProductpriceRelation_view/ProductpriceRelation_view.aod b/neonView/ProductpriceRelation_view/ProductpriceRelation_view.aod
index 9d054a7e57691b5b48be9092463cbc2dc7cbf86a..9da1a4286d5817ba9e386a10d834ec29386916da 100644
--- a/neonView/ProductpriceRelation_view/ProductpriceRelation_view.aod
+++ b/neonView/ProductpriceRelation_view/ProductpriceRelation_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>ProductpriceRelation_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/QuickEntryEdit_view/QuickEntryEdit_view.aod b/neonView/QuickEntryEdit_view/QuickEntryEdit_view.aod
index 9598c3420b1a7b9b9a6128c50848a370f9f61a62..63d495112b0504008b1ca9e4693ce557a6b0f9b1 100644
--- a/neonView/QuickEntryEdit_view/QuickEntryEdit_view.aod
+++ b/neonView/QuickEntryEdit_view/QuickEntryEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>QuickEntryEdit_view</name>
   <title>Quick Entry</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/RoleChildrenEdit_view/RoleChildrenEdit_view.aod b/neonView/RoleChildrenEdit_view/RoleChildrenEdit_view.aod
index 8dd7cd21a6314df94d3d7ef2882f6ec6f442e9d9..7304def3140650b10a388725201048650dfc21b5 100644
--- a/neonView/RoleChildrenEdit_view/RoleChildrenEdit_view.aod
+++ b/neonView/RoleChildrenEdit_view/RoleChildrenEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>RoleChildrenEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/RoleChildrenList_view/RoleChildrenList_view.aod b/neonView/RoleChildrenList_view/RoleChildrenList_view.aod
index 8876a89c73b21bdb8c993bcca9dcdaee38c45f97..777f1a116a0ca5eb73734e06ba80cd3a65aca974 100644
--- a/neonView/RoleChildrenList_view/RoleChildrenList_view.aod
+++ b/neonView/RoleChildrenList_view/RoleChildrenList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>RoleChildrenList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -13,9 +13,9 @@
       <titleField>CHILD_ROLE</titleField>
       <titleFieldFullWidth v="true" />
       <entityField>#ENTITY</entityField>
-      <isDeletable v="false" />
-      <isEditable v="false" />
-      <isCreatable v="false" />
+      <isDeletable v="true" />
+      <isEditable v="true" />
+      <isCreatable v="true" />
     </titledListViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/RoleEdit_view/RoleEdit_view.aod b/neonView/RoleEdit_view/RoleEdit_view.aod
index 55cdf1755635363d6cf92304033ea876a309e5a5..5940e50e3297d90ad09225fb846eafee38c4ce4f 100644
--- a/neonView/RoleEdit_view/RoleEdit_view.aod
+++ b/neonView/RoleEdit_view/RoleEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>RoleEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/RoleFilter_view/RoleFilter_view.aod b/neonView/RoleFilter_view/RoleFilter_view.aod
index 612096e53f13856ffecdd786ed760b697a96d532..4bed72f568db63a6f6b26d31236957ebe2bbb820 100644
--- a/neonView/RoleFilter_view/RoleFilter_view.aod
+++ b/neonView/RoleFilter_view/RoleFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>RoleFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/RoleMain_view/RoleMain_view.aod b/neonView/RoleMain_view/RoleMain_view.aod
index f63cba1a93f91c381f83b8027fad0e5de2c79602..debbc73ead58fba5837fd59042e5124a2c91f29e 100644
--- a/neonView/RoleMain_view/RoleMain_view.aod
+++ b/neonView/RoleMain_view/RoleMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>RoleMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/RoleParentList_view/RoleParentList_view.aod b/neonView/RoleParentList_view/RoleParentList_view.aod
index d4901c30aff838b71555a44577dbcb1649bf757d..7871bc29d23e674719b67828d22054c982085da6 100644
--- a/neonView/RoleParentList_view/RoleParentList_view.aod
+++ b/neonView/RoleParentList_view/RoleParentList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>RoleParentList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -14,8 +14,8 @@
       <titleFieldFullWidth v="true" />
       <entityField>#ENTITY</entityField>
       <isDeletable v="false" />
-      <isEditable v="false" />
       <isCreatable v="false" />
+      <isEditable v="false" />
     </titledListViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/RolePreview_view/RolePreview_view.aod b/neonView/RolePreview_view/RolePreview_view.aod
index 5f62a43c2caaa2c4fd4bdd68748bc809f3efe66c..5acea2bcd2b39fa445ce83dbe8c5d5f1f4eefe38 100644
--- a/neonView/RolePreview_view/RolePreview_view.aod
+++ b/neonView/RolePreview_view/RolePreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>RolePreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/SalesprojectActivity_view/SalesprojectActivity_view.aod b/neonView/SalesprojectActivity_view/SalesprojectActivity_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..18b9c192333e6822587abb11dd42a723418942c4
--- /dev/null
+++ b/neonView/SalesprojectActivity_view/SalesprojectActivity_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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>SalesprojectActivity_view</name>
+  <title>Activity</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>5564d68a-76dc-44cc-9f76-3894e069c295</name>
+      <entityField>Activities</entityField>
+      <view>ActivityDrawer_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/SalesprojectAnalysesPhases_view/SalesprojectAnalysesPhases_view.aod b/neonView/SalesprojectAnalysesPhases_view/SalesprojectAnalysesPhases_view.aod
index 86524aca75abcc6f73c19fd30aee8cc986ead6b1..89cb028037cc585f9191dec34a5a020ab1dc7fcb 100644
--- a/neonView/SalesprojectAnalysesPhases_view/SalesprojectAnalysesPhases_view.aod
+++ b/neonView/SalesprojectAnalysesPhases_view/SalesprojectAnalysesPhases_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectAnalysesPhases_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/SalesprojectAnalyses_view/SalesprojectAnalyses_view.aod b/neonView/SalesprojectAnalyses_view/SalesprojectAnalyses_view.aod
index 8ed958a995286eb7e91f5ea8fd0de16b10b2e214..ef955686814c8140184a06f68053a22f682c5451 100644
--- a/neonView/SalesprojectAnalyses_view/SalesprojectAnalyses_view.aod
+++ b/neonView/SalesprojectAnalyses_view/SalesprojectAnalyses_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectAnalyses_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/SalesprojectConversionRate_view/SalesprojectConversionRate_view.aod b/neonView/SalesprojectConversionRate_view/SalesprojectConversionRate_view.aod
index c17221595c4bba474e17448187b33e190fca79d8..e886fb460da1f6a1439fbad4055a213f87f2b0ed 100644
--- a/neonView/SalesprojectConversionRate_view/SalesprojectConversionRate_view.aod
+++ b/neonView/SalesprojectConversionRate_view/SalesprojectConversionRate_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectConversionRate_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod b/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod
index 04b352527d95799e97be7733ae721d540effcc0f..7a2444f88509fb17c60ebaa2b3edcf59e59ebb7e 100644
--- a/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod
+++ b/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectEdit_view</name>
   <title>Sales Project</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/SalesprojectFilter_view/SalesprojectFilter_view.aod b/neonView/SalesprojectFilter_view/SalesprojectFilter_view.aod
index 5a88276721b08a3621d0957993345367ef7b89f7..888b2580c7beec222342d1498e8d057d6717eacf 100644
--- a/neonView/SalesprojectFilter_view/SalesprojectFilter_view.aod
+++ b/neonView/SalesprojectFilter_view/SalesprojectFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -56,6 +56,7 @@
       <subtitleField>PHASE</subtitleField>
       <descriptionField>CONTACT_ID</descriptionField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
       <linkedColumns>
         <element>PROJECTCODE</element>
         <element>PROJECTTITLE</element>
@@ -87,6 +88,10 @@
           <name>88e6bebb-e83d-43ec-82f1-cc778fac458e</name>
           <entityField>CLASSIFICATIONVALUE</entityField>
         </neonTableColumn>
+        <neonTableColumn>
+          <name>c00e5148-54c8-488d-817a-2938e124871b</name>
+          <entityField>DATE_NEW</entityField>
+        </neonTableColumn>
         <neonTableColumn>
           <name>fec843c3-f7c0-42c7-8295-50386651edb2</name>
           <entityField>STARTDATE</entityField>
@@ -108,6 +113,7 @@
     <treeTableViewTemplate>
       <name>Treetable</name>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
       <linkedColumns>
         <element>PROJECTCODE</element>
         <element>PROJECTTITLE</element>
@@ -135,6 +141,10 @@
           <name>6d9d1365-985a-4357-8ecc-16ddcc201ea8</name>
           <entityField>CLASSIFICATIONVALUE</entityField>
         </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>c5e66669-4e12-4933-94e9-7db5c7688250</name>
+          <entityField>DATE_NEW</entityField>
+        </neonTreeTableColumn>
         <neonTreeTableColumn>
           <name>745d6192-4817-49e6-8cb2-8470c9c25f4d</name>
           <entityField>STARTDATE</entityField>
diff --git a/neonView/SalesprojectForecastDrawer_view/SalesprojectForecastDrawer_view.aod b/neonView/SalesprojectForecastDrawer_view/SalesprojectForecastDrawer_view.aod
index 734f3f44872a286e5ef96bd6b0ca0cb6e4ce2a72..5529168771af7211ccd35645bbbd9f2651c368bb 100644
--- a/neonView/SalesprojectForecastDrawer_view/SalesprojectForecastDrawer_view.aod
+++ b/neonView/SalesprojectForecastDrawer_view/SalesprojectForecastDrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectForecastDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/SalesprojectFurtherInfo_view/SalesprojectFurtherInfo_view.aod b/neonView/SalesprojectFurtherInfo_view/SalesprojectFurtherInfo_view.aod
index d222b3f65922dbbc72d07b5fbd006edaf3b70049..b9df7b607f8a933c220f41853777515c3230e682 100644
--- a/neonView/SalesprojectFurtherInfo_view/SalesprojectFurtherInfo_view.aod
+++ b/neonView/SalesprojectFurtherInfo_view/SalesprojectFurtherInfo_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectFurtherInfo_view</name>
   <title>Further informations</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/SalesprojectMain_view/SalesprojectMain_view.aod b/neonView/SalesprojectMain_view/SalesprojectMain_view.aod
index fed4306d69ba3ab501235143b0b80f179adc79c8..43368c01548b156b25d2389c85c30878e3a071c1 100644
--- a/neonView/SalesprojectMain_view/SalesprojectMain_view.aod
+++ b/neonView/SalesprojectMain_view/SalesprojectMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -22,7 +22,7 @@
     <neonViewReference>
       <name>d4daa13e-bf57-45e4-af43-d58c04f113f5</name>
       <entityField>#ENTITY</entityField>
-      <view>SalesprojectMemberActivity_view</view>
+      <view>SalesprojectActivity_view</view>
     </neonViewReference>
     <neonViewReference>
       <name>7ac103ea-1131-41e0-85ce-e7d2fc86dfd8</name>
diff --git a/neonView/SalesprojectMemberActivity_view/SalesprojectMemberActivity_view.aod b/neonView/SalesprojectMemberActivity_view/SalesprojectMemberActivity_view.aod
deleted file mode 100644
index 98ba3483820636c06b23c3d811f64035ae0143c3..0000000000000000000000000000000000000000
--- a/neonView/SalesprojectMemberActivity_view/SalesprojectMemberActivity_view.aod
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
-  <name>SalesprojectMemberActivity_view</name>
-  <title>Project</title>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <layout>
-    <boxLayout>
-      <name>layout</name>
-      <direction>VERTICAL</direction>
-      <maxDirectionElements v="0" />
-      <autoHeight v="false" />
-    </boxLayout>
-  </layout>
-  <children>
-    <neonViewReference>
-      <name>ebf752f4-653d-4de3-9c81-c3e6ef692c48</name>
-      <entityField>Members</entityField>
-      <view>MemberDrawer_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>5e9b2286-227e-494d-a252-be29a50a093a</name>
-      <entityField>Activities</entityField>
-      <view>ActivityDrawer_view</view>
-    </neonViewReference>
-  </children>
-</neonView>
diff --git a/neonView/SalesprojectMilestoneChartPhase_view/SalesprojectMilestoneChartPhase_view.aod b/neonView/SalesprojectMilestoneChartPhase_view/SalesprojectMilestoneChartPhase_view.aod
index 2d7a4e08733c7f80c86a9ccc230bf382dfd1f231..c6c6f0717384cbebf1e09fe49a549db70e2d610e 100644
--- a/neonView/SalesprojectMilestoneChartPhase_view/SalesprojectMilestoneChartPhase_view.aod
+++ b/neonView/SalesprojectMilestoneChartPhase_view/SalesprojectMilestoneChartPhase_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectMilestoneChartPhase_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/SalesprojectMilestoneChartState_view/SalesprojectMilestoneChartState_view.aod b/neonView/SalesprojectMilestoneChartState_view/SalesprojectMilestoneChartState_view.aod
index 504c39d8affce88311959a90641cb9caf6572156..e87f75eaceba7f4c84e796430b59cc8f1aac694d 100644
--- a/neonView/SalesprojectMilestoneChartState_view/SalesprojectMilestoneChartState_view.aod
+++ b/neonView/SalesprojectMilestoneChartState_view/SalesprojectMilestoneChartState_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectMilestoneChartState_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/SalesprojectMilestoneInfo_view/SalesprojectMilestoneInfo_view.aod b/neonView/SalesprojectMilestoneInfo_view/SalesprojectMilestoneInfo_view.aod
index 178eb3816ff68e66731ce8faa605c31de9295f53..965ca73b487c64db86d0d42be802d619a6b1041e 100644
--- a/neonView/SalesprojectMilestoneInfo_view/SalesprojectMilestoneInfo_view.aod
+++ b/neonView/SalesprojectMilestoneInfo_view/SalesprojectMilestoneInfo_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectMilestoneInfo_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/SalesprojectMilestoneSource_view/SalesprojectMilestoneSource_view.aod b/neonView/SalesprojectMilestoneSource_view/SalesprojectMilestoneSource_view.aod
index 91f395b0f3c43bdd0ebfe9286f8716dbbba1b49e..e553f0741dea2ccbff42b2791ec9b005ffd85c8f 100644
--- a/neonView/SalesprojectMilestoneSource_view/SalesprojectMilestoneSource_view.aod
+++ b/neonView/SalesprojectMilestoneSource_view/SalesprojectMilestoneSource_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectMilestoneSource_view</name>
   <title>Occurrences</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/SalesprojectMilestone_view/SalesprojectMilestone_view.aod b/neonView/SalesprojectMilestone_view/SalesprojectMilestone_view.aod
index 990d8b1506642f35cb21cbf2d441417a1fdefcc9..007a86895c6a8687118cda94c9fa9051eb80b99c 100644
--- a/neonView/SalesprojectMilestone_view/SalesprojectMilestone_view.aod
+++ b/neonView/SalesprojectMilestone_view/SalesprojectMilestone_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectMilestone_view</name>
   <title></title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/SalesprojectMultiEdit_view/SalesprojectMultiEdit_view.aod b/neonView/SalesprojectMultiEdit_view/SalesprojectMultiEdit_view.aod
index 898af789d603f74dcafa0f8fa4937dc8ceeafb2f..82ff3fd5782ed9701bfaef2fd191edced58649c4 100644
--- a/neonView/SalesprojectMultiEdit_view/SalesprojectMultiEdit_view.aod
+++ b/neonView/SalesprojectMultiEdit_view/SalesprojectMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectMultiEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/SalesprojectOfferForecastChart_view/SalesprojectOfferForecastChart_view.aod b/neonView/SalesprojectOfferForecastChart_view/SalesprojectOfferForecastChart_view.aod
index 3423f5ee4f8b7bf6a08760be462a70e5d493c36b..fe0570c2dda3f2b799bad1a03909aa84af12a668 100644
--- a/neonView/SalesprojectOfferForecastChart_view/SalesprojectOfferForecastChart_view.aod
+++ b/neonView/SalesprojectOfferForecastChart_view/SalesprojectOfferForecastChart_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectOfferForecastChart_view</name>
   <title>Forecast</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/SalesprojectOfferForecast_view/SalesprojectOfferForecast_view.aod b/neonView/SalesprojectOfferForecast_view/SalesprojectOfferForecast_view.aod
index 2136aaa7a4b41cb8fe1dba81d552181f68c34498..6d39b58450421b59183f1a9945e59d49b3830270 100644
--- a/neonView/SalesprojectOfferForecast_view/SalesprojectOfferForecast_view.aod
+++ b/neonView/SalesprojectOfferForecast_view/SalesprojectOfferForecast_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectOfferForecast_view</name>
   <title></title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/SalesprojectOverview_view/SalesprojectOverview_view.aod b/neonView/SalesprojectOverview_view/SalesprojectOverview_view.aod
index 9a84bbb876ca23e4febca4440f2caaddaf6c263b..64be620c66f0e976034988cee063a49f7ea38638 100644
--- a/neonView/SalesprojectOverview_view/SalesprojectOverview_view.aod
+++ b/neonView/SalesprojectOverview_view/SalesprojectOverview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectOverview_view</name>
   <title>Overview</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
@@ -15,18 +15,14 @@
       <view>SalesprojectPhase_view</view>
     </neonViewReference>
     <neonViewReference>
-      <name>7c365878-0f88-4bc3-aed4-0667951e70af</name>
-      <entityField>SalesprojectPhaseMilestones</entityField>
-      <view>SalesprojectMilestoneInfo_view</view>
-      <devices>
-        <element>TABLET</element>
-        <element>DESKTOP</element>
-      </devices>
+      <name>43b80a09-de18-43ac-9d4f-d344cefc0381</name>
+      <entityField>ChecklistEntryValues</entityField>
+      <view>ChecklistEntryValueList_view</view>
     </neonViewReference>
     <neonViewReference>
-      <name>729108f8-a054-4ea7-9ef8-14b686c6340b</name>
-      <entityField>SalesprojectForecastCharts</entityField>
-      <view>TurnoverChartForcastDrawer_view</view>
+      <name>3e0550aa-832e-4d6c-a653-f765d92bbd86</name>
+      <entityField>Members</entityField>
+      <view>MemberDrawer_view</view>
     </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/SalesprojectPhaseDefinitionEdit_view/SalesprojectPhaseDefinitionEdit_view.aod b/neonView/SalesprojectPhaseDefinitionEdit_view/SalesprojectPhaseDefinitionEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..eae1779df434052cfd229767a2055813e6527285
--- /dev/null
+++ b/neonView/SalesprojectPhaseDefinitionEdit_view/SalesprojectPhaseDefinitionEdit_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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>SalesprojectPhaseDefinitionEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>genericViewTemplate</name>
+      <editMode v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>db76830d-c140-4205-bc32-57ad6cb8fb7b</name>
+          <entityField>PHASE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>f0aa8dd0-2cc1-4634-9509-db8b511e602d</name>
+          <entityField>DESCRIPTION</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+    <neonViewReference>
+      <name>def21f47-1a93-4865-a92c-5015243955e8</name>
+      <entityField>ChecklistEntries</entityField>
+      <view>ChecklistEntryMultiEdit_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/SalesprojectPhaseDefinitionFilter_view/SalesprojectPhaseDefinitionFilter_view.aod b/neonView/SalesprojectPhaseDefinitionFilter_view/SalesprojectPhaseDefinitionFilter_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..d7e3bd3cc976e7fb9fa401ffd7984140773daa5d
--- /dev/null
+++ b/neonView/SalesprojectPhaseDefinitionFilter_view/SalesprojectPhaseDefinitionFilter_view.aod
@@ -0,0 +1,38 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>SalesprojectPhaseDefinitionFilter_view</name>
+  <title>Traits</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>tableViewTemplate</name>
+      <iconField>#ICON</iconField>
+      <entityField>#ENTITY</entityField>
+      <linkedColumns />
+      <title>Traits</title>
+      <columns>
+        <neonTableColumn>
+          <name>64a213a9-5429-4e6b-9f7e-e23beb9f15b9</name>
+          <entityField>#ICON</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>7cd4dd99-ffc7-4207-9e81-874a5c71c2c2</name>
+          <entityField>PHASE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>80ea1a84-c6a1-4a12-b2fb-18c78d526119</name>
+          <entityField>traitCount</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>b44c14af-9a2a-405f-8e6a-e02fd9403c20</name>
+          <entityField>DESCRIPTION</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/SalesprojectPhaseDefinitionPreview_view/SalesprojectPhaseDefinitionPreview_view.aod b/neonView/SalesprojectPhaseDefinitionPreview_view/SalesprojectPhaseDefinitionPreview_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..a2fe192db764301468d9b71198c550cc677cf3de
--- /dev/null
+++ b/neonView/SalesprojectPhaseDefinitionPreview_view/SalesprojectPhaseDefinitionPreview_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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>SalesprojectPhaseDefinitionPreview_view</name>
+  <title>Traits</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <headerFooterLayout>
+      <name>layout</name>
+      <header>cardViewTemplate</header>
+    </headerFooterLayout>
+  </layout>
+  <children>
+    <cardViewTemplate>
+      <name>cardViewTemplate</name>
+      <iconField>#ICON</iconField>
+      <titleField>PHASE</titleField>
+      <subtitleField>SalesprojectPhaseFullname</subtitleField>
+      <entityField>#ENTITY</entityField>
+    </cardViewTemplate>
+    <neonViewReference>
+      <name>786e8ccd-b846-4968-8b6c-9e8cf13ba63c</name>
+      <entityField>ChecklistEntries</entityField>
+      <view>ChecklistEntryList_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/SalesprojectPhaseInfoTraitList_view/SalesprojectPhaseInfoTraitList_view.aod b/neonView/SalesprojectPhaseInfoTraitList_view/SalesprojectPhaseInfoTraitList_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..66589d53af1ec84be40e2d12d8226dc700d5edec
--- /dev/null
+++ b/neonView/SalesprojectPhaseInfoTraitList_view/SalesprojectPhaseInfoTraitList_view.aod
@@ -0,0 +1,10 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>SalesprojectPhaseInfoTraitList_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+</neonView>
diff --git a/neonView/SalesprojectPhaseStep_view/SalesprojectPhaseStep_view.aod b/neonView/SalesprojectPhaseStep_view/SalesprojectPhaseStep_view.aod
index 4d42cd968e9def7411f919c6ffd7bf9ef8412832..fc960734a0f1dc37c4475c7907d8256be905797f 100644
--- a/neonView/SalesprojectPhaseStep_view/SalesprojectPhaseStep_view.aod
+++ b/neonView/SalesprojectPhaseStep_view/SalesprojectPhaseStep_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectPhaseStep_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/SalesprojectPhase_view/SalesprojectPhase_view.aod b/neonView/SalesprojectPhase_view/SalesprojectPhase_view.aod
index 108a0a83781c41cb6fb918c83c504547cd29f3ed..9081c5409d86c134297c22e0886509dd25375129 100644
--- a/neonView/SalesprojectPhase_view/SalesprojectPhase_view.aod
+++ b/neonView/SalesprojectPhase_view/SalesprojectPhase_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectPhase_view</name>
   <title>Phase</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod b/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod
index b66fbad996f854b04d06ca3e3657cadc192579a0..db91bfb1b79095049298c48c0484e54c78c05269 100644
--- a/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod
+++ b/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -18,6 +18,7 @@
       <descriptionField>PROJECTCODE</descriptionField>
       <favoriteAction1>newActivity</favoriteAction1>
       <entityField>#ENTITY</entityField>
+      <informationField>DATE_NEW</informationField>
     </cardViewTemplate>
     <favoriteViewTemplate>
       <name>Favorites</name>
diff --git a/neonView/SalesprojectScoreCard_view/SalesprojectScoreCard_view.aod b/neonView/SalesprojectScoreCard_view/SalesprojectScoreCard_view.aod
index 6a0e513a643be14140cbb9d813397460e75b34da..6ab33f8dae76b440a0e06de971c0cb3e01e275cc 100644
--- a/neonView/SalesprojectScoreCard_view/SalesprojectScoreCard_view.aod
+++ b/neonView/SalesprojectScoreCard_view/SalesprojectScoreCard_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectScoreCard_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <dashletConfigurations>
diff --git a/neonView/SalesprojectSourceDrawer_view/SalesprojectSourceDrawer_view.aod b/neonView/SalesprojectSourceDrawer_view/SalesprojectSourceDrawer_view.aod
index 7bdd751a12baaa39512875c500cbaf49e5247b50..c2fe9fbafb65355f2e54c30ef48f8cf4b695fdc5 100644
--- a/neonView/SalesprojectSourceDrawer_view/SalesprojectSourceDrawer_view.aod
+++ b/neonView/SalesprojectSourceDrawer_view/SalesprojectSourceDrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectSourceDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/SalesprojectSourceEdit_view/SalesprojectSourceEdit_view.aod b/neonView/SalesprojectSourceEdit_view/SalesprojectSourceEdit_view.aod
index 056fcc4af211527fda469af4fa6ae96e8a8abdd9..0030fedd75e8ed312c84b98de56d3097e16a6c9d 100644
--- a/neonView/SalesprojectSourceEdit_view/SalesprojectSourceEdit_view.aod
+++ b/neonView/SalesprojectSourceEdit_view/SalesprojectSourceEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectSourceEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/SalesprojectSourceFilter_view/SalesprojectSourceFilter_view.aod b/neonView/SalesprojectSourceFilter_view/SalesprojectSourceFilter_view.aod
index ca41ad24d87b50d8d5ab56b98bc517506176fc93..029252781430d514625ad56eab2a5cf5f55dbea1 100644
--- a/neonView/SalesprojectSourceFilter_view/SalesprojectSourceFilter_view.aod
+++ b/neonView/SalesprojectSourceFilter_view/SalesprojectSourceFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectSourceFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -14,8 +14,8 @@
       <iconField>#ICON</iconField>
       <subtitleField>ENTRYDATE</subtitleField>
       <descriptionField>INFO</descriptionField>
-      <entityField>#ENTITY</entityField>
       <autoNewRow v="true" />
+      <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
           <name>03bb4d6e-0371-4175-aaa2-43d43bd4ff60</name>
diff --git a/neonView/SalesprojectSourcePreview_view/SalesprojectSourcePreview_view.aod b/neonView/SalesprojectSourcePreview_view/SalesprojectSourcePreview_view.aod
index b71758441e628d82806f8c5df2622c71f7d3fbbf..cc2f0edd78ffd871b30a352885b01d6d1d63e264 100644
--- a/neonView/SalesprojectSourcePreview_view/SalesprojectSourcePreview_view.aod
+++ b/neonView/SalesprojectSourcePreview_view/SalesprojectSourcePreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalesprojectSourcePreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/SalutationEdit_view/SalutationEdit_view.aod b/neonView/SalutationEdit_view/SalutationEdit_view.aod
index 3179d62093fcc07b1f389b13d5cb250ba2706d28..150a3dc3b913ceb88aef481cf708e8b0f0a0b10d 100644
--- a/neonView/SalutationEdit_view/SalutationEdit_view.aod
+++ b/neonView/SalutationEdit_view/SalutationEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalutationEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/SalutationFilter_view/SalutationFilter_view.aod b/neonView/SalutationFilter_view/SalutationFilter_view.aod
index d424e3369026a46a995b7a418cbf838ac36568c2..810ed36f9e5732d09831059226947b6975fee493 100644
--- a/neonView/SalutationFilter_view/SalutationFilter_view.aod
+++ b/neonView/SalutationFilter_view/SalutationFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SalutationFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -13,8 +13,8 @@
       <name>Salutations</name>
       <titleField>SALUTATION_TEXT</titleField>
       <subtitleField>TITLE</subtitleField>
-      <entityField>#ENTITY</entityField>
       <autoNewRow v="true" />
+      <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
           <name>ab3b9892-d5fa-4926-baf1-7f070ea7f68a</name>
diff --git a/neonView/SerialLetterAddRecipientsEdit_view/SerialLetterAddRecipientsEdit_view.aod b/neonView/SerialLetterAddRecipientsEdit_view/SerialLetterAddRecipientsEdit_view.aod
index cc896e3f349b75903b76419669dc8a6114b1dbd8..2733594e6f9293762b49ff10492b0bdae905d657 100644
--- a/neonView/SerialLetterAddRecipientsEdit_view/SerialLetterAddRecipientsEdit_view.aod
+++ b/neonView/SerialLetterAddRecipientsEdit_view/SerialLetterAddRecipientsEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SerialLetterAddRecipientsEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/SerialLetterEdit_view/SerialLetterEdit_view.aod b/neonView/SerialLetterEdit_view/SerialLetterEdit_view.aod
index f5d1223b1ab523e83dc460aa673a453ea907aeed..aaa65c4fae204850e0bfbf54b36e7b1feb7ff5c3 100644
--- a/neonView/SerialLetterEdit_view/SerialLetterEdit_view.aod
+++ b/neonView/SerialLetterEdit_view/SerialLetterEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SerialLetterEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/SerialLetterFilter_view/SerialLetterFilter_view.aod b/neonView/SerialLetterFilter_view/SerialLetterFilter_view.aod
index b95fda0d5aa82fbe89860b1c2df7197bdfa39a30..e4cd6299bc886c4b7d4e78d294cad6edfce3c4fe 100644
--- a/neonView/SerialLetterFilter_view/SerialLetterFilter_view.aod
+++ b/neonView/SerialLetterFilter_view/SerialLetterFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SerialLetterFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -38,34 +38,5 @@
         </neonTableColumn>
       </columns>
     </tableViewTemplate>
-    <treeTableViewTemplate>
-      <name>Treetable</name>
-      <entityField>#ENTITY</entityField>
-      <linkedColumns>
-        <element>TITLE</element>
-      </linkedColumns>
-      <columns>
-        <neonTreeTableColumn>
-          <name>cae0d686-5109-4106-9b35-421e79e265db</name>
-          <entityField>ICON</entityField>
-        </neonTreeTableColumn>
-        <neonTreeTableColumn>
-          <name>a5a9f4f1-14ad-4997-94c7-f76de7c5f8da</name>
-          <entityField>TITLE</entityField>
-        </neonTreeTableColumn>
-        <neonTreeTableColumn>
-          <name>dc1a061a-95fa-499e-aee4-9b49aed28cfc</name>
-          <entityField>STATUS</entityField>
-        </neonTreeTableColumn>
-        <neonTreeTableColumn>
-          <name>ec667f9a-65e3-482c-a459-87545b22af2a</name>
-          <entityField>DOCUMENTTEMPLATE_ID</entityField>
-        </neonTreeTableColumn>
-        <neonTreeTableColumn>
-          <name>88b074e6-587a-477f-97d6-fde128cae267</name>
-          <entityField>DESCRIPTION</entityField>
-        </neonTreeTableColumn>
-      </columns>
-    </treeTableViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/SerialLetterMain_view/SerialLetterMain_view.aod b/neonView/SerialLetterMain_view/SerialLetterMain_view.aod
index 1c9cdf0b094bc41c4fc264dd198c2ac56591c065..d2a889580c58ae379bc0e97ee742184dd5f3886d 100644
--- a/neonView/SerialLetterMain_view/SerialLetterMain_view.aod
+++ b/neonView/SerialLetterMain_view/SerialLetterMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SerialLetterMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/SerialLetterPreview_view/SerialLetterPreview_view.aod b/neonView/SerialLetterPreview_view/SerialLetterPreview_view.aod
index 14abcef6de4adcdc3e866f711d2b2df2d6d9a7af..3b5e8a363151d7a82ec6d9d4badf54ee9beb1a08 100644
--- a/neonView/SerialLetterPreview_view/SerialLetterPreview_view.aod
+++ b/neonView/SerialLetterPreview_view/SerialLetterPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SerialLetterPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/StockCount_view/StockCount_view.aod b/neonView/StockCount_view/StockCount_view.aod
index 20dd00eaeeb153506498a266e54d8e63495a4c0c..65d5046189776e7848bcf1d8593dcf225847e360 100644
--- a/neonView/StockCount_view/StockCount_view.aod
+++ b/neonView/StockCount_view/StockCount_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>StockCount_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/StockEdit_view/StockEdit_view.aod b/neonView/StockEdit_view/StockEdit_view.aod
index d82707019442985242b16ff9a393312e2b45493f..c2faa6f9581d224fda811866681b653fdfecf553 100644
--- a/neonView/StockEdit_view/StockEdit_view.aod
+++ b/neonView/StockEdit_view/StockEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>StockEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/StockFilter_view/StockFilter_view.aod b/neonView/StockFilter_view/StockFilter_view.aod
index cad57413e4d53e58c0299304425d869b393aaa75..ee17eed70c3c8e352f76b5c96d5c3cb9213dccdd 100644
--- a/neonView/StockFilter_view/StockFilter_view.aod
+++ b/neonView/StockFilter_view/StockFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>StockFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -11,8 +11,8 @@
   <children>
     <tableViewTemplate>
       <name>Stocks</name>
-      <entityField>#ENTITY</entityField>
       <autoNewRow v="true" />
+      <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
           <name>c57eed89-267a-4df6-9ac9-e9b5c5e49794</name>
diff --git a/neonView/SupportTicketEdit_view/SupportTicketEdit_view.aod b/neonView/SupportTicketEdit_view/SupportTicketEdit_view.aod
index aa9a3396de0262e9f69752d5a73aded63596ce0f..a8908a9932f906f4b5e1e2232cc8412f193f0adb 100644
--- a/neonView/SupportTicketEdit_view/SupportTicketEdit_view.aod
+++ b/neonView/SupportTicketEdit_view/SupportTicketEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SupportTicketEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/SupportTicketFilter_view/SupportTicketFilter_view.aod b/neonView/SupportTicketFilter_view/SupportTicketFilter_view.aod
index 7b5e818ce4f7b63cc5acc2d5e86ff805aa06d317..1d9687601da8ca2f0584ad1474b992f2a685cb7a 100644
--- a/neonView/SupportTicketFilter_view/SupportTicketFilter_view.aod
+++ b/neonView/SupportTicketFilter_view/SupportTicketFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SupportTicketFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -42,6 +42,7 @@
       <descriptionField>TASK_DESCRIPTION</descriptionField>
       <iconIdField>TASK_PRIORITY_ICON</iconIdField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
     </timelineViewTemplate>
     <tableViewTemplate>
       <name>TicketsTable</name>
@@ -50,6 +51,7 @@
       <subtitleField>TASK_STATUS</subtitleField>
       <descriptionField>TASK_REQUESTOR_CONTACT_ID</descriptionField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
       <linkedColumns>
         <element>TASK_SUBJECT</element>
       </linkedColumns>
@@ -97,6 +99,7 @@
     <treeTableViewTemplate>
       <name>Treetable</name>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
       <linkedColumns>
         <element>TASK_SUBJECT</element>
       </linkedColumns>
diff --git a/neonView/SupportTicketMain_view/SupportTicketMain_view.aod b/neonView/SupportTicketMain_view/SupportTicketMain_view.aod
index 529d000dc9df0098eb2e4ade7ef43fb483b06d04..8831172e97de1cfd83232e5dafcd545297d1fa68 100644
--- a/neonView/SupportTicketMain_view/SupportTicketMain_view.aod
+++ b/neonView/SupportTicketMain_view/SupportTicketMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SupportTicketMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/SupportTicketPreview_view/SupportTicketPreview_view.aod b/neonView/SupportTicketPreview_view/SupportTicketPreview_view.aod
index 48b48a2a48f8e708592ca947d409de64ffa6243f..d36961f5c1b46484112c9d1b6d3202d459f3dfbb 100644
--- a/neonView/SupportTicketPreview_view/SupportTicketPreview_view.aod
+++ b/neonView/SupportTicketPreview_view/SupportTicketPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>SupportTicketPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/TaskEdit_view/TaskEdit_view.aod b/neonView/TaskEdit_view/TaskEdit_view.aod
index c71ca1b6b43b2522f704cd4bacf0e368e715fa34..2b71627debb49c2810bf855c04f4d656759c0cd3 100644
--- a/neonView/TaskEdit_view/TaskEdit_view.aod
+++ b/neonView/TaskEdit_view/TaskEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TaskEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/TaskFilter_view/TaskFilter_view.aod b/neonView/TaskFilter_view/TaskFilter_view.aod
index 77601cb3a2e8a1775811b18d1bcc1e4ba4e47f1e..faced0e15204ee9aeb0cb85500539ea28f127d32 100644
--- a/neonView/TaskFilter_view/TaskFilter_view.aod
+++ b/neonView/TaskFilter_view/TaskFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TaskFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -40,6 +40,7 @@
       <descriptionField>DESCRIPTION</descriptionField>
       <iconIdField>PRIORITY_ICON</iconIdField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
     </timelineViewTemplate>
     <tableViewTemplate>
       <name>TasksTable</name>
@@ -47,6 +48,7 @@
       <titleField>SUBJECT</titleField>
       <subtitleField>STATUS</subtitleField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
       <linkedColumns>
         <element>SUBJECT</element>
       </linkedColumns>
@@ -93,6 +95,7 @@
     <treeTableViewTemplate>
       <name>Treetable</name>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1>
       <linkedColumns>
         <element>SUBJECT</element>
       </linkedColumns>
diff --git a/neonView/TaskLinkFilter_view/TaskLinkFilter_view.aod b/neonView/TaskLinkFilter_view/TaskLinkFilter_view.aod
index f9e1e3aa8a206dd68d46341407e4d7091065f3e3..b10947f18f69a634a169458f67ad7f9eeadbf82f 100644
--- a/neonView/TaskLinkFilter_view/TaskLinkFilter_view.aod
+++ b/neonView/TaskLinkFilter_view/TaskLinkFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TaskLinkFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -10,8 +10,8 @@
   <children>
     <tableViewTemplate>
       <name>TaskLinks</name>
-      <entityField>#ENTITY</entityField>
       <autoNewRow v="true" />
+      <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
           <name>4d2b280c-adb2-4977-b70a-ba07959e44c2</name>
diff --git a/neonView/TaskLinkMultiEdit_view/TaskLinkMultiEdit_view.aod b/neonView/TaskLinkMultiEdit_view/TaskLinkMultiEdit_view.aod
index 04ab701524e9f56f8011af05f37ed687724ae34d..0b3a994afb4dbc874837a1ebb02c8e6c5f903ad7 100644
--- a/neonView/TaskLinkMultiEdit_view/TaskLinkMultiEdit_view.aod
+++ b/neonView/TaskLinkMultiEdit_view/TaskLinkMultiEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TaskLinkMultiEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/TaskLinkPreviewList_view/TaskLinkPreviewList_view.aod b/neonView/TaskLinkPreviewList_view/TaskLinkPreviewList_view.aod
index 4427da0dd67d159beda9dabc88707711ad649aea..a038e359633ae3858a619eaaf0452c1b1f6c08f5 100644
--- a/neonView/TaskLinkPreviewList_view/TaskLinkPreviewList_view.aod
+++ b/neonView/TaskLinkPreviewList_view/TaskLinkPreviewList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TaskLinkPreviewList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/TaskLinkPreview_view/TaskLinkPreview_view.aod b/neonView/TaskLinkPreview_view/TaskLinkPreview_view.aod
index 14b9249b2862a6f1e2b60d7f229a4b7ae5003e8c..7877a000a431e6000e15967b2ebb5c37a28b1948 100644
--- a/neonView/TaskLinkPreview_view/TaskLinkPreview_view.aod
+++ b/neonView/TaskLinkPreview_view/TaskLinkPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TaskLinkPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/TaskMain_view/TaskMain_view.aod b/neonView/TaskMain_view/TaskMain_view.aod
index ad38b461f3fc3cf9f54cacc711137d64e6c816f7..a45d31453728d8ffc620ac13e75c8f4b8f73b881 100644
--- a/neonView/TaskMain_view/TaskMain_view.aod
+++ b/neonView/TaskMain_view/TaskMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TaskMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/TaskPreview_view/TaskPreview_view.aod b/neonView/TaskPreview_view/TaskPreview_view.aod
index 82ac185b0f1e9de45ce3d8e6fcd7ce38489c488e..ba8dd59ebf6637edf37ba1ebf4620fa665d2dde1 100644
--- a/neonView/TaskPreview_view/TaskPreview_view.aod
+++ b/neonView/TaskPreview_view/TaskPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TaskPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/TimetrackingAnalysesDrawer_view/TimetrackingAnalysesDrawer_view.aod b/neonView/TimetrackingAnalysesDrawer_view/TimetrackingAnalysesDrawer_view.aod
index 17633107ed9899637cc94a15779f8aecdf3f2a43..6111ce4bcb92285039ba4e0c0d627a799ba24222 100644
--- a/neonView/TimetrackingAnalysesDrawer_view/TimetrackingAnalysesDrawer_view.aod
+++ b/neonView/TimetrackingAnalysesDrawer_view/TimetrackingAnalysesDrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TimetrackingAnalysesDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/TimetrackingAnalyses_view/TimetrackingAnalyses_view.aod b/neonView/TimetrackingAnalyses_view/TimetrackingAnalyses_view.aod
index 2ea1d75c892375e2370252cfd070543b4f9386c9..7d9b1f67ab705dcdc1d6e387e09fef42304b611a 100644
--- a/neonView/TimetrackingAnalyses_view/TimetrackingAnalyses_view.aod
+++ b/neonView/TimetrackingAnalyses_view/TimetrackingAnalyses_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TimetrackingAnalyses_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/TimetrackingDrawer_view/TimetrackingDrawer_view.aod b/neonView/TimetrackingDrawer_view/TimetrackingDrawer_view.aod
index 228cf5d6e7ed661a7bdf84fb2f01f6b1c6088ea9..ef360b0824832cde6204a05fa84e44fd5a55dcb1 100644
--- a/neonView/TimetrackingDrawer_view/TimetrackingDrawer_view.aod
+++ b/neonView/TimetrackingDrawer_view/TimetrackingDrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TimetrackingDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/TimetrackingEdit_view/TimetrackingEdit_view.aod b/neonView/TimetrackingEdit_view/TimetrackingEdit_view.aod
index 231020b4962ac1c21622fe25641624037f7c1caa..58037793ae16b7fa4f5a77c860e1a9bf99768b08 100644
--- a/neonView/TimetrackingEdit_view/TimetrackingEdit_view.aod
+++ b/neonView/TimetrackingEdit_view/TimetrackingEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TimetrackingEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/TimetrackingFilterAnalyses/TimetrackingFilterAnalyses.aod b/neonView/TimetrackingFilterAnalyses/TimetrackingFilterAnalyses.aod
index c0befff541865182bae70f41c7ab2914b5fc9982..4d9d501ac5a478f92707a6b9d34ce190f50fca5f 100644
--- a/neonView/TimetrackingFilterAnalyses/TimetrackingFilterAnalyses.aod
+++ b/neonView/TimetrackingFilterAnalyses/TimetrackingFilterAnalyses.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TimetrackingFilterAnalyses</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/TimetrackingFilter_view/TimetrackingFilter_view.aod b/neonView/TimetrackingFilter_view/TimetrackingFilter_view.aod
index c05c5db874a747d5fb6c8e5803fafd6a5aea9c8a..4a8121fb008d4e37a98e6ed4bda8b76cab0fe4dd 100644
--- a/neonView/TimetrackingFilter_view/TimetrackingFilter_view.aod
+++ b/neonView/TimetrackingFilter_view/TimetrackingFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TimetrackingFilter_view</name>
   <title>Timetracking</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/TimetrackingPreview_view/TimetrackingPreview_view.aod b/neonView/TimetrackingPreview_view/TimetrackingPreview_view.aod
index 1a76cbc61d1c1efc7b2d69f8775969944940d270..59b86472d8ec3e83e6776e830bd9f79963d02b2b 100644
--- a/neonView/TimetrackingPreview_view/TimetrackingPreview_view.aod
+++ b/neonView/TimetrackingPreview_view/TimetrackingPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TimetrackingPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/TimetrackingScore_view/TimetrackingScore_view.aod b/neonView/TimetrackingScore_view/TimetrackingScore_view.aod
index 1efd3641c31f865130d06335522cd7f0c1c24e7b..b917527b2bcccd9eac06417ca3febfea50e85c47 100644
--- a/neonView/TimetrackingScore_view/TimetrackingScore_view.aod
+++ b/neonView/TimetrackingScore_view/TimetrackingScore_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TimetrackingScore_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/TurnoverChartForcastDrawer_view/TurnoverChartForcastDrawer_view.aod b/neonView/TurnoverChartForcastDrawer_view/TurnoverChartForcastDrawer_view.aod
index 602bf1fed837fbcd4c6261374cc0e939e716664c..822f538124d54c85668652f8ea98a7d4a0ac7c58 100644
--- a/neonView/TurnoverChartForcastDrawer_view/TurnoverChartForcastDrawer_view.aod
+++ b/neonView/TurnoverChartForcastDrawer_view/TurnoverChartForcastDrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TurnoverChartForcastDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/TurnoverChartForecast_view/TurnoverChartForecast_view.aod b/neonView/TurnoverChartForecast_view/TurnoverChartForecast_view.aod
index 962a05e05a00d3a8e3b14c9c13155b0e291e4191..18f49bdb6b2dddd83f8d73e7a2393055875d4118 100644
--- a/neonView/TurnoverChartForecast_view/TurnoverChartForecast_view.aod
+++ b/neonView/TurnoverChartForecast_view/TurnoverChartForecast_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TurnoverChartForecast_view</name>
   <title>Forecast</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/TurnoverChart_view/TurnoverChart_view.aod b/neonView/TurnoverChart_view/TurnoverChart_view.aod
index 09c915ae244fe4d5a1f755ef287ef850ef2cd3c4..07cfd2bbfef91b1a3274bdacd8cffd37028df55a 100644
--- a/neonView/TurnoverChart_view/TurnoverChart_view.aod
+++ b/neonView/TurnoverChart_view/TurnoverChart_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TurnoverChart_view</name>
   <title></title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/TurnoverTree_view/TurnoverTree_view.aod b/neonView/TurnoverTree_view/TurnoverTree_view.aod
index b8e357571efbdf7dba180bb5021456caba0582d7..4b33519dcd4a6551a6b9ca3b46c9926a8e24ae62 100644
--- a/neonView/TurnoverTree_view/TurnoverTree_view.aod
+++ b/neonView/TurnoverTree_view/TurnoverTree_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TurnoverTree_view</name>
   <title>Tree</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/TwitterTimeline_view/TwitterTimeline_view.aod b/neonView/TwitterTimeline_view/TwitterTimeline_view.aod
index 167eb2982e309c2928a18e105d42ba7f84a93c40..3fc3b488899be2dfa9a7615ce4e0106ecd23a608 100644
--- a/neonView/TwitterTimeline_view/TwitterTimeline_view.aod
+++ b/neonView/TwitterTimeline_view/TwitterTimeline_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>TwitterTimeline_view</name>
   <title>Twitter</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/UniversalFileProcessorDropzone_view/UniversalFileProcessorDropzone_view.aod b/neonView/UniversalFileProcessorDropzone_view/UniversalFileProcessorDropzone_view.aod
index 441059938ffb4695c93c648ec837b9ae33bc881a..66e4be45417302fd74c62d3145cb446e042c1145 100644
--- a/neonView/UniversalFileProcessorDropzone_view/UniversalFileProcessorDropzone_view.aod
+++ b/neonView/UniversalFileProcessorDropzone_view/UniversalFileProcessorDropzone_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>UniversalFileProcessorDropzone_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <dashletConfigurations>
diff --git a/neonView/UnlinkedMailFilter_view/UnlinkedMailFilter_view.aod b/neonView/UnlinkedMailFilter_view/UnlinkedMailFilter_view.aod
index fc53c28edde7f3d5d71b910bde1f7734d1406a88..e208b3f319f81b9d2649bbdb2fb1fba3d9d6ea3a 100644
--- a/neonView/UnlinkedMailFilter_view/UnlinkedMailFilter_view.aod
+++ b/neonView/UnlinkedMailFilter_view/UnlinkedMailFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>UnlinkedMailFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <dashletConfigurations>
@@ -25,8 +25,8 @@
   <children>
     <tableViewTemplate>
       <name>mailsTable</name>
-      <favoriteActionGroup1>ToActivity_ActionGroup</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>ToActivity_ActionGroup</favoriteActionGroup1>
       <columns>
         <neonTableColumn>
           <name>f605b2ae-fde3-4df6-9a91-cf32fb5941de</name>
@@ -52,8 +52,8 @@
     </tableViewTemplate>
     <treeTableViewTemplate>
       <name>Treetable</name>
-      <favoriteActionGroup1>ToActivity_ActionGroup</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>ToActivity_ActionGroup</favoriteActionGroup1>
       <columns>
         <neonTreeTableColumn>
           <name>1d197952-0732-4af2-a41e-7d490c679762</name>
diff --git a/neonView/UnlinkedMailMappingLinkList_view/UnlinkedMailMappingLinkList_view.aod b/neonView/UnlinkedMailMappingLinkList_view/UnlinkedMailMappingLinkList_view.aod
index 6be9cc5af6fe0afb70008e328e9c1c371239ac21..1aced0e43b68123385ca94a3a5f765574c397d7a 100644
--- a/neonView/UnlinkedMailMappingLinkList_view/UnlinkedMailMappingLinkList_view.aod
+++ b/neonView/UnlinkedMailMappingLinkList_view/UnlinkedMailMappingLinkList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>UnlinkedMailMappingLinkList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/UnlinkedMailMappingWrapperMapping_view/UnlinkedMailMappingWrapperMapping_view.aod b/neonView/UnlinkedMailMappingWrapperMapping_view/UnlinkedMailMappingWrapperMapping_view.aod
index dec9ecc2091d723dd1c8cc91780346fe776c9b53..c400d2f7f5618137b0c17a4a896b004950a6d30e 100644
--- a/neonView/UnlinkedMailMappingWrapperMapping_view/UnlinkedMailMappingWrapperMapping_view.aod
+++ b/neonView/UnlinkedMailMappingWrapperMapping_view/UnlinkedMailMappingWrapperMapping_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>UnlinkedMailMappingWrapperMapping_view</name>
   <title>Link e-mail addresses to contacts</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/Userhelp_FilterView/Userhelp_FilterView.aod b/neonView/Userhelp_FilterView/Userhelp_FilterView.aod
index 88b815cc8abf6bce8158d4c51a19641f4f8dfb38..70eb034bc4c9a03f88238ac69287c471cc6a1165 100644
--- a/neonView/Userhelp_FilterView/Userhelp_FilterView.aod
+++ b/neonView/Userhelp_FilterView/Userhelp_FilterView.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>Userhelp_FilterView</name>
   <title>Userhelp Ressources</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/UsersettingsEdit_view/UsersettingsEdit_view.aod b/neonView/UsersettingsEdit_view/UsersettingsEdit_view.aod
index 4a500fdf7246e1762edf965f7bb31092bfd8dd13..fdd70da5d99fc842a5d72c26149d604c6f3f021b 100644
--- a/neonView/UsersettingsEdit_view/UsersettingsEdit_view.aod
+++ b/neonView/UsersettingsEdit_view/UsersettingsEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>UsersettingsEdit_view</name>
   <title>Settings</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/VisitPlanEmployeeWeekEdit_view/VisitPlanEmployeeWeekEdit_view.aod b/neonView/VisitPlanEmployeeWeekEdit_view/VisitPlanEmployeeWeekEdit_view.aod
index f4bb8a7d21fd3c6fb354e0a481161cc9ea5b7d59..79683ae83a25b71c65b8efcbe9d0361c4a4c9daa 100644
--- a/neonView/VisitPlanEmployeeWeekEdit_view/VisitPlanEmployeeWeekEdit_view.aod
+++ b/neonView/VisitPlanEmployeeWeekEdit_view/VisitPlanEmployeeWeekEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>VisitPlanEmployeeWeekEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/VisitPlanEmployeeWeekFilter_view/VisitPlanEmployeeWeekFilter_view.aod b/neonView/VisitPlanEmployeeWeekFilter_view/VisitPlanEmployeeWeekFilter_view.aod
index 6de254467a3bcc67474914322890efc32e456afb..fa8ae954af7a0b9703e39279bbd0ea30f52bb482 100644
--- a/neonView/VisitPlanEmployeeWeekFilter_view/VisitPlanEmployeeWeekFilter_view.aod
+++ b/neonView/VisitPlanEmployeeWeekFilter_view/VisitPlanEmployeeWeekFilter_view.aod
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>VisitPlanEmployeeWeekFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
-  <filterable v="false" />
+  <filterable v="true" />
   <layout>
     <groupLayout>
       <name>layout</name>
@@ -27,6 +27,10 @@
           <name>41e665d5-0bcf-4e33-8080-809d839da15d</name>
           <entityField>YEAR</entityField>
         </neonTableColumn>
+        <neonTableColumn>
+          <name>51af23cb-462b-4b40-8923-97c9c9120dd1</name>
+          <entityField>CONTACT_ID</entityField>
+        </neonTableColumn>
         <neonTableColumn>
           <name>a5b55587-841d-42d5-b4b7-eff55f6f6858</name>
           <entityField>entriescount</entityField>
@@ -68,6 +72,10 @@
           <name>6a11aa05-3879-46f2-9944-2006d9caf928</name>
           <entityField>YEAR</entityField>
         </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>d8055245-cf8d-40cd-ad59-627c564d831d</name>
+          <entityField>CONTACT_ID</entityField>
+        </neonTreeTableColumn>
         <neonTreeTableColumn>
           <name>8db139d9-7dd7-4ea2-9c73-1c0accec2ef5</name>
           <entityField>entriescount</entityField>
diff --git a/neonView/VisitPlanEmployeeWeekMain_view/VisitPlanEmployeeWeekMain_view.aod b/neonView/VisitPlanEmployeeWeekMain_view/VisitPlanEmployeeWeekMain_view.aod
index 6bd22ba2b15c5b858651e3df4a95f1b69100c5d1..7c9a20eb60022736b20ff794ed4ce5a5e34c0640 100644
--- a/neonView/VisitPlanEmployeeWeekMain_view/VisitPlanEmployeeWeekMain_view.aod
+++ b/neonView/VisitPlanEmployeeWeekMain_view/VisitPlanEmployeeWeekMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>VisitPlanEmployeeWeekMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/VisitPlanEmployeeWeekPreview_view/VisitPlanEmployeeWeekPreview_view.aod b/neonView/VisitPlanEmployeeWeekPreview_view/VisitPlanEmployeeWeekPreview_view.aod
index ec7824e9dea6a39448816cd25514e31cd7b79504..da7c56837c6b96d02e8d629729aeb7063fc4dff2 100644
--- a/neonView/VisitPlanEmployeeWeekPreview_view/VisitPlanEmployeeWeekPreview_view.aod
+++ b/neonView/VisitPlanEmployeeWeekPreview_view/VisitPlanEmployeeWeekPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>VisitPlanEmployeeWeekPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/VisitPlanEntryEdit_view/VisitPlanEntryEdit_view.aod b/neonView/VisitPlanEntryEdit_view/VisitPlanEntryEdit_view.aod
index 4a216530f8c322ab9d408cf5e305e0423d473f33..9bcde0169b908aaad8183990e9e1c80ce9f3004d 100644
--- a/neonView/VisitPlanEntryEdit_view/VisitPlanEntryEdit_view.aod
+++ b/neonView/VisitPlanEntryEdit_view/VisitPlanEntryEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>VisitPlanEntryEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
@@ -28,6 +28,14 @@
           <name>8347bc87-30f2-4335-b824-23e107b949b5</name>
           <entityField>ENTRYDATE</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>be3740d4-344b-454d-a857-cedfa8177015</name>
+          <entityField>STATUS</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>7536ef8c-6888-40b9-adb0-42d8b4e2eb42</name>
+          <entityField>STATUS_APPOINTMENT</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>99cbd482-b7c7-4d5b-a17e-62f9ab49db8a</name>
           <entityField>BEGIN_TIME</entityField>
@@ -36,6 +44,10 @@
           <name>75e0b2e9-2cd9-4d27-a696-2494ec79daa4</name>
           <entityField>END_TIME</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>78926e28-339b-41fe-a9bf-e5a49d07508f</name>
+          <entityField>VISITPLANEMPLOYEEWEEK_INFO</entityField>
+        </entityFieldLink>
       </fields>
     </genericViewTemplate>
   </children>
diff --git a/neonView/VisitPlanEntryFilter_view/VisitPlanEntryFilter_view.aod b/neonView/VisitPlanEntryFilter_view/VisitPlanEntryFilter_view.aod
index d98e4cb1e5a0b94cb927ad4f019a2d4e8fb3e903..3fb2b9ac85512d860ac933badd0c3e9bb364a286 100644
--- a/neonView/VisitPlanEntryFilter_view/VisitPlanEntryFilter_view.aod
+++ b/neonView/VisitPlanEntryFilter_view/VisitPlanEntryFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>VisitPlanEntryFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="false" />
@@ -37,8 +37,8 @@
     <treeTableViewTemplate>
       <name>TreeTable</name>
       <parentField>PARENT_ID</parentField>
-      <favoriteActionGroup1>entityActionGroup</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>entityActionGroup</favoriteActionGroup1>
       <columns>
         <neonTreeTableColumn>
           <name>d728f2d9-c223-47fd-9372-6f49203f68fd</name>
@@ -64,6 +64,10 @@
           <name>ca75adc7-5405-40af-bda0-52ae38e61f76</name>
           <entityField>STATUS</entityField>
         </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>c3110972-795b-4293-b082-8f8bee1aa2ec</name>
+          <entityField>STATUS_APPOINTMENT</entityField>
+        </neonTreeTableColumn>
       </columns>
     </treeTableViewTemplate>
   </children>
diff --git a/neonView/VisitRecommendationEdit_view/VisitRecommendationEdit_view.aod b/neonView/VisitRecommendationEdit_view/VisitRecommendationEdit_view.aod
index d58550498e10e16ee96233d559788ae0c579063b..78b9c3992193140c386b1d8656131a673144b47d 100644
--- a/neonView/VisitRecommendationEdit_view/VisitRecommendationEdit_view.aod
+++ b/neonView/VisitRecommendationEdit_view/VisitRecommendationEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>VisitRecommendationEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
@@ -20,6 +20,14 @@
           <name>1356cbc2-646b-4277-8671-cf004b2dffd8</name>
           <entityField>CONTACT_ID</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>10948f7e-84ad-4647-83a0-e5003044c797</name>
+          <entityField>CONTACT_PERSON_ID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>345df51a-686b-4960-b434-550cb6dd4d08</name>
+          <entityField>RESPONSIBLE</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>f4c34f77-c8cd-4eeb-a172-2f22a6de4029</name>
           <entityField>DUE_DATE</entityField>
diff --git a/neonView/VisitRecommendationFilter_view/VisitRecommendationFilter_view.aod b/neonView/VisitRecommendationFilter_view/VisitRecommendationFilter_view.aod
index c841039215a5b2ef2c4b23d68650e385f56a3bcf..a0da27ee4752c698ae4ebc2591996ac9a52824b5 100644
--- a/neonView/VisitRecommendationFilter_view/VisitRecommendationFilter_view.aod
+++ b/neonView/VisitRecommendationFilter_view/VisitRecommendationFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>VisitRecommendationFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -11,23 +11,43 @@
   <children>
     <tableViewTemplate>
       <name>Table</name>
-      <favoriteActionGroup1>newEntryGroup</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>newEntryGroup</favoriteActionGroup1>
       <isCreatable v="true" />
       <isDeletable v="true" />
       <isEditable v="true" />
       <columns>
         <neonTableColumn>
           <name>a87306f5-45b1-4969-ab2b-c6d17b54c4de</name>
-          <entityField>PRIORITY_ICON</entityField>
+          <entityField>ICON</entityField>
         </neonTableColumn>
         <neonTableColumn>
           <name>44659323-f1b5-4b29-afbf-eac2e7219e30</name>
           <entityField>ORGANISATION_NAME</entityField>
         </neonTableColumn>
         <neonTableColumn>
-          <name>703fad3a-2d5f-47b4-8cc3-edf14c08afef</name>
-          <entityField>ORGANISATION_ADDRESS</entityField>
+          <name>60559b0a-8a8a-4f1c-9489-83a26d250d57</name>
+          <entityField>CONTACT_PERSON_ID</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>b18d68b1-b592-4bd8-977c-3d5fcfbf60da</name>
+          <entityField>STREET</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>8dc56a28-7618-45c2-8bca-ffcb606f29b0</name>
+          <entityField>COUNTRY</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>ad163103-0080-4d54-b6b3-5de8b4653ad8</name>
+          <entityField>ZIP</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>ca45977f-a6f0-4e37-a736-55093b98b738</name>
+          <entityField>CITY</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>4d93f307-d229-43de-8e14-706a725e969e</name>
+          <entityField>RESPONSIBLE</entityField>
         </neonTableColumn>
         <neonTableColumn>
           <name>964bed99-4474-4017-b3cf-d6d51eb5b445</name>
@@ -41,6 +61,10 @@
           <name>85536cbf-d252-486e-a7ca-74b3ee9486c5</name>
           <entityField>DUE_DATE</entityField>
         </neonTableColumn>
+        <neonTableColumn>
+          <name>ced0751b-260b-4b24-b172-7dbcec016b98</name>
+          <entityField>USER_NEW</entityField>
+        </neonTableColumn>
         <neonTableColumn>
           <name>e11dc9c2-73fe-4b21-96cb-01bbe69f6bd7</name>
           <entityField>INFO</entityField>
@@ -49,20 +73,40 @@
     </tableViewTemplate>
     <treeTableViewTemplate>
       <name>Treetable</name>
-      <favoriteActionGroup1>newEntryGroup</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>newEntryGroup</favoriteActionGroup1>
       <columns>
         <neonTreeTableColumn>
           <name>297bae8e-4d8c-4fbf-90fb-240369d48ff9</name>
-          <entityField>PRIORITY_ICON</entityField>
+          <entityField>ICON</entityField>
         </neonTreeTableColumn>
         <neonTreeTableColumn>
           <name>621b2bf8-280a-4bd8-9a09-9cad5bdcda0e</name>
           <entityField>ORGANISATION_NAME</entityField>
         </neonTreeTableColumn>
         <neonTreeTableColumn>
-          <name>6a98ae55-a30e-48d4-8d45-1c63a359af5e</name>
-          <entityField>ORGANISATION_ADDRESS</entityField>
+          <name>009230b5-a78c-4718-875e-7ccfe080f348</name>
+          <entityField>CONTACT_PERSON_ID</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>b88f4159-c816-4955-877e-ed973a111aca</name>
+          <entityField>STREET</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>81d71829-f0db-4320-9ae8-b1863b45a7db</name>
+          <entityField>COUNTRY</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>e6de8082-b860-4d4d-a5a5-f73b62554ea6</name>
+          <entityField>ZIP</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>ece04c42-ac19-4565-829f-0c437e2c97e7</name>
+          <entityField>CITY</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>599ba04b-e1c4-4feb-89c9-850ab954fbb2</name>
+          <entityField>RESPONSIBLE</entityField>
         </neonTreeTableColumn>
         <neonTreeTableColumn>
           <name>8f02f53e-8e60-4c71-9fb3-5a4b32ff0776</name>
@@ -76,6 +120,10 @@
           <name>c2ca0e43-a94f-460b-8a42-4bc3a3755213</name>
           <entityField>DUE_DATE</entityField>
         </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>84116ee7-a557-4ef3-892e-beea40c1290a</name>
+          <entityField>USER_NEW</entityField>
+        </neonTreeTableColumn>
         <neonTreeTableColumn>
           <name>2fa2eb56-28ec-4bdc-a1ff-1ca0e26ab407</name>
           <entityField>INFO</entityField>
diff --git a/neonView/WorkflowDefinitionDiagram_view/WorkflowDefinitionDiagram_view.aod b/neonView/WorkflowDefinitionDiagram_view/WorkflowDefinitionDiagram_view.aod
index 2cc729ddd7c65cdf2f1965a277e0c690b856fd7a..9a92aa4e37b2c147a926f3975c6a6fbcbe563f42 100644
--- a/neonView/WorkflowDefinitionDiagram_view/WorkflowDefinitionDiagram_view.aod
+++ b/neonView/WorkflowDefinitionDiagram_view/WorkflowDefinitionDiagram_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowDefinitionDiagram_view</name>
   <title>Diagram</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/WorkflowDefinitionEdit_view/WorkflowDefinitionEdit_view.aod b/neonView/WorkflowDefinitionEdit_view/WorkflowDefinitionEdit_view.aod
index d0aaeebbaa361abc7c40f805605710e08afe8167..278d86dc99b2c20b652e1bc2b71d58426b391fc9 100644
--- a/neonView/WorkflowDefinitionEdit_view/WorkflowDefinitionEdit_view.aod
+++ b/neonView/WorkflowDefinitionEdit_view/WorkflowDefinitionEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowDefinitionEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod b/neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod
index 41ffef96290756599469bfd2da5878612c27a6d2..42998a6023b139ded75e67c107a863aa15644fc2 100644
--- a/neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod
+++ b/neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowDefinitionFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -17,14 +17,14 @@
       <descriptionField>DESCRIPTION</descriptionField>
       <infoTopField>VERSION_TITLE</infoTopField>
       <infoBottomField>CATEGORY</infoBottomField>
-      <favoriteActionGroup1>tableActions</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>tableActions</favoriteActionGroup1>
       <isCreatable v="true" />
     </tilesViewTemplate>
     <treeTableViewTemplate>
       <name>Treetable</name>
-      <favoriteActionGroup1>tableActions</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>tableActions</favoriteActionGroup1>
       <linkedColumns>
         <element>NAME</element>
       </linkedColumns>
diff --git a/neonView/WorkflowDefinitionMain_view/WorkflowDefinitionMain_view.aod b/neonView/WorkflowDefinitionMain_view/WorkflowDefinitionMain_view.aod
index 29de742a06ef3ab1002a499e8505752240873397..b5732f24c8c1b58aeda44d2a25c8cf1881210424 100644
--- a/neonView/WorkflowDefinitionMain_view/WorkflowDefinitionMain_view.aod
+++ b/neonView/WorkflowDefinitionMain_view/WorkflowDefinitionMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowDefinitionMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/WorkflowDefinitionPreview_view/WorkflowDefinitionPreview_view.aod b/neonView/WorkflowDefinitionPreview_view/WorkflowDefinitionPreview_view.aod
index 7f955c5616034ee3bc71ca328f071c2c5857c6cb..dbfa4e647449c5685275d81025071b046e1c39b1 100644
--- a/neonView/WorkflowDefinitionPreview_view/WorkflowDefinitionPreview_view.aod
+++ b/neonView/WorkflowDefinitionPreview_view/WorkflowDefinitionPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowDefinitionPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/WorkflowInstanceDiagram_view/WorkflowInstanceDiagram_view.aod b/neonView/WorkflowInstanceDiagram_view/WorkflowInstanceDiagram_view.aod
index 98f6b6921707a9308b2a03fe386a4d951cf77197..10b9d5ab2d2f84e2e332ab029513fc2e2db55010 100644
--- a/neonView/WorkflowInstanceDiagram_view/WorkflowInstanceDiagram_view.aod
+++ b/neonView/WorkflowInstanceDiagram_view/WorkflowInstanceDiagram_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowInstanceDiagram_view</name>
   <title>Diagram</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/WorkflowInstanceEdit_view/WorkflowInstanceEdit_view.aod b/neonView/WorkflowInstanceEdit_view/WorkflowInstanceEdit_view.aod
index 0d3e0c89b95fed64001f0f0b1f4314bb85eae42e..b539d00bd07907d45ecf4a402ecab4d304e6f051 100644
--- a/neonView/WorkflowInstanceEdit_view/WorkflowInstanceEdit_view.aod
+++ b/neonView/WorkflowInstanceEdit_view/WorkflowInstanceEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowInstanceEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/WorkflowInstanceFilter_view/WorkflowInstanceFilter_view.aod b/neonView/WorkflowInstanceFilter_view/WorkflowInstanceFilter_view.aod
index 4a851422779112622824df0992f1cea32e752166..bc475442b526f37b3a6f356ad3690a69dae8ca1b 100644
--- a/neonView/WorkflowInstanceFilter_view/WorkflowInstanceFilter_view.aod
+++ b/neonView/WorkflowInstanceFilter_view/WorkflowInstanceFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowInstanceFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/WorkflowInstanceHistoryFilter_view/WorkflowInstanceHistoryFilter_view.aod b/neonView/WorkflowInstanceHistoryFilter_view/WorkflowInstanceHistoryFilter_view.aod
index ff969c13fd5106db0abe14c18565a1da7b8d87d6..15e39090c6fdd32c6d7642d86d0ba50851de9a4e 100644
--- a/neonView/WorkflowInstanceHistoryFilter_view/WorkflowInstanceHistoryFilter_view.aod
+++ b/neonView/WorkflowInstanceHistoryFilter_view/WorkflowInstanceHistoryFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowInstanceHistoryFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/WorkflowInstanceMain_view/WorkflowInstanceMain_view.aod b/neonView/WorkflowInstanceMain_view/WorkflowInstanceMain_view.aod
index 0511dbbb5dc37a9eea053915860b5ae314943c86..7b8ff8055e6caeb1736ff8b2920e4249cf9162d6 100644
--- a/neonView/WorkflowInstanceMain_view/WorkflowInstanceMain_view.aod
+++ b/neonView/WorkflowInstanceMain_view/WorkflowInstanceMain_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowInstanceMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/WorkflowInstancePreview_view/WorkflowInstancePreview_view.aod b/neonView/WorkflowInstancePreview_view/WorkflowInstancePreview_view.aod
index 6e02ae567d135a0da41e10c0d71ccdd96ccf1278..3761673b2eead53ecb922b270f152c4de817fe90 100644
--- a/neonView/WorkflowInstancePreview_view/WorkflowInstancePreview_view.aod
+++ b/neonView/WorkflowInstancePreview_view/WorkflowInstancePreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowInstancePreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/WorkflowInstanceTasks_view/WorkflowInstanceTasks_view.aod b/neonView/WorkflowInstanceTasks_view/WorkflowInstanceTasks_view.aod
index 9755c12f76bf1d83ae8a510e83787ce387973138..9dd7e273cf243ac1766c3d284698e49dae2efc14 100644
--- a/neonView/WorkflowInstanceTasks_view/WorkflowInstanceTasks_view.aod
+++ b/neonView/WorkflowInstanceTasks_view/WorkflowInstanceTasks_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowInstanceTasks_view</name>
   <title>Tasks</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/neonView/WorkflowLauncherEdit_view/WorkflowLauncherEdit_view.aod b/neonView/WorkflowLauncherEdit_view/WorkflowLauncherEdit_view.aod
index 8445a151ff66a24ce57c908ad7f86bdd1d3094dd..0f349af11894d027e6110a72d0ec04fe05a15735 100644
--- a/neonView/WorkflowLauncherEdit_view/WorkflowLauncherEdit_view.aod
+++ b/neonView/WorkflowLauncherEdit_view/WorkflowLauncherEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowLauncherEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/WorkflowModelEdit_view/WorkflowModelEdit_view.aod b/neonView/WorkflowModelEdit_view/WorkflowModelEdit_view.aod
index b03c3813ded7ad328d49edd4da3f22ecd3656dac..e3e7d5d635997d13482aad4f8a20242b0328a2e0 100644
--- a/neonView/WorkflowModelEdit_view/WorkflowModelEdit_view.aod
+++ b/neonView/WorkflowModelEdit_view/WorkflowModelEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowModelEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/WorkflowModelLookup_view/WorkflowModelLookup_view.aod b/neonView/WorkflowModelLookup_view/WorkflowModelLookup_view.aod
index 051bb98fe84d47bcf0d18813b114e93eedf42076..51a77454797be0e7d6fd3e8fb48f1fc394b3a58e 100644
--- a/neonView/WorkflowModelLookup_view/WorkflowModelLookup_view.aod
+++ b/neonView/WorkflowModelLookup_view/WorkflowModelLookup_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowModelLookup_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/WorkflowSignalEdit_view/WorkflowSignalEdit_view.aod b/neonView/WorkflowSignalEdit_view/WorkflowSignalEdit_view.aod
index 43ae59380522779a39c44e344ba411241ee7fe88..75e7a0cce9b0c394d6db4b5fb55defd9bca1c970 100644
--- a/neonView/WorkflowSignalEdit_view/WorkflowSignalEdit_view.aod
+++ b/neonView/WorkflowSignalEdit_view/WorkflowSignalEdit_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowSignalEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/WorkflowSignalFilter_view/WorkflowSignalFilter_view.aod b/neonView/WorkflowSignalFilter_view/WorkflowSignalFilter_view.aod
index 3bfbce1fac88a64f8fb7643d021bd282331e970a..6fc9adf41c64d7ec4886168b16fccf80c89730f7 100644
--- a/neonView/WorkflowSignalFilter_view/WorkflowSignalFilter_view.aod
+++ b/neonView/WorkflowSignalFilter_view/WorkflowSignalFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowSignalFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/WorkflowSignalPreview_view/WorkflowSignalPreview_view.aod b/neonView/WorkflowSignalPreview_view/WorkflowSignalPreview_view.aod
index fa81d16b1e25cdab434ad9aa1bd942e5fad4792c..bc01a3b88eb492a7a2f32ffcc2902d1e74bdcb92 100644
--- a/neonView/WorkflowSignalPreview_view/WorkflowSignalPreview_view.aod
+++ b/neonView/WorkflowSignalPreview_view/WorkflowSignalPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowSignalPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/WorkflowStartConfigFilter_view/WorkflowStartConfigFilter_view.aod b/neonView/WorkflowStartConfigFilter_view/WorkflowStartConfigFilter_view.aod
index cdac1faccf7f16acf27044fd57f434dea9502e3c..2ced9ab248fdce98ea9019cc4442571c4c8c811e 100644
--- a/neonView/WorkflowStartConfigFilter_view/WorkflowStartConfigFilter_view.aod
+++ b/neonView/WorkflowStartConfigFilter_view/WorkflowStartConfigFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowStartConfigFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -11,8 +11,8 @@
     <tableViewTemplate>
       <name>Table</name>
       <inlineEdit v="true" />
-      <entityField>#ENTITY</entityField>
       <autoNewRow v="true" />
+      <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
           <name>4935777f-8760-4759-a70a-0ad64c506418</name>
diff --git a/neonView/WorkflowTaskDrawer_view/WorkflowTaskDrawer_view.aod b/neonView/WorkflowTaskDrawer_view/WorkflowTaskDrawer_view.aod
index 7d975c492d0c8cc63d1e3bf227bc9d7897f0c539..ae6a77c113e0b82b8ec91dec6068ec932ad7b069 100644
--- a/neonView/WorkflowTaskDrawer_view/WorkflowTaskDrawer_view.aod
+++ b/neonView/WorkflowTaskDrawer_view/WorkflowTaskDrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowTaskDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/WorkflowTaskFilter_view/WorkflowTaskFilter_view.aod b/neonView/WorkflowTaskFilter_view/WorkflowTaskFilter_view.aod
index e767b57ecab4a5860104fa431687defd3a610220..87bdaae89aa7323a5ff122f5cc0158b7672f650d 100644
--- a/neonView/WorkflowTaskFilter_view/WorkflowTaskFilter_view.aod
+++ b/neonView/WorkflowTaskFilter_view/WorkflowTaskFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowTaskFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
diff --git a/neonView/WorkflowTaskFinishedDrawer_view/WorkflowTaskFinishedDrawer_view.aod b/neonView/WorkflowTaskFinishedDrawer_view/WorkflowTaskFinishedDrawer_view.aod
index f2147948b2e3f2231d986577e6c79958260698bc..36e4af0fa8fb3478d14b815251b644002c6cb581 100644
--- a/neonView/WorkflowTaskFinishedDrawer_view/WorkflowTaskFinishedDrawer_view.aod
+++ b/neonView/WorkflowTaskFinishedDrawer_view/WorkflowTaskFinishedDrawer_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowTaskFinishedDrawer_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/WorkflowTaskFinishedList_view/WorkflowTaskFinishedList_view.aod b/neonView/WorkflowTaskFinishedList_view/WorkflowTaskFinishedList_view.aod
index 7cb5d6287d7c38fab8267ab2c47449d60d2af24b..821da59a21a20cb230769961e521de1930ae3b9b 100644
--- a/neonView/WorkflowTaskFinishedList_view/WorkflowTaskFinishedList_view.aod
+++ b/neonView/WorkflowTaskFinishedList_view/WorkflowTaskFinishedList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowTaskFinishedList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/WorkflowTaskForm_view/WorkflowTaskForm_view.aod b/neonView/WorkflowTaskForm_view/WorkflowTaskForm_view.aod
index e25ada40292a5745c12a15e959f0f61700355c2b..4fee8776f4b3d5fd76dd7419bf026c72158d78c3 100644
--- a/neonView/WorkflowTaskForm_view/WorkflowTaskForm_view.aod
+++ b/neonView/WorkflowTaskForm_view/WorkflowTaskForm_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowTaskForm_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/WorkflowTaskList_view/WorkflowTaskList_view.aod b/neonView/WorkflowTaskList_view/WorkflowTaskList_view.aod
index f58afc252c8715a699ecaa2adc131548ab18fc21..a44f56fe0c60d95c53da95ce9be661d84e47faec 100644
--- a/neonView/WorkflowTaskList_view/WorkflowTaskList_view.aod
+++ b/neonView/WorkflowTaskList_view/WorkflowTaskList_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowTaskList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/neonView/WorkflowTaskOwn_view/WorkflowTaskOwn_view.aod b/neonView/WorkflowTaskOwn_view/WorkflowTaskOwn_view.aod
index a6c4dbff4e545b602a01c9fbe032e59d9edea93d..615373f9f15f4e609ffbe7ca62e1fdeb3eb5d0c4 100644
--- a/neonView/WorkflowTaskOwn_view/WorkflowTaskOwn_view.aod
+++ b/neonView/WorkflowTaskOwn_view/WorkflowTaskOwn_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowTaskOwn_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
@@ -32,18 +32,18 @@
   <children>
     <timelineViewTemplate>
       <name>Timeline</name>
-      <favoriteActionGroup1>tableActions</favoriteActionGroup1>
       <dateField>CREATE_TIME</dateField>
       <titleField>NAME</titleField>
       <descriptionField>DESCRIPTION</descriptionField>
       <iconIdField>ICON</iconIdField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>tableActions</favoriteActionGroup1>
     </timelineViewTemplate>
     <tableViewTemplate>
       <name>Table</name>
-      <favoriteActionGroup1>tableActions</favoriteActionGroup1>
       <iconField>#IMAGE</iconField>
       <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>tableActions</favoriteActionGroup1>
       <linkedColumns>
         <element>NAME</element>
       </linkedColumns>
diff --git a/neonView/WorkflowTaskPreview_view/WorkflowTaskPreview_view.aod b/neonView/WorkflowTaskPreview_view/WorkflowTaskPreview_view.aod
index bf61df8ebf51aed671e004a5ee13daa2663b5512..460c6ea0cbedbdc082eaf60c35e07a7b24e255c5 100644
--- a/neonView/WorkflowTaskPreview_view/WorkflowTaskPreview_view.aod
+++ b/neonView/WorkflowTaskPreview_view/WorkflowTaskPreview_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowTaskPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <size>SMALL</size>
diff --git a/neonView/WorkflowVariableValueFilter_view/WorkflowVariableValueFilter_view.aod b/neonView/WorkflowVariableValueFilter_view/WorkflowVariableValueFilter_view.aod
index 6de8d6e623ef5a4ee8afe8d150bf74c01b486bcd..a359bb8cc2ae3e588493210b2f249c5c1ed6ecde 100644
--- a/neonView/WorkflowVariableValueFilter_view/WorkflowVariableValueFilter_view.aod
+++ b/neonView/WorkflowVariableValueFilter_view/WorkflowVariableValueFilter_view.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
   <name>WorkflowVariableValueFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
diff --git a/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod b/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod
index 602795eafd86b0cb8892febafb6c1a9d7de3624d..880f20c2d38b04c1ecdeadd1245ad5134b4c6667 100644
--- a/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod
+++ b/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<preferences xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="3.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/preferences/3.2.1">
+<preferences xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="3.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/preferences/3.2.2">
   <name>_____PREFERENCES_PROJECT</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <customized />
@@ -56,6 +56,36 @@
       <attachmentHandling>ALL</attachmentHandling>
     </mailbridgeMailserver>
   </mailBridgeMailserver>
+  <customConfigProperties>
+    <customBooleanProperty>
+      <name>sigparser.isEnabled</name>
+      <description>Whether the webservice sigparser, for mail signature parsing is useable or not.</description>
+    </customBooleanProperty>
+    <customBooleanProperty>
+      <name>abbyy.ocr.isEnabled</name>
+      <description>Whether the webservice abbyy ocr, is useable or not.</description>
+    </customBooleanProperty>
+    <customStringProperty>
+      <name>abbyy.ocr.appId</name>
+      <description>The application id for the webservice abbyy ocr.</description>
+    </customStringProperty>
+    <customPasswordProperty>
+      <name>abbyy.ocr.password</name>
+      <description>The password for the webservice abbyy ocr.</description>
+    </customPasswordProperty>
+    <customPasswordProperty>
+      <name>sigparser.apiKey</name>
+      <description>The api key to authenticate at the mail signature webservice sigparser.</description>
+    </customPasswordProperty>
+    <customStringProperty>
+      <name>sigparser.apiUrl</name>
+      <description>The url to the mail signature webservice sigparser.</description>
+    </customStringProperty>
+    <customBooleanProperty>
+      <name>dataCaching.client.forceDisable</name>
+      <description>Enabling this option will disable the per-client-context data-cache within the customzing (for exameple the caching of Keywords). This is usefull if you're testing and want to frequently add data like keywords, etc. which are cached which help of the "DataCaching_lib".</description>
+    </customBooleanProperty>
+  </customConfigProperties>
   <customProperties>
     <customBooleanProperty>
       <name>phoneValidation.enable</name>
@@ -98,7 +128,7 @@
     <customStringProperty>
       <name>workflow.modelerUrl</name>
       <description></description>
-      <property>http://localhost:8080/flowable-modeler/</property>
+      <property>http://localhost:8082/flowable-modeler/</property>
     </customStringProperty>
     <customBooleanProperty>
       <name>ai.salesprojectProbability</name>
@@ -114,35 +144,15 @@
       <name>nominatim.resultLimit</name>
       <description>Amount of rows returned by the address search. Default is 10, maximum is 50.</description>
     </customIntegerProperty>
-  </customProperties>
-  <customConfigProperties>
-    <customBooleanProperty>
-      <name>sigparser.isEnabled</name>
-      <description>Whether the webservice sigparser, for mail signature parsing is useable or not.</description>
-    </customBooleanProperty>
-    <customBooleanProperty>
-      <name>abbyy.ocr.isEnabled</name>
-      <description>Whether the webservice abbyy ocr, is useable or not.</description>
-    </customBooleanProperty>
     <customStringProperty>
-      <name>abbyy.ocr.appId</name>
-      <description>The application id for the webservice abbyy ocr.</description>
+      <name>myCompany.addr</name>
+      <description>Addressline of my company</description>
+      <property>meineFirma | Wilhelm-Str. 2  |  DE 80807 München</property>
     </customStringProperty>
-    <customPasswordProperty>
-      <name>abbyy.ocr.password</name>
-      <description>The password for the webservice abbyy ocr.</description>
-    </customPasswordProperty>
-    <customPasswordProperty>
-      <name>sigparser.apiKey</name>
-      <description>The api key to authenticate at the mail signature webservice sigparser.</description>
-    </customPasswordProperty>
     <customStringProperty>
-      <name>sigparser.apiUrl</name>
-      <description>The url to the mail signature webservice sigparser.</description>
+      <name>myCompany.logo</name>
+      <description>Logo of my copany</description>
+      <property>base64:iVBORw0KGgoAAAANSUhEUgAAAM4AAABRCAYAAACaL5lSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDA4QzAyM0IwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDA4QzAyM0MwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMDhDMDIzOTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMDhDMDIzQTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhF3nYoAAAlvSURBVHja7J1fjBXVHcfPJQJRoe1urQYJRBYlMUJisqwvGNjY3WgEUtN2CeWBIGb3Ju6LElsW+gA8AHe1UfuwTcBASB/Q7CZNG0tjw2pWU15kNzEBJFnLqmvQBNEbU0pbX+jve+9vlrOzM/fOnTtz78zs95P8cv/MOTPnzJzvnN/5zZ+Tu3XrliGE1MYC7gJCKBxCKBxCKBxCKBxCKBxCCIVDCIVDCIVDCIVDyDzmDq8/d+1/PY5trRB7VGyt2BqxVWLLxe4RW6JpbohdF7sq9qnYpNhFsY/Evoi6QKeOvMAWQKITToQ8LPaEWKfYBrFlVdL/SO1BsU3W/1+JnRMbE3tP7DIPHcmicLrFfia2VWxlBOuD4H6pNi32tthfxM7yEJIsCAc9yw6x7WJLYyozhNgvtlPsLbHT2hMRkjrhYPzynNhu/d4IIMxesafEToqdiGMcREhcwnlKe4AtTaoDhHpArF1sSOwdHlYSN/WGo/Niv2+iaGy2aFnyPKwkqT1OTmyf2pIE1Qdh7t+J/VjsqBgfbyWJEU5OXaMDCa0ThHxYbJHYIYqHJMVV25dg0dgc0LIS0nTh5FPWGPdxzEOaLRxEz/YkbEwTxG3bo2UnpOHCQci3XwffaWONln0FDzdptHBwcXNLiuu5RetASMOE02nKdwSknd1aF0IaIpwdGXFzVmhdCIldOLjLeXuG6rtd60RIrMLBowFLM1TfpVonQmITDh5C25rBOm/VuhESi3Dw5ObKDNZ5pdaNkFiE05nhenfy0JM4hIMI1IYM13uD4QVREoNw8DaaZRmu9zKtIyGh8HusYG3UG/pJ6w/NKy89O/P70j+nzSsn/zTz+5EHV5oHlt9rep58fFa+sQ8vmEtXps35C5/4+12PrTMP3H9v6dMGeZAX6/Cp49tsAiRK4TTsnrS771xsdj3TZTrWPeQrCtiljmnzhzfPmH//538zyyC0/l9tLonSC6wT1tmxzgxJ3q+//a4pdSTzx1Vb1SjR/Hr3L3xFY4MeCWnt3wf7d/iKxgYC+83un7vTruLhJ1H3OMsbsfHnpbdAo0Yv8rcPzpsz74/P6i3QU0AgtgA2b1pvPhQXDHltd+7MB+MzPQrSIa/tukE0mzeuN6f+/O6cOuZyubrr0tvb12bK73nDZ/cbbxwfzWKD2Tnw2l75KIiN/rHwYibvwggyobSfcO6Ju3COINDYX5axjsuNKo1PYLue+eksATy9scN0rF1T6q0AxkkYL9l8dvWaOXX1XfPZl9dK+W23zxJY1HXsUtEANK7RBDf+s1reakyJOFa7/utz6ivr6ZLlmTxBhHXVGvawmsfYYxYjf//HrHENBIMexVnmFs2cwIJr+WO33cKo64gGNKXfBzPcZo479Z2voqnU4zQENGz0DpWAaJAOLpoNxGa7dn6cv/jJbHfv/vtiqYu4ZhDN6pQd/5rdLUk/mPETQ109zo2GCOf8hUDpPr4yHTqvu8exAgQ3DCERC+d63BtGT1Ktt3G45uHK+VybmYPbDbSEc52Hn0QtnKtxb7jSuKZaWojOHvfUkt8JKjSijmT+jXEwqdOmeHuc/4bOe7OOvK46etLb24eoWI8pv4/aHhSP+IWZNRx9RX/mJd3xasvlP2wDUSo7wlUaQ8jyYrUKhClnvewceO2Yltkr4maHq0vLEXkz5SijU8duJ6jgXpf8btPfe937Q5YXNU+LpilYaSY0zUiVsrdrObD+FmsR8o1Uyx+kx5mcByeNSa/GLzauB6XdtRgH66w21rqR9aDRDJu5YWGsf1yF5pe3YeWsU2QoW6DQt6a94hLNzP6AYFRY4y7RGN0Hwypav/UXrLwtrsU91fIHFc7FeSCci67G2KIHGQehqL1CDmbK0TLnbFSQtH11brtPbdDaRqu5Hept82hAzShnveDEgN5ltZzNc2pePaFTJ5S9Fel89sewfs876zPlR+GdywAFFZcX7VYPtj5E/kCuGubcxPSBWb1D+iuto01BDwp2YreGl0vo923SEIf17LTXOqhhaHe7c+qa5VUYJRdOvg94uGxRlhMXMStdJu+u41oNyjgRMNzdoq7SNucPdc3y2pC7rBPJNtulQvkkTd7cnp2vx3iHyydUcFP2nzXkD9TjYIKmcxnubc4ZaxIqbazO2XnQbowunB0KV6m9ju2PusdALn/bfZZsVjnrZTCCtPZ+8hyHqLinLMEajzQDbtG48hcr5Q/a44AxU55zM4uMefi4Xg13FtJQJ6Qh2o16IqxwAi5ri7mcsd5vVsNguyhp/co44fPdzZTur7aQxZ0wwW5DqioczO6Mq4dZfO/Aex5uhcO3VqOr5l6EpVih0RcrbL/R5ayHqSj2RwURhdqeFZWzx5s1i62ScDAlOh706s+gcC4npHHVSoshoRDB9Fjjw7qpdq8apkTH7M5LM75fnTNeUc74rSxn5kTjXFtyGLDHUAhE1HDHeCDhYGWYEr13nginBQPwIBcfWc5UsdcKLmyLYoVB3h192mR/GvRRnwE4y5n+3qbdcnErBSvaoxbOmNjJLO9cRKGsgWehylX7rmZdlU9LOdM2RtS7ClqiFg44IfbXtO6thQvvuBkgWd7auePuRqcN8Zi5faGsWaSlnIlAw9yOS1vQIIEjmDb7frkogwMOcNWGTPnNMGl7O8zknYsX/UA+76p2NpcGB/93WBslzugFn+QTzapMWsqZMPLW/sI9ae7l3ToOChxxq2UO0HfEXjXpegAMZX118aKFNwM2SvjAqzXqUvRohPi/tdkv4khLORPU64yoONxjHNyVsD7MbUU5rzd67Nr/eqU8+8UOp2Sf/VbsiN/CU0deYKsioVgQIs9RsUMpqNshLSshkRPmZR23tFF+L7bPJG/69hsqmKNaVkISIRxHPHCBvhHbk6CAwaSOw47x0JIkCscBDfRzU76frdnTuSNcPqRBDEISLRyjDfWSKUdzMCV6o+edQagcF2hPmOzf4UAyJByn8R405bsMMCU6ZneO+8bQf5nyfXSnzdznawhJhXAcxtQQL8fszpioNurnefCMEB53wJ3bvDpOMiEch7NqGHNgotpOU54+MOw7DPCOgHMqSjyEdpmHjmRROA6X1YZ07IPpAzETGqJwmJ8GU21g1gAnpI1QMt6wiZcF4r1niJLhbTQfcfxCkkQuyFwghJDZLOAuIITCIYTCIYTCIYTCIYTCIYRQOIRQOIRQOIRQOIRQOISQWvi/AAMA9UczDEaG0p8AAAAASUVORK5CYII=</property>
     </customStringProperty>
-    <customBooleanProperty>
-      <name>dataCaching.client.forceDisable</name>
-      <description>Enabling this option will disable the per-client-context data-cache within the customzing (for exameple the caching of Keywords). This is usefull if you're testing and want to frequently add data like keywords, etc. which are cached which help of the "DataCaching_lib".</description>
-    </customBooleanProperty>
-  </customConfigProperties>
+  </customProperties>
 </preferences>
diff --git a/process/AISalesproject_lib/AISalesproject_lib.aod b/process/AISalesproject_lib/AISalesproject_lib.aod
index 13b8a275db57d71b190f905695f39072a7756756..a6f99a40249dc800e535938f99bcf7dff042bbf1 100644
--- a/process/AISalesproject_lib/AISalesproject_lib.aod
+++ b/process/AISalesproject_lib/AISalesproject_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>AISalesproject_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/AISalesproject_lib/process.js</process>
diff --git a/process/AI_lib/AI_lib.aod b/process/AI_lib/AI_lib.aod
index 153e8fc6b66bfd5d8016c8a0a22521c04ad0e209..7ae40f7d1ad20b3763a454857962bf66ec77e35f 100644
--- a/process/AI_lib/AI_lib.aod
+++ b/process/AI_lib/AI_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>AI_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/AI_lib/process.js</process>
diff --git a/process/ActivityTask_lib/ActivityTask_lib.aod b/process/ActivityTask_lib/ActivityTask_lib.aod
index 141c9c3f9344db9b60ff2be3992885545ebcb96a..75bb8811f6e3483be857978d6ee10456e7e79d25 100644
--- a/process/ActivityTask_lib/ActivityTask_lib.aod
+++ b/process/ActivityTask_lib/ActivityTask_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>ActivityTask_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/ActivityTask_lib/process.js</process>
diff --git a/process/AddressEntity_lib/AddressEntity_lib.aod b/process/AddressEntity_lib/AddressEntity_lib.aod
index 4ecf49e2e70d3882be5ed8a66b3ec91a4d509593..432deaa1e5b6a1e7a0e8e82e339e76cb9e0b83a5 100644
--- a/process/AddressEntity_lib/AddressEntity_lib.aod
+++ b/process/AddressEntity_lib/AddressEntity_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>AddressEntity_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/AddressEntity_lib/process.js</process>
diff --git a/process/Address_lib/Address_lib.aod b/process/Address_lib/Address_lib.aod
index dc170bb2e025b240f859db1cdca75dd3eb7d972c..8b4c8d490fcd065fdca889e0daa3282dddcc239b 100644
--- a/process/Address_lib/Address_lib.aod
+++ b/process/Address_lib/Address_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Address_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/Address_lib/documentation.adoc</documentation>
diff --git a/process/Address_lib/process.js b/process/Address_lib/process.js
index 1a49b23e15710f5465c3a94afc99cb5b038ae5bb..a9dc6dbda503a8660154d790a17f148fe06757ba 100644
--- a/process/Address_lib/process.js
+++ b/process/Address_lib/process.js
@@ -516,7 +516,7 @@ function _formatAddrData( pAddrData, pFormat, pCountry )
         }
     }
 
-    res = res.replace(/^\n/, "");  // CR am Anfang entfernen;
+    res = res.replace(/^ *\n *\n*/, "");  // CR am Anfang entfernen;
     res = res.replace(/  /g, " "); // doppelte leerzeichen entfernen
     res = res.replace(/\\n/ig, "\n");	// newline marker ersetzen
     res = res.replace(/ *\n */g, "\n");// leerzeichen am ende und Anfang entfernen
@@ -538,7 +538,8 @@ function _formatAddrData( pAddrData, pFormat, pCountry )
 * 
 N – Name - salutation
 O – Organisation - orgname
-A – Street Address Line(s) - address + buildingno
+A – Street Address Line(s) - address
+B – Street Address Line(s) - buildingno
 D – Dependent locality - district / region
 C – City or Locality - city
 S – Administrative area - state
@@ -549,7 +550,8 @@ function _mapFormatPlaceholderTitles(pFormat, pAddrData, pCountry)
 {
     //gstatic-paceholders
     pFormat = pFormat.replace(new RegExp("%N", "g"), "{salutation_name}");
-    pFormat = pFormat.replace(new RegExp("%A", "g"), "{street} {buildingno}");  
+    pFormat = pFormat.replace(new RegExp("%A", "g"), "{street}");  
+    pFormat = pFormat.replace(new RegExp("%B", "g"), "{buildingno}");  
     pFormat = pFormat.replace(new RegExp("%C", "g"), "{city}");
     pFormat = pFormat.replace(new RegExp("%S", "g"), "{state}");
     pFormat = pFormat.replace(new RegExp("%Z", "g"), "{zip}");
diff --git a/process/Appointment_lib/Appointment_lib.aod b/process/Appointment_lib/Appointment_lib.aod
index 5b832c601af4bab0a69bff58acf1c2427be6911c..048b24bb7449670791195d1c9710d5fa9f858ec9 100644
--- a/process/Appointment_lib/Appointment_lib.aod
+++ b/process/Appointment_lib/Appointment_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Appointment_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Appointment_lib/process.js</process>
diff --git a/process/AttributeFilter_lib/AttributeFilter_lib.aod b/process/AttributeFilter_lib/AttributeFilter_lib.aod
index 57e3edcba2b142a37bc925f7db45a4cbf4006464..0e96ad73bb494c36ab2a394571a7a27946ccccb6 100644
--- a/process/AttributeFilter_lib/AttributeFilter_lib.aod
+++ b/process/AttributeFilter_lib/AttributeFilter_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>AttributeFilter_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/AttributeFilter_lib/process.js</process>
diff --git a/process/AttributeRegistry_basic/AttributeRegistry_basic.aod b/process/AttributeRegistry_basic/AttributeRegistry_basic.aod
index d4917ea14ea0bb20d46d5ca2680e75daa034ce5c..3ed840c1e53f66ed4c7fa01b61bdd16433537664 100644
--- a/process/AttributeRegistry_basic/AttributeRegistry_basic.aod
+++ b/process/AttributeRegistry_basic/AttributeRegistry_basic.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>AttributeRegistry_basic</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/AttributeRegistry_basic/process.js</process>
diff --git a/process/Attribute_lib/Attribute_lib.aod b/process/Attribute_lib/Attribute_lib.aod
index 7d9936e818274c5e11dd7fec0c27953f2d32d4e9..0d46a6a7dc9b186e465727e6fa1806abfad13f58 100644
--- a/process/Attribute_lib/Attribute_lib.aod
+++ b/process/Attribute_lib/Attribute_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Attribute_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Attribute_lib/process.js</process>
diff --git a/process/Binary_lib/Binary_lib.aod b/process/Binary_lib/Binary_lib.aod
index 39de483b5c216084257d95a007b355a11c1d53c0..338211a33b61dfeed03e065d60e6eabb1f67ed0c 100644
--- a/process/Binary_lib/Binary_lib.aod
+++ b/process/Binary_lib/Binary_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Binary_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Binary_lib/process.js</process>
diff --git a/process/Bulkmail_lib/Bulkmail_lib.aod b/process/Bulkmail_lib/Bulkmail_lib.aod
index 0befb2a734840466905596858a7e558a4052f232..6bc2e64de1b4da7172b3984b996837925bf07c10 100644
--- a/process/Bulkmail_lib/Bulkmail_lib.aod
+++ b/process/Bulkmail_lib/Bulkmail_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Bulkmail_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Bulkmail_lib/process.js</process>
diff --git a/process/CachedRecordContainer_lib/CachedRecordContainer_lib.aod b/process/CachedRecordContainer_lib/CachedRecordContainer_lib.aod
index 07b3e2150f48a91844aeada49cb40dfbb5d04cf1..7257f6acb059c410783b52c8e68da1637a4d111f 100644
--- a/process/CachedRecordContainer_lib/CachedRecordContainer_lib.aod
+++ b/process/CachedRecordContainer_lib/CachedRecordContainer_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>CachedRecordContainer_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/CachedRecordContainer_lib/process.js</process>
diff --git a/process/Calendar_lib/Calendar_lib.aod b/process/Calendar_lib/Calendar_lib.aod
index ba466c5bf5fc50d099a4c5de79e3808744b53b56..657f6034dea6a1ee813d796025e4c9861432d484 100644
--- a/process/Calendar_lib/Calendar_lib.aod
+++ b/process/Calendar_lib/Calendar_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Calendar_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Calendar_lib/process.js</process>
diff --git a/process/Calendar_lib/process.js b/process/Calendar_lib/process.js
index e9f96a4a9089f1ff65bb69dfb21ff41063f90ab8..978a653a75b7fa013cf05274dd8e9ee25550e00c 100644
--- a/process/Calendar_lib/process.js
+++ b/process/Calendar_lib/process.js
@@ -275,9 +275,11 @@ CalendarUtil.newSilentEvent = function( pSummary, pDescription, pWithLink, pUser
  *                                                  Priority of the task/appointment.<br>
  * @param {String} pReminder (optional)             <p>
  *                                                  Reminder.<br>
+ * @param {[]} pExternalAttendees                   <p>
+ *                                                  external attendes ([mailaddress])<br>
  * @return {Object}                                 <p>
  */
-CalendarUtil.createEntry = function(pUid, pType, pSummary, pDescription, pWithLink, pAppLinkContext, pAppLinkId, pUser, pAffectedUsers, pStart, pDuration, pCategory, pStatus, pPriority, pReminder )
+CalendarUtil.createEntry = function(pUid, pType, pSummary, pDescription, pWithLink, pAppLinkContext, pAppLinkId, pUser, pAffectedUsers, pStart, pDuration, pCategory, pStatus, pPriority, pReminder, pExternalAttendees )
 {
     var Entry = {};
     var framename;
@@ -297,13 +299,23 @@ CalendarUtil.createEntry = function(pUid, pType, pSummary, pDescription, pWithLi
     if ( pStart == undefined ) pStart = datetime.toLong(datetime.toDate(parseInt(vars.getString("$sys.date")) + datetime.ONE_HOUR, "dd.MM.yyyy HH:00"), "dd.MM.yyyy HH:mm");
     if ( pCategory == undefined || pCategory == null  ) pCategory = "";
 
-    if (pAffectedUsers == null || pAffectedUsers == undefined )
+    if ( (pAffectedUsers == null || pAffectedUsers == undefined) && (pExternalAttendees == null || pExternalAttendees == undefined))
     {
         Entry[calendars.AFFECTEDUSERS] = "";
     }
     else
     {
-        Entry[calendars.AFFECTEDUSERS] = text.encodeMS(calendars.getCalendarUsers(pAffectedUsers));
+        var externalAtt = [];
+        var affectedUsers = [];
+        if(pAffectedUsers)
+            affectedUsers = calendars.getCalendarUsers(pAffectedUsers);
+        
+        if(pExternalAttendees)
+        {
+            for(let i = 0; i < pExternalAttendees.length; i++)
+                externalAtt.push("; mailto:" + pExternalAttendees[i] + "; CN:" +  pExternalAttendees[i] + "; ")
+        }    
+        Entry[calendars.AFFECTEDUSERS] = text.encodeMS(affectedUsers.concat(externalAtt));
     }
     Entry[calendars.TYPE] = pType;
     Entry[calendars.DTSTART] = pStart;
@@ -334,10 +346,10 @@ CalendarUtil.createEntry = function(pUid, pType, pSummary, pDescription, pWithLi
         pStatus = CalendarUtil.mapCalendarStatus(pStatus, calendars.getBackendTypeTasks() );
         
     }
-
-
+    
     if(pUid)
         Entry[calendars.ID] = pUid;
+    
     Entry[calendars.USER] = calendars.getCalendarUser(pUser);
     Entry[calendars.DESCRIPTION] = pDescription;
     Entry[calendars.SUMMARY] = pSummary;
@@ -345,8 +357,7 @@ CalendarUtil.createEntry = function(pUid, pType, pSummary, pDescription, pWithLi
     Entry[calendars.CLASSIFICATION] = calendars.CLASSIFICATION_PUBLIC;
     Entry[calendars.CATEGORIES] = pCategory;
     Entry[calendars.TRANSPARENCY] =  "OPAQUE";
-   
-
+    
     if( pPriority != undefined )
     {
         Entry[calendars.PRIORITY] = pPriority;
@@ -471,17 +482,17 @@ CalendarUtil.reset_filterEvent = function()
 }
 
 /*
- * Gibt den richtigen Status zum Prüfen je nach Backend zurück
+ * Gibt den richtigen Status zum Prüfen je nach Backend zurück
  * Returns the matching status, to the corresponding backend.
  *
  *
- * @param {String} pStatus req die konstante für den zu prüfenden status,
+ * @param {String} pStatus req die konstante für den zu prüfenden status,
  *                             z.B. calendars.STATUS_INPROCESS
  *
- * @param {String} pCalendarType req die konstante für den typen des Termin- oder Aufgabenbackends,
+ * @param {String} pCalendarType req die konstante für den typen des Termin- oder Aufgabenbackends,
  *                             z.B. calendars.BACKEND_DB
  *
- * @return {String} Konstanten für den Kalender (Backend-Typen), gibt es den status im backend nicht
+ * @return {String} Konstanten für den Kalender (Backend-Typen), gibt es den status im backend nicht
  *                  wird null geliefert
  */
 CalendarUtil.mapCalendarStatus = function(pStatus, pCalendarType)
diff --git a/process/Campaign_lib/Campaign_lib.aod b/process/Campaign_lib/Campaign_lib.aod
index 6cff8443c7403caa3bbdc859ee356e248dc54018..1018469206a67ad0b29b351669b2b1882538d96a 100644
--- a/process/Campaign_lib/Campaign_lib.aod
+++ b/process/Campaign_lib/Campaign_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Campaign_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Campaign_lib/process.js</process>
diff --git a/process/ChecklistEntryRegistry_basic/ChecklistEntryRegistry_basic.aod b/process/ChecklistEntryRegistry_basic/ChecklistEntryRegistry_basic.aod
new file mode 100644
index 0000000000000000000000000000000000000000..1bd98ef5996a85478b69dc6e07876c46439aec7c
--- /dev/null
+++ b/process/ChecklistEntryRegistry_basic/ChecklistEntryRegistry_basic.aod
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
+  <name>ChecklistEntryRegistry_basic</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <process>%aditoprj%/process/ChecklistEntryRegistry_basic/process.js</process>
+  <alias>Data_alias</alias>
+  <variants>
+    <element>LIBRARY</element>
+  </variants>
+</process>
diff --git a/process/ChecklistEntryRegistry_basic/process.js b/process/ChecklistEntryRegistry_basic/process.js
new file mode 100644
index 0000000000000000000000000000000000000000..d95e132e9d51ab5497e510d19b032ba92921d027
--- /dev/null
+++ b/process/ChecklistEntryRegistry_basic/process.js
@@ -0,0 +1,406 @@
+import("Keyword_lib");
+import("system.logging");
+import("system.eMath");
+import("system.datetime");
+import("system.translate");
+import("system.entities");
+import("system.project");
+import("KeywordRegistry_basic");
+import("Sql_lib");
+
+
+/**
+ * Returns the matching rows, to the defined parameters.
+ * 
+ * @param {String} pUid                 <p>
+ *                                      The uid of the corresponding data set.
+ * @param {String} pEntity              <p>
+ *                                      The entity from which the data shall be loaded.
+ * @param {Array} pFields               <p>
+ *                                      The fields which shall be loaded, if null all fields in requested entity will be loaded.
+ * @param {Array} pParameters           <p>
+ *                                      The parameters which are necessary to loading the rows.
+ * @param {String} pProvider            <p>
+ *                                      An provider for loading the rows.
+ */
+function _getRows(pUid, pEntity, pFields, pParameters, pProvider){
+    
+    var config = entities.createConfigForLoadingRows()
+                            .entity(pEntity)
+                            .ignorePermissions(true)
+                            .fields(pFields);
+
+    if (pProvider)
+    {
+        config.provider(pProvider);
+    }
+    if (pUid)
+    {
+        config.uid(pUid);
+    }
+
+    if (pParameters)
+    {
+        for (let i = 0; i < pParameters.length; i++) 
+        {
+            if (pParameters[i][0] && pParameters[i][1] && pParameters[i][0] != "" && pParameters[i][1] != "")
+            {
+                config.addParameter(pParameters[i][0], pParameters[i][1]);  
+            }
+        }
+    }
+
+    return entities.getRows(config);
+}
+
+/**
+ * Provides a central place where all checklist entries with type 'AUTO' are defined.
+ * All defined entries has to return a object of type "ChecklistEntry".
+ * <p>
+ * This object has an attribute named: <u><b><i>verifierFn</i></u></b>. This attribute is a function, which
+ * expects the uid/object-rowid as param and is, how the name implies, responsible for
+ * verifying, whether the checklist entry is fulfilled or not.
+ * 
+ * @class
+ * 
+ * @example
+ * $ChecklistEntryRegistry.salesprojectRoleProjManager()
+ */
+function $ChecklistEntryRegistry(){}
+
+/*
+ * Returns you a list of all existing entries as object <br>
+ * <i><u>(key: functionname & value: title)</u></i><br>
+ * <p>
+ * E.g.: used in a dropDownProcess to provide a<br>
+ * selection of all possible entries.<br>
+ * 
+ */
+$ChecklistEntryRegistry.getEntryList = function(){
+    var rawList = Object.keys($ChecklistEntryRegistry);
+    var returnableList = {};
+    
+    rawList.forEach(function(pEntry){
+        if (!(pEntry == 'getEntryList'))
+        {
+            returnableList[pEntry] = $ChecklistEntryRegistry[pEntry]().title;
+        }
+    });
+    
+    return returnableList;
+}
+
+/*
+ * Checks whether the project team role: "Project manager"<br>
+ * is filled for the given salesproject.
+ * 
+ */
+$ChecklistEntryRegistry.salesprojectRoleProjManager = function(){
+    return{
+        title: translate.text("Project team: \"Project manager\""),
+        verifierFn: function(pSalesprojectId){
+            
+            var spRows = _getRows(pSalesprojectId, "Salesproject_entity", ["SALESPROJECTID", "MST_TEAM_ID", "PROJECTCODE"], null, "NoPhaseRequirementLoading");
+            var memberRows = _getRows(null, "Member_entity", ["MEMBERROLE"], [["EnableMSTeams_param", spRows[0]["MST_TEAM_ID"]], ["ObjectRowId_param", spRows[0]["SALESPROJECTID"]]], "WithDistrictResponsibles");
+            for (let i = 0; i < memberRows.length; i++) 
+            {
+                if(memberRows[i]["MEMBERROLE"] == $KeywordRegistry.memberRoleProjManag())
+                {
+                    return true;
+                }
+            }
+                return false;
+        }
+    };
+}
+
+/*
+ * Checks whether a touchpoint for the<br>
+ * given salesproject, exists.
+ * 
+ */
+$ChecklistEntryRegistry.salesprojectTouchpoint = function(){
+    return{
+        title: translate.text("Touchpoint"),
+        verifierFn: function(pSalesprojectId){
+            
+            var spRows = _getRows(pSalesprojectId, "Salesproject_entity", ["SALESPROJECTID", "MST_TEAM_ID", "PROJECTCODE"], null, "NoPhaseRequirementLoading");
+            var touchpintRows = _getRows(null, "SalesprojectSource_entity", ["SALESPROJECT_TOUCHPOINTID"], [["SalesprojectId_param", pSalesprojectId]], "SalesprojectSouces");
+            if(touchpintRows.length > 0) 
+            {
+                return true;
+            }
+            return false;
+        }
+    };
+}
+
+/*
+ * Checks whether the volume for the<br>
+ * given salesproject, is entered.
+ * 
+ */
+$ChecklistEntryRegistry.salesprojectVolume = function(){
+    return{
+        title: translate.text("Volume"),
+        verifierFn: function(pSalesprojectId){
+            
+            var spRows = _getRows(pSalesprojectId, "Salesproject_entity", ["VOLUME"], null, "NoPhaseRequirementLoading");
+            if(spRows[0]["VOLUME"] && spRows[0]["VOLUME"] != "") 
+            {
+                return true;
+            }
+            return false;
+        }
+    };
+}
+
+/*
+ * Checks whether an project start for the<br>
+ * given salesproject, exists.
+ * 
+ */
+$ChecklistEntryRegistry.salesprojectProjStart = function(){
+    return{
+        title: translate.text("Project start"),
+        verifierFn: function(pSalesprojectId){
+            
+            var spRows = _getRows(pSalesprojectId, "Salesproject_entity", ["STARTDATE"], null, "NoPhaseRequirementLoading");
+            if(spRows[0]["STARTDATE"] && spRows[0]["STARTDATE"] != "") 
+            {
+                return true;
+            }
+            return false;
+        }
+    };
+}
+
+/*
+ * Checks whether all classifications fields for the<br>
+ * given salesproject are filled.
+ * 
+ */
+$ChecklistEntryRegistry.salesprojectClassificationFields = function(){ 
+    return{
+        title: translate.text("Classification fields"),
+        verifierFn: function(pSalesprojectId){
+            var res = false;
+            var classificationRows = _getRows(null, "Classification_entity", ["VALUE"], [["ObjectType_param", "Salesproject"], ["ObjectRowid_param", pSalesprojectId]], "Classifications");
+            if(classificationRows.length > 0)
+            {
+                res = true
+                for (let i = 0; i < classificationRows.length; i++) {
+                    if(classificationRows[i] == "" || classificationRows[i] == null || classificationRows[i] == undefined)
+                    {
+                        res = false;
+                        break;
+                    }
+                }
+            }
+            return res;
+        }
+    };
+}
+
+/*
+ * Checks whether the project team role: "Internal Distribution"<br>
+ * for the given salesproject, exists.
+ * 
+ */
+$ChecklistEntryRegistry.salesprojectRoleIntDist = function(){
+    return{
+        title: translate.text("Project team: \"Internal distribution\""),
+        verifierFn: function(pSalesprojectId){
+            
+            var spRows = _getRows(pSalesprojectId, "Salesproject_entity", ["SALESPROJECTID", "MST_TEAM_ID", "PROJECTCODE"], null, "NoPhaseRequirementLoading");
+            var memberRows = _getRows(null, "Member_entity", ["MEMBERROLE"], [["EnableMSTeams_param", spRows[0]["MST_TEAM_ID"]], ["ObjectRowId_param", spRows[0]["SALESPROJECTID"]]], "WithDistrictResponsibles");
+            for (let i = 0; i < memberRows.length; i++) 
+            {
+                if(memberRows[i]["MEMBERROLE"] == $KeywordRegistry.memberRoleIntenDistrib())
+                {
+                    return true;
+                }
+            }
+                return false;
+        }
+    };
+}
+
+/*
+ * Checks whether all project team role<br>
+ * for the given salesproject, assigned.
+ * 
+ */
+$ChecklistEntryRegistry.salesprojectTeamRoles = function(){
+    return{
+        title: translate.text("Project team roles"),
+        verifierFn: function(pSalesprojectId){
+            
+            var spRows = _getRows(pSalesprojectId, "Salesproject_entity", ["SALESPROJECTID", "MST_TEAM_ID", "PROJECTCODE"], null, "NoPhaseRequirementLoading");
+            var memberRows = _getRows(null, "Member_entity", ["MEMBERROLE"], [["EnableMSTeams_param", spRows[0]["MST_TEAM_ID"]], ["ObjectRowId_param", spRows[0]["SALESPROJECTID"]]], "WithDistrictResponsibles");
+            var allMemberRoles = newSelect(SqlBuilder.caseWhen(newWhere("AB_KEYWORD_ENTRY.KEYID", "MEMROLEDISTRICTRESPONSIBLE")).thenString("70cbad1b-eac6-4369-ba50-4946e0fbcb3a").elseValue("AB_KEYWORD_ENTRY.KEYID"))
+                                            .from("AB_KEYWORD_ENTRY")
+                                            .where("AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID", KeywordUtils.getCategoryIdByName($KeywordRegistry.MemberRole()))
+                                            .arrayColumn();
+            for (let i = 0; i < memberRows.length; i++) 
+            {
+                for (let j = 0; j < allMemberRoles.length; j++) {
+                        if(memberRows[i]["MEMBERROLE"] == allMemberRoles[j])
+                        {
+                            allMemberRoles.splice(j, 1); 
+                        }
+                    }
+            }
+            if(allMemberRoles.length == 0)
+            {
+                return true;
+            }
+            else
+            {
+                return false;
+            }
+        }
+    };
+}
+
+/*
+ * Checks whether an offer<br>
+ * for the given salesproject, exists.
+ * 
+ */
+$ChecklistEntryRegistry.salesprojectOfferExists = function(){
+    return{
+        title: translate.text("Offer exists"),
+        verifierFn: function(pSalesprojectId){
+            
+            var offerRows = _getRows(null, "Offer_entity", ["OFFERID"], [["ObjectRowId_param", pSalesprojectId], ["ObjectType_param", "Salesproject"]], "Links");
+            if(offerRows.length > 0) 
+            {
+                return true;
+            }
+            return false;
+        }
+    };
+}
+
+/*
+ * Checks whether the project start for the<br>
+ * given salesproject, is in the next 12 months.
+ * 
+ */
+$ChecklistEntryRegistry.salesprojectProjStart12 = function(){
+    return{
+        title: translate.text("Project start within next 12 months"),
+        verifierFn: function(pSalesprojectId){
+            
+            var spRows = _getRows(pSalesprojectId, "Salesproject_entity", ["STARTDATE"], null, "NoPhaseRequirementLoading");
+
+            for (let i = 0; i < spRows.length; i++) 
+            {
+                var startdate = spRows[i]["STARTDATE"];
+                if(startdate != null && startdate != "" && startdate != undefined)
+                {
+                    var todayUnformatted = datetime.today();
+                    var today = datetime.toDate(todayUnformatted, "dd.MM.yyyy")
+                    var currentYear = today.slice(today.length-4, today.length)
+                    var nextYear = eMath.addInt(parseInt(currentYear),1);
+                    var todayNextYear = datetime.toLong(today.slice(0, -4) + nextYear, "dd.MM.yyyy")
+                    
+                    return (parseInt(todayUnformatted) <= parseInt(startdate) && parseInt(startdate) <= parseInt(todayNextYear)) ? true : false;
+                }
+            }
+            return false;
+        }
+    };
+}
+
+/*
+ * Checks whether the offer for the<br>
+ * given salesproject, is marked as sent.
+ * 
+ */
+$ChecklistEntryRegistry.salesprojectOfferSent = function(){
+    return{
+        title: translate.text("Offer sent"),
+        verifierFn: function(pSalesprojectId){
+            
+            var offerRows = _getRows(null, "Offer_entity", ["STATUS"], [["ObjectRowId_param", pSalesprojectId], ["ObjectType_param", "Salesproject"]], "Links");
+            var res = false;
+
+            for (let i = 0; i < offerRows.length; i++)
+            {
+                if(offerRows[i].STATUS == $KeywordRegistry.offerStatus$sent())
+                {
+                    res = true;
+                    break;
+                }
+            }
+            return res;
+        }
+    };
+}
+
+/*
+ * Checks whether the project probability for the<br>
+ * given salesproject, equals 100%.
+ * 
+ */
+$ChecklistEntryRegistry.salesprojectProb100 = function(){
+    return{
+        title: translate.text("Probablity: 100%"),
+        verifierFn: function(pSalesprojectId){
+            
+            var spRows = _getRows(pSalesprojectId, "Salesproject_entity", ["PROBABILITY"], null, "NoPhaseRequirementLoading");
+            if(spRows[0]["PROBABILITY"] && spRows[0]["PROBABILITY"] == "SALPROJPROB100") 
+            {
+                return true;
+            }
+            return false;
+        }
+    };
+}
+
+/*
+ * Checks whether the project status for the<br>
+ * given salesproject, is won.
+ * 
+ */
+$ChecklistEntryRegistry.salesprojectStatusWon = function(){
+    return{
+        title: translate.text("Status: \"won\""),
+        verifierFn: function(pSalesprojectId){
+            
+            var spRows = _getRows(pSalesprojectId, "Salesproject_entity", ["STATUS"], null, "NoPhaseRequirementLoading");
+            if(spRows[0]["STATUS"] && (spRows[0]["STATUS"] == $KeywordRegistry.salesprojectState$partialOrder() ||
+                    spRows[0]["STATUS"] == $KeywordRegistry.salesprojectState$order())) 
+            {
+                return true;
+            }
+            return false;
+        }
+    };
+}
+
+/*
+ * Checks whether a contract for the<br>
+ * offer to the given salesproject, exists.
+ * 
+ */
+$ChecklistEntryRegistry.salesprojectContractExists = function(){
+    return{
+        title: translate.text("Contract"),
+        verifierFn: function(pSalesprojectId){
+            
+            var offerRows = _getRows(null, "Offer_entity", ["OFFERID"], [["ObjectRowId_param", pSalesprojectId], ["ObjectType_param", "Salesproject"]], "Links");
+            for (let i = 0; i < offerRows.length; i++) 
+            {
+                var documentRows = _getRows(null, "Document_entity", ["BINDATA_UPLOAD"], [["AssignmentRowId_param", offerRows[i]["OFFERID"]], ["AssignmentTable_param", "OFFER"]], "Documents");
+                if(documentRows.length>0)
+                {
+                    return true;
+                }
+            }
+            return false;
+        }
+    };
+}
diff --git a/process/ChecklistRegistry_basic/ChecklistEntryRegistry_basic.aod b/process/ChecklistRegistry_basic/ChecklistEntryRegistry_basic.aod
new file mode 100644
index 0000000000000000000000000000000000000000..7d1fe5ffb3be6f886dded34e84d8e0e4ef230cba
--- /dev/null
+++ b/process/ChecklistRegistry_basic/ChecklistEntryRegistry_basic.aod
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+  <name>ChecklistEntryRegistry_basic</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <process>%aditoprj%/process/ChecklistEntryRegistry_basic/process.js</process>
+  <alias>Data_alias</alias>
+  <variants>
+    <element>LIBRARY</element>
+  </variants>
+</process>
diff --git a/process/ClassificationFilter_lib/ClassificationFilter_lib.aod b/process/ClassificationFilter_lib/ClassificationFilter_lib.aod
index 9b182044a8785df3037df931f0df656d095ae109..705efe2d6620d1a37bc4b723a9615acc23895e35 100644
--- a/process/ClassificationFilter_lib/ClassificationFilter_lib.aod
+++ b/process/ClassificationFilter_lib/ClassificationFilter_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>ClassificationFilter_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/ClassificationFilter_lib/process.js</process>
diff --git a/process/ClassificationFilter_lib/process.js b/process/ClassificationFilter_lib/process.js
index bf593e707733064fa47d17aa6fb2534d5785eec1..d99652fcf5c671b48ff348ea8cc7b6d9c9a1a7bc 100644
--- a/process/ClassificationFilter_lib/process.js
+++ b/process/ClassificationFilter_lib/process.js
@@ -19,6 +19,11 @@ function ClassificationTypeFilterUtils() {}
 
 /**
  * fetches classificationtypes and transforms them into filter fields
+ * <br/>
+ * <br/>
+ * Important: 
+ * <br/>
+ * Any changes to the name of the filterFields does also have to be changed in the filterTreeExcludeFieldsProcess of the filterField of the classificationAdmin_entity
  * 
  * @param {String} pObjectType       <p/> contextId of the context whoes classification types are used for providing the filter fields
  *                                      
@@ -51,7 +56,7 @@ ClassificationTypeFilterUtils.getFilterFields = function(pObjectType)
                 contentType: "TEXT",
                 hasDropDownValues: true,
                 isGroupable: true,          // These Fields are also able to be grouped
-                groupedRecordField: "CLASSIFICATION.CLASSIFICATIONSCORE_ID",  // The DB-field that is being grouped by (see also groupQueryProcess)
+                groupedRecordField: "CLASSIFICATION.VALUE",  // The DB-field that is being grouped by (see also groupQueryProcess)
                 titleRecordField: titleField     // The displayname (see also groupQueryProcess)
             });
     }
@@ -76,6 +81,7 @@ var classificationValue = newSelect("CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID,
                                         .where("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID", classificationTypeId)
                                         .orderBy("CLASSIFICATIONSCORE.TITLE")
                                         .table();
+
                                         
 for (let i = 0; i < classificationValue.length; i++) 
     classificationValue[i][1] = translate.text(classificationValue[i][1])
@@ -115,14 +121,13 @@ ClassificationTypeFilterUtils.getFilterCondition = function(pCondition, pIdTable
 {
     var resSql;   
     
-    var condition = StringUtils.replaceAll(pCondition, pColumnPlaceholder, "CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID");
+    var condition = StringUtils.replaceAll(pCondition, pColumnPlaceholder, "CLASSIFICATION.VALUE");
         
     //a SqlBuilder.IN() in a newWhere is not used here since the subselect can contain a placeholder
     //(the variable condition) that would break the function
     resSql = pIdTableName + "." + pIdColumnName + " in (" + newSelect(pIdTableName + "." + pIdColumnName)
             .from(pIdTableName)
             .leftJoin("CLASSIFICATION", newWhere("CLASSIFICATION.OBJECT_ROWID = " + pIdTableName + "." + pIdColumnName))
-            .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATION.CLASSIFICATIONSCORE_ID = CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID")
             .where(condition) + ")";
 
     return resSql;
@@ -142,7 +147,7 @@ ClassificationTypeFilterUtils.getTranslationSql = function()
         
 
         var rows = entities.getRows(config);
-        var res = SqlUtils.getResolvingCaseWhenFromObject(rows, "CLASSIFICATIONSCOREID", "translatedTitle", "CLASSIFICATIONSCORE_ID");
+        var res = SqlUtils.getResolvingCaseWhenFromObject(rows, "CLASSIFICATIONSCOREID", "translatedTitle", "VALUE");
         return res;
 }
 
@@ -210,6 +215,11 @@ function ClassificationGroupFilterUtils() {}
 
 /**
  * fetches classificationgroups and transforms them into filter fields
+ * <br/>
+ * <br/>
+ * Important: 
+ * <br/>
+ * Any changes to the name of the filterFields does also have to be changed in the filterTreeExcludeFieldsProcess of the filterField of the classificationAdmin_entity
  * 
  * @param {String} pObjectType       <p/> contextId of the context whoes classification groups are used for providing the filter fields
  *                                      
@@ -239,7 +249,7 @@ ClassificationGroupFilterUtils.getFilterFields = function(pObjectType)
     classificationGroups.forEach(function(classificationGroup, idx){
         var classificationGroupId = classificationGroup["CLASSIFICATIONGROUPID"];
         var classificationGroupTitle = classificationGroup["#CONTENTTITLE"];
-
+        
         //"case when" needed since we want to group both the ones that have no classification for said classificationgroup ("-") 
         //and the ones that have null as the value (since not all datasets have a CLASSIFICATIONSTORAGE dataset) together
         // since both don't have an classification for that group
@@ -255,7 +265,7 @@ ClassificationGroupFilterUtils.getFilterFields = function(pObjectType)
             contentType: "TEXT",
             hasDropDownValues: true,
             isGroupable: true,
-            groupedRecordField: representingSqlExpression  //title and group valure are the same (for example a resulting "A")
+            groupedRecordField: representingSqlExpression  //title and group value are the same (for example a resulting "A")
         });
     });
     return JSON.stringify(res);
@@ -284,7 +294,7 @@ ClassificationGroupFilterUtils.getFilterValues = function(pFilter)
     var classificationValue = newSelect("CLASSIFICATIONGRADING.GRADING, CLASSIFICATIONGRADING.GRADING")
         .from("CLASSIFICATIONGRADING")
         .where("CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID", classificationGroupId)
-        .orderBy("CLASSIFICATIONGRADING.MAXGRADEFORSCORE desc")
+        .orderBy("CLASSIFICATIONGRADING.MINPERCENT desc")
         .table();
 
     return classificationValue;
@@ -299,7 +309,7 @@ ClassificationGroupFilterUtils.getFilterValues = function(pFilter)
  */
 ClassificationGroupFilterUtils.makeFilterValues = function()
 {
-    var filter = vars.getString("$local.filter")
+    var filter = vars.getString("$local.filter");
     var res = ClassificationGroupFilterUtils.getFilterValues(filter);
     return res;
 };
@@ -326,11 +336,11 @@ ClassificationGroupFilterUtils.getFilterCondition = function(pObjectType, pFilte
     var decodedFilterName = ClassificationGroupFilterNameCoder.decode(pFilterName);
     var condition = StringUtils.replaceAll(pCondition, pColumnPlaceholder, decodedFilterName.representingSqlExpression);
     
-    //"case when" needed since we want to filter both the ones that have no classification for said classificationgroup ("-") 
+    //"or" needed since we want to filter both the ones that have no classification for said classificationgroup ("-") 
     //and the ones that have null as the value (since not all datasets have a CLASSIFICATIONSTORAGE dataset) the same way
     // since both don't have an classification for that group
     if(pOperatorName == "IS NULL")
-        condition += " OR " + decodedFilterName.representingSqlExpression +"='-'";
+        condition += " OR " + decodedFilterName.representingSqlExpression +"='-'" ;
     return condition;
 };
 
diff --git a/process/Classification_lib/Classification_lib.aod b/process/Classification_lib/Classification_lib.aod
index 659223c9d3b507cfadcd0a8e6a6d0b71f1efe0e5..5b4114c59eaaabf71c169a9f4cd0582cfa6ab60b 100644
--- a/process/Classification_lib/Classification_lib.aod
+++ b/process/Classification_lib/Classification_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Classification_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Classification_lib/process.js</process>
diff --git a/process/Classification_lib/process.js b/process/Classification_lib/process.js
index b0a5a6830003d7b1ec3ffc91cccd9c6897221938..25419ec3b80a5f2d41f83626ad8c6d50cfb1d8cf 100644
--- a/process/Classification_lib/process.js
+++ b/process/Classification_lib/process.js
@@ -1,3 +1,4 @@
+import("Dependency_lib");
 import("system.text");
 import("system.translate");
 import("system.result");
@@ -22,200 +23,25 @@ function ClassificationUtils() {}
  * This is done by 
  * 
 
- * @param {Number|String} pCurrentScore     <p/>Current score that is reached for a group, e.g. 45
+ * @param {Number|String} pAchievedScore   <p/>Current score that is reached for a group, e.g. 45
+ * @param {Number|String} pbestPossibleScore   <p/>Current score that is reached for a group, e.g. 45
  * @param {String} pGroupId                 <p/>UID of the classification group where the display value is determined. <br/>
  *                                          This is used for determing the maximum value of the group and the resulting 
  *                                          classificaiton value (for example: "B")
  * @param {String} pGroupName               <p/>Name of the group that was passed as ID. This is used as display value and will not be translated,
  *                                          you have to pass this value already translated to the target locale. <br/>
  *                                          The reason for not loading this value based on the groupId is: better performance optimization
+ * @param {Number|String} pGrading          <p/>Current score that is reached for a group, e.g. 45
  * @return {String}                         <p/>formated and translated title, e.g.: "1. Target Group: 45/120 points = B"
  */
-ClassificationUtils.formatDisplaySummaryForGroup = function(pCurrentScore, pGroupId, pGroupName) 
+ClassificationUtils.formatDisplaySummaryForGroup = function(pAchievedScore, pbestPossibleScore, pGroupId, pGroupName, pGrading) 
 {
-    var maxScore = ClassificationUtils.getMaxScore(pGroupId);
-    var classifications = ClassificationUtils.getClassifications(pCurrentScore, pGroupId);
-
-    pCurrentScore = text.formatDouble(pCurrentScore, "#");
-    maxScore = text.formatDouble(maxScore, "#");
-    var res = translate.withArguments("%0: %1/%2 points = %3", [pGroupName, pCurrentScore, maxScore, classifications]);
+    pCurrentScore = text.formatDouble(pAchievedScore, "#");
+    pbestPossibleScore = text.formatDouble(pbestPossibleScore, "#");
+    var res = translate.withArguments("%0: %1/%2 points = %3", [pGroupName, pAchievedScore, pbestPossibleScore, pGrading]);
     return res;
 };
 
-/**
- * Get the score of the classification. You can get all groups at once or only the score for one group.
- * 
-
- * @param {String} pObjectType                                  <p>
- *                                                              The object type.<br>
- * @param {String} pObjectRowid                                 <p>
- *                                                              The row id.<br>
- * @param {String} pClassificationGroup=undefined (optional)    <p>
- *                                                              The classification group. If it is undefined,<br>
- *                                                              the classification for all groups are returned <br>
- *                                                              as Object(-map)<br>
- * @return {Object}                                             <p>
- *                                                              Returns all scores as object-map.<br>
- *                                                              (e.g. {"scoreGroup1": 0, "scoreGroup2": 20})
- */
-ClassificationUtils.getScoreAsObject = function(pObjectType, pObjectRowid, pClassificationGroup)
-{
-    var score = newSelect("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, case when sum(score) is not null then sum(score) else 0 end")
-        .from("CLASSIFICATIONTYPE")
-        .leftJoin("CLASSIFICATION", newWhere("CLASSIFICATIONTYPEID = CLASSIFICATIONTYPE_ID")
-            .and("CLASSIFICATION.OBJECT_TYPE", pObjectType)
-            .and("CLASSIFICATION.OBJECT_ROWID", pObjectRowid))
-        .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE_ID = CLASSIFICATIONSCOREID")
-        .where("CLASSIFICATIONTYPE.OBJECT_TYPE", pObjectType)
-        .andIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", pClassificationGroup)
-        .groupBy("CLASSIFICATIONGROUP_ID")
-        .orderBy("CLASSIFICATIONGROUP_ID")
-        .table();
-        
-    var scores = {};
-    score.forEach(function(pRow)
-    {
-        scores[pRow[0]] = pRow[1];
-    });
-    return scores;
-}
-
-/**
- * Gets the scores of a Object, either for all of them or only for one group (depending on the pClassificationGroupId param, 
- * if it's set you get only the score of that group)
- * 
- * @param {String} pObjectType                                  <p>
- *                                                              The object type.<br>
- * @param {String} pObjectRowid                                 <p>
- *                                                              The row id. (UUID of the object, e.g: OrganisationId of Organisation)<br>
- * @param {String} pClassificationGroupId (optional)    <p>
- *                                                              The classification group id. If it is undefined,<br>
- *                                                              the classificationScores for all groups are returned <br>
- *                                                              as Object(-map)<br>
- * @return {Array}                                             <p>
- *                                                              Returns all scores in a Array with this structure:<br>
- *                                                              
- *                                                              [[ID, SCORE], [ID, SCORE], [ID, SCORE]];
- */
-ClassificationUtils.getScore = function(pObjectType, pObjectRowid, pClassificationGroupId)
-{
-    var scoreArray = [];
-    var score = newSelect("sum(score), CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID")
-        .from("CLASSIFICATIONTYPE")
-        .leftJoin("CLASSIFICATION", newWhere("CLASSIFICATIONTYPEID = CLASSIFICATIONTYPE_ID")
-            .and("CLASSIFICATION.OBJECT_TYPE", pObjectType)
-            .and("CLASSIFICATION.OBJECT_ROWID", pObjectRowid))
-        .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE_ID = CLASSIFICATIONSCOREID")
-        .where("CLASSIFICATIONTYPE.OBJECT_TYPE", pObjectType)
-        .andIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", pClassificationGroupId)
-        .groupBy("CLASSIFICATIONGROUP_ID")
-        .orderBy("CLASSIFICATIONGROUP_ID")
-        .table();
-
-    var sorting = newSelect("distinct CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, CLASSIFICATIONGROUP.SORTING")
-                            .from("CLASSIFICATIONGROUP")
-                            .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
-                            .where("CLASSIFICATIONTYPE.OBJECT_TYPE", pObjectType)
-                            .orderBy("CLASSIFICATIONGROUP.SORTING")
-                            .table();
-
-    for (var i = 0; i < sorting.length; i++)
-    {
-        for (var ii = 0; ii < score.length; ii++) {
-            if(score[ii][1] == sorting[i][0])
-            {
-                scoreArray[i] = score[ii]
-            }
-        }
-    }
-        
-    return scoreArray;
-}
-
-/**
- * Get all classifications for one dataset as String.<br>
- * Each char represents one classification.<br>
- * 
- * @param {String} pScore           <p>
- *                                  The archieved score
- * @param {String} pClassificationGroupId  <p>     
- *                                  The Id of the Classification Group
- * @return {String}                 <p>
- *                                  Returns the corresponding classification.<br>
- */
-ClassificationUtils.getClassifications = function(pScore, pClassificationGroupId) 
-{
-    var score = pScore;
-    var classificationGroupId = pClassificationGroupId
-    var gradingTable = ClassificationUtils.getClassificationGrading(classificationGroupId);
-    var grade = "-";
-
-        
-    for(let i = 0; i < gradingTable.length; i++)
-    {
-            if(Number(score) <= Number(gradingTable[i][0]) && score !=0 && grade == "-")
-            {
-                grade = gradingTable[i][1];
-                break;
-            }
-    }
-    return grade;
-}
-
-/**
- * Gets the classification table <br>
- * 
- * @param {String} pClassificationGroupId  <p>     
- *                                  The Classification Group              
- * @return {String}                 <p>
- *                                  Returns the corresponding classification table, ordered by the maxscore ascending.<br>
- */
-ClassificationUtils.getClassificationGrading = function(pClassificationGroupId) 
-{
-    var config = entities.createConfigForLoadingRows()
-        .entity("ClassificationGrading_entity")
-        .addParameter("ClassificationTypeId_param", pClassificationGroupId)
-        .fields(["MAXGRADEFORSCORE", "GRADING"])
-        .ignorePermissions(true);
-        
-    var gradings = entities.getRows(config);
-    ArrayUtils.sortArrayOfObjects(gradings, "MAXGRADEFORSCORE", true, true);
-    gradings = gradings.map(function (row){
-        return [row["MAXGRADEFORSCORE"], row["GRADING"]];
-    });
-    return gradings;
-}
-
-/**@cl
- * Gets the maximum score for one group depending on the pClassificationGroupId param.
- * 
- * @param {String} pClassificationGroupId                       <p>
- *                                                              The classification groupname.<br>
- * @return {String}                                             <p>
- *                                                              Returns the maximum possible score of the chosen group.<br>
- *                                                              
- */
-ClassificationUtils.getMaxScore = function(pClassificationGroupId)
-{
-    var sumMaxScore = 0;
-    
-    var config = entities.createConfigForLoadingRows()
-                    .entity("ClassificationType_entity")
-                    .ignorePermissions(true)
-                    .addParameter("ClassificationGroupId_param", pClassificationGroupId)
-                    .fields(["maxScore"]);
-    var scores = entities.getRows(config);
-                            
-    for (let i = 0; i < scores.length; i++)
-    {
-        var maxScore = scores[i]["maxScore"];
-        if (maxScore)
-            sumMaxScore = eMath.addInt(sumMaxScore, parseInt(maxScore));
-    }
-    
-    return sumMaxScore;
-}
-
 /**
  * Get all possible groupnames for a classificationtype.<br>
  * Either as [["group", "group"]] (for the possible items process).
@@ -248,19 +74,20 @@ ClassificationUtils.getAllGroups = function(pObjectType)
 ClassificationUtils.setClassificationValue = function(pObjectType, pObjectId, pClassificationTypeId, pClassificationScoreId)
 {   
     var newId = util.getNewUUID();
-    db.insertData("CLASSIFICATION", ["CLASSIFICATIONID", "OBJECT_TYPE", "OBJECT_ROWID", "CLASSIFICATIONTYPE_ID", "CLASSIFICATIONSCORE_ID"], null, [
+    db.insertData("CLASSIFICATION", ["CLASSIFICATIONID", "OBJECT_TYPE", "OBJECT_ROWID", "CLASSIFICATIONTYPE_ID", "VALUE"], null, [
         newId,
         pObjectType,
         pObjectId,
         pClassificationTypeId,
         pClassificationScoreId,
     ]);
+    newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", pObjectId).updateData(true, "CLASSIFICATIONSTORAGE", ["OUTDATED"], null, 1)
 }
 
 
 /**
  * Gets the classificationGradingTable for a classificationGroup as Array.<br>
- * ordered by the MaxGradeForScore descending              <br>
+ * ordered by the MinPercent       descending              <br>
  * 
  * @param {String} pClassificationGroupId                   <p>
  *                                                          The classificationgroup you want the grading for <br>
@@ -272,13 +99,21 @@ ClassificationUtils.getGradingTableByGroupId = function(pClassificationGroupId)
 {
 
     var classificationGroupId = pClassificationGroupId;
-
-    var gradingTable = newSelect("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID, CLASSIFICATIONGRADING.MAXGRADEFORSCORE, CLASSIFICATIONGRADING.GRADING")
+    var gradingObject = {};
+    var gradingTable = newSelect("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID, CLASSIFICATIONGRADING.MINPERCENT, CLASSIFICATIONGRADING.GRADING")
                                         .from("CLASSIFICATIONGRADING")
                                         .where("CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID", classificationGroupId)
-                                        .orderBy("MAXGRADEFORSCORE desc")
+                                        .orderBy("CLASSIFICATIONGRADING.MINPERCENT asc")
                                         .table()
-    return gradingTable;
+                                        
+    for (let i = 0; i < gradingTable.length; i++) 
+    {
+        if(gradingObject[classificationGroupId] == undefined)
+            gradingObject[classificationGroupId] = [];
+        
+        gradingObject[classificationGroupId].push([gradingTable[i][1], gradingTable[i][2]]);
+    }
+    return gradingObject;
 }
 
 /**
@@ -318,99 +153,40 @@ ClassificationUtils.getClassificationType = function(pClassificationScoreId)
 }
 
 /**
- * Gets the Grading of a score for a group using an object that contains all the gradings.<br>
+ * Gets the Grading of a score for a group using an object that contains all the gradings and the greatest possible score.<br>
  * 
  * @param {String} pGradingObject                          <p>
  *                                                          The classification grading object 
  * @param {String} pGroupId                                <p>
  *                                                          The classification group id 
  * @param {String} pScore                                  <p>
- *                                                          The score 
-* @return {String}                                          <p>
-*                                                           The resulting classification grading.<br>
+ *                                                          The achieved score 
+ * @param {String} pMaxPossibleScore                       <p>
+ *                                                         The greatest possible score
+* @return {String}                                         <p>
+*                                                          The resulting classification grading.<br>
  */
-ClassificationUtils.getGradingFromObject = function(pGradingObject, pGroupId, pScore)
+ClassificationUtils.getGradingFromObject = function(pGradingObject, pGroupId, pScore, pMaxPossibleScore)
 {
     var gradingObject = pGradingObject;
+    if(gradingObject == null)
+    {
+        gradingObject = ClassificationUtils.getGradingTableByGroupId(pGroupId);
+    }
+    
     var groupId = pGroupId;
-    var score = pScore;
+    var scorePercent = pScore/(pMaxPossibleScore/100); //the score in percent in relation to the maxScore
     var grading = "-";
     for (var index in gradingObject[groupId])
     {
-        if(Number(score) <= Number(gradingObject[groupId][index][0]) && score != 0)
+        if(Number(scorePercent) >= Number(gradingObject[groupId][index][0]) && scorePercent != 0)
         {
             grading = gradingObject[groupId][index][1];
-            break;
         }
     }
     return grading;
 }
 
-/**
- * Inserts a empty classification data set into Classificationstorage, since every dataset of a classifiable module has to have an entry 
- * because the updateClassifications_serverProcess is only updating instead of inserting.<br>
- * 
- * @param {String|Array} pUids         <p/>The unique uid('s) of the inserted record, string for one element, array for several elements
- * @param {String} pObjectType         <p>contextId for the passed uids that shall be initialized
- */
-ClassificationUtils.insertEmptyClassification = function(pUids, pObjectType)
-{
-    var classificationCount = newSelect("count(distinct CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID)")
-                                            .from("CLASSIFICATIONTYPE")
-                                            .where("CLASSIFICATIONTYPE.OBJECT_TYPE", pObjectType)
-                                            .cell();
-    var classificationvalue = "-".repeat(classificationCount);  
-            
-    if(Utils.isString(pUids))
-        pUids = [pUids];
-    
-    var columns = ["CLASSIFICATIONSTORAGEID",
-            "CLASSIFICATIONVALUE",
-            "OBJECT_ROWID",
-            "OBJECT_TYPE"
-            ];
-    var inserts = [];
-    var values;
-    for (var i = 0; i < pUids.length; i++) 
-    {
-        values = [util.getNewUUID(),
-                classificationvalue,
-                pUids[i],
-                pObjectType];
-        inserts.push(["CLASSIFICATIONSTORAGE", columns, null, values]);
-    }
-    db.inserts(inserts);
-}
-
-/**
- * Gets the maximum score for one group depending on the pClassificationGroupId param.
- * 
- * @param {String} pClassificationGroupId                       <p>
- *                                                              The classification groupname.<br>
- * @param {String} pClassificationType                          <p>
- *                                                              The classification type id.<br>
- * @return {String}                                             <p>
- *                                                              Returns the maximum possible score of the chosen group.<br>
- *                                                              
- */
-ClassificationUtils.getMaxScoreExcludeType = function(pClassificationGroupId, pClassificationType)
-{
-    var classificationGroupId = pClassificationGroupId;
-    var classificationType = pClassificationType;
-    var maxScore = 0;
-    scores = newSelect("max(CLASSIFICATIONSCORE.SCORE)")
-                            .from("CLASSIFICATIONTYPE")
-                            .join("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
-                            .where("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", classificationGroupId)
-                            .and("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationType, SqlBuilder.NOT_EQUAL())
-                            .groupBy("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
-                            .arrayColumn();
-                            
-    for (let i = 0; i < scores.length; i++)
-        maxScore = eMath.addInt(maxScore, parseInt(scores[i]));
-    
-    return maxScore;
-}
 
 /**
  * decodes a string that was encoded with AttributeSearchNameCoder.encode
@@ -450,6 +226,99 @@ ClassificationUtils.getTranslatedInfo = function ()
 return translate.text("Keep in Mind that changes to the Value with the greatest score directly affect the Classification Gradings of the Classification!");
 };
 
+/**
+ * Gets all the ClassificationTypeIds of the specified group
+ * 
+ * 
+ * @param {String} pClassificationGroupId                       <p/> The groupId of the group you want the classificationTypes of
+ * @param {String} pExcludeClassificationTypeID (optional)       <p/> Array of ClassificatioNTypeId you don't want to get back
+ * @param {Boolean} pOnlyUptoDate (optional)                    <p/> if true = condition get's added to only return the types where outdated != 1
+ *                                      
+ * @return {Object}                             <p/> an object that contains all keys and values that have been encoded with AttributeSearchNameCoder.encode
+ * @static 
+ */
+ClassificationUtils.getClassificationTypesOfGroup = function (pClassificationGroupId, pExcludeClassificationTypeID, pOnlyUptoDate)
+{
+    var classificationTypesOfOldGroup = newSelect("CLASSIFICATIONTYPEID")
+                                            .from("CLASSIFICATIONTYPE")
+                                            .where("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", pClassificationGroupId)
+    
+    if (pExcludeClassificationTypeID != null) 
+    {
+        classificationTypesOfOldGroup = classificationTypesOfOldGroup
+                                            .and("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", pExcludeClassificationTypeID, SqlBuilder.NOT_EQUAL())
+    }
+    if (pOnlyUptoDate) 
+    {
+        classificationTypesOfOldGroup = classificationTypesOfOldGroup
+                                            .and("CLASSIFICATIONTYPE.OUTDATED", 1, SqlBuilder.NOT_EQUAL())
+    }
+    
+    return classificationTypesOfOldGroup.arrayColumn();
+};
+
+/**
+ * This function get's used in the workflowExtention_serverProcess.
+ * It checks whether or not the change has any influence on stored classificationStorage datasets
+ * by checking if the entity itself is classificationRelevant or the entity has an relation with an classificationRelevant entity
+ * <p/>
+ * For further context behind why we use this outdated flag see also the documentation properties of "updateClassifications_serverProcess" and the classification_entities
+ * 
+ * 
+ * @param {Array} pTargetIds                    <p/> TargetIds
+ * @param {String} pEntityName                  <p/> Entity name
+ * @param {Object} pRowData                     <p/> row data
+ * @param {Object} pChangedRows                 <p/> changed rows
+ *                                      
+ * @return {void}
+ * @static 
+ */
+ClassificationUtils.setClassificationStorageDatasetsOutdated = function (pTargetIds, pEntityName, pRowData, pChangedRows)
+{
+    var relevantForClassification = false;
+    var classificationStorageIds = [];
+    var entityName = pEntityName;
+
+    if(entityName == "Organisation_entity" || entityName == "Salesproject_entity")
+    {
+        relevantForClassification = true;
+        classificationStorageIds.push(pTargetIds);
+    }
+    if(Dependency.getDependency(entityName).includes("Organisation_entity"))
+    {
+        relevantForClassification = true;
+        classificationStorageIds.push(Dependency.mapping()[entityName]["Organisation_entity"].getUIDsfn(pRowData, pChangedRows));
+    }
+    if(Dependency.getDependency(entityName).includes("Salesproject_entity"))
+    {
+        relevantForClassification = true;
+        classificationStorageIds.push(Dependency.mapping()[entityName]["Salesproject_entity"].getUIDsfn(pRowData, pChangedRows));
+    }
+
+//we have to remove empty arrays, since otherwise it would lead to an error when trying to use the condition for updating
+//empty arrays occur when e.g. inserting something that doesn't have any classificationStorageIds even though it is classificationrelevant
+    for (let i = 0; i < classificationStorageIds.length; i++)
+    {
+        if(classificationStorageIds[i][0] == undefined)
+        {
+            classificationStorageIds.splice(i, 1);
+            i--;
+        }
+    }
+
+    //set outdated flag for the classificationStorage datasets
+    if(relevantForClassification && classificationStorageIds.length > 0) // also check for the classificationStorageIds.length since it could be empty
+    {
+        for (i = 0; i < classificationStorageIds.length; i++) 
+        {
+            var cond = newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", classificationStorageIds[i], SqlBuilder.IN());
+            cond.updateData(true, "CLASSIFICATIONSTORAGE", ["OUTDATED"], null, [1]);
+        }
+    }
+};
+
+
+
 
 /*this is right now (2020-08-15) the only way to get something like a constant with 
  - a prober name
@@ -464,4 +333,4 @@ $ClassificationRecordCategories.CLASSIFICATION_GROUP_EXISTS =            functio
 $ClassificationRecordCategories.CLASSIFICATION_GROUP_DOESNT_EXIST =      function(){return "ClassificationGroupDoesntExist"};
 
 function $ClassificationPlaceholder(){}
-$ClassificationPlaceholder.TOPSECRETPLACEHOLDER =                        function(){return "T0PS3CR3TPL4CEH0LD3R"};
+$ClassificationPlaceholder.TOPSECRETPLACEHOLDER =                        function(){return "T0PS3CR3TPL4CEH0LD3R"};
\ No newline at end of file
diff --git a/process/Communication_lib/Communication_lib.aod b/process/Communication_lib/Communication_lib.aod
index a69299aa2aa56c2a3a2b1a4321e8779ff438187b..1bc1f16ef819bc6d5e27a7223595440cbc1e0d54 100644
--- a/process/Communication_lib/Communication_lib.aod
+++ b/process/Communication_lib/Communication_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Communication_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Communication_lib/process.js</process>
diff --git a/process/Communication_lib/process.js b/process/Communication_lib/process.js
index 055813cf362081fd583c1d8d2cd33fb0b4c0c4c4..f9e30868d8e9c816f642e8a383504605b2ba4990 100644
--- a/process/Communication_lib/process.js
+++ b/process/Communication_lib/process.js
@@ -31,11 +31,11 @@ CommUtil.getMediumIdsByCategory = function (pCategory)
     var keywordAttr = new KeywordAttribute($KeywordRegistry.communicationMedium(), "category");
     //TODO: use getRows() via JDito
     var mediumIds = newSelect("AB_KEYWORD_ENTRY.KEYID")
-                        .from("AB_KEYWORD_ATTRIBUTERELATION")
-                        .join("AB_KEYWORD_ENTRY", "AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID = AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ENTRY_ID")
-                        .where("AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ATTRIBUTE_ID", keywordAttr.id)
-                        .and("AB_KEYWORD_ATTRIBUTERELATION." + keywordAttr.dbField, pCategory)
-                        .arrayColumn();
+    .from("AB_KEYWORD_ATTRIBUTERELATION")
+    .join("AB_KEYWORD_ENTRY", "AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID = AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ENTRY_ID")
+    .where("AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ATTRIBUTE_ID", keywordAttr.id)
+    .and("AB_KEYWORD_ATTRIBUTERELATION." + keywordAttr.dbField, pCategory)
+    .arrayColumn();
     return mediumIds;
 };
 
@@ -73,19 +73,19 @@ CommUtil.setStandardForCategory = function(pAffectedRowId, pNewStandardCommId, p
     
     //set current standard comm-record as non-standard
     var cond = newWhere("ISSTANDARD = 1")
-                .and("COMMUNICATION.CONTACT_ID", pAffectedRowId)
-                .and("COMMUNICATION.MEDIUM_ID", mediumIds, SqlBuilder.IN());
+    .and("COMMUNICATION.CONTACT_ID", pAffectedRowId)
+    .and("COMMUNICATION.MEDIUM_ID", mediumIds, SqlBuilder.IN());
     
-     statements.push(["COMMUNICATION", cols, null, ["0"], cond.build()]);
+    statements.push(["COMMUNICATION", cols, null, ["0"], cond.build()]);
 
     //pNewStandardCommId can be an empty string if the standard has to only be removed
     if (pNewStandardCommId != "")
     {
         //set the new standard comm-record
         cond = newWhere("COMMUNICATION.COMMUNICATIONID", pNewStandardCommId)
-            //check communicationid, contactId and medium to prevent data-inconsistency when bad function params are passed by (e.g communicationid of a different category)
-            .and("COMMUNICATION.CONTACT_ID", pAffectedRowId)
-            .and("COMMUNICATION.MEDIUM_ID", mediumIds, SqlBuilder.IN());
+        //check communicationid, contactId and medium to prevent data-inconsistency when bad function params are passed by (e.g communicationid of a different category)
+        .and("COMMUNICATION.CONTACT_ID", pAffectedRowId)
+        .and("COMMUNICATION.MEDIUM_ID", mediumIds, SqlBuilder.IN());
             
         statements.push(["COMMUNICATION", cols, null, ["1"], cond.build()]);
     }
@@ -148,8 +148,8 @@ CommUtil.getStandardSubSqlForCategory = function(pCategory, pContactField)
         return "''";
     
     var selectStandardAddr = newSelect("max(COMMUNICATION.ADDR)")
-                                .from("COMMUNICATION")
-                                .where();
+    .from("COMMUNICATION")
+    .where();
                                 
     if (pContactField == undefined)
         selectStandardAddr.and("COMMUNICATION.CONTACT_ID = CONTACT.CONTACTID");
@@ -215,6 +215,41 @@ CommUtil.getStandardMail = function (pContactId)
     return db.cell(query);
 }
 
+/**
+ * Returns a sub sql-string (without brackets) for getting the address of a COMMUNICATION.<br>
+ * 
+ * @param {String} pMediumKey                                                <p>
+ *                                                                          Key of the keyword "COMMUNICATION.MEDIUM".<br>
+ *                                                                          (custom.category; e.g. "PHONE")<br>
+ * @param {String|Object} pContactField=CONTACT.CONTACTID (optional)        <p>
+ *                                                                          SQL-fieldname that shall be used for filtering the CONTACT_ID, <br>
+ *                                                                          this can be a string(fieldname) or an SqlBuilder object.<br>
+ * @return {String}                                                         <p>
+ *                                                                          Sub-sql.<br>
+ */
+CommUtil.getMediumAddrSubSqlByKey = function(pMediumKey, pContactField)
+{
+    var selectAddr = newSelect("max(COMMUNICATION.ADDR)")
+    .from("COMMUNICATION")
+    .where();
+                                
+    if (pContactField == undefined)
+        selectAddr.and("COMMUNICATION.CONTACT_ID = CONTACT.CONTACTID");
+    else if (typeof(pContactField) == "string")
+        selectAddr.and("COMMUNICATION.CONTACT_ID", pContactField);
+    else if (typeof(pContactField) == "object")
+    {
+        //you may want to sepcify a concrete value
+        selectAddr.and(pContactField);
+    }
+    else
+        return "''";
+    
+    selectAddr.andIfSet("COMMUNICATION.MEDIUM_ID", pMediumKey);
+    
+    return selectAddr.toString();    
+}
+
 /**
  * Provides static methods for validation of communication data.<br>
  * <b>Do not create an instance of this!</b>
diff --git a/process/Contact_lib/Contact_lib.aod b/process/Contact_lib/Contact_lib.aod
index ea8e5020017153333df78eddfd6bfd9c415e7208..3f85ffbdb21af8da880c9506eb12cdb42083f393 100644
--- a/process/Contact_lib/Contact_lib.aod
+++ b/process/Contact_lib/Contact_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Contact_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Contact_lib/process.js</process>
diff --git a/process/Context_lib/Context_lib.aod b/process/Context_lib/Context_lib.aod
index 88f0211eacad5423f96a78a8ceaa903a1bf72cdb..85bdd8cc4de7cbecc8feed39e346e5769e89a853 100644
--- a/process/Context_lib/Context_lib.aod
+++ b/process/Context_lib/Context_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Context_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Context_lib/process.js</process>
diff --git a/process/Context_lib/process.js b/process/Context_lib/process.js
index 5d0a3a81c1d8a05ae2b32234b3c290994ec76584..79854f907c1208b8eb03d83e6565a3fe8868e492 100644
--- a/process/Context_lib/process.js
+++ b/process/Context_lib/process.js
@@ -87,6 +87,26 @@ ContextUtils.getEntity = function (pContextId)
     return project.getContextStructure(pContextId).entity;
 }
 
+/**
+ * Returns the context associated with the entity
+ * 
+ * @param {String} pEntity the name of the Entity
+ * @return {String} the context
+ */
+ContextUtils.getContextId = function (pEntity)
+{
+    if (!pEntity)
+        return null;
+    
+    let contexts = project.getDataModels(project.DATAMODEL_KIND_CONTEXT);
+    
+    for (let i = 0; i < contexts.length; i++) {
+        if (ContextUtils.getEntity(contexts[i][0]) == pEntity)
+            return contexts[i][0];
+    }
+    return null;
+}
+
 /**
  * Returns the title of the entity associated with the context
  * 
diff --git a/process/Contract_lib/Contract_lib.aod b/process/Contract_lib/Contract_lib.aod
index f7e066be340112fbe6298f410624cc9ba6284dad..080920179a585c383923d1e2176a995de2bb6c7a 100644
--- a/process/Contract_lib/Contract_lib.aod
+++ b/process/Contract_lib/Contract_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Contract_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Contract_lib/process.js</process>
diff --git a/process/CountryInfoData_lib/CountryInfoData_lib.aod b/process/CountryInfoData_lib/CountryInfoData_lib.aod
index d1612a9f77a923a06489237005292a2055f0cd74..ecc2eedbcd9ecf42c4b0af0be9586e5f1181c9e7 100644
--- a/process/CountryInfoData_lib/CountryInfoData_lib.aod
+++ b/process/CountryInfoData_lib/CountryInfoData_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>CountryInfoData_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/CountryInfoData_lib/process.js</process>
diff --git a/process/CountryInfo_lib/CountryInfo_lib.aod b/process/CountryInfo_lib/CountryInfo_lib.aod
index d078970229a859484e2ed6c577f386f33d404ae5..69b0a804f393c38451118b8bb66a7dcb8544aa82 100644
--- a/process/CountryInfo_lib/CountryInfo_lib.aod
+++ b/process/CountryInfo_lib/CountryInfo_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>CountryInfo_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/CountryInfo_lib/process.js</process>
diff --git a/process/CreateActivity_workflowService/CreateActivity_workflowService.aod b/process/CreateActivity_workflowService/CreateActivity_workflowService.aod
index 0241a4b95bb97c496d2b06b83887d46045fa7058..d58e85470416d18524f0b384981b5fb1e19eea60 100644
--- a/process/CreateActivity_workflowService/CreateActivity_workflowService.aod
+++ b/process/CreateActivity_workflowService/CreateActivity_workflowService.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>CreateActivity_workflowService</name>
   <title>Create activity</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/CreateNotification_workflowService/CreateNotification_workflowService.aod b/process/CreateNotification_workflowService/CreateNotification_workflowService.aod
index e6455f2cd5a5798b87d51712a6bc525e434c0a78..d2630a2a5638fa17a1526a519952b9c564f3c3e4 100644
--- a/process/CreateNotification_workflowService/CreateNotification_workflowService.aod
+++ b/process/CreateNotification_workflowService/CreateNotification_workflowService.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>CreateNotification_workflowService</name>
   <title>Create notification</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/CreateNotification_workflowService/process.js b/process/CreateNotification_workflowService/process.js
index 3aa7508f4b63e62ec47537b94837d14d29ef296a..52b6f6fa9fe3f5929f17014aad2663d2e355bfb4 100644
--- a/process/CreateNotification_workflowService/process.js
+++ b/process/CreateNotification_workflowService/process.js
@@ -1,15 +1,51 @@
+import("KeywordRegistry_basic");
+import("system.text");
 import("system.vars");
 import("system.notification");
 
 var variables = JSON.parse(vars.get("$local.value"));
 
 var config = notification.createConfig()
-    .notificationType("WorkflowNotification")
-    .addUsersWithIds([variables.notificationUser || variables.USER_ID])
+    .notificationType(variables.notificationType || "WorkflowNotification")
     .caption(variables.notificationCaption || "")
     .description(variables.notificationDescription || "");
-    
+
+try {
+    config.addUsersWithIds(JSON.parse(variables.notificationUser));
+} catch (e) { // Throw an exeption when the variable can't parse to an JSON-Object. 
+    config.addUsersWithIds([variables.notificationUser || variables.USER_ID])
+}
+
+var prio;
+switch (variables.notificationPriority){
+    case $KeywordRegistry.notificationPriority$none:
+        prio = notification.PRIO_NONE
+        break;
+    case $KeywordRegistry.notificationPriority$low():
+        prio = notification.PRIO_LOW
+        break;
+    case $KeywordRegistry.notificationPriority$hight():
+        prio = notification.PRIO_HIGH
+        break;
+    case $KeywordRegistry.notificationPriority$max():
+        prio = notification.PRIO_MAX
+        break;
+    case $KeywordRegistry.notificationPriority$normal():
+    default:
+        prio = notification.PRIO_NORMAL
+        break;
+}
+config.forcedPriority(prio);
+
 if (variables.notificationIcon)
     config.imageInfo(variables.notificationIcon);
+if (variables.notificationSubcategory)
+    config.notificationSubCategory(variables.notificationSubcategory);
+
+if (variables.notificationAffectedContext && variables.notificationAffectedUID)
+    config.linkInfo(text.encodeMS([variables.notificationAffectedContext, variables.notificationAffectedUID]));
 
+if (variables.notificationContentId)
+    config.contentId(variables.notificationContentId).remindAgainOnNewContent(true);
+    
 notification.addNotificationWith(config);
\ No newline at end of file
diff --git a/process/CreateSalesprojectTouchpoint_workflowService/CreateSalesprojectTouchpoint_workflowService.aod b/process/CreateSalesprojectTouchpoint_workflowService/CreateSalesprojectTouchpoint_workflowService.aod
index df1d296af52649bba991103fa19f6839afd86f3a..6e44f166f6448deeff7b7dea82ab256e34aa16c3 100644
--- a/process/CreateSalesprojectTouchpoint_workflowService/CreateSalesprojectTouchpoint_workflowService.aod
+++ b/process/CreateSalesprojectTouchpoint_workflowService/CreateSalesprojectTouchpoint_workflowService.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>CreateSalesprojectTouchpoint_workflowService</name>
   <title>Create salesproject touchpoint</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/CreateSalesproject_workflowService/CreateSalesproject_workflowService.aod b/process/CreateSalesproject_workflowService/CreateSalesproject_workflowService.aod
index 8b41b437136f9d92113d9f4cb310c3c127239e78..fa5f2a849d62b5144be2eb954f8460569e2c05ab 100644
--- a/process/CreateSalesproject_workflowService/CreateSalesproject_workflowService.aod
+++ b/process/CreateSalesproject_workflowService/CreateSalesproject_workflowService.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>CreateSalesproject_workflowService</name>
   <title>Create salesproject</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/CustomPlaceholder_lib/CustomPlaceholder_lib.aod b/process/CustomPlaceholder_lib/CustomPlaceholder_lib.aod
index 8e915687a2ad2cdd2fcdcc75bb67e37635191fdc..1a6e6266888b8ffbfd7e375eb395198a87f6b30f 100644
--- a/process/CustomPlaceholder_lib/CustomPlaceholder_lib.aod
+++ b/process/CustomPlaceholder_lib/CustomPlaceholder_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>CustomPlaceholder_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/CustomPlaceholder_lib/process.js</process>
diff --git a/process/DataCaching_lib/DataCaching_lib.aod b/process/DataCaching_lib/DataCaching_lib.aod
index 732c9784be4434a3a4776c4865536eaeb260e280..06e4baffd563073f815edf70cc7164ad632a7e5e 100644
--- a/process/DataCaching_lib/DataCaching_lib.aod
+++ b/process/DataCaching_lib/DataCaching_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>DataCaching_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/DataCaching_lib/process.js</process>
diff --git a/process/DataPrivacy_lib/DataPrivacy_lib.aod b/process/DataPrivacy_lib/DataPrivacy_lib.aod
index 87e4a73a1b3e1111ba777f8296eda926464c7777..229eb4f89658803f65a7b693a026cfb3709db9a0 100644
--- a/process/DataPrivacy_lib/DataPrivacy_lib.aod
+++ b/process/DataPrivacy_lib/DataPrivacy_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>DataPrivacy_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/DataPrivacy_lib/process.js</process>
diff --git a/process/DataPrivacy_lib/process.js b/process/DataPrivacy_lib/process.js
index da986784dd28531ee4e18bfb071b17937fc31e4f..4eeff329bdde5132e17ae5e101d8aff4e52f7303 100644
--- a/process/DataPrivacy_lib/process.js
+++ b/process/DataPrivacy_lib/process.js
@@ -200,7 +200,7 @@ DataPrivacyType.get = function(pKey)
         // TODO: update and fix Address_lib and use it (and remove format-functions in PostalAddress_lib)
         var entityConfig = entities.createConfigForLoadingRows()
                                    .entity("Address_entity")
-                                   .fields(["ADDRESSID", "ADDRESS", "ADDRESSADDITION", "ADDRIDENTIFIER", "BUILDINGNO", "ZIP", "CITY", "COUNTRY", "DISTRICT", "REGION", "PROVINCE"]);
+                                   .fields(["ADDRESSID", "ADDRESS", "ADDRESSADDITION", "ADDRIDENTIFIER", "BUILDINGNO", "ZIP", "CITY", "COUNTRY", "DISTRICT", "PROVINCE"]);
 
         if (pAddressId)
         {
@@ -579,10 +579,6 @@ DataPrivacyUtils.buildReport = function (pContactId, pReportName, pDSGVOInfo, pL
     
     var DSGVOReport = new Report(pReportName);
     
-    // TODO: get Images implementieren ( address am besten eine andere Lösung!)
-    var imgData = ["meineFirma | Wilhelm-Str. 2  |  DE 80807 München",
-    "base64:iVBORw0KGgoAAAANSUhEUgAAAM4AAABRCAYAAACaL5lSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDA4QzAyM0IwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDA4QzAyM0MwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMDhDMDIzOTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMDhDMDIzQTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhF3nYoAAAlvSURBVHja7J1fjBXVHcfPJQJRoe1urQYJRBYlMUJisqwvGNjY3WgEUtN2CeWBIGb3Ju6LElsW+gA8AHe1UfuwTcBASB/Q7CZNG0tjw2pWU15kNzEBJFnLqmvQBNEbU0pbX+jve+9vlrOzM/fOnTtz78zs95P8cv/MOTPnzJzvnN/5zZ+Tu3XrliGE1MYC7gJCKBxCKBxCKBxCKBxCKBxCCIVDCIVDCIVDCIVDyDzmDq8/d+1/PY5trRB7VGyt2BqxVWLLxe4RW6JpbohdF7sq9qnYpNhFsY/Evoi6QKeOvMAWQKITToQ8LPaEWKfYBrFlVdL/SO1BsU3W/1+JnRMbE3tP7DIPHcmicLrFfia2VWxlBOuD4H6pNi32tthfxM7yEJIsCAc9yw6x7WJLYyozhNgvtlPsLbHT2hMRkjrhYPzynNhu/d4IIMxesafEToqdiGMcREhcwnlKe4AtTaoDhHpArF1sSOwdHlYSN/WGo/Niv2+iaGy2aFnyPKwkqT1OTmyf2pIE1Qdh7t+J/VjsqBgfbyWJEU5OXaMDCa0ThHxYbJHYIYqHJMVV25dg0dgc0LIS0nTh5FPWGPdxzEOaLRxEz/YkbEwTxG3bo2UnpOHCQci3XwffaWONln0FDzdptHBwcXNLiuu5RetASMOE02nKdwSknd1aF0IaIpwdGXFzVmhdCIldOLjLeXuG6rtd60RIrMLBowFLM1TfpVonQmITDh5C25rBOm/VuhESi3Dw5ObKDNZ5pdaNkFiE05nhenfy0JM4hIMI1IYM13uD4QVREoNw8DaaZRmu9zKtIyGh8HusYG3UG/pJ6w/NKy89O/P70j+nzSsn/zTz+5EHV5oHlt9rep58fFa+sQ8vmEtXps35C5/4+12PrTMP3H9v6dMGeZAX6/Cp49tsAiRK4TTsnrS771xsdj3TZTrWPeQrCtiljmnzhzfPmH//538zyyC0/l9tLonSC6wT1tmxzgxJ3q+//a4pdSTzx1Vb1SjR/Hr3L3xFY4MeCWnt3wf7d/iKxgYC+83un7vTruLhJ1H3OMsbsfHnpbdAo0Yv8rcPzpsz74/P6i3QU0AgtgA2b1pvPhQXDHltd+7MB+MzPQrSIa/tukE0mzeuN6f+/O6cOuZyubrr0tvb12bK73nDZ/cbbxwfzWKD2Tnw2l75KIiN/rHwYibvwggyobSfcO6Ju3COINDYX5axjsuNKo1PYLue+eksATy9scN0rF1T6q0AxkkYL9l8dvWaOXX1XfPZl9dK+W23zxJY1HXsUtEANK7RBDf+s1reakyJOFa7/utz6ivr6ZLlmTxBhHXVGvawmsfYYxYjf//HrHENBIMexVnmFs2cwIJr+WO33cKo64gGNKXfBzPcZo479Z2voqnU4zQENGz0DpWAaJAOLpoNxGa7dn6cv/jJbHfv/vtiqYu4ZhDN6pQd/5rdLUk/mPETQ109zo2GCOf8hUDpPr4yHTqvu8exAgQ3DCERC+d63BtGT1Ktt3G45uHK+VybmYPbDbSEc52Hn0QtnKtxb7jSuKZaWojOHvfUkt8JKjSijmT+jXEwqdOmeHuc/4bOe7OOvK46etLb24eoWI8pv4/aHhSP+IWZNRx9RX/mJd3xasvlP2wDUSo7wlUaQ8jyYrUKhClnvewceO2Yltkr4maHq0vLEXkz5SijU8duJ6jgXpf8btPfe937Q5YXNU+LpilYaSY0zUiVsrdrObD+FmsR8o1Uyx+kx5mcByeNSa/GLzauB6XdtRgH66w21rqR9aDRDJu5YWGsf1yF5pe3YeWsU2QoW6DQt6a94hLNzP6AYFRY4y7RGN0Hwypav/UXrLwtrsU91fIHFc7FeSCci67G2KIHGQehqL1CDmbK0TLnbFSQtH11brtPbdDaRqu5Hept82hAzShnveDEgN5ltZzNc2pePaFTJ5S9Fel89sewfs876zPlR+GdywAFFZcX7VYPtj5E/kCuGubcxPSBWb1D+iuto01BDwp2YreGl0vo923SEIf17LTXOqhhaHe7c+qa5VUYJRdOvg94uGxRlhMXMStdJu+u41oNyjgRMNzdoq7SNucPdc3y2pC7rBPJNtulQvkkTd7cnp2vx3iHyydUcFP2nzXkD9TjYIKmcxnubc4ZaxIqbazO2XnQbowunB0KV6m9ju2PusdALn/bfZZsVjnrZTCCtPZ+8hyHqLinLMEajzQDbtG48hcr5Q/a44AxU55zM4uMefi4Xg13FtJQJ6Qh2o16IqxwAi5ri7mcsd5vVsNguyhp/co44fPdzZTur7aQxZ0wwW5DqioczO6Mq4dZfO/Aex5uhcO3VqOr5l6EpVih0RcrbL/R5ayHqSj2RwURhdqeFZWzx5s1i62ScDAlOh706s+gcC4npHHVSoshoRDB9Fjjw7qpdq8apkTH7M5LM75fnTNeUc74rSxn5kTjXFtyGLDHUAhE1HDHeCDhYGWYEr13nginBQPwIBcfWc5UsdcKLmyLYoVB3h192mR/GvRRnwE4y5n+3qbdcnErBSvaoxbOmNjJLO9cRKGsgWehylX7rmZdlU9LOdM2RtS7ClqiFg44IfbXtO6thQvvuBkgWd7auePuRqcN8Zi5faGsWaSlnIlAw9yOS1vQIIEjmDb7frkogwMOcNWGTPnNMGl7O8zknYsX/UA+76p2NpcGB/93WBslzugFn+QTzapMWsqZMPLW/sI9ae7l3ToOChxxq2UO0HfEXjXpegAMZX118aKFNwM2SvjAqzXqUvRohPi/tdkv4khLORPU64yoONxjHNyVsD7MbUU5rzd67Nr/eqU8+8UOp2Sf/VbsiN/CU0deYKsioVgQIs9RsUMpqNshLSshkRPmZR23tFF+L7bPJG/69hsqmKNaVkISIRxHPHCBvhHbk6CAwaSOw47x0JIkCscBDfRzU76frdnTuSNcPqRBDEISLRyjDfWSKUdzMCV6o+edQagcF2hPmOzf4UAyJByn8R405bsMMCU6ZneO+8bQf5nyfXSnzdznawhJhXAcxtQQL8fszpioNurnefCMEB53wJ3bvDpOMiEch7NqGHNgotpOU54+MOw7DPCOgHMqSjyEdpmHjmRROA6X1YZ07IPpAzETGqJwmJ8GU21g1gAnpI1QMt6wiZcF4r1niJLhbTQfcfxCkkQuyFwghJDZLOAuIITCIYTCIYTCIYTCIYTCIYRQOIRQOIRQOIRQOIRQOISQWvi/AAMA9UczDEaG0p8AAAAASUVORK5CYII="]
-    
     var dsgvoData = DataPrivacyUtils.dataForExport(pContactId, pLocale);
     
     // text for transmission
@@ -661,7 +657,7 @@ Muster-Datenschutzberatung";
 
     
     var params = {
-        "myAddress" : imgData[0], 
+        "myAddress" : project.getPreferenceValue("custom.myCompany.addr"), 
         "address" : addrObject.getFormattedAddress(false, "{salutation_name}\n {street} {buildingno}\n {country_short} - {zip} {city}"), 
         "salutation" : addrObject.getFormattedAddress(false, "{letter_salutation},"),
         "dateRequest" : datetime.toDate(pDSGVOInfo.requestDate, translate.text("dd.MM.yyyy", pLocale), "UTC"),
@@ -673,7 +669,7 @@ Muster-Datenschutzberatung";
     };
 
     DSGVOReport.setReportData(ReportData.begin(dsgvoData[0]).add(dsgvoData[1]));
-    DSGVOReport.addImage("myLogo", imgData[1]);
+    DSGVOReport.addImage("myLogo", project.getPreferenceValue("custom.myCompany.logo"));
     DSGVOReport.addReportParams(params);
     
     return DSGVOReport.exportReport();
diff --git a/process/Data_lib/Data_lib.aod b/process/Data_lib/Data_lib.aod
index 7e6dc0e007d710b42680bd618e2e6e4889e0296d..316134e4f970129928126e6cc33547d76b580e79 100644
--- a/process/Data_lib/Data_lib.aod
+++ b/process/Data_lib/Data_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Data_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Data_lib/process.js</process>
diff --git a/process/Date_lib/Date_lib.aod b/process/Date_lib/Date_lib.aod
index 9833cb86c53bc720131800ef98c93138e6b61db2..4442988df03042c92262a00d87308c4785e62828 100644
--- a/process/Date_lib/Date_lib.aod
+++ b/process/Date_lib/Date_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Date_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Date_lib/process.js</process>
diff --git a/process/Dependency_lib/Dependency_lib.aod b/process/Dependency_lib/Dependency_lib.aod
new file mode 100644
index 0000000000000000000000000000000000000000..be3eec18d19dfe0ecd4abba618560bb14d59a086
--- /dev/null
+++ b/process/Dependency_lib/Dependency_lib.aod
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
+  <name>Dependency_lib</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <process>%aditoprj%/process/Dependency_lib/process.js</process>
+  <variants>
+    <element>LIBRARY</element>
+  </variants>
+</process>
diff --git a/process/Dependency_lib/process.js b/process/Dependency_lib/process.js
new file mode 100644
index 0000000000000000000000000000000000000000..e8967c862a7420d9c411fe3067ac16899dce9451
--- /dev/null
+++ b/process/Dependency_lib/process.js
@@ -0,0 +1,848 @@
+import("Sql_lib");
+import("system.favorite");
+
+function Dependency(){}
+
+/**
+ * Get the Default Funktion for Fields of an table. The funktion is used to get the UIDs of the dependent Context.
+ * 
+ * @param {String} [pTableField] the table field is transferred in the following form: <br>
+ *                                  - DB-RecordContainer: TableName.FieldName
+ *                                  - JDITO-RecordContainer: FieldName.value 
+ * @return {function}  function (pNewData, pOldData) {...} 
+ */
+Dependency.defaultFunctionForField = function (pTableField) 
+{
+    return function (pNewData, pOldData) 
+    {
+        let res = [];
+        if (pNewData[pTableField])
+            res.push(pNewData[pTableField])
+        if (pOldData[pTableField] && pOldData[pTableField] != pNewData[pTableField])
+            res.push(pOldData[pTableField])
+        return res;
+    };
+}
+
+/**
+ * Get the Default Funktion for Fields of an table. The funktion is used to get the UIDs of the dependent Context.
+ * 
+ * @param {Array} [pTableFields] A table field is transferred in the following form: <br>
+ *                                  - DB-RecordContainer: TableName.FieldName
+ *                                  - JDITO-RecordContainer: FieldName.value 
+ * @return {function}  function (pNewData, pOldData) {...} 
+ */
+Dependency.defaultFunctionForFields = function (pTableFields)
+{
+    return function (pNewData, pOldData) 
+    {
+        let res = [];
+        for (let i = 0; i < pTableFields.length; i++)
+        {
+            res = res.concat(Dependency.defaultFunctionForField(pTableFields[i])(pNewData, pOldData));
+        }
+        return res;
+    }
+}
+
+/**
+ * Get the default Funktion for relation tables of an entity. The Funktion is used to get the UIDs of the dependent Context over the relation table.
+ * 
+ * @param {String} [pRelationTable] The Tablename of the relation table.
+ * @param {String} [pRelationField] The Field of the relation table which one contains the UID of the Entity (in the Example: "Person_entity").
+ * @param {String} [pDataField] The UID Field of the Entity.
+ * @param {String} [pContext] The Context of the Entity.
+ * @param {String} [pDataTable] The Tablename of the UID Field of the Entity. Is only need for the DB-Recordcontainer.
+ * @param {String} [pSourceField] The Field which one contains the UID of the dependent entity in the relation rable.
+ *                                  
+ * @example "Person_entity": { "Activity_entity" : { "options" : { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CONTACTID", "Person", "CONTACT", "ACTIVITY_ID")}}
+ * 
+ * @return {function}  function (pNewData, pOldData) {...} 
+ */
+Dependency.defaultFunctionForRelation = function (pRelationTable, pRelationField, pDataField, pContext, pDataTable, pSourceField) 
+{
+    return function (pNewData, pOldData)
+    {
+        var relationFieldValue;
+        if (!pDataTable)
+        {
+            relationFieldValue = pNewData["UID.value"] || pNewData[pDataField  +".value"];
+        }
+        else 
+        {
+            relationFieldValue = pNewData[pDataTable + "." + pDataField];
+        }
+        
+            
+        return newSelect(pRelationTable + "." + pSourceField || "OBJECT_ROWID")
+        .from(pRelationTable)
+        .groupBy(pRelationTable + ".OBJECT_ROWID")
+        .whereIfSet(pRelationTable + "." + pRelationField, relationFieldValue)
+        .and(pRelationTable + ".OBJECT_TYPE", pContext)
+        .arrayColumn();
+    }
+}
+
+/**
+ * Get the Default Funktion for Fields of an table. The funktion is used to get the UIDs of the dependent Context.
+ * 
+ * @param {String} [pTableField] the table field is transferred in the following form: <br>
+ *                                  - DB-RecordContainer: TableName.FieldName
+ *                                  - JDITO-RecordContainer: FieldName.value 
+ * @param {String} [pContext] The Context of the Entity.
+ *                              
+ * @return {function}  function (pNewData, pOldData) {...} 
+ */
+Dependency.defaultFunctionForFavorites = function (pTableField, pContext) 
+{
+    return function (pNewData, pOldData)
+    {
+        let rowIds = Dependency.defaultFunctionForField(pTableField)(pNewData, pOldData);
+        let ids = [];
+    
+        let config = favorite.createGetFavoritesConfig().setObjectType(pContext);
+        let favos = favorite.getFavorites(config);
+        
+        for(let i = 0; i < favos.length; i++)
+        {
+            if (rowIds.indexOf(favos[i]["rowid"]) > -1 )
+            {
+                ids.push(favos[i]["id"]);
+            }
+                
+        }
+
+        return ids;
+    }
+}
+
+/**
+ * Returns the Mapping of the Dependencies. <br>
+ * <br>
+ * Every Dependency needs a Funktion with returns the UIDs of the Dependent Entity.<br>
+ * This Funtkion is placed in the Object on the getUIDsfn Node.<br>
+ * <br>
+ * The mapping is structured as follows: <br>
+ *  
+ * @example { "Entity_entity" : { "Dependency_entity": { "options" : { "option" : true}, "getUIDsfn" : function (pNewData, pOldData) {return //the IDs of the EntityField } } } }
+ * 
+ * @return {Object}
+ */
+Dependency.mapping = function ()
+{
+    return {
+        "Person_entity": {
+            "Activity_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CONTACTID", "Person", "CONTACT", "ACTIVITY_ID")
+            },
+            "Task_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "CONTACTID", "Person", "CONTACT", "ACTIVITY_ID")
+            },
+            "Favorite_entity" : {
+                "options" : {
+                    "isObservable" : true
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForFavorites("CONTACT.CONTACTID", "Person")
+            }
+        },
+        "PrivatePerson_entity": {
+            "Activity_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "PERSONID", "PrivatePerson", "PERSON", "ACTIVITY_ID")
+            },
+            "Task_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "PERSONID", "PrivatePerson", "PERSON", "ACTIVITY_ID")
+            }
+        },
+        "Organisation_entity": {
+            "Activity_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CONTACTID", "Organisation", "CONTACT", "ACTIVITY_ID")
+            },
+            "Task_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "CONTACTID", "Organisation", "CONTACT", "ACTIVITY_ID")
+            },
+            "Favorite_entity" : {
+                "options" : {
+                    "isObservable" : true
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForFavorites("CONTACT.CONTACTID", "Organisation")
+            }
+        },
+        "Salesproject_entity": {
+            "Activity_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "SALESPROJECTID", "Salesproject", "SALESPROJECT", "ACTIVITY_ID")
+            },
+            "Task_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "SALESPROJECTID", "Salesproject", "SALESPROJECT", "ACTIVITY_ID")
+            },
+            "Favorite_entity" : {
+                "options" : {
+                    "isObservable" : true
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForFavorites("SALESPROJECT.SALESPROJECTID", "Salesproject")
+            }
+        },
+        "KnowledgeManagement_entity": {
+            "Favorite_entity" : {
+                "options" : {
+                    "isObservable" : true
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForFavorites("KNOWLEDGEMANAGEMENT.KNOWLEDGEMANAGEMENTID", "KnowledgeManagement")
+            }
+        },
+        "ExportTemplate_entity": {
+            "Favorite_entity" : {
+                "options" : {
+                    "isObservable" : true
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForFavorites("EXPORTTEMPLATE.EXPORTTEMPLATEID", "ExportTemplate")
+            }
+        },
+        
+        "Order_entity": {
+            "Activity_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "SALESORDERID", "Order", "SALESORDER", "ACTIVITY_ID")
+            },
+            "Organisation_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : function (pRowData, pChangedData) {
+                    var tableField = "SALESORDER.CONTACT_ID";
+                    var res = [];
+                    if (pRowData[tableField])
+                        res.push(pRowData[tableField])
+                    if (pChangedData[tableField] && pChangedData[tableField] != pRowData[tableField])
+                        res.push(pChangedData[tableField])
+                    return res;
+                }
+            },
+            "Task_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "SALESORDERID", "Order", "SALESORDER", "ACTIVITY_ID")
+            },
+            "Favorite_entity" : {
+                "options" : {
+                    "isObservable" : true
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForFavorites("SALESORDER.SALESORDERID", "Order")
+            }
+        },
+        "Contract_entity": {
+            "Activity_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CONTRACTID", "Contract", "CONTRACT", "ACTIVITY_ID")
+            },
+            "Task_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "CONTRACTID", "Contract", "CONTRACT", "ACTIVITY_ID")
+            },
+            "Favorite_entity" : {
+                "options" : {
+                    "isObservable" : true
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForFavorites("CONTRACT.CONTRACTID", "Contract")
+            }
+        },
+        "Product_entity": {
+            "Activity_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "PRODUCTID", "Product", "PRODUCT", "ACTIVITY_ID")
+            },
+            "Task_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "PRODUCTID", "Product", "PRODUCT", "ACTIVITY_ID")
+            },
+            "Favorite_entity" : {
+                "options" : {
+                    "isObservable" : true
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForFavorites("PRODUCT.PRODUCTID", "Product")
+            }
+        },
+        "Campaign_entity": {
+            "Activity_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CAMPAIGNID", "Campaign", "CAMPAIGN", "ACTIVITY_ID")
+            },
+            "Task_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "CAMPAIGNID", "Campaign", "CAMPAIGN", "ACTIVITY_ID")
+            },
+            "Favorite_entity" : {
+                "options" : {
+                    "isObservable" : true
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForFavorites("CAMPAIGN.CAMPAIGNID", "Campaign")
+            }
+        },
+        "SupportTicket_entity" : {
+            "Activity_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "TICKETID", "SupportTicket", "TICKET", "ACTIVITY_ID")
+            },
+            "Task_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "TICKETID", "SupportTicket", "TICKET", "ACTIVITY_ID")
+            },
+            "Favorite_entity" : {
+                "options" : {
+                    "isObservable" : true
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForFavorites("TASK.TASKID", "SupportTicket")
+            }
+        },
+        "Activity_entity" : {
+            "Person_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Person", "ACTIVITY")
+            },
+            "Organisation_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Organisation", "ACTIVITY")
+            },
+            "Salesproject_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Salesproject", "ACTIVITY")
+            },
+            "Offer_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Offer", "ACTIVITY")
+            },
+            "Order_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Order", "ACTIVITY")
+            },
+            "Contract_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Contract", "ACTIVITY")
+            },
+            "Product_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Product", "ACTIVITY")
+            },
+            "Campaign_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Campaign", "ACTIVITY")
+            }
+        },
+        "Address_entity": {
+            "Organisation_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("ADDRESS.CONTACT_ID")
+            },
+            "Person_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("ADDRESS.CONTACT_ID")
+            }
+        },
+        "AttributeRelation_entity" : {
+            "Person_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Person")
+            },
+            "Organisation_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Organisation")
+            },
+            "Activity_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Activity")
+            },
+            "Salesproject_entity" : { 
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Salesproject")
+            },
+            "Product_entity" : { 
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Product")
+            },
+            "Employee_entity" : { 
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Employee")
+            },
+            "SupportTicket_entity" : { 
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "SupportTicket")
+            }
+        },
+        "Communication_entity": {
+            "Person_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("COMMUNICATION.CONTACT_ID")
+            },
+            "Organisation_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("COMMUNICATION.CONTACT_ID")
+            }
+        },
+        "CommRestriction_Entity" : {
+            "Person_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("COMMRESTRICTION.CONTACT_ID")
+            },
+            "Organisation_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("COMMRESTRICTION.CONTACT_ID")
+            }
+        },
+        "Contact_entity" : {
+            "Person_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("CONTACT.CONTACTID")
+            }
+        },
+        "Document_entity" : {
+            "Person_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
+            },
+            "Organisation_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
+            },
+            "Activity_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
+            },
+            "Task_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
+            },
+            "Salesproject_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
+            },
+            "Offer_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
+            },
+            "Order_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
+            },
+            "Contract_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
+            },
+            "Product_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
+            },
+            "Employee_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
+            },
+            "SupportTicket_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
+            },
+            "Campaign_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
+            }
+        },
+        "ObjectTree_entity": {
+            "Person_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForFields(["PARENT_ID.value", "TARGET_ID.value"])
+            },
+            "Organisation_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForFields(["PARENT_ID.value", "TARGET_ID.value"])
+            }
+        },
+        "Member_entity" : {
+            "Campaign_entity" : { 
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("OBJECTMEMBER.OBJECT_ROWID") // Evtl einschränken auf Type
+            },
+            "Salesproject_entity" : { 
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("OBJECTMEMBER.OBJECT_ROWID") // Evtl einschränken auf Type
+            }
+        },
+        "SalesprojectSource_entity" : {
+            "Salesproject_entity" : { 
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("SALESPROJECT_TOUCHPOINT.SALESPROJECT_ID")
+            }
+        }, 
+        "Forecast_entity" : {
+            "Salesproject_entity" : { 
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("FORECAST.OBJECT_ROWID")  // Evtl einschränken auf Type
+            }
+        },
+        "Offer_entity" : {
+            "Salesproject_entity" : { 
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("OFFER.OBJECT_ROWID")  // Evtl einschränken auf Type
+            },
+            "Activity_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "OFFERID", "Offer", "OFFER", "ACTIVITY_ID")
+            },
+            "Task_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "OFFERID", "Offer", "OFFER", "ACTIVITY_ID")
+            },
+            "Favorite_entity" : {
+                "options" : {
+                    "isObservable" : true
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForFavorites("OFFER.OFFERID", "Offer")
+            }
+        },
+        "DocumentTemplate_entity": {
+            "Favorite_entity" : {
+                "options" : {
+                    "isObservable" : true
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForFavorites("DOCUMENTTEMPLATE.DOCUMENTTEMPLATEID", "DocumentTemplate")
+            }
+        },
+        "WorkflowDefinition_entity": {
+            "Favorite_entity" : {
+                "options" : {
+                    "isObservable" : true
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForFavorites("UID.value", "WorkflowDefinition")
+            }
+        },
+        "Competition_entity" : {
+            "Salesproject_entity" : { 
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("COMPETITION.OBJECT_ROWID")  // Evtl einschränken auf Type
+            }
+        },
+        "Offeritem_entity" : {
+            "Offer_entity" : { 
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("OFFERITEM.OFFER_ID")
+            }
+        },
+        "Orderitem_entity" : {
+            "Order_entity" : { 
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("SALESORDERITEM.SALESORDER_ID")
+            }
+        },
+        "Productprice_entity" : {
+            "Product_entity" : { 
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("PRODUCTPRICE.PRODUCT_ID")
+            },
+            "Favorite_entity" : {
+                "options" : {
+                    "isObservable" : true
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForFavorites("PRODUCTPRICE.PRODUCTPRICEID", "Productprice")
+            }
+        },
+        "Prod2prod_entity" : {
+            "Product_entity" : { 
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("SOURCE_ID.value")
+            }
+        },
+        "CampaignCost_entity" : {
+            "Campaign_entity" : { 
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("CAMPAIGNCOST.CAMPAIGN_ID")
+            }
+        },
+        "CampaignStep_entity" : {
+            "Campaign_entity" : { 
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("CAMPAIGNSTEP.CAMPAIGN_ID")
+            },
+            "Activity_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CAMPAIGNSTEPID", "CampaignStep", "CAMPAIGNSTEP")
+            },
+            "Task_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "CAMPAIGNSTEPID", "CampaignStep", "CAMPAIGNSTEP")
+            }
+        },
+        "Lead_entity" : {
+            "Leadimport_entity" : { 
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("LEAD.LEADIMPORT_ID")
+            }
+        }
+    };
+};
+/**
+ * Returns the exculed Fields of the observable entities. These fields cannot be observed.
+ * 
+ * @return {Object} {"Entity_entity" : ["exculdedFieldName",...], ...}
+ */
+Dependency.excludedFields = function ()
+{
+    return {
+        "Activity_entity":["PARENT_ID", "PARENT_CONTEXT"],
+        "Address_entity":["CONTACT_ID"],
+        "AttributeRelation_entity":["UID", "AB_ATTRIBUTERELATIONID", "PARENT_ID", "PROTECTED", "ATTRIBUTE_TYPE", "DROPDOWNDEFINITION", "DROPDOWNFILTER"],
+        "CampaignCost_entity":["NET_aggregate"],
+        "CampaignStep_entity":null,
+        "Campaign_entity": null,
+        "CommRestriction_Entity":["CONTACT_ID"],
+        "Communication_entity":["CONTACT_ID"],
+        "Competition_entity":["OBJECT_ROWID", "OBJECT_TYPE"],
+        "Contact_entity":["ADDRESS_ID", "PERSON_ID"],
+        "Contract_entity": null, 
+        "DocumentTemplate_entity":null,
+        "Document_entity":null,
+        "Employee_entity":["UID", "SHORT_UID", "CONFIRM_PASSWORD", "PASSWORD"],
+        "ExportTemplate_entity":null,
+        "Favorite_entity":["UID", "GROUP_ID", "USER_ID", "GROUP_TYPE", "PICTURE"],
+        "Forecast_entity":null,
+        "KnowledgeManagement_entity":null,
+        "Lead_entity":["LEAD_PERSON", "LEAD_ORGANISATIONID"],
+        "Leadimport_entity":null,
+        "Member_entity":["OBJECT_ROWID", "OBJECT_TYPE"],
+        "ObjectTree_entity":["UID","PARENT_ID", "ICON", "EXPANDED", "TARGET_CONTEXT", "OBJECTRELATIONID"],
+        "Offer_entity":["OFFER_ID"],
+        "Offeritem_entity":["ASSIGNEDTO", "ITEMSORT", "OFFER_ID"],
+        "Order_entity":null,
+        "Orderitem_entity":["ASSIGNEDTO", "ITEMSORT", "SALESORDER_ID"],
+        "Organisation_entity":["ORGANISATION_ID"],
+        "Person_entity":["TITLESUFFIX", "PERSON_ID", "ADDRESS_ID"],
+        "PrivatePerson_entity":null,
+        "Prod2prod_entity":["UID", "PRODUCTID", "PROD2PRODID", "DEST_ID"],
+        "Product_entity": ["PICTURE"],
+        "Productprice_entity":null,
+        "SalesprojectSource_entity":["SALESPROJECT_ID"],
+        "Salesproject_entity":null,
+        "SupportTicket_entity":["TASK_ID", "TASK_PARRENT_ID", "TASK_PARENT_CONTEXT"],
+        "Task_entity":["PARENT_ID", "PARENT_CONTEXT","PROTECTIONLEVEL", "TYPE"],
+        "WorkflowDefinition_entity":["UID"]
+    };
+}
+
+/**
+ * Returns the dependencies on the entity
+ * 
+ * @param {String} [pEntity] the name of the entity
+ * @param {Object} [pOptionFilter] the Object must be handed over in the format: { "option" : true/false }
+ * 
+ * @example
+ * Dependency.getDependency("Organisation_entity", {"isObservable" : true });
+ * Dependency.getDependency("Organisation_entity", {});
+
+ * Dependency.getDependency("Organisation_entity"));
+ * 
+ * @return {String[]} the found Dependencies. If none have been found, you get an empty Array
+ */
+Dependency.getDependency = function (pEntity, pOptionFilter) {
+    if (Dependency.mapping()[pEntity]) 
+    {
+        return Object.keys(Dependency.mapping()[pEntity]).filter(function (key) {
+            return (!pOptionFilter || Object.keys(pOptionFilter).every(function (pOption) {
+                let option = Dependency.mapping()[pEntity][key]["options"][pOption]
+                return option && pOptionFilter[pOption] == option;
+            })); 
+        });
+    }
+    
+    
+    return [];
+};
+
+/**
+ * Returns the dependencies that this entity has on others
+ * 
+ * @param {String} [pEntity] the name of the entity
+ * @param {Object} [pOptionFilter] the Object must be handed over in the format: { "option" : true/false }
+ * 
+ * @example
+ * Dependency.getReverseDependency("Organisation_entity", {"isObservable" : true });
+ * Dependency.getReverseDependency("Organisation_entity", {}));
+ * Dependency.getReverseDependency("Organisation_entity"));
+ * 
+ * @return {String[]} the founded Dependencies. If no one is found, you get an empty Array
+ */
+Dependency.getReverseDependency = function (pEntity, pOptionFilter) {
+    return Object.keys(Dependency.mapping()).filter(function (key) {
+        return Dependency.mapping()[key][pEntity] && (!pOptionFilter || Object.keys(pOptionFilter).every(function (pOption){
+            let option = Dependency.mapping()[key][pEntity]["options"][pOption]
+            return option && pOptionFilter[pOption] == option;
+        }));
+    });
+}
+
+Dependency.defaultFunctionForRelation = function (pRelationTable, pRelationField, pDataField, pContext, pDataTable)
+{
+    return function (pNewData, pOldData)
+    {
+        var relationFieldValue;
+        if (!pDataTable)
+        {
+            relationFieldValue = pNewData["UID.value"] || pNewData[pDataField  +".value"];
+        }
+        else
+        {
+            relationFieldValue = pNewData[pDataTable + "." + pDataField];
+        }
+           
+        return newSelect(pRelationTable + ".OBJECT_ROWID")
+        .from(pRelationTable)
+        .groupBy(pRelationTable + ".OBJECT_ROWID")
+        .whereIfSet(pRelationTable + "." + pRelationField, relationFieldValue)
+        .and(pRelationTable + ".OBJECT_TYPE", pContext)
+        .arrayColumn();
+    }
+}
+
diff --git a/process/District_lib/District_lib.aod b/process/District_lib/District_lib.aod
new file mode 100644
index 0000000000000000000000000000000000000000..79117ef50433ef114e787f29f3df20de3d0c93f1
--- /dev/null
+++ b/process/District_lib/District_lib.aod
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
+  <name>District_lib</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <process>%aditoprj%/process/District_lib/process.js</process>
+  <alias>Data_alias</alias>
+  <variants>
+    <element>LIBRARY</element>
+  </variants>
+</process>
diff --git a/process/District_lib/process.js b/process/District_lib/process.js
new file mode 100644
index 0000000000000000000000000000000000000000..6f77c41867db968f82bf6e6421c03b72bf34f8b1
--- /dev/null
+++ b/process/District_lib/process.js
@@ -0,0 +1,423 @@
+import("system.tools");
+import("system.text");
+import("system.datetime");
+import("system.notification");
+import("system.translate");
+import("Contact_lib");
+import("KeywordRegistry_basic");
+import("system.vars");
+import("system.util");
+import("Sql_lib");
+import("Util_lib");
+import("system.db");
+import("system.indexsearch");
+import("JditoFilter_lib");
+import("Util_lib");
+import("system.process");
+import("Employee_lib");
+
+/**
+ * Functions for district.
+ */
+function DistrictUtils () {}
+
+/**
+ * Gets the name of a district
+ * 
+ * @param {String} pDistrictId                  <p>
+ *                                              Id of the district.<br>
+ * @return {String}                             <p>
+ *                                              Name of the district.<br>
+ */
+DistrictUtils.getDistrictName = function (pDistrictId)
+{
+    var districtName = newSelect("DISTRICT_NAME")
+                            .from("DISTRICT")
+                            .where("DISTRICT.DISTRICTID", pDistrictId)
+                            .cell(true);    
+                            
+    return(districtName)
+}
+
+/**
+ * Get data from district
+ * 
+ * @param {String} pDistrictId                  <p>
+ *                                              ID of a district<br>
+ * @return {Array}                              <p>
+ *                                              array of data from a district <br>
+ */
+DistrictUtils.getDataFromDistrict = function (pDistrictId)
+{    
+    var districtData = newSelect("DISTRICT_FILTER, PARENTDISTRICT_DISTRICTID")
+                            .from("DISTRICT")
+                            .where("DISTRICT.DISTRICTID", pDistrictId)
+                            .arrayRow();                   
+    return(districtData);
+}
+
+
+/**
+ * Get data from a special district
+ * 
+ * @param {String} pDistrictContactId           <p>
+ *                                              Id of the districtcontact.<br>
+ * @return {Array}                              <p>
+ *                                              array of data from one districtcontact dataset <br>
+ */
+DistrictUtils.getDataFromDistrictContact = function (pDistrictContactId)
+{
+    var arrData = newSelect("DISTRICT_ID, ADVISER_CONTACT_ID, CONTACT_ID")
+                            .from("DISTRICTCONTACT")
+                            .where("DISTRICTCONTACT.DISTRICTCONTACTID", pDistrictContactId)
+                            .arrayRow();    
+                            
+    return(arrData);
+}
+
+
+/**
+ * Executes a process to assign districts on the server and creates a notification when finished.
+ * 
+ * @param {Array} pArrDistrictIds                   <p>
+ *                                                  Array of district-IDs.<br>
+ * @param {String} pUser=currentUser (optional)     <p>
+ *                                                  User who will get the notification, <br>
+ *                                                  User who will start the batch job <br>
+ * @param {String} pContactId (optional)            <p>   
+ *                                                  Organisation which should be assigned to all  <br>
+ *                                                  according districts with auto assignment is true  <br>                                            
+ */
+DistrictUtils.assignDistrictOnServer = function (pArrDistrictIds, pUser, pContactId)
+{
+    //pUser hat folgendes Format: _____USER_bcdfb521-c7d0-4ef1-8916-78e7d3232046
+    if (pUser === undefined)
+        pUser = EmployeeUtils.getCurrentUserId(); 
+    var processConfig = process.createStartAsyncConfig()
+        .setName("assignDistrict_serverProcess")
+        .setLocalVariables({
+            arrDistrictIds : pArrDistrictIds.join(";"),
+            user : pUser || "", 
+            contactId : pContactId || ""
+        })
+        .setUser(pUser);
+    process.startAsync(processConfig);
+}
+
+/**
+ * Assignes a district to companies. You should only call this function on the server because it
+ * can take some time to execute, use DistrictUtils.assignDistrictOnServer instead.
+ * 
+ * @param {String} pDistrictId                  <p>
+ *                                              Id of the district.<br>
+ * @param {String} pAppliedFilter               <p>
+ *                                              Filter condition to get the assigned companies.<br>
+ * @param {String} pContactId (opt)             <p>
+ *                                              Only filled when a special contact-ID should assigned to a district.<br>*                                              
+ * @return {Object}                             <p>
+ *                                              Count of new assigned companies and no longer assigned companies.<br>
+ */
+DistrictUtils.assignDistrict = function (pDistrictId, pAppliedFilter, pContactId)
+{    
+    if (pContactId == undefined)
+        pContactId = null;
+    
+    var newAssigned = 0;
+    var unchanged = 0;
+    var invalid = 0;
+    
+    //Einlesen von allen bereits existierenden automatischen Zuordnungen,
+    //die nicht auf Status 'zur Prüfung' stehen
+    //Nur notwendig, wenn pContactId leer ist. Ansonsten soll ja gezielt ein neuer Datensatz angelegt werden
+    var arrExistingIds = [];
+    if (!pContactId)
+    {
+        arrExistingIds = new SqlBuilder()
+                .select("DISTRICTCONTACT.DISTRICTCONTACTID, DISTRICTCONTACT.CONTACT_ID, DISTRICTCONTACT.ADVISER_CONTACT_ID")
+                .from("DISTRICTCONTACT")    
+                .where("DISTRICTCONTACT.DISTRICT_ID", pDistrictId)
+                .and ("DISTRICTCONTACT.ORIGIN", $KeywordRegistry.districtOrigin$auto())
+                .and ("DISTRICTCONTACT.STATUS", $KeywordRegistry.contactStatus$inReview(), SqlBuilder.NOT_EQUAL())
+                .table();    
+    }
+    
+    //Einlesen aller Betreuer, die dem übergebenen Gebiet zugeordnet sind
+    var arrResponsibleIds = new SqlBuilder()
+            .select("DISTRICTRESPONSIBLE.EMPLOYEE_CONTACT_ID, DISTRICTRESPONSIBLE.ADVISER_ROLE, " +
+                    "DISTRICTRESPONSIBLE.ADVISER_STATUS, DISTRICTRESPONSIBLE.VALID_FROM, DISTRICTRESPONSIBLE.VALID_UNTIL")
+            .from("DISTRICTRESPONSIBLE")    
+            .where("DISTRICTRESPONSIBLE.DISTRICT_ID", pDistrictId)
+            .table();
+
+    //Aufbereiten des im JSON-Format übergebenen Filters in eine SQL-Condition
+    var appliedFilterCondition = JSON.parse(pAppliedFilter).filter;
+    appliedFilterCondition = JSON.stringify(appliedFilterCondition);   
+    var sqlCondition = db.toFilterCondition(appliedFilterCondition, "Organisation_entity");       
+    
+    //Einlesen der Contact-IDs zu den Firmen, die gemäß Filter diesem Gebiet zugeordnet sind
+    var arrOrgContactIds = new SqlBuilder()
+            .selectDistinct("CONTACT.CONTACTID")
+            .from("ORGANISATION")
+            .join("CONTACT", newWhere("ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID").and("CONTACT.PERSON_ID is null"))
+            .leftJoin("ADDRESS", "ADDRESS.ADDRESSID = CONTACT.ADDRESS_ID")
+            .leftJoin("CLASSIFICATIONSTORAGE", "CLASSIFICATIONSTORAGE.OBJECT_ROWID = CONTACT.CONTACTID")
+            .whereIfSet(sqlCondition)
+            .andIfSet("CONTACT.CONTACTID", pContactId)
+            .arrayColumn();               
+                 
+    var insertArray = [];
+    var colsInsert = [
+            "DISTRICTCONTACTID",
+            "CONTACT_ID",
+            "DISTRICT_ID",
+            "ADVISER_CONTACT_ID",
+            "ADVISER_ROLE",
+            "STATUS",
+            "VALID_FROM", 
+            "VALID_UNTIL",
+            "ORIGIN",
+            "USER_NEW",
+            "DATE_NEW"
+        ];
+    var updateArray = [];
+    var colsUpdate = [
+            "STATUS",
+            "USER_EDIT",
+            "DATE_EDIT"
+        ];        
+
+    //Anlegen der Firmen-Betreuer-Datensätze in der Tabelle DISTRICTCONTACT
+    for (var i=0; i<arrOrgContactIds.length; i++)
+    {
+        for (var j=0; j<arrResponsibleIds.length; j++)
+        {
+            //Existiert der Firmen-Betreuer-Datensatz bereits?
+            var found = 'N';
+            for (var k=0; k<arrExistingIds.length; k++)
+            {
+                if (arrExistingIds[k][1] == arrOrgContactIds[i] && arrExistingIds[k][2] == arrResponsibleIds[j][0])
+                {
+                    unchanged++;
+                    found = 'Y';
+                    //Gefundenen Eintrag aus dem Array entfernen 
+                    //-> Am Schluss bleiben in dem Array alle ungültigen Datensätze übrig. Bei diesen wird weiter unten der Status geändert 
+                    arrExistingIds.splice(k, 1);
+                    break;
+                }
+            }
+            //Firmen-Betreuer-Datensatz existiert noch nicht -> Insert
+            if (found == 'N')
+            {
+                //Falls Status null, dann auf active setzen
+                if (Utils.isNullOrEmpty(arrResponsibleIds[j][2])) 
+                    arrResponsibleIds[j][2] = $KeywordRegistry.contactStatus$active();
+                
+                var valsInsert = [
+                    util.getNewUUID(),
+                    arrOrgContactIds[i],
+                    pDistrictId,
+                    arrResponsibleIds[j][0],
+                    arrResponsibleIds[j][1],
+                    arrResponsibleIds[j][2],
+                    arrResponsibleIds[j][3],
+                    arrResponsibleIds[j][4],
+                    $KeywordRegistry.districtOrigin$auto(),
+                    vars.get("$sys.user"),
+                    vars.get("$sys.date")
+                ];                
+                insertArray.push(["DISTRICTCONTACT", colsInsert, null, valsInsert]);
+            }            
+        }        
+    }
+    newAssigned = insertArray.length;
+    db.inserts(insertArray);    
+    
+    //Gibt es noch ungültige Zuordnungen, dann bei diesen den Status auf "zur Prüfung setzen"
+    if (arrExistingIds.length > 0)
+    {
+        invalid = arrExistingIds.length;
+                                
+        //die erste Spalte enthält die Ids der zu aktualisierenden Datensätze
+        var arrIds = arrExistingIds.map(function(value) { return value[0]; });
+        DistrictUtils.setDistrictContactStatus (arrIds, $KeywordRegistry.contactStatus$inReview());
+    }
+        
+    return {
+        newAssigned : newAssigned,
+        invalid : invalid,
+        unchanged : unchanged
+    };    
+}
+
+
+/**
+ * Get the complete hierarchical filter
+ * 
+ * @param {JSON-String} pDistrictFilter         <p>
+ *                                              The filter of the current level<br>
+ * @param {String} pParentDistrict_DistrictId   <p>
+ *                                              District-ID of the parent district<br>*                                              
+ * @return {JSON-String}                        <p>
+ *                                              JSON-String of the complete filter (all levels) <br>
+ */
+DistrictUtils.getAppliedFilter = function (pDistrictFilter, pParentDistrict_DistrictId)
+{
+    var parentFilter = DistrictUtils.getParentFilter(pParentDistrict_DistrictId);
+
+    var appliedFilter = {
+        entity: "Organisation_entity", 
+        filter: {
+            type: "group", 
+            operator: "AND", 
+            childs: []
+        }
+    };
+
+    if (parentFilter)
+    {
+        appliedFilter.filter.childs.push(JSON.parse(parentFilter).filter);
+    }
+    if (pDistrictFilter)
+    {
+        appliedFilter.filter.childs.push(JSON.parse(pDistrictFilter).filter);
+    }
+
+    return JSON.stringify(appliedFilter);
+}
+
+/**
+ * Get the filter starting with the parent level
+ * @param {String} pParentDistrict_DistrictId   <p>
+ *                                              District-ID of the parent district<br>                                              
+ * @return {JSON-String}                        <p>
+ *                                              JSON-String of the filter starting with the parent<br>
+ */
+DistrictUtils.getParentFilter = function (pParentDistrict_DistrictId)
+{
+    var res = "";
+
+    if (pParentDistrict_DistrictId)
+    {
+        var completeParentFilter = DistrictUtils._getParentFilter(pParentDistrict_DistrictId, null);
+        completeParentFilter.entity = "Organisation_entity";
+        res = completeParentFilter;
+    }
+    else
+    {
+        var entity = "Organisation_entity";
+        var emptyFilter = {
+            entity: entity, 
+            filter: {
+                type: "group", 
+                operator: "AND", 
+                childs: []
+            }
+        };
+
+        res = emptyFilter;
+    }
+
+    return JSON.stringify(res);    
+}
+
+/**
+ * This function will recursively go through each filter level up to the root.
+ * @param {String} pParentDistrict_DistrictId   <p>
+ *                                              District-ID of the parent district<br> 
+ * @param {JSON} pPreviousFilter                <p>
+ *                                              Collected filters so far<br>                                                                                    
+ * @return {JSON}                               <p>
+ *                                              JSON-Object of the collected filters<br>
+ */
+DistrictUtils._getParentFilter = function (pParentDistrict_DistrictId, pPreviousFilter)
+{
+    var resFilter;
+    
+    if (pPreviousFilter != null)
+    {
+        resFilter = pPreviousFilter;
+    } 
+
+    if (pParentDistrict_DistrictId)
+    {
+        var parentDistrictFilter, grandParentDistrict;
+        [parentDistrictFilter, grandParentDistrict] = newSelect(["DISTRICT.DISTRICT_FILTER", "DISTRICT.PARENTDISTRICT_DISTRICTID"])
+                                                            .from("DISTRICT")
+                                                            .where("DISTRICT.DISTRICTID", pParentDistrict_DistrictId)
+                                                            .arrayRow();
+
+        parentDistrictFilter = JSON.parse(parentDistrictFilter);
+
+        if (pPreviousFilter)
+            parentDistrictFilter.filter.childs.push(resFilter.filter);
+        
+        resFilter = parentDistrictFilter;
+
+        if (grandParentDistrict.length > 0)
+        {   
+            resFilter = DistrictUtils._getParentFilter(grandParentDistrict, resFilter);
+        }
+    }
+
+    return resFilter;
+}
+
+
+/**
+ * This function will set the status of districtcontact datasets
+ * @param {Array} pArrIds                       <p>
+ *                                              IDs of districtcontact<br> 
+ * @param {String} pStatus                      <p>
+ *                                              Status, for example $KeywordRegistry.contactStatus$active<br>                                                                                    
+ * @return {none}                               <p>
+ */
+DistrictUtils.setDistrictContactStatus = function (pArrIds, pStatus)
+{
+    var updateArray = [];
+    var colsUpdate = [
+            "STATUS",
+            "USER_EDIT",
+            "DATE_EDIT"
+        ]; 
+    var valsUpdate = [
+        pStatus,
+        vars.get("$sys.user"),
+        vars.get("$sys.date")
+        ];          
+        
+    for (var i=0; i<pArrIds.length; i++)
+    {          
+        var condition = newWhere("DISTRICTCONTACT.DISTRICTCONTACTID", pArrIds[i]);
+        updateArray.push(["DISTRICTCONTACT", colsUpdate, null, valsUpdate, condition.build()]);        
+    }
+    db.updates(updateArray);
+}
+
+
+/**
+ * This function will notificate the district contact that he/she was assigned
+ * 
+ * @param {String} pDistrictContactId           <p>
+ *                                              DistrictContact-ID of the new Dataset<br>                                                                                   
+ * @return <none>                               <p>
+ */
+DistrictUtils.notificateNewDistrictContact = function(pDistrictContactId){
+    message = translate.text("Assignment to a new district/company!");
+
+    //[0]: DISTRICT_ID, [1]: ADVISER_CONTACT_ID, [2]: CONTACT_ID
+    var arrayDistrictContact = DistrictUtils.getDataFromDistrictContact(pDistrictContactId);
+    //get corresponding profile information of the systemalias
+    var user = tools.getUserByAttribute(tools.CONTACTID, arrayDistrictContact[1], tools.PROFILE_DEFAULT);
+    
+    //You can only send a notification, if the user is an employee
+    if (user)
+    {
+        var userName = user[tools.NAME];
+        var districtName = DistrictUtils.getDistrictName(arrayDistrictContact[0]);
+        var organisationName = ContactUtils.getFullTitleByContactId(arrayDistrictContact[2]);
+        // Benachrichtigung am Ende der Zuordnungen     
+        description = translate.withArguments("You were assigned as new district contact to district %0 and organisation %1.",
+            [districtName, organisationName]);
+        notification.addNotification(util.getNewUUID(), text.encodeMS(["Organisation", arrayDistrictContact[2]]), null, null, "DistrictAssigned", notification.PRIO_NORMAL, 2, notification.STATE_UNSEEN, [userName], message, description);    
+    }
+}
diff --git a/process/DocumentTemplate_lib/DocumentTemplate_lib.aod b/process/DocumentTemplate_lib/DocumentTemplate_lib.aod
index f7dede09487b8661444e1673ef88ecca8b415c21..65a45cc2df2f4d6e372ede48d756207df60b06fd 100644
--- a/process/DocumentTemplate_lib/DocumentTemplate_lib.aod
+++ b/process/DocumentTemplate_lib/DocumentTemplate_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>DocumentTemplate_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/DocumentTemplate_lib/documentation.adoc</documentation>
diff --git a/process/DocumentTemplate_lib/process.js b/process/DocumentTemplate_lib/process.js
index 3579096b94ccbc30fc17b3c2f1c748d8a1a1d5fd..3c074ffd23098632fde158cbebaa1bfad78e50f1 100644
--- a/process/DocumentTemplate_lib/process.js
+++ b/process/DocumentTemplate_lib/process.js
@@ -744,6 +744,17 @@ DocumentTemplate.prototype._getReplacedODT = function (pReplacements, pTableData
             pReplacements = [pReplacements];
         if (!pTableData)
             pTableData = [];
+        var tablePlaceholders = [];
+        if (pTableData.length > 0)
+        {
+            //pTableData[0] = first document
+            tablePlaceholders = pTableData[0].map(function (tblData)
+            {
+                if (tblData && tblData.length > 0)
+                    return new Set(Object.keys(tblData[0])); //tblData[0] = first row
+                return new Set();
+            });
+        }
         
         if (pReplacements.length !== 0)
         {
@@ -775,31 +786,48 @@ DocumentTemplate.prototype._getReplacedODT = function (pReplacements, pTableData
                 
                 let tables = pTableData[i] || [];
                 let tableEnd = 0;
-                for (let tblIndex = 0; tblIndex < tables.length; tblIndex++) //iterate over all tables in the document
+                //for (let tblIndex = 0; tblIndex < tables.length; tblIndex++) //iterate over all tables in the document
+                if (tables.length > 0)
                 {
-                    let tableData = tables[tblIndex];
-                    if (tableData && tableData.length > 0)
+                    let hasMoreTables = currentBody.includes("</table:table>");
+                    for (let tblI = 0; tblI < 10 && hasMoreTables; tblI++)
                     {
-                        tableEnd = currentBody.indexOf("</table:table>", tableEnd) + 14;
-                        if (tableEnd === -1) //stop if there is no table
-                            break;
-                        
-                        let rowBegin = currentBody.slice(0, tableEnd).lastIndexOf("<table:table-row");
-                        let rowEnd =  currentBody.indexOf("</table:table-row>", rowBegin) + 18;
-                        
-                        let afterTable = currentBody.slice(rowEnd);
-                        let tableRow = currentBody.slice(rowBegin, rowEnd);
-                        tableEnd -= tableRow.length;
-                        currentBody = currentBody.slice(0, rowBegin);
-                        
-                        for (let rowIndex = 0; rowIndex < tableData.length; rowIndex++)
+                        tableEnd = currentBody.indexOf("</table:table>", tableEnd);
+                        if (tableEnd !== -1) //stop if there is no table
                         {
-                            let tableRowData = tableData[rowIndex];
-                            let replacedRow = that._replaceText(tableRow, tableRowData);
-                            currentBody += replacedRow;
-                            tableEnd += replacedRow.length;
+                            tableEnd += 14;
+                            let rowBegin = currentBody.slice(0, tableEnd).lastIndexOf("<table:table-row");
+                            let rowEnd =  currentBody.indexOf("</table:table-row>", rowBegin) + 18;
+
+                            let tableRow = currentBody.slice(rowBegin, rowEnd);
+
+                            let rowPlaceholders = tableRow.match(PlaceholderUtils.getRegexpMatchAll());
+                            //find the table data that contains all required placeholders
+                            let tableDataIndex = !rowPlaceholders ? -1 : tablePlaceholders.findIndex(function (placeholderSet)
+                            {
+                                return rowPlaceholders.every(function (placeholderName)
+                                {
+                                    return placeholderSet.has(placeholderName);
+                                });
+                            });
+                            if (tableDataIndex !== -1)
+                            {
+                                let afterTable = currentBody.slice(rowEnd);
+                                currentBody = currentBody.slice(0, rowBegin);
+                                tableEnd -= tableRow.length;
+                                let tableData = tables[tableDataIndex];
+                                for (let rowIndex = 0; rowIndex < tableData.length; rowIndex++)
+                                {
+                                    let tableRowData = tableData[rowIndex];
+                                    let replacedRow = that._replaceText(tableRow, tableRowData);
+                                    currentBody += replacedRow;
+                                    tableEnd += replacedRow.length;
+                                }
+                                currentBody += afterTable;
+                            }
                         }
-                        currentBody += afterTable;
+                        else
+                            hasMoreTables = false;
                     }
                 }
                 fullBody += currentBody;
diff --git a/process/Document_lib/Document_lib.aod b/process/Document_lib/Document_lib.aod
index 9f2ede3e40f379602f2d598e9027e4605ab4044c..cc120d3f86f8378ebbaeb9f71e07b807bcc2b1b8 100644
--- a/process/Document_lib/Document_lib.aod
+++ b/process/Document_lib/Document_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Document_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Document_lib/process.js</process>
diff --git a/process/DocxTemplater_lib/DocxTemplater_lib.aod b/process/DocxTemplater_lib/DocxTemplater_lib.aod
index 3c96ec6b8264873a8317f644ec78bb7e59cd268b..8dfbdd5ebc9fd32efaff4ea00e28b127598ba762 100644
--- a/process/DocxTemplater_lib/DocxTemplater_lib.aod
+++ b/process/DocxTemplater_lib/DocxTemplater_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>DocxTemplater_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/DocxTemplater_lib/process.js</process>
diff --git a/process/DuplicateScanner_lib/DuplicateScanner_lib.aod b/process/DuplicateScanner_lib/DuplicateScanner_lib.aod
index 17d38fd00ac39e96737a745e8e7ce109efd1e8ad..6b45659f204354af0a6d1a39a810a6f008eda16c 100644
--- a/process/DuplicateScanner_lib/DuplicateScanner_lib.aod
+++ b/process/DuplicateScanner_lib/DuplicateScanner_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>DuplicateScanner_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/DuplicateScanner_lib/process.js</process>
diff --git a/process/DuplicateScanner_lib/process.js b/process/DuplicateScanner_lib/process.js
index 7e057f268d3f41e78fb61588c65560fabaa9dac1..e26053edc6cb753291a842212cbfcef324124799 100644
--- a/process/DuplicateScanner_lib/process.js
+++ b/process/DuplicateScanner_lib/process.js
@@ -627,10 +627,12 @@ DuplicateScannerUtils.mergePerson = function(pSourceContactId, pTargetContactId)
         .from("CONTACT")
         .where("CONTACT.CONTACTID", pTargetContactId)
         .cell();
-    
+        
+    _DuplicateScannerUtils._deleteUniqueAttributes(pSourceContactId, pTargetContactId);
     var isLinkedDataUpdated = _DuplicateScannerUtils._migrateLinkedContactData(pSourceContactId, pTargetContactId);
     var isParticipantsUpdated = _DuplicateScannerUtils._migrateParticipantsToNewContact("CAMPAIGNPARTICIPANT", "CONTACT_ID", "CAMPAIGN_ID", 
         pSourceContactId, pTargetContactId);
+    _DuplicateScannerUtils._updateOtherContacts(pSourceContactId, sourcePersonId, targetPersonId);
     
     var deleteStatements = [];
     if (sourcePersonId != targetPersonId)
@@ -672,10 +674,17 @@ DuplicateScannerUtils.mergeOrganisation = function(pSourceContactId, pTargetCont
         .from("CONTACT")
         .where("CONTACT.CONTACTID", pSourceContactId)
         .cell();
-        
+
+    var targetOrganisationId = newSelect("ORGANISATION_ID")
+        .from("CONTACT")
+        .where("CONTACT.CONTACTID", pTargetContactId)
+        .cell();
+    
+    _DuplicateScannerUtils._deleteUniqueAttributes(pSourceContactId, pTargetContactId);
     _DuplicateScannerUtils._migrateLinkedContactData(pSourceContactId, pTargetContactId);
     _DuplicateScannerUtils._migrateParticipantsToNewContact("CAMPAIGNPARTICIPANT", "CONTACT_ID", "CAMPAIGN_ID", 
         pSourceContactId, pTargetContactId);
+    _DuplicateScannerUtils._migratePersonsToNewOrganisation(sourceOrganisationId, targetOrganisationId);
     
     var deleteStatements = [];
     deleteStatements.push(newWhere("CONTACT.CONTACTID", pSourceContactId).buildDeleteStatement());
@@ -1281,6 +1290,7 @@ _DuplicateScannerUtils._getLinkedTableInfos = function(pTargetContactId)
     ];
 }
 
+
 /*
  * Returns wether or not a value should be substring'd
  *
@@ -1302,4 +1312,68 @@ _DuplicateScannerUtils._isValueLongerThanCharsToUse = function(pValueLength, pCo
 _DuplicateScannerUtils._isNotNullAndANumber = function(pCountCharsOfValueToUse)
 {
     return pCountCharsOfValueToUse != null && !isNaN(pCountCharsOfValueToUse);
+}
+
+/*
+ * Persons get reassigned to new organisation
+ *
+ * @returns {Boolean} If records have been updated
+ */
+_DuplicateScannerUtils._migratePersonsToNewOrganisation = function (pSourceOrganisationId, pTargetOrganisationId)
+{
+    var updateCount = newWhereIfSet(["CONTACT", "ORGANISATION_ID"], pSourceOrganisationId)
+                        .and("PERSON_ID is not null")
+                        .updateFields(new Map().set("ORGANISATION_ID", pTargetOrganisationId), "CONTACT");
+        
+    var deleteCount = newWhere(["CONTACT", "ORGANISATION_ID"], pSourceOrganisationId)
+                        .and("PERSON_ID is not null")
+                        .deleteData();
+    return updateCount > 0 || deleteCount > 0;
+}
+
+/*
+ * Person and organisations keep the max_count = 1 attribute of the target and the one from the source is deleted
+ *
+ * @returns {Boolean} If records have been deleted
+ */
+_DuplicateScannerUtils._deleteUniqueAttributes = function (pSourceContactId, pTargetContactId)
+{
+    var targetAttrUnique = newSelect("AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID")
+                                .from("AB_ATTRIBUTERELATION")
+                                .join("AB_ATTRIBUTEUSAGE on AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID = AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID")
+                                .where("AB_ATTRIBUTEUSAGE.MAX_COUNT = 1")
+                                .and("AB_ATTRIBUTERELATION.OBJECT_ROWID", pTargetContactId)
+                                .table();
+    var deleteCount = 0;
+    
+    targetAttrUnique.forEach(function(attribute){
+        deleteCount += newWhereIfSet("AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID", attribute)
+                        .and("AB_ATTRIBUTERELATION.OBJECT_ROWID", pSourceContactId)
+                        .deleteData();
+    });
+
+    return deleteCount > 0;
+}
+
+/*
+ * Update other contacts from the source
+ *
+ * @returns {Boolean} If records have been updated
+ */
+    _DuplicateScannerUtils._updateOtherContacts = function (pSourceContactId, sourcePersonId, targetPersonId)
+{
+    var otherContacts = newSelect("PERSON.PERSONID")
+                                .from("PERSON")
+                                .join("CONTACT", "CONTACT.PERSON_ID = PERSON.PERSONID")
+                                .where("PERSON.PERSONID", sourcePersonId)
+                                .and("CONTACT.CONTACTID", pSourceContactId, SqlBuilder.NOT_EQUAL())
+                                .table();
+    var updateCount = 0;
+    
+    otherContacts.forEach(function(person){                 
+        updateCount += newWhere("CONTACT.PERSON_ID", person)
+                        .updateFields({"PERSON_ID" : targetPersonId}, "CONTACT");
+    });
+
+    return updateCount > 0;
 }
\ No newline at end of file
diff --git a/process/EmailUtil_lib/EmailUtil_lib.aod b/process/EmailUtil_lib/EmailUtil_lib.aod
index 04b24ec7e102599577d29f2cea0cc85e7c4f048d..694639f440cc39e293d9a1960e890fdeb056aedb 100644
--- a/process/EmailUtil_lib/EmailUtil_lib.aod
+++ b/process/EmailUtil_lib/EmailUtil_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>EmailUtil_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/EmailUtil_lib/process.js</process>
diff --git a/process/Email_lib/Email_lib.aod b/process/Email_lib/Email_lib.aod
index 6022256dea0248db39f796a2a79b0e55178d4044..d1b4a5a2f481c273f871c407b1018c4dbbae2a98 100644
--- a/process/Email_lib/Email_lib.aod
+++ b/process/Email_lib/Email_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Email_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Email_lib/process.js</process>
diff --git a/process/Employee_lib/Employee_lib.aod b/process/Employee_lib/Employee_lib.aod
index 1a08f91b6ef81042668340de79dfea0687a520e6..bf491daa912ecb65c240d820ce73baac879246c8 100644
--- a/process/Employee_lib/Employee_lib.aod
+++ b/process/Employee_lib/Employee_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Employee_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Employee_lib/process.js</process>
diff --git a/process/Employee_lib/process.js b/process/Employee_lib/process.js
index 40db215e8d07d55f15352bf242cb9140f5ffa5ca..df1b7707c20e30fab92f0310813fd2a1f88cba02 100644
--- a/process/Employee_lib/process.js
+++ b/process/Employee_lib/process.js
@@ -191,5 +191,5 @@ function EmployeeRole () {}
  */
 EmployeeRole.getExcludeRoles = function () 
 {
-    return ["INTERNAL_EVERYONE", "INTERNAL_GROUPWARE", "INTERNAL_SNMP", "INTERNAL_DESIGNER", "INTERNAL_TECHNICAL"];
+    return ["INTERNAL_EVERYONE", "INTERNAL_GROUPWARE", "INTERNAL_SNMP", "INTERNAL_DESIGNER", "INTERNAL_TECHNICAL", "INTERNAL_CANARY", "INTERNAL_WEBSERVICE", "INTERNAL_DASHBOARDSTOREADMIN", "INTERNAL_DESIGNER"];
 }
\ No newline at end of file
diff --git a/process/Entity_lib/Entity_lib.aod b/process/Entity_lib/Entity_lib.aod
index d106b77a163c3a6f9266ffd622878cd794b9699a..81c2102218a1279f39ab1d8cb6516a0de085512f 100644
--- a/process/Entity_lib/Entity_lib.aod
+++ b/process/Entity_lib/Entity_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Entity_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Entity_lib/process.js</process>
diff --git a/process/EwsClientSync_lib/EwsClientSync_lib.aod b/process/EwsClientSync_lib/EwsClientSync_lib.aod
new file mode 100644
index 0000000000000000000000000000000000000000..a53260007b9ecc486117433576e3c03b8723ff43
--- /dev/null
+++ b/process/EwsClientSync_lib/EwsClientSync_lib.aod
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
+  <name>EwsClientSync_lib</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <process>%aditoprj%/process/EwsClientSync_lib/process.js</process>
+  <alias>Data_alias</alias>
+  <variants>
+    <element>LIBRARY</element>
+  </variants>
+</process>
diff --git a/process/EwsClientSync_lib/process.js b/process/EwsClientSync_lib/process.js
new file mode 100644
index 0000000000000000000000000000000000000000..2366e6b5af77b5ba73399379f2f2d2c14fe88c1b
--- /dev/null
+++ b/process/EwsClientSync_lib/process.js
@@ -0,0 +1,357 @@
+import("system.neon");
+import("Util_lib");
+import("system.translate");
+import("Communication_lib");
+import("Placeholder_lib");
+import("system.SQLTYPES");
+import("system.vars");
+import("system.datetime");
+import("system.util");
+import("system.tools");
+import("system.favorite");
+import("system.logging");
+import("Sql_lib");
+import("system.db");
+import("system.entities")
+
+/**
+ * Provides  methods for handling and interacting with the EWS Plugin
+ * 
+ * @class
+ */
+function EwsClientSyncUtils() {}
+
+/*
+ * Constant which contains the ewsSync Tag
+ * if the tag has to be changed a constant is the better way
+ */
+EwsClientSyncUtils.EWSSYNCTAG = function(){
+    return "ewssync";
+}
+
+/*
+ * prepares the synctable, insert new entries and mark for deletion 
+ * 
+ */
+EwsClientSyncUtils.prepareContactSyncTable = function(){
+    
+    var favoriteDataArray = EwsClientSyncUtils.getEwsFavorites();
+    var ewsSyncData = newSelect("SYNCCONTACTID, ASYS_FAVORITEID, USER_ID, CONTACT_ID")
+    .from("ab_synccontact")
+    .table();
+    
+    var dataIndex = {
+        index: new Map(),
+        add: function (pA, pB)
+        {
+            var idxMap = this.index;
+            if (!idxMap.has(pA))
+                idxMap.set(pA, new Set());
+            idxMap.get(pA).add(pB);
+        },
+        has: function (pA, pB)
+        {
+            return this.index.has(pA) && this.index.get(pA).has(pB);
+        }
+    };
+    
+    //preparing the value for inserting in ewsSync Table
+    var toInsertFavs = []; 
+    for (let i = 0, l = ewsSyncData.length; i < l; i++) 
+    {
+        //3 - contactID     2 userID
+        dataIndex.add(ewsSyncData[i][3], ewsSyncData[i][2]);
+    }
+    ​
+    //we want to insert those which aren't in the sync table yet but which are tagged for sync
+    toInsertFavs = favoriteDataArray.filter(function (row) {
+        return !dataIndex.has(row[1], row[2]);
+    });
+    
+    
+    //preparing values for updating entrys in the ewsSync Table
+    dataIndex.index.clear();
+    
+    var toUpdate = [];
+    
+    for (let i = 0, l = favoriteDataArray.length; i < l; i++) 
+    {
+        dataIndex.add(favoriteDataArray[i][1], favoriteDataArray[i][2]);
+    }
+    
+    ​//dataset which are in the synctable but aren't tagged for sync (favorites ewssync) has to be updated for deletion
+    toUpdate = ewsSyncData.filter(function (row){
+        ​
+        return !dataIndex.has(row[3], row[2]);
+    }
+    ​);
+    
+    
+    let statements = [];
+    let toInsert = [];
+    let cols = ["SYNCCONTACTID", "ASYS_FAVORITEID", "CONTACT_ID", "USER_ID"];
+    let vals = [];
+    let table = "AB_SYNCCONTACT";
+    let updStatements = [];
+    
+    for(let i = 0; i < toInsertFavs.length; i++)
+    {
+        vals = [];
+        vals = [util.getNewUUID(), toInsertFavs[i][0], toInsertFavs[i][1], toInsertFavs[i][2]]
+        
+        statements.push([table, cols, null, vals]);
+    }
+    for(let i = 0; i < toUpdate.length; i++)
+    {
+        updStatements.push([table, ["DATE_DEL"], null, [vars.get("$sys.date")], "ASYS_FAVORITEID = '" + toUpdate[i][1] + "'"  ]);
+    }
+    
+    try{
+        let count = db.inserts(statements, "Data_alias");
+        let updCount = db.updates(updStatements, "Data_alias");
+    }
+    catch(exc){
+        logging.log(exc)
+    }
+}
+
+/*
+ *  get the contact which are marked with the ewssync favorite Tag
+ *   
+ *  @return [Array] favorite Data [[]]
+ */
+EwsClientSyncUtils.getEwsFavorites = function(){
+    
+    
+    //get Favorites which are tagged with the Sync Tag
+    //    var conf = favorite.createGetFavoritesConfig(); 
+    //    conf.setFavoriteGroupTitle(EwsClientSyncUtils.EWSSYNCTAG()); 
+    //    conf.setObjectType("Person");
+    //
+    //    var favoriteData = favorite.getFavorites(conf);
+    //    var favoriteDataArray = [];
+    //    
+    //    for (var temp in favoriteData)
+    //    {
+    //        let favId = favoriteData[temp]["id"];
+    //        let rowId = favoriteData[temp]["rowid"]; 
+    //        let userID = favoriteData[temp]["group"]["groupuser"]; 
+    //        
+    //        favoriteDataArray.push([favId, rowId, userID]);
+    //    }
+    
+    
+    //in the current version it isn't possible to call the favorite API within a Serverprocess this will be implemented in the next RC 
+    
+    var favoriteDataArray = new SqlBuilder("_____SYSTEMALIAS")
+    .selectDistinct("ASYS_RECORD.ID, ASYS_RECORD.ROW_ID, ASYS_RECORDGROUP.USER_ID")
+    .from("ASYS_RECORD")
+    .join("ASYS_RECORDGROUP", "ASYS_RECORDGROUP.ID = ASYS_RECORD.RECORDGROUP_ID")
+    .where("ASYS_RECORD.OBJECT_TYPE", "Person")
+    .and("ASYS_RECORDGROUP.TITLE", EwsClientSyncUtils.EWSSYNCTAG(), "LOWER(#) = ?")
+    .groupBy("ASYS_RECORDGROUP.USER_ID, ASYS_RECORD.ROW_ID, ASYS_RECORD.ID")
+    .table();
+    
+    return favoriteDataArray;
+}
+
+/*
+ * sets the editdate for the entrys in the synctable, in reason to get synced with exchange
+ *
+ * @param {String} pTableName
+ * @param {String} pDataSetID req 
+ * @param {String} pDate req
+ *
+ * @return {void}
+
+ */
+EwsClientSyncUtils.setContactToSync = function(pTableName, pDataSetID, pDate){
+    
+    var affectedTables = ["ORGANISATION" , "PERSON", "CONTACT", "ADDRESS", "COMMUNICATION"];
+    var affectedIDs = [];
+    
+    if (affectedTables.indexOf(pTableName) != -1)
+    {
+        switch(pTableName)
+        {
+            case "ORGANISATION":
+                affectedIDs = newSelect("CONTACT.CONTACTID").from("CONTACT").where("CONTACT.ORGANISATION_ID", pDataSetID).arrayColumn();
+                break;
+            case "PERSON":
+                affectedIDs = newSelect("CONTACT.CONTACTID").from("CONTACT").where("CONTACT.PERSON_ID", pDataSetID).arrayColumn();
+                break;
+            case "CONTACT":
+                affectedIDs = [pDataSetID];
+                break;
+            case "ADDRESS":
+                affectedIDs = newSelect("ADDRESS.CONTACT_ID").from("ADDRESS")
+                .where("ADDRESS.ADDRESSID", pDataSetID)
+                .union(newSelect("CONTACT.CONTACT_ID").from("CONTACT").where("CONTACT.ADDRESS_ID", pDataSetID)).arrayColumn();
+                break;
+            case "COMMUNICATION":
+                affectedIDs = newSelect("COMMUNICATION.CONTACT_ID").from("COMMUNICATION").where("COMMUNICATION.COMMUNICATIONID", pDataSetID).arrayColumn();
+                break;
+        }
+        
+        if (affectedIDs.length > 0)
+        {
+            var upd = db.updateData("AB_SYNCCONTACT", ["DATE_EDIT"], null, [pDate], 
+                "EXCHANGEID is not null and CONTACT_ID in ('" + affectedIDs.join("','") + "')");        
+        }
+    }
+}
+
+
+/*
+ * prepare Placholder for Exchange contacts
+ * 
+ * @param  {String} pUserId
+ */
+EwsClientSyncUtils.getPlaceholders = function(pUserId){
+    var ewsPlaceholders = [];
+    
+    //EWS Sync Placeholder
+    //See EWS API Doc for other placeholder
+    //new Placeholder that has to be synced probably has also to be added in addDataToValueObjects() in the serverprocess
+    _addSqlPart("CONTACTID", "CONTACT.CONTACTID"); 
+    _addSqlPart("EXCHANGEID", "select EXCHANGEID from ab_synccontact where Ab_synccontact.contact_id = contact.contactid and user_id = '"+ pUserId +"'", null, null)
+    
+    _addSqlPart("Givenname", "PERSON.FIRSTNAME");
+    _addSqlPart("Surname", "PERSON.LASTNAME");
+    _addSqlPart("Department", "CONTACT.DEPARTMENT");
+    _addSqlPart("JobTitle", "CONTACT.CONTACTROLE");
+    _addSqlPart("CompanyName", "ORGANISATION.NAME");
+    
+    
+    _addAddressFormat("Business_street", "{street} {buildingno}");
+    _addAddressFormat("Business_postalcode", "{zip}");
+    _addAddressFormat("Business_city", "{city}");
+    _addAddressFormat("Business_state", "{district}");
+    _addAddressFormat("Business_countryorregion", "{country}");
+    
+    _addSqlPart("EmailAddress1", CommUtil.getStandardSubSqlMail()); 
+    
+    _addSqlPart("BusinessPhone", CommUtil.getStandardSubSqlPhone()); 
+    _addSqlPart("BusinessHomepage", CommUtil.getMediumAddrSubSqlByKey("COMMINTERNET"));
+    
+    _addSqlPart("OtherFax", CommUtil.getMediumAddrSubSqlByKey("COMMFAX")); 
+    _addSqlPart("MobilePhone", CommUtil.getMediumAddrSubSqlByKey("COMMMOBIL")); 
+    _addSqlPart("FileAsMapping","case when PERSON_ID is not null then 'SurnameCommaGivenName' else 'Company' end" , null, null);
+    
+    
+    //    _addSqlPart("HomePhone", "''"); 
+    //    _addSqlPart("HomeFax", "''");
+    //    _addSqlPart("EmailAddress2", "''");
+    
+    
+    
+    return ewsPlaceholders;
+    
+    function _addSqlPart (pName, pSqlPart, pTarget, pTitle)
+    {
+        ewsPlaceholders.push(new Placeholder(pName, Placeholder.types.SQLPART, "(" + pSqlPart + ")", pTarget, pTitle));
+    }
+    /**
+     * add an address format placeholder to placeholders
+     */
+    function _addAddressFormat (pName, pFormat, pTarget, pTitle)
+    {
+        ewsPlaceholders.push(new Placeholder(pName, Placeholder.types.ADDRESSFORMAT, pFormat, pTarget, pTitle));
+    }
+}
+
+/*
+ * removes Person favorites with the EWS Tag 
+ * 
+ * @param {Array} pToDelete contains contact_ids for which the favorite should be removed
+ * @param {String} pUserId - User for which the favorites should be removed 
+ * 
+ * @return {Boolean} true if successfull
+ * 
+ */
+EwsClientSyncUtils.removeFromFavorite = function(pToDelete, pUserId ){
+    
+    //maybe in a future version there will be a way to remove favorites on a better way
+ 
+    //all ews related Favorites for the user
+    var config = favorite.createGetFavoritesConfig()
+    .setFavoriteGroupTitle(EwsClientSyncUtils.EWSSYNCTAG())
+    .setGroupType(favorite.FAVORITE_GROUP).setObjectType("Person")
+    .setUserId(pUserId); 
+    
+    var ewsFavorite = favorite.getFavorites(config);
+    var favsToDelete = [];
+    
+    var dataIndex = {
+        index: new Map(),
+        add: function (pA)
+        {
+            var idxMap = this.index;
+            if (!idxMap.has(pA))
+                idxMap.set(pA, new Set());
+        },
+        has: function (pA)
+        {
+            return this.index.has(pA);
+        }
+    };
+
+    for each(let row in pToDelete)
+    {
+        dataIndex.add(row)
+    }
+    
+    // delete those which are in the selection and are also in ewsFavorite 
+    for each (let row in  ewsFavorite)
+    {
+        if(dataIndex.has(row["rowid"]))
+            favsToDelete.push(row["id"]);
+    }
+
+    var delConfig = favorite.createRemoveMultipleByIdConfig().setFavoriteRecordIds(favsToDelete);
+    
+    return favorite.remove(delConfig);
+}
+
+/*
+ * Add contacts to favorites as ewssync group
+ * 
+ * @param {Array} pToInsert         Array with contactIds which should be added to the sync
+ */
+EwsClientSyncUtils.addToEwsFavorite = function(pToInsert){
+    var userID = tools.getCurrentUser()[tools.NAME]
+
+    var config = favorite.createAddFavoriteConfig(); 
+    config.setFavoriteGroupTitle(EwsClientSyncUtils.EWSSYNCTAG()); 
+    config.setObjectType("Person");
+    config.setUserId(userID); 
+    config.setGroupType(favorite.FAVORITE_GROUP) 
+    
+    for(let i = 0, l = pToInsert.length; i < l; i++){
+        config.setRowId(pToInsert[i]);
+        favorite.add(config);
+    }
+}
+
+/**
+ * Opens a context to add or remove contacts from the ewssync<br>
+ * 
+ * @param {String[]} pContactIds        Contacts that should be added.<br>
+ * @param {String|Object} pFilter       the filter for the contacts that should be used if no contact is selected
+ * @param {String} pMode                the mode which should be used ("ADD" or "REMOVE") default ADD
+ */
+EwsClientSyncUtils.openEwsSyncAddContactView = function(pContactIds, pFilter, pMode)
+{
+    if (!Utils.isString(pContactIds))
+        pContactIds = JSON.stringify(pContactIds);
+    if (!Utils.isString(pFilter))
+        pFilter = JSON.stringify(pFilter);
+    
+    var params = {
+        "ContactIds_param": pContactIds,
+        "ContactFilter_param": pFilter, 
+        "Mode_param": pMode
+    }
+    neon.openContext("EwsSyncAddContacts", "EwsSyncAddContactsEdit_view", null, neon.OPERATINGSTATE_VIEW, params);
+}
+    
\ No newline at end of file
diff --git a/process/EwsClient_lib/EwsClient_lib.aod b/process/EwsClient_lib/EwsClient_lib.aod
index 6343b20344c5462d4d714e1bb7cc697669244611..988c9f615a2ca71f5859f8ec0253be800cdf9b83 100644
--- a/process/EwsClient_lib/EwsClient_lib.aod
+++ b/process/EwsClient_lib/EwsClient_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>EwsClient_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/EwsClient_lib/process.js</process>
diff --git a/process/EwsClient_lib/process.js b/process/EwsClient_lib/process.js
index 2de3addde44d76ac3ad80c4f264e837fc6d90e45..51dd088565b42911b3354abcf3b823cf6c1152f1 100644
--- a/process/EwsClient_lib/process.js
+++ b/process/EwsClient_lib/process.js
@@ -62,7 +62,10 @@ $EwsClientTaskDescriptions.GET_CONTACTS_BY_FOLDERS =            function(){retur
 $EwsClientTaskDescriptions.GET_CONTACTSDEFAULTFOLDER =          function(){return "GET_CONTACTSDEFAULTFOLDER"};
 $EwsClientTaskDescriptions.GET_CONTACTFOLDERS =                 function(){return "GET_CONTACTFOLDERS"};
 $EwsClientTaskDescriptions.UPDATE_CONTACT =                     function(){return "UPDATE_CONTACT"};
-
+$EwsClientTaskDescriptions.INSERT_CONTACT_LIST_TO_FOLDER =      function(){return "INSERT_CONTACT_LIST_TO_FOLDER"}; 
+$EwsClientTaskDescriptions.INSERT_CONTACT_LIST =                function(){return "INSERT_CONTACT_LIST"}; 
+$EwsClientTaskDescriptions.UPDATE_CONTACT_LIST =                function(){return "UPDATE_CONTACT_LIST"};
+$EwsClientTaskDescriptions.DELETE_CONTACT_LIST_BY_IDS =         function(){return "DELETE_CONTACT_LIST_BY_IDS"};
 function $EwsClientImpersonationModes(){}
 /**
  * Impersonation mode NONE should be set if no impersonation user is used and every user is authenticated per user-data
@@ -400,4 +403,394 @@ EwsClientCalendarPermissionUtils._getCalendarPermissionFromResult = function (pP
             + "there exists a write but no read permission");
 
     return retVal;
+}
+
+
+
+/*
+ * provides static methods for the use of the exchange Contact Sync
+ * @class
+ */
+function EwsSyncContactUtils(){}
+
+EwsSyncContactUtils.getEwsSyncTag = function(){
+    return "ewssync";
+}
+
+
+/*
+ * returns the contact Folder for the passed mailbox
+ * requires the EWSClientPlugin
+ * 
+ * @param {String} pAliasName name of the exchange alias 
+ * @param {String} pMailbox mailbox of which the folder should be read
+ * 
+ * @return {Array} array with maps [["id"], ["name"]]
+ */
+EwsSyncContactUtils.getContactFolders = function(pAliasName, pMailbox){
+    
+    let taskDescription = $EwsClientTaskDescriptions.GET_CONTACTFOLDERS();
+    
+    let task = <mailbox>{
+    pMailbox
+    }</mailbox>;
+    
+    let pluginInput = EwsClientXMLUtils.getRequestXMLforAlias(taskDescription, task, $EwsClientImpersonationModes.SINGLE(), pAliasName);
+    let xmlOutput = EwsClientUtils.callPlugin(pluginInput);
+    let retVal = [];
+    
+    for each (folder in xmlOutput.folders.folder)
+    {
+        let map = {};
+        map["id"] = folder.id;
+        map["name"] = folder.name;
+        retVal.push(map);
+    }
+    return retVal;
+}
+
+
+EwsSyncContactUtils.updateContacts = function(pAliasName, pMailbox, pObjects, doDebug ){
+    let taskDescription = $EwsClientTaskDescriptions.UPDATE_CONTACT_LIST();
+    
+    let tasks = <mailbox>{
+    pMailbox
+    }
+    </mailbox>;
+  
+    let contactsXml = <contacts/>
+     
+    for each(let [pUniqueId, pData, pAddresses] in pObjects)
+    {
+        if(pUniqueId)
+            contactsXml.appendChild(EwsSyncContactXMLUtils.mapContactToXML(pData, pAddresses, pUniqueId, true));
+    } 
+    tasks += contactsXml;
+    
+    let pluginInput = EwsClientXMLUtils.getRequestXMLforAlias(taskDescription, tasks, $EwsClientImpersonationModes.SINGLE(), pAliasName);
+    
+    let xmlOutput = EwsClientUtils.callPlugin(pluginInput); 
+
+    return EwsSyncContactUtils.proceedPluginXmlOutput(xmlOutput, 2, doDebug); 
+}
+
+
+/**
+ * Adds a contact in a specific folder
+ * requires EWSClientPlugin 
+ * 
+ * @param {String} pAliasName name of the Alias which contains connectiondata 
+ * @param {String} pMailbox owner of the contact
+ * @param {String} pUniqueId defines folder
+ * @param {[[dataArray, adressArray]]} pObjects
+ * @param {boolean} doDebug
+ * 
+ * @return {String} new unique ID of the contact (ExchangeID)
+ * 
+ * pData array with maps with following structure:
+ * ["key"]
+ * ["value"]
+ * 
+ * pAddresses array with following Maps
+ * ["addressKey"]
+ * ["value"]    -> array with Maps with following structure ["key"]
+ *                                                          ["value]
+ *                                          
+ * existing Key for a exchange Contact:
+ * title, givenname, middlename, surname
+ * jobtitle, officelocation, department, companyname, manager, assistentname, businesshomepage
+ * fileasmapping
+ * messagebody, categories
+ * id, changekey, lastmodifiedtime, datetimecreated (read only)
+ *
+ * - possible phone numbers:
+ * AssistantPhone, BusinessFax, BusinessPhone, BusinessPhone2, Callback, CarPhone, CompanyMainPhone, HomeFax, HomePhone,
+ * HomePhone2, Isdn, MobilePhone, OtherFax, OtherTelephone, Pager, PrimaryPhone, RadioPhone, Telex, TtyTddPhone
+ *
+ * - possible Mailing:
+ * EmailAddress1, EmailAddress2, EmailAddress3
+ *
+ * - possible Instant Messaging:
+ * ImAddress1, ImAddress2, ImAddress3
+ *
+ * - possible Adressen:
+ * Business, Home, Other
+ * - possible values of a adress:
+ * street, postalcode, city, state, countryorregion
+ *
+ * postaladdressindex
+ * - possible value for "postaladdressindex"
+ * None, Business, Home, Other
+ */
+EwsSyncContactUtils.insertContactsToFolder = function(pAliasName, pMailbox, pUniqueId, pObjects, doDebug)
+{
+
+    let taskDescription = $EwsClientTaskDescriptions.INSERT_CONTACT_LIST_TO_FOLDER();
+    
+    let task = <uniqueId>{
+    pUniqueId
+    }</uniqueId>
+
+    task += <mailbox>{
+    pMailbox
+    }</mailbox>
+     
+    let contactsXml = <contacts/>
+     
+    for each(let [pData, pAddresses] in pObjects)
+    {
+        contactsXml.appendChild(EwsSyncContactXMLUtils.mapContactToXML(pData, pAddresses));
+    }
+    task += contactsXml;
+    
+    let pluginInput = EwsClientXMLUtils.getRequestXMLforAlias(taskDescription, task, $EwsClientImpersonationModes.SINGLE(), pAliasName);
+    let xmlOutput = EwsClientUtils.callPlugin(pluginInput); 
+    
+    return EwsSyncContactUtils.proceedPluginXmlOutput(xmlOutput, 1, doDebug); 
+}
+
+/**
+ * deletes unique Contacts out of EWS
+ * Voraussetzung ist EWSClientPlugin 
+ * 
+ * @param {String} pAliasName Name des Alias aus dem die Verbindungsdaten ausgelesen werden können
+ * @param {String} pUniqueIds Definiert Die Kontakte die 
+ * @param {String} pMailBox opt falls angegen wird der ImpersonatedUser verwendet
+ * @param {boolean} doDebug
+ * 
+ * @return {String[]} Array with results for Structure see Example
+ * @example
+ * Structure of the result from plugin   
+ * [
+ *  [exchangeIdsWithNoError, n],
+ *  [[id, "Error", "errorMsg", "Type"], [idn, "Error", "errorMsg", "Type"] ]    
+ * ]
+ */
+EwsSyncContactUtils.deleteContactByID = function(pAliasName, pUniqueIds, pMailBox, doDebug)
+{
+    let taskDescription = $EwsClientTaskDescriptions.DELETE_CONTACT_LIST_BY_IDS();
+    
+    let task = <uniqueIds/>;
+    
+    for each(let pUniqueId in pUniqueIds)
+    {
+        if(pUniqueId)
+            task.appendChild(<uniqueId>{
+                pUniqueId
+                }</uniqueId>)
+    }
+    
+    let pluginInput;
+    
+    if ( pMailBox == undefined )
+    {
+        pluginInput = EwsClientXMLUtils.getRequestXMLforAlias(taskDescription, task, $EwsClientImpersonationModes.NONE(), pAliasName);
+    }
+    else
+    {
+        task += <mailbox>{
+        pMailBox
+        }</mailbox>;
+        pluginInput = EwsClientXMLUtils.getRequestXMLforAlias(taskDescription, task, $EwsClientImpersonationModes.SINGLE(), pAliasName);
+    }
+
+    var xmlOutput = EwsClientUtils.callPlugin(pluginInput);
+    
+    return EwsSyncContactUtils.proceedPluginXmlOutput(xmlOutput, 3, doDebug); 
+}
+
+/*
+ * proceeds the plugin outputXMl  and returns contactId and ExchangeID,
+ *
+ *  @param {XML} pXmlOutput output of the plugin call
+ *  @param {int} pMode controlls proceeding 1 - insert, 2 - update, 3 - delete
+ *  @param {boolean} doDebug 
+ *  
+ *  @return {Array} 2d Array with contactIds, unigueID(ExchangeID) and ErrorArray
+ *
+ */
+EwsSyncContactUtils.proceedPluginXmlOutput = function(pXmlOutput, pMode, doDebug){
+    
+    var contactRes = [];
+    var failedIds = [];
+    var status, uniqueId, resultMessage, resultCode;
+    
+    //insert and Update
+    if(pMode < 3)
+    {
+        //for every contactResult in the contactResults list
+        for each( contactResult in pXmlOutput.contactResults.contactResult )
+        {
+            var keyValues = contactResult.contact.keyValues.keyValue;
+            var contactid = "";
+        
+            for each( keyValue in keyValues )
+            {
+                if(keyValue.key.toString() == "CONTACTID")//we only need the contactid value
+                {
+                    contactid = keyValue.value.toString();
+                    break;
+                }
+            }
+        
+            status = contactResult.result.toString();
+            resultMessage = contactResult.resultMessage.toString();
+            
+            //during update the xml structure is slightly different
+            uniqueId = (Number(pMode) == 2) ? contactResult.contact.@uniqueId.toString() : contactResult.uniqueId.toString();
+        
+            if(status == "Success" && contactid != "" && uniqueId != "")//only if the action was successfull
+            {
+                if(pMode == 2)//update
+                    contactRes.push(uniqueId);
+                else
+                    contactRes.push([contactid, uniqueId]);//push for update/insert in AB_SYNCCONTACT
+            }
+            else
+            {
+                resultCode = contactResult.resultCode.toString();
+                failedIds.push([contactid, status, resultMessage, resultCode, contactResult.contact.toString()])
+            }
+        }
+        if(doDebug)  logging.log("failedIds: " + failedIds.toSource());
+    }//pMode < 3
+    else 
+    //the delete result xml differs from insert and update  
+    if (pMode == 3)
+    {
+        for each( contactResult in pXmlOutput.resultBundles.resultBundle )
+        {
+            //keyvalues
+            status = contactResult.result.toString();
+            uniqueId = contactResult.uniqueId.toString();
+            
+            if(status == "Success" && uniqueId != "")
+            {
+                contactRes.push(uniqueId);//push for deleting in AB_SYNCCONTACT
+            }
+            else
+            {
+                //get Keyvalues
+                resultMessage = contactResult.resultMessage.toString();
+                resultCode = contactResult.resultCode.toString();
+                
+                failedIds.push([uniqueId, status, resultMessage, resultCode]);
+            }
+        }
+    }
+
+    return [contactRes, failedIds];
+}
+
+/*
+ *Class for handling ews XML
+ *
+ * @class
+ */
+function EwsSyncContactXMLUtils(){}
+
+
+EwsSyncContactXMLUtils.mapContactToXML = function( pData, pAddresses, pExchangeId, isUpdate)
+{
+    var content = <contact>
+                      <keyValues/>
+                      <physicalAddresses/>
+                  </contact>;
+              
+    if(isUpdate)
+    {
+        content = <contact uniqueId={
+        pExchangeId
+        }>
+        <keyValues/>
+        <physicalAddresses/>
+        </contact>;
+    }
+    
+    //add contactData e.g. Name,Lastname, department etc.
+    for each (let map in pData)
+    {  
+        let keyXml = <keyValue/>
+        let mapKey = map["key"]; 
+        let mapVal = map["value"]; 
+
+        keyXml.appendChild(<key>{
+            mapKey
+            }</key>);
+        keyXml.appendChild(<value>{
+            mapVal
+            }</value>);
+        
+        //append contactdata to parent xml
+        content.keyValues.appendChild(keyXml);
+    }
+   
+    //TODO: refactor when for of Loop is available
+    for each( let outerMap in pAddresses )
+    {
+        var adressXml = <physicalAddresse/>
+        var pAdressKey = outerMap["addressKey"];
+    
+        adressXml.appendChild(<addressKey>{
+            pAdressKey
+            }</addressKey>)
+        
+        var list = outerMap["value"];
+       
+        adressXml.appendChild(<keyValues/>)
+        
+            for each( let innerMap in list )
+            {
+                let keyXml = <keyValue/>
+                let innerMapKey =  innerMap["key"];
+                let innerMapValue = innerMap["value"];
+                
+                    
+                keyXml.appendChild(<key>{
+                    innerMapKey
+                    }</key>);
+                keyXml.appendChild(<value>{
+                    innerMapValue
+                    }</value>);
+                
+                adressXml.keyValues.appendChild(keyXml);
+            }
+            //append adressxml to parent
+            content.physicalAddresses.appendChild(adressXml);
+        }
+    return content;
+    }
+    
+EwsSyncContactXMLUtils.mapContactFromXML = function( pContactXML )
+{
+    let retVal = {};
+    let shallow = [];
+
+    for each (keyValue in pContactXML.keyValues.keyValue)
+    {   
+        let map = {};
+        map["key"] = keyValue.key;
+        map["value"] = keyValue.value;
+        shallow.push(map);
+    }
+    retVal["shallow"] = shallow;
+    
+    let addresses = [];
+    for each (physicalAddresse in pContactXML.physicalAddresses.physicalAddresse)
+    {
+
+        let outerMap = {};
+        outerMap["addressKey"] = physicalAddresse.addressKey;
+        let list = [];
+        for each(keyValue in physicalAddresse.keyValues)
+        {
+            let innerMap = {};
+            innerMap["key"] = keyValue.key;
+            outerMap["value"] = keyValue.value;
+            list.push(innerMap);
+        }
+        outerMap["value"] = list;
+    }
+    retVal["addresses"] = addresses;
+    return retVal;
 }
\ No newline at end of file
diff --git a/process/ExportTemplate_lib/ExportTemplate_lib.aod b/process/ExportTemplate_lib/ExportTemplate_lib.aod
index 7caa047e49c2fef06484706319038c76196b7408..347c2bddef076b805409a78895a51a36914f6f32 100644
--- a/process/ExportTemplate_lib/ExportTemplate_lib.aod
+++ b/process/ExportTemplate_lib/ExportTemplate_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>ExportTemplate_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/ExportTemplate_lib/process.js</process>
diff --git a/process/Favorites_lib/Favorites_lib.aod b/process/Favorites_lib/Favorites_lib.aod
index cae0fb68babcc9bc0d63f870308e1571808c527b..1512c3b435da8286670c2c886d709582b7b5e4c7 100644
--- a/process/Favorites_lib/Favorites_lib.aod
+++ b/process/Favorites_lib/Favorites_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Favorites_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Favorites_lib/process.js</process>
diff --git a/process/Favorites_lib/process.js b/process/Favorites_lib/process.js
index d5e32f5145cb4d324f5f47e69cfe2de852b52ca9..a02f3dfcc2146f31e6936f51870c92120f0f427c 100644
--- a/process/Favorites_lib/process.js
+++ b/process/Favorites_lib/process.js
@@ -30,30 +30,56 @@ FavoritesUtil.getUserFavoriteGroups = function()
     return Array.from(allTypes);
 }
 
+/**
+ * Here we prepare the filtercondition for favorites of a certain pObjecttype, pOperator and pRowvalue.
+ * In certain circumstances, the rowids need to be prepared earlier (Person / Organisation). If so, they can be inserted by pPreparedRowIds.
+ * Then they won't be loaded again inside this method.
+ */
+FavoritesUtil.getFilterDisplayCondition = function(pObjecttype, pOperator, pRawvalue, pIdColumn, pPreparedRowIds)
+{
+    var favoFilterCond = newWhere();
+    
+    if(pPreparedRowIds == null || pPreparedRowIds.length == 0)
+        pPreparedRowIds = FavoritesUtil.getRowIdsOfFavorites(pObjecttype, pOperator, pRawvalue);
 
+    if(pOperator == "1" || pOperator == "2" || pOperator == "11") // equal / not equal / not empty -> compare on result values
+    {
+        for(i = 0; i < pPreparedRowIds.length; i++)
+            favoFilterCond.or(pIdColumn, pPreparedRowIds[i], SqlBuilder.EQUAL());
+    }
+    else if(pOperator == "12") // empty
+        favoFilterCond.and(pIdColumn, pPreparedRowIds, SqlBuilder.NOT_IN());
 
-FavoritesUtil.getRowIdsOfFavoriteGroup = function()
+    return favoFilterCond.toString();
+}
+/**
+ *  Gets all favorized datasetids by a given pObjecttype, pOperator and the Favoritegroup-Title it is stored with
+ */
+FavoritesUtil.getRowIdsOfFavorites = function(pObjecttype, pOperator, pRawvalue)
 {
     var sysAlias = favorite.getFavoritesAlias();
+    var op = "";
 
-    var value = vars.get("$local.rawvalue");
-    var operator = vars.get("$local.operator") //noch zu implementieren
+    if(pOperator == "1")
+        op = SqlBuilder.EQUAL();
+    else if(pOperator == "2")
+        op = SqlBuilder.NOT_EQUAL();
+    else if(pOperator == "11")
+        op = SqlBuilder.IN();
+    else if(pOperator == "12")
+        op = SqlBuilder.NOT_IN();
 
-    if(value && operator)
-    {
-        var filterCond = newWhere("ASYS_RECORDGROUP.TITLE", value, null, null, sysAlias); //Operators fehlen noch
-        filterCond.and(newWhere("ASYS_RECORDGROUP.USER_ID", tools.getCurrentUser()["name"], null, null, sysAlias));
-
-        var rowIds = new SqlBuilder(sysAlias).selectDistinct("ASYS_RECORD.ROW_ID")
-                                .from("ASYS_RECORD")
-                                .join("ASYS_RECORDGROUP", "ASYS_RECORD.RECORDGROUP_ID = ASYS_RECORDGROUP.ID")
-                                .where(filterCond)
-                                .arrayColumn();
-                                
-        return rowIds;
-    }
-    
-    return null;
+    var filterCond = newWhereIfSet("ASYS_RECORDGROUP.TITLE", pRawvalue, op, null, sysAlias); //Operators fehlen noch
+    filterCond.and(newWhere("ASYS_RECORDGROUP.USER_ID", tools.getCurrentUser()["name"], null, null, sysAlias));
+    filterCond.and(newWhere("ASYS_RECORD.OBJECT_TYPE", pObjecttype, null, null, sysAlias));
+
+    var rowIds = new SqlBuilder(sysAlias).selectDistinct("ASYS_RECORD.ROW_ID")
+                            .from("ASYS_RECORD")
+                            .join("ASYS_RECORDGROUP", "ASYS_RECORD.RECORDGROUP_ID = ASYS_RECORDGROUP.ID")
+                            .where(filterCond)
+                            .arrayColumn();
+
+    return rowIds;
 }
     
 FavoritesUtil.getUserFavoriteGroupsByContext = function(pContext)
diff --git a/process/FilterCondition_lib/FilterCondition_lib.aod b/process/FilterCondition_lib/FilterCondition_lib.aod
index 501b03729ea169b526cad1548517b937c6dfab68..a69dbb1ec7562964c049d98c602b3e2fc523d214 100644
--- a/process/FilterCondition_lib/FilterCondition_lib.aod
+++ b/process/FilterCondition_lib/FilterCondition_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>FilterCondition_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/FilterCondition_lib/process.js</process>
diff --git a/process/FilterViewAction_lib/FilterViewAction_lib.aod b/process/FilterViewAction_lib/FilterViewAction_lib.aod
index 48c19eee90b9f6d0af7eef5c7d56053ce1cbb706..83be35832aac8118a4ea6c6f5303da92279e165d 100644
--- a/process/FilterViewAction_lib/FilterViewAction_lib.aod
+++ b/process/FilterViewAction_lib/FilterViewAction_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>FilterViewAction_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/FilterViewAction_lib/process.js</process>
diff --git a/process/Html_lib/Html_lib.aod b/process/Html_lib/Html_lib.aod
index 98ca38b6fb0b91eaf40a3bc4df951523298405b6..52d9fb2676cc9bd5c6830314d4ea3dc03f5c77bb 100644
--- a/process/Html_lib/Html_lib.aod
+++ b/process/Html_lib/Html_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Html_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Html_lib/process.js</process>
diff --git a/process/ImporterCustomMappingFunctions_lib/ImporterCustomMappingFunctions_lib.aod b/process/ImporterCustomMappingFunctions_lib/ImporterCustomMappingFunctions_lib.aod
index bda7727edbe38bf67567ed6bf614368f276cacc6..e5e687932c1f9a7c032b98a697d4cce04b62c23e 100644
--- a/process/ImporterCustomMappingFunctions_lib/ImporterCustomMappingFunctions_lib.aod
+++ b/process/ImporterCustomMappingFunctions_lib/ImporterCustomMappingFunctions_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>ImporterCustomMappingFunctions_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/ImporterCustomMappingFunctions_lib/documentation.adoc</documentation>
diff --git a/process/ImporterMappingFunctions_lib/ImporterMappingFunctions_lib.aod b/process/ImporterMappingFunctions_lib/ImporterMappingFunctions_lib.aod
index 8a5c80a490d63a3c52aecaa1f3c2fd22e206c0e0..9c1fdace0d76d26c686e2696f82367c4b9520898 100644
--- a/process/ImporterMappingFunctions_lib/ImporterMappingFunctions_lib.aod
+++ b/process/ImporterMappingFunctions_lib/ImporterMappingFunctions_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>ImporterMappingFunctions_lib</name>
   <comment></comment>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/ImporterMappingFunctions_lib/process.js b/process/ImporterMappingFunctions_lib/process.js
index 1598b0c0d197065131f90b301d060411762ecb49..f85d4a3f1b1f45c8e8079a2efe776a0208d07e1c 100644
--- a/process/ImporterMappingFunctions_lib/process.js
+++ b/process/ImporterMappingFunctions_lib/process.js
@@ -142,7 +142,7 @@ function iAttribute(pObject)
             
             if (i == 0) 
             {
-                var parent = "NULL";
+                var parent = null;
                 // select ab_attributeid from AB_ATTRIBUTE where ATTRIBUTE_NAME = 'Subordinate campaign of' and attribute_parent_id is null
                 id = newSelect(ab_attributeId, alias).from(ab_attribute).where(attribute_name, attributes[i])
                         .and(attribute_parent_id + " is null").cell();
@@ -158,10 +158,18 @@ function iAttribute(pObject)
             {
                 id = util.getNewUUID();
                 if (attributes.length == i+1) type = attributeType;
+                
                 //TODO: add insertNoWait to instantly add AB_ATTRIBUTE records; 
                 //this ensures that nothing is in the funcBuffer that does not exist in the database
                 //TODO: check: are COMOB-values added automatically?
                 var values = [id, parent, attributes[i], type, "1"];
+                
+                if(parent == null)
+                {
+                    values = [id, attributes[i], type, "1"];
+                    columns = [ab_attributeId, attribute_name, attribute_type, attribute_active];
+                }
+                
                 this.insertData(ab_attribute, columns, null, values, alias);
             }   
             pathToFollow["childs"][attributes[i]]["id"] = id;   
diff --git a/process/ImporterTest_lib/ImporterTest_lib.aod b/process/ImporterTest_lib/ImporterTest_lib.aod
index e1204321106696757a47000f28e10cc890d73182..18c823d8efb53c2729837bed17354bcc5d518145 100644
--- a/process/ImporterTest_lib/ImporterTest_lib.aod
+++ b/process/ImporterTest_lib/ImporterTest_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>ImporterTest_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/ImporterTest_lib/process.js</process>
diff --git a/process/Importer_lib/Importer_lib.aod b/process/Importer_lib/Importer_lib.aod
index 157f0d47a73b0864183bb16bdd52a1df8aa60151..1d6a37d39b4020a34413b08f937d71f1b2aa6434 100644
--- a/process/Importer_lib/Importer_lib.aod
+++ b/process/Importer_lib/Importer_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Importer_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/Importer_lib/documentation.adoc</documentation>
diff --git a/process/Importer_lib/process.js b/process/Importer_lib/process.js
index a9e5a528933faecd47bc7480712b8a2114e3787b..98cb4591bf894ae46a7b4a1796cbe5b66b08e525 100644
--- a/process/Importer_lib/process.js
+++ b/process/Importer_lib/process.js
@@ -1443,6 +1443,10 @@ function Importer(pConfig)
             var tmp = this.KeyColumn[pTable][col];  // contains I | I;U | I+U
             if(tmp != "")
             {
+                if(!this.OutputRecord[pTable][col])
+                {
+                    throw new Error(translate.withArguments("Importer_lib: Condition could not be build because the Keycolumn %0 is not in the OutputRecord.", [col]));
+                }
                 var value = this.OutputRecord[pTable][col]["U"];
                 if(value == undefined || value == "")
                     value = this.OutputRecord[pTable][col]["I+U"];
diff --git a/process/IncomingCallExecutor_lib/IncomingCallExecutor_lib.aod b/process/IncomingCallExecutor_lib/IncomingCallExecutor_lib.aod
index 9d36946fdfeba69161bdfea00b2fb36fff5e9703..6659a5fab6a825cf1ac27042fa364121ef42d443 100644
--- a/process/IncomingCallExecutor_lib/IncomingCallExecutor_lib.aod
+++ b/process/IncomingCallExecutor_lib/IncomingCallExecutor_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>IncomingCallExecutor_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/IncomingCallExecutor_lib/process.js</process>
diff --git a/process/IncomingEmailExecutor_lib/IncomingEmailExecutor_lib.aod b/process/IncomingEmailExecutor_lib/IncomingEmailExecutor_lib.aod
index 1dbef1a882583c24721c0d35583dfdc1506ef5f4..5d940a9124d30b9cfdbfa030b459f3802d9e8139 100644
--- a/process/IncomingEmailExecutor_lib/IncomingEmailExecutor_lib.aod
+++ b/process/IncomingEmailExecutor_lib/IncomingEmailExecutor_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>IncomingEmailExecutor_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/IncomingEmailExecutor_lib/process.js</process>
diff --git a/process/IndexSearch_lib/IndexSearch_lib.aod b/process/IndexSearch_lib/IndexSearch_lib.aod
index bfc314526ea673c93e94af2e8fae2d019e835386..b5a2aacd8c33062115f137291582acd7c0d8a36b 100644
--- a/process/IndexSearch_lib/IndexSearch_lib.aod
+++ b/process/IndexSearch_lib/IndexSearch_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>IndexSearch_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/IndexSearch_lib/process.js</process>
diff --git a/process/JditoFilter_lib/JditoFilter_lib.aod b/process/JditoFilter_lib/JditoFilter_lib.aod
index e6721ea4e24d19d56ce2a3054d799e994536ed7c..1276959dc464987cf335240fa6c934a9261a328c 100644
--- a/process/JditoFilter_lib/JditoFilter_lib.aod
+++ b/process/JditoFilter_lib/JditoFilter_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>JditoFilter_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/JditoFilter_lib/documentation.adoc</documentation>
diff --git a/process/JditoFilter_lib/process.js b/process/JditoFilter_lib/process.js
index e6e2ec67865fb6d45cc71b1a70860547c96540f8..c2244518ffb427f82f1273d879f7c16c878be589 100644
--- a/process/JditoFilter_lib/process.js
+++ b/process/JditoFilter_lib/process.js
@@ -406,6 +406,29 @@ JditoFilterUtils.filterRecords = function (pColumns, pRecords, pFilter, pCustomC
     return filterObj.filterRecords(pRecords);
 }
 
+/**
+ * Filters the given records manually. If you get the records using a sql query, you might consider using
+ * JditoFilterUtils.getSqlCondition instead for better performance.
+ * 
+ * @param {Array} pColumns one dimensional array with all column names (only the columns with the idValue, displayValue columns should be null or ""), 
+ *                          the order has to match the columns of the recordFields property in the recordcontainer
+ * @param {Array} pRecords two dimensional array with all records
+ * @param {String|Object} pFilter the value of vars.get($local.filter).filter
+ * @param {Object} [pCustomCheckFns] Object of custom functions that should be used to ckeck records. The key has to be the name of the fields you want to
+ *          check. The provided function will be called with the arguments (recordValue, filterValue, operator, record) and should return a boolean (or something truthy or falsy).
+ * @param {Object} [pCheckFnThisArg] The object that should be the this-context when the custom check functions are called. This can be useful if you
+ *          need some kind of storage for extra data you need in your function that you don't have to load for every record.
+ * 
+ * @return {Array} the filtered records
+ */
+JditoFilterUtils.filterRecordsReturnOnlyFirst = function (pColumns, pRecords, pFilter, pCustomCheckFns, pCheckFnThisArg)
+{
+    if (!pFilter)
+        return pRecords[0];
+    
+    return new JditoFilter(pColumns, pFilter, pCustomCheckFns, pCheckFnThisArg).filterRecords(pRecords);
+}
+
 /**
  * builds an sql condition from the given filter
  * 
@@ -467,6 +490,27 @@ JditoFilterUtils.isUserIgnoreCase = function ()
     return ignoreCase == "" || /true/i.test(ignoreCase);
 }
 
+/**
+ * Gets you an empty Filter for the specified entity.
+ * 
+ * @param {String} pEntity the entity you want the empty filter from
+
+ * @return {String} the stringified Filter
+ */
+JditoFilterUtils.getEmptyFilter = function (pEntity)
+{
+    var emptyFilter = {
+        entity: pEntity, 
+        filter: {
+            type: "group", 
+            operator: "AND", 
+            childs: []
+        }
+    };
+    return JSON.stringify(emptyFilter);
+}
+
+
 /**
  * Object for translating a filter object to a sql condition.
  * 
diff --git a/process/KeywordAttribute_test/KeywordAttribute_test.aod b/process/KeywordAttribute_test/KeywordAttribute_test.aod
index 5956980e85aba58177a5e931c819b50b4894f796..d22a7e77434dce92542facb54aabfd1a93d5a438 100644
--- a/process/KeywordAttribute_test/KeywordAttribute_test.aod
+++ b/process/KeywordAttribute_test/KeywordAttribute_test.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>KeywordAttribute_test</name>
   <title>[TEST] KeywordAttribute_lib</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/KeywordData_lib/KeywordData_lib.aod b/process/KeywordData_lib/KeywordData_lib.aod
index a4aab38ec5e70adb742a4c84ca34d1428449465f..75431a8c0314bbe8ce20a2362be8e1dd40c6cc96 100644
--- a/process/KeywordData_lib/KeywordData_lib.aod
+++ b/process/KeywordData_lib/KeywordData_lib.aod
@@ -1,8 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>KeywordData_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/KeywordData_lib/process.js</process>
+  <alias>Data_alias</alias>
   <variants>
     <element>LIBRARY</element>
   </variants>
diff --git a/process/KeywordData_lib/process.js b/process/KeywordData_lib/process.js
index a4fbd6bd4e44b0b1068e110f60e27107bceb47ee..a367023d23685e3bd9590be36b5e0e793de93298 100644
--- a/process/KeywordData_lib/process.js
+++ b/process/KeywordData_lib/process.js
@@ -1,30 +1,32 @@
-import("system.translate");
+import("Keyword_lib");
 import("system.db");
+import("system.translate");
 import("DataCaching_lib");
 import("Sql_lib");
 
-/*
-This is a experimental library. 
-The code will definetly change in the future while not keeping the same functionparameters and calls. You should not use this except you excatly know what you're doing.
-Since the functions will change, comments are written for the future functions.
-
-The idea behind this is to maintain data in cached form (client-context-side)) for various keyword-constructs.
+/**
+ * This is an experimental library.
+ * The code will definitely change in the future while not keeping the same function parameters and calls. You should not use this except you exactly know what you're doing.
+ * Since the functions will change, comments are written for the future functions.
+ *
+ * The idea behind this is to maintain data in cached form (client-context-side)) for various keyword-constructs.
 */
 
-function KeywordData(){}
+function KeywordData() {}
 
-KeywordData.getSimpleData = function (pKeywordContainer, pLocale, pOnlyActives)
+KeywordData.getSimpleData = function(pKeywordContainer, pLocale, pOnlyActives)
 {
-    var onlyActives = (pOnlyActives == undefined ? true : pOnlyActives);
+    var onlyActives = pOnlyActives == undefined ? true : pOnlyActives;
     var flags =  "#" + (onlyActives ? "1" : "0");
     var identifier = "KeywordSimpleData_" + pKeywordContainer + flags;
     var cache = new CachedData(identifier, true, pLocale);
-    return cache.load(function (pTranslationNecessary, pLocale){
+
+    return cache.load(function(pTranslationNecessary, pLocale) {
         var keywordEntrySelect = newSelect("AB_KEYWORD_ENTRY.KEYID, AB_KEYWORD_ENTRY.TITLE", "Data_alias")
                                     .from("AB_KEYWORD_ENTRY")
                                     .orderBy("AB_KEYWORD_ENTRY.SORTING asc, AB_KEYWORD_ENTRY.TITLE asc")
-                                    .where("AB_KEYWORD_ENTRY.CONTAINER", pKeywordContainer);
-        
+                                    .where("AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID", KeywordUtils.getCategoryIdByName(pKeywordContainer));
+
         if (onlyActives)
             keywordEntrySelect.and("AB_KEYWORD_ENTRY.ISACTIVE", "1");
         
@@ -34,36 +36,67 @@ KeywordData.getSimpleData = function (pKeywordContainer, pLocale, pOnlyActives)
         {
             keywordData[i][1] = translate.text(keywordData[i][1], pLocale);
         }
+
         return keywordData.slice(0);
     });
 };
+KeywordData.getSimpleData2 = function(pKeywordContainer, pLocale, pOnlyActives)
+{
+    var onlyActives = pOnlyActives == undefined ? true : pOnlyActives;
+    var flags =  "#" + (onlyActives ? "1" : "0");
+    var identifier = "KeywordSimpleData_" + pKeywordContainer + flags;
+    var cache = new CachedData(identifier, true, pLocale);
+
+    return cache.load(function(pTranslationNecessary, pLocale) {
+        var keywordEntrySelect = newSelect("AB_KEYWORD_ENTRY.KEYID, AB_KEYWORD_ENTRY.TITLE", "Data_alias")
+                                    .from("AB_KEYWORD_ENTRY")
+                                    .join("AB_KEYWORD_CATEGORY", "AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID = AB_KEYWORD_CATEGORY.AB_KEYWORD_CATEGORYID")
+                                    .orderBy("AB_KEYWORD_ENTRY.SORTING asc, AB_KEYWORD_ENTRY.TITLE asc")
+                                    .where("AB_KEYWORD_CATEGORY.NAME", pKeywordContainer);
+
+        if (onlyActives)
+            keywordEntrySelect.and("AB_KEYWORD_ENTRY.ISACTIVE", "1");
+
+        var keywordData = keywordEntrySelect.table();
 
-KeywordData.getKeyIdMap = function (pKeywordContainer, pLocale)
+        for (var i = 0, l = keywordData.length; i < l; i++)
+        {
+            keywordData[i][1] = translate.text(keywordData[i][1], pLocale);
+        }
+
+        return keywordData.slice(0);
+    });
+};
+
+KeywordData.getKeyIdMap = function(pKeywordContainer, pLocale)
 {
     var cache = new CachedData("KeywordKeyidMap_" + pKeywordContainer, true, pLocale);
-    return cache.load(function (pTranslationNecessary, pLocale){
+
+    return cache.load(function(pTranslationNecessary, pLocale) {
         var keywordData = KeywordData.getSimpleData(pKeywordContainer, pLocale)
         var res = {};
         var keyid, title;
+
         for (var i = 0, l = keywordData.length; i < l; i++)
         {
             [keyid, title] = keywordData[i];
-            res[keyid] = title;//title comes already translated through the getData-function
+            res[keyid] = title; // title comes already translated through the getData-function
         }
+
         return res;
     });
 };
 
-KeywordData.getKeywordAttributeRelations = function (pKeywordContainer)
+KeywordData.getKeywordAttributeRelations = function(pKeywordContainer)
 {
-    return CachedData.make("KeywordAttributeRelationObj_" + pKeywordContainer, false, function(){
+    return CachedData.make("KeywordAttributeRelationObj_" + pKeywordContainer, false, function() {
         var data = newSelect("AB_KEYWORD_ENTRY.KEYID, AB_KEYWORD_ATTRIBUTE.NAME, AB_KEYWORD_ATTRIBUTE.KIND, \n\
                             AB_KEYWORD_ATTRIBUTERELATION.CHAR_VALUE, AB_KEYWORD_ATTRIBUTERELATION.LONG_CHAR_VALUE, AB_KEYWORD_ATTRIBUTERELATION.NUMBER_VALUE, AB_KEYWORD_ATTRIBUTERELATION.BOOL_VALUE")
                         .from("AB_KEYWORD_ENTRY")
-                        .join("AB_KEYWORD_ATTRIBUTE", "AB_KEYWORD_ATTRIBUTE.CONTAINER = AB_KEYWORD_ENTRY.CONTAINER")
+                        .join("AB_KEYWORD_ATTRIBUTE", "AB_KEYWORD_ATTRIBUTE.AB_KEYWORD_CATEGORY_ID = AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID")
                         .leftJoin("AB_KEYWORD_ATTRIBUTERELATION", newWhere("AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ATTRIBUTE_ID = AB_KEYWORD_ATTRIBUTE.AB_KEYWORD_ATTRIBUTEID")
                                                                     .and("AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ENTRY_ID = AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID"))
-                        .where("AB_KEYWORD_ENTRY.CONTAINER", pKeywordContainer)
+                        .where("AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID", KeywordUtils.getCategoryIdByName(pKeywordContainer))
                         .table();
 
         var res = {};
@@ -73,11 +106,13 @@ KeywordData.getKeywordAttributeRelations = function (pKeywordContainer)
         {
             [keyId, name, type, charVal, longCharVal, numVal, boolVal] = data[i];
             name = name.trim();
-            type = type.trim();        
+            type = type.trim();
+
             if (res[keyId] == undefined)
                 res[keyId] = {};
 
             var parsedValue = null;
+
             switch(type)
             {
                 case "NUMBER_VALUE":
@@ -98,16 +133,17 @@ KeywordData.getKeywordAttributeRelations = function (pKeywordContainer)
         }
         return res;
     });
-    
+
     return data;
 }
 
-function LanguageData(){}
+function LanguageData() {}
 
 LanguageData.getData = function()
 {
     var cache = new CachedData("LanguagesData", false);
-    return cache.load(function (pTranslationNecessary, pLocale){
+
+    return cache.load(function(pTranslationNecessary, pLocale) {
         var data = db.table("select AB_LANGUAGE.ISO3, AB_LANGUAGE.NAME_LATIN from AB_LANGUAGE");
         return data;
     });
@@ -117,16 +153,19 @@ LanguageData.getIso3Map = function(pLocale, pAlias)
 {
     var dbAlias = pAlias || db.getCurrentAlias();
     var cache = new CachedData("LanguagesISO3Map", true, pLocale, dbAlias);
-    var cachedData = cache.load(function (pTranslationNecessary, pLocale, pAlias){
+    var cachedData = cache.load(function(pTranslationNecessary, pLocale, pAlias) {
         var data = db.table("select AB_LANGUAGE.ISO3, AB_LANGUAGE.ISO2, AB_LANGUAGE.NAME_LATIN from AB_LANGUAGE", pAlias);
         var res = {};
         var iso3, iso2, countryName;
+
         for (var i = 0, l = data.length; i < l; i++)
         {
             [iso3, iso2, countryName] = data[i];
             res[iso3] = {name: translate.text(countryName, pLocale), iso2: iso2};
         }
+
         return res;
     });
+
     return cachedData;
 };
\ No newline at end of file
diff --git a/process/KeywordRegistry_basic/KeywordRegistry_basic.aod b/process/KeywordRegistry_basic/KeywordRegistry_basic.aod
index f16c2160c96dbf655bd3d9e8c09fa6cdf23fe58f..3e8c6225484280a86952143b84f07255692204c7 100644
--- a/process/KeywordRegistry_basic/KeywordRegistry_basic.aod
+++ b/process/KeywordRegistry_basic/KeywordRegistry_basic.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>KeywordRegistry_basic</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/KeywordRegistry_basic/process.js</process>
diff --git a/process/KeywordRegistry_basic/process.js b/process/KeywordRegistry_basic/process.js
index eaa206920ca8d3e012f686c6830db4b63d9942fd..3a514e016762cc93feda22a8be23e51c0899bbcd 100644
--- a/process/KeywordRegistry_basic/process.js
+++ b/process/KeywordRegistry_basic/process.js
@@ -41,6 +41,7 @@ $KeywordRegistry.activityDirection$internal = function(){return "x";};
 $KeywordRegistry.contactStatus = function(){return "ContactStatus";};
 $KeywordRegistry.contactStatus$active = function(){return "CONTACTSTATACTIVE";};
 $KeywordRegistry.contactStatus$inactive = function(){return "CONTACTSTATINACTIVE";};
+$KeywordRegistry.contactStatus$inReview = function(){return "CONTACTSTATREVIEW";};
 
 $KeywordRegistry.currency = function(){return "Currency";};
 $KeywordRegistry.currency$eur = function(){return "EUR";};
@@ -81,11 +82,20 @@ $KeywordRegistry.ticketType$supportTicket = function(){return "SUPPORTTICKET";};
 
 $KeywordRegistry.productPricelist = function(){return "ProductPricelist";};
 $KeywordRegistry.productPricelist$standardList = function(){return "PRICELISTDEFAULT";};
+$KeywordRegistry.productPricelist$keyList = function(){return "PRICELISTKEY";};
+$KeywordRegistry.productPricelist$specialList = function(){return "PRICELISTSPECIAL";};
+$KeywordRegistry.productPricelist$serviceList = function(){return "PRICELISTSERVICE";};
 
 $KeywordRegistry.quantityUnit = function(){return "QuantityUnit";};
 $KeywordRegistry.quantityUnit$pieces = function(){return "QUANTITYPIECES";};
 
 $KeywordRegistry.MemberRole = function(){return "MemberRole";};
+$KeywordRegistry.memberRoleProjManag = function(){return "MEMROLEPROJMANAG";};
+$KeywordRegistry.memberRoleAdvise = function(){return "MEMROLEADVISE";};
+$KeywordRegistry.memberRoleProjAssist = function(){return "MEMROLEPROJASSIST";};
+$KeywordRegistry.memberRoleExSalemang = function(){return "MEMROLEEXSALEMANAG";};
+$KeywordRegistry.memberRoleIntenDistrib = function(){return "MEMROLINSALEMANAG";};
+
 $KeywordRegistry.salesprojectSource = function(){return "SalesprojectSource";};
 
 $KeywordRegistry.salesorderState = function(){return "SalesorderState";};
@@ -106,6 +116,7 @@ $KeywordRegistry.activityCategory$visit = function(){return "VISIT";};
 $KeywordRegistry.addressType = function(){return "AddressType";};
 $KeywordRegistry.addressType$private = function(){return "HOMEADDR";};
 $KeywordRegistry.addressType$office = function(){return "OFFICEADDR";};
+$KeywordRegistry.addressType$post = function(){return "POSTADDR";};
 
 $KeywordRegistry.offerProbability = function(){return "OfferProbability";};
 
@@ -131,6 +142,12 @@ $KeywordRegistry.salesprojectState$lost = function(){return "SALPROJSTATLOST";};
 $KeywordRegistry.salesprojectPhase = function(){return "SalesprojectPhase";};
 $KeywordRegistry.salesprojectPhase$nqc = function(){return "SALPROJPHASENQC";};
 $KeywordRegistry.salesprojectPhase$nego = function(){return "SALPROJPHASENEGO";};
+$KeywordRegistry.salesprojectPhase$mal = function(){return "SALPROJPHASEMAL"};
+$KeywordRegistry.salesprojectPhase$mql = function(){return "SALPROJPHASEMQL"};
+$KeywordRegistry.salesprojectPhase$offer = function(){return "SALPROJPHASEOFFER"};
+$KeywordRegistry.salesprojectPhase$sal = function(){return "SALPROJPHASESAL"};
+$KeywordRegistry.salesprojectPhase$sqo = function(){return "SALPROJPHASESQO"};
+$KeywordRegistry.salesprojectPhase$mqc = function(){return "SALPROJPHASEMQC"};
 
 $KeywordRegistry.taskPriority = function(){return "TaskPriority";};
 $KeywordRegistry.taskPriority$none = function(){return "TASKPRIONONE";};
@@ -297,6 +314,11 @@ $KeywordRegistry.notificationState = function(){ return "NotificationState";};
 $KeywordRegistry.notificationState$unseen = function(){return "UNSEEN";};
 $KeywordRegistry.notificationState$seen = function(){return "SEEN";};
 
+$KeywordRegistry.adviserRole = function(){ return "ADVISER_ROLE";};
+
+$KeywordRegistry.districtOrigin = function(){ return "DISTRICT_ORIGIN";};
+$KeywordRegistry.districtOrigin$manual = function(){ return "DistrictOrigin_manual";};
+$KeywordRegistry.districtOrigin$auto = function(){ return "DistrictOrigin_auto";};
 $KeywordRegistry.discussionStatus = function(){return "DiscussionStatus";}
 $KeywordRegistry.discussionStatus$acitve = function(){return "ACTIVE";}
 $KeywordRegistry.discussionStatus$closed = function(){return "CLOSED";}
@@ -308,4 +330,21 @@ $KeywordRegistry.knowledgeType$editorial = function(){return "EDITORIAL";}
 $KeywordRegistry.knowledgePublishLevel = function(){return "KnowledgePublishLevel";}
 $KeywordRegistry.knowledgePublishLevel$internal = function(){return "INTERNAL";}
 $KeywordRegistry.knowledgePublishLevel$partner = function(){return "PARTNER";}
-$KeywordRegistry.knowledgePublishLevel$public = function(){return "PUBLIC";}
\ No newline at end of file
+$KeywordRegistry.knowledgePublishLevel$public = function(){return "PUBLIC";}
+
+$KeywordRegistry.visitPlanEntryStatusAppointment = function(){return "VisitPlanEntryStatusAppointment";};
+$KeywordRegistry.visitPlanEntryStatusAppointment$requested = function(){return "VISITSTATUSAPPOINTMENTREQUESTED";};
+$KeywordRegistry.visitPlanEntryStatusAppointment$confirmed = function(){return "VISITSTATUSAPPOINTMENTCONFIRMED";};$KeywordRegistry.knowledgePublishLevel$public = function(){return "PUBLIC";}
+
+$KeywordRegistry.notificationPriority = function(){ return "NotificationPriority";};
+$KeywordRegistry.notificationPriority$none = function(){ return "NONE";};
+$KeywordRegistry.notificationPriority$low = function(){ return "LOW";};
+$KeywordRegistry.notificationPriority$normal = function(){ return "NORMAL";};
+$KeywordRegistry.notificationPriority$hight = function(){ return "HIGH";};
+$KeywordRegistry.notificationPriority$max = function(){ return "MAX";};
+
+$KeywordRegistry.visitPlanEntryStatusAppointment$confirmed = function(){return "VISITSTATUSAPPOINTMENTCONFIRMED";};$KeywordRegistry.knowledgePublishLevel$public = function(){return "PUBLIC";}
+
+$KeywordRegistry.checklistEntryType = function(){return "ChecklistEntryType";}
+$KeywordRegistry.checklistEntryType$manual = function(){return "MANUAL";}
+$KeywordRegistry.checklistEntryType$auto = function(){return "AUTO";}
\ No newline at end of file
diff --git a/process/Keyword_lib/Keyword_lib.aod b/process/Keyword_lib/Keyword_lib.aod
index 2dd2a647ff95df46a7e1b5d118e021129d1d30d7..641f19343bb3f869b69ebb3c2b0bfd8464c32229 100644
--- a/process/Keyword_lib/Keyword_lib.aod
+++ b/process/Keyword_lib/Keyword_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Keyword_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Keyword_lib/process.js</process>
diff --git a/process/Keyword_lib/process.js b/process/Keyword_lib/process.js
index dd8986377eaaff95d792cc821b8be28b39634724..3f33564d881f46aa07e062522eb22d7a89dbbea8 100644
--- a/process/Keyword_lib/process.js
+++ b/process/Keyword_lib/process.js
@@ -1,10 +1,11 @@
-import("KeywordRegistry_basic");
-import("KeywordData_lib");
-import("system.vars");
-import("system.SQLTYPES");
+import("system.entities");
 import("system.db");
-import("system.translate");
 import("system.neon");
+import("system.SQLTYPES");
+import("system.translate");
+import("system.vars");
+import("KeywordData_lib");
+import("KeywordRegistry_basic");
 import("Sql_lib");
 
 /**
@@ -12,14 +13,14 @@ import("Sql_lib");
  * 
  * @class
  */
-function KeywordUtils(){}
+function KeywordUtils() {}
 
 /**
-* resolves KEYIDs of a keywordentry into the specific title
+* resolves KEYIDs of a KeywordEntry into the specific title
 * 
 * @param {String} pContainerName name of the keyword container that shall be resolved
 * @param {String} pDbFieldName name fo the database field where the KEYID-value is stored
-* @param {String} [pLocale=current client language] specifies the locale for translating the title; can be false if nothing shalle be translated
+* @param {String} [pLocale=current client language] specifies the locale for translating the title; can be false if nothing shall be translated
 * 
 * @return {String} a SQL-expression (case-when-statement) that resolves the KEYID into the title
 */
@@ -27,20 +28,23 @@ KeywordUtils.getResolvedTitleSqlPart = function(pContainerName, pDbFieldName, pL
 {
     var keywordData = KeywordData.getSimpleData(pContainerName, pLocale);
     var resSql = SqlUtils.getResolvingCaseWhen(keywordData, pDbFieldName, false);
+
     return SqlUtils.translateStatementWithQuotes(resSql);
 };
 
 /**
  * returns a specific name (translated) - this is normally the view-value - of a given keyword;
- * <br/>if the key could not be found an empty string "" is returned 
+ * <br/>if the key could not be found an empty string "" is returned*
  * @param {String} keywordContainer specifies the type of the keyword and therefore the list elements; e.g. "COUNTRY"
  * @param {String} key id value of the keyword where the view-value shall be searched
  * @param {String} [locale=locale depending on current client/servercontext] Language-value for translations
+ *
  * @return {String} representation of the translated name of the keyword-key
+ *
  * @example
  * var histMedium;
  * histMedium = vars.get("$field.MEDIUM");
- * if (histMedium){
+ * if (histMedium) {
  *     result.string(vars.get("$field.SUBJECT") + " (" + LegacyKeywordUtils.getViewValue("ACTIVITY.MEDIUM", histMedium) + ")");
  * }
  */
@@ -48,11 +52,10 @@ KeywordUtils.getViewValue = function(keywordContainer, key, locale)
 {
     if (!key)
         return "";
-    
+
     var data = KeywordData.getKeyIdMap(keywordContainer, locale);
-    if (data[key] == undefined)
-        return "";
-    return data[key];
+
+    return data[key] == undefined ? "" : data[key];
 };
 
 /**
@@ -68,12 +71,10 @@ KeywordUtils.getAttributeRelationsByKey = function(pKeyId, pContainerName)
 {
     if (!pKeyId)
         return "";
-    
+
     var data = KeywordData.getKeywordAttributeRelations(pContainerName);
-    if (data[pKeyId] == undefined)
-        return {};
-    else
-        return data[pKeyId];
+
+    return data[pKeyId] == undefined ? {} : data[pKeyId];
 };
 
 /**
@@ -90,10 +91,12 @@ KeywordUtils.getAttributeRelationsByKey = function(pKeyId, pContainerName)
 KeywordUtils.getAttributeRelation = function(pKeyId, pContainerName, pAttrName, pDefault)
 {
     var attributes = KeywordUtils.getAttributeRelationsByKey(pKeyId, pContainerName);
+
     if (attributes && attributes[pAttrName] != null)
     {
         return attributes[pAttrName];
     }
+
     return pDefault !== undefined ? pDefault : null;
 };
 
@@ -105,16 +108,76 @@ KeywordUtils.getAttributeRelation = function(pKeyId, pContainerName, pAttrName,
 KeywordUtils.getContainerNames = function()
 {
     //do not cache this list since
-    // a) the list can easly change when a new container is created
+    // a) the list can easily change when a new container is created
     // b) where this is called it's not relevant in terms of performance
-    //!SqlBuilder
-    var list = db.array(db.COLUMN, "select distinct AB_KEYWORD_ENTRY.CONTAINER from AB_KEYWORD_ENTRY order by AB_KEYWORD_ENTRY.CONTAINER asc");
-    return list;
+    return db.array(db.COLUMN, "select AB_KEYWORD_CATEGORY.NAME from AB_KEYWORD_CATEGORY order by AB_KEYWORD_CATEGORY.NAME asc");
+};
+
+/**
+ * returns the category name (former "keyword container") of a KeywordCategory by the given UUID or an empty string if it does not exist
+ *
+ * @param {String} pCategoryId UUID of the KeywordCategory
+ *
+ * @return {String} category name as string
+ */
+KeywordUtils.getCategoryNameById = function(pCategoryId)
+{
+    let categoryName = "";
+
+    if(pCategoryId) {
+        let resultValue = newSelect("AB_KEYWORD_CATEGORY.NAME")
+                            .from("AB_KEYWORD_CATEGORY")
+                            .where("AB_KEYWORD_CATEGORY.AB_KEYWORD_CATEGORYID", pCategoryId)
+                            .cell();
+
+        if(resultValue) 
+            categoryName = resultValue;
+    }
+
+    return categoryName;
+};
+
+
+/**
+ * returns the  UUID of a KeywordCategory by the category name (fromer keyword container) or an empty string "" if it does not exist
+ *
+ * @param {String} pName name of the Keyword category (former "keyword container")
+ *
+ * @return {String} category UUID as string
+ */
+KeywordUtils.getCategoryIdByName = function(pName)
+{
+    var res = "";
+
+    if(pName) 
+    {
+        var nameFilter =  {
+                "type":"group",
+                "operator":"AND",
+                "childs":[{
+                    "type":"row",
+                    "name":"NAME",
+                    "operator":"EQUAL",
+                    "value":pName,
+                    "key":pName,
+                    "contenttype":"TEXT"
+                }]
+            };
+        var entityConfig = entities.createConfigForLoadingRows()
+            .entity("KeywordCategory_entity")
+            .fields(["#UID"])
+            .filter(JSON.stringify(nameFilter));
+        var entityRow = entities.getRows(entityConfig);
+        if (entityRow.length > 0)
+            res = entityRow[0]["#UID"];
+    }
+
+    return res;
 };
 
 /**
 * provides a translated list of keyword-entry-titles in the system filtered by a containerName;
-* usefull for lists where the key is the name which is then a editable displayValue
+* useful for lists where the key is the name which is then a editable displayValue
 * 
 * @param {String} pContainerName name of the keyword container for filtering
 * @param {String} [pLocale=locale depending on current client/servercontext] Language-value for translations
@@ -124,19 +187,20 @@ KeywordUtils.getContainerNames = function()
 KeywordUtils.getEntryNamesByContainer = function(pContainerName, pLocale)
 {
     var data = KeywordData.getSimpleData(pContainerName, pLocale);
-    data = data.map(function (v){
+    data = data.map(function(v) {
         return v[1];
     });
+
     return data;
 };
 
 
 /**
 * provides a translated list of keyword-entry-titles and its ids in the system filtered by a containerName;
-* usefull for lists where the key is the name which is then a editable displayValue
+* useful for lists where the key is the name which is then a editable displayValue
 * 
 * @param {String} pContainerName name of the keyword container for filtering
-* * @param {String} [pLocale=locale depending on current client/servercontext] Language-value for translations
+* @param {String} [pLocale=locale depending on current client/servercontext] Language-value for translations
 * 
 * @return {String[]} 2D-Array in the form of [[id1, translatedTitle1], [idN, translatedTitleN]]
 */
@@ -145,14 +209,16 @@ KeywordUtils.getEntryNamesAndIdsByContainer = function(pContainerName, pLocale)
     //TODO: this can be propably removed when the "Salesproject_entity.REASONS.dropDownProcess.js" is replaced by a consumer
     var list = newSelect("AB_KEYWORD_ENTRY.KEYID, AB_KEYWORD_ENTRY.TITLE")
                     .from("AB_KEYWORD_ENTRY")
-                    .where("AB_KEYWORD_ENTRY.CONTAINER", pContainerName)
+                    .join("AB_KEYWORD_CATEGORY", "AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID = AB_KEYWORD_CATEGORY.AB_KEYWORD_CATEGORYID")
+                    .where("AB_KEYWORD_CATEGORY.NAME", pContainerName)
                     .orderBy("AB_KEYWORD_ENTRY.SORTING asc, AB_KEYWORD_ENTRY.TITLE asc")
                     .table();
-                    
-    list = list.map(function (elem){
+
+    list = list.map(function(elem) {
         elem[1] = pLocale ? translate.text(elem[1], pLocale) : translate.text(elem[1]);
         return elem;
     });
+
     return list;
 };
 
@@ -168,27 +234,29 @@ KeywordUtils.getEntryNamesAndIdsByContainer = function(pContainerName, pLocale)
 KeywordUtils.exists = function(pKeyId, pContainerName)
 {
     //a check if a keyword exists should always be on the origin data and not the cache, so do not cache here
-    return parseInt(
-        newSelect("count(*)")
-            .from("AB_KEYWORD_ENTRY")
-            .where("AB_KEYWORD_ENTRY.KEYID", pKeyId)
-            .and("AB_KEYWORD_ENTRY.CONTAINER", pContainerName)
-            .cell(true, "0")
-    ) > 0;
+    var countValue = newSelect("count(*)")
+                    .from("AB_KEYWORD_ENTRY")
+                    .join("AB_KEYWORD_CATEGORY", "AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID = AB_KEYWORD_CATEGORY.AB_KEYWORD_CATEGORYID")
+                    .where("AB_KEYWORD_ENTRY.KEYID", pKeyId)
+                    .and("AB_KEYWORD_CATEGORY.NAME", pContainerName)
+                    .cell(true, "0")
+;
+
+    return parseInt(countValue) > 0;
 };
 
 /**
  * Get the first keyword Keyid from a container
  * 
  * @param {String} pContainerName name of the keyword container that shall be resolved
- * @param {String} [pLocale=current client language] specifies the locale for translating the title; can be false if nothing shalle be translated
+ * @param {String} [pLocale=current client language] specifies the locale for translating the title; can be false if nothing shall be translated
  * 
  * @return {String} the keyid or ""
  */
 KeywordUtils.getFirst = function(pContainerName, pLocale)
 {
     var keywordData = KeywordData.getSimpleData(pContainerName, pLocale);
-    
+
     return (keywordData && keywordData.length > 0 ? keywordData[0][0] : "");
 };
 
@@ -197,7 +265,8 @@ KeywordUtils.getFirst = function(pContainerName, pLocale)
  * 
  * @param {String} pContainerName specifies the type of the keyword and therefore the list elements;
  *                                  e.g. "COUNTRY"; use an entry of the $KeywordRegistry here
- * @return translated name, if it exists in the switch case
+ *
+ * @return {String} translated name, if it exists in the switch case
  */
 KeywordUtils.getTranslatedContainer = function(pContainerName)
 {
@@ -207,19 +276,18 @@ KeywordUtils.getTranslatedContainer = function(pContainerName)
             return translate.text("Phase");
         case "SalesprojectState":
             return translate.text("State");
-            break;
         default:
-            return "Please add " + pContainerName + " to the switch case in Salesproject_lib";
+            return "Please add '" + pContainerName + "' to the switch case in Salesproject_lib";
     }
 
 }
 
 /**
- * object that provides featrues for a single keyword attribute; initalizes itself on creation with a specific keyword-attribute
+ * object that provides features for a single keyword attribute; initializes itself on creation with a specific keyword-attribute
  * 
  * @param {String} pContainerName specifies the type of the keyword and therefore the list elements;
  *                                  e.g. "COUNTRY"; use an entry of the $KeywordRegistry here
- * @param {String} pAttributeName the name of the keyword attribute that shall be initalized
+ * @param {String} pAttributeName the name of the keyword attribute that shall be initialized
  * @param {String} [pDefault=undefined] the default value -> Does not throw an error, if default value exists.
  * 
  * @class
@@ -232,11 +300,12 @@ function KeywordAttribute(pContainerName, pAttributeName, pDefault)
 
     var keywordAttrData = newSelect("AB_KEYWORD_ATTRIBUTE.AB_KEYWORD_ATTRIBUTEID, AB_KEYWORD_ATTRIBUTE.KIND")
                             .from("AB_KEYWORD_ATTRIBUTE")
-                            .where("AB_KEYWORD_ATTRIBUTE.CONTAINER", pContainerName)
-                            .and("AB_KEYWORD_ATTRIBUTE.NAME", pAttributeName)
+                            .join("AB_KEYWORD_CATEGORY", "AB_KEYWORD_ATTRIBUTE.AB_KEYWORD_CATEGORY_ID = AB_KEYWORD_CATEGORY.AB_KEYWORD_CATEGORYID")
+                            .where("AB_KEYWORD_ATTRIBUTE.NAME", pAttributeName)
+                            .and("AB_KEYWORD_CATEGORY.NAME", pContainerName)
                             .arrayRow();
-    
-    if (keywordAttrData.length > 0) 
+
+    if (keywordAttrData.length > 0)
     {
         this.id = keywordAttrData[0];
         this.type = keywordAttrData[1];
@@ -259,22 +328,23 @@ function KeywordAttribute(pContainerName, pAttributeName, pDefault)
  */
 KeywordAttribute.prototype.getValue = function(pKeyId)
 {
-    if (this.exists()) 
+    if (this.exists())
     {
         var attrValue = newSelect(this.dbField)
                         .from("AB_KEYWORD_ENTRY")
                         .join("AB_KEYWORD_ATTRIBUTERELATION", "AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID = AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ENTRY_ID")
-                        .where("AB_KEYWORD_ENTRY.CONTAINER", this.container)
+                        .join("AB_KEYWORD_CATEGORY", "AB_KEYWORD_ENTRY.AB_KEYWORD_CATEGORY_ID = AB_KEYWORD_CATEGORY.AB_KEYWORD_CATEGORYID")
+                        .where("AB_KEYWORD_ENTRY.KEYID", pKeyId)
                         .and("AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ATTRIBUTE_ID", this.id)
-                        .and("AB_KEYWORD_ENTRY.KEYID", pKeyId)
+                        .and("AB_KEYWORD_CATEGORY.NAME", this.container)
                         .cell();
 
         if (attrValue)
             return attrValue;
-        
+
         if (this.defaultValue)
             return this.defaultValue;
-        
+
         throw new Error(translate.withArguments("no keyword attribute \"%0\" found in keyword \"%1\" from container \"%2\"", [this.attribute, pKeyId, this.container]));
     }
     else if (this.defaultValue == undefined)
@@ -286,21 +356,21 @@ KeywordAttribute.prototype.getValue = function(pKeyId)
 /**
  * get a SqlBuilder object for this keyword attribute. You can easily add additional conditions to it.
  * 
- * @return {SqlBuilder} a SqlBuilder which contains a select for the entry-id's, joins to entry and attribute 
- *                      and conditions for the container and the attribute-name.
+ * @return {SqlBuilder} a SqlBuilder which contains a select for the entry-id's, joins to entry and attribute and conditions for the container and the attribute-name.
  */
-KeywordAttribute.prototype.getSqlBuilderSelect = function() 
+KeywordAttribute.prototype.getSqlBuilderSelect = function()
 {
     return newSelect("AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ENTRY_ID")
-                    .from("AB_KEYWORD_ATTRIBUTERELATION")
-                    .join("AB_KEYWORD_ENTRY", "AB_KEYWORD_ENTRYID = AB_KEYWORD_ENTRY_ID", "attrEntry")
-                    .join("AB_KEYWORD_ATTRIBUTE", "AB_KEYWORD_ATTRIBUTEID = AB_KEYWORD_ATTRIBUTE_ID")
-                    .where(["AB_KEYWORD_ENTRY", "CONTAINER", "attrEntry"], this.container)
-                    .and("AB_KEYWORD_ATTRIBUTE.NAME", this.attribute)
+            .from("AB_KEYWORD_ATTRIBUTERELATION")
+            .join("AB_KEYWORD_ATTRIBUTE", "AB_KEYWORD_ATTRIBUTE.AB_KEYWORD_ATTRIBUTEID = AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ATTRIBUTE_ID")
+            .join("AB_KEYWORD_CATEGORY", "AB_KEYWORD_CATEGORY.AB_KEYWORD_CATEGORYID = AB_KEYWORD_ATTRIBUTE.AB_KEYWORD_CATEGORY_ID")
+            .where("AB_KEYWORD_CATEGORY.NAME", this.container)
+            .and("AB_KEYWORD_ATTRIBUTE.NAME", this.attribute)
 }
 
 /**
  * check if the Container can have the attribute.
+ *
  * @return {Boolean} true if it exists, false if not
  */
 KeywordAttribute.prototype.exists = function()
@@ -308,18 +378,19 @@ KeywordAttribute.prototype.exists = function()
     return this.id != undefined && this.type != undefined && this.dbField != undefined;
 }
 
+
 /**
- * provides methods for interactions with the sepcial-keywords "LANGUAGE"
+ * provides methods for interactions with the special-keywords "LANGUAGE"
  * 
  * @class
  */
-function LanguageKeywordUtils(){}
+function LanguageKeywordUtils() {}
 
 /**
-* resolves Languagecode into the latin name
+* resolves LanguageCode into the latin name
 * 
 * @param {String} pDbFieldName name fo the database field where the ISO3-value is stored
-* @param {String} [pLocale=current client language] specifies the locale for translating the title; can be false if nothing shalle be translated
+* @param {String} [pLocale=current client language] specifies the locale for translating the title; can be false if nothing shall be translated
 * 
 * @return {String} a SQL-expression (case-when-statement)
 */
@@ -343,19 +414,20 @@ LanguageKeywordUtils.getViewValue = function(key, locale)
 {
     if (!key)
         return "";
-    
+
     var languageMap = LanguageData.getIso3Map(locale);
     var languageInfo = languageMap[key];
+
     if (languageInfo == undefined)
         return "";
+
     var title = languageInfo.name;
-    if (title == undefined)
-        return "";
-    return title;
+
+    return title == undefined ? "" : title;
 };
 
 /**
- * deterines on server- and clientside the matching iso2-code to a iso3 by generating a map and then returning the matched result; 
+ * determines on server- and clientside the matching iso2-code to a iso3 by generating a map and then returning the matched result;
  * on clientside the map is cached
  * 
  * @param {String} key id value (iso3) of the language where the value shall be searched
@@ -368,13 +440,15 @@ LanguageKeywordUtils.Iso2FromIso3 = function(key, pAlias)
 {
     if (!key)
         return "";
+
     //maybe this should be retrieved by a simple select on the serverside since LanguageData-methods are only cached on the client side
     var languageMap = LanguageData.getIso3Map(null, pAlias);
     var languageInfo = languageMap[key];
+
     if (languageInfo == undefined)
         return "";
+
     var res = languageInfo.iso2;
-    if (res == undefined)
-        return "";
-    return res;
+
+    return res == undefined ? "" : res;
 };
\ No newline at end of file
diff --git a/process/Keyword_test/Keyword_test.aod b/process/Keyword_test/Keyword_test.aod
index e654f56663b71ec5ed3e6241aa1be9bd76dc1d87..fa9513b2863452c919eb7342a1f1fd5b0d3cfd27 100644
--- a/process/Keyword_test/Keyword_test.aod
+++ b/process/Keyword_test/Keyword_test.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Keyword_test</name>
   <title>[TEST] Keyword_lib</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/Keyword_test/process.js b/process/Keyword_test/process.js
index d1b1d910e9dfd985b8c089830f410b21f0151c25..dca6647a0cfd8add4855f4727934ce8c2e8baaac 100644
--- a/process/Keyword_test/process.js
+++ b/process/Keyword_test/process.js
@@ -1,143 +1,140 @@
+import("Sql_lib");
 import("system.result");
 import("system.translate");
 import("system.vars");
 import("Keyword_lib");
 import("UnitTest_lib");
 
-//this test will not work currently 
-//TODO: renable and fix the tests
-
-//var getContainerNames = new TestSuite("KeywordUtils.getContainerNames", [
-//    new Test("should return an alphabetically ascending ordered list of all keyword containers",
-//        function(pTester) {
-//            var actualValue = KeywordUtils.getContainerNames();
-//
-//            pTester.expectThat(actualValue).isArray().assert();
-//            pTester.expectThat(actualValue).hasMinLength(1).assert();
-//            pTester.expectThat(actualValue).elementAt(0).equals("ActivityCategory").assert();
-//            pTester.expectThat(actualValue).elementAt(-1).equals("YesNo").assert();
-//        }
-//    )
-//]);
-//
-//
-//var getCategoryNameById = new TestSuite("KeywordUtils.getCategoryNameById", [
-//    new Test("should return existing keyword category name for correct uuid",
-//        function(pTester) {
-//            var actualValue = KeywordUtils.getCategoryNameById("a55654b1-6a19-4d0c-b08d-cfbc12b5f7b0");
-//
-//            pTester.expectThat(actualValue).equals("MemberRole").assert();
-//        }
-//    ),
-//
-//    new Test("should return non-existing keyword category name for wrong uuid",
-//        function(pTester) {
-//            var actualValue = KeywordUtils.getCategoryNameById("a55654b1-6a19-4d0c-b08d-cfbc12b5f7b1");
-//
-//            pTester.expectThat(actualValue).equals("<unknown>").assert();
-//        }
-//    ),
-//
-//    new Test("should return non-existing keyword category name for missing uuid",
-//        function(pTester) {
-//            var actualValue = KeywordUtils.getCategoryNameById();
-//
-//            pTester.expectThat(actualValue).equals("<unknown>").assert();
-//        }
-//    ),
-//]);
-//
-//
-//var getCategoryIdByName = new TestSuite("KeywordUtils.getCategoryIdByName", [
-//    new Test("should return existing keyword uuid for correct category name",
-//        function(pTester) {
-//            var actualValue = KeywordUtils.getCategoryIdByName("MemberRole");
-//
-//            pTester.expectThat(actualValue).equals("a55654b1-6a19-4d0c-b08d-cfbc12b5f7b0").assert();
-//        }
-//    ),
-//
-//    new Test("should throw exception for wrong keyword category name",
-//        function(pTester) {
-//            var exception = new Error(translate.withArguments("no keyword category \"%0\" found", ["AddressTypes"]));
-//            pTester.expectThat(function() {
-//                KeywordUtils.getCategoryIdByName("AddressTypes");
-//            }).throwsException(exception).assert();
-//        }
-//    ),
-//
-//    new Test("should throw exception for missing keyword category name",
-//        function(pTester) {
-//            var exception = new Error(translate.withArguments("no keyword category \"%0\" found", [""]));
-//            pTester.expectThat(function() {
-//                KeywordUtils.getCategoryIdByName();
-//            }).throwsException(exception).assert();
-//        }
-//    ),
-//]);
-//
-//
-//var getEntryNamesAndIdsByContainer = new TestSuite("KeywordUtils.getEntryNamesAndIdsByContainer", [
-//    new Test("should return an array of all keywords and their ID's for given container",
-//        function(pTester) {
-//            var actualValue = KeywordUtils.getEntryNamesAndIdsByContainer("ActivityDirection");
-//
-//            pTester.expectThat(actualValue).isArray().assert();
-//            pTester.expectThat(actualValue).hasMinLength(1, {name: "array"}).assert();
-//            pTester.expectThat(actualValue).elementAt(0).isArray().assert();
-//            pTester.expectThat(actualValue).elementAt(0).hasLength(2).assert();
-//        }
-//    ),
-//
-//    new Test("should return an empty array for non-existent container",
-//        function(pTester) {
-//            var actualValue = KeywordUtils.getEntryNamesAndIdsByContainer("Asdf");
-//
-//            pTester.expectThat(actualValue).isArray().assert();
-//            pTester.expectThat(actualValue).hasLength(0, {name: "array"}).assert();
-//        }
-//    ),
-//]);
-//
-//
-//var exists = new TestSuite("KeywordUtils.exists", [
-//    new Test("should return a boolean indicating that a known keyword in a known container exists",
-//        function(pTester) {
-//            var actualValue = KeywordUtils.exists("VISIT", "ActivityCategory");
-//
-//            pTester.expectThat(actualValue).isBoolean().assert();
-//            pTester.expectThat(actualValue).equals(true, "known keyword exists in known container").assert();
-//        }
-//    ),
-//
-//    new Test("should return a boolean indicating that an unknown keyword in a known container does not exist",
-//        function(pTester) {
-//            var actualValue = KeywordUtils.exists("ASDF", "ActivityCategory");
-//
-//            pTester.expectThat(actualValue).isBoolean().assert();
-//            pTester.expectThat(actualValue).equals(false, "unknown keyword does not exist in known container").assert();
-//        }
-//    ),
-//
-//    new Test("should return a boolean indicating that a known keyword in an unknown container does not exist",
-//        function(pTester) {
-//            var actualValue = KeywordUtils.exists("VISIT", "Asdf");
-//
-//            pTester.expectThat(actualValue).isBoolean().assert();
-//            pTester.expectThat(actualValue).equals(false, "known keyword does not exist in unknown container").assert();
-//        }
-//    ),
-//]);
-//
-//
-//var tester = new Tester("Test Keyword_lib");
-//tester.initCoverage(KeywordUtils);
-//tester.test(getContainerNames);
-//tester.test(getCategoryNameById);
-//tester.test(getCategoryIdByName);
-//tester.test(getEntryNamesAndIdsByContainer);
-//tester.test(exists);
-//
-//tester.summary();
-//    
-//result.object(tester.getResults());
\ No newline at end of file
+var getContainerNames = new TestSuite("KeywordUtils.getContainerNames", [
+    new Test("should return an alphabetically ascending ordered list of all keyword containers",
+        function(pTester) {
+            var actualValue = KeywordUtils.getContainerNames();
+
+            pTester.expectThat(actualValue).isArray().assert();
+            pTester.expectThat(actualValue).hasMinLength(1).assert();
+            pTester.expectThat(actualValue).elementAt(0).equals("ADVISER_ROLE").assert();
+            pTester.expectThat(actualValue).elementAt(-1).equals("YesNo").assert();
+        }
+    )
+]);
+
+
+var getCategoryNameById = new TestSuite("KeywordUtils.getCategoryNameById", [
+    new Test("should return existing keyword category name for correct uuid",
+        function(pTester) {
+            var actualValue = KeywordUtils.getCategoryNameById(
+                newSelect("AB_KEYWORD_CATEGORY.AB_KEYWORD_CATEGORYID")
+                    .from("AB_KEYWORD_CATEGORY")
+                    .where("AB_KEYWORD_CATEGORY.NAME", "MemberRole")
+                    .cell()
+            );
+
+            pTester.expectThat(actualValue).equals("MemberRole").assert();
+        }
+    ),
+
+    new Test("should return non-existing keyword category name for wrong uuid",
+        function(pTester) {
+            var actualValue = KeywordUtils.getCategoryNameById("a55654b1-6a19-4d0c-b08d-cfbc12b5f7b1");
+
+            pTester.expectThat(actualValue).equals("").assert();
+        }
+    ),
+
+    new Test("should return non-existing keyword category name for missing uuid",
+        function(pTester) {
+            var actualValue = KeywordUtils.getCategoryNameById();
+
+            pTester.expectThat(actualValue).equals("").assert();
+        }
+    ),
+]);
+
+
+var getCategoryIdByName = new TestSuite("KeywordUtils.getCategoryIdByName", [
+    new Test("should return existing keyword uuid for correct category name",
+        function(pTester) {
+            var actualValue = KeywordUtils.getCategoryIdByName("MemberRole");
+            pTester.expectThat(actualValue).equals("b3765719-9d07-41c4-a813-18bc9056db1a").assert();
+        }
+        ),
+
+    new Test("should return empty string for wrong keyword category name",
+        function(pTester) {
+            var actualValue = KeywordUtils.getCategoryIdByName("XXXAddressTypesXXX");
+            pTester.expectThat(actualValue).equals("").assert();
+        }
+        ),
+
+    new Test("should return empty string when not passing a keyword category name",
+        function(pTester) {
+            var actualValue = KeywordUtils.getCategoryIdByName();
+            pTester.expectThat(actualValue).equals("").assert();
+        }
+        ),
+    ]);
+
+var getEntryNamesAndIdsByContainer = new TestSuite("KeywordUtils.getEntryNamesAndIdsByContainer", [
+    new Test("should return an array of all keywords and their ID's for given container",
+        function(pTester) {
+            var actualValue = KeywordUtils.getEntryNamesAndIdsByContainer("ActivityDirection");
+
+            pTester.expectThat(actualValue).isArray().assert();
+            pTester.expectThat(actualValue).hasMinLength(1, {name: "array"}).assert();
+            pTester.expectThat(actualValue).elementAt(0).isArray().assert();
+            pTester.expectThat(actualValue).elementAt(0).hasLength(2).assert();
+        }
+    ),
+
+    new Test("should return an empty array for non-existent container",
+        function(pTester) {
+            var actualValue = KeywordUtils.getEntryNamesAndIdsByContainer("Asdf");
+
+            pTester.expectThat(actualValue).isArray().assert();
+            pTester.expectThat(actualValue).hasLength(0, {name: "array"}).assert();
+        }
+    ),
+]);
+
+
+var exists = new TestSuite("KeywordUtils.exists", [
+    new Test("should return a boolean indicating that a known keyword in a known container exists",
+        function(pTester) {
+            var actualValue = KeywordUtils.exists("VISIT", "ActivityCategory");
+
+            pTester.expectThat(actualValue).isBoolean().assert();
+            pTester.expectThat(actualValue).equals(true, "known keyword exists in known container").assert();
+        }
+    ),
+
+    new Test("should return a boolean indicating that an unknown keyword in a known container does not exist",
+        function(pTester) {
+            var actualValue = KeywordUtils.exists("ASDF", "ActivityCategory");
+
+            pTester.expectThat(actualValue).isBoolean().assert();
+            pTester.expectThat(actualValue).equals(false, "unknown keyword does not exist in known container").assert();
+        }
+    ),
+
+    new Test("should return a boolean indicating that a known keyword in an unknown container does not exist",
+        function(pTester) {
+            var actualValue = KeywordUtils.exists("VISIT", "Asdf");
+
+            pTester.expectThat(actualValue).isBoolean().assert();
+            pTester.expectThat(actualValue).equals(false, "known keyword does not exist in unknown container").assert();
+        }
+    ),
+]);
+
+
+var tester = new Tester("Test Keyword_lib");
+tester.initCoverage(KeywordUtils);
+tester.test(getContainerNames);
+tester.test(getCategoryNameById);
+tester.test(getCategoryIdByName);
+tester.test(getEntryNamesAndIdsByContainer);
+tester.test(exists);
+
+tester.summary();
+
+result.object(tester.getResults());
diff --git a/process/KnowledgeManagement_lib/KnowledgeManagement_lib.aod b/process/KnowledgeManagement_lib/KnowledgeManagement_lib.aod
index 7119bdb3846ad9854af7575629a9c7a7c46b7d48..38b9d6a998f6bef55bf0a50b487a124f62e6de18 100644
--- a/process/KnowledgeManagement_lib/KnowledgeManagement_lib.aod
+++ b/process/KnowledgeManagement_lib/KnowledgeManagement_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>KnowledgeManagement_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/KnowledgeManagement_lib/process.js</process>
diff --git a/process/LeadQuickAcquisition_lib/LeadQuickAcquisition_lib.aod b/process/LeadQuickAcquisition_lib/LeadQuickAcquisition_lib.aod
index dd1aecc728e349ceced88023f48b3c214a33ca1b..2ac6bab47ac32ade4753eae8e051fe6d1e55b9f4 100644
--- a/process/LeadQuickAcquisition_lib/LeadQuickAcquisition_lib.aod
+++ b/process/LeadQuickAcquisition_lib/LeadQuickAcquisition_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>LeadQuickAcquisition_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/LeadQuickAcquisition_lib/process.js</process>
diff --git a/process/Leadimport_lib/Leadimport_lib.aod b/process/Leadimport_lib/Leadimport_lib.aod
index 2b0a6ccc76164c013c73ed247fdd212d3e8defb0..6426e09650258a2fbb87212c736d911eda3b40e4 100644
--- a/process/Leadimport_lib/Leadimport_lib.aod
+++ b/process/Leadimport_lib/Leadimport_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Leadimport_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Leadimport_lib/process.js</process>
diff --git a/process/Leadimport_lib/process.js b/process/Leadimport_lib/process.js
index de9d13b2c7bb525960c5503b3e20eb28d9f2190d..160ec05e7f053e8b13e1f67fac2e3942affafc9b 100644
--- a/process/Leadimport_lib/process.js
+++ b/process/Leadimport_lib/process.js
@@ -154,7 +154,7 @@ LeadImportUtils.loadImportFile = function(pBinId, pFieldSep, pFieldLimit, pRecor
 LeadImportUtils.importData = function(pDataFields, pDataTypes, pFieldDef, pFieldValues, pImportDefID, pAttrObject, pSource, pUser, pDate)
 {
     var LeadValues = LeadImportUtils.setValues(pDataFields["LEAD"], pFieldDef, pFieldValues); // set the Lead values
-    
+ 
     var orgid = "";
     var persid = ""; 
     var persContactId = ""; 
@@ -163,14 +163,15 @@ LeadImportUtils.importData = function(pDataFields, pDataTypes, pFieldDef, pField
     var orgObjID = "";  
     var orgsForDubCheck = "";
     var persForDubCheck = "";
-    var orgRet;
+    var orgAddressID = null;
+    var orgRet = [null, null, null, null];
     var persRet;
     
     //------create organisation
     if (LeadValues["NAME"].trim() != "")//only if Organame is filled
     {
         orgObjID = "Organisation";//for attribute
-        orgRet = LeadImportUtils.insertOrg(pDataFields, pDataTypes,  pFieldDef, pFieldValues, pUser, pDate);
+        [orgRet[0], orgRet[1], orgRet[2], orgRet[3], orgAddressID] = LeadImportUtils.insertOrg(pDataFields, pDataTypes,  pFieldDef, pFieldValues, pUser, pDate);
 
         orgid = orgRet[0];
         orgContactId = orgRet[1];
@@ -186,7 +187,7 @@ LeadImportUtils.importData = function(pDataFields, pDataTypes, pFieldDef, pField
     if (LeadValues["LASTNAME"].trim() != "")//only if lastname is filled
     {
         persObjID = "Person";//for attribute
-        persRet = LeadImportUtils.insertPers(pDataFields, pDataTypes,  pFieldDef, pFieldValues, orgid, LeadValues, pUser, pDate);
+        persRet = LeadImportUtils.insertPers(pDataFields, pDataTypes,  pFieldDef, pFieldValues, orgid, LeadValues, pUser, pDate, orgAddressID);
         
         persid = persRet[0];
         persContactId = persRet[1];
@@ -574,11 +575,11 @@ LeadImportUtils.insertOrg = function(pDataFields, pDataTypes,  pFieldDef, pField
             workflow.startProcessByKey("leadprocess", processVariables)
         }
         
-        return new Array(orgid, contactId ,entityFieldValues, true);
+        return new Array(orgid, contactId ,entityFieldValues, true, ContactValues["ADDRESS_ID"]);
     }
     //return the ids of the existing organisation so that people who work for the same organisation are assigned to them
     //               OrgId  ContactID 
-    return new Array(ids[0], ids[1] ,entityFieldValues, false);
+    return new Array(ids[0], ids[1] ,entityFieldValues, false, ids[2]);
 }
 
 /**
@@ -592,10 +593,11 @@ LeadImportUtils.insertOrg = function(pDataFields, pDataTypes,  pFieldDef, pField
  * @param {Object} pLeadValues the LeadValues
  * @param {String} pUser the importuser
  * @param {String} pDate the importdate
+ * @param {String} pOrgAddressID the Address id of the Organisation 
  *
  * @return {String []} (personId, contactId, duplicateMapping)
  */
-LeadImportUtils.insertPers = function(pDataFields, pDataTypes,  pFieldDef, pFieldValues, pOrgId, pLeadValues, pUser, pDate)
+LeadImportUtils.insertPers = function(pDataFields, pDataTypes,  pFieldDef, pFieldValues, pOrgId, pLeadValues, pUser, pDate, pOrgAddressID)
 {
     var isoLanguage = pLeadValues["ISOLANGUAGE"];
     
@@ -611,7 +613,6 @@ LeadImportUtils.insertPers = function(pDataFields, pDataTypes,  pFieldDef, pFiel
 
     ContactValues["STATUS"] = "CONTACTSTATACTIVE";//only insert active persons
     ContactValues["PERSON_ID"] = persid;
-    ContactValues["ADDRESS_ID"] = util.getNewUUID();
     ContactValues["DEPARTMENT"] = ContactInfoUtils.getContactDepartment(pLeadValues);
     ContactValues["CONTACTROLE"] = ContactInfoUtils.getContactRole(pLeadValues);
     ContactValues["CONTACTPOSITION"] = ContactInfoUtils.getContactPosition(pLeadValues);
@@ -624,14 +625,14 @@ LeadImportUtils.insertPers = function(pDataFields, pDataTypes,  pFieldDef, pFiel
     else
     {
         ContactValues["ORGANISATION_ID"] = pOrgId;
-        ContactValues["ADDRESS_ID"] = 0
+        ContactValues["ADDRESS_ID"] = pOrgAddressID
     }
         
     
     var contactId =  LeadImportUtils.insertTable(pDataFields, pDataTypes, ContactValues, "CONTACT", pUser, pDate);
     
     //Address
-    if (ContactValues["ADDRESS_ID"])
+    if (ContactValues["ADDRESS_ID"] && !ContactValues["ORGANISATION_ID"])
     {
         var AddrValues = LeadImportUtils.setValues(pDataFields["ADDRESS"], pFieldDef, pFieldValues);
         AddrValues["ADDRESSID"] = ContactValues["ADDRESS_ID"];
@@ -954,7 +955,7 @@ LeadImportUtils.scanLeadDups = function(pAllContactData)
 LeadImportUtils.checkOrgDup = function(pLeadValues)
 {
     //  search whether the organisation already exists        
-    var query = newSelect("ORGANISATIONID, CONTACTID")
+    var query = newSelect(["ORGANISATIONID, CONTACTID, ADDRESSID"])
                 .from("ORGANISATION")
                 .join("CONTACT", "ORGANISATIONID = CONTACT.ORGANISATION_ID")
                 .join("ADDRESS", "ADDRESSID = ADDRESS_ID");
diff --git a/process/Liquibase_lib/Liquibase_lib.aod b/process/Liquibase_lib/Liquibase_lib.aod
index 5fc68808e15f30333eeb59291fa318d56e028ac1..31fe997666b305a5ae1f926f766e79a14160fae0 100644
--- a/process/Liquibase_lib/Liquibase_lib.aod
+++ b/process/Liquibase_lib/Liquibase_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Liquibase_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Liquibase_lib/process.js</process>
diff --git a/process/Liquibase_lib/process.js b/process/Liquibase_lib/process.js
index e673139131bf77a542021c1aa60cf1a96aadd06a..dc12de6cc2530f6df82778c8644d4add36b1ad65 100644
--- a/process/Liquibase_lib/process.js
+++ b/process/Liquibase_lib/process.js
@@ -77,7 +77,7 @@ LiquiUtils.exportAllTablesAsLiquibaseFiles = function(pOutFolderPath, pAuthor, p
 */
 LiquiUtils.exportTableAsLiquibaseFiles = function(pPath, pTableName, pColumns, pCondition, pAuthor, pIncludeClearTableDirective, pAlias, pGenerateChangeSetIdFromArguments, pBlobCallbackFn, pFileName)
 {
-    var resXml = LiquiUtils._getDataXml(pAuthor, pPath, pTableName, pColumns, pCondition, pIncludeClearTableDirective, pAlias, pGenerateChangeSetIdFromArguments, pBlobCallbackFn);
+    var resXml = LiquiUtils.getDataXmlFromDB(pAuthor, pPath, pTableName, pColumns, pCondition, pIncludeClearTableDirective, pAlias, pGenerateChangeSetIdFromArguments, pBlobCallbackFn);
     if (resXml == "")
         return {exported: false};
     var fileName = pFileName || pTableName;
@@ -108,17 +108,44 @@ LiquiUtils.exportTableAsLiquibaseFiles = function(pPath, pTableName, pColumns, p
 *
 * @return {String} the liquibase-changest in xml-form
 */
-LiquiUtils._getDataXml = function(pAuthor, pLobPath, pTableName, pColumns, pCondition, pIncludeClearTableDirective, pAlias, pGenerateChangeSetIdFromArguments, pBlobCallbackFn) 
+LiquiUtils.getDataXmlFromDB = function(pAuthor, pLobPath, pTableName, pColumns, pCondition, pIncludeClearTableDirective, pAlias, pGenerateChangeSetIdFromArguments, pBlobCallbackFn)
 {
+    var alias = pAlias || db.getCurrentAlias();
+    var dbData = db.table("select " + columns.join(", ") + " from " + pTableName + " " + (pCondition ? "where " + pCondition : ""), alias);
+    return LiquiUtils.getDataXml(pAuthor, pLobPath, pTableName, pColumns, dbData, pIncludeClearTableDirective, pAlias, pGenerateChangeSetIdFromArguments, pBlobCallbackFn);
+}
+
+/**
+* generates from a table a xml-changeset for liquibase; determines the correct liquibase-xml-attribute by db-column-type;
+* if a value is empty it will not be added to the xml; will load the data at once (no paging);
+* if the data contains a long CLOB-value that value has to and will be stored on the server-filesystem;
+* if the data contains any BLOB-value that value has to and will be stored on the server-filesystem;
+*
+* @param {String} [pAuthor="autogenerated"] author that will be written into the changeset
+* @param {String} [pLobPath=not set] file-path where lob files and folders will be created; the folder must be on the server;
+*                                    if you've no lob-fields you don't have to specify somehing here
+* @param {String} pTableName name of the DB-table that will be exported; this is also the name of the file that is stored
+* @param {Array} [pColumns=all columns within the table] db-columns within the table that will be exported
+* @param {String} [pData=undefined] db-condition to limit the data that will be exported; if nothing given the whole content will be exported
+* @param {Boolean} [pIncludeClearTableDirective=false] if true, a delete element is added at the beginning of the changeset for the table
+* @param {String} [pAlias=current db-alias] alias where the data will be loaded from
+* @param {Boolean} [pGenerateChangeSetIdFromArguments=false] if true the id of the changeset will be generated by the passed arguments to this function
+* @param {function} [pBlobCallbackFn=undefined] function that returns the filename for a stored file (only for BLOB-databasetypes). <br/>
+*                                               if nothing is specified, the filename is generated automatically with a hash of the content <br/>
+*                                               The callback function retrieves all the arguments of the LiquiXTable.prototype.addBlobCol-function
+*
+* @return {String} the liquibase-changest in xml-form
+*/
+LiquiUtils.getDataXml = function(pAuthor, pLobPath, pTableName, pColumns, pData, pIncludeClearTableDirective, pAlias, pGenerateChangeSetIdFromArguments, pBlobCallbackFn) 
+{
+    if (!pData)
+        return "";
     var author = pAuthor || "autogenerated";
     var alias = pAlias || db.getCurrentAlias();
     //cannot be added within jdito code to the XML-object, so instead add it as string
     var XML_HEADER_LINE = LiquiXmlUtils.xmlHeaderLineStr();
     
     var columns = pColumns || db.getColumns(pTableName, alias);
-    var dbData = db.table("select " + columns.join(", ") + " from " + pTableName + " " + (pCondition ? "where " + pCondition : ""), alias);
-    if (dbData.length == 0)
-        return "";
     var colTypes = db.getColumnTypes(pTableName, columns, alias);//needed to determine the correct liquibase function
     //every type has its function that accepts a columnName- and a value-parameter
     //so let's dertermine once the corresponding funtion to its type for faster access 
@@ -157,7 +184,7 @@ LiquiUtils._getDataXml = function(pAuthor, pLobPath, pTableName, pColumns, pCond
     var changeLogXml = LiquiXmlUtils.databaseChangeLogWithChangeSet(author, changesetId);
     if (pIncludeClearTableDirective)
         changeLogXml.changeSet.appendChild(<delete tableName={pTableName}/>);
-    dbData.forEach(function(row)
+    pData.forEach(function(row)
     {
         var rowObj = {};
         for (let i = 0; i < columnLen; i++)
@@ -212,7 +239,7 @@ LiquiXmlUtils.databaseChangeLogWithChangeSet = function (pAuthor, pChangeSetId)
 LiquiXmlUtils.colValue = function (name, value, valueAttribute)
 {
     var DO_NOT_ADD_EMPTY_VALUES = true;//clob and blob will ignore this setting and always skip empty values
-    if (DO_NOT_ADD_EMPTY_VALUES && value == "")
+    if (DO_NOT_ADD_EMPTY_VALUES && value === "")
         return null;
     var x = <column {valueAttribute}={value}/>;
     x.@name = name;
diff --git a/process/Location_lib/Location_lib.aod b/process/Location_lib/Location_lib.aod
index 1a9a229f653f16af767f0c6193958ec831ea120c..812115767215451b35b717b2f7f88a8ff712ece7 100644
--- a/process/Location_lib/Location_lib.aod
+++ b/process/Location_lib/Location_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Location_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Location_lib/process.js</process>
diff --git a/process/Loghistory_lib/Loghistory_lib.aod b/process/Loghistory_lib/Loghistory_lib.aod
index 454f37cd2f2f3108e77c6eb547d95229067e1eca..bcbd876cc0fc2aa81d819bc2f8903ce6210b7eb2 100644
--- a/process/Loghistory_lib/Loghistory_lib.aod
+++ b/process/Loghistory_lib/Loghistory_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Loghistory_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Loghistory_lib/process.js</process>
diff --git a/process/Loghistory_lib/process.js b/process/Loghistory_lib/process.js
index c3cc279cd0ce02be2e2a65f83d13c5f9a7445c05..23b84d6651ee79d7a04a4b8670b5caddd1733bc4 100644
--- a/process/Loghistory_lib/process.js
+++ b/process/Loghistory_lib/process.js
@@ -17,6 +17,7 @@ import("Contact_lib");
 import("AddressEntity_lib");
 import("Util_lib");
 import("KeywordRegistry_basic");
+import("system.entities");
 
 /**
  * object for writing the LogHistory based on audit-changes
@@ -68,7 +69,51 @@ LogHistoryExecutor.TRANSLATION_LANGUAGE = function()
 */
 LogHistoryExecutor.prototype.execute = function ()
 {
-    var references = {};
+    
+    if (this.affectedTable == "AB_LOGHISTORY")//this would cause an endless logging-loop otherwise
+        throw new Error(translate.withArguments("the \"%0\" table is configured to get logged but this is the logging-stoarge itself and cannot be monitored", ["AB_LOGHISTORY"]));
+    
+    var idvalue = this.idValue;
+    var description;
+    var references;
+    var extra = [];
+    extra["COMMUNICATION"] = {
+        IDs: ["CONTACT_ID", "MEDIUM_ID"],
+        RefTable: "CONTACT",
+        Description: translate.text("Communication", this.translationLanguage)
+    };
+    extra["AB_ATTRIBUTERELATION"] = {
+        IDs: ["OBJECT_ROWID", "AB_ATTRIBUTE_ID"],
+        Description: translate.text("Attribute", this.translationLanguage)
+    };
+    
+    [description, idvalue, references] = this.generateLogHistory(idvalue, extra,references );
+    
+    if (description == null) {
+        return null;
+    }
+    else if (description.length > 0)
+    {
+        for (let index in references)
+        {
+            if (references[index].id != "")
+            {
+                this._addEntryForInsert(references[index].table.trim(), references[index].id, this.affectedTable.trim(), idvalue, description);
+                idvalue = ""; 
+            }
+        }
+        if (idvalue !=  "") 
+        {
+            this._addEntryForInsert(this.affectedTable.trim(), idvalue, "", "", description);
+        }
+    }
+    this._insertLoghistEntry();
+    return null;
+};
+
+LogHistoryExecutor.prototype.generateLogHistory = function (pIdvalue, pExtra) 
+{
+     var references = {};
     var columnStructure = {};
     var primaryKey = "";
     var somethingTolog = false;
@@ -94,28 +139,13 @@ LogHistoryExecutor.prototype.execute = function ()
     if (!somethingTolog)
         return null;
     
-    if (this.affectedTable == "AB_LOGHISTORY")//this would cause an endless logging-loop otherwise
-        throw new Error(translate.withArguments("the \"%0\" table is configured to get logged but this is the logging-stoarge itself and cannot be monitored", ["AB_LOGHISTORY"]));
-    
-    var idvalue = this.idValue;
     var description = [];
-    var extra = [];
-    extra["COMMUNICATION"] = {
-        IDs: ["CONTACT_ID", "MEDIUM_ID"],
-        RefTable: "CONTACT",
-        Description: translate.text("Communication", this.translationLanguage)
-    };
-    extra["AB_ATTRIBUTERELATION"] = {
-        IDs: ["OBJECT_ROWID", "AB_ATTRIBUTE_ID"],
-        Description: translate.text("Attribute", this.translationLanguage)
-    };
-    
     var oldvalues = {};
     var newvalues = {};
 
-    if (extra[this.affectedTable])
+    if (pExtra[this.affectedTable])
     {
-        var conf = extra[this.affectedTable];
+        var conf = pExtra[this.affectedTable];
 
         for(let i = 0; i < this.columns.length; i++ )
         {
@@ -125,7 +155,7 @@ LogHistoryExecutor.prototype.execute = function ()
         if (this.sqlAction == 'D') newvalues = oldvalues;
         if ((this.sqlAction == 'D' || this.sqlAction == 'I') && newvalues[conf.IDs[1]])
         {
-            idvalue = newvalues[conf.IDs[0]];
+            pIdvalue = newvalues[conf.IDs[0]];
             var data = this._getDataForExtras(newvalues[conf.IDs[1]], newvalues);
             if (data[1])
                 description.push(translate.withArguments("%0 \"%1\"", [conf.Description + " " + data[0] + ":", data[1]], this.translationLanguage));
@@ -134,8 +164,8 @@ LogHistoryExecutor.prototype.execute = function ()
         }
         if (this.sqlAction == 'U')
         {
-            var ids = newSelect(conf.IDs).from(this.affectedTable).where([this.affectedTable, this.affectedTable + "ID"], idvalue).arrayRow();
-            idvalue = ids[0];
+            var ids = newSelect(conf.IDs).from(this.affectedTable).where([this.affectedTable, this.affectedTable + "ID"], pIdvalue).arrayRow();
+            pIdvalue = ids[0];
             var oldid =  ids[1];
             if (oldvalues[conf.IDs[1]]) oldid =  oldvalues[conf.IDs[1]];
             var olddata = this._getDataForExtras(oldid, oldvalues);
@@ -162,7 +192,7 @@ LogHistoryExecutor.prototype.execute = function ()
         {
             var entrytypePosition = this.columns.indexOf("ENTRYTYPE");
             if (entrytypePosition > -1 && this.newValues[entrytypePosition] == calendars.VEVENT)
-                return null;
+                return [null, null, null];
         }
 
         for (let i = 0; i < this.columns.length; i++)
@@ -214,22 +244,9 @@ LogHistoryExecutor.prototype.execute = function ()
         if (this.sqlAction == 'I') description = translate.withArguments("%0 added.", [description.join(",\n")], this.translationLanguage);
         else if (this.sqlAction == 'U') description = translate.withArguments("%0 modified.", [description.join(",\n")], this.translationLanguage);
         else if (this.sqlAction == 'D') description = translate.withArguments("%0 deleted.", [description.join(",\n")], this.translationLanguage);
-        for (let index in references)
-        {
-            if (references[index].id != "")
-            {
-                this._addEntryForInsert(references[index].table.trim(), references[index].id, this.affectedTable.trim(), idvalue, description);
-                idvalue = ""; 
-            }
-        }
-        if (idvalue !=  "") 
-        {
-            this._addEntryForInsert(this.affectedTable.trim(), idvalue, "", "", description);
-        }
     }
-    this._insertLoghistEntry();
-    return null;
-};
+    return [description, pIdvalue, references];
+}
 
 /*
 * adds an entry that shall be inserted into the AB_LOGHIST-table
diff --git a/process/MSTeams_lib/MSTeams_lib.aod b/process/MSTeams_lib/MSTeams_lib.aod
index 466fb42fa29e0b9981cd93b2dfee6d5940e1c0d5..8572851b599c49dd3565445c8acb5f2a5e7bc7b9 100644
--- a/process/MSTeams_lib/MSTeams_lib.aod
+++ b/process/MSTeams_lib/MSTeams_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>MSTeams_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/MSTeams_lib/process.js</process>
diff --git a/process/MimeType_lib/MimeType_lib.aod b/process/MimeType_lib/MimeType_lib.aod
index 01ad226f611bd45cacf2aca4b7ad0649a439afea..dbc01a017d0133e40fe7301c12108f02e232ccf2 100644
--- a/process/MimeType_lib/MimeType_lib.aod
+++ b/process/MimeType_lib/MimeType_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>MimeType_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/MimeType_lib/process.js</process>
diff --git a/process/Money_lib/Money_lib.aod b/process/Money_lib/Money_lib.aod
index 9c27e1c6debbf49bc099056bddd3fe16f4243480..5232420c51a99d8a74ec92dfb5667b5f564993dc 100644
--- a/process/Money_lib/Money_lib.aod
+++ b/process/Money_lib/Money_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Money_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Money_lib/process.js</process>
diff --git a/process/Neon_lib/Neon_lib.aod b/process/Neon_lib/Neon_lib.aod
index 6c99555616cb23f3c63162b338d9d03a4fb86a04..0a51cffca155b7298f9f83a18d71bfca25884031 100644
--- a/process/Neon_lib/Neon_lib.aod
+++ b/process/Neon_lib/Neon_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Neon_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/Neon_lib/documentation.adoc</documentation>
diff --git a/process/Neon_lib/process.js b/process/Neon_lib/process.js
index 4d7d910d5d98598a85aec882756dd42d87cc0693..18402adc55753b73d0fe427c881e0b50e9333cfa 100644
--- a/process/Neon_lib/process.js
+++ b/process/Neon_lib/process.js
@@ -154,7 +154,7 @@ CopyModuleUtils.copyModule = function(pInputMapping)
         //root mapping
         var rootModule = Object.keys(pInputMapping)[0];
         var ModuleMapping = _ModuleMapping(rootModule, pInputMapping[rootModule]);
-        var ModuleData = _getModuleData(rootModule, pInputMapping[rootModule].condition);
+        var ModuleData = _getModuleData(rootModule, pInputMapping[rootModule].condition, pInputMapping[rootModule].order);
         ModulesMapping[rootModule] = ModuleMapping;
 
         for(var row in ModuleData)
@@ -171,15 +171,19 @@ CopyModuleUtils.copyModule = function(pInputMapping)
 
 
         //delivers stored data for module in Database with condition
-        function _getModuleData(pModule, pCondition)
+        function _getModuleData(pModule, pCondition, pOrder)
         {
             if(pModule == undefined)    return {};
 
             var ModuleColumnsStructure = AliasDefinitionStructure.tables[pModule].columns;
             var cols = Object.keys(ModuleColumnsStructure);
             var dataQuery = newSelect(cols).from(pModule);
+            
             if(pCondition != undefined)
-                dataQuery.where(pCondition)
+                dataQuery.where(pCondition);
+            
+            if(pOrder != undefined)
+                dataQuery.orderBy(pOrder);
 
             var dbData = dataQuery.table();
 
diff --git a/process/NewsSystem_lib/NewsSystem_lib.aod b/process/NewsSystem_lib/NewsSystem_lib.aod
index f4907ecd213576e621efc14f752d3cfcf07c539e..8c226c330e0ee283d37c6ea4421bc4e6a12d0b02 100644
--- a/process/NewsSystem_lib/NewsSystem_lib.aod
+++ b/process/NewsSystem_lib/NewsSystem_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>NewsSystem_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/NewsSystem_lib/process.js</process>
diff --git a/process/Notification_lib/Notification_lib.aod b/process/Notification_lib/Notification_lib.aod
index 41cd1071d9d966bb2f65b117d6604310ee061511..28beacbb0d89e042930c765435f9356d30159cd6 100644
--- a/process/Notification_lib/Notification_lib.aod
+++ b/process/Notification_lib/Notification_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Notification_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Notification_lib/process.js</process>
diff --git a/process/ObjectRelationTypeRegistry_basic/ObjectRelationTypeRegistry_basic.aod b/process/ObjectRelationTypeRegistry_basic/ObjectRelationTypeRegistry_basic.aod
index fe86c4d1f97ec9f9611d761f65c14d51c27e3f02..65ad5b0b0b220dad46352ae8b2c3e5abb8f2a7f7 100644
--- a/process/ObjectRelationTypeRegistry_basic/ObjectRelationTypeRegistry_basic.aod
+++ b/process/ObjectRelationTypeRegistry_basic/ObjectRelationTypeRegistry_basic.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>ObjectRelationTypeRegistry_basic</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/ObjectRelationTypeRegistry_basic/process.js</process>
diff --git a/process/ObjectRelation_lib/ObjectRelation_lib.aod b/process/ObjectRelation_lib/ObjectRelation_lib.aod
index e5a4d95eb356b4bf2900d50e7b7a62ed22355697..b48e1daede58b2cf8d4d1abee0a5bc749e4088a8 100644
--- a/process/ObjectRelation_lib/ObjectRelation_lib.aod
+++ b/process/ObjectRelation_lib/ObjectRelation_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>ObjectRelation_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/ObjectRelation_lib/process.js</process>
diff --git a/process/Observation_lib/Observation_lib.aod b/process/Observation_lib/Observation_lib.aod
new file mode 100644
index 0000000000000000000000000000000000000000..d7972e1705c899721f8c52dde5c238d3b90ba72c
--- /dev/null
+++ b/process/Observation_lib/Observation_lib.aod
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
+  <name>Observation_lib</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <process>%aditoprj%/process/Observation_lib/process.js</process>
+  <alias>Data_alias</alias>
+  <variants>
+    <element>LIBRARY</element>
+  </variants>
+</process>
diff --git a/process/Observation_lib/process.js b/process/Observation_lib/process.js
new file mode 100644
index 0000000000000000000000000000000000000000..1cbc373cb581ed7551da0ca9158505846641936f
--- /dev/null
+++ b/process/Observation_lib/process.js
@@ -0,0 +1,712 @@
+import("KeywordRegistry_basic");
+import("system.logging");
+import("system.text");
+import("system.project");
+import("system.vars");
+import("Employee_lib");
+import("system.workflow");
+import("system.translate");
+import("system.tools");
+import("Context_lib");
+import("system.entities");
+import("Sql_lib");
+import("Workflow_lib");
+import("system.notification");
+import("Dependency_lib");
+import("system.tools");
+import("system.datetime");
+import("system.db");
+import("system.favorite");
+
+function Observation(){}
+
+Observation.OBJECT_TYPE = function () {
+    return "OBJECT_TYPE_Dependency";
+}
+Observation.OBJECT_IDs = function () {
+    return "OBJECT_IDs_Dependency";
+}
+Observation.PRIO = function () {
+    return "PRIORITY";
+}
+Observation.CONTENTTITLE = function () {
+    return "OBJECT_CONTENTTITLE";
+}
+
+/**
+ * If the variables have not yet been parsed to an Object, they will now.
+ * 
+ * @param {Object} [pVariables] the Variables which were set in the Workflow_lib
+ * @param {String} [pVariable] the name of the variable to be formatted
+ * @return {Void}
+ */
+Observation.parseVariableIfNeed = function(pVariables,pVariable)
+{
+    if (pVariables[pVariable] && typeof pVariables[pVariable] !== 'object' && pVariables[pVariable] !== null)
+        pVariables[pVariable] = JSON.parse(pVariables[pVariable]);
+}
+
+/**
+ * Checks the observations for the specific changed data set and then forwards them to the Observation._notifiyUsers() function.
+ * 
+ * @param {Object} [pVariables] the Variables which were set in the Workflow_lib
+ * @param {String} [pObservationId] the id of the parent observation. This variable is required for the recursion.
+ * 
+ * @return {Void}
+ */
+Observation.checkObservation = function(pVariables, pObservationId)
+{
+    if (pVariables[WorkflowVariables.TRIGGER()])
+    {
+        Observation.parseVariableIfNeed(pVariables, WorkflowVariables.CHANGED_ROWS());
+        Observation.parseVariableIfNeed(pVariables, WorkflowVariables.CHANGED_ROWS_TYPES());
+        Observation.parseVariableIfNeed(pVariables, WorkflowVariables.ROWDATA());
+        Observation.parseVariableIfNeed(pVariables, WorkflowVariables.INITIAL_ROWDATA());
+        
+        var observers = {};
+        var observations = newSelect(["OBSERVATION.OBJECT_ID", "OBSERVATION.OBJECT_FILTER" ,"OBSERVATION.OBSERVER", "OBSERVATION.OBJECT_FIELD", "O.OBJECT_TYPE", "OBSERVATION.OBSERVATION_ID", "OBSERVATION.NOTIFICATION_PRIO"])
+        .from("OBSERVATION")
+        .leftJoin("OBSERVATION", "OBSERVATION.OBSERVATION_ID = O.OBSERVATIONID", "O")
+        .where(
+            newWhere("OBSERVATION.OBJECT_ID", pVariables[WorkflowVariables.TARGET_ID()])
+            .or("OBSERVATION.OBJECT_ID IS NULL"))
+        .and("OBSERVATION.OBJECT_TYPE", pVariables[WorkflowVariables.TARGET_CONTEXT()]);
+        
+        if (pObservationId)
+            observations.andIfSet("OBSERVATION.OBSERVATIONID", pObservationId)
+        else
+            observations.and("OBSERVATION." + pVariables[WorkflowVariables.TRIGGER()], "1");
+        
+        observations = observations.table();
+        
+        for (let i = 0; i < observations.length; i++)
+        {
+            var observation = observations[i];
+            var filterResult = 0;
+            
+            if (!observation[0] && observation[1] || pObservationId)
+            {
+                var config = entities.createConfigForLoadingRows()
+                .uids([pVariables[WorkflowVariables.TARGET_ID()]])
+                .entity(ContextUtils.getEntity(pVariables[WorkflowVariables.TARGET_CONTEXT()]))
+                .ignorePermissions(true);
+                
+                if (observation[1])
+                    config.filter(JSON.stringify(JSON.parse(observation[1]).filter));
+                
+                try 
+                {
+                    filterResult = entities.getRows(config.fields(["#CONTENTTITLE"]))[0]["#CONTENTTITLE"];
+                }
+                catch (e)
+                {
+                    logging.log(e);
+                    filterResult = null;
+                }
+            }
+            
+            if (pObservationId && ((observation[0] && !observation[1]) || filterResult))
+            {
+                return filterResult;
+            }
+            
+            if ((observation[0] && !observation[1]) || filterResult)
+            {
+                // exclude the user who made the change.
+                if (pVariables[WorkflowVariables.EVENT_USER()] !== observation[2]) 
+                {
+                    var observeFileds = {};
+                    text.decodeMS(observation[3]).forEach(function (observeFiled) {
+                        let field = text.decodeMS(observeFiled);
+                        let fieldNames = text.decodeMS(field[0]);
+                        let displayValueField = "#COLUMNEXP_____" + fieldNames[1] + ".displayValue";
+                    
+                        let observedField = pVariables[WorkflowVariables.ROWDATA()][displayValueField] ? displayValueField : null;
+                        observeFileds[fieldNames[0]] = [field[1], observedField];
+                    });
+                
+                    pVariables[WorkflowVariables.CHANGED_ROWS()].forEach(function (recordField) {
+                        if (observeFileds[recordField])
+                        {
+                            if (!observers[observation[2]])
+                                observers[observation[2]] = {};
+                        
+                            if (observeFileds[recordField][1])
+                                observers[observation[2]][observeFileds[recordField][1]] = observeFileds[recordField][0];
+                            else 
+                                observers[observation[2]][recordField] = observeFileds[recordField][0];
+                        }
+                        
+                    });
+                }
+            }
+            else if (pVariables[WorkflowVariables.TRIGGER()] == WorkflowSignalSender.EVENT_DELETE())
+            {
+                observers[observation[2]] = {};
+            }
+            if (observers[observation[2]])
+            {
+                observers[observation[2]][Observation.PRIO()] = observation[6];
+            
+                if (observation[4] && !pObservationId) 
+                {
+                    observers[observation[2]][Observation.OBJECT_TYPE()] = observation[4];
+                    observers[observation[2]][Observation.OBJECT_IDs()] = {};
+                
+                    var dependentIds = 
+                    Dependency.mapping()[ContextUtils.getEntity(pVariables[WorkflowVariables.TARGET_CONTEXT()])][ContextUtils.getEntity(observation[4])]
+                    .getUIDsfn(pVariables[WorkflowVariables.ROWDATA()], pVariables[WorkflowVariables.INITIAL_ROWDATA()]);
+                
+                    var dependentCheckVars = {}
+                    dependentCheckVars[WorkflowVariables.TRIGGER()] = pVariables[WorkflowVariables.TRIGGER()];
+                    dependentCheckVars[WorkflowVariables.CHANGED_ROWS()] = {};
+                    dependentCheckVars[WorkflowVariables.ROWDATA()] = {};
+                    dependentCheckVars[WorkflowVariables.TARGET_CONTEXT()] = observation[4];
+                    dependentCheckVars[WorkflowVariables.EVENT_USER()] = observation[2];
+                    for (let index = 0; index < dependentIds.length; index++)
+                    {
+                        dependentCheckVars[WorkflowVariables.TARGET_ID()] = dependentIds[index];
+                        var contentTitle = Observation.checkObservation(dependentCheckVars, observation[5]);
+                        if (contentTitle){ // Check Dependent
+                            observers[observation[2]][Observation.OBJECT_IDs()][dependentIds[index]] = contentTitle;
+                        }
+                    }
+                }
+            }
+            
+        }
+        
+        if (pObservationId)
+        {
+            return null;
+        }
+        
+        Observation._notifiyUsers(pVariables, observers);
+    }
+    return null;
+}
+
+/**
+ * Handle the Notifications for the given Observers and 
+ * assembles the individual notification for each user
+ * 
+ * @param {Object} [pVariables] the Variables which were set in the Workflow_lib
+ * @param {Object} [pObservers] the Observers with the observed fields
+ */
+Observation._notifiyUsers = function (pVariables, pObservers)
+{
+    var observers = Object.keys(pObservers)
+    if (pObservers && observers.length != 0 && pVariables)
+    {
+        var user = tools.getUserByAttribute(tools.NAME, pVariables[WorkflowVariables.EVENT_USER()], tools.PROFILE_DEFAULT);
+        var notificationCaption;
+        var filteredVariables = {
+            notificationCaption : translate.text(notificationCaption), 
+            notificationDescription : (user.params.firstname + " " + user.params.lastname).trim() + " " + translate.text("has") + " ",
+            notificationUser : JSON.stringify(observers),
+            notificationType : "ObservationNotification"
+        }
+        
+        observers.forEach(function (pObserver) {
+            // If there is a OBJECT_TYPE, this is a dependency observation
+            if (pObservers[pObserver][Observation.OBJECT_TYPE()])
+            {
+                filteredVariables.notificationCaption = pVariables[WorkflowVariables.TRIGGER()];
+                var context = pObservers[pObserver][Observation.OBJECT_TYPE()];
+                
+                for (var targetId in pObservers[pObserver][Observation.OBJECT_IDs()])
+                {
+                    filteredVariables.notificationSubcategory = pObservers[pObserver][Observation.OBJECT_IDs()][targetId]
+                    Observation._notification(
+                        pVariables, 
+                        filteredVariables, 
+                        pObservers,
+                        pObserver, 
+                        context,
+                        targetId);
+                }
+            }
+            else 
+            {
+                filteredVariables.notificationCaption = pVariables[WorkflowVariables.TRIGGER()];
+                Observation._notification(
+                    pVariables, 
+                    filteredVariables, 
+                    pObservers,
+                    pObserver, 
+                    pVariables[WorkflowVariables.TARGET_CONTEXT()], 
+                    pVariables[WorkflowVariables.TARGET_ID()]);
+                
+            }
+            
+        });
+    }
+}
+
+/**
+ * Handle the Notifications for the given Observers and 
+ * assembles the individual notification for each user.
+ * 
+ * @param {Object} [pVariables] the Variables which were set in the Workflow_lib.
+ * @param {Object} [pFilteredVariables] Only for the notification used variables.
+ * @param {Object} [pObservers] the Observers with the observed fields.
+ * @param {Object} [pObserver] the current observer in the loop.
+ * @param {Object} [pContext] the context from which the change is based.
+ * @param {Object} [pTargetId] the id of the record from which the change is based.
+ */
+Observation._notification = function (pVariables, pFilteredVariables, pObservers, pObserver, pContext, pTargetId) 
+{
+    pFilteredVariables.notificationPriority =  pObservers[pObserver][Observation.PRIO()];
+    pFilteredVariables.notificationCaption = pVariables[WorkflowVariables.CONTENTTITLE()];
+    pFilteredVariables.notificationAffectedUID = pTargetId;
+    pFilteredVariables.notificationAffectedContext = pContext;
+    var isfirstField = true;
+    switch (pVariables[WorkflowVariables.TRIGGER()])
+    {
+        case WorkflowSignalSender.EVENT_INSERT():
+            pFilteredVariables.notificationDescription += translate.text("inserted") + ":";
+            break;
+        case WorkflowSignalSender.EVENT_UPDATE():
+            pFilteredVariables.notificationDescription += translate.text("changed") + ":";
+            let subcategories = []
+            if (pFilteredVariables.notificationSubcategory)
+                subcategories.push(pFilteredVariables.notificationSubcategory);
+                
+            notification.getUserNotifications(pObserver, [notification.STATE_SEEN, notification.STATE_UNSEEN], subcategories).forEach(function (pNotification) {
+                if (pNotification.caption == pFilteredVariables.notificationCaption && 
+                    pNotification.linkinfo == text.encodeMS([pContext, pTargetId]) &&
+                    pNotification.type == pFilteredVariables.notificationType && 
+                    !pNotification.description.endsWith("....there is more data available"))
+                    {
+                    isfirstField = false;
+                    pFilteredVariables.notificationContentId = pNotification.contentid;
+                    pFilteredVariables.notificationDescription = pNotification.description;
+                }
+            });
+            break;
+        case WorkflowSignalSender.EVENT_DELETE():
+            pFilteredVariables.notificationDescription += translate.text(pVariables[WorkflowVariables.TARGET_CONTEXT()]) + " \"" + pVariables[WorkflowVariables.CONTENTTITLE()] + "\" ";
+            pFilteredVariables.notificationDescription += translate.text("deleted") + ".";
+            Observation._createNotification(pFilteredVariables);
+            return;
+    }
+    
+    pFilteredVariables.notificationUser = pObserver;
+    var isNewDescription = false;
+    if (pFilteredVariables != {}){
+        var rowData = pVariables[WorkflowVariables.ROWDATA()];
+        Object.keys(pObservers[pObserver]).forEach(function (field) {
+            if (pVariables[WorkflowVariables.CHANGED_ROWS()].indexOf(field) > -1) 
+            {
+                var formatedFieldValue = Observation.formatFieldValue(rowData,pVariables[WorkflowVariables.CHANGED_ROWS_TYPES()], field);
+                pFilteredVariables.notificationDescription += " " +(isfirstField ? "" : translate.text("and"))+ " " + 
+                pObservers[pObserver][field] + " " +  translate.text("was set to") + " \"" + formatedFieldValue + "\"";
+            
+                if (pFilteredVariables.notificationDescription.length > 980) 
+                {
+                    pFilteredVariables.notificationDescription.slice(0, 980)
+                    pFilteredVariables.notificationDescription += "....there is more data available";
+                    return;
+                }
+                
+                isfirstField = false;
+                isNewDescription = true;
+            }
+        });
+    }
+    
+    if (isNewDescription) 
+    {
+        Observation._createNotification(pFilteredVariables);
+    }
+        
+}
+
+/**
+ * Create The Notifiction for the users.
+ * 
+ * @param {Object} [variables] the variables that are needed to notify users.
+ * @return {Void}
+ */
+Observation._createNotification = function (variables)
+{
+    variables.notificationDescription = variables.notificationDescription.toString();
+    if (false) // WorkflowUtils.engineIsEnabled()
+    {
+        checkObservation.signalEventReceived("Observation", variables);
+    }
+    else 
+    {
+        var config = notification.createConfig()
+        .notificationType(variables.notificationType || "WorkflowNotification")
+        .caption(variables.notificationCaption || "")
+        .description(variables.notificationDescription || "");
+
+        try {
+            config.addUsersWithIds(JSON.parse(variables.notificationUser));
+        } catch (e) { // Throw an exeption when the variable can't parse to an JSON-Object. 
+            config.addUsersWithIds([variables.notificationUser || variables.USER_ID])
+        }
+
+        var prio;
+        switch (variables.notificationPriority){
+            case $KeywordRegistry.notificationPriority$none:
+                prio = notification.PRIO_NONE
+                break;
+            case $KeywordRegistry.notificationPriority$low():
+                prio = notification.PRIO_LOW
+                break;
+            case $KeywordRegistry.notificationPriority$hight():
+                prio = notification.PRIO_HIGH
+                break;
+            case $KeywordRegistry.notificationPriority$max():
+                prio = notification.PRIO_MAX
+                break;
+            case $KeywordRegistry.notificationPriority$normal():
+            default:
+                prio = notification.PRIO_NORMAL
+                break;
+        }
+        config.forcedPriority(prio);
+
+        if (variables.notificationIcon)
+            config.imageInfo(variables.notificationIcon);
+        if (variables.notificationSubcategory)
+            config.notificationSubCategory(variables.notificationSubcategory);
+
+        if (variables.notificationAffectedContext && variables.notificationAffectedUID)
+            config.linkInfo(text.encodeMS([variables.notificationAffectedContext, variables.notificationAffectedUID]));
+
+        if (variables.notificationContentId)
+            config.contentId(variables.notificationContentId).remindAgainOnNewContent(true);
+    
+        notification.addNotificationWith(config);
+    }
+    
+}
+
+/**
+ * Formatting of the vale of the field from the pRowData using the associated type.
+ * 
+ * @param {Object} [pRowData] the RowData which were changed.
+ * @param {Object} [pTypes] the types of the columns of the changed rows.
+ * @param {String} [pField] the field whose value is to be formatted.
+ * @return {String} the formatted value
+ */
+Observation.formatFieldValue = function (pRowData, pTypes, pField)
+{
+    switch (pTypes[pField]) 
+    {
+        case "DATE":
+            return datetime.toDate(pRowData[pField], translate.text("dd.MM.yyyy"), "Europe/Berlin");
+        default :
+            return pRowData[pField]
+    }
+}
+
+/**
+ * This function is called in every observation action and
+ * saves the data required for the observation, if this is not already available.
+ * 
+ * @return {Void}
+ */
+Observation.insertAction = function ()
+{
+    let contextID = ContextUtils.getCurrentContextId();
+    let observer = EmployeeUtils.getCurrentUserId();
+    let rowCount = newSelect("COUNT(*)")
+    .from("OBSERVATION")
+    .where("OBSERVATION.OBJECT_TYPE", contextID)
+    .and("OBSERVATION.OBSERVER", observer);
+
+    var fields = {
+        "OBJECT_TYPE" : contextID,
+        "OBSERVER" : observer,
+        "OBJECT_FIELD" : Observation.getAllFieldValue(contextID).toString()
+    }
+
+    let createRowConfig = entities.createConfigForAddingRows()
+    .entity("Observation_entity");
+    
+    let selectedUIDs = vars.get("$sys.selection");
+
+    if (selectedUIDs.length){
+        selectedUIDs.forEach(function (uid)
+        {
+            let tempRowCount = rowCount.copy()
+            .and("OBSERVATION.OBJECT_ID", uid);
+        
+            if (tempRowCount.cell() == 0)
+            {
+                fields.OBJECT_ID = uid;
+                entities.createRow(createRowConfig.fieldValues(fields));
+            }
+        
+        });
+    } else {
+        let filter = Observation.getContextFilter(contextID,vars.get("$sys.filter").filter);
+        
+        rowCount.and("OBSERVATION.OBJECT_FILTER", filter, SqlBuilder.LIKE());
+        if (rowCount.cell() == 0)
+        {
+            fields.OBJECT_FILTER = filter;
+            entities.createRow(createRowConfig.fieldValues(fields));
+        }
+    }
+}
+
+/**
+ * This function is called in every cancel observation action and
+ * deletes the data required for the observation, if this is not already available.
+ * 
+ * @return {Void}
+ */
+Observation.cancelAction = function () 
+{
+    let contextID = ContextUtils.getCurrentContextId();
+    let observer = EmployeeUtils.getCurrentUserId();
+    let selectedUIDs = vars.get("$sys.selection");
+    let cond = newWhere("OBSERVATION.OBJECT_TYPE", contextID)
+    .and("OBSERVATION.OBSERVER", observer);
+
+    if (selectedUIDs.length){
+        cond.and("OBSERVATION.OBJECT_ID", selectedUIDs, SqlBuilder.IN())
+        .deleteData(true, "OBSERVATION");
+    } else {
+        let filter = Observation.getContextFilter(contextID,vars.get("$sys.filter").filter);
+        
+        cond.and("OBSERVATION.OBJECT_FILTER", filter, SqlBuilder.LIKE())
+        .deleteData(true, "OBSERVATION");
+    }
+}
+
+
+/**
+ * Returns the title of the cancel observation action depending on the count of UIDs
+ * 
+ * @param {Array} [pUIDs] selectedUids
+ * @return {String} Title
+ */
+Observation.cancelActionTitle = function (pUIDs) 
+{
+    let UIDcount = pUIDs.length;
+
+    if (UIDcount == 1)
+    {
+        return translate.text("Cancel ID Observation");
+    }
+    else if (UIDcount > 1)
+    {
+        return translate.text("Cancel IDs Observations") ;
+    }
+    else
+    {
+        return translate.text("Cancel Filter Observation");
+    }
+}
+
+/**
+ * Returns the title of the observation action depending on the count of UIDs
+ * 
+ * @param {Array} [pUIDs] selectedUids
+ * @return {String} Title
+ */
+Observation.observeActionTitle = function (pUIDs) 
+{
+    let UIDcount = pUIDs.length;
+
+    if (UIDcount == 1)
+    {
+        return translate.text("Observe ID");
+    }
+    else if (UIDcount > 1)
+    {
+        return translate.text("Observe IDs");
+    }
+    else
+    {
+        return translate.text("Observe Filter");
+    }
+
+}
+
+/**
+ * Calculates the number of observation records of the current context and logged-in users.
+ * 
+ * @return {Int} Count of records
+ */
+Observation.countObservations = function () 
+{
+    let contextID = ContextUtils.getCurrentContextId();
+    let observer = EmployeeUtils.getCurrentUserId();
+    let selectedUIDs = vars.get("$sys.selection").filter(function (el) {
+        return el;
+    });
+    let rowCount =  newSelect("COUNT(*)")
+    .from("OBSERVATION")
+    .where("OBSERVATION.OBJECT_TYPE", contextID)
+    .and("OBSERVATION.OBSERVER", observer);
+    
+    if (selectedUIDs && selectedUIDs.length){
+        rowCount.and("OBSERVATION.OBJECT_ID", selectedUIDs, SqlBuilder.IN());
+    } else {
+        rowCount.and("OBSERVATION.OBJECT_FILTER", Observation.getContextFilter(contextID,vars.get("$sys.filter").filter), SqlBuilder.LIKE());
+    } 
+    return parseInt(rowCount.cell());
+}
+
+/**
+ * Returns an object with the entity and filter. 
+ * If filter or entity are not set, they are set to an empty filter and the current entity.
+ * 
+ * @param {String} [pEntity]
+ * @param {Object} [pFilter]
+ * @return {Object} Object in Format: {"filter": {"type":"group","operator":"AND","childs":[...]}, "entity": "Entity_entity"}
+ */
+Observation.getEntityFilter = function (pEntity, pFilter) 
+{
+    if (!pEntity)
+        pEntity = ContextUtils.getEntity(ContextUtils.getCurrentContextId());
+    if (!pFilter)
+        pFilter = {
+            "type":"group",
+            "operator":"AND",
+            "childs":[]
+        }
+    
+    return JSON.stringify({
+        "filter":pFilter,
+        "entity":pEntity
+    });
+}
+
+/**
+ * Returns an object with the entity and filter. 
+ * If filter or context are not set, they are set to an empty filter and the context of the current entity.
+ * 
+ * @param {String} [pContext]
+ * @param {Object} [pFilter]
+ * @return {Object} Object in Format: {"filter": {"type":"group","operator":"AND","childs":[...]}, "entity": "Entity_entity"}
+ */
+Observation.getContextFilter = function (pContext, pFilter)
+{
+    return Observation.getEntityFilter(ContextUtils.getEntity(pContext), pFilter);
+}
+
+/**
+ * Gives all possible fields which can be observed. 
+ * 
+ * @param {String} [pType] the Type or the context name
+ * @return {Array} this contains all the possible fields.
+ */
+Observation.getAllPosibleFields = function (pType) 
+{
+    if (pType) 
+    {
+        let entity = ContextUtils.getEntity(pType);
+        var resultFields = [];
+        var fields = project.getEntityStructure(entity).fields;
+        var rcm = project.getRecordContainerModel(entity);
+        var recordFieldMappings = {};
+        var tables = {};
+        var excludeFields = ["DATE_NEW", "DATE_EDIT", "USER_NEW", "USER_EDIT"];
+        
+        if (Dependency.excludedFields()[entity])
+            excludeFields = excludeFields.concat(Dependency.excludedFields()[entity]);
+        
+        if (rcm.type == project.RECORDCONTAINERTYPE_DB){
+            for (var index in rcm.linkInformation)
+            {
+                var table = rcm.linkInformation[index];
+                if (!table.readonly)
+                {
+                    tables[table.tableName] = true;
+                    excludeFields.push(table.primaryKey);
+                }
+            }
+        }
+        
+        for (var index1 in rcm.recordFieldMappings)
+        {
+            var mapping = rcm.recordFieldMappings[index1];
+            let isInFormat = true;
+            let mappingID = "";
+            if (typeof mapping == "object")
+            {
+                if (mapping.recordfield)
+                {
+                    mappingID = mapping.recordfield;
+                    if (!tables[mapping.recordfield.split(".")[0]] || excludeFields.indexOf(mapping.recordfield.split(".")[1]) >-1)
+                        isInFormat = false;
+                }
+                else if (rcm.type == project.RECORDCONTAINERTYPE_DB)
+                    isInFormat = false;
+                
+                if (mapping.name)
+                {
+                    mappingID = !mappingID ? mapping.name : mappingID
+                    if (!mapping.name.split(".")[1] == "value" || excludeFields.indexOf(mapping.name.split(".")[0]) >-1)
+                        isInFormat = false;
+                
+                    if (isInFormat)
+                        recordFieldMappings[mapping.name.split(".")[0]] = text.encodeMS([mappingID, mapping.name.split(".")[0]]);
+                }
+            }
+        }
+        
+        for (var field in fields)
+        {
+            if (fields[field].fieldType == project.ENTITYFIELDTYPE_FIELD && recordFieldMappings[fields[field].name])
+            {
+                if (!fields[field].usePermissions || (fields[field].usePermissions && tools.hasPermission(tools.PERMISSION_VIEW, entity, field)))
+                    let title = fields[field].title ? fields[field].title : fields[field].name;
+                resultFields.push([text.encodeMS([recordFieldMappings[fields[field].name], title]), title ]);
+            }
+                
+        }
+        return resultFields;
+    }
+    return [];
+}
+
+/**
+ * Gives all possible fields to monitor for the context as values ​​for the database. 
+ * This is the default value of the fields when a new observation is created.
+ * 
+ * @param {String} [pType] the Type or the context name
+ * @return {Stirng} The string is a multi-string from the array of the fields. Retuns null if the context cannot be observed.
+ */
+Observation.getAllFieldValue = function (pType)
+{
+    var values = Observation.getAllPosibleFields(pType);
+    if (values && values != [])
+    {
+        return text.encodeMS(values.map(function (value) {
+            return value[0];
+        }));
+    }
+    return null;
+}
+
+/**
+ * Get all dependencies of a certain type
+ * 
+ * @param {String} [pType] the Type or the context name
+ * @return {Array} the possible dependencies
+ */
+Observation.getAllDependencyValue = function (pType)
+{
+    let contexts = []
+    let dependencies = Dependency.getReverseDependency(ContextUtils.getEntity(pType), {
+        "isObservable" : true
+    });
+    for (let i = 0; i < dependencies.length; i++) 
+    {
+        let context = ContextUtils.getContextId(dependencies[i]);
+        if (context)
+        {
+            contexts.push(context);
+        }
+    }
+    return contexts;
+}
diff --git a/process/OfferOrder_lib/OfferOrder_lib.aod b/process/OfferOrder_lib/OfferOrder_lib.aod
index 0df9d9a624d014c6b4583935732acbdea2b2b99e..353cb8ca017b884d62b217dec8fb764c6d08b6f5 100644
--- a/process/OfferOrder_lib/OfferOrder_lib.aod
+++ b/process/OfferOrder_lib/OfferOrder_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>OfferOrder_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/OfferOrder_lib/process.js</process>
diff --git a/process/Offer_lib/Offer_lib.aod b/process/Offer_lib/Offer_lib.aod
index 41247d62423c487255eb9fe234106031fd8a1b6f..d1f79adeeb65335a2c2652db92555530fb3e2403 100644
--- a/process/Offer_lib/Offer_lib.aod
+++ b/process/Offer_lib/Offer_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Offer_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Offer_lib/process.js</process>
diff --git a/process/Offer_lib/process.js b/process/Offer_lib/process.js
index 687423b989882845fbcb5062c4ee38a9e03ad478..19ceed323e4bba20dc3ed7c185078fec5e35afc0 100644
--- a/process/Offer_lib/process.js
+++ b/process/Offer_lib/process.js
@@ -270,11 +270,6 @@ OfferUtils.buildOfferReport = function (pOfferID, pExclDiscountGroupcodes)
         ];
     });
     
-    // TODO: get Images implementieren
-    var imgData = ["meineFirma | Wilhelm-Str. 2  |  DE 80807 München",
-    "base64:iVBORw0KGgoAAAANSUhEUgAAAM4AAABRCAYAAACaL5lSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDA4QzAyM0IwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDA4QzAyM0MwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMDhDMDIzOTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMDhDMDIzQTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhF3nYoAAAlvSURBVHja7J1fjBXVHcfPJQJRoe1urQYJRBYlMUJisqwvGNjY3WgEUtN2CeWBIGb3Ju6LElsW+gA8AHe1UfuwTcBASB/Q7CZNG0tjw2pWU15kNzEBJFnLqmvQBNEbU0pbX+jve+9vlrOzM/fOnTtz78zs95P8cv/MOTPnzJzvnN/5zZ+Tu3XrliGE1MYC7gJCKBxCKBxCKBxCKBxCKBxCCIVDCIVDCIVDCIVDyDzmDq8/d+1/PY5trRB7VGyt2BqxVWLLxe4RW6JpbohdF7sq9qnYpNhFsY/Evoi6QKeOvMAWQKITToQ8LPaEWKfYBrFlVdL/SO1BsU3W/1+JnRMbE3tP7DIPHcmicLrFfia2VWxlBOuD4H6pNi32tthfxM7yEJIsCAc9yw6x7WJLYyozhNgvtlPsLbHT2hMRkjrhYPzynNhu/d4IIMxesafEToqdiGMcREhcwnlKe4AtTaoDhHpArF1sSOwdHlYSN/WGo/Niv2+iaGy2aFnyPKwkqT1OTmyf2pIE1Qdh7t+J/VjsqBgfbyWJEU5OXaMDCa0ThHxYbJHYIYqHJMVV25dg0dgc0LIS0nTh5FPWGPdxzEOaLRxEz/YkbEwTxG3bo2UnpOHCQci3XwffaWONln0FDzdptHBwcXNLiuu5RetASMOE02nKdwSknd1aF0IaIpwdGXFzVmhdCIldOLjLeXuG6rtd60RIrMLBowFLM1TfpVonQmITDh5C25rBOm/VuhESi3Dw5ObKDNZ5pdaNkFiE05nhenfy0JM4hIMI1IYM13uD4QVREoNw8DaaZRmu9zKtIyGh8HusYG3UG/pJ6w/NKy89O/P70j+nzSsn/zTz+5EHV5oHlt9rep58fFa+sQ8vmEtXps35C5/4+12PrTMP3H9v6dMGeZAX6/Cp49tsAiRK4TTsnrS771xsdj3TZTrWPeQrCtiljmnzhzfPmH//538zyyC0/l9tLonSC6wT1tmxzgxJ3q+//a4pdSTzx1Vb1SjR/Hr3L3xFY4MeCWnt3wf7d/iKxgYC+83un7vTruLhJ1H3OMsbsfHnpbdAo0Yv8rcPzpsz74/P6i3QU0AgtgA2b1pvPhQXDHltd+7MB+MzPQrSIa/tukE0mzeuN6f+/O6cOuZyubrr0tvb12bK73nDZ/cbbxwfzWKD2Tnw2l75KIiN/rHwYibvwggyobSfcO6Ju3COINDYX5axjsuNKo1PYLue+eksATy9scN0rF1T6q0AxkkYL9l8dvWaOXX1XfPZl9dK+W23zxJY1HXsUtEANK7RBDf+s1reakyJOFa7/utz6ivr6ZLlmTxBhHXVGvawmsfYYxYjf//HrHENBIMexVnmFs2cwIJr+WO33cKo64gGNKXfBzPcZo479Z2voqnU4zQENGz0DpWAaJAOLpoNxGa7dn6cv/jJbHfv/vtiqYu4ZhDN6pQd/5rdLUk/mPETQ109zo2GCOf8hUDpPr4yHTqvu8exAgQ3DCERC+d63BtGT1Ktt3G45uHK+VybmYPbDbSEc52Hn0QtnKtxb7jSuKZaWojOHvfUkt8JKjSijmT+jXEwqdOmeHuc/4bOe7OOvK46etLb24eoWI8pv4/aHhSP+IWZNRx9RX/mJd3xasvlP2wDUSo7wlUaQ8jyYrUKhClnvewceO2Yltkr4maHq0vLEXkz5SijU8duJ6jgXpf8btPfe937Q5YXNU+LpilYaSY0zUiVsrdrObD+FmsR8o1Uyx+kx5mcByeNSa/GLzauB6XdtRgH66w21rqR9aDRDJu5YWGsf1yF5pe3YeWsU2QoW6DQt6a94hLNzP6AYFRY4y7RGN0Hwypav/UXrLwtrsU91fIHFc7FeSCci67G2KIHGQehqL1CDmbK0TLnbFSQtH11brtPbdDaRqu5Hept82hAzShnveDEgN5ltZzNc2pePaFTJ5S9Fel89sewfs876zPlR+GdywAFFZcX7VYPtj5E/kCuGubcxPSBWb1D+iuto01BDwp2YreGl0vo923SEIf17LTXOqhhaHe7c+qa5VUYJRdOvg94uGxRlhMXMStdJu+u41oNyjgRMNzdoq7SNucPdc3y2pC7rBPJNtulQvkkTd7cnp2vx3iHyydUcFP2nzXkD9TjYIKmcxnubc4ZaxIqbazO2XnQbowunB0KV6m9ju2PusdALn/bfZZsVjnrZTCCtPZ+8hyHqLinLMEajzQDbtG48hcr5Q/a44AxU55zM4uMefi4Xg13FtJQJ6Qh2o16IqxwAi5ri7mcsd5vVsNguyhp/co44fPdzZTur7aQxZ0wwW5DqioczO6Mq4dZfO/Aex5uhcO3VqOr5l6EpVih0RcrbL/R5ayHqSj2RwURhdqeFZWzx5s1i62ScDAlOh706s+gcC4npHHVSoshoRDB9Fjjw7qpdq8apkTH7M5LM75fnTNeUc74rSxn5kTjXFtyGLDHUAhE1HDHeCDhYGWYEr13nginBQPwIBcfWc5UsdcKLmyLYoVB3h192mR/GvRRnwE4y5n+3qbdcnErBSvaoxbOmNjJLO9cRKGsgWehylX7rmZdlU9LOdM2RtS7ClqiFg44IfbXtO6thQvvuBkgWd7auePuRqcN8Zi5faGsWaSlnIlAw9yOS1vQIIEjmDb7frkogwMOcNWGTPnNMGl7O8zknYsX/UA+76p2NpcGB/93WBslzugFn+QTzapMWsqZMPLW/sI9ae7l3ToOChxxq2UO0HfEXjXpegAMZX118aKFNwM2SvjAqzXqUvRohPi/tdkv4khLORPU64yoONxjHNyVsD7MbUU5rzd67Nr/eqU8+8UOp2Sf/VbsiN/CU0deYKsioVgQIs9RsUMpqNshLSshkRPmZR23tFF+L7bPJG/69hsqmKNaVkISIRxHPHCBvhHbk6CAwaSOw47x0JIkCscBDfRzU76frdnTuSNcPqRBDEISLRyjDfWSKUdzMCV6o+edQagcF2hPmOzf4UAyJByn8R405bsMMCU6ZneO+8bQf5nyfXSnzdznawhJhXAcxtQQL8fszpioNurnefCMEB53wJ3bvDpOMiEch7NqGHNgotpOU54+MOw7DPCOgHMqSjyEdpmHjmRROA6X1YZ07IPpAzETGqJwmJ8GU21g1gAnpI1QMt6wiZcF4r1niJLhbTQfcfxCkkQuyFwghJDZLOAuIITCIYTCIYTCIYTCIYTCIYRQOIRQOIRQOIRQOIRQOISQWvi/AAMA9UczDEaG0p8AAAAASUVORK5CYII="]
-    // getMyASYS_ICONSdata();
-    
     // TODO: implementieren wenn Attribute möglich sind
     var adma = ""; //adma = Aussendienstmitarbeiter
     /*var adm = getAddressData( [GetAttributeKey( "Aussendienst", "1", orgrelid, pUser )[0]],
@@ -303,7 +298,7 @@ OfferUtils.buildOfferReport = function (pOfferID, pExclDiscountGroupcodes)
         "VAT" : translate.text("VAT", language),
         "Sum" : translate.text("Sum", language),
         "Pos" : translate.text("Pos.", language),
-        "myAddr" : imgData[0],
+        "myAddr" : project.getPreferenceValue("custom.myCompany.addr"),
         "OfferPaymentTerm" : KeywordUtils.getViewValue($KeywordRegistry.paymentTerm(), offerData[3]),
         "OfferDeliveryTerm" : KeywordUtils.getViewValue($KeywordRegistry.deliveryTerm(), offerData[4]),
         "responsible" : adma,
@@ -319,7 +314,7 @@ OfferUtils.buildOfferReport = function (pOfferID, pExclDiscountGroupcodes)
     
     
 
-    offerReport.addImage("myLogo", imgData[1]);
+    offerReport.addImage("myLogo", project.getPreferenceValue("custom.myCompany.logo"));
 
     offerReport.addSubReportData("subdata", ReportData.begin(["VAT","WERT"]).add(sums));
     offerReport.addReportParams(params);
@@ -407,7 +402,8 @@ OfferUtils.copyOfferItems = function (pSourceOfferId, pTargetOfferId, pDiscount)
             condition: newWhere("OFFERITEM.OFFER_ID", pSourceOfferId),
             ValueMapping: {
                 "OFFER_ID": pTargetOfferId
-            }
+            },
+            order: ["ASSIGNEDTO", "ITEMSORT"]
         }
     };
     CopyModuleUtils.copyModule(inputMapping);
diff --git a/process/Order_lib/Order_lib.aod b/process/Order_lib/Order_lib.aod
index 3e225851b15f65e8d77e15182de060a04aee4878..5f4e4c315b81d7aad9b321298486d9d4591e66ac 100644
--- a/process/Order_lib/Order_lib.aod
+++ b/process/Order_lib/Order_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Order_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Order_lib/process.js</process>
diff --git a/process/Order_lib/process.js b/process/Order_lib/process.js
index 74651b5982c20b9ef43762491a29380d7dea1902..b2ea2f15dfa4c5bbd8712f1d48c1c84c8bd26f2d 100644
--- a/process/Order_lib/process.js
+++ b/process/Order_lib/process.js
@@ -342,12 +342,7 @@ OrderUtils.buildOrderReport = function (pOrderID)
             text.formatDouble(item[12], "#,##0.00", true) 
         ];
     });
-    
-    // TODO: get Images implementieren
-    var imgData = ["meineFirma | Wilhelm-Str. 2  |  DE 80807 München",
-                   "base64:iVBORw0KGgoAAAANSUhEUgAAAM4AAABRCAYAAACaL5lSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDA4QzAyM0IwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDA4QzAyM0MwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMDhDMDIzOTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMDhDMDIzQTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhF3nYoAAAlvSURBVHja7J1fjBXVHcfPJQJRoe1urQYJRBYlMUJisqwvGNjY3WgEUtN2CeWBIGb3Ju6LElsW+gA8AHe1UfuwTcBASB/Q7CZNG0tjw2pWU15kNzEBJFnLqmvQBNEbU0pbX+jve+9vlrOzM/fOnTtz78zs95P8cv/MOTPnzJzvnN/5zZ+Tu3XrliGE1MYC7gJCKBxCKBxCKBxCKBxCKBxCCIVDCIVDCIVDCIVDyDzmDq8/d+1/PY5trRB7VGyt2BqxVWLLxe4RW6JpbohdF7sq9qnYpNhFsY/Evoi6QKeOvMAWQKITToQ8LPaEWKfYBrFlVdL/SO1BsU3W/1+JnRMbE3tP7DIPHcmicLrFfia2VWxlBOuD4H6pNi32tthfxM7yEJIsCAc9yw6x7WJLYyozhNgvtlPsLbHT2hMRkjrhYPzynNhu/d4IIMxesafEToqdiGMcREhcwnlKe4AtTaoDhHpArF1sSOwdHlYSN/WGo/Niv2+iaGy2aFnyPKwkqT1OTmyf2pIE1Qdh7t+J/VjsqBgfbyWJEU5OXaMDCa0ThHxYbJHYIYqHJMVV25dg0dgc0LIS0nTh5FPWGPdxzEOaLRxEz/YkbEwTxG3bo2UnpOHCQci3XwffaWONln0FDzdptHBwcXNLiuu5RetASMOE02nKdwSknd1aF0IaIpwdGXFzVmhdCIldOLjLeXuG6rtd60RIrMLBowFLM1TfpVonQmITDh5C25rBOm/VuhESi3Dw5ObKDNZ5pdaNkFiE05nhenfy0JM4hIMI1IYM13uD4QVREoNw8DaaZRmu9zKtIyGh8HusYG3UG/pJ6w/NKy89O/P70j+nzSsn/zTz+5EHV5oHlt9rep58fFa+sQ8vmEtXps35C5/4+12PrTMP3H9v6dMGeZAX6/Cp49tsAiRK4TTsnrS771xsdj3TZTrWPeQrCtiljmnzhzfPmH//538zyyC0/l9tLonSC6wT1tmxzgxJ3q+//a4pdSTzx1Vb1SjR/Hr3L3xFY4MeCWnt3wf7d/iKxgYC+83un7vTruLhJ1H3OMsbsfHnpbdAo0Yv8rcPzpsz74/P6i3QU0AgtgA2b1pvPhQXDHltd+7MB+MzPQrSIa/tukE0mzeuN6f+/O6cOuZyubrr0tvb12bK73nDZ/cbbxwfzWKD2Tnw2l75KIiN/rHwYibvwggyobSfcO6Ju3COINDYX5axjsuNKo1PYLue+eksATy9scN0rF1T6q0AxkkYL9l8dvWaOXX1XfPZl9dK+W23zxJY1HXsUtEANK7RBDf+s1reakyJOFa7/utz6ivr6ZLlmTxBhHXVGvawmsfYYxYjf//HrHENBIMexVnmFs2cwIJr+WO33cKo64gGNKXfBzPcZo479Z2voqnU4zQENGz0DpWAaJAOLpoNxGa7dn6cv/jJbHfv/vtiqYu4ZhDN6pQd/5rdLUk/mPETQ109zo2GCOf8hUDpPr4yHTqvu8exAgQ3DCERC+d63BtGT1Ktt3G45uHK+VybmYPbDbSEc52Hn0QtnKtxb7jSuKZaWojOHvfUkt8JKjSijmT+jXEwqdOmeHuc/4bOe7OOvK46etLb24eoWI8pv4/aHhSP+IWZNRx9RX/mJd3xasvlP2wDUSo7wlUaQ8jyYrUKhClnvewceO2Yltkr4maHq0vLEXkz5SijU8duJ6jgXpf8btPfe937Q5YXNU+LpilYaSY0zUiVsrdrObD+FmsR8o1Uyx+kx5mcByeNSa/GLzauB6XdtRgH66w21rqR9aDRDJu5YWGsf1yF5pe3YeWsU2QoW6DQt6a94hLNzP6AYFRY4y7RGN0Hwypav/UXrLwtrsU91fIHFc7FeSCci67G2KIHGQehqL1CDmbK0TLnbFSQtH11brtPbdDaRqu5Hept82hAzShnveDEgN5ltZzNc2pePaFTJ5S9Fel89sewfs876zPlR+GdywAFFZcX7VYPtj5E/kCuGubcxPSBWb1D+iuto01BDwp2YreGl0vo923SEIf17LTXOqhhaHe7c+qa5VUYJRdOvg94uGxRlhMXMStdJu+u41oNyjgRMNzdoq7SNucPdc3y2pC7rBPJNtulQvkkTd7cnp2vx3iHyydUcFP2nzXkD9TjYIKmcxnubc4ZaxIqbazO2XnQbowunB0KV6m9ju2PusdALn/bfZZsVjnrZTCCtPZ+8hyHqLinLMEajzQDbtG48hcr5Q/a44AxU55zM4uMefi4Xg13FtJQJ6Qh2o16IqxwAi5ri7mcsd5vVsNguyhp/co44fPdzZTur7aQxZ0wwW5DqioczO6Mq4dZfO/Aex5uhcO3VqOr5l6EpVih0RcrbL/R5ayHqSj2RwURhdqeFZWzx5s1i62ScDAlOh706s+gcC4npHHVSoshoRDB9Fjjw7qpdq8apkTH7M5LM75fnTNeUc74rSxn5kTjXFtyGLDHUAhE1HDHeCDhYGWYEr13nginBQPwIBcfWc5UsdcKLmyLYoVB3h192mR/GvRRnwE4y5n+3qbdcnErBSvaoxbOmNjJLO9cRKGsgWehylX7rmZdlU9LOdM2RtS7ClqiFg44IfbXtO6thQvvuBkgWd7auePuRqcN8Zi5faGsWaSlnIlAw9yOS1vQIIEjmDb7frkogwMOcNWGTPnNMGl7O8zknYsX/UA+76p2NpcGB/93WBslzugFn+QTzapMWsqZMPLW/sI9ae7l3ToOChxxq2UO0HfEXjXpegAMZX118aKFNwM2SvjAqzXqUvRohPi/tdkv4khLORPU64yoONxjHNyVsD7MbUU5rzd67Nr/eqU8+8UOp2Sf/VbsiN/CU0deYKsioVgQIs9RsUMpqNshLSshkRPmZR23tFF+L7bPJG/69hsqmKNaVkISIRxHPHCBvhHbk6CAwaSOw47x0JIkCscBDfRzU76frdnTuSNcPqRBDEISLRyjDfWSKUdzMCV6o+edQagcF2hPmOzf4UAyJByn8R405bsMMCU6ZneO+8bQf5nyfXSnzdznawhJhXAcxtQQL8fszpioNurnefCMEB53wJ3bvDpOMiEch7NqGHNgotpOU54+MOw7DPCOgHMqSjyEdpmHjmRROA6X1YZ07IPpAzETGqJwmJ8GU21g1gAnpI1QMt6wiZcF4r1niJLhbTQfcfxCkkQuyFwghJDZLOAuIITCIYTCIYTCIYTCIYTCIYRQOIRQOIRQOIRQOIRQOISQWvi/AAMA9UczDEaG0p8AAAAASUVORK5CYII="]
-                // getMyASYS_ICONSdata();
-    
+
     // TODO: implementieren wenn Attribute möglich sind
     var adma = ""; //adma = Aussendienstmitarbeiter
     /*var adm = getAddressData( [GetAttributeKey( "Aussendienst", "1", orgrelid, pUser )[0]],
@@ -376,7 +371,7 @@ OrderUtils.buildOrderReport = function (pOrderID)
         "VAT" : translate.text("VAT", language),
         "Sum" : translate.text("Sum", language),
         "Pos" : translate.text("Pos.", language),
-        "Address" : imgData[0],
+        "Address" : project.getPreferenceValue("custom.myCompany.addr"),
         "OrderPaymentTerm" : KeywordUtils.getViewValue($KeywordRegistry.paymentTerm(), orderData[3]),
         "OrderDeliveryTerm" : KeywordUtils.getViewValue($KeywordRegistry.deliveryTerm(), orderData[4]),
         "responsible" : adma,
@@ -388,7 +383,7 @@ OrderUtils.buildOrderReport = function (pOrderID)
     
     
 
-    orderReport.addImage("myLogo", imgData[1]);
+    orderReport.addImage("myLogo", project.getPreferenceValue("custom.myCompany.logo"));
 
     orderReport.addSubReportData("subdata", ReportData.begin(["VAT","WERT"]).add(sums));
     orderReport.addReportParams(params);
@@ -561,11 +556,6 @@ OrderUtils.buildReminderReport = function (pOrderID)
         ];
     });
     
-    // TODO: get Images implementieren
-    var imgData = ["meineFirma | Wilhelm-Str. 2  |  DE 80807 München",
-                   "base64:iVBORw0KGgoAAAANSUhEUgAAAM4AAABRCAYAAACaL5lSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDA4QzAyM0IwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDA4QzAyM0MwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMDhDMDIzOTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMDhDMDIzQTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhF3nYoAAAlvSURBVHja7J1fjBXVHcfPJQJRoe1urQYJRBYlMUJisqwvGNjY3WgEUtN2CeWBIGb3Ju6LElsW+gA8AHe1UfuwTcBASB/Q7CZNG0tjw2pWU15kNzEBJFnLqmvQBNEbU0pbX+jve+9vlrOzM/fOnTtz78zs95P8cv/MOTPnzJzvnN/5zZ+Tu3XrliGE1MYC7gJCKBxCKBxCKBxCKBxCKBxCCIVDCIVDCIVDCIVDyDzmDq8/d+1/PY5trRB7VGyt2BqxVWLLxe4RW6JpbohdF7sq9qnYpNhFsY/Evoi6QKeOvMAWQKITToQ8LPaEWKfYBrFlVdL/SO1BsU3W/1+JnRMbE3tP7DIPHcmicLrFfia2VWxlBOuD4H6pNi32tthfxM7yEJIsCAc9yw6x7WJLYyozhNgvtlPsLbHT2hMRkjrhYPzynNhu/d4IIMxesafEToqdiGMcREhcwnlKe4AtTaoDhHpArF1sSOwdHlYSN/WGo/Niv2+iaGy2aFnyPKwkqT1OTmyf2pIE1Qdh7t+J/VjsqBgfbyWJEU5OXaMDCa0ThHxYbJHYIYqHJMVV25dg0dgc0LIS0nTh5FPWGPdxzEOaLRxEz/YkbEwTxG3bo2UnpOHCQci3XwffaWONln0FDzdptHBwcXNLiuu5RetASMOE02nKdwSknd1aF0IaIpwdGXFzVmhdCIldOLjLeXuG6rtd60RIrMLBowFLM1TfpVonQmITDh5C25rBOm/VuhESi3Dw5ObKDNZ5pdaNkFiE05nhenfy0JM4hIMI1IYM13uD4QVREoNw8DaaZRmu9zKtIyGh8HusYG3UG/pJ6w/NKy89O/P70j+nzSsn/zTz+5EHV5oHlt9rep58fFa+sQ8vmEtXps35C5/4+12PrTMP3H9v6dMGeZAX6/Cp49tsAiRK4TTsnrS771xsdj3TZTrWPeQrCtiljmnzhzfPmH//538zyyC0/l9tLonSC6wT1tmxzgxJ3q+//a4pdSTzx1Vb1SjR/Hr3L3xFY4MeCWnt3wf7d/iKxgYC+83un7vTruLhJ1H3OMsbsfHnpbdAo0Yv8rcPzpsz74/P6i3QU0AgtgA2b1pvPhQXDHltd+7MB+MzPQrSIa/tukE0mzeuN6f+/O6cOuZyubrr0tvb12bK73nDZ/cbbxwfzWKD2Tnw2l75KIiN/rHwYibvwggyobSfcO6Ju3COINDYX5axjsuNKo1PYLue+eksATy9scN0rF1T6q0AxkkYL9l8dvWaOXX1XfPZl9dK+W23zxJY1HXsUtEANK7RBDf+s1reakyJOFa7/utz6ivr6ZLlmTxBhHXVGvawmsfYYxYjf//HrHENBIMexVnmFs2cwIJr+WO33cKo64gGNKXfBzPcZo479Z2voqnU4zQENGz0DpWAaJAOLpoNxGa7dn6cv/jJbHfv/vtiqYu4ZhDN6pQd/5rdLUk/mPETQ109zo2GCOf8hUDpPr4yHTqvu8exAgQ3DCERC+d63BtGT1Ktt3G45uHK+VybmYPbDbSEc52Hn0QtnKtxb7jSuKZaWojOHvfUkt8JKjSijmT+jXEwqdOmeHuc/4bOe7OOvK46etLb24eoWI8pv4/aHhSP+IWZNRx9RX/mJd3xasvlP2wDUSo7wlUaQ8jyYrUKhClnvewceO2Yltkr4maHq0vLEXkz5SijU8duJ6jgXpf8btPfe937Q5YXNU+LpilYaSY0zUiVsrdrObD+FmsR8o1Uyx+kx5mcByeNSa/GLzauB6XdtRgH66w21rqR9aDRDJu5YWGsf1yF5pe3YeWsU2QoW6DQt6a94hLNzP6AYFRY4y7RGN0Hwypav/UXrLwtrsU91fIHFc7FeSCci67G2KIHGQehqL1CDmbK0TLnbFSQtH11brtPbdDaRqu5Hept82hAzShnveDEgN5ltZzNc2pePaFTJ5S9Fel89sewfs876zPlR+GdywAFFZcX7VYPtj5E/kCuGubcxPSBWb1D+iuto01BDwp2YreGl0vo923SEIf17LTXOqhhaHe7c+qa5VUYJRdOvg94uGxRlhMXMStdJu+u41oNyjgRMNzdoq7SNucPdc3y2pC7rBPJNtulQvkkTd7cnp2vx3iHyydUcFP2nzXkD9TjYIKmcxnubc4ZaxIqbazO2XnQbowunB0KV6m9ju2PusdALn/bfZZsVjnrZTCCtPZ+8hyHqLinLMEajzQDbtG48hcr5Q/a44AxU55zM4uMefi4Xg13FtJQJ6Qh2o16IqxwAi5ri7mcsd5vVsNguyhp/co44fPdzZTur7aQxZ0wwW5DqioczO6Mq4dZfO/Aex5uhcO3VqOr5l6EpVih0RcrbL/R5ayHqSj2RwURhdqeFZWzx5s1i62ScDAlOh706s+gcC4npHHVSoshoRDB9Fjjw7qpdq8apkTH7M5LM75fnTNeUc74rSxn5kTjXFtyGLDHUAhE1HDHeCDhYGWYEr13nginBQPwIBcfWc5UsdcKLmyLYoVB3h192mR/GvRRnwE4y5n+3qbdcnErBSvaoxbOmNjJLO9cRKGsgWehylX7rmZdlU9LOdM2RtS7ClqiFg44IfbXtO6thQvvuBkgWd7auePuRqcN8Zi5faGsWaSlnIlAw9yOS1vQIIEjmDb7frkogwMOcNWGTPnNMGl7O8zknYsX/UA+76p2NpcGB/93WBslzugFn+QTzapMWsqZMPLW/sI9ae7l3ToOChxxq2UO0HfEXjXpegAMZX118aKFNwM2SvjAqzXqUvRohPi/tdkv4khLORPU64yoONxjHNyVsD7MbUU5rzd67Nr/eqU8+8UOp2Sf/VbsiN/CU0deYKsioVgQIs9RsUMpqNshLSshkRPmZR23tFF+L7bPJG/69hsqmKNaVkISIRxHPHCBvhHbk6CAwaSOw47x0JIkCscBDfRzU76frdnTuSNcPqRBDEISLRyjDfWSKUdzMCV6o+edQagcF2hPmOzf4UAyJByn8R405bsMMCU6ZneO+8bQf5nyfXSnzdznawhJhXAcxtQQL8fszpioNurnefCMEB53wJ3bvDpOMiEch7NqGHNgotpOU54+MOw7DPCOgHMqSjyEdpmHjmRROA6X1YZ07IPpAzETGqJwmJ8GU21g1gAnpI1QMt6wiZcF4r1niJLhbTQfcfxCkkQuyFwghJDZLOAuIITCIYTCIYTCIYTCIYTCIYRQOIRQOIRQOIRQOIRQOISQWvi/AAMA9UczDEaG0p8AAAAASUVORK5CYII="]
-                // getMyASYS_ICONSdata();
-    
     // TODO: implementieren wenn Attribute möglich sind
     var adma = ""; //adma = Aussendienstmitarbeiter
     /*var adm = getAddressData( [GetAttributeKey( "Aussendienst", "1", orgrelid, pUser )[0]],
@@ -577,7 +567,7 @@ OrderUtils.buildReminderReport = function (pOrderID)
     if (adm[1] != undefined)  adma = adm[1].join("\n");*/
     
     var params = {
-        "Address" : imgData[0],
+        "Address" : project.getPreferenceValue("custom.myCompany.addr"),
         "ReminderAddress": translate.text(orderData[0].trim(), language),
         "Due": translate.text("Due",language),
         "DueDate": translate.text("Due date",language),
@@ -591,7 +581,7 @@ OrderUtils.buildReminderReport = function (pOrderID)
     
     
 
-    reminderReport.addImage("myLogo", imgData[1]);
+    reminderReport.addImage("myLogo", project.getPreferenceValue("custom.myCompany.logo"));
 
     reminderReport.addSubReportData("subdata", ReportData.begin(["VAT","WERT"]).add(sums));
     reminderReport.addReportParams(params);
diff --git a/process/Organisation_lib/Organisation_lib.aod b/process/Organisation_lib/Organisation_lib.aod
index 47bca652458c91d875f43aa22721999afeb471e7..1f0d01aabbddda8eb361bc70f337f423e640d513 100644
--- a/process/Organisation_lib/Organisation_lib.aod
+++ b/process/Organisation_lib/Organisation_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Organisation_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Organisation_lib/process.js</process>
diff --git a/process/Organisation_lib/process.js b/process/Organisation_lib/process.js
index 6a5b4e22bf0a04f89b6eb8b302a09ae76ec1b04f..8542b8c970bf28558b78b10b6afe753ea7479e91 100644
--- a/process/Organisation_lib/process.js
+++ b/process/Organisation_lib/process.js
@@ -1,3 +1,4 @@
+import("system.project");
 import("system.neon");
 import("Util_lib");
 import("system.datetime");
@@ -203,13 +204,8 @@ var activityData = activityQuery.table()
     orgReport.addSubReportData("subdataTask", taskData);
 
     //add logo
-    //TODO: use an function to get the image when available
-    var imgData = [
-        "meineFirma | Wilhelm-Str. 2  |  DE 80807 München",
-        "base64:iVBORw0KGgoAAAANSUhEUgAAAM4AAABRCAYAAACaL5lSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDA4QzAyM0IwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDA4QzAyM0MwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMDhDMDIzOTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMDhDMDIzQTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhF3nYoAAAlvSURBVHja7J1fjBXVHcfPJQJRoe1urQYJRBYlMUJisqwvGNjY3WgEUtN2CeWBIGb3Ju6LElsW+gA8AHe1UfuwTcBASB/Q7CZNG0tjw2pWU15kNzEBJFnLqmvQBNEbU0pbX+jve+9vlrOzM/fOnTtz78zs95P8cv/MOTPnzJzvnN/5zZ+Tu3XrliGE1MYC7gJCKBxCKBxCKBxCKBxCKBxCCIVDCIVDCIVDCIVDyDzmDq8/d+1/PY5trRB7VGyt2BqxVWLLxe4RW6JpbohdF7sq9qnYpNhFsY/Evoi6QKeOvMAWQKITToQ8LPaEWKfYBrFlVdL/SO1BsU3W/1+JnRMbE3tP7DIPHcmicLrFfia2VWxlBOuD4H6pNi32tthfxM7yEJIsCAc9yw6x7WJLYyozhNgvtlPsLbHT2hMRkjrhYPzynNhu/d4IIMxesafEToqdiGMcREhcwnlKe4AtTaoDhHpArF1sSOwdHlYSN/WGo/Niv2+iaGy2aFnyPKwkqT1OTmyf2pIE1Qdh7t+J/VjsqBgfbyWJEU5OXaMDCa0ThHxYbJHYIYqHJMVV25dg0dgc0LIS0nTh5FPWGPdxzEOaLRxEz/YkbEwTxG3bo2UnpOHCQci3XwffaWONln0FDzdptHBwcXNLiuu5RetASMOE02nKdwSknd1aF0IaIpwdGXFzVmhdCIldOLjLeXuG6rtd60RIrMLBowFLM1TfpVonQmITDh5C25rBOm/VuhESi3Dw5ObKDNZ5pdaNkFiE05nhenfy0JM4hIMI1IYM13uD4QVREoNw8DaaZRmu9zKtIyGh8HusYG3UG/pJ6w/NKy89O/P70j+nzSsn/zTz+5EHV5oHlt9rep58fFa+sQ8vmEtXps35C5/4+12PrTMP3H9v6dMGeZAX6/Cp49tsAiRK4TTsnrS771xsdj3TZTrWPeQrCtiljmnzhzfPmH//538zyyC0/l9tLonSC6wT1tmxzgxJ3q+//a4pdSTzx1Vb1SjR/Hr3L3xFY4MeCWnt3wf7d/iKxgYC+83un7vTruLhJ1H3OMsbsfHnpbdAo0Yv8rcPzpsz74/P6i3QU0AgtgA2b1pvPhQXDHltd+7MB+MzPQrSIa/tukE0mzeuN6f+/O6cOuZyubrr0tvb12bK73nDZ/cbbxwfzWKD2Tnw2l75KIiN/rHwYibvwggyobSfcO6Ju3COINDYX5axjsuNKo1PYLue+eksATy9scN0rF1T6q0AxkkYL9l8dvWaOXX1XfPZl9dK+W23zxJY1HXsUtEANK7RBDf+s1reakyJOFa7/utz6ivr6ZLlmTxBhHXVGvawmsfYYxYjf//HrHENBIMexVnmFs2cwIJr+WO33cKo64gGNKXfBzPcZo479Z2voqnU4zQENGz0DpWAaJAOLpoNxGa7dn6cv/jJbHfv/vtiqYu4ZhDN6pQd/5rdLUk/mPETQ109zo2GCOf8hUDpPr4yHTqvu8exAgQ3DCERC+d63BtGT1Ktt3G45uHK+VybmYPbDbSEc52Hn0QtnKtxb7jSuKZaWojOHvfUkt8JKjSijmT+jXEwqdOmeHuc/4bOe7OOvK46etLb24eoWI8pv4/aHhSP+IWZNRx9RX/mJd3xasvlP2wDUSo7wlUaQ8jyYrUKhClnvewceO2Yltkr4maHq0vLEXkz5SijU8duJ6jgXpf8btPfe937Q5YXNU+LpilYaSY0zUiVsrdrObD+FmsR8o1Uyx+kx5mcByeNSa/GLzauB6XdtRgH66w21rqR9aDRDJu5YWGsf1yF5pe3YeWsU2QoW6DQt6a94hLNzP6AYFRY4y7RGN0Hwypav/UXrLwtrsU91fIHFc7FeSCci67G2KIHGQehqL1CDmbK0TLnbFSQtH11brtPbdDaRqu5Hept82hAzShnveDEgN5ltZzNc2pePaFTJ5S9Fel89sewfs876zPlR+GdywAFFZcX7VYPtj5E/kCuGubcxPSBWb1D+iuto01BDwp2YreGl0vo923SEIf17LTXOqhhaHe7c+qa5VUYJRdOvg94uGxRlhMXMStdJu+u41oNyjgRMNzdoq7SNucPdc3y2pC7rBPJNtulQvkkTd7cnp2vx3iHyydUcFP2nzXkD9TjYIKmcxnubc4ZaxIqbazO2XnQbowunB0KV6m9ju2PusdALn/bfZZsVjnrZTCCtPZ+8hyHqLinLMEajzQDbtG48hcr5Q/a44AxU55zM4uMefi4Xg13FtJQJ6Qh2o16IqxwAi5ri7mcsd5vVsNguyhp/co44fPdzZTur7aQxZ0wwW5DqioczO6Mq4dZfO/Aex5uhcO3VqOr5l6EpVih0RcrbL/R5ayHqSj2RwURhdqeFZWzx5s1i62ScDAlOh706s+gcC4npHHVSoshoRDB9Fjjw7qpdq8apkTH7M5LM75fnTNeUc74rSxn5kTjXFtyGLDHUAhE1HDHeCDhYGWYEr13nginBQPwIBcfWc5UsdcKLmyLYoVB3h192mR/GvRRnwE4y5n+3qbdcnErBSvaoxbOmNjJLO9cRKGsgWehylX7rmZdlU9LOdM2RtS7ClqiFg44IfbXtO6thQvvuBkgWd7auePuRqcN8Zi5faGsWaSlnIlAw9yOS1vQIIEjmDb7frkogwMOcNWGTPnNMGl7O8zknYsX/UA+76p2NpcGB/93WBslzugFn+QTzapMWsqZMPLW/sI9ae7l3ToOChxxq2UO0HfEXjXpegAMZX118aKFNwM2SvjAqzXqUvRohPi/tdkv4khLORPU64yoONxjHNyVsD7MbUU5rzd67Nr/eqU8+8UOp2Sf/VbsiN/CU0deYKsioVgQIs9RsUMpqNshLSshkRPmZR23tFF+L7bPJG/69hsqmKNaVkISIRxHPHCBvhHbk6CAwaSOw47x0JIkCscBDfRzU76frdnTuSNcPqRBDEISLRyjDfWSKUdzMCV6o+edQagcF2hPmOzf4UAyJByn8R405bsMMCU6ZneO+8bQf5nyfXSnzdznawhJhXAcxtQQL8fszpioNurnefCMEB53wJ3bvDpOMiEch7NqGHNgotpOU54+MOw7DPCOgHMqSjyEdpmHjmRROA6X1YZ07IPpAzETGqJwmJ8GU21g1gAnpI1QMt6wiZcF4r1niJLhbTQfcfxCkkQuyFwghJDZLOAuIITCIYTCIYTCIYTCIYTCIYRQOIRQOIRQOIRQOIRQOISQWvi/AAMA9UczDEaG0p8AAAAASUVORK5CYII="
-    ];
-    params["myAddr"] = imgData[0];
-    orgReport.addImage("myLogo", imgData[1]);
+    params["myAddr"] = project.getPreferenceValue("custom.myCompany.addr");
+    orgReport.addImage("myLogo", project.getPreferenceValue("custom.myCompany.logo"));
 
 
     return orgReport.exportReport();
diff --git a/process/PermissionCalendar_lib/PermissionCalendar_lib.aod b/process/PermissionCalendar_lib/PermissionCalendar_lib.aod
index 8f5c6970ce7e043c67c775b033e685acbb4ac8a8..1b2ab4f46514eb141579af4444ec1bbbcf7bd4f0 100644
--- a/process/PermissionCalendar_lib/PermissionCalendar_lib.aod
+++ b/process/PermissionCalendar_lib/PermissionCalendar_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>PermissionCalendar_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/PermissionCalendar_lib/process.js</process>
diff --git a/process/Permission_lib/Permission_lib.aod b/process/Permission_lib/Permission_lib.aod
index 00dceca975179d33311ba7f807e5800a2f748d98..642b9b00218b040d6b833530810f5439a0effc75 100644
--- a/process/Permission_lib/Permission_lib.aod
+++ b/process/Permission_lib/Permission_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Permission_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Permission_lib/process.js</process>
diff --git a/process/Person_lib/Person_lib.aod b/process/Person_lib/Person_lib.aod
index 04c0795c9a2fcb6fcdd7f580da9ffe3a2be374e9..80e4dc8248fca9713ea9c6419d8e9ff647956527 100644
--- a/process/Person_lib/Person_lib.aod
+++ b/process/Person_lib/Person_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Person_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Person_lib/process.js</process>
diff --git a/process/Placeholder_lib/Placeholder_lib.aod b/process/Placeholder_lib/Placeholder_lib.aod
index 1cc12d42bd4091664def57971f81d140c9dcc0e2..2af9f3a9ab189e4a59216d944a9d9703eb9880f6 100644
--- a/process/Placeholder_lib/Placeholder_lib.aod
+++ b/process/Placeholder_lib/Placeholder_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Placeholder_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Placeholder_lib/process.js</process>
diff --git a/process/PostalAddress_lib/PostalAddress_lib.aod b/process/PostalAddress_lib/PostalAddress_lib.aod
index f7af81f2c9b9cb3ab8b20c4faa523894b5df10f7..a07348310e4c97fb5da2bf3bdd9b86e56994aaed 100644
--- a/process/PostalAddress_lib/PostalAddress_lib.aod
+++ b/process/PostalAddress_lib/PostalAddress_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>PostalAddress_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/PostalAddress_lib/process.js</process>
diff --git a/process/Product_lib/Product_lib.aod b/process/Product_lib/Product_lib.aod
index 9c72fa0f0cdb72396fc83c73d54fadb87bcfd7ad..a1197452b9288cb8d7c3224f2e669f0d47505649 100644
--- a/process/Product_lib/Product_lib.aod
+++ b/process/Product_lib/Product_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Product_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Product_lib/process.js</process>
diff --git a/process/Product_lib/process.js b/process/Product_lib/process.js
index ee03a52bec3a0052633d48aace52aeb834a107da..05c9106f30d76237624db6bfaceba7a9612a55d3 100644
--- a/process/Product_lib/process.js
+++ b/process/Product_lib/process.js
@@ -283,7 +283,7 @@ ProductUtils.getProductDetails = function(pid, priceListFilter, additionalProduc
                 return priceLists[list];
             }
             //customer deposited price list (defined by Attribute)
-            if (priceListFilter.priceList != "") {
+            if (priceListFilter.priceList != "" && priceListFilter.priceList != null) {
                 var res;
                 var escape;
                  // runs trough the possible pricelists to find the one with the correct pricelist ("-type"). 
diff --git a/process/Proto_lib/Proto_lib.aod b/process/Proto_lib/Proto_lib.aod
index dd8841dc7aba84fa95c02f339956908458bb7307..ce167574ad6d6a97588312e3f6cbc5d0156933ae 100644
--- a/process/Proto_lib/Proto_lib.aod
+++ b/process/Proto_lib/Proto_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Proto_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Proto_lib/process.js</process>
diff --git a/process/RebuildAllDuplicateCaches_serverProcess/RebuildAllDuplicateCaches_serverProcess.aod b/process/RebuildAllDuplicateCaches_serverProcess/RebuildAllDuplicateCaches_serverProcess.aod
index 7d7d887aa097e608434cd4b22d55986a75d7f33b..11432054cc7356358ef25e9d7b657ca5973bba2f 100644
--- a/process/RebuildAllDuplicateCaches_serverProcess/RebuildAllDuplicateCaches_serverProcess.aod
+++ b/process/RebuildAllDuplicateCaches_serverProcess/RebuildAllDuplicateCaches_serverProcess.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>RebuildAllDuplicateCaches_serverProcess</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/RebuildAllDuplicateCaches_serverProcess/process.js</process>
diff --git a/process/RebuildDuplicatesCache_serverProcess/RebuildDuplicatesCache_serverProcess.aod b/process/RebuildDuplicatesCache_serverProcess/RebuildDuplicatesCache_serverProcess.aod
index 21d0559480699c819f719274c88863094991a05d..078550c7200171ccff2e26f2515a616016da481a 100644
--- a/process/RebuildDuplicatesCache_serverProcess/RebuildDuplicatesCache_serverProcess.aod
+++ b/process/RebuildDuplicatesCache_serverProcess/RebuildDuplicatesCache_serverProcess.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>RebuildDuplicatesCache_serverProcess</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/RebuildDuplicatesCache_serverProcess/process.js</process>
diff --git a/process/RemoveFromCampaign_workflowService/RemoveFromCampaign_workflowService.aod b/process/RemoveFromCampaign_workflowService/RemoveFromCampaign_workflowService.aod
index 8dde3d1708e628524bbffd2d07f452a7f9cdbf0e..9a2e06c6e7128e5448ad661af163c5f1ff23986d 100644
--- a/process/RemoveFromCampaign_workflowService/RemoveFromCampaign_workflowService.aod
+++ b/process/RemoveFromCampaign_workflowService/RemoveFromCampaign_workflowService.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>RemoveFromCampaign_workflowService</name>
   <title>Remove from Campaign</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/Report_lib/Report_lib.aod b/process/Report_lib/Report_lib.aod
index b847e04de6288a50fd822dffef554f45c285423f..a7caa94038945e9aa86704ab525dc5dc21b037e5 100644
--- a/process/Report_lib/Report_lib.aod
+++ b/process/Report_lib/Report_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Report_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Report_lib/process.js</process>
diff --git a/process/Report_lib/process.js b/process/Report_lib/process.js
index a41b417575082b0923fc0688c51822f70871f69d..ebe7365ef7d16d8133747ce34bf3c95c6ecd9fc1 100644
--- a/process/Report_lib/process.js
+++ b/process/Report_lib/process.js
@@ -102,8 +102,8 @@ function Report(pReportName, pReportParams, pReportData)
  * 
  * @example
  * var params = {};
- * params["myAddr"] = imgData[0];
- * params["adito.image.myLogo"] = imgData[1];
+ * params["myAddr"] = project.getPreferenceValue("custom.myCompany.addr");
+ * params["adito.image.myLogo"] = project.getPreferenceValue("custom.myCompany.logo");
  * params["Pos"] = translate.text("Pos.", language);
  * 
  * myReport.addReportParams(params);
diff --git a/process/Salesproject_lib/Salesproject_lib.aod b/process/Salesproject_lib/Salesproject_lib.aod
index 06956e427082baea872c1f395aca9c5337032e42..32fb545354a53bee2209d60d4cdbf64074e24a55 100644
--- a/process/Salesproject_lib/Salesproject_lib.aod
+++ b/process/Salesproject_lib/Salesproject_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Salesproject_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Salesproject_lib/process.js</process>
diff --git a/process/SendEmail_workflowService/SendEmail_workflowService.aod b/process/SendEmail_workflowService/SendEmail_workflowService.aod
index d58abf463370007f75396e6fc71b93827fcfabd3..2dbab69e62effe7618abfdd14335a8de7fdc0c27 100644
--- a/process/SendEmail_workflowService/SendEmail_workflowService.aod
+++ b/process/SendEmail_workflowService/SendEmail_workflowService.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>SendEmail_workflowService</name>
   <title>Send email</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/SetAttribute_workflowService/SetAttribute_workflowService.aod b/process/SetAttribute_workflowService/SetAttribute_workflowService.aod
index 0816609206a36c0993b7f8a5eff2cfb94344662a..17c234d1ae4af84fa4575854505e42e53b478c81 100644
--- a/process/SetAttribute_workflowService/SetAttribute_workflowService.aod
+++ b/process/SetAttribute_workflowService/SetAttribute_workflowService.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>SetAttribute_workflowService</name>
   <title>Set attribute</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/SetCampaignStep_workflowService/SetCampaignStep_workflowService.aod b/process/SetCampaignStep_workflowService/SetCampaignStep_workflowService.aod
index 708612a5a1a3d624e9dad5ef53a066daefb7bd7f..202fd45600846fdcb2781ad3fd2a518f5e73a64c 100644
--- a/process/SetCampaignStep_workflowService/SetCampaignStep_workflowService.aod
+++ b/process/SetCampaignStep_workflowService/SetCampaignStep_workflowService.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>SetCampaignStep_workflowService</name>
   <title>Set Campaign Step</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/SetSalesprojectPhase_workflowService/SetSalesprojectPhase_workflowService.aod b/process/SetSalesprojectPhase_workflowService/SetSalesprojectPhase_workflowService.aod
index cd9e8f63d12bd4f5af9c1555277c6a54fb82db93..19550d2d6b58731f3730a99daecbaea1041213b7 100644
--- a/process/SetSalesprojectPhase_workflowService/SetSalesprojectPhase_workflowService.aod
+++ b/process/SetSalesprojectPhase_workflowService/SetSalesprojectPhase_workflowService.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>SetSalesprojectPhase_workflowService</name>
   <title>Set salesproject phase</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/SqlBuilder_test/SqlBuilder_test.aod b/process/SqlBuilder_test/SqlBuilder_test.aod
index 3992282911646839e2344fc4154d6a0a30666daf..c8c1620c9e458c45817eb40fc2dde2d643fce18c 100644
--- a/process/SqlBuilder_test/SqlBuilder_test.aod
+++ b/process/SqlBuilder_test/SqlBuilder_test.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>SqlBuilder_test</name>
   <title>[TEST] Sql_lib - SqlBuilder</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/SqlMaskingUtils_test/SqlMaskingUtils_test.aod b/process/SqlMaskingUtils_test/SqlMaskingUtils_test.aod
index 8636a3707b101a2e7e0b22e10e54c6d596508b53..e3fbcc2640d62d2800c77178cbedea4a1ad35f93 100644
--- a/process/SqlMaskingUtils_test/SqlMaskingUtils_test.aod
+++ b/process/SqlMaskingUtils_test/SqlMaskingUtils_test.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>SqlMaskingUtils_test</name>
   <title>[TEST] Sql_lib - SqlMaskingUtils</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/Sql_lib/Sql_lib.aod b/process/Sql_lib/Sql_lib.aod
index 8e786ba49ef55715b8396b364c1339d19c3d829d..9ecdf3e0cef487950e3ce08b11bc7640e3d5b866 100644
--- a/process/Sql_lib/Sql_lib.aod
+++ b/process/Sql_lib/Sql_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Sql_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/Sql_lib/documentation.adoc</documentation>
diff --git a/process/Sql_lib/process.js b/process/Sql_lib/process.js
index fc7918d66d118477455fae249da67ff726a009cb..f3708067a34ad01930d3ade922c9520011e1bb91 100644
--- a/process/Sql_lib/process.js
+++ b/process/Sql_lib/process.js
@@ -3436,6 +3436,8 @@ SqlMaskingUtils.prototype.cast = function (pField, pTargetDatatype, pTargetLengt
                 return "decimal";
             case SQLTYPES.DATE:
                 return "date";
+            case SQLTYPES.TIMESTAMP:
+                return "timestamp";
         }
         return null;
     }
@@ -3462,6 +3464,7 @@ SqlMaskingUtils.prototype.cast = function (pField, pTargetDatatype, pTargetLengt
                 case SQLTYPES.DECIMAL:
                 case SQLTYPES.INTEGER:
                 case SQLTYPES.DATE:
+                case SQLTYPES.TIMESTAMP:
                     sqlDataType = _mapDefaults(pTargetDatatype);
                     break;
             }
@@ -3470,6 +3473,9 @@ SqlMaskingUtils.prototype.cast = function (pField, pTargetDatatype, pTargetLengt
         case db.DBTYPE_MYSQL4:
             switch(pTargetDatatype) 
             {
+                case SQLTYPES.TIMESTAMP:
+                    sqlDataType = "datetime";
+                    break;
                 case SQLTYPES.NVARCHAR:
                 case SQLTYPES.VARCHAR:
                 case SQLTYPES.CHAR:
@@ -3498,6 +3504,7 @@ SqlMaskingUtils.prototype.cast = function (pField, pTargetDatatype, pTargetLengt
                 case SQLTYPES.CHAR:
                 case SQLTYPES.DECIMAL:
                 case SQLTYPES.DATE:
+                case SQLTYPES.TIMESTAMP:
                     sqlDataType = _mapDefaults(pTargetDatatype);
                     break;
             }
@@ -3506,6 +3513,7 @@ SqlMaskingUtils.prototype.cast = function (pField, pTargetDatatype, pTargetLengt
             switch(pTargetDatatype)
             {
                 case SQLTYPES.DATE:
+                case SQLTYPES.TIMESTAMP:
                 case SQLTYPES.DECIMAL:
                 case SQLTYPES.INTEGER:
                 case SQLTYPES.CHAR:
@@ -3518,6 +3526,9 @@ SqlMaskingUtils.prototype.cast = function (pField, pTargetDatatype, pTargetLengt
         case db.DBTYPE_SQLSERVER2000:
             switch(pTargetDatatype)
             {
+                case SQLTYPES.TIMESTAMP:
+                    sqlDataType = "datetime";
+                    break;
                 case SQLTYPES.DATE:
                 case SQLTYPES.DECIMAL:
                 case SQLTYPES.INTEGER:
@@ -3939,6 +3950,58 @@ SqlMaskingUtils.prototype.coalesce = function(pFields)
     return retSql;
 }
 
+/**
+ * Converts day, month and year fields into a date
+ * The parameters can't be null!!!
+ * 
+ * @param pYear {String} year field
+ * @param pMonth {String} month field
+ * @param pDay {String} day field
+ */
+SqlMaskingUtils.prototype.makeDate = function(pYear, pMonth, pDay)
+{
+    switch(this.dbType)
+    {
+        case db.DBTYPE_POSTGRESQL8:
+            return "make_date" + "(" + pYear + ", " + pMonth + ", " + pDay + ")";
+        case db.DBTYPE_SQLSERVER2000:
+            return "datefromparts" + "(" + pYear + ", " + pMonth + ", " + pDay + ")";
+
+        case db.DBTYPE_ORACLE10_CLUSTER:
+        case db.DBTYPE_ORACLE10_THIN:
+        case db.DBTYPE_ORACLE10_OCI:
+            return "to_date(lpad(" + pYear + ", 4, '0') || lpad(" + pMonth + ", 2, '0') || lpad(" + pYear + ", 2, '0'), 'YYYY-MM-DD')";
+
+        // from datestr without filled zeros e.g.: 2000-5-2
+        case db.DBTYPE_MYSQL4:
+        case db.DBTYPE_MARIADB10:
+            var dateFields = [
+                this.cast(pYear, SQLTYPES.CHAR, 4),
+                this.cast(pMonth, SQLTYPES.CHAR, 2),
+                this.cast(pDay, SQLTYPES.CHAR, 2)
+            ];
+            var dateStr = this.concatWithSeparator(dateFields, "-", false);
+            return this.cast(dateStr, SQLTYPES.DATE);
+
+        // from datestr with filled zeros e.g.: 2000-05-02
+        case db.DBTYPE_DERBY10:
+            // maskingUtils: workaround
+            function _castWithZeros(maskingUtils, field, size) {
+                var casted = maskingUtils.cast(field, SQLTYPES.VARCHAR, size);
+                var concatenated = maskingUtils.concatenate(["'000'", casted]);
+                // + 1: derbys substr starts counting at 1, for whatever reason
+                return "substr(" + concatenated + ", length(" + concatenated + ") - " + size + " + 1)";
+            }
+            var dateFieldsZeroed = [
+                _castWithZeros(this, pYear, 4),
+                _castWithZeros(this, pMonth, 2),
+                _castWithZeros(this, pDay, 2)
+            ];
+            var dateStrZeroed = this.concatWithSeparator(dateFieldsZeroed, "-", false);
+            return this.cast(dateStrZeroed, SQLTYPES.DATE);
+    }
+}
+
 /**
  * functions for various Sql-actions
  * Do not create an instance of this!
diff --git a/process/StandardObject_lib/StandardObject_lib.aod b/process/StandardObject_lib/StandardObject_lib.aod
index 94c1fcc045a7d0035211ebd8afb1d46832b39065..c69d626eb8d55e3c7820c9a130c16ff3e790d850 100644
--- a/process/StandardObject_lib/StandardObject_lib.aod
+++ b/process/StandardObject_lib/StandardObject_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>StandardObject_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/StandardObject_lib/documentation.adoc</documentation>
diff --git a/process/TempRebuildIndexPerson_serverProcess/TempRebuildIndexPerson_serverProcess.aod b/process/TempRebuildIndexPerson_serverProcess/TempRebuildIndexPerson_serverProcess.aod
index bffee7201afb41060808fc74c155973b7f9a4ca8..3d6e25db86c11f51f4f20f0ab10b249a7166843a 100644
--- a/process/TempRebuildIndexPerson_serverProcess/TempRebuildIndexPerson_serverProcess.aod
+++ b/process/TempRebuildIndexPerson_serverProcess/TempRebuildIndexPerson_serverProcess.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>TempRebuildIndexPerson_serverProcess</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/TempRebuildIndexPerson_serverProcess/process.js</process>
diff --git a/process/Terminal_lib/Terminal_lib.aod b/process/Terminal_lib/Terminal_lib.aod
index 9fa0811425e089b731f59a376c4089e526725b17..fee1f093874fd8eaab65e87dbe5c346c66a17860 100644
--- a/process/Terminal_lib/Terminal_lib.aod
+++ b/process/Terminal_lib/Terminal_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Terminal_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/Terminal_lib/documentation.adoc</documentation>
diff --git a/process/TestIndexSearch/TestIndexSearch.aod b/process/TestIndexSearch/TestIndexSearch.aod
index 9dfabc2aa4b1af9a5d9d3f1d1eaac79c2a20c66c..66107b82c6692ba97791ea6e0ef9eb87a8c70372 100644
--- a/process/TestIndexSearch/TestIndexSearch.aod
+++ b/process/TestIndexSearch/TestIndexSearch.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>TestIndexSearch</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/TestIndexSearch/process.js</process>
diff --git a/process/Ticket_lib/Ticket_lib.aod b/process/Ticket_lib/Ticket_lib.aod
index 5ce9c41505cb4df632f5c1d34f0bbaf80f48a171..f8dd6fe8f2e97ce7d9eebbf8e1f725b9eeba4b34 100644
--- a/process/Ticket_lib/Ticket_lib.aod
+++ b/process/Ticket_lib/Ticket_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Ticket_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Ticket_lib/process.js</process>
diff --git a/process/Timetracking_lib/Timetracking_lib.aod b/process/Timetracking_lib/Timetracking_lib.aod
index b514721991f2a2544cf57c10e3bc5d89c0571d7b..140b9a95c1bc4667c5056929735b6e5bd0ac6e75 100644
--- a/process/Timetracking_lib/Timetracking_lib.aod
+++ b/process/Timetracking_lib/Timetracking_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Timetracking_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Timetracking_lib/process.js</process>
diff --git a/process/Turnover_lib/Turnover_lib.aod b/process/Turnover_lib/Turnover_lib.aod
index 28bacd7d8eaa8d0f3bd01ed7f72c229487b2372e..12dbb916887a5ee928249e5e2a08760389bab573 100644
--- a/process/Turnover_lib/Turnover_lib.aod
+++ b/process/Turnover_lib/Turnover_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Turnover_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Turnover_lib/process.js</process>
diff --git a/process/UnitTest_lib/UnitTest_lib.aod b/process/UnitTest_lib/UnitTest_lib.aod
index a44993167651207727a423951deff7db60238dfb..25bd7badb373769aa481fb03fab69956dc8b704f 100644
--- a/process/UnitTest_lib/UnitTest_lib.aod
+++ b/process/UnitTest_lib/UnitTest_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>UnitTest_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <icon>VAADIN:CHECK_CIRCLE_O</icon>
diff --git a/process/UnitTest_test/UnitTest_test.aod b/process/UnitTest_test/UnitTest_test.aod
index 095a395529bdac348b397a4854c6939cccab89f3..853608a4031b47bab007db1dd836433d694f1c2e 100644
--- a/process/UnitTest_test/UnitTest_test.aod
+++ b/process/UnitTest_test/UnitTest_test.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>UnitTest_test</name>
   <title>[TEST] UnitTest_lib</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/UpdateOffer_workflowService/UpdateOffer_workflowService.aod b/process/UpdateOffer_workflowService/UpdateOffer_workflowService.aod
index 6afa7117eb943d416023c4c05c6371266bb01ab7..39149b2c28f79fd5db740299f0ce80a0f29a5311 100644
--- a/process/UpdateOffer_workflowService/UpdateOffer_workflowService.aod
+++ b/process/UpdateOffer_workflowService/UpdateOffer_workflowService.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>UpdateOffer_workflowService</name>
   <title>Update offer</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/UserSettings_lib/UserSettings_lib.aod b/process/UserSettings_lib/UserSettings_lib.aod
index 41d85657ed0bcbfa6492589ee6a7238af2859f05..c1470052e9c9fd7d43344513964da783102380d2 100644
--- a/process/UserSettings_lib/UserSettings_lib.aod
+++ b/process/UserSettings_lib/UserSettings_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>UserSettings_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/UserSettings_lib/process.js</process>
diff --git a/process/Util_lib/Util_lib.aod b/process/Util_lib/Util_lib.aod
index 6a28f6ac135dc0e474b2a0c951704dc8635e5591..67bbab87069f4098d62bd0bf30556729eefca16e 100644
--- a/process/Util_lib/Util_lib.aod
+++ b/process/Util_lib/Util_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Util_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Util_lib/process.js</process>
diff --git a/process/Util_lib/process.js b/process/Util_lib/process.js
index 154076f048f07ef9c800784fb3e056ea741ee46c..eaf27ec1c8920bb7797278ab9482e2109d32642e 100644
--- a/process/Util_lib/process.js
+++ b/process/Util_lib/process.js
@@ -564,6 +564,27 @@ StringUtils.concat = function(pSeparator, pElements)
     return res;
 };
 
+/**
+ * Replaces a char of a string at a specified position with a specified replacementString
+ * 
+ * @param {String} pPlainInputStr           <p/>String where you want something to be replaced
+ * @param {String} pIndex                   <p/>Position of the char you want to replace
+ * @param {String} pReplacement             <p/>A string as the replacement-value
+ *
+ * @return {String}                         <p/>ReplacedString (or pPlainInputStr if pIndex >= pPlainInputStr.length)
+ */
+StringUtils.replaceAt = function(pPlainInputStr, pIndex, pReplacement) 
+{
+    if (pIndex >= pPlainInputStr.length) //return the original string if the index is too high
+    {
+        return pPlainInputStr.valueOf();
+    }
+ 
+    return pPlainInputStr.substring(0, pIndex) + pReplacement + pPlainInputStr.substring(pIndex + 1);
+}
+
+
+
 /**
  * concats severel elements by a separator; the separator is only applied if a element is not null and not an empty string "";
  * You can pass >=2 elements to the function and they will be all concated
@@ -1093,6 +1114,34 @@ ObjectUtils.existsValue = function(pObject, pValue)
     return false;
 };
 
+/**
+ * Sets a value in the given object at the given key path.
+ * 
+ * @param {Object} pObject      object to modify
+ * @param {String[]} pKeyPath   where to set the value
+ * @param {Object} pValue       value to set
+ * @return {Object} the given object
+ * @example
+ * 
+ * var myObject = {};
+ * ObjectUtils.setByPath(myObject, ["giorno", "stand"], "gold experience");
+ * 
+ * logging.log(JSON.stringify(myObject)); //result: {"giorno": {"stand": "gold experience"}}
+ */
+ObjectUtils.setByPath = function (pObject, pKeyPath, pValue)
+{
+    var innerObject = pObject;
+    var lastKey = pKeyPath.reduce(function (currentKey, nextKey)
+    {
+        if (!innerObject[currentKey])
+            innerObject[currentKey] = {};
+        innerObject = innerObject[currentKey];            
+        return nextKey;
+    });
+    innerObject[lastKey] = pValue;
+    return pObject;
+}
+
 /**
  * Class containing functions for sequential numbers
  * Do not create an instance of this!
diff --git a/process/ViewTemplateData_lib/ViewTemplateData_lib.aod b/process/ViewTemplateData_lib/ViewTemplateData_lib.aod
index 5bb454846588aa47368b0a1b4dcba63e3540fb71..c176378fed5c683a712cb73660d8c09f2329ec9d 100644
--- a/process/ViewTemplateData_lib/ViewTemplateData_lib.aod
+++ b/process/ViewTemplateData_lib/ViewTemplateData_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>ViewTemplateData_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/ViewTemplateData_lib/process.js</process>
diff --git a/process/Workflow_lib/Workflow_lib.aod b/process/Workflow_lib/Workflow_lib.aod
index 3045e31bec24acabc4d44347f9c8f91fc613e9c6..bff9603a4c8686ef9c379fbd4690b665a7ab6c33 100644
--- a/process/Workflow_lib/Workflow_lib.aod
+++ b/process/Workflow_lib/Workflow_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>Workflow_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/Workflow_lib/process.js</process>
diff --git a/process/Workflow_lib/process.js b/process/Workflow_lib/process.js
index 375b30cc06694d778e6d78eafe3e31288ab804b3..baa1aa8dd3a01987ff1b06d66d7f6d33000fefcc 100644
--- a/process/Workflow_lib/process.js
+++ b/process/Workflow_lib/process.js
@@ -1,3 +1,4 @@
+import("Employee_lib");
 import("system.process");
 import("Util_lib");
 import("system.text");
@@ -14,6 +15,7 @@ import("system.net");
 import("system.auth");
 import("system.util");
 import("MimeType_lib");
+import("Observation_lib");
 
 /**
  * Provides general functions for working with workflows and the workflow engine.
@@ -46,18 +48,15 @@ WorkflowUtils.openNewInstance = function (pVariables, pTargetIds, pTargetContext
 {
     if ((!pTargetIds || pTargetIds.length === 0) && pSelectionFilter)
         pTargetIds = [];
-    else if (!pTargetIds)
-        pTargetIds = [WorkflowVariables.TARGET_ID.getDefaultValue()];
     if (!pVariables)
         pVariables = {};
     
     Object.assign(pVariables, WorkflowVariables.getTargetVariables(pTargetIds, pTargetContext));
     
     neon.openContext("WorkflowLauncher", "WorkflowLauncherEdit_view", null, neon.OPERATINGSTATE_VIEW, {
-        "ProcessVariables_param": JSON.stringify(pVariables),
-        "TargetContext_param": pVariables[WorkflowVariables.TARGET_CONTEXT()],
-        "TargetFilter_param": pSelectionFilter ? JSON.stringify(pSelectionFilter) : "",
-        "Targets_param": JSON.stringify(pTargetIds)
+        "ProcessVariables_param" : JSON.stringify(pVariables),
+        "TargetContext_param" : pVariables[WorkflowVariables.TARGET_CONTEXT()],
+        "TargetFilter_param" : pSelectionFilter ? JSON.stringify(pSelectionFilter) : ""
     });
 }
 
@@ -176,7 +175,19 @@ WorkflowSignalSender.deleted = function (pVariables, pTargetId, pTargetContext)
  */
 WorkflowSignalSender.eventHappened = function (pEvent, pTargetId, pTargetContext, pVariables)
 {
-    var variables = WorkflowVariables.getTargetVariables(pTargetId, pTargetContext);
+    let temp = {};
+    temp[ WorkflowVariables.TARGET_CONTEXT()] = pTargetContext;
+    temp[WorkflowVariables.TARGET_ID()] = pTargetId;
+    temp[WorkflowVariables.TRIGGER()] = pEvent;
+    let variables = WorkflowVariables.getAllVariablesValue(temp);
+    
+    var processConfig = process.createStartAsyncConfig().setName("workflowExtension_serverProcess")
+                                                        .setLocalVariables({"variablesWorkflow" : JSON.stringify(variables)})
+                                                        .setShowErrorDialog(true)
+                                                        .setUser(vars.get("sys.user"))
+                                                        .setThreadPriority(process.THREADPRIORITY_NORM)
+                                                        .setTimerType(process.TIMERTYPE_SERVER);
+    process.startAsync(processConfig);
     
     var signals = WorkflowSignalSender.getSignalConfig(variables[WorkflowVariables.TARGET_CONTEXT()], pEvent);
     signals.forEach(function (signal)
@@ -221,7 +232,7 @@ WorkflowSignalSender.eventHappened = function (pEvent, pTargetId, pTargetContext
  */
 WorkflowSignalSender.getSignalConfig = function (pContext, pEvent)
 {
-    var signals = newSelect("SIGNAL_NAME, TRIGGER_EVENT, OBJECT_CONDITION, OBJECT_TYPE, VARIABLES")
+    var signals = newSelect("SIGNAL_NAME, TRIGGER_EVENT, OBJECT_CONDITION, OBJECT_TYPE, VARIABLES", "Data_alias")
         .from("WORKFLOWSIGNAL")
         .whereIfSet("WORKFLOWSIGNAL.OBJECT_TYPE", pContext)
         .andIfSet("WORKFLOWSIGNAL.TRIGGER_EVENT", pEvent)
@@ -262,7 +273,7 @@ WorkflowVariables.TARGET_ID = function ()
  */
 WorkflowVariables.TARGET_ID.getDefaultValue = function ()
 {
-    return vars.get("$sys.uid");
+    return vars.get("$local.uid");
 }
 
 /**
@@ -281,6 +292,207 @@ WorkflowVariables.TARGET_CONTEXT.getDefaultValue = function ()
     return ContextUtils.getCurrentContextId();
 }
 
+/**
+ * Returns the variable name for the rowdata
+ */
+WorkflowVariables.ROWDATA = function ()
+{
+    return "rowdata";
+}
+
+/**
+ * Returns the default value for the rowdata
+ */
+WorkflowVariables.ROWDATA.getDefaultValue = function ()
+{
+    return JSON.stringify(vars.get("$local.rowdata"));
+}
+
+/**
+ * Returns the variable name for the rowdata
+ */
+WorkflowVariables.INITIAL_ROWDATA = function ()
+{
+    return "initialRowdata";
+}
+
+/**
+ * Returns the default value for the rowdata
+ */
+WorkflowVariables.INITIAL_ROWDATA.getDefaultValue = function ()
+{
+    return JSON.stringify(vars.get("$local.initialRowdata"));
+}
+
+/**
+ * Returns the variable name for the changed rows
+ */
+WorkflowVariables.CHANGED_ROWS = function ()
+{
+    return "changedRows";
+}
+
+/**
+ * Returns the default value for the changed rows
+ */
+WorkflowVariables.CHANGED_ROWS.getDefaultValue = function ()
+{
+    return JSON.stringify(vars.get("$local.changed"));
+}
+
+/**
+ * Returns the variable name for the changed rows types
+ */
+WorkflowVariables.CHANGED_ROWS_TYPES = function ()
+{
+    return "changedRowsTypes";
+}
+
+/**
+ * Returns the default value for the changed rows
+ */
+WorkflowVariables.CHANGED_ROWS_TYPES.getDefaultValue = function ()
+{
+    let isDBrc = project.getRecordContainerModel(ContextUtils.getEntity(ContextUtils.getCurrentContextId())).type ==  project.RECORDCONTAINERTYPE_DB;
+    let types = {}
+    vars.get("$local.changed").forEach(function(pField) { 
+            let splitedField = pField.split(".");
+            let fieldName;
+            if  (isDBrc) {
+                fieldName = splitedField[1]
+            } else {
+                fieldName = splitedField[0]
+            }
+            if (splitedField[1] != "displayValue" && vars.exists("$property." + fieldName + ".contentType") )
+                types[pField] = vars.get("$property." + fieldName + ".contentType");
+        });
+    return JSON.stringify(types);
+}
+
+/**
+ * Returns the variable name for the event user
+ */
+WorkflowVariables.EVENT_USER = function ()
+{
+    return "eventUser";
+}
+
+/**
+ * Returns the default value for the event user
+ */
+WorkflowVariables.EVENT_USER.getDefaultValue = function ()
+{
+    return EmployeeUtils.getCurrentUserId();
+}
+
+/**
+ * Returns the variable name for the event time
+ */
+WorkflowVariables.EVENT_TIME = function ()
+{
+    return "eventTime";
+}
+
+/**
+ * Returns the default value for the event time
+ */
+WorkflowVariables.EVENT_TIME.getDefaultValue = function ()
+{
+    return vars.get("$sys.date");
+}
+
+/**
+ * Returns the variable name for the trigger
+ */
+WorkflowVariables.TRIGGER = function ()
+{
+    return "trigger";
+}
+
+/**
+ * Returns the default value for the trigger
+ */
+WorkflowVariables.TRIGGER.getDefaultValue = function ()
+{
+    return null;
+}
+
+/**
+ * Returns the variable name for the contenttitle
+ */
+WorkflowVariables.CONTENTTITLE = function ()
+{
+    return "contenttitle";
+}
+
+/**
+ * Returns the default value for the contenttitle
+ */
+WorkflowVariables.CONTENTTITLE.getDefaultValue = function ()
+{
+    return vars.get("$field.#CONTENTTITLE");
+}
+
+/**
+ * Returns an array of the WorkflowVariables
+ * 
+ * @return {Array} array containing the variables name
+ */
+WorkflowVariables.getAllVariablesName = function ()
+{
+    return [
+        WorkflowVariables.TARGET_CONTEXT(), 
+        WorkflowVariables.TARGET_ID()
+    ]
+}
+
+/**
+ * Returns an array of the Variables, which contains the variables name
+ * 
+ * @return {Array} array containing the variables
+ */
+WorkflowVariables.getAllVariables = function ()
+{
+    return [
+        "CHANGED_ROWS", 
+        "CHANGED_ROWS_TYPES",
+        "EVENT_TIME", 
+        "EVENT_USER", 
+        "INITIAL_ROWDATA",
+        "ROWDATA", 
+        "TARGET_CONTEXT", 
+        "TARGET_ID",
+        "TRIGGER",
+        "CONTENTTITLE"
+    ]
+}
+
+/**
+ * Makes an object containing the variables
+ * 
+ * @param {Objcet} [pVariables] value for the variables, if not provided, the dafault value is used.
+ * The Object have to hand over in the following format:
+ * 
+ * {WorkflowVariable : value}
+ * 
+ * @return {Object} object containing the variables
+ */
+WorkflowVariables.getAllVariablesValue = function (pVariables)
+{
+    if (!pVariables) 
+        pVariables = {};
+    
+    let tempVariables = {};
+    WorkflowVariables.getAllVariables().forEach(function (v){
+        let tempName = WorkflowVariables[v]();
+        if (pVariables[tempName])
+            tempVariables[tempName] = pVariables[tempName]
+        else 
+            tempVariables[tempName] = WorkflowVariables[v].getDefaultValue();
+    });
+    return tempVariables;
+}
+
 /**
  * Makes an object containing the variables "targetId" and "targetContext"
  * 
diff --git a/process/WsValidation_lib/WsValidation_lib.aod b/process/WsValidation_lib/WsValidation_lib.aod
index a896dd2fdc17d3ddc9035ac2f5e6370513d0e9a7..fcb5a966b0dcbd779e3a055a9b6a968d42ae8b36 100644
--- a/process/WsValidation_lib/WsValidation_lib.aod
+++ b/process/WsValidation_lib/WsValidation_lib.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>WsValidation_lib</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/WsValidation_lib/documentation.adoc</documentation>
diff --git a/process/WsValidation_lib/process.js b/process/WsValidation_lib/process.js
index 03bccc71e669831494fb55307bacff0ba8b07156..817a2a184157b1aee566ee630eb564f8e8a6afeb 100644
--- a/process/WsValidation_lib/process.js
+++ b/process/WsValidation_lib/process.js
@@ -108,8 +108,6 @@ WsValidationType.get = function(pKey)
                     city: city,
                     cityExt: cityext,
                     country: pPlaceData.address.country_code.toUpperCase(), //4
-                    district: pPlaceData.address.district,
-                    region: pPlaceData.address.state_district,
                     state: pPlaceData.address.state,
                     road: road, //8
                     buildingNo: pPlaceData.address.house_number,
@@ -361,7 +359,6 @@ WsValidationUtils.setAddressFields = function(pJSON)
         "$field.CITY": data.city,
         "$field.COUNTRY": data.country,
         //"$field.DISTRICT": data.district, not needed currently
-        "$field.REGION": data.region,
         "$field.STATE": data.state,
         "$field.ADDRESS": data.road,
         "$field.BUILDINGNO": data.buildingNo
@@ -444,7 +441,7 @@ WsValidationFieldUtils.mainFieldStateProcess = function(pWsType)
  */
 WsValidationFieldUtils.wsFieldStateProcess = function(pWsType)
 {
-    if (!WsValidationUtils.isWsEnabled(pWsType))
+    if (!WsValidationUtils.isWsEnabled(pWsType) )
         return neon.COMPONENTSTATE_INVISIBLE;
     else
         return neon.COMPONENTSTATE_AUTO;
diff --git a/process/_all_test/_all_test.aod b/process/_all_test/_all_test.aod
index 4336a9ddb94b6e8c5741887bbfd4e636f23b0541..f65a8c72b0b9ade07fc33a65875810fbe9e3ba16 100644
--- a/process/_all_test/_all_test.aod
+++ b/process/_all_test/_all_test.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>_all_test</name>
   <title>[TEST] .All</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/_test_clientProcess/_test_clientProcess.aod b/process/_test_clientProcess/_test_clientProcess.aod
index d003fb54e120cf37ede7b6068a820e10a07e2574..083128043b009ec6417b6ecb0589e04ba2c4eead 100644
--- a/process/_test_clientProcess/_test_clientProcess.aod
+++ b/process/_test_clientProcess/_test_clientProcess.aod
@@ -1,12 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>_test_clientProcess</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/_test_clientProcess/documentation.adoc</documentation>
   <process>%aditoprj%/process/_test_clientProcess/process.js</process>
   <publishAsWebservice v="true" />
   <wsdl>%aditoprj%/process/_test_clientProcess/wsdl.wsdl</wsdl>
-  <loginTypeId>internal.none</loginTypeId>
+  <loginTypeId>
+    <element>internal.none</element>
+  </loginTypeId>
   <alias>Data_alias</alias>
   <variants>
     <element>EXECUTABLE</element>
diff --git a/process/_test_importer/_test_importer.aod b/process/_test_importer/_test_importer.aod
index 609067fbad20084a0ca5eef1fb0dcb1c6030f59d..86b1e22c42fded0be140b3dadad42671f76b3fa6 100644
--- a/process/_test_importer/_test_importer.aod
+++ b/process/_test_importer/_test_importer.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>_test_importer</name>
   <title>Importer</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/assignDistrict_serverProcess/assignDistrict_serverProcess.aod b/process/assignDistrict_serverProcess/assignDistrict_serverProcess.aod
new file mode 100644
index 0000000000000000000000000000000000000000..d97b7c010c54f541130a678f413a60e143de22ea
--- /dev/null
+++ b/process/assignDistrict_serverProcess/assignDistrict_serverProcess.aod
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
+  <name>assignDistrict_serverProcess</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <process>%aditoprj%/process/assignDistrict_serverProcess/process.js</process>
+  <alias>Data_alias</alias>
+  <variants>
+    <element>EXECUTABLE</element>
+  </variants>
+</process>
diff --git a/process/assignDistrict_serverProcess/process.js b/process/assignDistrict_serverProcess/process.js
new file mode 100644
index 0000000000000000000000000000000000000000..f3434cef31913e4ff8323905783bdf0a3f9710eb
--- /dev/null
+++ b/process/assignDistrict_serverProcess/process.js
@@ -0,0 +1,85 @@
+import("system.datetime");
+import("Sql_lib");
+import("system.db");
+import("system.util");
+import("system.translate");
+import("system.vars");
+import("system.notification");
+import("District_lib");
+
+var i;
+var districtData;
+var completeFilter;
+var res;
+
+var user = vars.get("$local.user");
+var arrDistrictIds = vars.get("$local.arrDistrictIds").split(";");
+var contactId = vars.get("$local.contactId");
+
+// Do the assignment for all transferred districts
+if (vars.get("$local.arrDistrictIds").length > 0 && arrDistrictIds.length > 0)
+{   
+    var message;
+    var description;
+
+    var newAssigned = 0;
+    var unchanged = 0;
+    var invalid = 0;
+
+    var startTime = datetime.date();
+
+    //Assign all transferred districts
+    for (i=0; i<arrDistrictIds.length; i++)
+    {   
+        //Build the complete hierarchical filter for every district
+        districtData = DistrictUtils.getDataFromDistrict(arrDistrictIds[i]);
+        completeFilter = DistrictUtils.getAppliedFilter(districtData[0], districtData[1]);
+
+        //Automatic assignment
+        res = DistrictUtils.assignDistrict(arrDistrictIds[i], completeFilter);    
+
+        newAssigned += res.newAssigned;
+        unchanged += res.unchanged;
+        invalid += res.invalid;    
+    }
+
+    if (arrDistrictIds.length == 1)
+    {
+        var districtName = DistrictUtils.getDistrictName(arrDistrictIds[0]);
+        message = translate.withArguments("Assignment of district \"%0\" is completed!", [districtName]);    
+    }
+    else
+        message = translate.text("Assignment of all selected districts is completed!");
+
+    // Notification at the end of the assignment                        
+    description = translate.withArguments("%0 companies were newley assigned. \n" +
+                      "%1 companies are no longer assigned (these assignments got the status 'review'). \n" +
+                      "%2 valid assignments were unchanged.\n" +
+                      "The Process took %3 seconds.",
+                      [newAssigned, invalid, unchanged, Math.round((datetime.date() - startTime) / datetime.ONE_SECOND)]);
+    notification.addNotification(util.getNewUUID(), null, null, null, "DistrictAssigned", notification.PRIO_NORMAL, 2, notification.STATE_UNSEEN, [user], message, description);    
+}
+
+
+//Assign a new organisation to all according districts with auto assignment is true
+//NOTICE: The new organisation must be part of the filter of the district
+if (contactId != "")
+{        
+    //Get all filters where auto assingment is true
+    var allAutoDistricts = newSelect("DISTRICTID")
+                            .from("DISTRICT")
+                            .where("DISTRICT.DISTRICT_AUTOADD", 1)
+                            .arrayColumn();       
+
+    for (i=0; i<allAutoDistricts.length; i++)
+    {    
+        //Build the complete filter 
+        districtData = DistrictUtils.getDataFromDistrict(allAutoDistricts[i]);
+        completeFilter = DistrictUtils.getAppliedFilter(districtData[0], districtData[1]);   
+
+        //Check if the new contactid is part ot this filter
+        //if so, write data in table districtcontact
+        res = DistrictUtils.assignDistrict(allAutoDistricts[i], completeFilter, contactId);            
+    }                            
+}
+    
\ No newline at end of file
diff --git a/process/autostartNeon/autostartNeon.aod b/process/autostartNeon/autostartNeon.aod
index 5cae2b54c4df27afd135f072eb2e42809dfd90c7..53cfbced0376808b3cc01e1a318a0865f39b4d77 100644
--- a/process/autostartNeon/autostartNeon.aod
+++ b/process/autostartNeon/autostartNeon.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>autostartNeon</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/autostartNeon/process.js</process>
diff --git a/process/blobHandler/blobHandler.aod b/process/blobHandler/blobHandler.aod
index ea16fe9164248509d582008e59c1fb8c3b11f554..df5da687878fc7ea5c3aff68e901c195a1883c9b 100644
--- a/process/blobHandler/blobHandler.aod
+++ b/process/blobHandler/blobHandler.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>blobHandler</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/blobHandler/process.js</process>
diff --git a/process/buildSerialLetter_serverProcess/buildSerialLetter_serverProcess.aod b/process/buildSerialLetter_serverProcess/buildSerialLetter_serverProcess.aod
index 5474adbf834c476e62b2ea0402e39d29c1e4ff3a..c5fa5bae70e0432c332962e39305acfe37e3948e 100644
--- a/process/buildSerialLetter_serverProcess/buildSerialLetter_serverProcess.aod
+++ b/process/buildSerialLetter_serverProcess/buildSerialLetter_serverProcess.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>buildSerialLetter_serverProcess</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/buildSerialLetter_serverProcess/documentation.adoc</documentation>
diff --git a/process/ctiCall/ctiCall.aod b/process/ctiCall/ctiCall.aod
index efab080bf759f15b9fc8ae22098447a6d810a32d..6614528e0386b2a7b3fc4b705e1861b64445e33e 100644
--- a/process/ctiCall/ctiCall.aod
+++ b/process/ctiCall/ctiCall.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>ctiCall</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/ctiCall/process.js</process>
diff --git a/process/ctiServerEvents/ctiServerEvents.aod b/process/ctiServerEvents/ctiServerEvents.aod
index 0b6ce1bf16282c51184affeb49fc8a91106f955b..4f02a720a23094e2ff2425a8f94dc52c0f2d2730 100644
--- a/process/ctiServerEvents/ctiServerEvents.aod
+++ b/process/ctiServerEvents/ctiServerEvents.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>ctiServerEvents</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/ctiServerEvents/process.js</process>
diff --git a/process/emailWrite/emailWrite.aod b/process/emailWrite/emailWrite.aod
index 60d3efe9f572e652c49a01965c3cc95514253914..a752349818c0a8632c76c4167a1e9ed84af7cf51 100644
--- a/process/emailWrite/emailWrite.aod
+++ b/process/emailWrite/emailWrite.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>emailWrite</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/emailWrite/process.js</process>
diff --git a/process/ewsSyncCalendarPermissions_serverProcess/ewsSyncCalendarPermissions_serverProcess.aod b/process/ewsSyncCalendarPermissions_serverProcess/ewsSyncCalendarPermissions_serverProcess.aod
index 703deab5221c889c45a77b3a60b6ab4b5f58e31e..353165e368d282145e8820da01ae290c587b5198 100644
--- a/process/ewsSyncCalendarPermissions_serverProcess/ewsSyncCalendarPermissions_serverProcess.aod
+++ b/process/ewsSyncCalendarPermissions_serverProcess/ewsSyncCalendarPermissions_serverProcess.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>ewsSyncCalendarPermissions_serverProcess</name>
   <title>Synchronize calendar permissions from Exchange to ADITO</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/ewsSyncContacts_serverProcess/ewsSyncContacts_serverProcess.aod b/process/ewsSyncContacts_serverProcess/ewsSyncContacts_serverProcess.aod
new file mode 100644
index 0000000000000000000000000000000000000000..fbbe02fc2fff34c845acc1f03e22f34836da4ab6
--- /dev/null
+++ b/process/ewsSyncContacts_serverProcess/ewsSyncContacts_serverProcess.aod
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
+  <name>ewsSyncContacts_serverProcess</name>
+  <title>Sync Exchange Contacts</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <process>%aditoprj%/process/ewsSyncContacts_serverProcess/process.js</process>
+  <alias>Data_alias</alias>
+  <variants>
+    <element>EXECUTABLE</element>
+    <element>LIBRARY</element>
+  </variants>
+</process>
diff --git a/process/ewsSyncContacts_serverProcess/process.js b/process/ewsSyncContacts_serverProcess/process.js
new file mode 100644
index 0000000000000000000000000000000000000000..fd420916d9172146ce5f60943ae629bf8578cd82
--- /dev/null
+++ b/process/ewsSyncContacts_serverProcess/process.js
@@ -0,0 +1,588 @@
+import("Util_lib");
+import("system.project");
+import("system.favorite");
+import("system.db");
+import("system.result");
+import("EwsClient_lib");
+import("system.text");
+import("Address_lib");
+import("Communication_lib");
+import("system.vars");
+import("Sql_lib");
+import("system.tools");
+import("system.logging");
+import("EwsClientSync_lib");
+
+//inserting new Data in the asys_synccontact table and deleting those which aren't anymore in the favorite context
+EwsClientSyncUtils.prepareContactSyncTable();
+
+//start Sync with Exchange
+var msg = runSync();
+
+if(msg.length){
+    result.string(msg.join("\n"));
+}
+
+function runSync(){
+    var doDebug = false;
+    var retMsg = [];
+    
+    var syncUser = newSelect("distinct USER_ID").from("AB_SYNCCONTACT").arrayColumn();
+    
+    for (var i= 0 ; i < syncUser.length; i++)
+    {
+        var user = tools.getUserByAttribute(tools.NAME, [syncUser[i]], tools.PROFILE_DEFAULT);
+        if (user)
+        {
+            var mailBox = user[tools.PARAMS][tools.EXCHANGE_EMAIL];
+            
+            if(!mailBox)//use the mail of the user as backup exchangeMail adress
+                mailBox = user[tools.PARAMS][tools.EMAIL];
+            
+            
+            var exAlias = user[tools.PARAMS][tools.CALENDAR_ALIAS]; 
+            
+            if (!exAlias)
+                exAlias = project.getInstanceConfigValue("calendarAlias", null);
+            
+            var login = user[tools.TITLE]; 
+            var lastRunDate = user[tools.PARAMS]["lastEwsSyncContact"];
+            var runDate = vars.get("$sys.date");
+            user[tools.PARAMS]["lastEwsSyncContact"] = runDate;
+            
+            if (mailBox != "" && exAlias != "")
+            {                       
+                if(doDebug) logging.log("ContactSync for User: " + login + " started")         
+  
+                let delContacts = EWSdeleteContactsForUser(syncUser[i], mailBox, exAlias, login, doDebug); 
+                let updateContacts = EWSupdateContactsForUser(syncUser[i], mailBox, exAlias, lastRunDate, login, doDebug);
+                let insertContacts = EWSinsertContactsForUser(syncUser[i], mailBox, exAlias, runDate, login, doDebug);
+                    
+                if(delContacts.length)
+                    retMsg.push(delContacts);
+                if(updateContacts.length)    
+                    retMsg.push(updateContacts);
+                if(insertContacts.length)
+                    retMsg.push(insertContacts);
+
+                tools.updateUser(user);
+ 
+                if(doDebug) logging.log("ContactSync for User: " + login + " completed")                          
+            }
+            else
+            {
+                retMsg.push(["No exchange configuration exists for user " + login]);
+            }
+        }
+    }    
+    if(doDebug) logging.log("EWSContactSync completed");
+    
+    return retMsg;
+}
+
+/**************************************************************************************************/
+
+/*
+ * deletes the Synced Contacts for the passed User
+ * 
+ * @param {String} pUserID ID of the User for which Contact should be removed from sync
+ * @param {String} pMailBox Exchange Mail
+ * @param {String} pAlias name of the Exchange Alias
+ * @param {String} pUser Login of the User
+ * @param {boolean} doDebug 
+ *
+*/
+function EWSdeleteContactsForUser(pUserID, pMailBox, pAlias, pUser, doDebug)
+{
+    //delete all Entrys with a DATE_DEL tag, those were removed between the last import and yet
+    var cond = newWhere("AB_SYNCCONTACT.DATE_DEL is not null").and("AB_SYNCCONTACT.USER_ID", pUserID);
+    
+    var delContacts = newSelect("AB_SYNCCONTACT.EXCHANGEID")
+    .from("AB_SYNCCONTACT")
+    .where(cond)
+    .and("AB_SYNCCONTACT.EXCHANGEID is not null")
+    .arrayColumn();
+    
+    var deletions = Utils.clone(delContacts);
+    
+    var exchangeids = [];
+    while(deletions.length > 0)
+    {
+        let deletionPart = deletions.splice(0, 200);
+        try{
+            exchangeids = exchangeids.concat(EwsSyncContactUtils.deleteContactByID(pAlias, deletionPart, pMailBox, doDebug));
+        }
+        catch(ex)
+        {
+            let errMsg = "Error while calling the plugin: " + logging.toLogString(ex.rhinoException != undefined ? ex.rhinoException : ex, true) + "\r\n"; 
+            logging.log(errMsg);
+            return [errMsg];
+        }                
+    }
+      
+    var errorItems = []; 
+    var notFoundItems = []; 
+    var deletedItems = [];
+    
+    if(exchangeids.length > 0)
+    {
+        //no errors during deletion in Exchange
+        while (exchangeids[0].length > 0) 
+        {
+            let exchangeidsPart = exchangeids[0].splice(0, 30);//max limit 30
+                
+            cond.and("AB_SYNCCONTACT.EXCHANGEID", exchangeidsPart, SqlBuilder.IN()).deleteData();
+            deletedItems = deletedItems.concat(exchangeidsPart);
+        }
+        
+        //exchange Entrys with errors for deleting
+        while (exchangeids[1].length > 0) 
+        {
+            if(doDebug) logging.log("Exchange Entrys with Errors: " + exchangeids[1].length);
+            var deletes = [];
+        
+            let exchangeidsPart = exchangeids[1].splice(0, 30);//max limit 30
+                
+            for (let i = 0; i < exchangeidsPart.length; i++) 
+            {
+                if(exchangeidsPart[i][3] == "ErrorItemNotFound")
+                {
+                    deletes.push(exchangeidsPart[i][0]);
+                    notFoundItems.push(exchangeidsPart[i][0] , pUserID);
+                }
+                else
+                {
+                    errorItems.push(exchangeidsPart[i][0] , pUserID);
+                }
+            }
+            
+            if(deletes.length > 0)
+            {
+                let affectedRows = cond.and("AB_SYNCCONTACT.EXCHANGEID", deletes, SqlBuilder.IN()).deleteData();
+                if(doDebug) logging.log("Anzahl der gelöschten Einträge: " + affectedRows);
+                deletedItems = deletedItems.concat(deletes);
+            }
+            
+            //clearing the where condition and preset it to it's origin condition
+            cond.clearWhere();
+            cond.where("AB_SYNCCONTACT.DATE_DEL is not null").and("AB_SYNCCONTACT.USER_ID", pUserID);
+        }
+        
+        if(doDebug && notFoundItems.length > 0)
+            logging.log("EWSSYnc not found items: " + notFoundItems.toSource());
+        
+        if(errorItems.length > 0)
+            logging.log("EWSSYnc error items: " + errorItems.toSource());
+        
+        if(doDebug && deletedItems.length > 0)
+            logging.log("EWSSYnc deleted items: " + deletedItems.toSource());
+    }
+    return errorItems;
+}
+
+
+
+/*
+ * updates the Synced Contacts for the passed User
+ * 
+ * @param {String} pUserID ID of the User for which Contact should be updated
+ * @param {String} pMailBox Exchange Mail
+ * @param {String} pAlias name of the Exchange Alias
+ * @param {String} pRunDate lastRunDate of the sync
+ * @param {String} pUser Login of the User
+ * @param {boolean} doDebug 
+ *
+*/
+function EWSupdateContactsForUser(pUserID, pMailBox, pAlias, pRunDate, pUser, doDebug) 
+{   
+    var runDate = (!pRunDate) ? 0 : pRunDate;
+       
+    //get Contacts for update 
+    var cond = newWhere("AB_SYNCCONTACT.EXCHANGEID is not null")
+    .and("AB_SYNCCONTACT.USER_ID", pUserID)
+    .and("AB_SYNCCONTACT.DATE_EDIT", runDate, SqlBuilder.GREATER());
+    
+    var contactsData = newSelect("AB_SYNCCONTACT.CONTACT_ID")
+    .from("AB_SYNCCONTACT")
+    .where(cond)
+    .arrayColumn();
+    
+    var retMsg = [];
+    
+    if (contactsData.length > 0)
+    {
+        //get data with config
+        var config = EwsClientSyncUtils.getPlaceholders(pUserID);
+        var data = getAddressData(contactsData, config);
+        
+        //data pos 0 contains column Name - use them as key for the User object
+        var header = [];
+        for (let i = 0; i < data[0].length; i++)
+        {
+            header.push(data[0][i].replace(new RegExp("[{@}]","g"), "")); //replace start and end delimeter which are set in the getAdressData Method
+        }
+        
+        var dataObj, addrObj, addrValueObjBusiness, addrValueObjHome, addrValueObjOther, exchangeId;
+        var objects = [];
+        //loop through array at pos 1, header has been already collected
+        for (let i = 1; i < data.length; i++)
+        {
+            //dataObj at pos data[i][j] will match to the header[j]
+            dataObj = new Object();
+            addrObj = new Object();
+            addrValueObjBusiness = {};
+            addrValueObjHome = {};
+            addrValueObjOther = {};
+            
+            //addressdata will allocated with tags (Business_, Home_, Other_) to each object
+            for (let j = 0; j < header.length; j++)
+            {
+                addDataToValueObjects(header[j], data[i][j], dataObj, addrValueObjBusiness, addrValueObjHome, addrValueObjOther);
+            }
+            
+            //build addr object out of the objects generated above 
+            buildAddrObject(addrObj, addrValueObjHome, addrValueObjBusiness, addrValueObjOther);
+            
+            // Get the exchangeID from the data-object for update
+            let exchangeId = dataObj["EXCHANGEID"].value;
+            objects.push([exchangeId, dataObj, addrObj]);
+        }
+        
+        var errorItems = []; 
+        var notFoundItems = []; 
+        var deletedItems = [];
+        
+        while(objects.length > 0)
+        {
+            let objectsPart = objects.splice(0, 200);//currently max limit: 200
+            try
+            {
+                exchangeIds = EwsSyncContactUtils.updateContacts(pAlias, pMailBox, objectsPart, doDebug);//run plugin
+            }
+            catch(ex)
+            {
+                let errMsg = "Error while calling the plugin: " + logging.toLogString(ex.rhinoException != undefined ? ex.rhinoException : ex, true) + "\r\n"; 
+                logging.log(errMsg);
+                return [errMsg];
+            }
+        
+            //exchangeIDs[1] array for the contacts which got an error
+            while(exchangeIds[1].length > 0) 
+            {
+                var deletes = [];
+                    
+                let exchangeIdsPart = exchangeIds[1].splice(0, 30);
+                
+                for (let i = 0; i < exchangeIdsPart.length; i++) 
+                {
+                    //contact which aren't in Exchange anymore can be deleted out of the sync
+                    if(exchangeIdsPart[i][3] == "ErrorItemNotFound")
+                    {
+                        deletes.push(exchangeIdsPart[i][0]);
+                        notFoundItems.push(exchangeIdsPart[i][0] , pUserID);
+                    }
+                    else
+                    {
+                        errorItems.push(exchangeIdsPart[i].toSource(), pUserID);
+                        retMsg.push( exchangeIDs[1][0] + " : " + exchangeIDs[1][2] + " " + exchangeIDs[1][3] );
+                    }
+                }
+                    
+                if(deletes.length > 0)
+                {
+                    //delete out of sync table
+                    db.deleteData("AB_SYNCCONTACT", " CONTACT_ID in  ('" + deletes.join("', '") + "') and USER_ID = '" + pUserID + "'", "Data_alias", 300000);
+                    
+                    //remove set favorite for those which are delted - otherwise they would appear in the next run as 'new' Contacts
+                    EwsClientSyncUtils.removeFromFavorite(deletes, pUserID);
+                    deletedItems = deletedItems.concat(deletes);
+                }
+            }
+        }//while object > 0
+            
+        if(doDebug && notFoundItems.length > 0)
+            logging.log("EWSSYnc not found items: " + notFoundItems.toSource());
+        
+        if(errorItems.length > 0)
+            logging.log("EWSSYnc error items: " + errorItems.toSource());
+        
+        if(doDebug && deletedItems.length > 0)
+            logging.log("EWSSYnc deleted items: " + deletedItems.toSource());
+    }//contactsData.length > 0 
+    
+    return retMsg; 
+}
+
+/*
+ * updates the Synced Contacts for the passed User
+ * 
+ * @param {String} pUserID ID of the User for which Contact should be updated
+ * @param {String} pMailBox Exchange Mail
+ * @param {String} pAlias name of the Exchange Alias
+ * @param {String} pRunDate lastRunDate of the sync
+ * @param {String} pUser Login of the User
+ * @param {boolean} doDebug 
+ *
+*/
+function EWSinsertContactsForUser(pUserID, pMailBox, pAlias, pRunDate, pUser, doDebug)
+{    
+    var cond = newWhere("AB_SYNCCONTACT.EXCHANGEID is null")
+    .and("AB_SYNCCONTACT.USER_ID", pUserID); 
+    
+    var contactsData = newSelect("AB_SYNCCONTACT.CONTACT_ID")
+    .from("AB_SYNCCONTACT")
+    .where(cond)
+    .arrayColumn();
+    var retMsg = [];
+    if (contactsData.length > 0)
+    {   
+        var config = EwsClientSyncUtils.getPlaceholders(pUserID)
+        var data = getAddressData(contactsData, config);
+        
+        var header  = [];
+        for (let i = 0; i < data[0].length; i++)
+        {
+            header.push(data[0][i].replace(new RegExp("[{@}]","g"), ""))
+        }
+        
+        var dataObj;
+        var addrObj;
+        var objects = [];
+        var addrValueObjHome = {};
+        var addrValueObjBusiness = {};
+        var addrValueObjOther = {};
+       
+        
+        //get ID of the ADITO-Ordners 
+        var folderID = getExchangeFolderID(pAlias, pMailBox, "ADITO");
+        if (folderID != "")
+        {
+            //loop through array at pos 1, header has been already collected
+            for (var i = 1; i < data.length; i++)
+            {
+                dataObj = new Object();
+                addrObj = new Object();
+                addrValueObjBusiness = {};
+                addrValueObjHome = {};
+                addrValueObjOther = {};
+                
+                // The address data gets assigned to the respective object
+                for (let j = 0; j < header.length; j++)
+                {
+                    addDataToValueObjects(header[j], data[i][j], dataObj, addrValueObjBusiness, addrValueObjHome, addrValueObjOther);
+                }
+                
+                buildAddrObject(addrObj, addrValueObjHome, addrValueObjBusiness, addrValueObjOther);
+                objects.push([dataObj, addrObj]);
+            }
+            
+            while(objects.length > 0)
+            {    
+                let objectPart = objects.splice(0, 200); //current limit 200
+                
+
+                let exchangeIDs = EwsSyncContactUtils.insertContactsToFolder(pAlias, pMailBox, folderID, objectPart, doDebug);
+         
+                while(exchangeIDs[0].length > 0) 
+                {
+                    let exchangeIDsPart = exchangeIDs[0].splice(0, 30);//current limit 30
+                    updateADITOContactsAfterAction(exchangeIDsPart, pUserID);
+                }
+                
+                //when errors occured 
+                while(exchangeIDs[1].length > 0)
+                {
+                    retMsg.push( exchangeIDs[1][0] + " : " + exchangeIDs[1][2] + " " + exchangeIDs[1][3] )
+                }
+            }//objects.length > 0 
+        }
+        else 
+            return ["No folder 'ADITO' for account '" + pMailBox + "' and user '" + pUser + "' found"];
+    }
+    return retMsg;
+}
+
+
+/*
+ * allocates passed headers/values to their object
+ * 
+ * @param pHeader {String} fieldname in exchange
+ * @param pData {String} value for Header
+ * @param pDataObj {{}} object for contactdata
+ * @param pAddrValueObjBusiness {{}} adressobject Organisations
+ * @param pAddrValueObjHome {{}} adressobject homeadress
+ * @param pAddrValueObjOther {{}} adressobject others
+ * 
+ */
+function addDataToValueObjects(pHeader, pData, pDataObj, pAddrValueObjBusiness, pAddrValueObjHome, pAddrValueObjOther)
+{
+    //with used appendChild method the pData values will be escaped automatically
+    
+    //differ contactdata and adressdata
+    //none of the abbreviation defined by the config
+    var headerNotNull = ["EmailAdress1", "EmailAddress2", "BusinessPhone", "BusinessHomepage", "HomePhone", "HomeFax", "OtherFax", "MobilePhone"];
+    
+    if (pData != "" || headerNotNull.indexOf(pHeader) == -1)
+    {
+        if (pHeader.indexOf("Business_") == -1 && pHeader.indexOf("Home_") == -1 && pHeader.indexOf("Other_") == -1 && pData != "")
+        {
+            pDataObj[pHeader] = {
+                "key" : pHeader,
+                "value" : pData
+            };
+        }
+        else 
+        {
+            //Organisation Adress
+            if (pHeader.indexOf("Business") != -1)
+            {
+                pHeader = pHeader.replace("Business_", "");
+                pAddrValueObjBusiness[pHeader] = {
+                    "key" : pHeader,
+                    "value" : pData
+                }
+            }
+            //Privatadress
+            else if (pHeader.indexOf("Home") != -1)
+            {
+                pHeader = pHeader.replace("Home_", "");
+                pAddrValueObjHome[pHeader] = {
+                    "key" : pHeader,
+                    "value" : pData
+                }
+            }
+            //other Adress
+            else if (pHeader.indexOf("Other") != -1)
+            {
+                pHeader = pHeader.replace("Other_", "");
+                pAddrValueObjOther[pHeader] = {
+                    "key" : pHeader,
+                    "value" : pData
+                }
+            }
+        }
+    }
+}
+
+/*
+ * Build Address Object for the plugin call
+ * 
+ * @param pAddrObject {{}} addressobject for call
+ * @param pAddrValueObjHome {{}} adressobject with Privatadresse
+ * @param pAddrValueObjBusiness {{}} adressobject for Organisation
+ * @param pAddrValueObjOther {{}} adressobject for other adresses
+ */
+function buildAddrObject(pAddrObject, pAddrValueObjHome, pAddrValueObjBusiness, pAddrValueObjOther) 
+{
+    var homeOk = false;
+    var businessOk = false;
+    var otherOk = false;
+    
+    for each (var obj in pAddrValueObjHome)
+    {
+        if (obj["value"] != "")
+        {
+            homeOk = true;
+            break;
+        }
+    }
+    for each (obj in pAddrValueObjBusiness)
+    {
+        if (obj["value"] != "")
+        {
+            businessOk = true;
+            break;
+        }
+    }
+    for each (obj in pAddrValueObjOther)
+    {
+        if (obj["value"] != "")
+        {
+            otherOk = true;
+            break;
+        }
+    }
+    
+    if (homeOk)
+    {
+        pAddrObject["Home"] = {
+            "addressKey" : "Home",
+            "value" : pAddrValueObjHome
+        };
+    }
+    if (businessOk)
+    {
+        pAddrObject["Business"] = {
+            "addressKey" : "Business",
+            "value" : pAddrValueObjBusiness
+        };
+    }
+    if (otherOk)
+    {
+        pAddrObject["Other"] = {
+            "addressKey" : "Other",
+            "value" : pAddrValueObjOther
+        };
+    }
+}
+
+/*
+ * returns the exchangeID of the ADITO Folder of an exchange User
+ * if no folder is passed all folderIDs will be returned
+ * 
+ * @param {String} pAlias exchange-alias
+ * @param {String} pMailBox mail-adress of the user
+ * @param {String} pFolderName name of the folder for which the ID should returned none if all
+ */
+function getExchangeFolderID(pAlias, pMailBox, pFolderName)
+{
+    var folders = EwsSyncContactUtils.getContactFolders(pAlias, pMailBox);
+    
+    for ( var i = 0; i < folders.length; i++)
+    {    
+        if( folders[i].name.toUpperCase() == pFolderName.toUpperCase() )
+            return folders[i].id;
+    }
+    return "";
+}
+
+function escapeValuesForXML(pValue){
+    
+    var reps = {};
+    reps["&"]  = "&amp;";
+    reps["\""] = "&quot";
+    reps["'"]  = "&apos";
+    reps["<"]  = "&lt;";
+    reps[">"]  = "&gt;";
+    
+    pValue = text.replaceAll(pValue, reps).trim();
+    
+    return pValue
+}
+
+/*
+* Updates the Edit-Date and the exchangeID into the associated data set of AOSYS_SYNCCONTACT
+* If the ExchangeID isn't passed, then it will just update DATE_EDIT
+*
+* @param {Array<Array>} pUpdateValues 2d-array in the following form: [[CONTACTID, matching new EXCHANGEID]]
+* @param {String} pUserID ID of the corresponding user
+*/
+function updateADITOContactsAfterAction(pUpdateValues, pUserID)
+{
+    var cols = ["EXCHANGEID"];
+    var types = db.getColumnTypes("AB_SYNCCONTACT", cols);
+    var vals;
+    var cond = "";
+    var updArr = [];
+    for (let i = 0; i < pUpdateValues.length; i++)
+    {
+        vals = [];
+        // Get EXCHANGEID
+        if (pUpdateValues[i][1])
+            vals.push(pUpdateValues[i][1]);
+
+        cond = "CONTACT_ID = '" + pUpdateValues[i][0] + "' and USER_ID = '" + pUserID + "'";
+        updArr.push(["AB_SYNCCONTACT", cols, types, vals, cond]);
+    }
+    db.updates(updArr, "Data_alias", 300000);
+}
diff --git a/process/exportLiquibaseContent_serverProcess/exportLiquibaseContent_serverProcess.aod b/process/exportLiquibaseContent_serverProcess/exportLiquibaseContent_serverProcess.aod
index 117726612c9ffdc42c5f4e04273f6b9acf1c4094..81c7818957427295a4efcf597330f34df0a8bda2 100644
--- a/process/exportLiquibaseContent_serverProcess/exportLiquibaseContent_serverProcess.aod
+++ b/process/exportLiquibaseContent_serverProcess/exportLiquibaseContent_serverProcess.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>exportLiquibaseContent_serverProcess</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/exportLiquibaseContent_serverProcess/documentation.adoc</documentation>
diff --git a/process/exportLiquibaseSystemalias_serverProcess/exportLiquibaseSystemalias_serverProcess.aod b/process/exportLiquibaseSystemalias_serverProcess/exportLiquibaseSystemalias_serverProcess.aod
index 9437d3b30537612af789f265de1b2a9375903711..2f46ffd47d194aa90c1d54f61acb1682b485ca48 100644
--- a/process/exportLiquibaseSystemalias_serverProcess/exportLiquibaseSystemalias_serverProcess.aod
+++ b/process/exportLiquibaseSystemalias_serverProcess/exportLiquibaseSystemalias_serverProcess.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>exportLiquibaseSystemalias_serverProcess</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/exportLiquibaseSystemalias_serverProcess/process.js</process>
diff --git a/process/getDocxDocument_serverProcess/getDocxDocument_serverProcess.aod b/process/getDocxDocument_serverProcess/getDocxDocument_serverProcess.aod
index cb4430fb0bcd05511a4cbdf794dc665aa2e28bc1..fe54f57b76aac1e81d0e497629b7ab0aaa33931c 100644
--- a/process/getDocxDocument_serverProcess/getDocxDocument_serverProcess.aod
+++ b/process/getDocxDocument_serverProcess/getDocxDocument_serverProcess.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>getDocxDocument_serverProcess</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/getDocxDocument_serverProcess/documentation.adoc</documentation>
diff --git a/process/importLead_serverProcess/importLead_serverProcess.aod b/process/importLead_serverProcess/importLead_serverProcess.aod
index 4316e4127172656ebfb03e03a6d853daeb077a20..a73a9e8246f9160d8c50abddfc0bc0d1863dc050 100644
--- a/process/importLead_serverProcess/importLead_serverProcess.aod
+++ b/process/importLead_serverProcess/importLead_serverProcess.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>importLead_serverProcess</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/importLead_serverProcess/process.js</process>
diff --git a/process/importLead_serverProcess/process.js b/process/importLead_serverProcess/process.js
index 35ac42b2b31f5cd4b801573bd295413747352f42..96f94dc8f09a1f7b2b868f99015e839e65025b46 100644
--- a/process/importLead_serverProcess/process.js
+++ b/process/importLead_serverProcess/process.js
@@ -1,3 +1,4 @@
+import("system.question");
 import("system.logging");
 import("system.notification");
 import("system.translate");
@@ -66,133 +67,136 @@ var posOrgName = getFieldPos(ImportFieldDef, "NAME");
 var posOrginfo = getFieldPos(ImportFieldDef, "INFO");
 
 // Data without headline
-var dsanz = 1;
+var dataRowIndex = 1;
 
 // set the mappings
 LeadImportUtils.mapping = LeadImportUtils.getMapping(importdefid);
 
-
-try
+if (FieldDef.filter(function (fieldDef) { return (fieldDef[1] == "LASTNAME" || fieldDef[1]  == "NAME"); }).length > 0)
 {
-    for (; dsanz < data.length; dsanz++)
+    try
     {
-        //iterate over the fielddefinitions and set the values
-        var impvalues = LeadImportUtils.addArray(data[dsanz], source);	
-        impvalues.push(ImportDate);
-        
-        //  if there is no BUILDINGNO the select it from the ADDRESS
-        if (noBuildingNr)
+        for (; dataRowIndex < data.length; dataRowIndex++)
         {
-            var pos =  addressPos[0];
-            var buildingNr = "";
-            var address = impvalues[pos];
-
-            if (address != "")
+            //iterate over the fielddefinitions and set the values
+            var impvalues = LeadImportUtils.addArray(data[dataRowIndex], source);	
+            impvalues.push(ImportDate);
+        
+            //  if there is no BUILDINGNO the select it from the ADDRESS
+            if (noBuildingNr)
             {
-                // split ADDRESS and BUILDINGNO
-                var arr = address.match(/^[^0-9]+|[0-9]+.*$/g);
-                
-                //Regexp can throw an error - then the array is empty
-                if (arr && arr[0])
+                var pos =  addressPos[0];
+                var buildingNr = "";
+                var address = impvalues[pos];
+
+                if (address != "")
                 {
-                    impvalues[pos] = arr[0].replace(/(^\s+)|(\s+$)/g,"");
-                    if (arr[1]) buildingNr = arr[1];
+                    // split ADDRESS and BUILDINGNO
+                    var arr = address.match(/^[^0-9]+|[0-9]+.*$/g);
+                
+                    //Regexp can throw an error - then the array is empty
+                    if (arr && arr[0])
+                    {
+                        impvalues[pos] = arr[0].replace(/(^\s+)|(\s+$)/g,"");
+                        if (arr[1]) buildingNr = arr[1];
+                    }
                 }
+                impvalues.push(buildingNr);
             }
-            impvalues.push(buildingNr);
-        }
-        // if there is no COUNTRY then COUNTRY = DE
-        if (noCountry) impvalues.push("DE");
+            // if there is no COUNTRY then COUNTRY = DE
+            if (noCountry) impvalues.push("DE");
 				
-        // if a ORGNAME is declared frequently
-        if (posOrgName.length > 1)
-        {					
-            for (posanz = 1; posanz < posOrgName.length; posanz++)
-            {
-                if (impvalues[posOrgName[posanz]] != "")
-                    impvalues[posOrgName[0]] += "\n" +  impvalues[posOrgName[posanz]]; //impvalues[ posOrgName[ posanz ]] ist das Import-Datum
+            // if a ORGNAME is declared frequently
+            if (posOrgName.length > 1)
+            {					
+                for (posanz = 1; posanz < posOrgName.length; posanz++)
+                {
+                    if (impvalues[posOrgName[posanz]] != "")
+                        impvalues[posOrgName[0]] += "\n" +  impvalues[posOrgName[posanz]]; //impvalues[ posOrgName[ posanz ]] ist das Import-Datum
+                }
             }
-        }
-        //  if a ORGINFO is declared frequently
-        if (posOrginfo.length > 1)
-        {
-            for (posanz = 1; posanz < posOrginfo.length; posanz++)
+            //  if a ORGINFO is declared frequently
+            if (posOrginfo.length > 1)
             {
-                if (impvalues[posOrginfo[posanz]] != "" )
-                    impvalues[posOrginfo[0]] += "\n" +  impvalues[posOrginfo[posanz]]; 
+                for (posanz = 1; posanz < posOrginfo.length; posanz++)
+                {
+                    if (impvalues[posOrginfo[posanz]] != "" )
+                        impvalues[posOrginfo[0]] += "\n" +  impvalues[posOrginfo[posanz]]; 
+                }
             }
-        }
-        //get the position of the COUNTRY
-        var countrypos = getFieldPos (FieldDef, "COUNTRY")[0];
+            //get the position of the COUNTRY
+            var countrypos = getFieldPos (FieldDef, "COUNTRY")[0];
         
-        //check the COUNTRY
-        impvalues[countrypos] = LeadImportUtils.checkCountry(impvalues[countrypos]);
+            //check the COUNTRY
+            impvalues[countrypos] = LeadImportUtils.checkCountry(LeadImportUtils.getMappedOutputvalue("COUNTRY", impvalues[countrypos]));
         
-        if (!(getFieldPos(ImportFieldDef, "ISOLANGUAGE").length ==  0)){
-            //get the position of the ISOLANGUAGE
-            var isolanguepos = getFieldPos (FieldDef, "ISOLANGUAGE")[0];
+            if (!(getFieldPos(ImportFieldDef, "ISOLANGUAGE").length ==  0)){
+                //get the position of the ISOLANGUAGE
+                var isolanguepos = getFieldPos (FieldDef, "ISOLANGUAGE")[0];
         
-            //mapp and check the ISOLANGUAGE
-            impvalues[isolanguepos] = LeadImportUtils.getMappedOutputvalue("ISOLANGUAGE", impvalues[isolanguepos]);
-            impvalues[isolanguepos] = LeadImportUtils.checkISOLanguage(impvalues[isolanguepos]);
-        }
+                //mapp and check the ISOLANGUAGE
+                impvalues[isolanguepos] = LeadImportUtils.getMappedOutputvalue("ISOLANGUAGE", impvalues[isolanguepos]);
+                impvalues[isolanguepos] = LeadImportUtils.checkISOLanguage(impvalues[isolanguepos]);
+            }
         
-        try//import data
-        {
-            var dupCheck = LeadImportUtils.importData(DataFields, DataTypes, FieldDef, impvalues, importdefid, AttrObject, source, user, currDate);
+            try//import data
+            {
+                var dupCheck = LeadImportUtils.importData(DataFields, DataTypes, FieldDef, impvalues, importdefid, AttrObject, source, user, currDate);
 
-            allContactData[dupCheck[0]] = [dupCheck[1], dupCheck[2]];   //persObj, orgObj
-        }
-        catch(ex)//if error increase the errorCount and write a rhinoException into the string for the error file
-        {
-            var exeption = "Zeile " + dsanz + ": " + logging.toLogString(ex.rhinoException != undefined ? ex.rhinoException : ex, true) + "\r\n";
-            exeptions = exeptions + exeption;
-            errorCount++;
-            logging.log(exeption);
+                allContactData[dupCheck[0]] = [dupCheck[1], dupCheck[2]];   //persObj, orgObj
+            }
+            catch(ex)//if error increase the errorCount and write a rhinoException into the string for the error file
+            {
+                var exeption = "Zeile " + dataRowIndex + ": " + logging.toLogString(ex.rhinoException != undefined ? ex.rhinoException : ex, true) + "\r\n";
+                exeptions = exeptions + exeption;
+                errorCount++;
+                logging.log(exeption);
+            }
         }
     }
-}
-catch(err)
-{
-    errorCount++;
-    logging.log(err);
-}
+    catch(err)
+    {
+        errorCount++;
+        logging.log(err);
+    }
 
-try 
-{
-    LeadImportUtils.scanLeadDups(allContactData);//search for duplicates
-}
-catch (err)
-{
-    logging.log(err);
-}
+    try 
+    {
+        LeadImportUtils.scanLeadDups(allContactData);//search for duplicates
+    }
+    catch (err)
+    {
+        logging.log(err);
+    }
 
 
-var rows = eMath.subInt(dsanz, 1);
-rows = eMath.subInt(rows, errorCount);//datasetcount - errors = inserts
+    var rows = eMath.subInt(dataRowIndex, 1);
+    rows = eMath.subInt(rows, errorCount);//datasetcount - errors = inserts
 
-var updTable = "LEADIMPORT";
-var updFields =["IMPORT_DATE", "DATE_EDIT", "USER_EDIT", "STATUS"];
-var updVals = [ImportDate, currDate, user, $KeywordRegistry.importStatus$transfered()];
+    var updTable = "LEADIMPORT";
+    var updFields =["IMPORT_DATE", "DATE_EDIT", "USER_EDIT", "STATUS"];
+    var updVals = [ImportDate, currDate, user, $KeywordRegistry.importStatus$transfered()];
 
-var logTable = "LEADLOG";
-var logFields =["LEADLOGID", "ROWSINSERTED", "IMPORTERRORS", "LEADIMPORT_ID", "IMPORTSOURCE", "USER_NEW", "DATE_NEW"];
-var logVals = [util.getNewUUID(), rows, errorCount, importdefid, source, user, currDate];
+    var logTable = "LEADLOG";
+    var logFields =["LEADLOGID", "ROWSINSERTED", "IMPORTERRORS", "LEADIMPORT_ID", "IMPORTSOURCE", "USER_NEW", "DATE_NEW"];
+    var logVals = [util.getNewUUID(), rows, errorCount, importdefid, source, user, currDate];
 
-db.insertData(logTable, logFields, null, logVals);
-newWhere("LEADIMPORT.LEADIMPORTID", importdefid)
+    db.insertData(logTable, logFields, null, logVals);
+    newWhere("LEADIMPORT.LEADIMPORTID", importdefid)
     .updateData(true, updTable, updFields, null, updVals);
-newWhere("LEADTEMP.ROW_ID", importdefid)
+    newWhere("LEADTEMP.ROW_ID", importdefid)
     .deleteData(true, "LEADTEMP");//delete existing temp data
 
-if(exeptions != "")//insert error document
-    db.insertBinary("LEADLOG", "ERRORLOG", logVals[0], 
-        "", util.encodeBase64String(exeptions, "UTF-8"), "Error-Log " + source + " " + datetime.toDate(currDate, "dd.MM.yyyy HH:mm") , "", "", SqlUtils.getBinariesAlias());
+    if(exeptions != "")//insert error document
+        db.insertBinary("LEADLOG", "ERRORLOG", logVals[0], 
+    "", util.encodeBase64String(exeptions, "UTF-8"), "Error-Log " + source + " " + datetime.toDate(currDate, "dd.MM.yyyy HH:mm") , "", "", SqlUtils.getBinariesAlias());
         
-if (userId)// if there is an user - show a notification to this user when the import is complete
-{
-    var description = translate.withArguments("%0 leads imported, %1 errors", [rows, errorCount]);
-    notification.addNotification(util.getNewUUID(), null, null, null, "LeadImport_Notification", null, notification.PRIO_NORMAL, 2, notification.STATE_UNSEEN, [userId], importName, description);
+    if (userId)// if there is an user - show a notification to this user when the import is complete
+    {
+        var description = translate.withArguments("%0 leads imported, %1 errors", [rows, errorCount]);
+        var linkInfo = text.encodeMS(["Leadimport",importdefid ])
+        notification.addNotification(util.getNewUUID(), linkInfo, null, null, "LeadImport_Notification", notification.PRIO_NORMAL, 2, notification.STATE_UNSEEN, [userId], importName, description, null );
+    }
 }
 
 
diff --git a/process/mailbridge/mailbridge.aod b/process/mailbridge/mailbridge.aod
index 254ff35492e5ce5eccb03b1d7a55c4ced626e8a1..079dab4650beb124ce85f9345c4928b87a80fc4c 100644
--- a/process/mailbridge/mailbridge.aod
+++ b/process/mailbridge/mailbridge.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>mailbridge</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/mailbridge/documentation.adoc</documentation>
diff --git a/process/mark_cachedrecordcontainers_invalid_serverProcess/mark_cachedrecordcontainers_invalid_serverProcess.aod b/process/mark_cachedrecordcontainers_invalid_serverProcess/mark_cachedrecordcontainers_invalid_serverProcess.aod
index cfd92c97942fb960b69e71317d82e75f4f013e0f..a6d4fe24cf1fc3a4d501acd6546807ac3bea8180 100644
--- a/process/mark_cachedrecordcontainers_invalid_serverProcess/mark_cachedrecordcontainers_invalid_serverProcess.aod
+++ b/process/mark_cachedrecordcontainers_invalid_serverProcess/mark_cachedrecordcontainers_invalid_serverProcess.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>mark_cachedrecordcontainers_invalid_serverProcess</name>
   <title>Mark all cached record containers as invalid</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/migrateKeywordContainers/documentation.adoc b/process/migrateKeywordContainers/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..78555b64402db050fd1118cbbc0cb66b0d32834e
--- /dev/null
+++ b/process/migrateKeywordContainers/documentation.adoc
@@ -0,0 +1,8 @@
+= Keyword Migration
+This process can be used to, either directly migrate the keywords in the database, or generating liquibase scripts which do the same. It can also write the generated files to the server log.
+
+[EXPORT_TO_LIQUIBASE]
+If the EXPORT_TO_LIQUIBASE option is set to true, the process will generate liquibase files, otherwise it would directly modify the database tables.
+
+[WRITE_FILES_TO_LOG]
+If the WRITE_FILES_TO_LOG is set to true, the generated liquibase files will be written to the server log. This is especially useful for cloud systems.
diff --git a/process/migrateKeywordContainers/migrateKeywordContainers.aod b/process/migrateKeywordContainers/migrateKeywordContainers.aod
new file mode 100644
index 0000000000000000000000000000000000000000..f75e9611757d2a319020405c1cce43b848c87471
--- /dev/null
+++ b/process/migrateKeywordContainers/migrateKeywordContainers.aod
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
+  <name>migrateKeywordContainers</name>
+  <title>Migrate keyword containers</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <documentation>%aditoprj%/process/migrateKeywordContainers/documentation.adoc</documentation>
+  <process>%aditoprj%/process/migrateKeywordContainers/process.js</process>
+  <publishAsWebservice v="true" />
+  <alias>Data_alias</alias>
+  <variants>
+    <element>EXECUTABLE</element>
+  </variants>
+</process>
diff --git a/process/migrateKeywordContainers/process.js b/process/migrateKeywordContainers/process.js
new file mode 100644
index 0000000000000000000000000000000000000000..ed93803b8ec48f1ae71955bec44e3847f906ed94
--- /dev/null
+++ b/process/migrateKeywordContainers/process.js
@@ -0,0 +1,149 @@
+import("system.fileIO");
+import("system.db");
+import("system.SQLTYPES");
+import("system.logging");
+import("system.util");
+import("system.vars");
+import("Sql_lib");
+import("Util_lib");
+import("Liquibase_lib");
+
+// Change this to switch between generating liquibase file and directly modify the db
+var EXPORT_TO_LIQUIBASE = true;
+
+// Writes the liquibase files to log instead of writing them to disk
+// Useful for cloud systems
+var WRITE_FILES_TO_LOG = false;
+
+var oldKeywordContainers = newSelect("AB_KEYWORD_ENTRY.CONTAINER")
+    .from("AB_KEYWORD_ENTRY")
+    .where(
+        "AB_KEYWORD_ENTRY.CONTAINER",
+        newSelect("AB_KEYWORD_CATEGORY.NAME")
+            .from("AB_KEYWORD_CATEGORY")
+            .where("AB_KEYWORD_CATEGORY.NAME = AB_KEYWORD_ENTRY.CONTAINER"),
+        SqlBuilder.NOT_EXISTS()
+    )
+    .groupBy("AB_KEYWORD_ENTRY.CONTAINER")
+    .orderBy("AB_KEYWORD_ENTRY.CONTAINER")
+    .arrayColumn();
+    
+var categories = {};
+newSelect(["AB_KEYWORD_CATEGORYID", "AB_KEYWORD_CATEGORY.NAME"])
+.from("AB_KEYWORD_CATEGORY").table().forEach(function(pRow) {
+    categories[pRow[1]] = pRow[0];
+});
+
+if(EXPORT_TO_LIQUIBASE)
+{
+    function _writeLiquibaseXml(name, xmlScript)
+    {
+        var fileContent = LiquiXmlUtils.xmlHeaderLineStr() + "\n" + xmlScript;
+        if(WRITE_FILES_TO_LOG)
+        {
+            logging.log(name);
+            logging.log(fileContent + "\n");
+        }
+        else
+        {
+            var outFolderPath = vars.get("$sys.servertemp") + "/" +  "keywordMigration" + "/";
+            fileIO.storeData(outFolderPath + name,
+                fileContent, util.DATA_TEXT, false, "UTF-8");
+        }
+    }
+    
+    // init_keyword_category.xml
+    var liquibaseContainers = LiquiXmlUtils.databaseChangeLogWithChangeSet("autogenerated");
+    oldKeywordContainers.forEach(function(pElement) {
+        var uuid = util.getNewUUID();
+        categories[pElement] = uuid;
+
+        var categoryTable = LiquiXTable.make("AB_KEYWORD_CATEGORY");
+        categoryTable.addIdCol("AB_KEYWORD_CATEGORYID", uuid);
+        categoryTable.addStrCol("NAME", pElement);
+        categoryTable.addNumberCol("SORTINGBY", 0);
+        categoryTable.addStrCol("SORTINGDIRECTION", "ASC");
+        liquibaseContainers.changeSet.insert += categoryTable.xml;
+    });
+    _writeLiquibaseXml("init_keyword_category.xml", liquibaseContainers);
+    
+    // update_keyword_entry
+    var updateEntryChangeset = LiquiXmlUtils.databaseChangeLogWithChangeSet("autogenerated");
+    newSelect(["AB_KEYWORD_ENTRYID", "AB_KEYWORD_ENTRY.CONTAINER"])
+    .from("AB_KEYWORD_ENTRY")
+    .where("AB_KEYWORD_CATEGORY_ID is null")
+    .table().forEach(function(pRow) {
+        var updateXml = <update tableName="AB_KEYWORD_ENTRY"/>;
+        updateXml.column = <column name="AB_KEYWORD_CATEGORY_ID" value={categories[pRow[1]]}/>;
+        updateXml.where = <where>AB_KEYWORD_ENTRYID = {"'" + pRow[0] + "'"}</where>;
+        updateEntryChangeset.changeSet.update += updateXml;
+    });
+    _writeLiquibaseXml("update_keyword_entry.xml", updateEntryChangeset);
+
+    // update_keyword_attribute
+    var updateAttributeChangeset = LiquiXmlUtils.databaseChangeLogWithChangeSet("autogenerated");
+    newSelect(["AB_KEYWORD_ATTRIBUTEID", "AB_KEYWORD_ATTRIBUTE.CONTAINER"])
+    .from("AB_KEYWORD_ATTRIBUTE")
+    .where("AB_KEYWORD_CATEGORY_ID is null")
+    .table().forEach(function(pRow) {
+        var updateXml = <update tableName="AB_KEYWORD_ATTRIBUTE"/>;
+        updateXml.column = <column name="AB_KEYWORD_CATEGORY_ID" value={categories[pRow[1]]}/>;
+        updateXml.where = <where>AB_KEYWORD_ATTRIBUTEID = {"'" + pRow[0] + "'"}</where>;
+        updateAttributeChangeset.changeSet.update += updateXml;
+    });
+    _writeLiquibaseXml("update_keyword_attribute.xml", updateAttributeChangeset);
+    
+    // changelog.xml
+    var changelogFile = LiquiXmlUtils.databaseChangeLog();
+    changelogFile.include += <include relativeToChangelogFile="true" file="init_keyword_category.xml"/>;
+    changelogFile.include += <include relativeToChangelogFile="true" file="update_keyword_entry.xml"/>;
+    changelogFile.include += <include relativeToChangelogFile="true" file="update_keyword_attribute.xml"/>;
+    _writeLiquibaseXml("changelog.xml", changelogFile);
+    
+    logging.log("Keyword migration liquibase scripts created succesfully");
+}
+else
+{
+    var statements = [];
+    
+    oldKeywordContainers.forEach(function(pElement) {
+        var uuid = util.getNewUUID();
+        categories[pElement] = uuid;
+        
+        var columns = ["AB_KEYWORD_CATEGORYID", "NAME", "SORTINGBY", "SORTINGDIRECTION"];
+        statements.push([
+            "AB_KEYWORD_CATEGORY",
+            columns,
+            db.getColumnTypes("AB_KEYWORD_CATEGORY", columns),
+            [uuid, pElement, "0", "ASC"]
+        ]);
+    });
+    
+    var FIELD_NAMES = ["AB_KEYWORD_CATEGORY_ID"];
+    var FIELD_TYPES = [SQLTYPES.VARCHAR];
+    
+    newSelect(["AB_KEYWORD_ENTRYID", "AB_KEYWORD_ENTRY.CONTAINER"])
+    .from("AB_KEYWORD_ENTRY")
+    .where("AB_KEYWORD_CATEGORY_ID is null")
+    .table().forEach(function(pRow) {
+        statements.push([
+            "AB_KEYWORD_ENTRY",
+            FIELD_NAMES, FIELD_TYPES,
+            [categories[pRow[1]]],
+            "AB_KEYWORD_ENTRYID = '" + pRow[0] + "'"]);
+    });
+    
+    newSelect(["AB_KEYWORD_ATTRIBUTEID", "AB_KEYWORD_ATTRIBUTE.CONTAINER"])
+    .from("AB_KEYWORD_ATTRIBUTE")
+    .where("AB_KEYWORD_CATEGORY_ID is null")
+    .table().forEach(function(pRow) {
+        statements.push([
+            "AB_KEYWORD_ATTRIBUTE",
+            FIELD_NAMES, FIELD_TYPES,
+            [categories[pRow[1]]],
+            "AB_KEYWORD_ATTRIBUTEID = '" + pRow[0] + "'"]);
+    });
+    
+    db.execute(statements);
+    logging.log("Keywords migrated succesfully");
+}
diff --git a/process/mstBot_rest/mstBot_rest.aod b/process/mstBot_rest/mstBot_rest.aod
index dd88fc1a4c12fafd80261eb24b58ffab76e0c65f..64a88b4452787c65f100f261960f91835763daa3 100644
--- a/process/mstBot_rest/mstBot_rest.aod
+++ b/process/mstBot_rest/mstBot_rest.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>mstBot_rest</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/mstBot_rest/process.js</process>
@@ -7,7 +7,9 @@
   <style>REST</style>
   <restAcceptedMimeType>application/json</restAcceptedMimeType>
   <restDeliveredMimeType>application/json</restDeliveredMimeType>
-  <loginTypeId>internal.none</loginTypeId>
+  <loginTypeId>
+    <element>internal.none</element>
+  </loginTypeId>
   <publishAsClientWebservice v="true" />
   <alias>Data_alias</alias>
 </process>
diff --git a/process/process_audit/process.js b/process/process_audit/process.js
index 023a6e0dbf0888fc4021b7aef9e215dd0a5e4879..5b0cb6d15d46bed1c566b4a21f9f91c5def3392d 100644
--- a/process/process_audit/process.js
+++ b/process/process_audit/process.js
@@ -1,3 +1,4 @@
+import("District_lib");
 import("Loghistory_lib");
 import("system.vars");
 import("system.process");
@@ -15,3 +16,7 @@ if (sqlAction != 'X')
 {
     (new LogHistoryExecutor(tableName, userLogin, columns, newvalues, oldvalues, timestamp, sqlAction, id)).execute();
 }
+
+if(sqlAction == 'I' && tableName == 'DISTRICTCONTACT'){
+    DistrictUtils.notificateNewDistrictContact(id);
+}
\ No newline at end of file
diff --git a/process/process_audit/process_audit.aod b/process/process_audit/process_audit.aod
index 55b53099a0f6b045a1699cb473417840521a8b09..fb5dcd8da903ba9ffe3172451cd386e094fb0441 100644
--- a/process/process_audit/process_audit.aod
+++ b/process/process_audit/process_audit.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>process_audit</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/process_audit/process.js</process>
diff --git a/process/rebuildIndex_serverProcess/rebuildIndex_serverProcess.aod b/process/rebuildIndex_serverProcess/rebuildIndex_serverProcess.aod
index 710063184897bbc4ad2e09ff1f8e3cac536b1b68..106c678f9add12e1f3afe67989627720cd6515d2 100644
--- a/process/rebuildIndex_serverProcess/rebuildIndex_serverProcess.aod
+++ b/process/rebuildIndex_serverProcess/rebuildIndex_serverProcess.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>rebuildIndex_serverProcess</name>
   <title>rebuild Index</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/redirect_rest/redirect_rest.aod b/process/redirect_rest/redirect_rest.aod
index 3087b0ad4b7fcc1e48a6122ae26fe32120328632..bda233f7990cbcde49e43a759006b8fd964fc26d 100644
--- a/process/redirect_rest/redirect_rest.aod
+++ b/process/redirect_rest/redirect_rest.aod
@@ -1,11 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>redirect_rest</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/redirect_rest/process.js</process>
   <publishAsWebservice v="true" />
   <style>REST</style>
-  <loginTypeId>internal.none</loginTypeId>
+  <loginTypeId>
+    <element>internal.none</element>
+  </loginTypeId>
   <variants>
     <element>EXECUTABLE</element>
   </variants>
diff --git a/process/removeMSTTeams_serverProcess/removeMSTTeams_serverProcess.aod b/process/removeMSTTeams_serverProcess/removeMSTTeams_serverProcess.aod
index f8b67e0fdd01a7f82c495f0105ac180558ccaf85..c120e20c39f5b8e0c8348dd823abb61a2890bd85 100644
--- a/process/removeMSTTeams_serverProcess/removeMSTTeams_serverProcess.aod
+++ b/process/removeMSTTeams_serverProcess/removeMSTTeams_serverProcess.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>removeMSTTeams_serverProcess</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/removeMSTTeams_serverProcess/process.js</process>
diff --git a/process/sendBulkMail_serverProcess/sendBulkMail_serverProcess.aod b/process/sendBulkMail_serverProcess/sendBulkMail_serverProcess.aod
index 645ed890444612e3470acf524ef90bc730725fca..8357bb2adf8a19f802111fd90d3c734932f8b2e6 100644
--- a/process/sendBulkMail_serverProcess/sendBulkMail_serverProcess.aod
+++ b/process/sendBulkMail_serverProcess/sendBulkMail_serverProcess.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>sendBulkMail_serverProcess</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/sendBulkMail_serverProcess/documentation.adoc</documentation>
diff --git a/process/setMissingAddressLocations_serverProcess/setMissingAddressLocations_serverProcess.aod b/process/setMissingAddressLocations_serverProcess/setMissingAddressLocations_serverProcess.aod
index 3752f6718de29b5a4b07e3c29bae7416d6860164..23c67a18a2d9f489e3a183e8f76b1c1d782da02e 100644
--- a/process/setMissingAddressLocations_serverProcess/setMissingAddressLocations_serverProcess.aod
+++ b/process/setMissingAddressLocations_serverProcess/setMissingAddressLocations_serverProcess.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>setMissingAddressLocations_serverProcess</name>
   <title>Set missing address locations</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/startWorkflowInstances_serverProcess/startWorkflowInstances_serverProcess.aod b/process/startWorkflowInstances_serverProcess/startWorkflowInstances_serverProcess.aod
index 5d5de80f53c69c20e9c3190e3d8eb99775217a65..e1cb70568a30aa232f833f0d1e8559c09a5d219c 100644
--- a/process/startWorkflowInstances_serverProcess/startWorkflowInstances_serverProcess.aod
+++ b/process/startWorkflowInstances_serverProcess/startWorkflowInstances_serverProcess.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>startWorkflowInstances_serverProcess</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/startWorkflowInstances_serverProcess/process.js</process>
diff --git a/process/test_iCommRestriction/test_iCommRestriction.aod b/process/test_iCommRestriction/test_iCommRestriction.aod
index cc954a462d091f6b3efef2b7797b92a18ae0b2f8..6d894bcf6bee89031b4fa89d68bdef1b77076ec5 100644
--- a/process/test_iCommRestriction/test_iCommRestriction.aod
+++ b/process/test_iCommRestriction/test_iCommRestriction.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>test_iCommRestriction</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/test_iCommRestriction/process.js</process>
diff --git a/process/updateActivities_serverProzess/updateActivities_serverProzess.aod b/process/updateActivities_serverProzess/updateActivities_serverProzess.aod
index 51684eaceb296a2b5f75e7f1c82b373494b4e28e..8d14a4c15d8a8eae358f727c0b758fdf84d0f51a 100644
--- a/process/updateActivities_serverProzess/updateActivities_serverProzess.aod
+++ b/process/updateActivities_serverProzess/updateActivities_serverProzess.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>updateActivities_serverProzess</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/updateActivities_serverProzess/process.js</process>
diff --git a/process/updateAllAddressLocations_serverProcess/updateAllAddressLocations_serverProcess.aod b/process/updateAllAddressLocations_serverProcess/updateAllAddressLocations_serverProcess.aod
index e0b953cac1c1f40620c0510daec96d89a844955d..3b3864518417181d045df5dd820a80b48f875237 100644
--- a/process/updateAllAddressLocations_serverProcess/updateAllAddressLocations_serverProcess.aod
+++ b/process/updateAllAddressLocations_serverProcess/updateAllAddressLocations_serverProcess.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>updateAllAddressLocations_serverProcess</name>
   <title>Set all address locations</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
diff --git a/process/updateClassifications_serverProcess/documentation.adoc b/process/updateClassifications_serverProcess/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..fd053e82fca0a65c6687ffaf4ee013100dc5fcad
--- /dev/null
+++ b/process/updateClassifications_serverProcess/documentation.adoc
@@ -0,0 +1,22 @@
+= updateClassifications_serverProcess
+
+For updating  the values of CLASSIFICATIONSTORAGE and the persistent data stored in CLASSIFICATION.
+Should probably  run in intervals (like once a week) to update all outdated data, 
+but the user can also start it manually via an action at the Classification Admin Context.
+
+We are storing the strings of the achieved classifications (e.g. "ACD") in ClassificationStorage.
+Every time we change something for of an classification relevant object (which has an ClassificationStorage dataset) or an linked object with an 
+dependency to the entity (dependencies have to be configured in the Dependency_lib), 
+we set the outdated flag of it's ClassificationStorage dataset to true.
+
+The classificationType datasets also have an outdated flag get set for changes in classificationAdmin.
+
+This Process now updates both of these:
+First it checks whether outdated classificationStorages and outdated classificationTypes exist
+and always updates the classificationStorages first before updating the for the classificationTypes.
+
+-In the classificationStorage runtrough it calculates the complete classification for every outdated classificationStorage, entirely 
+    from scratch (and inserts "new" relevant ones), and updates both the classificationStorage dataset aswell as the classification datasets
+-In the classificationType runtrough it also updates both the classificationStorage dataset aswell as the classification datasets but 
+    -for every object of said object_type
+    -only recalculates the flagged ones and relies on the already stored values of the not flagged classificationTypes (and inserts "new" relevant ones)
\ No newline at end of file
diff --git a/process/updateClassifications_serverProcess/process.js b/process/updateClassifications_serverProcess/process.js
index 5520e0170e221868a9c89a0639890824756d5cad..30a7d27f5d90e0f24f1f502e51d0901f6c22a497 100644
--- a/process/updateClassifications_serverProcess/process.js
+++ b/process/updateClassifications_serverProcess/process.js
@@ -1,3 +1,9 @@
+import("system.vars");
+import("Context_lib");
+import("system.util");
+import("Util_lib");
+import("JditoFilter_lib");
+import("system.entities");
 import("system.logging");
 import("Classification_lib");
 import("Sql_lib");
@@ -6,208 +12,936 @@ import("system.db");
 import("system.eMath");
 
 var outputInformation = {};//information how much data has been modified
-var gradingObject = {};
-var helperObject = {}; //Used to check whether or not the data has already been added
-var scoreObject = {};
-var archievedScoresObject = {};
+var outputInfo = "updateClassifications_serverProcess output is:\n";
+
+var helperObject = {}; //used to check whether or not the data has already been added
+//object to store all the gradings of the classification groups that have either 1: atleast one classificationType with the outdated flag or 
+//2: have classificationtypes of the object_types that we need for updating for the outdated classificationStorage
+var gradingObject = {}; 
+var scoreObject = {}; //object to store all the classificationScores (with the same logic as above)
+var classificationTypesFilterObj = {}; //object to store all the classificationTypes with filters (logic from above)
+var classificationTypesNoFilterObj = {}; //object to store all the classificationTypes without filters (logic from above)
+var bestPossibleScoresObj = {}; //object to store all the best possible scores of classificationTypes (logic from above)
+var bestPossibleScoresGroupObj = {}; //object to store all the best possible scores of classificationGroups of datasets (logic from above)
+var achievedScoresObj = {}; //object to store all the achieved classificationscores of the classificationgroups (logic from above) (achievedScoresObj[objId][groupId][Score, Grade])
+var achievedScoresTypeObj = {}; //object to store all the achieved classifications (logic from above) (achievedScoresTypeObj[objId][groupId][classificationTypeId][int])
+var staticClassificationsObject = {}; //object to store all the classificationTypes none of the classificationtypes has the outdated flag set (onlyn eeded when storedClassificationFlag == 0, see below)
+var classificationStorageObject = {}; //object to store the classificationstorageStrings (e.g: "ACD")
+var groupObject = {}; //groupObject is another helper object to store all the groupIds
+var outdatedClassificationTypeObj = {};//object to store all outdated classificationtypes (need so we can add empty persisted data later
+var alreadyUpdatedTypesObj = {};
+var storedClassificationValues = {};
+
+//arrays mainly used for filling the objects
 var objectTypes = [];
 var orderedGroups = [];
+var bestPossibleScoresArray = [];
+var classificationStorageArray = [];
+var groupsThatNeedUpdate = [];
+var outdatedGroupsAndObjectTypes = [];
+var gradingArray = [];
+var scoreArray = [];
+var objectTypesThatNeedUpdate = [];
+var outdatedStoredClassifications = [];
+var objectRowIdArray = [];
+var objectsThatWillBeUpdated = [];
+
 var object_type, classificationGroupId, classificationTypeId, classificationScoreId,  classificationScore, classificationGradingId, score, cond,
-classificationGradingMaxScore, classificationGrading, chainedGrading, currentObjectColumn, currentObjectTable, isOrganisation, idsWithoutStoredClassification;
-var groupString ={}
+classificationGradingMaxScore, classificationGrading, chainedGrading, currentObjectColumn, currentObjectTable, isOrganisation, bestValue, minPercent,
+idsWithoutStoredClassification, classificationScorePercent, classificationScoreSaved, classificationScoreTitle, i, ii, iii, deleteCond, count,
+achievedScoresStmt, position, bestPossibleScoreStmt, storedClassificationFlag, deleted, uid;
 var table = "CLASSIFICATIONSTORAGE";
 var column = ["CLASSIFICATIONVALUE"];
+var runUpdating = 0;
+var singleRefresh = false;
+var recalculateAll = false;
 
-//All the possible scores of the classification types
-var scoreArray = newSelect("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID, CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID, CLASSIFICATIONSCORE.SCORE")
-                                        .from("CLASSIFICATIONGROUP")
-                                        .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
-                                        .join("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
-                                        .orderBy("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONGROUP.SORTING, CLASSIFICATIONTYPE.SCORETYPE, CLASSIFICATIONSCORE.SORT")
+if(vars.exists("$local.refreshSingleRecord_param") && vars.get("$local.refreshSingleRecord_param"))
+{
+    singleRefresh = vars.get("$local.refreshSingleRecord_param");
+}
+else if(vars.exists("$local.recalculateAll_param") && vars.get("$local.recalculateAll_param"))
+{
+    recalculateAll = vars.get("$local.recalculateAll_param");
+}
+
+
+if(singleRefresh)
+{
+    outdatedGroupsAndObjectTypes = newSelect("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID, CLASSIFICATIONTYPE.FILTER")
+                                        .from("CLASSIFICATIONTYPE")
+                                        .where("CLASSIFICATIONTYPE.OBJECT_TYPE", vars.get("$local.ObjectType_param"))
                                         .table();
+}
+else if(recalculateAll)
+{
+    outdatedGroupsAndObjectTypes = newSelect("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID, CLASSIFICATIONTYPE.FILTER")
+                                        .from("CLASSIFICATIONTYPE")
+                                        .table();
+}
+else //all classificationgroups and their object_type that have atleast one classificationtype with the outdated flag set
+{
+    outdatedGroupsAndObjectTypes = newSelect("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID, CLASSIFICATIONTYPE.FILTER")
+                                        .from("CLASSIFICATIONTYPE")
+                                        .where("CLASSIFICATIONTYPE.OUTDATED", 1)
+                                        .table();
+}
 
-//build scoreObject out of scoreArray
-for (var i = 0; i < scoreArray.length; i++) 
+objectTypesThatNeedUpdate = [];
+for (i = 0; i < outdatedGroupsAndObjectTypes.length; i++) 
 {
-    for (var ii = 0; ii < scoreArray[ii].length; ii++) 
+    [object_type, classificationGroupId, classificationTypeId, classificationTypeFilter] = outdatedGroupsAndObjectTypes[i];
+
+    if(!helperObject.hasOwnProperty(object_type)) //objectType
     {
-        [object_type, classificationGroupId, classificationTypeId, classificationScoreId, classificationScore] = scoreArray[i];
+        outdatedClassificationTypeObj[object_type] = {}; //puts objectType in classificationStorageObject and already initializes the object that later get's filled with the groups and their types
+        objectTypesThatNeedUpdate.push(object_type)
+        
+        classificationTypesFilterObj[object_type] = {}; //initializing for later use
+        classificationTypesNoFilterObj[object_type] = {}; //initializing for later use
+        
+        helperObject[object_type] = "";
 
-        if(!helperObject.hasOwnProperty(scoreArray[i][0])) //objectType
+    }
+    if(!helperObject.hasOwnProperty(classificationGroupId)) //objectRowId
+    {
+        outdatedClassificationTypeObj[object_type][classificationGroupId] = {}; //same logic as before
+        groupsThatNeedUpdate.push(classificationGroupId)
+        
+        classificationTypesFilterObj[object_type][classificationGroupId] = {}; //initializing 
+        classificationTypesNoFilterObj[object_type][classificationGroupId] = {}; //initializing 
+                
+        helperObject[classificationGroupId] = "";
+    }
+    if(!helperObject.hasOwnProperty(classificationTypeId)) //objectRowId
+    {
+        outdatedClassificationTypeObj[object_type][classificationGroupId][classificationTypeId] = {"classificationTypeFilter": classificationTypeFilter}; //same logic as before
+        
+        if(classificationTypeFilter == "" || classificationTypeFilter == JditoFilterUtils.getEmptyFilter(ContextUtils.getEntity(object_type))) //also push all the indicators that have a filter set into classificationTypesFilterObj
+            classificationTypesNoFilterObj[object_type][classificationGroupId][classificationTypeId] = classificationTypeFilter;
+        else //and the ones without a filter into classificationTypesNoFilterObj
+            classificationTypesFilterObj[object_type][classificationGroupId][classificationTypeId] = classificationTypeFilter;
+        
+        helperObject[classificationTypeId] = "";
+    }
+}
+if(!singleRefresh)
+{
+    if(recalculateAll)
+    {
+        outdatedStoredClassifications = newSelect("CLASSIFICATION.OBJECT_TYPE, CLASSIFICATION.OBJECT_ROWID\n\
+                                                        ,"+ SqlBuilder.caseWhen(newWhere("CLASSIFICATIONSTORAGE.CLASSIFICATIONSTORAGEID is null"))
+                                                            .then("''")
+                                                            .elseValue("CLASSIFICATIONSTORAGE.CLASSIFICATIONSTORAGEID")
+                                                            .toString()+ "\n\
+                                                        ,"+ SqlBuilder.caseWhen(newWhere("CLASSIFICATIONSTORAGE.CLASSIFICATIONVALUE is null"))
+                                                            .then("''")
+                                                            .elseValue("CLASSIFICATIONSTORAGE.CLASSIFICATIONVALUE")
+                                                            .toString()+ 
+                                                        ", CLASSIFICATION.CLASSIFICATIONTYPE_ID, CLASSIFICATION.VALUE, CLASSIFICATION.SCOREPOINTS")
+                                                    .from("CLASSIFICATION")
+                                                    .leftJoin("CLASSIFICATIONSTORAGE", "CLASSIFICATIONSTORAGE.OBJECT_ROWID = CLASSIFICATION.OBJECT_ROWID")
+                                                    .orderBy("CLASSIFICATION.OBJECT_TYPE, CLASSIFICATION.OBJECT_ROWID")
+                                                    .table();
+    }
+    else
+    {
+        //object_type, object_rowId, classificationstorageId and the classificationstring (e.g. "ACB") of the classificationStorage datasets that habe the outdated flag set
+        outdatedStoredClassifications = newSelect("CLASSIFICATIONSTORAGE.OBJECT_TYPE, CLASSIFICATIONSTORAGE.OBJECT_ROWID, \n\
+                                                            CLASSIFICATIONSTORAGE.CLASSIFICATIONSTORAGEID, CLASSIFICATIONSTORAGE.CLASSIFICATIONVALUE")
+                                                        .from("CLASSIFICATIONSTORAGE")
+                                                        .where("CLASSIFICATIONSTORAGE.OUTDATED", 1)
+                                                        .orderBy("OBJECT_TYPE")
+                                                        .table();
+    }
+    
+    var storedClassificationStorageValues = {};
+    if(recalculateAll)
+    {
+        let storedValuesArray = newSelect("CLASSIFICATIONSTORAGE.OBJECT_ROWID")
+                                        .from("CLASSIFICATIONSTORAGE")
+                                        .arrayColumn();
+        storedValuesArray.map(function(objRowId){
+            storedClassificationStorageValues[objRowId] = "";
+        });
+    }
+    
+    helperObject = {};                                      
+    if(outdatedStoredClassifications)
+    {
+        //build classificationStorageObject out of outdatedStoredClassifications
+        for (i = 0; i < outdatedStoredClassifications.length; i++) 
         {
-            scoreObject[scoreArray[i][0]] = {}; //puts objectType in scoreObject and already initializes the object that later get's filled with the groups and their types
-            helperObject[scoreArray[i][0]] = "";
-            objectTypes.push(scoreArray[i][0]); //also push all the objectTypes in an Array for later (the updating happens one objectType at a time)
+            for (ii = 0; ii < outdatedStoredClassifications[i].length; ii++) 
+            {
+                [object_type, object_rowId, classificationStorageId, classificationScore, classificationTypeId, classificationValue, classificationScorePoints] = outdatedStoredClassifications[i];
+
+                if(!helperObject.hasOwnProperty(object_type)) //objectType
+                {
+                    classificationStorageObject[object_type] = {}; //puts objectType in classificationStorageObject and already initializes the object that later get's filled with the groups and their types
+                    helperObject[object_type] = "";
+                    objectTypes.push(object_type); //also push all the objectTypes in an Array for later (the updating happens one objectType at a time)
+                    if(recalculateAll)
+                    {
+                        storedClassificationValues[object_type] = {};
+                    }
+
+                }
+                if(!helperObject.hasOwnProperty(object_rowId)) //objectRowId
+                {
+                    classificationStorageObject[object_type][object_rowId] = [classificationStorageId, classificationScore]; //same logic as before
+                    helperObject[object_rowId] = "";
+                    objectRowIdArray.push(object_rowId); //also push all the objectTypes in an Array for later
+                    if(recalculateAll)
+                    {
+                        storedClassificationValues[object_type][object_rowId] = {"classificationTypeId": classificationTypeId, "classificationValue": classificationValue, "classificationScorePoints":classificationScorePoints};
+                        if(!storedClassificationStorageValues.hasOwnProperty(object_rowId))//if the dataset doesn't have an classificationStorage dataset but does have classification datasets -> insert it here
+                        {
+                            db.insertData("CLASSIFICATIONSTORAGE", ["CLASSIFICATIONSTORAGEID", "CLASSIFICATIONVALUE", "OBJECT_ROWID", "OBJECT_TYPE", "OUTDATED"], null, [util.getNewUUID(), "-", object_rowId, object_type, 1])
+                        }
+                    }
+                }
+            }
         }
-        if(!helperObject.hasOwnProperty(scoreArray[i][1])) //classificationGroup
+    }
+}
+
+if(outdatedStoredClassifications.length > 0 && !recalculateAll)
+{   storedClassificationFlag = true; //this variable can easily be checked to see what we are updating
+    runUpdating++;
+}
+
+if(groupsThatNeedUpdate.length > 0)
+{
+    runUpdating++;
+}
+
+//if runUpdating == 0: noting has to be updated
+//if runUpdating > 0: run the updating this often (possible values: 1 or 2 -> either only for the classificationStorage that's outdated, 
+//                                                                  or only the classificationgroups with atleast one outdated classificationType or both))
+// --> we always start with the updating for the outdated classificationStorage datasets by using the storedClassificationFlag as way of 
+// checking what we are updating (the flag get's set to true if we have atleast one outdated classificationStorage (see above) and to false after the first loop)
+for (xyz = 0; xyz < runUpdating; xyz++)
+{
+    if(!storedClassificationFlag) //flag = false: we are not updating classificationStorage -> different condition needed (this logic get's used a lot)
+    {
+        objectTypes = [];
+        staticClassificationTypes = newSelect("CLASSIFICATION.OBJECT_TYPE, CLASSIFICATION.OBJECT_ROWID, CLASSIFICATION.CLASSIFICATIONTYPE_ID, CLASSIFICATION.SCOREPOINTS")
+                                        .from("CLASSIFICATION")
+                                        .join("CLASSIFICATIONTYPE", "CLASSIFICATION.CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
+                                        .where("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", groupsThatNeedUpdate, SqlBuilder.NOT_IN())
+                                        .table();
+        correctCondition = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", groupsThatNeedUpdate, SqlBuilder.IN())
+    }
+    else
+    {
+        correctCondition = newWhere("CLASSIFICATIONTYPE.OBJECT_TYPE", objectTypes, SqlBuilder.IN())
+    }
+    //All the possible scores of 1: the outdated classification types or 2: of all the classificationtypes of the outdated classificationStorages
+    scoreArray = newSelect("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID, \n\
+                                CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID, CLASSIFICATIONSCORE.SCOREPERCENT/100, CLASSIFICATIONTYPE.FILTER")
+                                        .from("CLASSIFICATIONGROUP")
+                                        .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
+                                        .join("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
+                                        .where(correctCondition)
+                                        .orderBy("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONGROUP.SORTING, CLASSIFICATIONTYPE.SCORETYPE, CLASSIFICATIONSCORE.SORT")
+                                        .table();
+    helperObject = {};
+    //build scoreObject out of scoreArray and also build classificationTypesFilterObj and classificationTypesNoFilterObj
+    for (i = 0; i < scoreArray.length; i++) 
+    {
+        for (ii = 0; ii < scoreArray[i].length; ii++) 
         {
-            scoreObject[scoreArray[i][0]][scoreArray[i][1]] = {}; //same logic as before
-            helperObject[scoreArray[i][1]] = "";
+            [object_type, classificationGroupId, classificationTypeId, classificationScoreId, classificationScore] = scoreArray[i];
+
+            if(!helperObject.hasOwnProperty(object_type)) //objectType
+            {
+                scoreObject[object_type] = {}; //puts objectType in scoreObject and already initializes the object that later get's filled with the groups and their types
+                helperObject[object_type] = "";
+                if(!storedClassificationFlag)
+                    objectTypes.push(object_type); //also push all the objectTypes in an Array for later (the updating happens one objectType at a time)
+                
+                if(classificationTypesFilterObj[object_type] == undefined)
+                    classificationTypesFilterObj[object_type] = {}; //initializing for later use
+                if(classificationTypesNoFilterObj[object_type] == undefined)
+                    classificationTypesNoFilterObj[object_type] = {}; //initializing for later use
+            }
+            if(!helperObject.hasOwnProperty(classificationGroupId)) //classificationGroup
+            {
+                scoreObject[object_type][classificationGroupId] = {}; //same logic as before
+                helperObject[classificationGroupId] = "";
+
+                if(classificationTypesFilterObj[object_type][classificationGroupId] == undefined)
+                    classificationTypesFilterObj[object_type][classificationGroupId] = {}; //initializing 
+                if(classificationTypesNoFilterObj[object_type][classificationGroupId] == undefined)
+                    classificationTypesNoFilterObj[object_type][classificationGroupId] = {}; //initializing 
+            }
+            if(!helperObject.hasOwnProperty(classificationTypeId)) //classificationType
+            {            
+                scoreObject[object_type][classificationGroupId][classificationTypeId] = {}; //same logic as before
+                helperObject[classificationTypeId] = "";
+                if(scoreArray[i][5] == "" || scoreArray[i][5] == JditoFilterUtils.getEmptyFilter(ContextUtils.getEntity(object_type))) //also push all the indicators that have a filter set into classificationTypesFilterObj
+                {
+                    if(classificationTypesNoFilterObj[object_type][classificationGroupId][classificationTypeId] == undefined)
+                        classificationTypesNoFilterObj[object_type][classificationGroupId][classificationTypeId] = scoreArray[i][5];
+                }
+                else //and the ones without a filter into classificationTypesNoFilterObj
+                {
+                    if(classificationTypesFilterObj[object_type][classificationGroupId][classificationTypeId] == undefined)
+                        classificationTypesFilterObj[object_type][classificationGroupId][classificationTypeId] = scoreArray[i][5];
+                }
+            }
+            if(!helperObject.hasOwnProperty(scoreArray[i][3])) //classificationScore
+            {
+                scoreObject[object_type][classificationGroupId][classificationTypeId][scoreArray[i][3]] = scoreArray[i][4]; //score
+                helperObject[scoreArray[i][3]] = "";
+            }
         }
-        if(!helperObject.hasOwnProperty(scoreArray[i][2])) //classificationType
-        {            
-            scoreObject[scoreArray[i][0]][scoreArray[i][1]][scoreArray[i][2]] = {}; //same logic as before
-            helperObject[scoreArray[i][2]] = "";
+    }
+    if(!storedClassificationFlag) // we already habe the classificationStorageObject if we are updating for the outdated classificationStorage
+    {
+        let condIfSingle;
+        if(vars.exists("$local.ObjectRowid_param") && vars.get("$local.ObjectRowid_param"))
+        {
+                condIfSingle = newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", vars.get("$local.ObjectRowid_param"));
         }
-        if(!helperObject.hasOwnProperty(scoreArray[i][3])) //classificationScore
+        classificationStorageArray = newSelect("OBJECT_TYPE, OBJECT_ROWID, CLASSIFICATIONSTORAGEID, CLASSIFICATIONVALUE")
+                                                .from("CLASSIFICATIONSTORAGE")
+                                                .whereIfSet(condIfSingle)
+                                                .orderBy("OBJECT_TYPE")
+                                                .table();
+        helperObject = {}; //resets the helper object
+        for (i = 0; i < classificationStorageArray.length; i++) 
         {
-            scoreObject[scoreArray[i][0]][scoreArray[i][1]][scoreArray[i][2]][scoreArray[i][3]] = scoreArray[i][4]; //score
-            helperObject[scoreArray[i][3]] = "";
+            for (ii = 0; ii < classificationStorageArray[i].length; ii++) 
+            {
+                [object_type, object_rowId, classificationStorageId, classificationValue] = classificationStorageArray[i];
+
+                if(!helperObject.hasOwnProperty(object_type)) //objectType
+                {
+                    classificationStorageObject[object_type] = []; //same logic as before
+                    helperObject[object_type] = "";
+                }
+                if(!helperObject.hasOwnProperty(object_rowId)) //objectType
+                {
+                    classificationStorageObject[object_type][object_rowId] = []; //same logic as before
+                    helperObject[object_rowId] = "";
+                }
+                if(!helperObject.hasOwnProperty(object_rowId + classificationStorageId)) //objectRowId
+                {
+                    classificationStorageObject[object_type][object_rowId] = [classificationStorageId, classificationValue]; //same logic as before
+                    helperObject[object_rowId + classificationStorageId] = "";
+                }
+
+            }
         }
     }
-}
+    if(!storedClassificationFlag) //we don't have any static classifications if we are updating for the outdated classificationStorage
+    {
+        staticClassificationsArray = newSelect("CLASSIFICATION.OBJECT_TYPE, CLASSIFICATION.OBJECT_ROWID, CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, \n\
+                                                    CLASSIFICATION.CLASSIFICATIONTYPE_ID, CLASSIFICATION.SCOREPOINTS")
+                                        .from("CLASSIFICATION")
+                                        .join("CLASSIFICATIONTYPE", "CLASSIFICATION.CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
+                                        .where("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", groupsThatNeedUpdate, SqlBuilder.NOT_IN())
+                                        .orderBy("CLASSIFICATION.OBJECT_TYPE, CLASSIFICATION.OBJECT_ROWID, CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID")
+                                        .table();
 
-helperObject = {}; //resets the helper object
-
-//All the gradings of the classification groups
-var gradingArray = newSelect("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, \n\
-                                CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID, CLASSIFICATIONGRADING.MAXGRADEFORSCORE, CLASSIFICATIONGRADING.GRADING")
-                                .from("CLASSIFICATIONGROUP")
-                                .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
-                                .join("CLASSIFICATIONGRADING", "CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
-                                .orderBy("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONGROUP.SORTING, \n\
-                                    CLASSIFICATIONTYPE.SCORETYPE, CLASSIFICATIONGRADING.MAXGRADEFORSCORE asc")
-                                .table();
-                                
-//logic from above applies here aswell
-for (i = 0; i < gradingArray.length; i++) 
-{
-    [object_type, classificationGroupId, classificationTypeId, classificationGradingId, classificationGradingMaxScore, classificationGrading] = gradingArray[i];
+        helperObject = {}; //resets the helper object
+        //build staticClassificationsObject out of scoreArray and also build classificationTypesFilterObj
+        for (i = 0; i < staticClassificationsArray.length; i++) 
+        {
+            for (ii = 0; ii < staticClassificationsArray[i].length; ii++) 
+            {
+                [object_type, object_rowId, classificationGroupId,  classificationTypeId, classificationScorePoints] = staticClassificationsArray[i];
 
-    if(!helperObject.hasOwnProperty(gradingArray[i][0])) //objectType
+                if(!helperObject.hasOwnProperty(object_type)) //objectType
+                {
+                    staticClassificationsObject[object_type] = {}; //same logic as before
+                    helperObject[object_type] = "";
+                }
+                if(!helperObject.hasOwnProperty(object_rowId)) //objectRowId
+                {
+                    staticClassificationsObject[object_type][object_rowId] = {}; //same logic as before
+                    helperObject[object_rowId] = "";
+                }
+                if(!helperObject.hasOwnProperty(object_rowId + classificationGroupId)) //classificationGroupId
+                {            
+                    staticClassificationsObject[object_type][object_rowId][classificationGroupId] = {}; //same logic as before
+                    helperObject[object_rowId + classificationGroupId] = "";
+                }
+                if(!helperObject.hasOwnProperty(object_rowId + classificationTypeId)) //classificationScore
+                {
+                    if(staticClassificationsObject[object_type][object_rowId][classificationGroupId][classificationTypeId] == undefined)
+                        staticClassificationsObject[object_type][object_rowId][classificationGroupId][classificationTypeId] = classificationScorePoints;
+                    else
+                        staticClassificationsObject[object_type][object_rowId][classificationGroupId][classificationTypeId] = eMath.addInt(Number(staticClassificationsObject[object_type][object_rowId][classificationGroupId][classificationTypeId]), Number(classificationScorePoints))
+                    helperObject[object_rowId + classificationTypeId] = "";
+                }
+            }
+        }
+    }
+    
+    if(!storedClassificationFlag)
     {
-        gradingObject[gradingArray[i][0]] = {};
-        helperObject[gradingArray[i][0]] = "";
+        correctCondition = newWhere("CLASSIFICATIONTYPE.OBJECT_TYPE", objectTypesThatNeedUpdate, SqlBuilder.IN())
     }
-    if(!helperObject.hasOwnProperty(gradingArray[i][1])) //classificationGroup
+
+    //All the gradings of the classification groups that have either 1: atleast one classificationType with the outdated flag or 2: have classificationtypes 
+    //of the object_types that we need for updating for the outdated classificationStorage (depends on the condition, see above) 
+    gradingArray = newSelect("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, \n\
+                                    CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID, CLASSIFICATIONGRADING.MINPERCENT, CLASSIFICATIONGRADING.GRADING")
+                        .from("CLASSIFICATIONGROUP")
+                        .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
+                        .where(correctCondition)
+                        .join("CLASSIFICATIONGRADING", "CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
+                        .orderBy("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONGROUP.SORTING, \n\
+                                                        CLASSIFICATIONTYPE.SCORETYPE, CLASSIFICATIONGRADING.MINPERCENT asc")
+                        .table();
+    
+    helperObject = {}; //resets the helper object
+
+    //logic from above applies here aswell
+    for (i = 0; i < gradingArray.length; i++) 
     {
-        gradingObject[gradingArray[i][0]][gradingArray[i][1]] = {};
-        helperObject[gradingArray[i][1]] = "";
+        [object_type, classificationGroupId, classificationTypeId, minPercent, classificationGrading] = gradingArray[i];
+
+        if(!helperObject.hasOwnProperty(object_type)) //objectType
+        {
+            gradingObject[object_type] = {};
+            helperObject[object_type] = "";
+        }
+        if(!helperObject.hasOwnProperty(classificationGroupId)) //classificationGroup
+        {
+            gradingObject[object_type][classificationGroupId] = {};
+            helperObject[classificationGroupId] = "";
+        }
+        if(!helperObject.hasOwnProperty(classificationTypeId)) //classificationGrading
+        {
+            gradingObject[object_type][classificationGroupId][classificationTypeId] = [minPercent, classificationGrading]; //minPercent
+            helperObject[classificationTypeId] = "";
+        }
     }
-    if(!helperObject.hasOwnProperty(gradingArray[i][2])) //classificationGrading
+    
+    if(!storedClassificationFlag)
     {
-        gradingObject[gradingArray[i][0]][gradingArray[i][1]][gradingArray[i][2]] = [gradingArray[i][3], gradingArray[i][4]]; //maxGradeForScore
-        helperObject[gradingArray[i][2]] = "";
+        correctCondition = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", groupsThatNeedUpdate, SqlBuilder.IN());
     }
-}
 
-for (i = 0; i < objectTypes.length; i++) //update for each object_type
-{
-    outputInformation[objectTypes[i]] = {
-        updatedElements: 0,
-        nonChangedElements: 0
-    };
-    isOrganisation = false;
-    if(objectTypes[i] == "Organisation")
+    bestPossibleScoresArray = newSelect("OBJECT_TYPE, CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID, \n\
+                                    CLASSIFICATIONTYPE.SCOREPOINTS *(select max(CLASSIFICATIONSCORE.SCOREPERCENT)/100 from CLASSIFICATIONSCORE)")
+                                        .from("CLASSIFICATIONTYPE")
+                                        .where(correctCondition)
+                                        .orderBy("OBJECT_TYPE, CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID")
+                                        .table();
+                                        
+    helperObject = {}; //resets the helper object
+
+    //logic from above applies here aswell
+    for (i = 0; i < bestPossibleScoresArray.length; i++) 
     {
-        currentObjectTable = "CONTACT";
-        currentObjectColumn = "CONTACT.CONTACTID";
-        isOrganisation = true;
+        [object_type, classificationGroupId, classificationTypeId, bestValue] = bestPossibleScoresArray[i];
+
+        if(!helperObject.hasOwnProperty(object_type)) //objectType
+        {
+            bestPossibleScoresObj[object_type] = {};
+            helperObject[object_type] = "";
+        }
+        if(!helperObject.hasOwnProperty(classificationGroupId)) //classificationGroup
+        {
+            bestPossibleScoresObj[object_type][classificationGroupId] = {};
+            helperObject[classificationGroupId] = "";
+        }
+        if(!helperObject.hasOwnProperty(classificationTypeId)) //classificationType
+        {
+            bestPossibleScoresObj[object_type][classificationGroupId][classificationTypeId] = bestValue; //best possible value
+            helperObject[classificationTypeId] = "";
+        }
     }
-    else
+
+    for (i = 0; i < objectTypes.length; i++)
     {
-        currentObjectTable =  objectTypes[i];
-        currentObjectColumn = objectTypes[i] + "." + objectTypes[i] +"ID";
+
+        outputInformation[objectTypes[i]] = {
+            updatedElements: 0,
+            nonChangedElements: 0,
+            checkedElements: 0,
+            persistentDatasetsUpdated: 0
+        };
     }
     
-    //this is the "upgrade" part of this process:
-    //update all entries with correct classificaiton values
-    
-    //all groups of the objectType in the correct order, needed later to also add the "-" gradings if no classificationType has been set under that group
-    orderedGroups = newSelect("distinct CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, CLASSIFICATIONGROUP.SORTING")
-        .from("CLASSIFICATIONGROUP")
-        .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
-        .where("CLASSIFICATIONTYPE.OBJECT_TYPE", objectTypes[i])
-        .orderBy("CLASSIFICATIONGROUP.SORTING")
-        .table();
-
-    //private callback function that processes the achieved scores per object type
-    function _processAchievedScoresBatchFn(pBatchData, pBatchNum)
+    for (i = 0; i < objectTypes.length; i++) //update for each object_type
     {
-        //logic from above applies here aswell
-        for (ii = 0; ii < pBatchData.length; ii++) 
+        isOrganisation = false;
+        if(objectTypes[i] == "Organisation")
         {
-            [uid, classificationGroupId, classificationTypeId, classificationScore] = pBatchData[ii];
+            currentObjectTable = "CONTACT";
+            currentObjectColumn = "CONTACT.CONTACTID";
+            isOrganisation = true;
+        }
+        else
+        {
+            currentObjectTable =  objectTypes[i];
+            currentObjectColumn = objectTypes[i] + "." + objectTypes[i] +"ID";
+        }
 
-            if(!helperObject.hasOwnProperty(pBatchData[ii][0])) //uid
+        if(isOrganisation)
+            filterFields = ["CONTACTID", "CUSTOMERCODE", "INFO", "LANGUAGE", "NAME", "STANDARD_CITY", "STANDARD_EMAIL_COMMUNICATION", "STANDARD_PHONE_COMMUNICATION", "STATUS", "TYPE"];
+        else if(currentObjectTable == "Salesproject")
+            filterFields = ["SALESPROJECTID", "CONTACT_ID", "ENDDATE", "INFO", "PHASE", "PROBABILITY", "PROJECTCODE", "PROJECTTITLE", "REASONS", "STARTDATE", "STATUS", "VOLUME"];
+        else
+            throw new Error("updateClassifications_serverProcess: objectType doesn't exist or is not implemented correctly, contact an administrator.");
+
+        //private function for code readability (get's called once for every object_type)
+        _buildFilteredRecsObject();
+
+        //this is the "upgrade" part of this process:
+        //Update all entries with correct classificaiton values
+
+        //all groups of the objectType in the correct order, needed later to also add the "-" gradings if no classificationType has been set under that group
+        orderedGroups = newSelect("distinct CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, CLASSIFICATIONGROUP.SORTING")
+                                    .from("CLASSIFICATIONGROUP")
+                                    .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
+                                    .where("CLASSIFICATIONTYPE.OBJECT_TYPE", objectTypes[i])
+                                    .orderBy("CLASSIFICATIONGROUP.SORTING")
+                                    .table();
+        
+        var persistedClassificationObj = {}
+        //private callback function that processes the achieved scores per object type
+        function _processAchievedScoresBatchFn(pBatchData, pBatchNum)
+        {
+            //logic from above applies here aswell
+            for (ii = 0; ii < pBatchData.length; ii++) 
             {
-                archievedScoresObject[pBatchData[ii][0]] = {};
-                helperObject[pBatchData[ii][0]] = "";
-                groupString[pBatchData[ii][0]] = ""; //groupString is another helper object to store all the groupIds
+                [uid, classificationGroupId, classificationTypeId, classificationScore, classificationScorePercent, classificationScoreSaved, classificationTypeFilter, classificationId, classificationScoreTitle] = pBatchData[ii];
+
+                if(!helperObject.hasOwnProperty(uid)) //uid
+                {
+                    achievedScoresObj[uid] = {};
+                    groupObject[uid] = ""; //groupObject is another helper object to store all the groupIds
+                    achievedScoresTypeObj[uid] = {};
+                    persistedClassificationObj[uid] = {};
+                    helperObject[uid] = "";
+                }
+                if(!helperObject.hasOwnProperty(uid + classificationGroupId)) //classificationGroup
+                {
+                    groupObject[uid] = groupObject[uid].toString() + classificationGroupId.toString() +" ";
+                    achievedScoresObj[uid][classificationGroupId] = {};
+                    achievedScoresTypeObj[uid][classificationGroupId] = {};
+                    persistedClassificationObj[uid][classificationGroupId] = {};
+                    helperObject[uid + classificationGroupId] = "";
+                }
+                if(!helperObject.hasOwnProperty(uid + classificationTypeId)) //classificationType
+                {
+                    if(_isRelevant())
+                    {
+                        if(achievedScoresObj[uid][classificationGroupId]["Score"] == undefined)
+                            achievedScoresObj[uid][classificationGroupId]["Score"] = 0;
+                        score = eMath.addDec(parseFloat(achievedScoresObj[uid][classificationGroupId]["Score"]), parseFloat(classificationScore));
+                        achievedScoresObj[uid][classificationGroupId]["Score"] = score;
+                        achievedScoresObj[uid][classificationGroupId]["Grade"] = ClassificationUtils.getGradingFromObject(
+                            gradingObject[objectTypes[i]], classificationGroupId, score, bestPossibleScoresGroupObj[uid][classificationGroupId]);
+                        
+                        if(parseFloat(classificationScore) != parseFloat(classificationScoreSaved) && classificationScore != undefined)
+                        {
+
+                            achievedScoresTypeObj[uid][classificationGroupId][classificationId] = [parseFloat(classificationScore)];
+                        }
+                        persistedClassificationObj[uid][classificationGroupId][classificationTypeId] = {};//store all classificationtypes that we have for that dataset in persistedClassificationObj
+                        helperObject[uid + classificationTypeId] = "";
+                    }
+                    else
+                    {
+                        deleteCond = newWhere("CLASSIFICATION.CLASSIFICATIONID", classificationId);
+                        deleteCond.deleteData(true, "CLASSIFICATION");
+                        outputInformation[objectTypes[i]].persistentDatasetsUpdated++;
+                        
+                        helperObject[uid + classificationTypeId] = "";
+                        
+                        if(recalculateAll)
+                        {
+//                           if(storedClassificationValues[objectTypes[i]][uid][""])
+                        }
+                    }
+                }
             }
-            if(!helperObject.hasOwnProperty(pBatchData[ii][0] + pBatchData[ii][1])) //classificationGroup
+        }
+        if(singleRefresh)
+        {
+            correctCondition = newWhere(currentObjectColumn, vars.get("$local.ObjectRowid_param"));
+        }
+        else if(storedClassificationFlag)
+        {
+            correctCondition = newWhere(currentObjectColumn, objectRowIdArray, SqlBuilder.IN());
+        }
+        else
+        {
+            correctCondition = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", groupsThatNeedUpdate, SqlBuilder.IN());
+        }
+
+        achievedScoresStmt = newSelect(currentObjectColumn + ", CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, \n\
+                                            CLASSIFICATION.CLASSIFICATIONTYPE_ID, "+ SqlBuilder.caseWhen(newWhere("CLASSIFICATIONSCORE.SCOREPERCENT/100*CLASSIFICATIONTYPE.SCOREPOINTS is null"))
+                                                            .then("0")
+                                                            .elseValue("CLASSIFICATIONSCORE.SCOREPERCENT/100*CLASSIFICATIONTYPE.SCOREPOINTS")
+                                                            .toString()+ ", \n\
+                                            "+SqlBuilder.caseWhen(newWhere("CLASSIFICATIONSCORE.SCOREPERCENT/100 is null"))
+                                                            .then("0")
+                                                            .elseValue("CLASSIFICATIONSCORE.SCOREPERCENT/100")
+                                                            .toString()+", CLASSIFICATION.SCOREPOINTS, CLASSIFICATIONTYPE.FILTER, \n\
+                                            CLASSIFICATION.CLASSIFICATIONID, CLASSIFICATIONSCORE.TITLE")
+                                        .from(currentObjectTable)
+                                        .join("CLASSIFICATION", "CLASSIFICATION.OBJECT_ROWID = " + currentObjectColumn)
+                                        .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATION.CLASSIFICATIONTYPE_ID")
+                                        .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATION.VALUE = CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID")
+                                        .where(correctCondition);
+
+        if(isOrganisation)
+            achievedScoresStmt.and("CONTACT.PERSON_ID is null");
+
+        achievedScoresStmt.orderBy(currentObjectColumn + ", CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATIONSCORE.SCOREPERCENT asc");
+
+        bestPossibleScoreStmt = newSelect(currentObjectColumn + ", CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATION.CLASSIFICATIONTYPE_ID,\n\
+                                                CLASSIFICATIONTYPE.FILTER")
+                                        .from(currentObjectTable)
+                                        .join("CLASSIFICATION", "CLASSIFICATION.OBJECT_ROWID = " + currentObjectColumn)
+                                        .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATION.CLASSIFICATIONTYPE_ID")
+                                        .where(correctCondition);
+        if(isOrganisation)
+            bestPossibleScoreStmt.and("CONTACT.PERSON_ID is null");
+        
+        bestPossibleScoreStmt.orderBy(currentObjectColumn + ", CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID");
+
+        bestPossibleScoresGroupObj = {};
+        helperObject = {};
+        bestPossibleScoreStmt.pageSize(100)
+            .forEachPage(_buildBestPossibleScoresGroupObjFn);
+
+        achievedScoresTypeObj = {};
+        helperObject = {};
+        achievedScoresObj = {};
+        achievedScoresStmt.pageSize(100)
+            .forEachPage(_processAchievedScoresBatchFn);
+        
+        if(storedClassificationFlag != true)
+            _insertPersistendClassificationDataIfNeeded();
+        //do this after all the data is collected since the achievedScoresStmt returns several records for each rowId. 
+        //If this would be done in the batch function it would result in false classificationstorage-results because not all records for a rowId have been used
+        for (var row_Id in achievedScoresObj)
+        {   
+            chainedGrading = classificationStorageObject[objectTypes[i]][row_Id][1];
+            
+            for (var groupId in achievedScoresObj[row_Id]) 
             {
-                groupString[pBatchData[ii][0]] = groupString[pBatchData[ii][0]].toString() + pBatchData[ii][1].toString() +" ";
-                archievedScoresObject[pBatchData[ii][0]][pBatchData[ii][1]] = {};
-                helperObject[pBatchData[ii][0] + pBatchData[ii][1]] = "";
+                position = 0;
+                
+                for (ii = 0; ii < orderedGroups.length; ii++) {
+                    if (orderedGroups[ii][0] == groupId)
+                    {
+                        position = ii; //current position
+                        break;
+                    }
+                }
+                while(chainedGrading.length < position + 1)
+                {
+                    chainedGrading += "-"
+                }
+                if(achievedScoresObj[row_Id][groupId]["Grade"] != undefined)
+                    chainedGrading = StringUtils.replaceAt(chainedGrading, position, achievedScoresObj[row_Id][groupId]["Grade"]); //update the stored classificationString for each dataset
+                else
+                {
+                    chainedGrading = StringUtils.replaceAt(chainedGrading, position, "-"); //update the stored classificationString -> remove for irrelevant groups
+                }
             }
-            if(!helperObject.hasOwnProperty(pBatchData[ii][0] + pBatchData[ii][2])) //classificationType
+
+            for (ii = 0; iii < orderedGroups.length; ii++) //the empty gradings have been ignored, but should be filled with "-"
             {
-                if(archievedScoresObject[pBatchData[ii][0]][pBatchData[ii][1]]["Score"] == undefined)
-                    archievedScoresObject[pBatchData[ii][0]][pBatchData[ii][1]]["Score"] = 0;
-                score = eMath.addDec(parseFloat(archievedScoresObject[pBatchData[ii][0]][pBatchData[ii][1]]["Score"]), parseFloat(pBatchData[ii][3]));
-                archievedScoresObject[pBatchData[ii][0]][pBatchData[ii][1]]["Score"] = score;
-                archievedScoresObject[pBatchData[ii][0]][pBatchData[ii][1]]["Grade"] = ClassificationUtils.getGradingFromObject(gradingObject[objectTypes[i]], pBatchData[ii][1], score);
-                helperObject[pBatchData[ii][0] + pBatchData[ii][2]] = "";
+                if(!groupObject[row_Id].toString().includes(orderedGroups[ii][0].toString())) //check which ones aren't included and add "-" for those at correct the position
+                {
+                    chainedGrading = chainedGrading.substring(0, ii) + "-" + chainedGrading.substring(ii, chainedGrading.length);
+                }
             }
-        }
-    }
 
-    var achievedScoresStmt = newSelect(currentObjectColumn + ", CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, \n\
-                                        CLASSIFICATION.CLASSIFICATIONTYPE_ID, CLASSIFICATIONSCORE.SCORE")
-                                    .from(currentObjectTable)
-                                    .join("CLASSIFICATION", "CLASSIFICATION.OBJECT_ROWID = " + currentObjectColumn)
-                                    .join("CLASSIFICATIONSCORE", "CLASSIFICATION.CLASSIFICATIONSCORE_ID = CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID")
-                                    .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATION.CLASSIFICATIONTYPE_ID");
+            //update the specified dataset if the already stored ClassificatioNValue differs from the freshly calculated one
+            cond = newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", row_Id)
+                .and("CLASSIFICATIONSTORAGE.OBJECT_TYPE", objectTypes[i])
+                .and("CLASSIFICATIONSTORAGE.CLASSIFICATIONVALUE", chainedGrading, SqlBuilder.NOT_EQUAL());
+            if(new RegExp("^-+$").test(chainedGrading) == true || chainedGrading == "-")
+            {
+                count = newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", row_Id).deleteData(true, "CLASSIFICATIONSTORAGE");
+                deleted = true;
+            }
+            else
+            {
+                count = Number(cond.updateData(true, table, column, null, [chainedGrading]));
+                deleted = false;
+            }
 
-    if(isOrganisation)
-        achievedScoresStmt.where("CONTACT.PERSON_ID is null");
+            outputInformation[objectTypes[i]].checkedElements++;
+            if(storedClassificationFlag && !deleted)
+            {
+                newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", row_Id).updateData(true, "CLASSIFICATIONSTORAGE", ["OUTDATED"], null, [0])
+            }
+            if (count > 0)
+            {
+                outputInformation[objectTypes[i]].updatedElements += count;
+            }
+            else
+            {
+                outputInformation[objectTypes[i]].nonChangedElements++;
+            }
+        }
+        
+        if(achievedScoresObj.length == 0)
+        {
+            _insertPersistendClassificationDataIfNeeded2()
+        }
 
-    achievedScoresStmt.orderBy(currentObjectColumn + ", CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATIONSCORE.SCORE asc");
-    achievedScoresStmt.pageSize(100)
-                        .forEachPage(_processAchievedScoresBatchFn);
+        //loop trough achievedScoresTypeObj and update the stored (persistent) data if needed
+        for (var index in achievedScoresTypeObj)
+        {
+            for (var indexII in achievedScoresTypeObj[index]) 
+            {
+                for (var indexIII in achievedScoresTypeObj[index][indexII]) 
+                {
+                    var scorepoints;
+                    var columns = [];
+                    var values = [];
+                    if(Array.isArray(achievedScoresTypeObj[index][indexII][indexIII])) //if isArray == true: scorepoints have to be updated
+                    {
+                        scorepoints = Number(achievedScoresTypeObj[index][indexII][indexIII][0]);
+                    }
 
-    //do this after all the data is collected since the achievedScoresStmt returns several records for each rowId. 
-    //If this would be done in the batch function it would result in false classificationstorage-results because not all records for a rowId are used
-    for (var row_Id in archievedScoresObject)
-    {
-        chainedGrading = "";
-        //chain all the Classifications together
-        for (var row_IdI in archievedScoresObject[row_Id]) 
+                    cond = newWhere("CLASSIFICATION.CLASSIFICATIONID", indexIII);
+
+                    if(scorepoints != undefined)
+                    {
+                        columns.push("SCOREPOINTS");
+                        values.push(scorepoints);
+                    }
+                    cond.updateData(true, "CLASSIFICATION", columns, null, values);
+                    outputInformation[objectTypes[i]].persistentDatasetsUpdated++;
+                }
+            }
+        }
+    }
+    
+    if(!storedClassificationFlag && !singleRefresh)
+    {    for (i = 0; i < scoreArray.length; i++)
         {
-            chainedGrading += archievedScoresObject[row_Id][row_IdI]["Grade"]
+            let cond = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", scoreArray[i][2]);
+            cond.updateData(true, "CLASSIFICATIONTYPE", ["OUTDATED"], null, [0]);
         }
+    }
+
+    outputInfo = outputInfo  + JSON.stringify(outputInformation) + "\n";
+    storedClassificationFlag = false;
+}
+if(runUpdating == 0)
+{
+    outputInfo = outputInfo  + "No Data has been updated, everything already up-to-date"
+}
+logging.log(outputInfo);
+
 
-        for (var iii = 0; iii < orderedGroups.length; iii++) //the empty gradings have been ignored, but should be filled with "-"
+/**
+ * Builds filteredRecsObj Object which stores all the included Datasets to the specific filter.
+ * (loops trough classificationTypesFilterObj and uses either entites.getRow or an select for every different filter)
+ */
+function _buildFilteredRecsObject()
+{
+    filteredRecsObj = {}; //reset for every objectType
+    executeGetRows = true; //reset for every objectTyp
+    
+    for (var index in classificationTypesFilterObj[objectTypes[i]])
+    {
+        for (var indexIndex in classificationTypesFilterObj[objectTypes[i]][index]) 
         {
-            if(!groupString[row_Id].toString().includes(orderedGroups[iii][0].toString())) //check which ones aren't included and add "-" for those at correct the position
+            var unparsedFilter = classificationTypesFilterObj[objectTypes[i]][index][indexIndex];
+            var filter = JSON.parse(unparsedFilter).filter;
+            //filteredRecsObj uses the filter as the key -> if multiple indicators use the exact same filtercondition we only have to get these rows once
+            if(filteredRecsObj[classificationTypesFilterObj[objectTypes[i]][index][indexIndex]] == undefined)
             {
-                chainedGrading = chainedGrading.substring(0, iii) + "-" + chainedGrading.substring(iii, chainedGrading.length);
+                if(filter["childs"]["0"] != undefined) // ignore empty filters
+                {
+                    //no "." in the name means its a field of the entity itself: use entities.getRow and JditoFilterUtils.filterRecords 
+                    //to check whether or not the Filter excludes this row
+                    if(!filter["childs"]["0"]["name"].includes(".")) 
+                    {
+                        if(executeGetRows) //only do this once for every object type, since the rows don't change depending on the filter
+                        {
+                            var loadConfig = entities.createConfigForLoadingRows()
+                            .entity(ContextUtils.getEntity(objectTypes[i]))
+                            .fields(filterFields);
+
+                            var rows = entities.getRows(loadConfig);
+                            var filterableRows = [];
+                            for (ii = 0; ii < rows.length; ii++) {
+                                filterableRows[ii] = filterFields.map(function (field)
+                                {
+                                    value = null;
+                                    if (field in rows[ii])
+                                        value = rows[ii][field];
+                                    return value;
+                                });
+                            }
+                            executeGetRows = false;
+                        }
+                        //filter gets used after using entities.getRow and not in the loadconfig, since we can have multiple filters 
+                        //and don't want to do entities.getRow for every single one 
+                        filteredRecsObj[unparsedFilter] = JditoFilterUtils.filterRecords(filterFields, filterableRows, filter);
+                    }
+                    else //else: currently a count is made whith the filtercondition as the where clause --> poor performance
+                    {
+                        if(objectTypes[i] == "Organisation")
+                        {
+                            filteredRecsObj[unparsedFilter] = newSelect("CONTACT.CONTACTID")
+                                            .from("ORGANISATION")
+                                            .join("CONTACT", "ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID and CONTACT.PERSON_ID is null")
+                                            .leftJoin("ADDRESS", "ADDRESS.ADDRESSID = CONTACT.ADDRESS_ID")
+                                            .leftJoin("CLASSIFICATIONSTORAGE", "CLASSIFICATIONSTORAGE.OBJECT_ROWID = CONTACT.CONTACTID")
+                                            .where(db.toFilterCondition(JSON.stringify(filter), "Organisation_entity"))
+                                            .and("ORGANISATION.ORGANISATIONID", OrgUtils.getPrivateOrganisationId(), SqlBuilder.NOT_EQUAL())
+                                            .table();
+                        }
+                        else if(objectTypes[i] == "Salesproject")
+                        {
+                            filteredRecsObj[unparsedFilter] = newSelect("SALESPROJECT.SALESPROJECTID")
+                                            .from("SALESPROJECT")
+                                            .leftJoin("CONTACT", "SALESPROJECT.CONTACT_ID = CONTACT.CONTACTID")
+                                            .leftJoin("ORGANISATION", "CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID")
+                                            .leftJoin("CLASSIFICATIONSTORAGE", "CLASSIFICATIONSTORAGE.OBJECT_ROWID = SALESPROJECT.SALESPROJECTID") 
+                                            .where(db.toFilterCondition(JSON.stringify(filter), "Salesproject_entity"))
+                                            .table();
+                        }
+                    }
+                }
             }
         }
+    }
+}
 
-        //update the specified dataset if the already stored ClassificatioNValue differs from the freshly calculated one
-        cond = newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", row_Id)
-            .and("CLASSIFICATIONSTORAGE.OBJECT_TYPE", objectTypes[i])
-            .and("CLASSIFICATIONSTORAGE.CLASSIFICATIONVALUE", chainedGrading, SqlBuilder.NOT_EQUAL());
-        if(new RegExp("^-+$").test(chainedGrading) == true || chainedGrading == "-")
+/**
+ * Checks whether or not the classificationType is relevant for the current dataset 
+ * (looping trough classificationTypesNoFilterObj if it's included there: no filter is set and it's relevant, 
+ * othwerwises uses _isRelevantFilter() to check whether or not it get's excluded by the set filter)
+ * returns true/false
+ */
+function _isRelevant()
+{
+    var include = false;
+    
+    if(classificationTypeFilter == "" || classificationTypeFilter == undefined)
+    {
+        for (var index in classificationTypesNoFilterObj[objectTypes[i]])
         {
-            count = newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", row_Id).deleteData(true, "CLASSIFICATIONSTORAGE");
+            for (var indexIndex in classificationTypesNoFilterObj[objectTypes[i]][index])
+            {
+                if(classificationTypesNoFilterObj[objectTypes[i]][index][indexIndex] != undefined)
+                {    
+                    include = true;
+                    break;
+                }
+            }
         }
-        else
+    }
+    else
+    {
+        include = _isRelevantFilter();
+    }
+    return include;
+}
+
+/**
+ * Checks whether or not the classificationType is relevant for the current dataset, 
+ * (loops trough filteredRecsObj to check whether or not the filter excluded the dataset)
+ * returns true/false
+ */
+function _isRelevantFilter()
+{
+    var include = false;
+    var recs = filteredRecsObj[classificationTypeFilter];
+    if(recs != undefined)
+    {
+        include = recs.some(function (rec) {return rec[0] == uid});
+    }
+    return include;
+}
+
+
+function _buildBestPossibleScoresGroupObjFn(pBatchData, pBatchNum)
+{
+    //logic from above applies here aswell
+    for (ii = 0; ii < pBatchData.length; ii++) 
+    {
+        [uid, classificationGroupId, classificationTypeId, classificationTypeFilter, classificationScoreTitle, classificationTypeFilter] = pBatchData[ii];
+
+        if(!helperObject.hasOwnProperty(uid)) //uid
         {
-            count = Number(cond.updateData(true, table, column, null, [chainedGrading]));
+            bestPossibleScoresGroupObj[uid] = {};
+            helperObject[uid] = "";
         }
-        if (count > 0)
+        if(!helperObject.hasOwnProperty(uid + classificationGroupId)) //classificationGroup
         {
-            outputInformation[objectTypes[i]].updatedElements += count;
+            bestPossibleScoresGroupObj[uid][classificationGroupId] = "";
+            helperObject[uid + classificationGroupId] = "";
         }
-        else
+        if(!helperObject.hasOwnProperty(uid + classificationTypeId)) //classificationType
         {
-            outputInformation[objectTypes[i]].nonChangedElements++;
+            if(_isRelevant())
+            {
+                if(bestPossibleScoresGroupObj[uid][classificationGroupId] == "")
+                    bestPossibleScoresGroupObj[uid][classificationGroupId] = 0;
+                if(bestPossibleScoresObj[objectTypes[i]][classificationGroupId] != undefined && bestPossibleScoresObj[objectTypes[i]][classificationGroupId][classificationTypeId] != undefined)
+                    bestPossibleScoresGroupObj[uid][classificationGroupId] = eMath.addInt(Number(bestPossibleScoresGroupObj[uid][classificationGroupId]), Number(bestPossibleScoresObj[objectTypes[i]][classificationGroupId][classificationTypeId]));
+
+                helperObject[uid + classificationTypeId] = "";
+            }
         }
     }
 }
 
-var outputInfo = "updateClassifications_serverProcess output is:\n" + JSON.stringify(outputInformation);
-logging.log(outputInfo);
\ No newline at end of file
+function _insertPersistendClassificationDataIfNeeded()
+{   
+    var objectsWithClassification;
+    if(singleRefresh)
+    {
+        objectsWithClassification = [vars.get("$local.ObjectRowid_param")];
+    }
+    else
+    {
+        objectsWithClassification = newSelect("distinct CLASSIFICATION.OBJECT_ROWID")
+                                                .from("CLASSIFICATION")
+                                                .where("CLASSIFICATION.OBJECT_TYPE", objectTypes[i])
+                                                .arrayColumn();
+    }
+    for (z = 0; z < objectsWithClassification.length; z++) {
+        
+        uid = objectsWithClassification[z];
+        var columns = ["CLASSIFICATION.CLASSIFICATIONID"
+                        , "CLASSIFICATION.VALUE"
+                        , "CLASSIFICATION.CLASSIFICATIONTYPE_ID"
+                        , "CLASSIFICATION.OBJECT_TYPE"
+                        , "CLASSIFICATION.OBJECT_ROWID"
+                        , "CLASSIFICATION.SCOREPOINTS"
+                        ];
+
+        for (var groupId in outdatedClassificationTypeObj[objectTypes[i]])
+        {
+            for (var typeId in outdatedClassificationTypeObj[objectTypes[i]][groupId])
+            {
+                classificationTypeFilter = outdatedClassificationTypeObj[objectTypes[i]][groupId][typeId]["classificationTypeFilter"];
+                if(!persistedClassificationObj[uid][groupId].hasOwnProperty(typeId) && _isRelevant())
+                {
+                    var values = [util.getNewUUID()
+                                    , " "
+                                    , typeId
+                                    , objectTypes[i]
+                                    , uid
+                                    , "0"
+                                ];
+                    db.insertData("CLASSIFICATION", columns, null, values);
+                    outputInformation[objectTypes[i]].persistentDatasetsUpdated++;
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/process/updateClassifications_serverProcess/updateClassifications_serverProcess.aod b/process/updateClassifications_serverProcess/updateClassifications_serverProcess.aod
index 52e9c03b7cf5d4c0792dd5f4ea13a6676520a729..2ba0b1ef3bf179083e4c64eb0ca8d4c6748a4e0e 100644
--- a/process/updateClassifications_serverProcess/updateClassifications_serverProcess.aod
+++ b/process/updateClassifications_serverProcess/updateClassifications_serverProcess.aod
@@ -1,8 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>updateClassifications_serverProcess</name>
   <title>Update all Classification entries in the system</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <documentation>%aditoprj%/process/updateClassifications_serverProcess/documentation.adoc</documentation>
   <process>%aditoprj%/process/updateClassifications_serverProcess/process.js</process>
   <alias>Data_alias</alias>
   <variants>
diff --git a/process/workflowDeploy_rest/workflowDeploy_rest.aod b/process/workflowDeploy_rest/workflowDeploy_rest.aod
index 05c891a90280224cd574f42e6347203f67386f3a..ad6fb04bf2304ee5c01e7dd785ff274e146e82f7 100644
--- a/process/workflowDeploy_rest/workflowDeploy_rest.aod
+++ b/process/workflowDeploy_rest/workflowDeploy_rest.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>workflowDeploy_rest</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/workflowDeploy_rest/process.js</process>
diff --git a/process/workflowExtension_serverProcess/process.js b/process/workflowExtension_serverProcess/process.js
new file mode 100644
index 0000000000000000000000000000000000000000..e41601e19704431dcbd03f6022eb9eead22368a1
--- /dev/null
+++ b/process/workflowExtension_serverProcess/process.js
@@ -0,0 +1,15 @@
+import("Context_lib");
+import("Classification_lib");
+import("Workflow_lib");
+import("system.vars");
+import("Observation_lib")
+
+var localVariables = JSON.parse(vars.get("$local.variablesWorkflow"));
+var targetId = localVariables["targetId"];
+var entityName = ContextUtils.getEntity(localVariables["targetContext"]);
+var rowData = JSON.parse(localVariables[WorkflowVariables.ROWDATA()]);
+var changedRows = JSON.parse(localVariables[WorkflowVariables.CHANGED_ROWS()]);
+
+Observation.checkObservation(JSON.parse(vars.get("$local.variablesWorkflow")));
+
+ClassificationUtils.setClassificationStorageDatasetsOutdated([targetId], entityName, rowData, changedRows); 
diff --git a/process/workflowExtension_serverProcess/workflowExtension_serverProcess.aod b/process/workflowExtension_serverProcess/workflowExtension_serverProcess.aod
new file mode 100644
index 0000000000000000000000000000000000000000..c344dc7204460dbcff99ddb0c5d92ef5c1656fe6
--- /dev/null
+++ b/process/workflowExtension_serverProcess/workflowExtension_serverProcess.aod
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
+  <name>workflowExtension_serverProcess</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <process>%aditoprj%/process/workflowExtension_serverProcess/process.js</process>
+  <alias>Data_alias</alias>
+  <variants>
+    <element>EXECUTABLE</element>
+  </variants>
+</process>
diff --git a/process/workflowLinkTracking_rest/workflowLinkTracking_rest.aod b/process/workflowLinkTracking_rest/workflowLinkTracking_rest.aod
index 9d33ad873277ea65215132f0999519ec2e699e08..c52adefed8b5466a9f677e271f2e094ecfd7070d 100644
--- a/process/workflowLinkTracking_rest/workflowLinkTracking_rest.aod
+++ b/process/workflowLinkTracking_rest/workflowLinkTracking_rest.aod
@@ -1,11 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>workflowLinkTracking_rest</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/workflowLinkTracking_rest/process.js</process>
   <publishAsWebservice v="false" />
   <style>REST</style>
-  <loginTypeId>internal.none</loginTypeId>
+  <loginTypeId>
+    <element>internal.none</element>
+  </loginTypeId>
   <restrictedRoles />
   <alias>Data_alias</alias>
   <variants>
diff --git a/process/workflowPrivileges_rest/workflowPrivileges_rest.aod b/process/workflowPrivileges_rest/workflowPrivileges_rest.aod
index 5a75e4758d9beb4122312853a53092986eb8b853..5ea1497835d807d18c23333b742ad6125d3777f0 100644
--- a/process/workflowPrivileges_rest/workflowPrivileges_rest.aod
+++ b/process/workflowPrivileges_rest/workflowPrivileges_rest.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>workflowPrivileges_rest</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/workflowPrivileges_rest/process.js</process>
diff --git a/process/workflowRoles_rest/workflowRoles_rest.aod b/process/workflowRoles_rest/workflowRoles_rest.aod
index 4f15d52de42e555e108da701ae778db1197ada7e..6cfb124a66132d6976ebf4201c34f5854d6abda2 100644
--- a/process/workflowRoles_rest/workflowRoles_rest.aod
+++ b/process/workflowRoles_rest/workflowRoles_rest.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>workflowRoles_rest</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/workflowRoles_rest/documentation.adoc</documentation>
diff --git a/process/workflowServiceTaskParams_rest/workflowServiceTaskParams_rest.aod b/process/workflowServiceTaskParams_rest/workflowServiceTaskParams_rest.aod
index 7922e7f73b3bc4dc4a9beddb7e1c984564411765..24c524d5bbe0a4c81636d114333f22a9f69043e8 100644
--- a/process/workflowServiceTaskParams_rest/workflowServiceTaskParams_rest.aod
+++ b/process/workflowServiceTaskParams_rest/workflowServiceTaskParams_rest.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>workflowServiceTaskParams_rest</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/workflowServiceTaskParams_rest/documentation.adoc</documentation>
diff --git a/process/workflowServiceTasks_rest/workflowServiceTasks_rest.aod b/process/workflowServiceTasks_rest/workflowServiceTasks_rest.aod
index ea3dfbea15a55987d24139a247e60142a9c41790..189d4377abed5818ead11c35ab8892788b3c4974 100644
--- a/process/workflowServiceTasks_rest/workflowServiceTasks_rest.aod
+++ b/process/workflowServiceTasks_rest/workflowServiceTasks_rest.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>workflowServiceTasks_rest</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/workflowServiceTasks_rest/documentation.adoc</documentation>
diff --git a/process/workflowSignal_rest/workflowSignal_rest.aod b/process/workflowSignal_rest/workflowSignal_rest.aod
index 3006dce1189bad2e90ffea71939fcd282ab4a693..db28e29d522c6089bc2bf21bea4c58d67da5f56f 100644
--- a/process/workflowSignal_rest/workflowSignal_rest.aod
+++ b/process/workflowSignal_rest/workflowSignal_rest.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>workflowSignal_rest</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/workflowSignal_rest/process.js</process>
diff --git a/process/workflowUsers_rest/workflowUsers_rest.aod b/process/workflowUsers_rest/workflowUsers_rest.aod
index 6669992f8a6350bc781118d4751bb12f8f679d05..ff6c8aa88c1d43861d49315a697ad537f3419a24 100644
--- a/process/workflowUsers_rest/workflowUsers_rest.aod
+++ b/process/workflowUsers_rest/workflowUsers_rest.aod
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
   <name>workflowUsers_rest</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/process/workflowUsers_rest/documentation.adoc</documentation>
diff --git a/rendererDefinition/badge/badge.aod b/rendererDefinition/badge/badge.aod
new file mode 100644
index 0000000000000000000000000000000000000000..e606110fda400df9776157bae1529e0f1e31fe32
--- /dev/null
+++ b/rendererDefinition/badge/badge.aod
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rendererDefinition xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/rendererDefinition/1.0.0">
+  <name>badge</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <rendererType>BADGE</rendererType>
+  <rendererConfig>
+    <badgeRendererConfig>
+      <name>rendererConfig</name>
+    </badgeRendererConfig>
+  </rendererConfig>
+</rendererDefinition>
diff --git a/rendererDefinition/discount/discount.aod b/rendererDefinition/discount/discount.aod
new file mode 100644
index 0000000000000000000000000000000000000000..1e4519c869b81bee8cdec97818a76bc17b1f332e
--- /dev/null
+++ b/rendererDefinition/discount/discount.aod
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rendererDefinition xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/rendererDefinition/1.0.0">
+  <name>discount</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <rendererType>NUMBERFIELD</rendererType>
+  <rendererConfig>
+    <numberFieldRendererConfig>
+      <name>rendererConfig</name>
+      <numberfieldStep v="5" />
+    </numberFieldRendererConfig>
+  </rendererConfig>
+</rendererDefinition>
diff --git a/rendererDefinition/numberInput/numberInput.aod b/rendererDefinition/numberInput/numberInput.aod
new file mode 100644
index 0000000000000000000000000000000000000000..16f103371640f5e6288e79607d636117c685e9a0
--- /dev/null
+++ b/rendererDefinition/numberInput/numberInput.aod
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rendererDefinition xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/rendererDefinition/1.0.0">
+  <name>numberInput</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <rendererType>NUMBERFIELD</rendererType>
+  <rendererConfig>
+    <numberFieldRendererConfig>
+      <name>rendererConfig</name>
+    </numberFieldRendererConfig>
+  </rendererConfig>
+</rendererDefinition>
diff --git a/report/Salesorder_report/reportData.jrxml b/report/Salesorder_report/reportData.jrxml
index e885e5f6bceda798028872ef5bc26c7c7f393d88..de40d4296db8e207a4f843841e4601ca1eda934b 100644
--- a/report/Salesorder_report/reportData.jrxml
+++ b/report/Salesorder_report/reportData.jrxml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Beleg" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="e7a916c8-3f9a-497d-84bb-3909b15271ea">
 	<property name="ireport.zoom" value="2.3579476910000023"/>
-	<property name="ireport.x" value="175"/>
-	<property name="ireport.y" value="665"/>
+	<property name="ireport.x" value="29"/>
+	<property name="ireport.y" value="905"/>
 	<parameter name="myAddr" class="java.lang.String"/>
 	<parameter name="Artikelbezeichnung" class="java.lang.String"/>
 	<parameter name="Artikel-Nr" class="java.lang.String"/>
@@ -304,7 +304,7 @@
 			</band>
 			<band height="50">
 				<textField isStretchWithOverflow="true">
-					<reportElement x="0" y="0" width="555" height="50" uuid="678c4956-6136-49ba-8199-ed41c384e3ea"/>
+					<reportElement x="0" y="0" width="555" height="31" uuid="678c4956-6136-49ba-8199-ed41c384e3ea"/>
 					<textElement>
 						<font size="8"/>
 					</textElement>