diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod
index 75bd8fc7562eac649112a569547aff19d685b216..ed9abeecf516580f744d3c34ae5fb92235fd1687 100644
--- a/aliasDefinition/Data_alias/Data_alias.aod
+++ b/aliasDefinition/Data_alias/Data_alias.aod
@@ -104,6 +104,62 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="91" />
+                <size v="10" />
+                <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="91" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="true" />
+                <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="true" />
+                <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>
@@ -257,6 +313,62 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="91" />
+                <size v="10" />
+                <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>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="91" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="true" />
+                <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="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -400,6 +512,62 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="91" />
+                <size v="10" />
+                <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>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="91" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="true" />
+                <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="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -595,6 +763,62 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="91" />
+                <size v="10" />
+                <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>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="91" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="true" />
+                <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="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -686,27 +910,8 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
-            </entityFields>
-          </entityDb>
-          <entityDb>
-            <name>CONTRACT</name>
-            <dbName></dbName>
-            <idColumn>CONTRACTID</idColumn>
-            <idGeneratorType v="0" />
-            <idGeneratorInterval v="1" />
-            <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>CONTRACTDUE</name>
+                <name>DATE_EDIT</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="93" />
@@ -715,17 +920,92 @@
                 <notNull v="false" />
                 <isUnique v="false" />
                 <index v="false" />
+                <documentation></documentation>
                 <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>PAYMENT</name>
+                <name>DATE_NEW</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="1" />
-                <size v="36" />
-                <scale v="0" />
-                <notNull v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="true" />
+                <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="true" />
+                <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>CONTRACT</name>
+            <dbName></dbName>
+            <idColumn>CONTRACTID</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <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>CONTRACTDUE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>PAYMENT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
                 <isUnique v="false" />
                 <index v="false" />
                 <title></title>
@@ -1013,6 +1293,62 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="91" />
+                <size v="10" />
+                <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>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="91" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="true" />
+                <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="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -1798,6 +2134,62 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="91" />
+                <size v="10" />
+                <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>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="91" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="true" />
+                <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="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -3071,6 +3463,62 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="91" />
+                <size v="10" />
+                <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>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="91" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="true" />
+                <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="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -4254,20 +4702,76 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
-            </entityFields>
-          </entityDb>
-          <entityDb>
-            <name>ACTIVITYLINK</name>
-            <dbName></dbName>
-            <idColumn>ACTIVITYLINKID</idColumn>
-            <idGeneratorType v="0" />
-            <idGeneratorInterval v="1" />
-            <title></title>
-            <description></description>
-            <auditSyncConfig>
-              <name>auditSyncConfig</name>
-              <auditMode v="0" />
-              <syncActive v="false" />
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="91" />
+                <size v="10" />
+                <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>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="91" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="true" />
+                <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="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>ACTIVITYLINK</name>
+            <dbName></dbName>
+            <idColumn>ACTIVITYLINKID</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
               <syncComplete v="true" />
               <syncDirection v="1" />
               <syncIds></syncIds>
@@ -4329,6 +4833,62 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="91" />
+                <size v="10" />
+                <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="91" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="true" />
+                <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="true" />
+                <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>
@@ -5088,6 +5648,298 @@
               </entityFieldDb>
             </entityFields>
           </entityDb>
+          <entityDb>
+            <name>DATABASECHANGELOG</name>
+            <dbName></dbName>
+            <idColumn></idColumn>
+            <idGeneratorType v="1" />
+            <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>EXECTYPE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATEEXECUTED</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ORDEREXECUTED</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>COMMENTS</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>AUTHOR</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>CONTEXTS</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>MD5SUM</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="35" />
+                <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>LIQUIBASE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="20" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DEPLOYMENT_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="10" />
+                <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="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>TAG</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>LABELS</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>FILENAME</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>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>DATABASECHANGELOGLOCK</name>
+            <dbName></dbName>
+            <idColumn>ID</idColumn>
+            <idGeneratorType v="1" />
+            <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>LOCKGRANTED</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>LOCKED</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="16" />
+                <size v="1" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>LOCKEDBY</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="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
           <entityDb>
             <name>CAMPAIGNPARTICIPANT</name>
             <dbName></dbName>
@@ -5760,7 +6612,7 @@
       <name>OFFER</name>
       <title>Offer</title>
       <icon>VAADIN:CART</icon>
-      <active v="false" />
+      <active v="true" />
       <idColumn>OFFERID</idColumn>
       <titleColumn>TITLECOLUMN</titleColumn>
       <descriptionColumn>DESCCOLUMN</descriptionColumn>
@@ -5773,9 +6625,9 @@
     </indexSearchGroup>
     <indexSearchGroup>
       <name>SALESORDER</name>
-      <title>Order</title>
+      <title>Receipt</title>
       <icon>VAADIN:DOLLAR</icon>
-      <active v="false" />
+      <active v="true" />
       <idColumn>SALESORDERID</idColumn>
       <titleColumn>TITLECOLUMN</titleColumn>
       <descriptionColumn>DESCCOLUMN</descriptionColumn>
@@ -5790,10 +6642,11 @@
       <name>CONTRACT</name>
       <title>Contract</title>
       <icon>VAADIN:FILE_TEXT</icon>
-      <active v="false" />
-      <idColumn>CONTRACT</idColumn>
+      <active v="true" />
+      <idColumn>CONTRACTID</idColumn>
       <titleColumn>TITLECOLUMN</titleColumn>
       <descriptionColumn>DESCCOLUMN</descriptionColumn>
+      <query>%aditoprj%/aliasDefinition/Data_alias/indexsearchgroups/contract/query.js</query>
       <resultContextNeon>Contract</resultContextNeon>
       <affectedTables>
         <element>CONTRACT</element>
@@ -5804,10 +6657,11 @@
       <name>PRODUCT</name>
       <title>Product</title>
       <icon>VAADIN:HAMMER</icon>
-      <active v="false" />
-      <idColumn>PRODUCT</idColumn>
+      <active v="true" />
+      <idColumn>PRODUCTID</idColumn>
       <titleColumn>TITLECOLUMN</titleColumn>
       <descriptionColumn>DESCCOLUMN</descriptionColumn>
+      <query>%aditoprj%/aliasDefinition/Data_alias/indexsearchgroups/product/query.js</query>
       <resultContextNeon>Product</resultContextNeon>
       <affectedTables>
         <element>PRODUCT</element>
@@ -5818,10 +6672,11 @@
       <name>SALESPROJECT</name>
       <title>Salesproject</title>
       <icon>VAADIN:BOOK_DOLLAR</icon>
-      <active v="false" />
-      <idColumn>SALESPROJECT</idColumn>
+      <active v="true" />
+      <idColumn>SALESPROJECTID</idColumn>
       <titleColumn>TITLECOLUMN</titleColumn>
       <descriptionColumn>DESCCOLUMN</descriptionColumn>
+      <query>%aditoprj%/aliasDefinition/Data_alias/indexsearchgroups/salesproject/query.js</query>
       <resultContextNeon>Salesproject</resultContextNeon>
       <affectedTables>
         <element>SALESPROJECT</element>
diff --git a/aliasDefinition/Data_alias/indexsearchgroups/contract/query.js b/aliasDefinition/Data_alias/indexsearchgroups/contract/query.js
new file mode 100644
index 0000000000000000000000000000000000000000..d10d2a6fac72a181df3979be5e857620e0846cc3
--- /dev/null
+++ b/aliasDefinition/Data_alias/indexsearchgroups/contract/query.js
@@ -0,0 +1,26 @@
+import("system.result");
+import("system.vars");
+import("system.calendars");
+import("system.db");
+import("Keyword_lib");
+import("Sql_lib");
+import("KeywordRegistry_basic");
+
+var sqlQuery, sqlHelper, queryCondition, affectedIds;
+queryCondition = "";
+if (vars.exists("$local.idvalue")) {
+    affectedIds = vars.get("$local.idvalue");
+    queryCondition = "where CONTRACTID in ('" + affectedIds.map(function (v){return db.quote(v);}).join("', '") + "')";
+    //TODO: refactor this for incremental indexer (injections?)
+}
+sqlHelper = new SqlMaskingUtils();
+sqlQuery = "select CONTRACTID, " 
+    + sqlHelper.concat(["CONTRACTCODE", KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.contractStatus(), "CONTRACTSTATUS")], " | ")
+    + " as TITLECOLUMN, " 
+    + sqlHelper.concat(["ORGANISATION.NAME", "'| Contract Type: '",  KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.contractType(), "CONTRACTTYPE")]) //TODO: translation in index?
+    + " as DESCCOLUMN, CONTRACTCODE, ORGANISATION.NAME, CUSTOMERCODE " 
+    + " from CONTRACT "
+    + " join CONTACT on CONTRACT.CONTACT_ID = CONTACTID "
+    + " join ORGANISATION on ORGANISATIONID = CONTACT.ORGANISATION_ID "
+    + queryCondition + " order by CONTRACTCODE ";
+result.string(sqlQuery);
\ No newline at end of file
diff --git a/aliasDefinition/Data_alias/indexsearchgroups/offer/query.js b/aliasDefinition/Data_alias/indexsearchgroups/offer/query.js
index d8bff6962ee6476f616c9cb6a66304bfae3d35b2..1ad88702c6a57044ae2f17e98e0bee8a460987df 100644
--- a/aliasDefinition/Data_alias/indexsearchgroups/offer/query.js
+++ b/aliasDefinition/Data_alias/indexsearchgroups/offer/query.js
@@ -2,9 +2,12 @@ import("system.result");
 import("system.vars");
 import("system.calendars");
 import("system.db");
+import("Keyword_lib");
 import("Sql_lib");
+import("KeywordRegistry_basic");
 
 var sqlQuery, sqlHelper, queryCondition, affectedIds;
+queryCondition = "";
 if (vars.exists("$local.idvalue")) {
     affectedIds = vars.get("$local.idvalue");
     queryCondition = "where OFFERID in ('" + affectedIds.map(function (v){return db.quote(v);}).join("', '") + "')";
@@ -12,9 +15,10 @@ if (vars.exists("$local.idvalue")) {
 }
 sqlHelper = new SqlMaskingUtils();
 sqlQuery = "select OFFERID, " 
-    + "OFFERCODE as TITLECOLUMN, " 
-    + sqlHelper.concat(["ORGNAME", "'| Kd-Nr.: '", "CUSTOMERCODE"]) 
-    + " as DESCCOLUMN, OFFERCODE, ORGNAME, CUSTOMERCODE " 
+    + sqlHelper.concat(["OFFERCODE", KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.offerStatus(), "OFFER.STATUS")], " | ")
+    + " as TITLECOLUMN, " 
+    + sqlHelper.concat(["ORGANISATION.NAME", "'| Kd-Nr.: '", "CUSTOMERCODE"]) 
+    + " as DESCCOLUMN, OFFERCODE, ORGANISATION.NAME, CUSTOMERCODE " 
     + " from OFFER "
     + " join CONTACT on OFFER.CONTACT_ID = CONTACTID "
     + " join ORGANISATION on ORGANISATIONID = CONTACT.ORGANISATION_ID "
diff --git a/aliasDefinition/Data_alias/indexsearchgroups/organisation/query.js b/aliasDefinition/Data_alias/indexsearchgroups/organisation/query.js
index 8deb7a7a4f7cb64fd986063e70aca8baf5b32b51..1bb4c5ad46172d14146b49f038b0f4049dfae86a 100644
--- a/aliasDefinition/Data_alias/indexsearchgroups/organisation/query.js
+++ b/aliasDefinition/Data_alias/indexsearchgroups/organisation/query.js
@@ -12,7 +12,7 @@ if (vars.exists("$local.idvalue")) {
 }
 sqlHelper = new SqlMaskingUtils();
 sqlQuery = "select CONTACT.CONTACTID "
-    + "," + sqlHelper.concat(["ORGANISATION.NAME", "ORGANISATION.CUSTOMERCODE"]) 
+    + "," + sqlHelper.concat(["ORGANISATION.NAME", "'|'", "ORGANISATION.CUSTOMERCODE"]) 
     + " as TITLECOLUMN "
     + "," + sqlHelper.concat([
          sqlHelper.concat(["defaultAddress.ADDRESS", "defaultAddress.BUILDINGNO"])
diff --git a/aliasDefinition/Data_alias/indexsearchgroups/person/query.js b/aliasDefinition/Data_alias/indexsearchgroups/person/query.js
index 8dd398447fea4415f16fb1817371b839119b6221..617811326108f9aaa5feac727b4e06d7aa30f3e4 100644
--- a/aliasDefinition/Data_alias/indexsearchgroups/person/query.js
+++ b/aliasDefinition/Data_alias/indexsearchgroups/person/query.js
@@ -12,7 +12,7 @@ if (vars.exists("$local.idvalue")) {
 }
 sqlHelper = new SqlMaskingUtils();
 sqlQuery = "select CONTACT.CONTACTID "
-    + "," + sqlHelper.concat(["PERSON.SALUTATION", "PERSON.FIRSTNAME", "PERSON.LASTNAME", "ORGANISATION.NAME"]) 
+    + "," + sqlHelper.concat(["PERSON.SALUTATION", "PERSON.FIRSTNAME", "PERSON.LASTNAME", "'|'", "ORGANISATION.NAME"]) 
     + " as TITLECOLUMN "
     + "," + sqlHelper.concat([
          sqlHelper.concat(["defaultAddress.ADDRESS", "defaultAddress.BUILDINGNO"])
diff --git a/aliasDefinition/Data_alias/indexsearchgroups/product/query.js b/aliasDefinition/Data_alias/indexsearchgroups/product/query.js
new file mode 100644
index 0000000000000000000000000000000000000000..9f8b8240c20e0a74ef734bcc01787ba192206ffa
--- /dev/null
+++ b/aliasDefinition/Data_alias/indexsearchgroups/product/query.js
@@ -0,0 +1,24 @@
+import("system.result");
+import("system.vars");
+import("system.calendars");
+import("system.db");
+import("Keyword_lib");
+import("Sql_lib");
+import("KeywordRegistry_basic");
+
+var sqlQuery, sqlHelper, queryCondition, affectedIds;
+queryCondition = "";
+if (vars.exists("$local.idvalue")) {
+    affectedIds = vars.get("$local.idvalue");
+    queryCondition = "where PRODUCTID in ('" + affectedIds.map(function (v){return db.quote(v);}).join("', '") + "')";
+    //TODO: refactor this for incremental indexer (injections?)
+}
+sqlHelper = new SqlMaskingUtils();
+sqlQuery = "select PRODUCTID, " 
+    + sqlHelper.concat(["PRODUCTCODE", "PRODUCTNAME"], " | ")
+    + " as TITLECOLUMN, " 
+    + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "GROUPCODEID")
+    + " as DESCCOLUMN, PRODUCTCODE " 
+    + " from PRODUCT "
+    + queryCondition + " order by PRODUCTCODE ";
+result.string(sqlQuery);
\ No newline at end of file
diff --git a/aliasDefinition/Data_alias/indexsearchgroups/salesorder/query.js b/aliasDefinition/Data_alias/indexsearchgroups/salesorder/query.js
index 39a1d15028db2e6dd488e391a63d6d3d51cc52de..02db43bf565a08088d3f2c3141b58f5a530a25bf 100644
--- a/aliasDefinition/Data_alias/indexsearchgroups/salesorder/query.js
+++ b/aliasDefinition/Data_alias/indexsearchgroups/salesorder/query.js
@@ -5,6 +5,7 @@ import("system.db");
 import("Sql_lib");
 
 var sqlQuery, sqlHelper, queryCondition, affectedIds;
+queryCondition = "";
 if (vars.exists("$local.idvalue")) {
     affectedIds = vars.get("$local.idvalue");
     queryCondition = "where OFFERID in ('" + affectedIds.map(function (v){return db.quote(v);}).join("', '") + "')";
@@ -12,11 +13,11 @@ if (vars.exists("$local.idvalue")) {
 }
 sqlHelper = new SqlMaskingUtils();
 sqlQuery = "select SALESORDERID, " 
-    + " ORDERCODE as TITLECOLUMN, " 
-    + sqlHelper.concat(["ORGNAME", "'| Kd-Nr.: '", "CUSTOMERCODE"]) 
-    + " as DESCCOLUMN, ORDERCODE, ORGNAME, CUSTOMERCODE "
+    + " SALESORDERCODE as TITLECOLUMN, " 
+    + sqlHelper.concat(["ORGANISATION.NAME", "'| Kd-Nr.: '", "CUSTOMERCODE"]) 
+    + " as DESCCOLUMN, SALESORDERCODE, ORGANISATION.NAME, CUSTOMERCODE "
     + " from SALESORDER "
-    + " join RELATION on SALESORDER.RELATION_ID = RELATIONID "
-    + " join ORG on ORGID = RELATION.ORG_ID "
-    + queryCondition + " order by ORDERCODE ";
+    + " join CONTACT on SALESORDER.CONTACT_ID = CONTACTID "
+    + " join ORGANISATION on ORGANISATIONID = CONTACT.ORGANISATION_ID "
+    + queryCondition + " order by SALESORDERCODE ";
 result.string(sqlQuery);
\ No newline at end of file
diff --git a/aliasDefinition/Data_alias/indexsearchgroups/salesproject/query.js b/aliasDefinition/Data_alias/indexsearchgroups/salesproject/query.js
new file mode 100644
index 0000000000000000000000000000000000000000..e03985eafd0631e8451fb505e7a0ac5e1d5e15fa
--- /dev/null
+++ b/aliasDefinition/Data_alias/indexsearchgroups/salesproject/query.js
@@ -0,0 +1,25 @@
+import("system.result");
+import("system.vars");
+import("system.calendars");
+import("system.db");
+import("Keyword_lib");
+import("Sql_lib");
+import("KeywordRegistry_basic");
+
+var sqlQuery, sqlHelper, queryCondition, affectedIds;
+queryCondition = "";
+if (vars.exists("$local.idvalue")) {
+    affectedIds = vars.get("$local.idvalue");
+    queryCondition = "where SALESPROJECTID in ('" + affectedIds.map(function (v){return db.quote(v);}).join("', '") + "')";
+    //TODO: refactor this for incremental indexer (injections?)
+}
+sqlHelper = new SqlMaskingUtils();
+sqlQuery = "select SALESPROJECTID, PROJECTTITLE as TITLECOLUMN, " 
+    + sqlHelper.concat([
+        "'Status: '",  KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectState(), "STATE"),
+        "'| Phase: '",  KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectPhase(), "PHASE")
+      ]) 
+    + " as DESCCOLUMN, PROJECTCODE " 
+    + " from SALESPROJECT "
+    + queryCondition + " order by PROJECTCODE ";
+result.string(sqlQuery);
\ No newline at end of file
diff --git a/entity/360Degree_entity/360Degree_entity.aod b/entity/360Degree_entity/360Degree_entity.aod
index 13f96a0d0a6eb7b15b908cd71ef830e36c9c1476..9a4120b092280db215e4424e04bd6d2b928084d2 100644
--- a/entity/360Degree_entity/360Degree_entity.aod
+++ b/entity/360Degree_entity/360Degree_entity.aod
@@ -68,6 +68,8 @@
     <entityProvider>
       <name>PersonObjects</name>
       <fieldType>DEPENDENCY_IN</fieldType>
+      <targetContextField>TARGET_CONTEXT</targetContextField>
+      <targetIdField>TARGET_ID</targetIdField>
       <dependencies>
         <entityDependency>
           <name>1d931ae6-137a-4db3-b02c-eb8872d349c6</name>
@@ -127,6 +129,14 @@
       <searchable v="false" />
       <valueProcess>%aditoprj%/entity/360Degree_entity/entityfields/icon/valueProcess.js</valueProcess>
     </entityField>
+    <entityField>
+      <name>ACTIVE</name>
+      <title>Active</title>
+      <contentType>TEXT</contentType>
+      <possibleItemsProcess>%aditoprj%/entity/360Degree_entity/entityfields/active/possibleItemsProcess.js</possibleItemsProcess>
+      <searchable v="true" />
+      <groupable v="true" />
+    </entityField>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
@@ -139,6 +149,7 @@
         <element>TARGET_CONTEXT.value</element>
         <element>TITLE.value</element>
         <element>DATE.value</element>
+        <element>ACTIVE.value</element>
       </recordFields>
     </jDitoRecordContainer>
   </recordContainers>
diff --git a/entity/360Degree_entity/entityfields/active/possibleItemsProcess.js b/entity/360Degree_entity/entityfields/active/possibleItemsProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7eff15173e4d7fb99e918373472cf56decbaf018
--- /dev/null
+++ b/entity/360Degree_entity/entityfields/active/possibleItemsProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.result");
+import("system.translate");
+
+result.object([["true", translate.text("True")], ["false",translate.text("False")]]);
\ No newline at end of file
diff --git a/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js b/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js
index f85cd0bacff82c5ee19ec1f36601666434c9d1f6..771f35a4cbb15d2d093a5608ffb933c51fdc7261 100644
--- a/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js
@@ -4,14 +4,32 @@ import("system.db");
 import("system.vars");
 import("system.result");
 import("Context_lib");
+import("system.translate");
+import("system.logging");
 
 var resultList = [];
 if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param") && vars.exists("$param.ObjectRowId_param") && vars.get("$param.ObjectRowId_param"))
 {
+    
+    var active;
+    var selectMap = ContextUtils._getSelectMap()
+    if(vars.exists("$local.filter") && vars.get("$local.filter") )
+    {
+        var filter = JSON.parse(vars.getString("$local.filter"));
+        if(filter.childs != null && filter.childs.length > 0)
+        {
+            filter.childs.forEach(function(child)
+            {
+                if(child.name === "ACTIVE")
+                    active = JSON.parse(child.key);
+            });  
+        }  
+    }
+    
     var contextList = JSON.parse(vars.getString("$param.ObjectType_param"));
     contextList.forEach(function (context) 
     {
-        var data = db.table(ContextUtils.getContextDataSql(context, vars.get("$param.ObjectRowId_param"), true));
+        var data = db.table(ContextUtils.getContextDataSql(context, vars.get("$param.ObjectRowId_param"), true, active, true));
         data.forEach(function (row) 
         {
             var record = [];
@@ -20,7 +38,16 @@ if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param"
             record[2] = context; // TARGET_CONTEXT
             record[3] = row[1]; // TITLE
             record[4] = row[2]; //DATE
-            resultList.push(record);
+            if(active != undefined) //ACTIVE
+                record[5] = translate.text(active);
+            else
+            {
+               if(selectMap[context][8].indexOf(row[3]) > -1)    
+                  record[5] = translate.text("true");
+               else
+                  record[5] = translate.text("false");
+            }
+            resultList.push(record); 
         });       
                   
     });            
diff --git a/entity/ActivityLink_entity/ActivityLink_entity.aod b/entity/ActivityLink_entity/ActivityLink_entity.aod
index 38ceb851f59ac65172af94abf8c283bfa356914c..f717d43107531b096856291d8157823e9a5e82a0 100644
--- a/entity/ActivityLink_entity/ActivityLink_entity.aod
+++ b/entity/ActivityLink_entity/ActivityLink_entity.aod
@@ -81,6 +81,22 @@
       <expose v="true" />
       <description>PARAMETER</description>
     </entityParameter>
+    <entityField>
+      <name>USER_NEW</name>
+      <valueProcess>%aditoprj%/entity/ActivityLink_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <valueProcess>%aditoprj%/entity/ActivityLink_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <valueProcess>%aditoprj%/entity/ActivityLink_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <valueProcess>%aditoprj%/entity/ActivityLink_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -117,6 +133,22 @@
           <name>OBJECT_ROWID.displayValue</name>
           <expression>%aditoprj%/entity/ActivityLink_entity/recordcontainers/db/recordfieldmappings/object_rowid.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>ACTIVITYLINK.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>ACTIVITYLINK.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>ACTIVITYLINK.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>ACTIVITYLINK.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/ActivityLink_entity/entityfields/date_edit/valueProcess.js b/entity/ActivityLink_entity/entityfields/date_edit/valueProcess.js
index 710ac8a06a9911f82ff222c7d9d231846ca93fb2..8d41a64d6993f71d00e0879f5eb4aed0aa0b866d 100644
--- a/entity/ActivityLink_entity/entityfields/date_edit/valueProcess.js
+++ b/entity/ActivityLink_entity/entityfields/date_edit/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
-    result.string(vars.getString("$sys.date"));
\ No newline at end of file
+    result.string(vars.get("$sys.date"));
\ No newline at end of file
diff --git a/entity/ActivityLink_entity/entityfields/date_new/valueProcess.js b/entity/ActivityLink_entity/entityfields/date_new/valueProcess.js
index 3a0d59096cd2de39b6098f1ed95af580dcebfce0..8ee28e84edb9930de54975f81e8cb5a13c9aa02f 100644
--- a/entity/ActivityLink_entity/entityfields/date_new/valueProcess.js
+++ b/entity/ActivityLink_entity/entityfields/date_new/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    result.string(vars.getString("$sys.date"));
\ No newline at end of file
+    result.string(vars.get("$sys.date"));
\ No newline at end of file
diff --git a/entity/ActivityLink_entity/entityfields/user_edit/valueProcess.js b/entity/ActivityLink_entity/entityfields/user_edit/valueProcess.js
index 1581e18d9763043ae602b98658f87cb0a3b0c967..90383c071316dc55fe51d43a93dd7db75551842e 100644
--- a/entity/ActivityLink_entity/entityfields/user_edit/valueProcess.js
+++ b/entity/ActivityLink_entity/entityfields/user_edit/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
-    result.string(vars.getString("$sys.user"));
\ No newline at end of file
+    result.string(vars.get("$sys.user"));
\ No newline at end of file
diff --git a/entity/ActivityLink_entity/entityfields/user_new/valueProcess.js b/entity/ActivityLink_entity/entityfields/user_new/valueProcess.js
index 7c566863b493d778b72dea7d8822f6a59333e77d..dda83cfd00e13df5c6da64151f5d1e6d932a681e 100644
--- a/entity/ActivityLink_entity/entityfields/user_new/valueProcess.js
+++ b/entity/ActivityLink_entity/entityfields/user_new/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    result.string(vars.getString("$sys.user"));
\ No newline at end of file
+    result.string(vars.get("$sys.user"));
\ No newline at end of file
diff --git a/entity/Activity_entity/Activity_entity.aod b/entity/Activity_entity/Activity_entity.aod
index 3f998199e73bd8addc2b6b5bf9a945d68533dcee..3dff2ecaf5858f51c556ea7296f6aa9dee79a521 100644
--- a/entity/Activity_entity/Activity_entity.aod
+++ b/entity/Activity_entity/Activity_entity.aod
@@ -20,7 +20,6 @@
       <name>ENTRYDATE</name>
       <title>Entrydate</title>
       <contentType>DATE</contentType>
-      <resolution>DAY</resolution>
       <outputFormat>dd.MM.yyyy</outputFormat>
       <mandatory v="true" />
       <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/entrydate/valueProcess.js</valueProcess>
@@ -391,6 +390,44 @@
       <documentation>%aditoprj%/entity/Activity_entity/entityfields/presetlinks_param/documentation.adoc</documentation>
       <description>PARAMETER</description>
     </entityParameter>
+    <entityConsumer>
+      <name>AttributeTree</name>
+      <title>Attribute Tree</title>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelationTree_entity</entityName>
+        <fieldName>TreeProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>USER_NEW</name>
+      <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -457,6 +494,22 @@
           <name>CREATOR.displayValue</name>
           <expression>%aditoprj%/entity/Activity_entity/recordcontainers/db/recordfieldmappings/creator.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>ACTIVITY.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>ACTIVITY.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>ACTIVITY.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>ACTIVITY.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Activity_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js b/entity/Activity_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6717e012d6f73633d708947198ce7e04dee68d82
--- /dev/null
+++ b/entity/Activity_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.ACTIVITYID"));
\ No newline at end of file
diff --git a/entity/Activity_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js b/entity/Activity_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..431bcc952145cb451362fc69754f84ff1514bac5
--- /dev/null
+++ b/entity/Activity_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Context_lib");
+
+result.string(ContextUtils.getCurrentContextId());
diff --git a/entity/Activity_entity/entityfields/date_edit/valueProcess.js b/entity/Activity_entity/entityfields/date_edit/valueProcess.js
index 710ac8a06a9911f82ff222c7d9d231846ca93fb2..8d41a64d6993f71d00e0879f5eb4aed0aa0b866d 100644
--- a/entity/Activity_entity/entityfields/date_edit/valueProcess.js
+++ b/entity/Activity_entity/entityfields/date_edit/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
-    result.string(vars.getString("$sys.date"));
\ No newline at end of file
+    result.string(vars.get("$sys.date"));
\ No newline at end of file
diff --git a/entity/Activity_entity/entityfields/date_new/valueProcess.js b/entity/Activity_entity/entityfields/date_new/valueProcess.js
index 3a0d59096cd2de39b6098f1ed95af580dcebfce0..8ee28e84edb9930de54975f81e8cb5a13c9aa02f 100644
--- a/entity/Activity_entity/entityfields/date_new/valueProcess.js
+++ b/entity/Activity_entity/entityfields/date_new/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    result.string(vars.getString("$sys.date"));
\ No newline at end of file
+    result.string(vars.get("$sys.date"));
\ No newline at end of file
diff --git a/entity/Activity_entity/entityfields/user_edit/valueProcess.js b/entity/Activity_entity/entityfields/user_edit/valueProcess.js
index 1581e18d9763043ae602b98658f87cb0a3b0c967..90383c071316dc55fe51d43a93dd7db75551842e 100644
--- a/entity/Activity_entity/entityfields/user_edit/valueProcess.js
+++ b/entity/Activity_entity/entityfields/user_edit/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
-    result.string(vars.getString("$sys.user"));
\ No newline at end of file
+    result.string(vars.get("$sys.user"));
\ No newline at end of file
diff --git a/entity/Activity_entity/entityfields/user_new/valueProcess.js b/entity/Activity_entity/entityfields/user_new/valueProcess.js
index 7c566863b493d778b72dea7d8822f6a59333e77d..dda83cfd00e13df5c6da64151f5d1e6d932a681e 100644
--- a/entity/Activity_entity/entityfields/user_new/valueProcess.js
+++ b/entity/Activity_entity/entityfields/user_new/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    result.string(vars.getString("$sys.user"));
\ No newline at end of file
+    result.string(vars.get("$sys.user"));
\ No newline at end of file
diff --git a/entity/Address_entity/Address_entity.aod b/entity/Address_entity/Address_entity.aod
index 67b08770d2ad0f4346df83f0a2758f14fcd9299e..f3dd9484a18ca77a34d0c02af3d6e8a07ffdbe60 100644
--- a/entity/Address_entity/Address_entity.aod
+++ b/entity/Address_entity/Address_entity.aod
@@ -250,12 +250,29 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityField>
+      <name>USER_NEW</name>
+      <valueProcess>%aditoprj%/entity/Address_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Address_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <valueProcess>%aditoprj%/entity/Address_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Address_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
       <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/Address_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <onDBInsert>%aditoprj%/entity/Address_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <linkInformation>
         <linkInformation>
           <name>6a0005cc-c64b-4044-9712-c9d00f02d7a8</name>
@@ -321,6 +338,22 @@
           <name>ADDR_TYPE.displayValue</name>
           <expression>%aditoprj%/entity/Address_entity/recordcontainers/db/recordfieldmappings/addr_type.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>ADDRESS.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>ADDRESS.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>ADDRESS.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>ADDRESS.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Address_entity/entityfields/date_edit/valueProcess.js b/entity/Address_entity/entityfields/date_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..5e6ef059738e0c724a468685333a5e257ac228ce
--- /dev/null
+++ b/entity/Address_entity/entityfields/date_edit/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+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/Address_entity/entityfields/date_new/valueProcess.js b/entity/Address_entity/entityfields/date_new/valueProcess.js
index 408c498a4c90f59cd95eafbf74a8ea2683bab068..a72892783bf2bd04fe353c47f1be0cb570bbb323 100644
--- a/entity/Address_entity/entityfields/date_new/valueProcess.js
+++ b/entity/Address_entity/entityfields/date_new/valueProcess.js
@@ -1,7 +1,7 @@
-import("system.vars");
+import("system.util");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    result.string(vars.getString("$sys.date"));
-
+    result.string(vars.get("$sys.date"));
\ No newline at end of file
diff --git a/entity/Address_entity/entityfields/user_edit/valueProcess.js b/entity/Address_entity/entityfields/user_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6af880ae3e0e2b89b4eee8327ed49f1eefe458af
--- /dev/null
+++ b/entity/Address_entity/entityfields/user_edit/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+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/Address_entity/entityfields/user_new/valueProcess.js b/entity/Address_entity/entityfields/user_new/valueProcess.js
index 7c566863b493d778b72dea7d8822f6a59333e77d..e518bc75a9494e53a83613dedd943106e74fc00a 100644
--- a/entity/Address_entity/entityfields/user_new/valueProcess.js
+++ b/entity/Address_entity/entityfields/user_new/valueProcess.js
@@ -1,6 +1,7 @@
-import("system.vars");
+import("system.util");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    result.string(vars.getString("$sys.user"));
\ No newline at end of file
+    result.string(vars.get("$sys.user"));
\ No newline at end of file
diff --git a/entity/Address_entity/recordcontainers/db/onDBInsert.js b/entity/Address_entity/recordcontainers/db/onDBInsert.js
new file mode 100644
index 0000000000000000000000000000000000000000..4f0f20e26a8335a324327f5df12e37c8399545e3
--- /dev/null
+++ b/entity/Address_entity/recordcontainers/db/onDBInsert.js
@@ -0,0 +1,13 @@
+import("system.logging");
+import("system.vars");
+import("StandardObject_lib");
+
+var typeParam = vars.get("$param.ContactType_param");
+var scopeType = null
+if (typeParam === "contact")
+    scopeType = "Person"
+else if (typeParam === "organisation")
+    scopeType = "Organisation"
+
+new StandardObject("Address", vars.get("$field.ADDRESSID"), scopeType, vars.get("$field.CONTACT_ID"))
+    .onObjectInsert()
diff --git a/entity/AttributeRelationTree_entity/AttributeRelationTree_entity.aod b/entity/AttributeRelationTree_entity/AttributeRelationTree_entity.aod
new file mode 100644
index 0000000000000000000000000000000000000000..12f10e91e643aa32eb5fa04b73ea1cd44ec91736
--- /dev/null
+++ b/entity/AttributeRelationTree_entity/AttributeRelationTree_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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.0">
+  <name>AttributeRelationTree_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <recordContainer>jdito</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+    </entityProvider>
+    <entityField>
+      <name>PARENT_ID</name>
+    </entityField>
+    <entityField>
+      <name>TITLE</name>
+    </entityField>
+    <entityField>
+      <name>UID</name>
+    </entityField>
+    <entityParameter>
+      <name>ObjectType_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>ObjectRowId_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityProvider>
+      <name>TreeProvider</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <dependencies>
+        <entityDependency>
+          <name>e0a7a4bc-ec7f-4f09-9b94-cbeb328cd7b8</name>
+          <entityName>Organisation_entity</entityName>
+          <fieldName>AttributeTree</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>f29d91fe-2537-486f-b9de-44065a7790d4</name>
+          <entityName>Person_entity</entityName>
+          <fieldName>AttributeTree</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>445c1bd7-4e72-4ab7-a5b1-cc77924eb562</name>
+          <entityName>Product_entity</entityName>
+          <fieldName>AttributeTree</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>4498139f-067c-4cca-b122-d9bc9100c53d</name>
+          <entityName>Activity_entity</entityName>
+          <fieldName>AttributeTree</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>d6d5f9aa-4582-4ec5-9381-394a38a726e8</name>
+          <entityName>Offer_entity</entityName>
+          <fieldName>AttributeTree</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>b728166d-a74f-4ca1-8ce7-7e57032f2a7d</name>
+          <entityName>Contract_entity</entityName>
+          <fieldName>AttributeTree</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+  </entityFields>
+  <recordContainers>
+    <jDitoRecordContainer>
+      <name>jdito</name>
+      <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
+      <contentProcess>%aditoprj%/entity/AttributeRelationTree_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
+      <recordFields>
+        <element>UID.value</element>
+        <element>PARENT_ID.value</element>
+        <element>TITLE.value</element>
+      </recordFields>
+    </jDitoRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/AttributeRelationTree_entity/recordcontainers/jdito/contentProcess.js b/entity/AttributeRelationTree_entity/recordcontainers/jdito/contentProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e6b4f8a5171e30c73818b120f6f4de53eabef89f
--- /dev/null
+++ b/entity/AttributeRelationTree_entity/recordcontainers/jdito/contentProcess.js
@@ -0,0 +1,44 @@
+import("system.vars");
+import("system.result");
+import("system.db");
+import("Attribute_lib");
+import("Sql_lib");
+
+var objectType = vars.get("$param.ObjectType_param");
+var rowId = vars.get("$param.ObjectRowId_param");
+var attributeObj = {};
+var allAttributes = [];
+var sqlSelect = "select AB_ATTRIBUTEID, ATTRIBUTE_PARENT_ID, ATTRIBUTE_NAME, ATTRIBUTE_LEVEL from AB_ATTRIBUTE";
+
+var attributeValues = AttributeRelationUtils.getAllAttributes(rowId, objectType, false, true);
+
+_fetchAttributes(attributeValues.map(function (row) {return row[1]}));
+
+allAttributes = allAttributes
+    .sort(function (a, b) {return a[3] - b[3];}) //sort by level to make sure parents are added first
+    .map(function (row) {return [row[0], row[1], row[2]];}) //remove level from array
+    .concat(attributeValues);
+result.object(allAttributes);
+
+function _fetchAttributes (pAttributeIds)
+{
+    var condition = SqlCondition.begin();
+    var nextIds = [];
+    pAttributeIds.forEach(function (id)
+    {
+        if (!(id in this))
+            condition.orPrepare("AB_ATTRIBUTE.AB_ATTRIBUTEID", id);
+    }, attributeObj);
+    db.table(condition.buildSql(sqlSelect, "1=2"))
+        .forEach(function (row)
+            {
+                this[row[0]] = true;
+                if (row[1])
+                    nextIds.push(row[1]);
+                else
+                    row[1] = null;
+                allAttributes.push(row);
+            }, attributeObj);
+    if (nextIds.length)
+        _fetchAttributes(nextIds);
+}
\ No newline at end of file
diff --git a/entity/AttributeRelation_entity/AttributeRelation_entity.aod b/entity/AttributeRelation_entity/AttributeRelation_entity.aod
index e257ce32b6f4ecc06cfc62b9e8b5ca5f84d8b1fc..2821c0bf0127b62c29cb4eadc5ce11efa3b2f241 100644
--- a/entity/AttributeRelation_entity/AttributeRelation_entity.aod
+++ b/entity/AttributeRelation_entity/AttributeRelation_entity.aod
@@ -4,6 +4,7 @@
   <title>Attribute Relation</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/AttributeRelation_entity/documentation.adoc</documentation>
+  <afterOperatingState>%aditoprj%/entity/AttributeRelation_entity/afterOperatingState.js</afterOperatingState>
   <recordContainer>db</recordContainer>
   <entityFields>
     <entityProvider>
@@ -11,6 +12,7 @@
     </entityProvider>
     <entityField>
       <name>AB_ATTRIBUTERELATIONID</name>
+      <searchable v="false" />
       <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/ab_attributerelationid/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
@@ -25,11 +27,13 @@
     <entityField>
       <name>OBJECT_ROWID</name>
       <mandatory v="true" />
+      <searchable v="false" />
       <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/object_rowid/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>OBJECT_TYPE</name>
       <mandatory v="true" />
+      <searchable v="false" />
       <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/object_type/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
@@ -46,6 +50,7 @@
     <entityField>
       <name>CHAR_VALUE</name>
       <mandatory v="false" />
+      <searchable v="false" />
     </entityField>
     <entityProvider>
       <name>RelationsForSpecificObject</name>
@@ -105,11 +110,13 @@
     <entityField>
       <name>DATE_VALUE</name>
       <contentType>DATE</contentType>
+      <searchable v="false" />
       <state>EDITABLE</state>
     </entityField>
     <entityField>
       <name>NUMBER_VALUE</name>
       <contentType>NUMBER</contentType>
+      <searchable v="false" />
       <state>EDITABLE</state>
     </entityField>
     <entityParameter>
@@ -120,16 +127,19 @@
     <entityField>
       <name>BOOL_VALUE</name>
       <contentType>BOOLEAN</contentType>
+      <searchable v="false" />
       <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/bool_value/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>ID_VALUE</name>
+      <searchable v="false" />
     </entityField>
     <entityField>
       <name>ATTRIBUTE_PARENT_ID</name>
       <title>Superordinate Attribute</title>
       <possibleItemsProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/attribute_parent_id/possibleItemsProcess.js</possibleItemsProcess>
-      <groupable v="true" />
+      <searchable v="false" />
+      <displayValueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/attribute_parent_id/displayValueProcess.js</displayValueProcess>
       <onValueChangeTypes>
         <element>MASK</element>
         <element>PROCESS</element>
@@ -154,6 +164,7 @@
     </entityConsumer>
     <entityField>
       <name>MEMO_VALUE</name>
+      <searchable v="false" />
     </entityField>
     <entityParameter>
       <name>FilteredAttributeIds_param</name>
@@ -191,6 +202,22 @@
       <expose v="true" />
       <description>PARAMETER</description>
     </entityParameter>
+    <entityField>
+      <name>USER_NEW</name>
+      <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -198,6 +225,7 @@
       <alias>Data_alias</alias>
       <fromClauseProcess>%aditoprj%/entity/AttributeRelation_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/AttributeRelation_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <orderClauseProcess>%aditoprj%/entity/AttributeRelation_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
       <linkInformation>
         <linkInformation>
           <name>14697123-47ee-4ff0-8ab2-2b8d1217f637</name>
@@ -259,6 +287,22 @@
           <name>MEMO_VALUE.value</name>
           <recordfield>AB_ATTRIBUTERELATION.MEMO_VALUE</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>AB_ATTRIBUTERELATION.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>AB_ATTRIBUTERELATION.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>AB_ATTRIBUTERELATION.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>AB_ATTRIBUTERELATION.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/AttributeRelation_entity/afterOperatingState.js b/entity/AttributeRelation_entity/afterOperatingState.js
new file mode 100644
index 0000000000000000000000000000000000000000..d3061e715463d1b8fb004c30a3750ff6b0a2d4a6
--- /dev/null
+++ b/entity/AttributeRelation_entity/afterOperatingState.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.neon");
+
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_VIEW) 
+    neon.refresh();
\ No newline at end of file
diff --git a/entity/AttributeRelation_entity/entityfields/attribute_parent_id/displayValueProcess.js b/entity/AttributeRelation_entity/entityfields/attribute_parent_id/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b85310336652c14dc00b557287404299142e85c5
--- /dev/null
+++ b/entity/AttributeRelation_entity/entityfields/attribute_parent_id/displayValueProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.result");
+import("Attribute_lib");
+
+result.string(AttributeUtil.getFullAttributeName(vars.get("$field.ATTRIBUTE_PARENT_ID")));
\ No newline at end of file
diff --git a/entity/AttributeRelation_entity/entityfields/date_edit/valueProcess.js b/entity/AttributeRelation_entity/entityfields/date_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..8d41a64d6993f71d00e0879f5eb4aed0aa0b866d
--- /dev/null
+++ b/entity/AttributeRelation_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/AttributeRelation_entity/entityfields/date_new/valueProcess.js b/entity/AttributeRelation_entity/entityfields/date_new/valueProcess.js
index 7acb3c80848f54a4c6dfee5efa7a5b8514dd4a71..9477aae8647e69beb635ccbbe3a5aed9e7dc693e 100644
--- a/entity/AttributeRelation_entity/entityfields/date_new/valueProcess.js
+++ b/entity/AttributeRelation_entity/entityfields/date_new/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    result.string(vars.getString("$sys.date"));
\ No newline at end of file
+    result.string(vars.get("$sys.date"));
\ No newline at end of file
diff --git a/entity/AttributeRelation_entity/entityfields/user_edit/valueProcess.js b/entity/AttributeRelation_entity/entityfields/user_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..90383c071316dc55fe51d43a93dd7db75551842e
--- /dev/null
+++ b/entity/AttributeRelation_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/AttributeRelation_entity/entityfields/user_new/valueProcess.js b/entity/AttributeRelation_entity/entityfields/user_new/valueProcess.js
index a8a5e28793c742f8f3e10907976e746faf43c67c..ad6636be180fbc3dd74567a8751bc69af1f287ff 100644
--- a/entity/AttributeRelation_entity/entityfields/user_new/valueProcess.js
+++ b/entity/AttributeRelation_entity/entityfields/user_new/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    result.string(vars.getString("$sys.user"));
\ No newline at end of file
+    result.string(vars.get("$sys.user"));
\ No newline at end of file
diff --git a/entity/AttributeRelation_entity/entityfields/valueproxy/possibleItemsProcess.js b/entity/AttributeRelation_entity/entityfields/valueproxy/possibleItemsProcess.js
index 779fd24fa971d879920b3238f61f82c348071415..4a7f1e46eda7a88afbfe7523691dd836a6f774bf 100644
--- a/entity/AttributeRelation_entity/entityfields/valueproxy/possibleItemsProcess.js
+++ b/entity/AttributeRelation_entity/entityfields/valueproxy/possibleItemsProcess.js
@@ -11,9 +11,10 @@ var attrType = AttributeHandler.begin(attributeId).getAttributeType();
 if (attrType == $AttributeTypes.COMBO)
 {
     var valueSql = SqlCondition.begin()
+        .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_ACTIVE", "1")
         .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID", attributeId)
         .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.COMBOVALUE)
-        .buildSql("select AB_ATTRIBUTEID, ATTRIBUTE_NAME from AB_ATTRIBUTE");
+        .buildSql("select AB_ATTRIBUTEID, ATTRIBUTE_NAME from AB_ATTRIBUTE", "1=2", "order by ATTRIBUTE_NAME");
     var valueList = db.table(valueSql);
     result.object(valueList);
 }
diff --git a/entity/AttributeRelation_entity/recordcontainers/db/orderClauseProcess.js b/entity/AttributeRelation_entity/recordcontainers/db/orderClauseProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b70300ec1e67e5492b07d3d47dfc5d47a061581f
--- /dev/null
+++ b/entity/AttributeRelation_entity/recordcontainers/db/orderClauseProcess.js
@@ -0,0 +1,5 @@
+import("system.db");
+import("system.result");
+result.object({
+    "AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID" : db.ASCENDING
+});
\ No newline at end of file
diff --git a/entity/Attribute_entity/Attribute_entity.aod b/entity/Attribute_entity/Attribute_entity.aod
index 405955e8bde327f4e88f2e96a187f9ef853827f1..f244233174a3fa2d942734c2da6a5ae5747a9d05 100644
--- a/entity/Attribute_entity/Attribute_entity.aod
+++ b/entity/Attribute_entity/Attribute_entity.aod
@@ -36,11 +36,16 @@
     <entityField>
       <name>ATTRIBUTE_PARENT_ID</name>
       <title>Superordinate Attribute</title>
-      <consumer>AttributeChildren</consumer>
+      <consumer>AttributeGroup</consumer>
       <linkedContext>Attribute</linkedContext>
+      <searchable v="false" />
       <stateProcess>%aditoprj%/entity/Attribute_entity/entityfields/attribute_parent_id/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/attribute_parent_id/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/Attribute_entity/entityfields/attribute_parent_id/displayValueProcess.js</displayValueProcess>
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+      </onValueChangeTypes>
     </entityField>
     <entityConsumer>
       <name>AttributeChildren</name>
@@ -89,8 +94,6 @@
         </entityParameter>
         <entityParameter>
           <name>GetGroups_param</name>
-          <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/attributeparent/children/getgroups_param/valueProcess.js</valueProcess>
-          <expose v="true" />
         </entityParameter>
       </children>
     </entityProvider>
@@ -122,6 +125,7 @@
       <title>Active</title>
       <contentType>BOOLEAN</contentType>
       <possibleItemsProcess>%aditoprj%/entity/Attribute_entity/entityfields/attribute_active/possibleItemsProcess.js</possibleItemsProcess>
+      <groupable v="true" />
       <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/attribute_active/valueProcess.js</valueProcess>
     </entityField>
     <entityConsumer>
@@ -152,6 +156,7 @@
       <name>KEYWORD_CONTAINER</name>
       <title>Keyword</title>
       <possibleItemsProcess>%aditoprj%/entity/Attribute_entity/entityfields/keyword_container/possibleItemsProcess.js</possibleItemsProcess>
+      <searchable v="false" />
       <state>AUTO</state>
       <stateProcess>%aditoprj%/entity/Attribute_entity/entityfields/keyword_container/stateProcess.js</stateProcess>
     </entityField>
@@ -240,6 +245,37 @@
       <title>Name</title>
       <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/name_with_type/valueProcess.js</valueProcess>
     </entityField>
+    <entityProvider>
+      <name>AttributeGroups</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <recordContainer>db</recordContainer>
+      <children>
+        <entityParameter>
+          <name>GetGroups_param</name>
+          <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/attributegroups/children/getgroups_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>AttrParentId_param</name>
+          <expose v="true" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityConsumer>
+      <name>AttributeGroup</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Attribute_entity</entityName>
+        <fieldName>AttributeGroups</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>AttrParentId_param</name>
+          <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/attributegroup/children/attrparentid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -247,6 +283,7 @@
       <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/Attribute_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/Attribute_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
+      <onDBUpdate>%aditoprj%/entity/Attribute_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/Attribute_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
       <linkInformation>
         <linkInformation>
diff --git a/entity/Attribute_entity/entityfields/attribute_level/valueProcess.js b/entity/Attribute_entity/entityfields/attribute_level/valueProcess.js
index 1977334cca875a56fdbf51b64cd088a46a788ba4..e91a822698ae74d9b594ed31998920eb6f639c74 100644
--- a/entity/Attribute_entity/entityfields/attribute_level/valueProcess.js
+++ b/entity/Attribute_entity/entityfields/attribute_level/valueProcess.js
@@ -4,7 +4,7 @@ import("system.result");
 import("system.vars");
 import("Sql_lib");
 
-if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
     if (vars.get("$field.ATTRIBUTE_PARENT_ID") != "")
     {
         var level = db.cell(SqlCondition.begin()
diff --git a/entity/Attribute_entity/entityfields/attribute_parent_id/stateProcess.js b/entity/Attribute_entity/entityfields/attribute_parent_id/stateProcess.js
index 11f1cb994026398ca6df3cfcffd3157ed05f78f7..cac55643fb4daad7e6ccb3511aab9c1410182b77 100644
--- a/entity/Attribute_entity/entityfields/attribute_parent_id/stateProcess.js
+++ b/entity/Attribute_entity/entityfields/attribute_parent_id/stateProcess.js
@@ -1,11 +1,12 @@
 import("system.result");
 import("system.neon");
 import("system.vars");
+import("Attribute_lib");
 
 var fieldState;
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    fieldState = neon.COMPONENTSTATE_AUTO;
-else
+if(vars.get("$field.ATTRIBUTE_TYPE").trim() == $AttributeTypes.COMBOVALUE)
     fieldState = neon.COMPONENTSTATE_READONLY;
+else
+    fieldState = neon.COMPONENTSTATE_AUTO;
 
 result.string(fieldState);
\ No newline at end of file
diff --git a/entity/Attribute_entity/entityfields/attributegroup/children/attrparentid_param/valueProcess.js b/entity/Attribute_entity/entityfields/attributegroup/children/attrparentid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..033bf9a666c5254c8945077776b2834560164e56
--- /dev/null
+++ b/entity/Attribute_entity/entityfields/attributegroup/children/attrparentid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.AB_ATTRIBUTEID"));
\ No newline at end of file
diff --git a/entity/Contact_entity/entityfields/organisations/children/withprivate_param/valueProcess.js b/entity/Attribute_entity/entityfields/attributegroups/children/getgroups_param/valueProcess.js
similarity index 95%
rename from entity/Contact_entity/entityfields/organisations/children/withprivate_param/valueProcess.js
rename to entity/Attribute_entity/entityfields/attributegroups/children/getgroups_param/valueProcess.js
index 40effa0178464da0c7850912345f19c7fa95975a..28d4124c73ca29db763c77486a84b9362ec6d7aa 100644
--- a/entity/Contact_entity/entityfields/organisations/children/withprivate_param/valueProcess.js
+++ b/entity/Attribute_entity/entityfields/attributegroups/children/getgroups_param/valueProcess.js
@@ -1,3 +1,3 @@
-import("system.result");
-
+import("system.result");
+
 result.string(true);
\ No newline at end of file
diff --git a/entity/Attribute_entity/entityfields/attributeparent/children/getgroups_param/valueProcess.js b/entity/Attribute_entity/entityfields/attributeparent/children/getgroups_param/valueProcess.js
deleted file mode 100644
index 289c6a9357f3e98c026acb10dab34501ad5daea5..0000000000000000000000000000000000000000
--- a/entity/Attribute_entity/entityfields/attributeparent/children/getgroups_param/valueProcess.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import("system.neon");
-import("system.vars");
-import("system.result");
-
-result.string(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW || "");
\ No newline at end of file
diff --git a/entity/Attribute_entity/recordcontainers/db/conditionProcess.js b/entity/Attribute_entity/recordcontainers/db/conditionProcess.js
index 1a3010539738aaddde2f405ac7369f7c4bfffe08..ed323a5c82da868f9b3ae4deafd54ad035520109 100644
--- a/entity/Attribute_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/Attribute_entity/recordcontainers/db/conditionProcess.js
@@ -10,8 +10,12 @@ var getGroups = vars.exists("$param.GetGroups_param") && vars.get("$param.GetGro
 var objectType = vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param");
 if (getGroups)
 {
+    //this is for the selection of the superordinate attribute, this condition
+    //filters out the own id and the children to prevent loops
     condition = db.translateCondition(SqlCondition.begin()
         .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.GROUP)
+        .andPrepareVars("AB_ATTRIBUTE.AB_ATTRIBUTEID", "$param.AttrParentId_param", "# != ?")
+        .and("AB_ATTRIBUTE.AB_ATTRIBUTEID not in ('" + AttributeUtil.getAllChildren(vars.getString("$param.AttrParentId_param")).join("','") + "')")
         .build());
 }
 else if (objectType)  //if there's an objectType, it comes from the AttributeRelation entity
diff --git a/entity/Attribute_entity/recordcontainers/db/onDBUpdate.js b/entity/Attribute_entity/recordcontainers/db/onDBUpdate.js
new file mode 100644
index 0000000000000000000000000000000000000000..38704929f969ef673a7fafd41ac71a1fa2c05282
--- /dev/null
+++ b/entity/Attribute_entity/recordcontainers/db/onDBUpdate.js
@@ -0,0 +1,27 @@
+import("system.db");
+import("system.neon");
+import("system.vars");
+import("Attribute_lib");
+
+var level = parseInt(vars.get("$field.ATTRIBUTE_LEVEL"));
+
+var table = "AB_ATTRIBUTE";
+var columns = ["ATTRIBUTE_LEVEL"];
+var types = db.getColumnTypes(table, columns);
+var toUpdate = [];
+
+var attributes = [vars.get("$field.AB_ATTRIBUTEID")];
+while (attributes.length > 0)
+{
+    var condition = SqlCondition.begin()
+        .and("AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID in ('" + attributes.join("','") + "')");
+
+    toUpdate.push([table, columns, types, [String(++level)], condition.build()]);
+
+    attributes = db.array(db.COLUMN, SqlCondition.begin()
+        .and("AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID in ('" + attributes.join("','") + "')")
+        .buildSql("select AB_ATTRIBUTEID from AB_ATTRIBUTE")
+    );
+}
+
+db.updates(toUpdate);
diff --git a/entity/Attribute_entity/recordcontainers/db/orderClauseProcess.js b/entity/Attribute_entity/recordcontainers/db/orderClauseProcess.js
index 4b14378884f0ed11d22218c0e63a66614d3d1d90..003688a8bb9231d8f68eada88a41012db8d2ac2c 100644
--- a/entity/Attribute_entity/recordcontainers/db/orderClauseProcess.js
+++ b/entity/Attribute_entity/recordcontainers/db/orderClauseProcess.js
@@ -1,3 +1,6 @@
 import("system.db");
 import("system.result");
-result.object({"AB_ATTRIBUTE.ATTRIBUTE_LEVEL" : db.ASCENDING});
\ No newline at end of file
+result.object({
+    "AB_ATTRIBUTE.ATTRIBUTE_LEVEL" : db.ASCENDING,
+    "AB_ATTRIBUTE.ATTRIBUTE_NAME" : db.ASCENDING
+});
\ No newline at end of file
diff --git a/entity/Communication_entity/Communication_entity.aod b/entity/Communication_entity/Communication_entity.aod
index 3a60711e698543ddbccc2e8b2e622dc6248f67b3..b5de14e2345efe5db061eab1948da9a764cd8f3e 100644
--- a/entity/Communication_entity/Communication_entity.aod
+++ b/entity/Communication_entity/Communication_entity.aod
@@ -199,6 +199,22 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityField>
+      <name>USER_NEW</name>
+      <valueProcess>%aditoprj%/entity/Communication_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Communication_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <valueProcess>%aditoprj%/entity/Communication_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Communication_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -206,6 +222,8 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
       <alias>Data_alias</alias>
       <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>e3567770-187a-4366-bb87-fb22ff7ff257</name>
@@ -240,6 +258,22 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
           <name>MEDIUM_ID.displayValue</name>
           <expression>%aditoprj%/entity/Communication_entity/recordcontainers/db/recordfieldmappings/medium_id.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>COMMUNICATION.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>COMMUNICATION.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>COMMUNICATION.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>COMMUNICATION.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Communication_entity/entityfields/date_edit/valueProcess.js b/entity/Communication_entity/entityfields/date_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..8d41a64d6993f71d00e0879f5eb4aed0aa0b866d
--- /dev/null
+++ b/entity/Communication_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/Communication_entity/entityfields/date_new/valueProcess.js b/entity/Communication_entity/entityfields/date_new/valueProcess.js
index 408c498a4c90f59cd95eafbf74a8ea2683bab068..8ee28e84edb9930de54975f81e8cb5a13c9aa02f 100644
--- a/entity/Communication_entity/entityfields/date_new/valueProcess.js
+++ b/entity/Communication_entity/entityfields/date_new/valueProcess.js
@@ -1,7 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    result.string(vars.getString("$sys.date"));
-
+    result.string(vars.get("$sys.date"));
\ No newline at end of file
diff --git a/entity/Communication_entity/entityfields/user_edit/valueProcess.js b/entity/Communication_entity/entityfields/user_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..90383c071316dc55fe51d43a93dd7db75551842e
--- /dev/null
+++ b/entity/Communication_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/Communication_entity/entityfields/user_new/valueProcess.js b/entity/Communication_entity/entityfields/user_new/valueProcess.js
index 7c566863b493d778b72dea7d8822f6a59333e77d..e518bc75a9494e53a83613dedd943106e74fc00a 100644
--- a/entity/Communication_entity/entityfields/user_new/valueProcess.js
+++ b/entity/Communication_entity/entityfields/user_new/valueProcess.js
@@ -1,6 +1,7 @@
-import("system.vars");
+import("system.util");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    result.string(vars.getString("$sys.user"));
\ No newline at end of file
+    result.string(vars.get("$sys.user"));
\ No newline at end of file
diff --git a/entity/Communication_entity/recordcontainers/db/onDBInsert.js b/entity/Communication_entity/recordcontainers/db/onDBInsert.js
new file mode 100644
index 0000000000000000000000000000000000000000..4c78aed8ffbf30f4f93e579f4d0a6a0f624e416e
--- /dev/null
+++ b/entity/Communication_entity/recordcontainers/db/onDBInsert.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("StandardObject_lib");
+
+new StandardObject("Communication", vars.get("$field.COMMUNICATIONID"), "Person", vars.get("$field.CONTACT_ID"))
+    .onCommunicationInsert(vars.get("$field.MEDIUM_ID"));
\ No newline at end of file
diff --git a/entity/Communication_entity/recordcontainers/db/onDBUpdate.js b/entity/Communication_entity/recordcontainers/db/onDBUpdate.js
new file mode 100644
index 0000000000000000000000000000000000000000..7e2690d20ab6fcf371c1b12e9e4fa2f4e8a7ef39
--- /dev/null
+++ b/entity/Communication_entity/recordcontainers/db/onDBUpdate.js
@@ -0,0 +1,6 @@
+import("system.logging");
+import("system.vars");
+import("StandardObject_lib");
+
+new StandardObject("Communication", vars.get("$field.COMMUNICATIONID"), "Person", vars.get("$field.CONTACT_ID"))
+    .onCommunicationUpdate(vars.get("$field.MEDIUM_ID"));
\ No newline at end of file
diff --git a/entity/Contact_entity/Contact_entity.aod b/entity/Contact_entity/Contact_entity.aod
index 866f81d40bdb74084bd1dd7933b0ab590bd7e960..a98e4ccf610914626fc94ee204d3cb5063ba2a11 100644
--- a/entity/Contact_entity/Contact_entity.aod
+++ b/entity/Contact_entity/Contact_entity.aod
@@ -17,7 +17,8 @@
       <name>ORGANISATION_ID</name>
       <title>Organisation</title>
       <consumer>Organisations</consumer>
-      <mandatory v="true" />
+      <mandatory v="false" />
+      <valueProcess>%aditoprj%/entity/Contact_entity/entityfields/organisation_id/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/Contact_entity/entityfields/organisation_id/displayValueProcess.js</displayValueProcess>
       <onValidation>%aditoprj%/entity/Contact_entity/entityfields/organisation_id/onValidation.js</onValidation>
       <onValueChange>%aditoprj%/entity/Contact_entity/entityfields/organisation_id/onValueChange.js</onValueChange>
@@ -58,7 +59,6 @@
       <children>
         <entityParameter>
           <name>WithPrivate_param</name>
-          <valueProcess>%aditoprj%/entity/Contact_entity/entityfields/organisations/children/withprivate_param/valueProcess.js</valueProcess>
         </entityParameter>
         <entityParameter>
           <name>ExcludeOrganisationsByPersonId</name>
@@ -128,6 +128,8 @@
       <title>Language</title>
       <consumer>Languages</consumer>
       <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/Contact_entity/entityfields/language/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Contact_entity/entityfields/language/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityConsumer>
       <name>Languages</name>
@@ -190,6 +192,28 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityParameter>
+      <name>LanguageKey_param</name>
+      <valueProcess>%aditoprj%/entity/Contact_entity/entityfields/languagekey_param/valueProcess.js</valueProcess>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityField>
+      <name>USER_NEW</name>
+      <valueProcess>%aditoprj%/entity/Contact_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Contact_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <valueProcess>%aditoprj%/entity/Contact_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Contact_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -242,6 +266,22 @@
           <name>STATUS.value</name>
           <recordfield>CONTACT.STATUS</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>CONTACT.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>CONTACT.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>CONTACT.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>CONTACT.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Contact_entity/entityfields/date_edit/valueProcess.js b/entity/Contact_entity/entityfields/date_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..8d41a64d6993f71d00e0879f5eb4aed0aa0b866d
--- /dev/null
+++ b/entity/Contact_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/Contact_entity/entityfields/date_new/valueProcess.js b/entity/Contact_entity/entityfields/date_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..8ee28e84edb9930de54975f81e8cb5a13c9aa02f
--- /dev/null
+++ b/entity/Contact_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/Contact_entity/entityfields/language/displayValueProcess.js b/entity/Contact_entity/entityfields/language/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..dae44e029af40ecdf3c360a4e80a24d6a5f74540
--- /dev/null
+++ b/entity/Contact_entity/entityfields/language/displayValueProcess.js
@@ -0,0 +1,10 @@
+import("system.result");
+import("system.vars");
+import("Keyword_lib");
+
+var key = vars.get("$field.LANGUAGE");
+if (key)
+{
+    var res = LanguageKeywordUtils.getViewValue(key);
+    result.string(res);
+}
diff --git a/entity/Contact_entity/entityfields/language/valueProcess.js b/entity/Contact_entity/entityfields/language/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..f29e2ae5d150b96c68ef1c595fe723ef498e3080
--- /dev/null
+++ b/entity/Contact_entity/entityfields/language/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.result");
+
+var key = vars.get("$param.LanguageKey_param");
+result.string(key);
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/organisations/children/withprivate_param/valueProcess.js b/entity/Contact_entity/entityfields/languagekey_param/valueProcess.js
similarity index 54%
rename from entity/Person_entity/entityfields/organisations/children/withprivate_param/valueProcess.js
rename to entity/Contact_entity/entityfields/languagekey_param/valueProcess.js
index 40effa0178464da0c7850912345f19c7fa95975a..b36e49dbbe3eefe8d4d3a1f0853ac92c9424b142 100644
--- a/entity/Person_entity/entityfields/organisations/children/withprivate_param/valueProcess.js
+++ b/entity/Contact_entity/entityfields/languagekey_param/valueProcess.js
@@ -1,3 +1,2 @@
 import("system.result");
-
-result.string(true);
\ No newline at end of file
+result.string("deu");
\ No newline at end of file
diff --git a/entity/Contact_entity/entityfields/organisation_id/onValueChange.js b/entity/Contact_entity/entityfields/organisation_id/onValueChange.js
index 0347a3d2d5b43d2b6be7a3464f03c5e61330828d..80f1e97c87383bde995515d7383b083726b7e8bf 100644
--- a/entity/Contact_entity/entityfields/organisation_id/onValueChange.js
+++ b/entity/Contact_entity/entityfields/organisation_id/onValueChange.js
@@ -1,4 +1,10 @@
 import("system.vars");
+import("system.neon");
 
 //since the standard address can be only values of org the standard address has to be reset on org change
-vars.set("$field.ADDRESS_ID", "");
\ No newline at end of file
+vars.set("$field.ADDRESS_ID", "");
+
+if(vars.exists("$local.value") && !vars.get("$local.value"))
+{
+    neon.setFieldValue("$field.ORGANISATION_ID", "0");
+}
diff --git a/entity/Contact_entity/entityfields/organisation_id/valueProcess.js b/entity/Contact_entity/entityfields/organisation_id/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..008844fbe522bd43628d4ef5741d38d8c456a6ae
--- /dev/null
+++ b/entity/Contact_entity/entityfields/organisation_id/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.vars");
+import("system.neon");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.getString("$field.ORGANISATION_ID") == "")
+{
+    result.string("0");
+}
\ No newline at end of file
diff --git a/entity/Contact_entity/entityfields/user_edit/valueProcess.js b/entity/Contact_entity/entityfields/user_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..90383c071316dc55fe51d43a93dd7db75551842e
--- /dev/null
+++ b/entity/Contact_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/Contact_entity/entityfields/user_new/valueProcess.js b/entity/Contact_entity/entityfields/user_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..dda83cfd00e13df5c6da64151f5d1e6d932a681e
--- /dev/null
+++ b/entity/Contact_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/Contract_entity/Contract_entity.aod b/entity/Contract_entity/Contract_entity.aod
index f50f874903380b9bae968e1122c47acd05a391b8..0e8b88c74865d3fe48c3612e865a07143dc34da9 100644
--- a/entity/Contract_entity/Contract_entity.aod
+++ b/entity/Contract_entity/Contract_entity.aod
@@ -300,6 +300,28 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityConsumer>
+      <name>AttributeTree</name>
+      <title>Attribute Tree</title>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelationTree_entity</entityName>
+        <fieldName>TreeProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/Contract_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js b/entity/Contract_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..1dc63e18dbeacd2fbb1e7d09775000f40e26d483
--- /dev/null
+++ b/entity/Contract_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.CONTRACTID"));
diff --git a/entity/Contract_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js b/entity/Contract_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..431bcc952145cb451362fc69754f84ff1514bac5
--- /dev/null
+++ b/entity/Contract_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Context_lib");
+
+result.string(ContextUtils.getCurrentContextId());
diff --git a/entity/Object_entity/recordcontainers/jdito/contentProcess.js b/entity/Object_entity/recordcontainers/jdito/contentProcess.js
index 49ee3565f7153850a52fd919d0ab1e01a1880693..4c8e5d685bc170924f901660acd523c9c34450c4 100644
--- a/entity/Object_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Object_entity/recordcontainers/jdito/contentProcess.js
@@ -7,11 +7,11 @@ if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param"
 {
     if (vars.exists("$param.ObjectRowId_param") && vars.get("$param.ObjectRowId_param"))
     {
-        result.object(db.table(vars.get("$param.ObjectRowId_param"), ContextUtils.getContextDataSql(vars.get("$param.ObjectType_param"), vars.get("$param.ObjectRowId_param"), false)));
+        result.object(db.table(vars.get("$param.ObjectRowId_param"), ContextUtils.getContextDataSql(vars.get("$param.ObjectType_param"), vars.get("$param.ObjectRowId_param"), false, undefined, false)));
     }
     else
     {
-        result.object(db.table(ContextUtils.getContextDataSql(vars.get("$param.ObjectType_param"), undefined, false)))
+        result.object(db.table(ContextUtils.getContextDataSql(vars.get("$param.ObjectType_param"), undefined, false, undefined, false)))
     }
 } 
 else
diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod
index ff52a60e35baa21a25c026c374bfe31f801059e4..a5e72ce894f33532240704d022c247393ad5a7d7 100644
--- a/entity/Offer_entity/Offer_entity.aod
+++ b/entity/Offer_entity/Offer_entity.aod
@@ -15,6 +15,7 @@
       <name>CURRENCY</name>
       <title>Currency</title>
       <consumer>KeywordCurrencies</consumer>
+      <mandatory v="true" />
       <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/currency/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/currency/displayValueProcess.js</displayValueProcess>
     </entityField>
@@ -77,6 +78,7 @@
       <name>STATUS</name>
       <title>Status</title>
       <consumer>KeywordOfferStates</consumer>
+      <mandatory v="true" />
       <state>EDITABLE</state>
       <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/status/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/status/displayValueProcess.js</displayValueProcess>
@@ -635,6 +637,44 @@
       <expose v="true" />
       <description>PARAMETER</description>
     </entityParameter>
+    <entityConsumer>
+      <name>AttributeTree</name>
+      <title>Attribute Tree</title>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelationTree_entity</entityName>
+        <fieldName>TreeProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>USER_NEW</name>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -776,6 +816,22 @@
           <name>INFO.value</name>
           <recordfield>OFFER.INFO</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>OFFER.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>OFFER.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>OFFER.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>OFFER.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/SalesprojectCompetition_entity/entityfields/organisation/children/contactid_param/valueProcess.js b/entity/Offer_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js
similarity index 52%
rename from entity/SalesprojectCompetition_entity/entityfields/organisation/children/contactid_param/valueProcess.js
rename to entity/Offer_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js
index 7e0951d02b7c26bc9ff0a84ad34eb2b47aa0ced8..4adebe4edff067c1964160dfa9f90a08cc5fdfe0 100644
--- a/entity/SalesprojectCompetition_entity/entityfields/organisation/children/contactid_param/valueProcess.js
+++ b/entity/Offer_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js
@@ -1,4 +1,4 @@
-import("system.result");
-import("system.vars");
-
-result.string(vars.get("$field.CONTACT_ID"));
\ No newline at end of file
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.OFFERID"));
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js b/entity/Offer_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..431bcc952145cb451362fc69754f84ff1514bac5
--- /dev/null
+++ b/entity/Offer_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Context_lib");
+
+result.string(ContextUtils.getCurrentContextId());
diff --git a/entity/Offer_entity/entityfields/currency/displayValueProcess.js b/entity/Offer_entity/entityfields/currency/displayValueProcess.js
index c82efe19555b1d56e35a8e103aecffa015136880..c82b4d748061c5e19bf3bb21588121f5178257c2 100644
--- a/entity/Offer_entity/entityfields/currency/displayValueProcess.js
+++ b/entity/Offer_entity/entityfields/currency/displayValueProcess.js
@@ -3,8 +3,4 @@ import("system.vars");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-if (vars.exists("$param.OfferCurrency_param") && vars.get("$param.OfferCurrency_param")) 
-{
-    var currency = KeywordUtils.getViewValue($KeywordRegistry.currency(), vars.get("$param.OfferCurrency_param"));
-    result.string(currency);
-}
\ No newline at end of file
+result.string(KeywordUtils.getViewValue($KeywordRegistry.currency(), vars.get("$field.CURRENCY")));
diff --git a/entity/Offer_entity/entityfields/currency/valueProcess.js b/entity/Offer_entity/entityfields/currency/valueProcess.js
index 636be1adc9a7505eea4d957860d46a81856f5a93..787ece941a73bd5747239c362d3f0bb9fcc0e439 100644
--- a/entity/Offer_entity/entityfields/currency/valueProcess.js
+++ b/entity/Offer_entity/entityfields/currency/valueProcess.js
@@ -1,7 +1,12 @@
-import("system.result");
-import("system.vars");
-
-if (vars.exists("$param.OfferCurrency_param") && vars.get("$param.OfferCurrency_param")) 
-{
-    result.string(vars.get("$param.OfferCurrency_param"));
+import("system.neon");
+import("system.result");
+import("system.vars");
+
+if (vars.exists("$param.OfferCurrency_param") && vars.get("$param.OfferCurrency_param")) 
+{
+    result.string(vars.get("$param.OfferCurrency_param"));
+}
+else if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value"))
+{
+    result.string("EUR");
 }
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/date_edit/valueProcess.js b/entity/Offer_entity/entityfields/date_edit/valueProcess.js
index 710ac8a06a9911f82ff222c7d9d231846ca93fb2..8d41a64d6993f71d00e0879f5eb4aed0aa0b866d 100644
--- a/entity/Offer_entity/entityfields/date_edit/valueProcess.js
+++ b/entity/Offer_entity/entityfields/date_edit/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
-    result.string(vars.getString("$sys.date"));
\ No newline at end of file
+    result.string(vars.get("$sys.date"));
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/date_new/valueProcess.js b/entity/Offer_entity/entityfields/date_new/valueProcess.js
index 3a0d59096cd2de39b6098f1ed95af580dcebfce0..8ee28e84edb9930de54975f81e8cb5a13c9aa02f 100644
--- a/entity/Offer_entity/entityfields/date_new/valueProcess.js
+++ b/entity/Offer_entity/entityfields/date_new/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    result.string(vars.getString("$sys.date"));
\ No newline at end of file
+    result.string(vars.get("$sys.date"));
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/language/valueProcess.js b/entity/Offer_entity/entityfields/language/valueProcess.js
index 4fc924e18219f6a6b30f4b3ebb8ffb22d8ed3cb0..826184267b67f23cecfd90a51ce0ee526800072a 100644
--- a/entity/Offer_entity/entityfields/language/valueProcess.js
+++ b/entity/Offer_entity/entityfields/language/valueProcess.js
@@ -1,7 +1,12 @@
-import("system.result");
-import("system.vars");
-
-if (vars.exists("$param.OfferLanguage_param") && vars.get("$param.OfferLanguage_param")) 
-{
-    result.string(vars.get("$param.OfferLanguage_param"));
+import("system.neon");
+import("system.result");
+import("system.vars");
+
+if (vars.exists("$param.OfferLanguage_param") && vars.get("$param.OfferLanguage_param")) 
+{
+    result.string(vars.get("$param.OfferLanguage_param"));
+}
+else if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value"))
+{
+    result.string("deu");
 }
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/status/valueProcess.js b/entity/Offer_entity/entityfields/status/valueProcess.js
index ea5cc54c968466314db57e5c44b01453da4ff861..7d4ed678a49b3ccfbd5d34fdb892fd6f0c8520a1 100644
--- a/entity/Offer_entity/entityfields/status/valueProcess.js
+++ b/entity/Offer_entity/entityfields/status/valueProcess.js
@@ -3,4 +3,4 @@ import("system.vars");
 import("system.result");
 
 if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value"))
-    result.string("25b0ac77-ef92-4809-802e-bb9d8782f865"); //Open
\ No newline at end of file
+    result.string("70d27a1b-7233-481d-826f-01a13a4bb0b2"); //Open
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/user_edit/valueProcess.js b/entity/Offer_entity/entityfields/user_edit/valueProcess.js
index 1581e18d9763043ae602b98658f87cb0a3b0c967..90383c071316dc55fe51d43a93dd7db75551842e 100644
--- a/entity/Offer_entity/entityfields/user_edit/valueProcess.js
+++ b/entity/Offer_entity/entityfields/user_edit/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
-    result.string(vars.getString("$sys.user"));
\ No newline at end of file
+    result.string(vars.get("$sys.user"));
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/user_new/valueProcess.js b/entity/Offer_entity/entityfields/user_new/valueProcess.js
index 7c566863b493d778b72dea7d8822f6a59333e77d..dda83cfd00e13df5c6da64151f5d1e6d932a681e 100644
--- a/entity/Offer_entity/entityfields/user_new/valueProcess.js
+++ b/entity/Offer_entity/entityfields/user_new/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    result.string(vars.getString("$sys.user"));
\ No newline at end of file
+    result.string(vars.get("$sys.user"));
\ No newline at end of file
diff --git a/entity/Offeritem_entity/afterOperatingState.js b/entity/Offeritem_entity/afterOperatingState.js
index 8a21849b42137377333709a16ea2eed6f50c9780..7366887b469255e7b30f07d7e8cd87781ab5b51d 100644
--- a/entity/Offeritem_entity/afterOperatingState.js
+++ b/entity/Offeritem_entity/afterOperatingState.js
@@ -9,4 +9,9 @@ if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
     
     vars.set("$field.ITEMSORT", oiUtils.getNextItemSort());
     vars.set("$field.ITEMPOSITION", oiUtils.getNextItemPosition(vars.get("$field.ASSIGNEDTO")));
+}
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_VIEW) 
+{
+    neon.refresh();
 }
\ No newline at end of file
diff --git a/entity/Offeritem_entity/recordcontainers/db/onDBUpdate.js b/entity/Offeritem_entity/recordcontainers/db/onDBUpdate.js
index 8c333d3d4bb50852a39cb07e25afd19126008406..01bec1734b9df50f7bf027cb4fcad0251e19e8cb 100644
--- a/entity/Offeritem_entity/recordcontainers/db/onDBUpdate.js
+++ b/entity/Offeritem_entity/recordcontainers/db/onDBUpdate.js
@@ -11,6 +11,4 @@ if(oid != "")
     var oiUtils = new OfferItemUtils(oid);
     
     db.updateData("OFFER", cols, null, oiUtils.getNetAndVat(), SqlCondition.equals("OFFER.OFFERID", oid, "1 = 2"));
-
-    neon.refresh();
 }
\ No newline at end of file
diff --git a/entity/Orderitem_entity/afterOperatingState.js b/entity/Orderitem_entity/afterOperatingState.js
index 772a17c62fb5e3c8f3156536b0d16c1e6783b01b..2fae7948cdde0ce1358c7791d3d77ce767058aca 100644
--- a/entity/Orderitem_entity/afterOperatingState.js
+++ b/entity/Orderitem_entity/afterOperatingState.js
@@ -11,4 +11,9 @@ if(opState == neon.OPERATINGSTATE_NEW)
     
     vars.set("$field.ITEMSORT", oiUtils.getNextItemSort());
     vars.set("$field.ITEMPOSITION", oiUtils.getNextItemPosition(vars.get("$field.ASSIGNEDTO")));
+}
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_VIEW) 
+{
+    neon.refresh();
 }
\ No newline at end of file
diff --git a/entity/Orderitem_entity/recordcontainers/db/onDBUpdate.js b/entity/Orderitem_entity/recordcontainers/db/onDBUpdate.js
index cd1ddcfae6c72996f2d193a85255f15b11fecc0f..355f0cc560abeb3929160f3c10733bd2b3540dd6 100644
--- a/entity/Orderitem_entity/recordcontainers/db/onDBUpdate.js
+++ b/entity/Orderitem_entity/recordcontainers/db/onDBUpdate.js
@@ -12,6 +12,4 @@ if(oid != "")
     var vals = oiUtils.getNetAndVat();
     
     db.updateData("SALESORDER", cols, null, vals, SqlCondition.equals("SALESORDER.SALESORDERID", oid, "1 = 2"));
-    
-    neon.refresh();
 }
\ No newline at end of file
diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod
index 64f7d41a88060b949915c7b4b3414ff21ab22103..b343b850c0617ffb3bce4ca4dffe3a7c64db2ee3 100644
--- a/entity/Organisation_entity/Organisation_entity.aod
+++ b/entity/Organisation_entity/Organisation_entity.aod
@@ -128,12 +128,6 @@
           <fieldName>Organisations</fieldName>
           <isConsumer v="false" />
         </entityDependency>
-        <entityDependency>
-          <name>120c8bfb-1b03-408d-97e7-88e3b7249c53</name>
-          <entityName>SalesprojectCompetition_entity</entityName>
-          <fieldName>Organisation</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
         <entityDependency>
           <name>19a28531-bec6-49e2-b00d-aae3816e6690</name>
           <entityName>Person_entity</entityName>
@@ -154,6 +148,18 @@
           <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>
       </children>
     </entityProvider>
     <entityConsumer>
@@ -247,18 +253,6 @@
     <entityProvider>
       <name>#PROVIDER</name>
       <dependencies>
-        <entityDependency>
-          <name>f78c0ca6-7939-4a0e-903e-0fbbbf512e76</name>
-          <entityName>Product_entity</entityName>
-          <fieldName>Organisations</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>1fa399a8-8c0c-470f-94a8-6c748293d93d</name>
-          <entityName>SalesprojectCompetition_entity</entityName>
-          <fieldName>Organisations</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
         <entityDependency>
           <name>c84fdb27-45a1-4dec-b013-af43751f6a7b</name>
           <entityName>Salesproject_entity</entityName>
@@ -404,6 +398,7 @@
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
+          <title></title>
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
           <triggerRecalculation v="true" />
         </entityParameter>
@@ -667,6 +662,112 @@
         </entityParameter>
       </children>
     </entityProvider>
+    <entityParameter>
+      <name>AttributeId_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>AttributeKeyId_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityProvider>
+      <name>WithAttribute</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <dependencies>
+        <entityDependency>
+          <name>10480df2-f0b6-4cb6-8bfb-4a468b994996</name>
+          <entityName>SalesprojectCompetition_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>
+          <expose v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>AttributeKeyId_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ExcludeOrganisationsByPersonId</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>WithPrivate_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ExcludedContactIds_param</name>
+          <expose v="true" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityParameter>
+      <name>ExcludedContactIds_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityConsumer>
+      <name>AttributeTree</name>
+      <title>Attribute Tree</title>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelationTree_entity</entityName>
+        <fieldName>TreeProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>DATE_NEW</name>
+      <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_NEW</name>
+      <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_NEW_CONTACT</name>
+      <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/user_new_contact/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW_CONTACT</name>
+      <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/date_new_contact/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -755,6 +856,30 @@
           <name>LANGUAGE.displayValue</name>
           <expression>%aditoprj%/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/language.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>ORGANISATION.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>ORGANISATION.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>ORGANISATION.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>ORGANISATION.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW_CONTACT.value</name>
+          <recordfield>CONTACT.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW_CONTACT.value</name>
+          <recordfield>CONTACT.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Organisation_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js b/entity/Organisation_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..957f645b377f903d61ab5ecab7a1a48ee34d0eab
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.ORGANISATIONID"));
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js b/entity/Organisation_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..431bcc952145cb451362fc69754f84ff1514bac5
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Context_lib");
+
+result.string(ContextUtils.getCurrentContextId());
diff --git a/entity/Organisation_entity/entityfields/date_edit/valueProcess.js b/entity/Organisation_entity/entityfields/date_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..5e6ef059738e0c724a468685333a5e257ac228ce
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/date_edit/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+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/Organisation_entity/entityfields/date_new/valueProcess.js b/entity/Organisation_entity/entityfields/date_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a72892783bf2bd04fe353c47f1be0cb570bbb323
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/date_new/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+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/Organisation_entity/entityfields/date_new_contact/valueProcess.js b/entity/Organisation_entity/entityfields/date_new_contact/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a273b1ea4c3da4d2f55bf412c7b891d3161e0f11
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/date_new_contact/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/Organisation_entity/entityfields/user_edit/valueProcess.js b/entity/Organisation_entity/entityfields/user_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6af880ae3e0e2b89b4eee8327ed49f1eefe458af
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/user_edit/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+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/Organisation_entity/entityfields/user_new/valueProcess.js b/entity/Organisation_entity/entityfields/user_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e518bc75a9494e53a83613dedd943106e74fc00a
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/user_new/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+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/Organisation_entity/entityfields/user_new_contact/valueProcess.js b/entity/Organisation_entity/entityfields/user_new_contact/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b619fead9d96f7bdbe4489e5e7e0e35256df5b01
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/user_new_contact/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/Organisation_entity/recordcontainers/db/conditionProcess.js b/entity/Organisation_entity/recordcontainers/db/conditionProcess.js
index d8f6c2d5a839058a05dd2dc58d9c128a39398c12..a42eafd4400a52b510acf02a51d1f9139c44c87b 100644
--- a/entity/Organisation_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/Organisation_entity/recordcontainers/db/conditionProcess.js
@@ -2,6 +2,7 @@ import("system.vars");
 import("system.db");
 import("system.result");
 import("Sql_lib");
+import("Context_lib");
 
 var cond = SqlCondition.begin()
                        .andPrepareVars("ORGANISATION.ORGANISATIONID", "$param.ContactId_param");
@@ -16,5 +17,28 @@ if (excludeOrgsWithPersonId)
                                        .andPrepare("CONTACT.PERSON_ID", excludeOrgsWithPersonId)
                                        .buildSql("ORGANISATION.ORGANISATIONID not in (select CONTACT.ORGANISATION_ID from CONTACT", null, ")"));
 
+if (vars.exists("$param.AttributeId_param") && vars.get("$param.AttributeId_param"))
+{
+    var hasAttributeCondition = SqlCondition.begin()
+                                            .andPrepare("AB_ATTRIBUTERELATION.OBJECT_TYPE", ContextUtils.getCurrentContextId())
+                                            .andPrepare("AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID", vars.get("$param.AttributeId_param"))
+                                            .andPrepareVars("AB_ATTRIBUTERELATION.ID_VALUE", "$param.AttributeKeyId_param");
+                                            
+    cond.andAttachPrepared(hasAttributeCondition.buildSql("ORGANISATION.ORGANISATIONID in (select OBJECT_ROWID from AB_ATTRIBUTERELATION", "1=2", ")"));
+}
+
+if (vars.exists("$param.ExcludedContactIds_param") && vars.get("$param.ExcludedContactIds_param"))
+{
+    var excludedContacts = JSON.parse(vars.get("$param.ExcludedContactIds_param"));
+    var excludedCond = SqlCondition.begin();
+    
+    excludedContacts.forEach(function(pContactId)
+    {
+        excludedCond.andPrepare("CONTACT.CONTACTID", pContactId, "#<>?");
+    });
+    
+    cond.andSqlCondition(excludedCond, "1=1");
+}
+
 //TODO: use a preparedCondition when available #1030812 #1034026
 result.string(db.translateCondition(cond.build("1 = 1")));
\ No newline at end of file
diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod
index e550ec716d261d4d512ed21c443013523e6b5835..1cee641431e50ba327586218f5fcf9b9ecb28d89 100644
--- a/entity/Person_entity/Person_entity.aod
+++ b/entity/Person_entity/Person_entity.aod
@@ -208,7 +208,6 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
       <children>
         <entityParameter>
           <name>WithPrivate_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/organisations/children/withprivate_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
@@ -296,6 +295,7 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
       <consumer>Languages</consumer>
       <mandatory v="true" />
       <valueProcess>%aditoprj%/entity/Person_entity/entityfields/language/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/language/displayValueProcess.js</displayValueProcess>
       <onValueChange>%aditoprj%/entity/Person_entity/entityfields/language/onValueChange.js</onValueChange>
       <onValueChangeTypes>
         <element>MASK</element>
@@ -725,6 +725,10 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
           <name>OwnContactId_param</name>
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/othercontacts/children/owncontactid_param/valueProcess.js</valueProcess>
         </entityParameter>
+        <entityParameter>
+          <name>LanguageKey_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/othercontacts/children/languagekey_param/valueProcess.js</valueProcess>
+        </entityParameter>
       </children>
     </entityConsumer>
     <entityField>
@@ -777,6 +781,52 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityConsumer>
+      <name>AttributeTree</name>
+      <title>Attribute Tree</title>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelationTree_entity</entityName>
+        <fieldName>TreeProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>DATE_NEW</name>
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_NEW</name>
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW_CONTACT</name>
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/date_new_contact/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_NEW_CONTACT</name>
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/user_new_contact/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -919,6 +969,30 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
           <name>ORGANISATION_NAME.value</name>
           <recordfield>ORGANISATION.NAME</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>PERSON.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>PERSON.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>PERSON.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>PERSON.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW_CONTACT.value</name>
+          <recordfield>CONTACT.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW_CONTACT.value</name>
+          <recordfield>CONTACT.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Person_entity/entityfields/address_id/valueProcess.js b/entity/Person_entity/entityfields/address_id/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..72dfe18cc06b3c7b652af1305f4498c40fc101ae
--- /dev/null
+++ b/entity/Person_entity/entityfields/address_id/valueProcess.js
@@ -0,0 +1,13 @@
+import("system.logging");
+import("system.result");
+import("system.vars");
+import("StandardObject_lib");
+//  Check if the standard address is already set.
+if (vars.get("$field.ADDRESS_ID") === null || vars.get("$field.ADDRESS_ID") === "" || vars.get("$field.ADDRESS_ID") == 0) {
+    var possibleStandardAddressID = new StandardObject("Address", null, "Person", vars.get("$field.PERSONID"))
+        .onPersonValueChange(vars.get("$field.ORGANISATION_ID"));
+
+    // If a possible standard addrss was found it should get applied to the field.
+    if (possibleStandardAddressID !== null)
+        result.string(possibleStandardAddressID);
+}
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js b/entity/Person_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..07081dc34f62162ad93f6b7b28f0caeb67dc283e
--- /dev/null
+++ b/entity/Person_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.PERSONID"));
diff --git a/entity/Person_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js b/entity/Person_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..431bcc952145cb451362fc69754f84ff1514bac5
--- /dev/null
+++ b/entity/Person_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Context_lib");
+
+result.string(ContextUtils.getCurrentContextId());
diff --git a/entity/Person_entity/entityfields/date_edit/valueProcess.js b/entity/Person_entity/entityfields/date_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..5e6ef059738e0c724a468685333a5e257ac228ce
--- /dev/null
+++ b/entity/Person_entity/entityfields/date_edit/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+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/Person_entity/entityfields/date_new/valueProcess.js b/entity/Person_entity/entityfields/date_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a72892783bf2bd04fe353c47f1be0cb570bbb323
--- /dev/null
+++ b/entity/Person_entity/entityfields/date_new/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+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/Person_entity/entityfields/date_new_contact/valueProcess.js b/entity/Person_entity/entityfields/date_new_contact/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..8ee28e84edb9930de54975f81e8cb5a13c9aa02f
--- /dev/null
+++ b/entity/Person_entity/entityfields/date_new_contact/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/Person_entity/entityfields/language/displayValueProcess.js b/entity/Person_entity/entityfields/language/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..dae44e029af40ecdf3c360a4e80a24d6a5f74540
--- /dev/null
+++ b/entity/Person_entity/entityfields/language/displayValueProcess.js
@@ -0,0 +1,10 @@
+import("system.result");
+import("system.vars");
+import("Keyword_lib");
+
+var key = vars.get("$field.LANGUAGE");
+if (key)
+{
+    var res = LanguageKeywordUtils.getViewValue(key);
+    result.string(res);
+}
diff --git a/entity/Person_entity/entityfields/language/valueProcess.js b/entity/Person_entity/entityfields/language/valueProcess.js
index 6793351846181a86f6fbd2b1d5afd1a35e3eea79..1af70be4c971c334dbd2b777f26c3f051bd02aa4 100644
--- a/entity/Person_entity/entityfields/language/valueProcess.js
+++ b/entity/Person_entity/entityfields/language/valueProcess.js
@@ -3,5 +3,5 @@ import("system.vars");
 import("system.db");
 import("system.result");
 
-if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$field.LANGUAGE") == "")
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.getString("$field.LANGUAGE") == "")
     result.string("deu");
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/othercontacts/children/languagekey_param/valueProcess.js b/entity/Person_entity/entityfields/othercontacts/children/languagekey_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e517058dc2daaa603f548ad0e09ec1c9434bb6e5
--- /dev/null
+++ b/entity/Person_entity/entityfields/othercontacts/children/languagekey_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+
+var res = vars.get("$field.LANGUAGE");
+result.string(res);
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/user_edit/valueProcess.js b/entity/Person_entity/entityfields/user_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6af880ae3e0e2b89b4eee8327ed49f1eefe458af
--- /dev/null
+++ b/entity/Person_entity/entityfields/user_edit/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+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/Person_entity/entityfields/user_new/valueProcess.js b/entity/Person_entity/entityfields/user_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e518bc75a9494e53a83613dedd943106e74fc00a
--- /dev/null
+++ b/entity/Person_entity/entityfields/user_new/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+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/Person_entity/entityfields/user_new_contact/valueProcess.js b/entity/Person_entity/entityfields/user_new_contact/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e518bc75a9494e53a83613dedd943106e74fc00a
--- /dev/null
+++ b/entity/Person_entity/entityfields/user_new_contact/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+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/Person_entity/recordcontainers/db/conditionProcess.js b/entity/Person_entity/recordcontainers/db/conditionProcess.js
index 47f1ee35510663ddbb914ef4dd4f25988d323560..d31e4c68e741d38374e087d121f55def93d54d3c 100644
--- a/entity/Person_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/Person_entity/recordcontainers/db/conditionProcess.js
@@ -20,11 +20,5 @@ if (vars.exists("$param.ExcludedContactIds_param") && vars.get("$param.ExcludedC
     cond.andSqlCondition(excludedCond, "1=1");
 }
 
-/*
-//in salesprojectMember, only people that aren't already in the salesproject should be selectable
-cond.andPrepareVars("PERSON.PERSONID", "$param.SalesprojectId_param", 
-    "# not in (select CONTACT.PERSON_ID from SALESPROJECT_MEMBER join CONTACT on SALESPROJECT_MEMBER.CONTACT_ID = CONTACT.CONTACTID "
-        + " where SALESPROJECT_MEMBER.SALESPROJECT_ID = ?)");
-*/
 //TODO: use a preparedCondition when available #1030812 #1034026
 result.string(db.translateCondition(cond.build("1 = 1")));
diff --git a/entity/Person_entity/recordcontainers/db/onDBUpdate.js b/entity/Person_entity/recordcontainers/db/onDBUpdate.js
index c1aaada5945950cf44c87edc3e7688fba2a518ad..4e3598b753a7b4f0a1de96f342e9e9ecf9e992bf 100644
--- a/entity/Person_entity/recordcontainers/db/onDBUpdate.js
+++ b/entity/Person_entity/recordcontainers/db/onDBUpdate.js
@@ -2,6 +2,7 @@ import("system.vars");
 import("Person_lib");
 import("Communication_lib");
 import("Entity_lib");
+import("StandardObject_lib");
 
 // TODO: this is a workaround for missing possibility to react on changes of fields not connected to record Contqainer #1030023
 FieldChanges.assimilateChangeAndDispose("$field.IMAGE", function(state, value){
@@ -20,3 +21,6 @@ FieldChanges.assimilateChangeAndDispose("$field.STANDARD_EMAIL_COMMUNICATION", f
 FieldChanges.assimilateChangeAndDispose("$field.STANDARD_PHONE_COMMUNICATION", function(state, value){
     CommUtil.setStandardPhone(uid, value);
 });
+
+new StandardObject("Address", vars.get("$field.ADDRESS_ID"), "Person", vars.get("$field.CONTACTID"))
+    .onPersonUpdate(vars.get("$field.ORGANISATION_ID"));
\ No newline at end of file
diff --git a/entity/Product_entity/Product_entity.aod b/entity/Product_entity/Product_entity.aod
index 5501274d1007cf1bd90afb2048a712f93ed4734e..8939a512257afa8a570a48a2d9932ef3833a47ec 100644
--- a/entity/Product_entity/Product_entity.aod
+++ b/entity/Product_entity/Product_entity.aod
@@ -83,8 +83,18 @@
       <dependency>
         <name>dependency</name>
         <entityName>Organisation_entity</entityName>
-        <fieldName>#PROVIDER</fieldName>
+        <fieldName>WithAttribute</fieldName>
       </dependency>
+      <children>
+        <entityParameter>
+          <name>AttributeId_param</name>
+          <valueProcess>%aditoprj%/entity/Product_entity/entityfields/organisations/children/attributeid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>AttributeKeyId_param</name>
+          <valueProcess>%aditoprj%/entity/Product_entity/entityfields/organisations/children/attributekeyid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityConsumer>
       <name>Productprices</name>
@@ -394,6 +404,44 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityConsumer>
+      <name>AttributeTree</name>
+      <title>Attribute Tree</title>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelationTree_entity</entityName>
+        <fieldName>TreeProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Product_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Product_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>USER_NEW</name>
+      <valueProcess>%aditoprj%/entity/Product_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Product_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <valueProcess>%aditoprj%/entity/Product_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Product_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -474,6 +522,22 @@
           <name>LANGUAGE.displayValue</name>
           <expression>%aditoprj%/entity/Product_entity/recordcontainers/db/recordfieldmappings/language.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>PRODUCT.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>PRODUCT.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>PRODUCT.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>PRODUCT.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Product_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js b/entity/Product_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..60b7269a1beff4e4c23e81cf7254f2ef95633365
--- /dev/null
+++ b/entity/Product_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.result");
+import("Context_lib");
+
+result.string(vars.get("$field.PRODUCTID"));
diff --git a/entity/Product_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js b/entity/Product_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..431bcc952145cb451362fc69754f84ff1514bac5
--- /dev/null
+++ b/entity/Product_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Context_lib");
+
+result.string(ContextUtils.getCurrentContextId());
diff --git a/entity/Product_entity/entityfields/date_edit/valueProcess.js b/entity/Product_entity/entityfields/date_edit/valueProcess.js
index 710ac8a06a9911f82ff222c7d9d231846ca93fb2..8d41a64d6993f71d00e0879f5eb4aed0aa0b866d 100644
--- a/entity/Product_entity/entityfields/date_edit/valueProcess.js
+++ b/entity/Product_entity/entityfields/date_edit/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
-    result.string(vars.getString("$sys.date"));
\ No newline at end of file
+    result.string(vars.get("$sys.date"));
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/date_new/valueProcess.js b/entity/Product_entity/entityfields/date_new/valueProcess.js
index 408c498a4c90f59cd95eafbf74a8ea2683bab068..8ee28e84edb9930de54975f81e8cb5a13c9aa02f 100644
--- a/entity/Product_entity/entityfields/date_new/valueProcess.js
+++ b/entity/Product_entity/entityfields/date_new/valueProcess.js
@@ -1,7 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    result.string(vars.getString("$sys.date"));
-
+    result.string(vars.get("$sys.date"));
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/organisations/children/attributeid_param/valueProcess.js b/entity/Product_entity/entityfields/organisations/children/attributeid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..645b2d936511e365614a516e8292c1f34bb3a51f
--- /dev/null
+++ b/entity/Product_entity/entityfields/organisations/children/attributeid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+
+// Target Group (Zielgruppe)
+result.string("5d1a2b05-f04e-4ad7-9fd0-8efa09a33a53");
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/organisations/children/attributekeyid_param/valueProcess.js b/entity/Product_entity/entityfields/organisations/children/attributekeyid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4a5bc0b05c93591807469e2ec88adda2db5cb056
--- /dev/null
+++ b/entity/Product_entity/entityfields/organisations/children/attributekeyid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+
+// Manufacturer
+result.string("41b0832f-8de2-4ab5-a6e0-9a793c5f80c3");
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/user_edit/valueProcess.js b/entity/Product_entity/entityfields/user_edit/valueProcess.js
index 1581e18d9763043ae602b98658f87cb0a3b0c967..90383c071316dc55fe51d43a93dd7db75551842e 100644
--- a/entity/Product_entity/entityfields/user_edit/valueProcess.js
+++ b/entity/Product_entity/entityfields/user_edit/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
-    result.string(vars.getString("$sys.user"));
\ No newline at end of file
+    result.string(vars.get("$sys.user"));
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/user_new/valueProcess.js b/entity/Product_entity/entityfields/user_new/valueProcess.js
index 7c566863b493d778b72dea7d8822f6a59333e77d..dda83cfd00e13df5c6da64151f5d1e6d932a681e 100644
--- a/entity/Product_entity/entityfields/user_new/valueProcess.js
+++ b/entity/Product_entity/entityfields/user_new/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
 import("system.result");
 import("system.neon");
+import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    result.string(vars.getString("$sys.user"));
\ No newline at end of file
+    result.string(vars.get("$sys.user"));
\ No newline at end of file
diff --git a/entity/Productprice_entity/Productprice_entity.aod b/entity/Productprice_entity/Productprice_entity.aod
index c4538d9a766987b6821dfecf5a329eb3006f1458..dc37cf42d11f1287d3bf2100ec9b93cef76e1ccf 100644
--- a/entity/Productprice_entity/Productprice_entity.aod
+++ b/entity/Productprice_entity/Productprice_entity.aod
@@ -4,6 +4,7 @@
   <title>Prices</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Productprice_entity/documentation.adoc</documentation>
+  <afterOperatingState>%aditoprj%/entity/Productprice_entity/afterOperatingState.js</afterOperatingState>
   <recordContainer>db</recordContainer>
   <entityFields>
     <entityField>
@@ -18,6 +19,7 @@
       <title>Currency</title>
       <consumer>KeywordCurrencies</consumer>
       <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/Productprice_entity/entityfields/currency/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/Productprice_entity/entityfields/currency/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
@@ -48,7 +50,7 @@
       <consumer>Products</consumer>
       <linkedContext>Product</linkedContext>
       <mandatory v="true" />
-      <state>AUTO</state>
+      <state>READONLY</state>
       <valueProcess>%aditoprj%/entity/Productprice_entity/entityfields/product_id/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/Productprice_entity/entityfields/product_id/displayValueProcess.js</displayValueProcess>
     </entityField>
@@ -93,6 +95,7 @@
       <state>AUTO</state>
       <stateProcess>%aditoprj%/entity/Productprice_entity/entityfields/pricelist/stateProcess.js</stateProcess>
       <titleProcess>%aditoprj%/entity/Productprice_entity/entityfields/pricelist/titleProcess.js</titleProcess>
+      <valueProcess>%aditoprj%/entity/Productprice_entity/entityfields/pricelist/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/Productprice_entity/entityfields/pricelist/displayValueProcess.js</displayValueProcess>
       <onValidation>%aditoprj%/entity/Productprice_entity/entityfields/pricelist/onValidation.js</onValidation>
     </entityField>
diff --git a/entity/Productprice_entity/afterOperatingState.js b/entity/Productprice_entity/afterOperatingState.js
new file mode 100644
index 0000000000000000000000000000000000000000..5541dfea336535d08d4b6e9f3cd236dd3634fb12
--- /dev/null
+++ b/entity/Productprice_entity/afterOperatingState.js
@@ -0,0 +1,7 @@
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_VIEW) 
+{
+    neon.refresh();
+}
diff --git a/entity/Productprice_entity/entityfields/currency/valueProcess.js b/entity/Productprice_entity/entityfields/currency/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..081cebb3e478a2c2c0b001db3ac3baab9dba0caa
--- /dev/null
+++ b/entity/Productprice_entity/entityfields/currency/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    result.string("EUR");
+}
\ No newline at end of file
diff --git a/entity/Productprice_entity/entityfields/pricelist/valueProcess.js b/entity/Productprice_entity/entityfields/pricelist/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..f9c9524cedcd93dab192369848c72be7cfdd2329
--- /dev/null
+++ b/entity/Productprice_entity/entityfields/pricelist/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    result.string("02553fc7-4611-4914-8ff5-0b7c4e7531c9");
+}
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod b/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod
index 0df2e74d7c286b06191944b2c34905f90ccf6324..e4a89fde11c028735cb8884d3c41117530d61bce 100644
--- a/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod
+++ b/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod
@@ -91,8 +91,6 @@
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
-        <entityName>Organisation_entity</entityName>
-        <fieldName>Organisations</fieldName>
       </dependency>
       <children>
         <entityParameter>
@@ -109,8 +107,22 @@
       <dependency>
         <name>dependency</name>
         <entityName>Organisation_entity</entityName>
-        <fieldName>#PROVIDER</fieldName>
+        <fieldName>WithAttribute</fieldName>
       </dependency>
+      <children>
+        <entityParameter>
+          <name>AttributeId_param</name>
+          <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/organisations/children/attributeid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>AttributeKeyId_param</name>
+          <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/organisations/children/attributekeyid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ExcludedContactIds_param</name>
+          <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/organisations/children/excludedcontactids_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityConsumer>
       <name>KeywordWonLost</name>
diff --git a/entity/SalesprojectCompetition_entity/entityfields/organisations/children/attributeid_param/valueProcess.js b/entity/SalesprojectCompetition_entity/entityfields/organisations/children/attributeid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..645b2d936511e365614a516e8292c1f34bb3a51f
--- /dev/null
+++ b/entity/SalesprojectCompetition_entity/entityfields/organisations/children/attributeid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+
+// Target Group (Zielgruppe)
+result.string("5d1a2b05-f04e-4ad7-9fd0-8efa09a33a53");
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/entityfields/organisations/children/attributekeyid_param/valueProcess.js b/entity/SalesprojectCompetition_entity/entityfields/organisations/children/attributekeyid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ca41e6e2608d46ef8e47125ee72c25b51d271bd8
--- /dev/null
+++ b/entity/SalesprojectCompetition_entity/entityfields/organisations/children/attributekeyid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+
+// Competitor
+result.string("fc09afd5-5f74-4e48-af26-3600bb4c9610");
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/entityfields/organisations/children/excludedcontactids_param/valueProcess.js b/entity/SalesprojectCompetition_entity/entityfields/organisations/children/excludedcontactids_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..09c14009f31a5ba857d921e0e9e2aec4c14bc91c
--- /dev/null
+++ b/entity/SalesprojectCompetition_entity/entityfields/organisations/children/excludedcontactids_param/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.vars");
+import("system.db");
+import("Sql_lib");
+
+result.object(db.array(db.COLUMN, SqlCondition.begin()
+                                .andPrepare("SALESPROJECT_COMPETITION.SALESPROJECT_ID", vars.get("$field.SALESPROJECT_ID"))
+                                .buildSql("select CONTACT_ID from SALESPROJECT_COMPETITION", "1=2")));
\ No newline at end of file
diff --git a/entity/SalesprojectMember_entity/entityfields/contacts/children/excludedcontactids_param/valueProcess.js b/entity/SalesprojectMember_entity/entityfields/contacts/children/excludedcontactids_param/valueProcess.js
index 35ca5d0cce0f248a842d75e8ee8d987dee71646c..4f34874adf02c713ef4bf91664e10b946644c639 100644
--- a/entity/SalesprojectMember_entity/entityfields/contacts/children/excludedcontactids_param/valueProcess.js
+++ b/entity/SalesprojectMember_entity/entityfields/contacts/children/excludedcontactids_param/valueProcess.js
@@ -1,12 +1,8 @@
-import("system.logging");
 import("system.result");
 import("system.vars");
 import("system.db");
 import("Sql_lib");
 
-logging.log(db.array(db.COLUMN, SqlCondition.begin()
-                                .andPrepare("SALESPROJECT_MEMBER.SALESPROJECT_ID", vars.get("$field.SALESPROJECT_ID"))
-                                .buildSql("select CONTACT_ID from SALESPROJECT_MEMBER", "1=2")).toSource())
 result.object(db.array(db.COLUMN, SqlCondition.begin()
                                 .andPrepare("SALESPROJECT_MEMBER.SALESPROJECT_ID", vars.get("$field.SALESPROJECT_ID"))
                                 .buildSql("select CONTACT_ID from SALESPROJECT_MEMBER", "1=2")));
diff --git a/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod b/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod
index c8c6e96745f05b27536abf5a59aad502b4f76f4c..41439ab453dddf7b489e91d58227077754d3b9e0 100644
--- a/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod
+++ b/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod
@@ -40,6 +40,8 @@
       <contentType>DATE</contentType>
       <resolution>DAY</resolution>
       <outputFormat>dd.MM.yyyy</outputFormat>
+      <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/SalesprojectSource_entity/entityfields/entrydate/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>INFO</name>
@@ -57,6 +59,7 @@
       <name>SOURCE</name>
       <title>Touchpoint</title>
       <consumer>KeywordSources</consumer>
+      <mandatory v="true" />
       <displayValueProcess>%aditoprj%/entity/SalesprojectSource_entity/entityfields/source/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityConsumer>
diff --git a/entity/SalesprojectSource_entity/entityfields/entrydate/valueProcess.js b/entity/SalesprojectSource_entity/entityfields/entrydate/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..994a752c908897b8d3c9fb51090d16c28a555867
--- /dev/null
+++ b/entity/SalesprojectSource_entity/entityfields/entrydate/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+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/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod
index 17fe6bc790f4cf96f24b1123de3666778a4a361b..b5e35dc2edeed34712c9377bd9a32929d50d3321 100644
--- a/entity/Salesproject_entity/Salesproject_entity.aod
+++ b/entity/Salesproject_entity/Salesproject_entity.aod
@@ -3,6 +3,7 @@
   <name>Salesproject_entity</name>
   <title>Salesproject</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <afterOperatingState>%aditoprj%/entity/Salesproject_entity/afterOperatingState.js</afterOperatingState>
   <iconId>VAADIN:BOOK_DOLLAR</iconId>
   <titleProcess>%aditoprj%/entity/Salesproject_entity/titleProcess.js</titleProcess>
   <recordContainer>db</recordContainer>
@@ -453,13 +454,15 @@
     <entityField>
       <name>REASONS</name>
       <title>Reason</title>
-      <consumer>KeywordWonLost</consumer>
       <mandatoryProcess>%aditoprj%/entity/Salesproject_entity/entityfields/reasons/mandatoryProcess.js</mandatoryProcess>
+      <possibleItemsProcess>%aditoprj%/entity/Salesproject_entity/entityfields/reasons/possibleItemsProcess.js</possibleItemsProcess>
       <searchable v="true" />
       <selectionMode>MULTI</selectionMode>
       <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/reasons/stateProcess.js</stateProcess>
-      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/reasons/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/reasons/displayValueProcess.js</displayValueProcess>
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+      </onValueChangeTypes>
     </entityField>
     <entityProvider>
       <name>Salesprojects</name>
@@ -597,10 +600,6 @@
           <name>PHASE.displayValue</name>
           <expression>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/phase.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>REASONS.displayValue</name>
-          <expression>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/reasons.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>REASONS.value</name>
           <recordfield>SALESPROJECT.REASONS</recordfield>
diff --git a/entity/Salesproject_entity/afterOperatingState.js b/entity/Salesproject_entity/afterOperatingState.js
new file mode 100644
index 0000000000000000000000000000000000000000..fb90fb67eb08a580d37ed8302a987d8e56df034c
--- /dev/null
+++ b/entity/Salesproject_entity/afterOperatingState.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("system.neon");
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_VIEW) 
+{
+    neon.refresh();
+}
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/reasons/displayValueProcess.js b/entity/Salesproject_entity/entityfields/reasons/displayValueProcess.js
deleted file mode 100644
index deb08ee45373586274083118dfdd81ee1b5c1c21..0000000000000000000000000000000000000000
--- a/entity/Salesproject_entity/entityfields/reasons/displayValueProcess.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import("system.vars");
-import("system.result");
-import("Keyword_lib");
-import("KeywordRegistry_basic");
-
-result.string(KeywordUtils.getViewValue($KeywordRegistry.salesprojectWonLost(), vars.get("$field.REASONS")));
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/reasons/possibleItemsProcess.js b/entity/Salesproject_entity/entityfields/reasons/possibleItemsProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..82ceaf9374045d62c97d1b960f3d336663b4517c
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/reasons/possibleItemsProcess.js
@@ -0,0 +1,6 @@
+import("system.logging");
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.object(KeywordUtils.getEntryNamesAndIdsByContainer("SalesprojectWonLost"));
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/reasons/stateProcess.js b/entity/Salesproject_entity/entityfields/reasons/stateProcess.js
index 871eb8d93a8a009c0653f8863444cd2e6a3e2eba..5e5536334c4ff87b845fff9f55a37d1e1dc06281 100644
--- a/entity/Salesproject_entity/entityfields/reasons/stateProcess.js
+++ b/entity/Salesproject_entity/entityfields/reasons/stateProcess.js
@@ -5,4 +5,4 @@ import("system.vars");
 if(vars.get("$field.STATE") && (vars.get("$field.STATE") == 'd8a60f60-a4e6-46ee-88ec-bac53e1afedd' || vars.get("$field.STATE") == '130bb53a-a97e-455e-8f34-8d445e985474'))
         result.string("EDITABLE");
 else
-        result.string("READONLY");
+        result.string("INVISIBLE");
diff --git a/entity/Salesproject_entity/entityfields/reasons/valueProcess.js b/entity/Salesproject_entity/entityfields/reasons/valueProcess.js
deleted file mode 100644
index 44b96c75cbac0c3ec6e9e23759e716de0ffab3ae..0000000000000000000000000000000000000000
--- a/entity/Salesproject_entity/entityfields/reasons/valueProcess.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import("system.neon");
-import("system.result");
-import("system.vars");
-
-if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-{
-    // IDs: SalesprojectState Order and Lost
-    var state = vars.get("$field.STATE");
-    if(state && (state != 'd8a60f60-a4e6-46ee-88ec-bac53e1afedd' && state != '130bb53a-a97e-455e-8f34-8d445e985474'))
-        result.string("");
-}
diff --git a/entity/Salesproject_entity/entityfields/state/valueProcess.js b/entity/Salesproject_entity/entityfields/state/valueProcess.js
index 1ca1654d0c789776cd8bc00c2649c406c0000a60..1bfcc5d651a3031c14925a8d82c1675066107519 100644
--- a/entity/Salesproject_entity/entityfields/state/valueProcess.js
+++ b/entity/Salesproject_entity/entityfields/state/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.neon");
-import("system.vars");
-import("system.result");
-
-if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value"))
-    result.string("25b0ac77-ef92-4809-802e-bb9d8782f865"); //Open
\ No newline at end of file
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value"))
+    result.string("483bcaeb-1e5b-4772-b54e-7d7d8aa65712"); //Open
\ No newline at end of file
diff --git a/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js b/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js
index b27fe6403848928e59c7fb951c689dab3fe55db0..2d558ee7cdb5dd210634cf5484ad18187e706d0b 100644
--- a/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js
+++ b/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js
@@ -68,8 +68,6 @@ vars.get("$local.changed").forEach(function(fieldName) {
 if (needToUpdateForecast)
     Salesproject.notifyToUpdateForecast();
 
-neon.refresh()
-
 function _updateReasons()
 {
     var reasons = vars.getString("field.REASONS");
diff --git a/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/reasons.displayvalue/expression.js b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/reasons.displayvalue/expression.js
deleted file mode 100644
index c62430bd64ea66ed105355c5d58f78cfdf9a785c..0000000000000000000000000000000000000000
--- a/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/reasons.displayvalue/expression.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-import("KeywordRegistry_basic");
-import("Sql_lib");
-
-var value = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectWonLost(), "SALESPROJECT.REASONS");
-result.string(value);
diff --git a/entity/Task_entity/Task_entity.aod b/entity/Task_entity/Task_entity.aod
index 1bd9acec26025cee3d24d1b366748bdf35d74efe..3111fd2565284ec1fba541377e60798d7cc03f20 100644
--- a/entity/Task_entity/Task_entity.aod
+++ b/entity/Task_entity/Task_entity.aod
@@ -93,7 +93,7 @@
     </entityField>
     <entityField>
       <name>PROTECTIONLEVEL</name>
-      <title>private</title>
+      <title>Protected</title>
       <contentType>BOOLEAN</contentType>
       <contentTypeProcess>%aditoprj%/entity/Task_entity/entityfields/protectionlevel/contentTypeProcess.js</contentTypeProcess>
       <possibleItemsProcess>%aditoprj%/entity/Task_entity/entityfields/protectionlevel/possibleItemsProcess.js</possibleItemsProcess>
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index 8d92eabcd3e807ee82347555d8cd9a695bc98963..1fbac161ff223a6b3cda66b4903351ce30cb7862 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -1038,9 +1038,6 @@
     <entry>
       <key>Betreff</key>
     </entry>
-    <entry>
-      <key>private</key>
-    </entry>
     <entry>
       <key>title</key>
     </entry>
@@ -2694,6 +2691,36 @@
     <entry>
       <key>date of birth must not be in the future</key>
     </entry>
+    <entry>
+      <key>Manufacturer</key>
+    </entry>
+    <entry>
+      <key>Prospective customer</key>
+    </entry>
+    <entry>
+      <key>Competitor</key>
+    </entry>
+    <entry>
+      <key>Partner</key>
+    </entry>
+    <entry>
+      <key>Attribute Tree</key>
+    </entry>
+    <entry>
+      <key>True</key>
+    </entry>
+    <entry>
+      <key>False</key>
+    </entry>
+    <entry>
+      <key>protected</key>
+    </entry>
+    <entry>
+      <key>false</key>
+    </entry>
+    <entry>
+      <key>true</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 1b2d85edeefc137e190bca2afc45070c11a7d78e..bf8a6aadbbb44d3a1942df00faad179e1f974e3f 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -60,7 +60,7 @@
     </entry>
     <entry>
       <key>This combination of person and organisation does already exist and can not be created once more.</key>
-      <value>Diese Kombination aus Person und Organisation existiert bereits und kann daher nicht nocht ein mal angelegt werden.</value>
+      <value>Diese Kombination aus Person und Organisation existiert bereits und kann daher nicht noch ein mal angelegt werden.</value>
     </entry>
     <entry>
       <key>Communication data</key>
@@ -372,6 +372,10 @@
       <key>Touchpoints</key>
       <value>Kontaktpunkte</value>
     </entry>
+    <entry>
+      <key>Attribute Tree</key>
+      <value>Eigenschaftsbaum</value>
+    </entry>
     <entry>
       <key>Company Addresses</key>
       <value>Firmenadressen</value>
@@ -1055,6 +1059,10 @@
       <key>responsible</key>
       <value>verantwortlich</value>
     </entry>
+    <entry>
+      <key>False</key>
+      <value>Nein</value>
+    </entry>
     <entry>
       <key>Show all Facebook posts of a user</key>
       <value>Alle Facebook Beiträge eines Benutzers anzeigen</value>
@@ -1514,10 +1522,6 @@
     <entry>
       <key>Betreff</key>
     </entry>
-    <entry>
-      <key>private</key>
-      <value>privat</value>
-    </entry>
     <entry>
       <key>title</key>
       <value>Titel</value>
@@ -2983,14 +2987,14 @@
     </entry>
     <entry>
       <key>Keyword Attribute</key>
-      <value>Schlüsselwort-Attribut</value>
+      <value>Schlüsselwort-Eigenschaft</value>
     </entry>
     <entry>
       <key>in</key>
     </entry>
     <entry>
       <key>Keyword Attribute Values</key>
-      <value>Schlüsselwort-Attribut-Werte</value>
+      <value>Schlüsselwort-Eigenschaft-Werte</value>
     </entry>
     <entry>
       <key>Boolean value</key>
@@ -3083,7 +3087,7 @@
     </entry>
     <entry>
       <key>competitor</key>
-      <value>Konkurrent</value>
+      <value>Mitbewerber</value>
     </entry>
     <entry>
       <key>0%</key>
@@ -3248,6 +3252,10 @@
     <entry>
       <key>Bestätigt</key>
     </entry>
+    <entry>
+      <key>True</key>
+      <value>Ja</value>
+    </entry>
     <entry>
       <key>Vorläufig</key>
     </entry>
@@ -3403,6 +3411,32 @@
     <entry>
       <key>Management</key>
     </entry>
+    <entry>
+      <key>Manufacturer</key>
+      <value>Hersteller</value>
+    </entry>
+    <entry>
+      <key>Prospective customer</key>
+      <value>Potenzieller Kunde</value>
+    </entry>
+    <entry>
+      <key>Competitor</key>
+      <value>Mitbewerber</value>
+    </entry>
+    <entry>
+      <key>Partner</key>
+      <value>Partner</value>
+    </entry>
+    <entry>
+      <key>Protected</key>
+      <value>Geschützt</value>
+    </entry>
+    <entry>
+      <key>false</key>
+    </entry>
+    <entry>
+      <key>true</key>
+    </entry>
     <entry>
       <key>Approved</key>
       <value>Freigegeben</value>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index e005a417e7dca0974e0fc1a89a3bd144ad36df40..2b7902fc6785842a4d900a7e7bde8e6624964f15 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -1056,9 +1056,6 @@
     <entry>
       <key>Betreff</key>
     </entry>
-    <entry>
-      <key>private</key>
-    </entry>
     <entry>
       <key>title</key>
     </entry>
@@ -2719,6 +2716,36 @@
     <entry>
       <key>date of birth must not be in the future</key>
     </entry>
+    <entry>
+      <key>Manufacturer</key>
+    </entry>
+    <entry>
+      <key>Prospective customer</key>
+    </entry>
+    <entry>
+      <key>Competitor</key>
+    </entry>
+    <entry>
+      <key>Partner</key>
+    </entry>
+    <entry>
+      <key>Attribute Tree</key>
+    </entry>
+    <entry>
+      <key>True</key>
+    </entry>
+    <entry>
+      <key>False</key>
+    </entry>
+    <entry>
+      <key>protected</key>
+    </entry>
+    <entry>
+      <key>false</key>
+    </entry>
+    <entry>
+      <key>true</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonContext/AttributeRelationTree/AttributeRelationTree.aod b/neonContext/AttributeRelationTree/AttributeRelationTree.aod
new file mode 100644
index 0000000000000000000000000000000000000000..bcd7bec8f8c74b3791ebdd93a728c950493b2781
--- /dev/null
+++ b/neonContext/AttributeRelationTree/AttributeRelationTree.aod
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0">
+  <name>AttributeRelationTree</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <entity>AttributeRelationTree_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>55f89863-72b0-4179-8494-b1e320d79de9</name>
+      <view>AttributeRelationTree_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonView/ActivityMain_view/ActivityMain_view.aod b/neonView/ActivityMain_view/ActivityMain_view.aod
index eb9974e40d7cd64f15e8899e7530ffeda07acc89..af453fbc92e75cadbedb0cbd0afd3c00e8c5be2e 100644
--- a/neonView/ActivityMain_view/ActivityMain_view.aod
+++ b/neonView/ActivityMain_view/ActivityMain_view.aod
@@ -39,5 +39,10 @@
       <entityField>Attributes</entityField>
       <view>AttributeRelationFilter_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>f57fb116-d356-47c7-8da6-ee64b4a01b46</name>
+      <entityField>AttributeTree</entityField>
+      <view>AttributeRelationTree_view</view>
+    </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/AddressEdit_view/AddressEdit_view.aod b/neonView/AddressEdit_view/AddressEdit_view.aod
index 10f2872a4938b4ae7855b6bc1c5e74b30775985e..2114d1eb558473953fc4c4d76c45602ad084e906 100644
--- a/neonView/AddressEdit_view/AddressEdit_view.aod
+++ b/neonView/AddressEdit_view/AddressEdit_view.aod
@@ -37,10 +37,6 @@
           <name>fafca9d6-c6dd-4b66-b1ff-1d6ba451827b</name>
           <entityField>CITY</entityField>
         </entityFieldLink>
-        <entityFieldLink>
-          <name>e7804363-405d-429d-91c9-23de9685cc9a</name>
-          <entityField>STATE</entityField>
-        </entityFieldLink>
       </fields>
     </genericViewTemplate>
   </children>
diff --git a/neonView/AddressFilter_view/AddressFilter_view.aod b/neonView/AddressFilter_view/AddressFilter_view.aod
index 8dca53e1da805358c4592f9d3e267aa52a3637d4..2f07b18741bc8868c6a57aaf1abe84e317671741 100644
--- a/neonView/AddressFilter_view/AddressFilter_view.aod
+++ b/neonView/AddressFilter_view/AddressFilter_view.aod
@@ -37,10 +37,6 @@
           <name>57247c5c-6498-420b-b288-68ca316cf7f2</name>
           <entityField>CITY</entityField>
         </neonTableColumn>
-        <neonTableColumn>
-          <name>9a965a25-a8aa-4777-865e-138624f2d848</name>
-          <entityField>STATE</entityField>
-        </neonTableColumn>
       </columns>
     </tableViewTemplate>
   </children>
diff --git a/neonView/AddressList_view/AddressList_view.aod b/neonView/AddressList_view/AddressList_view.aod
index 4ea6e925cff6fc725c11238a2c57b5c92adf1dfb..f0228635159a4b8f3af11a586cedcf0ad69bba44 100644
--- a/neonView/AddressList_view/AddressList_view.aod
+++ b/neonView/AddressList_view/AddressList_view.aod
@@ -38,10 +38,6 @@
           <name>12727b21-0359-4430-a9c2-54eb48e2e864</name>
           <entityField>CITY</entityField>
         </neonTableColumn>
-        <neonTableColumn>
-          <name>17039f2e-4253-4242-bcc4-b75483adfbd0</name>
-          <entityField>STATE</entityField>
-        </neonTableColumn>
       </columns>
     </titledListViewTemplate>
   </children>
diff --git a/neonView/AdressMultiEdit_view/AdressMultiEdit_view.aod b/neonView/AdressMultiEdit_view/AdressMultiEdit_view.aod
index 65f2c96188ae4e3313bcbc82c5268b5fc39b8590..c1be3d32a86e74c67ef7a96f749cb24f7500c52f 100644
--- a/neonView/AdressMultiEdit_view/AdressMultiEdit_view.aod
+++ b/neonView/AdressMultiEdit_view/AdressMultiEdit_view.aod
@@ -36,10 +36,6 @@
           <name>fafca2d6-c2dd-4b66-b1ff-1d6ba451827b</name>
           <entityField>CITY</entityField>
         </neonTableColumn>
-        <neonTableColumn>
-          <name>945bd8e7-9d0d-4e32-8908-24d8dfb74463</name>
-          <entityField>STATE</entityField>
-        </neonTableColumn>
       </columns>
     </genericMultipleViewTemplate>
   </children>
diff --git a/neonView/AttributeRelationFilter_view/AttributeRelationFilter_view.aod b/neonView/AttributeRelationFilter_view/AttributeRelationFilter_view.aod
index 73c5a2e0f2496feb2bcafad38ff80260be4f8949..3a0762d98f996ccbc67bc31b51e76fdbe84eff4d 100644
--- a/neonView/AttributeRelationFilter_view/AttributeRelationFilter_view.aod
+++ b/neonView/AttributeRelationFilter_view/AttributeRelationFilter_view.aod
@@ -5,9 +5,9 @@
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
   <layout>
-    <groupLayout>
+    <boxLayout>
       <name>layout</name>
-    </groupLayout>
+    </boxLayout>
   </layout>
   <children>
     <tableViewTemplate>
@@ -25,12 +25,5 @@
         </neonTableColumn>
       </columns>
     </tableViewTemplate>
-    <treetableViewTemplate>
-      <name>RelationsTreetable</name>
-      <parentField>ATTRIBUTE_PARENT_ID</parentField>
-      <titleField>AB_ATTRIBUTE_ID</titleField>
-      <descriptionField>ATTRIBUTERELATION_VALUE</descriptionField>
-      <entityField>#ENTITY</entityField>
-    </treetableViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/AttributeRelationTree_view/AttributeRelationTree_view.aod b/neonView/AttributeRelationTree_view/AttributeRelationTree_view.aod
index b1cd03b35f0c1b8f137ba724fe03ceba32679326..cdb9d9672088b1fa2ce64e759906d8260cbf1f75 100644
--- a/neonView/AttributeRelationTree_view/AttributeRelationTree_view.aod
+++ b/neonView/AttributeRelationTree_view/AttributeRelationTree_view.aod
@@ -1,21 +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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.0">
-  <name>AttributeRelationTree_view</name>
-  <title>Attributes</title>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <filterable v="true" />
-  <layout>
-    <groupLayout>
-      <name>layout</name>
-    </groupLayout>
-  </layout>
-  <children>
-    <treetableViewTemplate>
-      <name>Treetable</name>
-      <titleField>AB_ATTRIBUTE_ID</titleField>
-      <descriptionField>ATTRIBUTERELATION_VALUE</descriptionField>
-      <entityField>#ENTITY</entityField>
-      <title></title>
-    </treetableViewTemplate>
-  </children>
-</neonView>
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.0">
+  <name>AttributeRelationTree_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <treetableViewTemplate>
+      <name>AttributeRelationTree</name>
+      <parentField>PARENT_ID</parentField>
+      <titleField>TITLE</titleField>
+      <entityField>#ENTITY</entityField>
+    </treetableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ContractMain_view/ContractMain_view.aod b/neonView/ContractMain_view/ContractMain_view.aod
index 3ceece90590160970331f5d228422451f617b2a5..a40e7c73b8f9fa3664b0588566a151a6aa889791 100644
--- a/neonView/ContractMain_view/ContractMain_view.aod
+++ b/neonView/ContractMain_view/ContractMain_view.aod
@@ -29,5 +29,10 @@
       <entityField>Attributes</entityField>
       <view>AttributeRelationFilter_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>940f0dca-aee3-4af6-ae50-9334964ce414</name>
+      <entityField>AttributeTree</entityField>
+      <view>AttributeRelationTree_view</view>
+    </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/OfferMain_view/OfferMain_view.aod b/neonView/OfferMain_view/OfferMain_view.aod
index 5acba02e0c0f1c8adb885739dfa7835a4cc84ec8..4b4735152b67636ea7be12f8f9dc914ee255019e 100644
--- a/neonView/OfferMain_view/OfferMain_view.aod
+++ b/neonView/OfferMain_view/OfferMain_view.aod
@@ -39,10 +39,5 @@
       <entityField>Documents</entityField>
       <view>DocumentFilter_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>5f9f6ab2-7bc4-473f-a846-c1536a3c2b1a</name>
-      <entityField>Attributes</entityField>
-      <view>AttributeRelationFilter_view</view>
-    </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/OrganisationMain_view/OrganisationMain_view.aod b/neonView/OrganisationMain_view/OrganisationMain_view.aod
index 3e7ccf4980fd9dbc0b4cf0a6d79e67e4daba73ec..2dd587177418b295eabced90bdbbb3faf26b793c 100644
--- a/neonView/OrganisationMain_view/OrganisationMain_view.aod
+++ b/neonView/OrganisationMain_view/OrganisationMain_view.aod
@@ -20,26 +20,26 @@
       <entityField>Activities</entityField>
       <view>ActivityFilter_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>ae34787c-dcaf-4fe2-a4e2-35219f138b03</name>
-      <entityField>360DegreeObjects</entityField>
-      <view>360DegreeFilter_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>55e04574-bc55-4c9a-a4c4-9ebd287f8ae6</name>
-      <entityField>Tasks</entityField>
-      <view>TaskFilter_view</view>
-    </neonViewReference>
     <neonViewReference>
       <name>c10533a6-d185-4b13-84ee-53a468544c03</name>
       <entityField>Contact</entityField>
       <view>PersonSimpleList_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>ae34787c-dcaf-4fe2-a4e2-35219f138b03</name>
+      <entityField>360DegreeObjects</entityField>
+      <view>360DegreeFilter_view</view>
+    </neonViewReference>
     <neonViewReference>
       <name>78aee175-d3ac-4378-8b3b-27f44a529aa5</name>
       <entityField>Productprices</entityField>
       <view>ProductpriceRelation_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>55e04574-bc55-4c9a-a4c4-9ebd287f8ae6</name>
+      <entityField>Tasks</entityField>
+      <view>TaskFilter_view</view>
+    </neonViewReference>
     <neonViewReference>
       <name>eba90ed2-5e55-4cdb-9e0b-5a09feeb7536</name>
       <entityField>Documents</entityField>
@@ -60,5 +60,10 @@
       <entityField>Attributes</entityField>
       <view>AttributeRelationFilter_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>ba50e069-06da-440e-b04a-5a686fcf5303</name>
+      <entityField>AttributeTree</entityField>
+      <view>AttributeRelationTree_view</view>
+    </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/PersonMain_view/PersonMain_view.aod b/neonView/PersonMain_view/PersonMain_view.aod
index afe8033aeea91388e82572f75e0c350f0524b51b..6ab7d40c76a2814f8119978f334037ed0a5758b1 100644
--- a/neonView/PersonMain_view/PersonMain_view.aod
+++ b/neonView/PersonMain_view/PersonMain_view.aod
@@ -49,6 +49,11 @@
       <entityField>Attributes</entityField>
       <view>AttributeRelationFilter_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>cf989bf6-3e49-44fc-ba98-322aae377da3</name>
+      <entityField>AttributeTree</entityField>
+      <view>AttributeRelationTree_view</view>
+    </neonViewReference>
     <neonViewReference>
       <name>c2606a8b-eac1-412e-893d-bb788d4a5b5c</name>
       <entityField>OtherContacts</entityField>
diff --git a/neonView/ProductMain_view/ProductMain_view.aod b/neonView/ProductMain_view/ProductMain_view.aod
index 7ac4a87c4db385d9c6be171334d2084be0cbe6e9..28de5da8164ab75a02cc6e603114a21e1cc448df 100644
--- a/neonView/ProductMain_view/ProductMain_view.aod
+++ b/neonView/ProductMain_view/ProductMain_view.aod
@@ -49,5 +49,10 @@
       <entityField>Attributes</entityField>
       <view>AttributeRelationFilter_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>6ee1258f-b571-45c1-b833-f292361b5a04</name>
+      <entityField>AttributeTree</entityField>
+      <view>AttributeRelationTree_view</view>
+    </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod b/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod
index 44cadc8a7c8ac2689b40553b0b0bc87b8987d246..315544ca5c94b82cadfa39d919ae6eee43580c83 100644
--- a/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod
+++ b/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod
@@ -1,91 +1,91 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<neonView 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/neonView/1.1.0">
-  <name>SalesprojectPreview_view</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <layout>
-    <boxLayout>
-      <name>layout</name>
-    </boxLayout>
-  </layout>
-  <children>
-    <cardViewTemplate>
-      <name>Head</name>
-      <iconField>IMAGE</iconField>
-      <titleField>PROJECTTITLE</titleField>
-      <descriptionField>PROJECTCODE</descriptionField>
-      <favoriteAction1>newActivity</favoriteAction1>
-      <entityField>#ENTITY</entityField>
-    </cardViewTemplate>
-    <genericViewTemplate>
-      <name>Details</name>
-      <showDrawer v="true" />
-      <drawerCaption>Details</drawerCaption>
-      <entityField>#ENTITY</entityField>
-      <fields>
-        <entityFieldLink>
-          <name>f2b33601-12e8-463f-a920-6e1ae9745491</name>
-          <entityField>RELATION_ID</entityField>
-        </entityFieldLink>
-        <entityFieldLink>
-          <name>4e3d7a37-f55b-4c18-9ba1-ab4ab0bbb442</name>
-          <entityField>STATE</entityField>
-        </entityFieldLink>
-        <entityFieldLink>
-          <name>2867e662-b824-4bbf-8eaf-bbd34f44598e</name>
-          <entityField>REASONS</entityField>
-        </entityFieldLink>
-        <entityFieldLink>
-          <name>ff0dcd67-56ec-4db1-8c53-531f22fda716</name>
-          <entityField>PHASE</entityField>
-        </entityFieldLink>
-        <entityFieldLink>
-          <name>3164fe37-8ca0-44c0-bebe-b9573346fb72</name>
-          <entityField>STARTDATE</entityField>
-        </entityFieldLink>
-        <entityFieldLink>
-          <name>529e8b1f-014f-4b44-8bba-96869156ebf7</name>
-          <entityField>ENDDATE</entityField>
-        </entityFieldLink>
-        <entityFieldLink>
-          <name>0ba7dcb5-9606-4d74-8455-3423a16fd98a</name>
-          <entityField>PROBABILITY</entityField>
-        </entityFieldLink>
-        <entityFieldLink>
-          <name>950d21a3-c0f9-4df5-9810-fa027a6fdb4a</name>
-          <entityField>VOLUME</entityField>
-        </entityFieldLink>
-        <entityFieldLink>
-          <name>bf7ecf7a-3d7f-4ec8-867a-c10ced346343</name>
-          <entityField>TIMETRACKINGSUM</entityField>
-        </entityFieldLink>
-      </fields>
-    </genericViewTemplate>
-    <genericViewTemplate>
-      <name>Info</name>
-      <showDrawer v="true" />
-      <drawerCaption>Further informations</drawerCaption>
-      <entityField>#ENTITY</entityField>
-      <fields>
-        <entityFieldLink>
-          <name>9fe11db5-ec66-4238-9c56-5ace055f1d90</name>
-          <entityField>INFO</entityField>
-        </entityFieldLink>
-      </fields>
-    </genericViewTemplate>
-    <neonViewReference>
-      <name>f3542270-e7bd-4f9f-b7c0-f6c5210bb337</name>
-      <entityField>MainDocuments</entityField>
-      <view>DocumentList_view</view>
-    </neonViewReference>
-    <scoreCardViewTemplate>
-      <name>AdditionalInfo</name>
-      <entityField>#ENTITY</entityField>
-      <fields>
-        <entityFieldLink>
-          <name>79490331-6be4-422f-9450-da0db56f0654</name>
-          <entityField>DAYS_NOTACTIVE</entityField>
-        </entityFieldLink>
-      </fields>
-    </scoreCardViewTemplate>
-  </children>
-</neonView>
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.0">
+  <name>SalesprojectPreview_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <cardViewTemplate>
+      <name>Head</name>
+      <iconField>IMAGE</iconField>
+      <titleField>PROJECTTITLE</titleField>
+      <descriptionField>PROJECTCODE</descriptionField>
+      <favoriteAction1>newActivity</favoriteAction1>
+      <entityField>#ENTITY</entityField>
+    </cardViewTemplate>
+    <genericViewTemplate>
+      <name>Details</name>
+      <showDrawer v="true" />
+      <drawerCaption>Details</drawerCaption>
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>f2b33601-12e8-463f-a920-6e1ae9745491</name>
+          <entityField>RELATION_ID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>4e3d7a37-f55b-4c18-9ba1-ab4ab0bbb442</name>
+          <entityField>STATE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>2867e662-b824-4bbf-8eaf-bbd34f44598e</name>
+          <entityField>REASONS</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>ff0dcd67-56ec-4db1-8c53-531f22fda716</name>
+          <entityField>PHASE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>3164fe37-8ca0-44c0-bebe-b9573346fb72</name>
+          <entityField>STARTDATE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>529e8b1f-014f-4b44-8bba-96869156ebf7</name>
+          <entityField>ENDDATE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>0ba7dcb5-9606-4d74-8455-3423a16fd98a</name>
+          <entityField>PROBABILITY</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>950d21a3-c0f9-4df5-9810-fa027a6fdb4a</name>
+          <entityField>VOLUME</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>bf7ecf7a-3d7f-4ec8-867a-c10ced346343</name>
+          <entityField>TIMETRACKINGSUM</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+    <genericViewTemplate>
+      <name>Info</name>
+      <showDrawer v="true" />
+      <drawerCaption>Further informations</drawerCaption>
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>9fe11db5-ec66-4238-9c56-5ace055f1d90</name>
+          <entityField>INFO</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+    <neonViewReference>
+      <name>f3542270-e7bd-4f9f-b7c0-f6c5210bb337</name>
+      <entityField>MainDocuments</entityField>
+      <view>DocumentList_view</view>
+    </neonViewReference>
+    <scoreCardViewTemplate>
+      <name>AdditionalInfo</name>
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>79490331-6be4-422f-9450-da0db56f0654</name>
+          <entityField>DAYS_NOTACTIVE</entityField>
+        </entityFieldLink>
+      </fields>
+    </scoreCardViewTemplate>
+  </children>
+</neonView>
diff --git a/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_AttributeKeyword_target_group.xml b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_AttributeKeyword_target_group.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5d05350bab596ec9287d824a8c7ab0165f29d690
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_AttributeKeyword_target_group.xml
@@ -0,0 +1,90 @@
+<?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.hoermann" id="7401faab-a383-48de-82db-0a869b77445d">
+        <insert tableName="AB_ATTRIBUTE">
+            <column name="AB_ATTRIBUTEID" value="5d1a2b05-f04e-4ad7-9fd0-8efa09a33a53"/>
+            <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/>
+            <column name="ATTRIBUTE_LEVEL" valueNumeric="0"/>
+            <column name="ATTRIBUTE_NAME" value="Zielgruppe"/>
+            <column name="ATTRIBUTE_PARENT_ID"/>
+            <column name="ATTRIBUTE_TYPE" value="KEYWORD                             "/>
+            <column name="KEYWORD_CONTAINER" value="TargetGroup"/>
+        </insert>
+        
+        <insert tableName="AB_ATTRIBUTEUSAGE">
+            <column name="AB_ATTRIBUTEUSAGEID" value="d3d71563-cb7a-41a1-80be-148f090dafe1"/>
+            <column name="AB_ATTRIBUTE_ID" value="5d1a2b05-f04e-4ad7-9fd0-8efa09a33a53"/>
+            <column name="OBJECT_TYPE" value="Organisation"/>
+        </insert>
+        
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="e9d25ed2-60d6-4512-81e0-f0c234bb099b"/>
+            <column name="KEYID" value="9ba661a1-82df-46b1-8e9f-79d9c14a2f8c"/>
+            <column name="TITLE" value="Customer"/>
+            <column name="CONTAINER" value="TargetGroup"/>
+            <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="739898f5-f498-4d55-b384-03d0f2399581"/>
+            <column name="KEYID" value="765e57ad-964c-47da-91eb-9bcdaa63b6c8"/>
+            <column name="TITLE" value="Prospective customer"/>
+            <column name="CONTAINER" value="TargetGroup"/>
+            <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="3417041a-11bc-47e6-9ebb-43c82fbb9c05"/>
+            <column name="KEYID" value="41b0832f-8de2-4ab5-a6e0-9a793c5f80c3"/>
+            <column name="TITLE" value="Manufacturer"/>
+            <column name="CONTAINER" value="TargetGroup"/>
+            <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="d3e23da8-3551-4d7f-ba8c-da8b6839c3da"/>
+            <column name="KEYID" value="fc09afd5-5f74-4e48-af26-3600bb4c9610"/>
+            <column name="TITLE" value="Competitor"/>
+            <column name="CONTAINER" value="TargetGroup"/>
+            <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="aaef93fa-6ca5-46b7-a850-84e02a99de48"/>
+            <column name="KEYID" value="defe2588-5892-46b2-81d9-00ebde7ca3d7"/>
+            <column name="TITLE" value="Partner"/>
+            <column name="CONTAINER" value="TargetGroup"/>
+            <column name="SORTING" valueNumeric="4"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <rollback>
+            <delete tableName="AB_ATTRIBUTE">
+                <where>AB_ATTRIBUTEID in (?)</where>
+                <whereParams>
+                    <param value="5d1a2b05-f04e-4ad7-9fd0-8efa09a33a53"/>
+                </whereParams>
+            </delete>
+            <delete tableName="AB_ATTRIBUTEUSAGE">
+                <where>AB_ATTRIBUTE_ID in (?)</where>
+                <whereParams>
+                    <param value="5d1a2b05-f04e-4ad7-9fd0-8efa09a33a53"/>
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID in (?, ?, ?, ?, ?)</where>
+                <whereParams>
+                    <param value="e9d25ed2-60d6-4512-81e0-f0c234bb099b"/>
+                    <param value="739898f5-f498-4d55-b384-03d0f2399581"/>
+                    <param value="3417041a-11bc-47e6-9ebb-43c82fbb9c05"/>
+                    <param value="d3e23da8-3551-4d7f-ba8c-da8b6839c3da"/>
+                    <param value="aaef93fa-6ca5-46b7-a850-84e02a99de48"/>
+                </whereParams>
+            </delete>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
diff --git a/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_SalesprojectState.xml b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_SalesprojectState.xml
index ce858a70d018230f40877955af88b26e8c2cfc5b..19c59bfef3859b3736d8098ec846f1cc25ad3355 100644
--- a/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_SalesprojectState.xml
+++ b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_SalesprojectState.xml
@@ -1,16 +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="j.goderbauer" id="033b6fcb-53d9-4e23-8c29-4e739294a704">
-        <insert tableName="AB_KEYWORD_ENTRY">
-            <column name="AB_KEYWORD_ENTRYID" value="c6eeab06-cec9-42c3-8f11-468c7e602de4"/>
-
-            <column name="KEYID" value="25b0ac77-ef92-4809-802e-bb9d8782f865"/>
-            <column name="TITLE" value="Open"/>
-            <column name="CONTAINER" value="SalesprojectState"/>
-            <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="115495eb-dff4-436d-8114-b9a7644586bf"/>
 
diff --git a/others/db_changes/data_alias/basic/2019.2/AditoBasic/insert_offer_status_keyword.xml b/others/db_changes/data_alias/basic/2019.2/AditoBasic/insert_offer_status_keyword.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4fd7389268c4484ffa9c4768b3656607cae7cf1a
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/AditoBasic/insert_offer_status_keyword.xml
@@ -0,0 +1,14 @@
+<?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.hoermann" id="3e9548bd-2c3e-413f-a8b0-405d926f2790">       
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="3c734077-8677-4732-86ef-7df01d9646b3"/>
+            <column name="KEYID" value="70d27a1b-7233-481d-826f-01a13a4bb0b2"/>
+            <column name="TITLE" value="Open"/>
+            <column name="CONTAINER" value="OfferStatus"/>
+            <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/others/db_changes/data_alias/basic/2019.2/AditoBasic/insert_salesproject_state_keyword.xml b/others/db_changes/data_alias/basic/2019.2/AditoBasic/insert_salesproject_state_keyword.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ba9ff8eababab916e26ccb7f0c959ee8cee040f5
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/AditoBasic/insert_salesproject_state_keyword.xml
@@ -0,0 +1,14 @@
+<?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.hoermann" id="cfe5294c-5f89-4527-bd1d-ebe9d0597f63">       
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="b0123a07-0d21-4365-9aa2-c8be18c56141"/>
+            <column name="KEYID" value="483bcaeb-1e5b-4772-b54e-7d7d8aa65712"/>
+            <column name="TITLE" value="Open"/>
+            <column name="CONTAINER" value="SalesprojectState"/>
+            <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/others/db_changes/data_alias/basic/2019.2/KeywordRelatedStructureChanges/SalesProjectState.xml b/others/db_changes/data_alias/basic/2019.2/KeywordRelatedStructureChanges/SalesProjectState.xml
index 2d71ed03849fc35bcd8f0036930b32ee2073540e..579f8bdd2cc8014a5925b76aa546cf95fcce9bff 100644
--- a/others/db_changes/data_alias/basic/2019.2/KeywordRelatedStructureChanges/SalesProjectState.xml
+++ b/others/db_changes/data_alias/basic/2019.2/KeywordRelatedStructureChanges/SalesProjectState.xml
@@ -6,7 +6,7 @@
             <column name="STATE" type="CHAR(36)"/>
 	</addColumn> 
         <update tableName="SALESPROJECT">
-            <column name="STATE" value="25b0ac77-ef92-4809-802e-bb9d8782f865"/>
+            <column name="STATE" value="483bcaeb-1e5b-4772-b54e-7d7d8aa65712"/>
             <where>STATE_OLD = 1</where>
         </update>
         <update tableName="SALESPROJECT">
@@ -38,7 +38,7 @@
             </addColumn>   
             <update tableName="SALESPROJECT">
                 <column name="STATE" valueNumeric="1"/>
-                <where>STATE_OLD = '25b0ac77-ef92-4809-802e-bb9d8782f865'</where>
+                <where>STATE_OLD = '483bcaeb-1e5b-4772-b54e-7d7d8aa65712'</where>
             </update>
             <update tableName="SALESPROJECT">
                 <column name="STATE" valueNumeric="2"/>
diff --git a/others/db_changes/data_alias/basic/2019.2/activity_add_date_editnew_user_editnew.xml b/others/db_changes/data_alias/basic/2019.2/activity_add_date_editnew_user_editnew.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2dc4d279cfb4fbd8005a5c7b8b952f8774d9e118
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/activity_add_date_editnew_user_editnew.xml
@@ -0,0 +1,28 @@
+<?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="d.buechler" id="12efe6d0-710d-4db2-beba-adef412a641e">
+        <addColumn tableName="ACTIVITY">
+            <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" />
+        </addColumn>
+        
+        <update tableName="ACTIVITY">
+            <column name="USER_NEW" type="NVARCHAR(50)" value="Admin"/>
+            <column name="DATE_NEW" type="DATETIME" valueComputed="current_datetime"/>
+        </update>
+        
+        <addNotNullConstraint
+            columnDataType="NVARCHAR(50)"
+            columnName="USER_NEW"
+            tableName="ACTIVITY"/>
+        
+        <addNotNullConstraint
+            columnDataType="DATETIME"
+            columnName="DATE_NEW"
+            tableName="ACTIVITY"/>
+        
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/activitylink_add_date_editnew_user_editnew.xml b/others/db_changes/data_alias/basic/2019.2/activitylink_add_date_editnew_user_editnew.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8fadb2fd79360619b4eb68bcb7592a79bc95210d
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/activitylink_add_date_editnew_user_editnew.xml
@@ -0,0 +1,29 @@
+<?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="d.buechler" id="4974c7ff-9b83-488e-b2d8-4d3d3fbfa13b">
+        <addColumn tableName="ACTIVITYLINK">
+	    <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" />
+        </addColumn>
+        
+        <update
+            tableName="ACTIVITYLINK">
+        <column name="USER_NEW" type="NVARCHAR(50)" value="Admin"/>
+        <column name="DATE_NEW" type="DATETIME" valueComputed="current_datetime"/>
+        </update>
+        
+        <addNotNullConstraint
+            columnDataType="NVARCHAR(50)"
+            columnName="USER_NEW"
+            tableName="ACTIVITYLINK"/>
+        
+        <addNotNullConstraint
+            columnDataType="DATETIME"
+            columnName="DATE_NEW"
+            tableName="ACTIVITYLINK"/>
+        
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/address_add_date_editnew_user_editnew.xml b/others/db_changes/data_alias/basic/2019.2/address_add_date_editnew_user_editnew.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1f1c3fb9885b3820b9fda0accee7134382c2b740
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/address_add_date_editnew_user_editnew.xml
@@ -0,0 +1,29 @@
+<?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="d.buechler" id="5de48032-5931-4d48-ac9d-fca8da4cef93">
+        <addColumn tableName="ADDRESS">
+	        <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" />
+        </addColumn>
+        
+        <update
+            tableName="ADDRESS">
+        <column name="USER_NEW" type="NVARCHAR(50)" value="Admin"/>
+        <column name="DATE_NEW" type="DATETIME" valueComputed="current_datetime"/>
+        </update>
+        
+        <addNotNullConstraint
+            columnDataType="NVARCHAR(50)"
+            columnName="USER_NEW"
+            tableName="ADDRESS"/>
+        
+        <addNotNullConstraint
+            columnDataType="DATETIME"
+            columnName="DATE_NEW"
+            tableName="ADDRESS"/>
+        
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/attributerelation_add_date_editnew_user_editnew.xml b/others/db_changes/data_alias/basic/2019.2/attributerelation_add_date_editnew_user_editnew.xml
new file mode 100644
index 0000000000000000000000000000000000000000..be425b68229f16684658fce5543cf881a5c27a8f
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/attributerelation_add_date_editnew_user_editnew.xml
@@ -0,0 +1,29 @@
+<?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="d.buechler" id="7e51f1e1-2eeb-4334-9c4b-09519681bb8f">
+        <addColumn tableName="AB_ATTRIBUTERELATION">
+            <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" />
+        </addColumn>
+        
+        <update
+            tableName="AB_ATTRIBUTERELATION">
+        <column name="USER_NEW" type="NVARCHAR(50)" value="Admin"/>
+        <column name="DATE_NEW" type="DATETIME" valueComputed="current_datetime"/>
+        </update>
+        
+        <addNotNullConstraint
+            columnDataType="NVARCHAR(50)"
+            columnName="USER_NEW"
+            tableName="AB_ATTRIBUTERELATION"/>
+        
+        <addNotNullConstraint
+            columnDataType="DATETIME"
+            columnName="DATE_NEW"
+            tableName="AB_ATTRIBUTERELATION"/>
+        
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/changelog.xml b/others/db_changes/data_alias/basic/2019.2/changelog.xml
index a0cf8db3d8508bcfe094aec981dc2fed89d7bffb..27786a00e3b5e294bf0c7647c3b8def936952a68 100644
--- a/others/db_changes/data_alias/basic/2019.2/changelog.xml
+++ b/others/db_changes/data_alias/basic/2019.2/changelog.xml
@@ -109,6 +109,23 @@
     <include relativeToChangelogFile="true" file="AditoBasic/init_ContactContactrole.xml"/>
     <include relativeToChangelogFile="true" file="AditoBasic/init_ContactPosition.xml"/>
 
+    <include relativeToChangelogFile="true" file="AditoBasic/init_AttributeKeyword_target_group.xml"/>
+    <include relativeToChangelogFile="true" file="AditoBasic/insert_offer_status_keyword.xml"/>
+    <include relativeToChangelogFile="true" file="AditoBasic/insert_salesproject_state_keyword.xml"/>
+
+
+    <include relativeToChangelogFile="true" file="organisation_add_date_editnew_user_editnew.xml"/>
+    <include relativeToChangelogFile="true" file="person_add_date_editnew_user_editnew.xml"/>
+    <include relativeToChangelogFile="true" file="address_add_date_editnew_user_editnew.xml"/>
+    <include relativeToChangelogFile="true" file="contact_add_date_editnew_user_editnew.xml"/>
+    <include relativeToChangelogFile="true" file="activity_add_date_editnew_user_editnew.xml"/>
+    <include relativeToChangelogFile="true" file="activitylink_add_date_editnew_user_editnew.xml"/>
+    <include relativeToChangelogFile="true" file="product_add_date_editnew_user_editnew.xml"/>
+    <include relativeToChangelogFile="true" file="offer_add_date_editnew_user_editnew.xml"/>
+    <include relativeToChangelogFile="true" file="attributerelation_add_date_editnew_user_editnew.xml"/>
+    <include relativeToChangelogFile="true" file="communication_add_date_editnew_user_editnew.xml"/>
+
+
     <include relativeToChangelogFile="true" file="CampaignManagement/create_campaign.xml"/>
     <include relativeToChangelogFile="true" file="CampaignManagement/create_campaignStep.xml"/>
     <include relativeToChangelogFile="true" file="CampaignManagement/create_campaignParticipant.xml"/>
diff --git a/others/db_changes/data_alias/basic/2019.2/communication_add_date_editnew_user_editnew.xml b/others/db_changes/data_alias/basic/2019.2/communication_add_date_editnew_user_editnew.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bcc8c48b77c06cfd0508682bac258766883ca297
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/communication_add_date_editnew_user_editnew.xml
@@ -0,0 +1,28 @@
+<?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="d.buechler" id="1ae11ac7-b51f-4286-a6d6-fd3e17353d01">
+        <addColumn tableName="COMMUNICATION">
+            <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" />
+        </addColumn>
+        
+        <update tableName="COMMUNICATION">
+            <column name="USER_NEW" type="NVARCHAR(50)" value="Admin"/>
+            <column name="DATE_NEW" type="DATETIME" valueComputed="current_datetime"/>
+        </update>
+        
+        <addNotNullConstraint
+            columnDataType="NVARCHAR(50)"
+            columnName="USER_NEW"
+            tableName="COMMUNICATION"/>
+        
+        <addNotNullConstraint
+            columnDataType="DATETIME"
+            columnName="DATE_NEW"
+            tableName="COMMUNICATION"/>
+        
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/contact_add_date_editnew_user_editnew.xml b/others/db_changes/data_alias/basic/2019.2/contact_add_date_editnew_user_editnew.xml
new file mode 100644
index 0000000000000000000000000000000000000000..95c4a880cda31d396db4ff336742af4ea765d990
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/contact_add_date_editnew_user_editnew.xml
@@ -0,0 +1,29 @@
+<?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="d.buechler" id="4628bfa2-db32-4f70-a18c-051ba688db15">
+        <addColumn tableName="CONTACT">
+            <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" />
+        </addColumn>
+        
+        <update
+            tableName="CONTACT">
+        <column name="USER_NEW" type="NVARCHAR(50)" value="Admin"/>
+        <column name="DATE_NEW" type="DATETIME" valueComputed="current_datetime"/>
+        </update>
+        
+        <addNotNullConstraint
+            columnDataType="NVARCHAR(50)"
+            columnName="USER_NEW"
+            tableName="CONTACT"/>
+        
+        <addNotNullConstraint
+            columnDataType="DATETIME"
+            columnName="DATE_NEW"
+            tableName="CONTACT"/>
+        
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/create_salutation.xml b/others/db_changes/data_alias/basic/2019.2/create_salutation.xml
index 7e3a19612134c8a967fc6d788a62fd423b9159a0..70b4f1edcdc170e7cc26d53a0969048ce77ca013 100644
--- a/others/db_changes/data_alias/basic/2019.2/create_salutation.xml
+++ b/others/db_changes/data_alias/basic/2019.2/create_salutation.xml
@@ -145,10 +145,10 @@
             <column name="SALUTATIONID" value="76fe57c0-cf68-4240-ba6d-eb7d52f46317"/>
         </insert>
         <insert tableName="SALUTATION">
-            <column name="HEADLINE" value="Herr Präsidengt {fn} {ln}"/>
-            <column name="LETTERSALUTATION" value="Sehr geehrter Herr Präsidengt"/>
+            <column name="HEADLINE" value="Herr Präsident {fn} {ln}"/>
+            <column name="LETTERSALUTATION" value="Sehr geehrter Herr Präsident"/>
             <column name="SEX" value="m"/>
-            <column name="TITLE" value="Präsidengt"/>
+            <column name="TITLE" value="Präsident"/>
             <column name="SALUTATION" value="Herr"/>
             <column name="LANGUAGE" value="deu"/>
             <column name="SORT" valueNumeric="14"/>
diff --git a/others/db_changes/data_alias/basic/2019.2/data/example_attribute/Attribute.xml b/others/db_changes/data_alias/basic/2019.2/data/example_attribute/Attribute.xml
index 6c2c36f53f66220455360656060c7872fe02d862..2ae99c4f9ed5eff557765f7f1195d581df8b3ee9 100644
--- a/others/db_changes/data_alias/basic/2019.2/data/example_attribute/Attribute.xml
+++ b/others/db_changes/data_alias/basic/2019.2/data/example_attribute/Attribute.xml
@@ -894,13 +894,7 @@
 	<column name="ATTRIBUTE_NAME" value="Preisliste"/>
 	<column name="ATTRIBUTE_PARENT_ID" value="ab545654-1fce-4993-b763-0ec469781302"/>
 	<column name="ATTRIBUTE_TYPE" value="KEYWORD                             "/>
-</insert>
-<insert tableName="AB_ATTRIBUTEUSAGE">
-        <column name="AB_ATTRIBUTEUSAGEID" value="3234f4e2-0ee7-4782-9b10-c953b7b1be29"/>
-        <column name="AB_ATTRIBUTE_ID" value="97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec"/>
-        <column name="OBJECT_TYPE" value="Organisation"/>
-        <column name="MIN_COUNT"/>
-        <column name="MAX_COUNT"/>
+        <column name="KEYWORD_CONTAINER" value="ProductPricelist"/>
 </insert>
 
 <insert tableName="AB_ATTRIBUTE">
diff --git a/others/db_changes/data_alias/basic/2019.2/data/example_attribute/AttributeUsage.xml b/others/db_changes/data_alias/basic/2019.2/data/example_attribute/AttributeUsage.xml
index e6019bb9b660635d94b05846fc6b0673494611a9..d1cc31c444d111792f47e8fb1570d6c80374941c 100644
--- a/others/db_changes/data_alias/basic/2019.2/data/example_attribute/AttributeUsage.xml
+++ b/others/db_changes/data_alias/basic/2019.2/data/example_attribute/AttributeUsage.xml
@@ -1,6 +1,11 @@
 <?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.listl" id="33bfbf9d-e3b9-4dd0-94e5-f22c74bc3014">
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="3234f4e2-0ee7-4782-9b10-c953b7b1be29"/>
+	<column name="AB_ATTRIBUTE_ID" value="97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec"/>
+	<column name="OBJECT_TYPE" value="Organisation"/>
+</insert>
 <insert tableName="AB_ATTRIBUTEUSAGE">
 	<column name="AB_ATTRIBUTEUSAGEID" value="c4f2943f-a63c-4ede-815b-0d588f33d5fb"/>
 	<column name="AB_ATTRIBUTE_ID" value="752d7706-ac6e-4b51-a918-4265531794a4"/>
@@ -43,11 +48,6 @@
 	<column name="MIN_COUNT" valueNumeric="1"/>
 	<column name="OBJECT_TYPE" value="Organisation"/>
 </insert>
-<insert tableName="AB_ATTRIBUTEUSAGE">
-	<column name="AB_ATTRIBUTEUSAGEID" value="5b9d5f38-4486-4586-8de0-9c607d51e698"/>
-	<column name="AB_ATTRIBUTE_ID" value="be31d7a5-9a02-4ae0-8265-916d32c1fccb"/>
-	<column name="OBJECT_TYPE" value="Document_entity"/>
-</insert>
 <insert tableName="AB_ATTRIBUTEUSAGE">
 	<column name="AB_ATTRIBUTEUSAGEID" value="9216c562-b361-4a9d-be60-a6fdf9bdc07c"/>
 	<column name="AB_ATTRIBUTE_ID" value="0644222a-2b3b-4f5e-a85a-d24c32fa0e72"/>
@@ -58,21 +58,11 @@
 	<column name="AB_ATTRIBUTE_ID" value="ab545654-1fce-4993-b763-0ec469781302"/>
 	<column name="OBJECT_TYPE" value="Person"/>
 </insert>
-<insert tableName="AB_ATTRIBUTEUSAGE">
-	<column name="AB_ATTRIBUTEUSAGEID" value="8adfbc93-2daa-4e6b-a3ce-76110b46e458"/>
-	<column name="AB_ATTRIBUTE_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/>
-	<column name="OBJECT_TYPE" value="Activity"/>
-</insert>
 <insert tableName="AB_ATTRIBUTEUSAGE">
 	<column name="AB_ATTRIBUTEUSAGEID" value="6ad188dc-5e76-467a-9bc3-8c63f50862ae"/>
 	<column name="AB_ATTRIBUTE_ID" value="ab545654-1fce-4993-b763-0ec469781302"/>
 	<column name="OBJECT_TYPE" value="Contract"/>
 </insert>
-<insert tableName="AB_ATTRIBUTEUSAGE">
-	<column name="AB_ATTRIBUTEUSAGEID" value="31b6b6f1-b980-4b14-a382-a718be560009"/>
-	<column name="AB_ATTRIBUTE_ID" value="9e9568c5-ad8a-4c1e-a6e6-72c9b4a3acf7"/>
-	<column name="OBJECT_TYPE" value="Document_entity"/>
-</insert>
 <insert tableName="AB_ATTRIBUTEUSAGE">
 	<column name="AB_ATTRIBUTEUSAGEID" value="c32d3322-5ff6-400a-82b6-4f8524ec7f6b"/>
 	<column name="AB_ATTRIBUTE_ID" value="b78ef891-16a3-4354-bc95-7b70ef5b4e2e"/>
@@ -98,36 +88,11 @@
 	<column name="AB_ATTRIBUTE_ID" value="a844a395-e857-447d-b8f8-fa850bbceb82"/>
 	<column name="OBJECT_TYPE" value="Product"/>
 </insert>
-<insert tableName="AB_ATTRIBUTEUSAGE">
-	<column name="AB_ATTRIBUTEUSAGEID" value="89be2b44-2766-4dea-9a73-725b84a20d6d"/>
-	<column name="AB_ATTRIBUTE_ID" value="ab545654-1fce-4993-b763-0ec469781302"/>
-	<column name="OBJECT_TYPE" value="Contact"/>
-</insert>
 <insert tableName="AB_ATTRIBUTEUSAGE">
 	<column name="AB_ATTRIBUTEUSAGEID" value="0766ff88-304d-41a7-8224-642a0aee5587"/>
 	<column name="AB_ATTRIBUTE_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/>
 	<column name="OBJECT_TYPE" value="Salesproject"/>
 </insert>
-<insert tableName="AB_ATTRIBUTEUSAGE">
-	<column name="AB_ATTRIBUTEUSAGEID" value="ef63620d-f247-4ca0-bd92-9efa0b14676e"/>
-	<column name="AB_ATTRIBUTE_ID" value="f310ae37-5ec3-47c6-839b-a92fc8fcd252"/>
-	<column name="OBJECT_TYPE" value="Organisation"/>
-</insert>
-<insert tableName="AB_ATTRIBUTEUSAGE">
-	<column name="AB_ATTRIBUTEUSAGEID" value="512ef5be-3381-42ac-860a-b1fbb9be665b"/>
-	<column name="AB_ATTRIBUTE_ID" value="f310ae37-5ec3-47c6-839b-a92fc8fcd252"/>
-	<column name="OBJECT_TYPE" value="Activity"/>
-</insert>
-<insert tableName="AB_ATTRIBUTEUSAGE">
-	<column name="AB_ATTRIBUTEUSAGEID" value="dbb70409-43b2-4a94-b7f7-bbb4e4ba101d"/>
-	<column name="AB_ATTRIBUTE_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/>
-	<column name="OBJECT_TYPE" value="Person"/>
-</insert>
-<insert tableName="AB_ATTRIBUTEUSAGE">
-	<column name="AB_ATTRIBUTEUSAGEID" value="f579e0d5-42f4-4682-99b5-358e06ffe4a1"/>
-	<column name="AB_ATTRIBUTE_ID" value="f310ae37-5ec3-47c6-839b-a92fc8fcd252"/>
-	<column name="OBJECT_TYPE" value="Person"/>
-</insert>
 <insert tableName="AB_ATTRIBUTEUSAGE">
 	<column name="AB_ATTRIBUTEUSAGEID" value="06afbdb4-a9e1-493d-b45e-c14e114a9cc7"/>
 	<column name="AB_ATTRIBUTE_ID" value="fd3963bc-8e60-411a-9911-b97eb73e5cf7"/>
@@ -145,21 +110,11 @@
 	<column name="MIN_COUNT" valueNumeric="1"/>
 	<column name="OBJECT_TYPE" value="Person"/>
 </insert>
-<insert tableName="AB_ATTRIBUTEUSAGE">
-	<column name="AB_ATTRIBUTEUSAGEID" value="9a145e7f-bb66-4541-bb99-28c2dd944f3d"/>
-	<column name="AB_ATTRIBUTE_ID" value="fa0171cf-2e0d-4ff0-bbe7-8ff083a96593"/>
-	<column name="OBJECT_TYPE" value="Document_entity"/>
-</insert>
 <insert tableName="AB_ATTRIBUTEUSAGE">
 	<column name="AB_ATTRIBUTEUSAGEID" value="37855ddd-c5cb-4692-86a5-3a94aae7c455"/>
 	<column name="AB_ATTRIBUTE_ID" value="7b687991-601c-4d75-b201-00a6cc9c6b93"/>
 	<column name="OBJECT_TYPE" value="Product"/>
 </insert>
-<insert tableName="AB_ATTRIBUTEUSAGE">
-	<column name="AB_ATTRIBUTEUSAGEID" value="fade7115-40fb-41a2-8f71-dbb6905176e9"/>
-	<column name="AB_ATTRIBUTE_ID" value="b93fc811-e0dc-4e50-9ca6-107f43ac4c0c"/>
-	<column name="OBJECT_TYPE" value="Document_entity"/>
-</insert>
 <insert tableName="AB_ATTRIBUTEUSAGE">
 	<column name="AB_ATTRIBUTEUSAGEID" value="97dce2df-5757-4a2e-89a1-60a9a88d181c"/>
 	<column name="AB_ATTRIBUTE_ID" value="e32cd923-3774-41c1-95d5-57b79e52e568"/>
@@ -177,11 +132,6 @@
 	<column name="MIN_COUNT" valueNumeric="2"/>
 	<column name="OBJECT_TYPE" value="Organisation"/>
 </insert>
-<insert tableName="AB_ATTRIBUTEUSAGE">
-	<column name="AB_ATTRIBUTEUSAGEID" value="6fd80f33-6d9a-4b95-b420-c3c5b249caf9"/>
-	<column name="AB_ATTRIBUTE_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/>
-	<column name="OBJECT_TYPE" value="Organisation"/>
-</insert>
 <insert tableName="AB_ATTRIBUTEUSAGE">
 	<column name="AB_ATTRIBUTEUSAGEID" value="7c0f32be-d3f5-48be-8b7e-a80eb6ade28d"/>
 	<column name="AB_ATTRIBUTE_ID" value="786148de-56b3-497e-88db-2ff5e4dc0bd7"/>
@@ -203,12 +153,6 @@
 	<column name="AB_ATTRIBUTE_ID" value="65f0027d-7939-4342-b531-f31f10c3c045"/>
 	<column name="OBJECT_TYPE" value="Person"/>
 </insert>
-<insert tableName="AB_ATTRIBUTEUSAGE">
-	<column name="AB_ATTRIBUTEUSAGEID" value="ebb3b2a2-0fd2-4307-8f21-c118e7ad7b8e"/>
-	<column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
-	<column name="MIN_COUNT" valueNumeric="1"/>
-	<column name="OBJECT_TYPE" value="Contact"/>
-</insert>
 <insert tableName="AB_ATTRIBUTEUSAGE">
 	<column name="AB_ATTRIBUTEUSAGEID" value="755239d0-7fe3-46bc-8ec4-923977148455"/>
 	<column name="AB_ATTRIBUTE_ID" value="7621696c-40ce-4cf2-92ec-74bc940e49ec"/>
@@ -219,12 +163,6 @@
 	<column name="AB_ATTRIBUTE_ID" value="e32cd923-3774-41c1-95d5-57b79e52e568"/>
 	<column name="OBJECT_TYPE" value="Person"/>
 </insert>
-<insert tableName="AB_ATTRIBUTEUSAGE">
-	<column name="AB_ATTRIBUTEUSAGEID" value="0826cf13-f379-417d-9fed-302fe44a618e"/>
-	<column name="AB_ATTRIBUTE_ID" value="dc52ede6-2b79-488c-b7bb-48877bd5d198"/>
-	<column name="MIN_COUNT" valueNumeric="1"/>
-	<column name="OBJECT_TYPE" value="Activity"/>
-</insert>
 <insert tableName="AB_ATTRIBUTEUSAGE">
 	<column name="AB_ATTRIBUTEUSAGEID" value="2d2c7f0f-29aa-42e8-88f5-b6234d52e349"/>
 	<column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
@@ -241,7 +179,118 @@
 	<column name="AB_ATTRIBUTE_ID" value="e32cd923-3774-41c1-95d5-57b79e52e568"/>
 	<column name="OBJECT_TYPE" value="Product"/>
 </insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="8998c3b4-4eb8-4885-a290-3915f7e115a4"/>
+	<column name="AB_ATTRIBUTE_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/>
+	<column name="OBJECT_TYPE" value="Activity"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="219ea36e-d350-4ea9-9af0-9f396464e138"/>
+	<column name="AB_ATTRIBUTE_ID" value="dc52ede6-2b79-488c-b7bb-48877bd5d198"/>
+	<column name="OBJECT_TYPE" value="Activity"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="118a4133-c604-4c91-b1d5-13769d2c2bfb"/>
+	<column name="AB_ATTRIBUTE_ID" value="f310ae37-5ec3-47c6-839b-a92fc8fcd252"/>
+	<column name="OBJECT_TYPE" value="Activity"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="d72e9c6d-ad1d-419c-9794-b044c69f9c22"/>
+	<column name="AB_ATTRIBUTE_ID" value="14847ea6-b6fd-43f6-a819-af2b1e53177e"/>
+	<column name="OBJECT_TYPE" value="Activity"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="e04d728d-f920-4e38-a8eb-258789d5c387"/>
+	<column name="AB_ATTRIBUTE_ID" value="cd90b9e3-e663-4248-b9ed-4e25ed330c58"/>
+	<column name="OBJECT_TYPE" value="Activity"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="eedcc2e4-6af2-42f9-ab48-379d0188d5d8"/>
+	<column name="AB_ATTRIBUTE_ID" value="7abdc3a7-f46b-4021-b695-7fde6b21c6a4"/>
+	<column name="OBJECT_TYPE" value="Activity"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="f10f8bd6-1bbd-4970-a41d-af027c063cfc"/>
+	<column name="AB_ATTRIBUTE_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/>
+	<column name="OBJECT_TYPE" value="Organisation"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="3ab3fec6-229e-430e-b92c-d4f06be3829d"/>
+	<column name="AB_ATTRIBUTE_ID" value="f310ae37-5ec3-47c6-839b-a92fc8fcd252"/>
+	<column name="OBJECT_TYPE" value="Organisation"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="5c357e7d-68f7-4408-8b60-36f8a029db28"/>
+	<column name="AB_ATTRIBUTE_ID" value="14847ea6-b6fd-43f6-a819-af2b1e53177e"/>
+	<column name="OBJECT_TYPE" value="Organisation"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="9635f83e-6714-4ede-ab07-0f8180548d56"/>
+	<column name="AB_ATTRIBUTE_ID" value="cd90b9e3-e663-4248-b9ed-4e25ed330c58"/>
+	<column name="OBJECT_TYPE" value="Organisation"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="3eb17fc4-94ea-468b-b2bb-0f59101407c4"/>
+	<column name="AB_ATTRIBUTE_ID" value="7abdc3a7-f46b-4021-b695-7fde6b21c6a4"/>
+	<column name="OBJECT_TYPE" value="Organisation"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="5fcdb4a4-5b63-4379-a839-319701612438"/>
+	<column name="AB_ATTRIBUTE_ID" value="2f963668-9e8c-41d7-aee4-6beaf37492e4"/>
+	<column name="OBJECT_TYPE" value="Organisation"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="d3d2d6ba-5b4f-4f8a-95c2-6c9abc74a9d6"/>
+	<column name="AB_ATTRIBUTE_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/>
+	<column name="OBJECT_TYPE" value="Person"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="b0f42fce-45e4-47e7-9534-534d3c762c81"/>
+	<column name="AB_ATTRIBUTE_ID" value="f310ae37-5ec3-47c6-839b-a92fc8fcd252"/>
+	<column name="OBJECT_TYPE" value="Person"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="b41518a1-a7e9-452e-be4b-9d1658a9f931"/>
+	<column name="AB_ATTRIBUTE_ID" value="cd90b9e3-e663-4248-b9ed-4e25ed330c58"/>
+	<column name="OBJECT_TYPE" value="Person"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="4e5e648a-c468-49bb-9ec3-0199ae308045"/>
+	<column name="AB_ATTRIBUTE_ID" value="7abdc3a7-f46b-4021-b695-7fde6b21c6a4"/>
+	<column name="OBJECT_TYPE" value="Person"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="2dcc2277-4e49-4232-a435-2c1b233bf9f2"/>
+	<column name="AB_ATTRIBUTE_ID" value="44d53f3a-a8cd-4e79-bc09-a6e17d678e7e"/>
+	<column name="OBJECT_TYPE" value="Person"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="4de9d31f-82a4-4598-85ae-de0b8ce5590d"/>
+	<column name="AB_ATTRIBUTE_ID" value="3a6e11fc-b00a-4cf3-975a-a5e8b60fc5cb"/>
+	<column name="OBJECT_TYPE" value="Organisation"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="2c1af7b9-f015-4e9e-911a-b975f077f471"/>
+	<column name="AB_ATTRIBUTE_ID" value="3a6e11fc-b00a-4cf3-975a-a5e8b60fc5cb"/>
+	<column name="OBJECT_TYPE" value="Person"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="7d936ff2-41d9-47c6-9145-d165c8b70fe7"/>
+	<column name="AB_ATTRIBUTE_ID" value="292fae38-6557-466d-8843-3b1b4a1f6599"/>
+	<column name="OBJECT_TYPE" value="Organisation"/>
+</insert>
+<insert tableName="AB_ATTRIBUTEUSAGE">
+	<column name="AB_ATTRIBUTEUSAGEID" value="5f0274a2-6425-4258-9f1f-a510ca6b5861"/>
+	<column name="AB_ATTRIBUTE_ID" value="292fae38-6557-466d-8843-3b1b4a1f6599"/>
+	<column name="OBJECT_TYPE" value="Person"/>
+</insert>
 <rollback>
+<delete tableName="AB_ATTRIBUTEUSAGE">
+	<where>AB_ATTRIBUTEUSAGEID = ?</where>
+	<whereParams>
+		<param value="3234f4e2-0ee7-4782-9b10-c953b7b1be29"/>
+	</whereParams>
+</delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
@@ -293,229 +342,277 @@
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="5b9d5f38-4486-4586-8de0-9c607d51e698"/>
+		<param value="9216c562-b361-4a9d-be60-a6fdf9bdc07c"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="9216c562-b361-4a9d-be60-a6fdf9bdc07c"/>
+		<param value="f06dd320-4757-4261-aace-cb827a313d28"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="f06dd320-4757-4261-aace-cb827a313d28"/>
+		<param value="6ad188dc-5e76-467a-9bc3-8c63f50862ae"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="8adfbc93-2daa-4e6b-a3ce-76110b46e458"/>
+		<param value="c32d3322-5ff6-400a-82b6-4f8524ec7f6b"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="6ad188dc-5e76-467a-9bc3-8c63f50862ae"/>
+		<param value="e744c324-27ca-4d91-bf57-c487a904d8d6"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="31b6b6f1-b980-4b14-a382-a718be560009"/>
+		<param value="e5ccaa2e-1cae-4ac8-b76c-5c06eac0e53d"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="c32d3322-5ff6-400a-82b6-4f8524ec7f6b"/>
+		<param value="9e9829fe-880d-4b65-b729-34a99b37c5bf"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="e744c324-27ca-4d91-bf57-c487a904d8d6"/>
+		<param value="86d385a6-f97f-4868-a65a-9b60940886f0"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="e5ccaa2e-1cae-4ac8-b76c-5c06eac0e53d"/>
+		<param value="0766ff88-304d-41a7-8224-642a0aee5587"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="9e9829fe-880d-4b65-b729-34a99b37c5bf"/>
+		<param value="06afbdb4-a9e1-493d-b45e-c14e114a9cc7"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="86d385a6-f97f-4868-a65a-9b60940886f0"/>
+		<param value="d31efbea-3583-4772-9b5b-b900ab88c9a3"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="89be2b44-2766-4dea-9a73-725b84a20d6d"/>
+		<param value="e79d1096-a2e0-4c4f-acca-2f5976699dcd"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="0766ff88-304d-41a7-8224-642a0aee5587"/>
+		<param value="37855ddd-c5cb-4692-86a5-3a94aae7c455"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="ef63620d-f247-4ca0-bd92-9efa0b14676e"/>
+		<param value="97dce2df-5757-4a2e-89a1-60a9a88d181c"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="512ef5be-3381-42ac-860a-b1fbb9be665b"/>
+		<param value="66cac4bb-6dd9-4ddd-b329-14d4542bfd2e"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="dbb70409-43b2-4a94-b7f7-bbb4e4ba101d"/>
+		<param value="05576033-1bee-4547-ab82-fdfcdd039642"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="f579e0d5-42f4-4682-99b5-358e06ffe4a1"/>
+		<param value="7c0f32be-d3f5-48be-8b7e-a80eb6ade28d"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="06afbdb4-a9e1-493d-b45e-c14e114a9cc7"/>
+		<param value="4ff67f07-1aa7-47d4-8e5f-c4860793085a"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="d31efbea-3583-4772-9b5b-b900ab88c9a3"/>
+		<param value="8593dbe5-617a-4f09-a789-02b54157b1d3"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="e79d1096-a2e0-4c4f-acca-2f5976699dcd"/>
+		<param value="96d0c724-a00a-4d04-ad44-6a4014318e5a"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="9a145e7f-bb66-4541-bb99-28c2dd944f3d"/>
+		<param value="755239d0-7fe3-46bc-8ec4-923977148455"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="37855ddd-c5cb-4692-86a5-3a94aae7c455"/>
+		<param value="4d649c71-ba74-4ee1-ba73-6155327190d4"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="fade7115-40fb-41a2-8f71-dbb6905176e9"/>
+		<param value="2d2c7f0f-29aa-42e8-88f5-b6234d52e349"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="97dce2df-5757-4a2e-89a1-60a9a88d181c"/>
+		<param value="be7d0f5c-8941-4b3d-b128-bab67e1d609b"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="66cac4bb-6dd9-4ddd-b329-14d4542bfd2e"/>
+		<param value="44398121-8b60-41ff-a657-84b2b5c1e034"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="05576033-1bee-4547-ab82-fdfcdd039642"/>
+		<param value="8998c3b4-4eb8-4885-a290-3915f7e115a4"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="6fd80f33-6d9a-4b95-b420-c3c5b249caf9"/>
+		<param value="219ea36e-d350-4ea9-9af0-9f396464e138"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="7c0f32be-d3f5-48be-8b7e-a80eb6ade28d"/>
+		<param value="118a4133-c604-4c91-b1d5-13769d2c2bfb"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="4ff67f07-1aa7-47d4-8e5f-c4860793085a"/>
+		<param value="d72e9c6d-ad1d-419c-9794-b044c69f9c22"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="8593dbe5-617a-4f09-a789-02b54157b1d3"/>
+		<param value="e04d728d-f920-4e38-a8eb-258789d5c387"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="96d0c724-a00a-4d04-ad44-6a4014318e5a"/>
+		<param value="eedcc2e4-6af2-42f9-ab48-379d0188d5d8"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="ebb3b2a2-0fd2-4307-8f21-c118e7ad7b8e"/>
+		<param value="f10f8bd6-1bbd-4970-a41d-af027c063cfc"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="755239d0-7fe3-46bc-8ec4-923977148455"/>
+		<param value="3ab3fec6-229e-430e-b92c-d4f06be3829d"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="4d649c71-ba74-4ee1-ba73-6155327190d4"/>
+		<param value="5c357e7d-68f7-4408-8b60-36f8a029db28"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="0826cf13-f379-417d-9fed-302fe44a618e"/>
+		<param value="9635f83e-6714-4ede-ab07-0f8180548d56"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="2d2c7f0f-29aa-42e8-88f5-b6234d52e349"/>
+		<param value="3eb17fc4-94ea-468b-b2bb-0f59101407c4"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="be7d0f5c-8941-4b3d-b128-bab67e1d609b"/>
+		<param value="5fcdb4a4-5b63-4379-a839-319701612438"/>
 	</whereParams>
 </delete>
 <delete tableName="AB_ATTRIBUTEUSAGE">
 	<where>AB_ATTRIBUTEUSAGEID = ?</where>
 	<whereParams>
-		<param value="44398121-8b60-41ff-a657-84b2b5c1e034"/>
+		<param value="d3d2d6ba-5b4f-4f8a-95c2-6c9abc74a9d6"/>
+	</whereParams>
+</delete>
+<delete tableName="AB_ATTRIBUTEUSAGE">
+	<where>AB_ATTRIBUTEUSAGEID = ?</where>
+	<whereParams>
+		<param value="b0f42fce-45e4-47e7-9534-534d3c762c81"/>
+	</whereParams>
+</delete>
+<delete tableName="AB_ATTRIBUTEUSAGE">
+	<where>AB_ATTRIBUTEUSAGEID = ?</where>
+	<whereParams>
+		<param value="b41518a1-a7e9-452e-be4b-9d1658a9f931"/>
+	</whereParams>
+</delete>
+<delete tableName="AB_ATTRIBUTEUSAGE">
+	<where>AB_ATTRIBUTEUSAGEID = ?</where>
+	<whereParams>
+		<param value="4e5e648a-c468-49bb-9ec3-0199ae308045"/>
+	</whereParams>
+</delete>
+<delete tableName="AB_ATTRIBUTEUSAGE">
+	<where>AB_ATTRIBUTEUSAGEID = ?</where>
+	<whereParams>
+		<param value="2dcc2277-4e49-4232-a435-2c1b233bf9f2"/>
+	</whereParams>
+</delete>
+<delete tableName="AB_ATTRIBUTEUSAGE">
+	<where>AB_ATTRIBUTEUSAGEID = ?</where>
+	<whereParams>
+		<param value="4de9d31f-82a4-4598-85ae-de0b8ce5590d"/>
+	</whereParams>
+</delete>
+<delete tableName="AB_ATTRIBUTEUSAGE">
+	<where>AB_ATTRIBUTEUSAGEID = ?</where>
+	<whereParams>
+		<param value="2c1af7b9-f015-4e9e-911a-b975f077f471"/>
+	</whereParams>
+</delete>
+<delete tableName="AB_ATTRIBUTEUSAGE">
+	<where>AB_ATTRIBUTEUSAGEID = ?</where>
+	<whereParams>
+		<param value="7d936ff2-41d9-47c6-9145-d165c8b70fe7"/>
+	</whereParams>
+</delete>
+<delete tableName="AB_ATTRIBUTEUSAGE">
+	<where>AB_ATTRIBUTEUSAGEID = ?</where>
+	<whereParams>
+		<param value="5f0274a2-6425-4258-9f1f-a510ca6b5861"/>
 	</whereParams>
 </delete>
 </rollback>
diff --git a/others/db_changes/data_alias/basic/2019.2/offer_add_date_editnew_user_editnew.xml b/others/db_changes/data_alias/basic/2019.2/offer_add_date_editnew_user_editnew.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a55fa56091c98f250fa9c868f0d2648d572c2f9b
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/offer_add_date_editnew_user_editnew.xml
@@ -0,0 +1,29 @@
+<?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="d.buechler" id="c7c98743-8939-4b32-b04d-b587ede752dd">
+        <addColumn tableName="OFFER">
+            <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" />
+        </addColumn>
+        
+        <update
+            tableName="OFFER">
+        <column name="USER_NEW" type="NVARCHAR(50)" value="Admin"/>
+        <column name="DATE_NEW" type="DATETIME" valueComputed="current_datetime"/>
+        </update>
+        
+        <addNotNullConstraint
+            columnDataType="NVARCHAR(50)"
+            columnName="USER_NEW"
+            tableName="OFFER"/>
+        
+        <addNotNullConstraint
+            columnDataType="DATETIME"
+            columnName="DATE_NEW"
+            tableName="OFFER"/>
+        
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/organisation_add_date_editnew_user_editnew.xml b/others/db_changes/data_alias/basic/2019.2/organisation_add_date_editnew_user_editnew.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7a9b29f0e0571a5ffa7090cf2984c6118c725c6a
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/organisation_add_date_editnew_user_editnew.xml
@@ -0,0 +1,29 @@
+<?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="d.buechler" id="6a32f69d-9100-4657-8380-575c9dbe41ff">
+        <addColumn tableName="ORGANISATION">
+            <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" />
+        </addColumn>
+        
+        <update
+            tableName="ORGANISATION">
+        <column name="USER_NEW" type="NVARCHAR(50)" value="Admin"/>
+        <column name="DATE_NEW" type="DATETIME" valueComputed="current_datetime"/>
+        </update>
+        
+        <addNotNullConstraint
+            columnDataType="NVARCHAR(50)"
+            columnName="USER_NEW"
+            tableName="ORGANISATION"/>
+        
+        <addNotNullConstraint
+            columnDataType="DATETIME"
+            columnName="DATE_NEW"
+            tableName="ORGANISATION"/>
+        
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/person_add_date_editnew_user_editnew.xml b/others/db_changes/data_alias/basic/2019.2/person_add_date_editnew_user_editnew.xml
new file mode 100644
index 0000000000000000000000000000000000000000..52d41d55eb7655d04a149a5967258494b03a3650
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/person_add_date_editnew_user_editnew.xml
@@ -0,0 +1,29 @@
+<?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="d.buechler" id="02de3b65-44a3-4dbf-ace6-33dfef0b998c">
+        <addColumn tableName="PERSON">
+            <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" />
+        </addColumn>
+        
+        <update
+            tableName="PERSON">
+        <column name="USER_NEW" type="NVARCHAR(50)" value="Admin"/>
+        <column name="DATE_NEW" type="DATETIME" valueComputed="current_datetime"/>
+        </update>
+        
+        <addNotNullConstraint
+            columnDataType="NVARCHAR(50)"
+            columnName="USER_NEW"
+            tableName="PERSON"/>
+        
+        <addNotNullConstraint
+            columnDataType="DATETIME"
+            columnName="DATE_NEW"
+            tableName="PERSON"/>
+        
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/product_add_date_editnew_user_editnew.xml b/others/db_changes/data_alias/basic/2019.2/product_add_date_editnew_user_editnew.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6b7003875fe8ba96f6a8b2d84f7a336dd562f2aa
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/product_add_date_editnew_user_editnew.xml
@@ -0,0 +1,29 @@
+<?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="d.buechler" id="7f4376c0-2ee1-444d-9101-57b6e851b0ba">
+        <addColumn tableName="PRODUCT">
+            <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" />
+        </addColumn>
+        
+        <update
+            tableName="PRODUCT">
+        <column name="USER_NEW" type="NVARCHAR(50)" value="Admin"/>
+        <column name="DATE_NEW" type="DATETIME" valueComputed="current_datetime"/>
+        </update>
+        
+        <addNotNullConstraint
+            columnDataType="NVARCHAR(50)"
+            columnName="USER_NEW"
+            tableName="PRODUCT"/>
+        
+        <addNotNullConstraint
+            columnDataType="DATETIME"
+            columnName="DATE_NEW"
+            tableName="PRODUCT"/>
+        
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod b/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod
index 2e627c2e517e6de8e51a348a72ea341be0d36ca5..35430f5089fee2c2b0e5c87d3278c5f9d34a897c 100644
--- a/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod
+++ b/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod
@@ -2,7 +2,7 @@
 <preferences xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="3.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/preferences/3.1.0">
   <name>_____PREFERENCES_PROJECT</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
-  <projectName>xRM-Basic2019</projectName>
+  <projectName>xRM-Basic5</projectName>
   <jditoMaxContentSize v="57671680" />
   <calendarCategoriesEvent>
     <entry>
diff --git a/process/Attribute_lib/process.js b/process/Attribute_lib/process.js
index 6614f1c74149370b5d9309558f6f797f8d6a5031..08b0fba8f927bb1a913d8a2a65c8d4adf20f383a 100644
--- a/process/Attribute_lib/process.js
+++ b/process/Attribute_lib/process.js
@@ -199,17 +199,18 @@ AttributeRelationUtils.getAttribute = function (pAttributeId, pObjectRowId, pObj
  * @param {String} pObjectRowId object rowid
  * @param {String} [pObjectType=null] object-type
  * @param {String} [pResolveNames=false] if true the full attribute names are used instead of the ids
+ * @param {String} [pGetUID=false] include the attributeRelation id
  * 
- * @return {String[][]} two-dimensional array a row is [attributeId|attributeName, value]
+ * @return {String[][]} two-dimensional array a row is [attributeId|attributeName, value] or if pGetUID is true, [attriuteRelationId, attributeId|attributeName, value]
  */
-AttributeRelationUtils.getAllAttributes = function (pObjectRowId, pObjectType, pResolveNames)
+AttributeRelationUtils.getAllAttributes = function (pObjectRowId, pObjectType, pResolveNames, pGetUID)
 {
     var attrCond = SqlCondition.begin()
         .andPrepare("AB_ATTRIBUTERELATION.OBJECT_ROWID", pObjectRowId);
     if (pObjectType != null)
-        attrCond.andPrepare("AB_ATTRIBUTERELATION.OBJECT_TYPE", pAttributeId);
+        attrCond.andPrepare("AB_ATTRIBUTERELATION.OBJECT_TYPE", pObjectType);
     
-    var attributeSql = attrCond.buildSql("select AB_ATTRIBUTE_ID, AB_ATTRIBUTE.ATTRIBUTE_TYPE, AB_ATTRIBUTE.KEYWORD_CONTAINER, COMBOVAL.ATTRIBUTE_NAME, " 
+    var attributeSql = attrCond.buildSql("select AB_ATTRIBUTERELATIONID, AB_ATTRIBUTE_ID, AB_ATTRIBUTE.ATTRIBUTE_TYPE, AB_ATTRIBUTE.KEYWORD_CONTAINER, COMBOVAL.ATTRIBUTE_NAME, " 
         + AttributeTypeUtil.getAllDatabaseFields().join(", ")
         + " from AB_ATTRIBUTERELATION join AB_ATTRIBUTE on AB_ATTRIBUTE_ID = AB_ATTRIBUTE.AB_ATTRIBUTEID"
         + " left join AB_ATTRIBUTE COMBOVAL on " + $AttributeTypes.COMBO.databaseField + " = COMBOVAL.AB_ATTRIBUTEID");
@@ -217,7 +218,7 @@ AttributeRelationUtils.getAllAttributes = function (pObjectRowId, pObjectType, p
     var attributeNameMap = {};
     var attributeValues = db.table(attributeSql).map(function (row) 
     {
-        let attribute = row[0];
+        let attribute = row[1];
         if (pResolveNames)
         {
             if (!(attribute in attributeNameMap))
@@ -225,13 +226,15 @@ AttributeRelationUtils.getAllAttributes = function (pObjectRowId, pObjectType, p
             attribute = attributeNameMap[attribute];
         }
         let value;
-        if (row[1].trim() == $AttributeTypes.COMBO)
-            value = row[3];
+        if (row[2].trim() == $AttributeTypes.COMBO)
+            value = row[4];
         else
         {
-            value = row[AttributeTypeUtil.getTypeColumnIndex(row[1]) + 4];
-            value = AttributeTypeUtil.getAttributeViewValue(row[1].trim(), value, row[2]);
+            value = row[AttributeTypeUtil.getTypeColumnIndex(row[2]) + 5];
+            value = AttributeTypeUtil.getAttributeViewValue(row[2].trim(), value, row[3]);
         }
+        if (pGetUID)
+            return [row[0], attribute, value];
         return [attribute, value];
     });
     
diff --git a/process/Context_lib/process.js b/process/Context_lib/process.js
index 7eee3571dbc1a681d7989b1a7aac05129c227cee..b8034c7952e1ac1bbdad7e623015c3b7026d7ab4 100644
--- a/process/Context_lib/process.js
+++ b/process/Context_lib/process.js
@@ -5,6 +5,7 @@ import("system.SQLTYPES");
 import("Keyword_lib");
 import("Sql_lib");
 import("Contact_lib");
+import("system.logging");
 
 /**
  * Methods to manage contexts.
@@ -109,33 +110,49 @@ ContextUtils._getSelectMap = function()
     var maskingUtils = new SqlMaskingUtils();
     return {
         // contextId,
-        // nameField,
-        // Tablename (or from-part inc, joins),
-        // IDField,
-        // RelationField,
-        // CreationDate override Tablename (needed if Tablename is a join clause)
+        // nameField, 0
+        // Tablename 1
+        // joins (if needed), 2
+        // IDField, 3
+        // RelationField, 4
+        // CreationDate 5
+        // override Tablename (needed if Tablename is a join clause) 6
+        // StateField 7
+        // Active States 8
         
         // "Appointment": ["SUMMARY", "ASYS_CALENDARBACKEND", "UID"]
         "Organisation": [
             "\"NAME\"",
             "ORGANISATION",
+            "",
             "ORGANISATIONID",
             "",
-            ""
+            "",
+            "",
+            "",
+            []
         ],
         "Person": [
             (new ContactTitleRenderer(Contact.createWithColumnPreset()).asSql()),
-            "PERSON join CONTACT on PERSON.PERSONID = CONTACT.PERSON_ID join ORGANISATION on ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID ",
+            "PERSON",
+            " join CONTACT on PERSON.PERSONID = CONTACT.PERSON_ID join ORGANISATION on ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID ",
             "CONTACTID",
             "CONTACT",
-            ""
+            "",
+            "CONTACT",
+            "",
+            []
         ],
         "Activity": [
             "SUBJECT",
             "ACTIVITY",
+            "",
             "ACTIVITYID",
             "",
-            ""
+            "",
+            "",
+            "",
+            []
         ],
         "Salesproject": [
             maskingUtils.concat([
@@ -146,9 +163,13 @@ ContextUtils._getSelectMap = function()
                 "PROJECTTITLE"
             ], "", false),
             "SALESPROJECT",
+            "",
             "SALESPROJECTID",
             "CONTACT_ID",
-            "STARTDATE"
+            "STARTDATE",
+            "",
+            "STATE",
+            ["25b0ac77-ef92-4809-802e-bb9d8782f865", "23d38486-4cce-41ce-a8df-164ad44df706"]
         ],
         "Contract": [
             maskingUtils.concat([
@@ -156,9 +177,13 @@ ContextUtils._getSelectMap = function()
                 maskingUtils.cast("CONTRACTCODE", SQLTYPES.VARCHAR, 10)
             ], " "),
             "CONTRACT",
+            "",
             "CONTRACTID",
             "CONTACT_ID",
-            "CONTRACTSTART"
+            "CONTRACTSTART",
+            "",
+            "CONTRACTSTATUS",
+           ["e12d37e9-3429-40b5-973b-c1569843ca46", "3579eb0c-d8ca-4b6b-85ee-f1800a9301eb", "4c63c82d-0276-4c12-9937-13fd361ad786"]
         ],
         "Offer": [
             maskingUtils.concat([
@@ -169,9 +194,13 @@ ContextUtils._getSelectMap = function()
                 maskingUtils.cast("VERSNR", SQLTYPES.VARCHAR, 10)
             ], "", false),
             "OFFER",
+            "",
             "OFFERID",
             "CONTACT_ID",
-            "OFFERDATE"
+            "OFFERDATE",
+            "",
+            "STATUS",
+            ["5134153d-2e18-452f-ab35-7a52f1aee7d1", "e5d6b5a4-7576-440f-8332-bc40147c0335"]
         ],
         "Order": [
             maskingUtils.concat([
@@ -182,9 +211,13 @@ ContextUtils._getSelectMap = function()
                 maskingUtils.cast("VERSNR", SQLTYPES.VARCHAR, 10)
             ], "", false),
             "SALESORDER",
+            "",
             "SALESORDERID",
             "CONTACT_ID",
-            "ORDERDATE"
+            "ORDERDATE",
+            "",
+            "",
+            []
         ],
         "Product": [
             maskingUtils.concat([
@@ -193,25 +226,32 @@ ContextUtils._getSelectMap = function()
                 "PRODUCTNAME"
             ], "", false),
             "PRODUCT",
+            "",
             "PRODUCTID",
             "",
-            ""
+            "",
+            "",
+            "",
+            []
         ],
         "Task": [
             "SUBJECT",
             "TASK",
+            "",
             "TASKID",
             translate.text("Task"),
             "",
-            ""
+            "",
+            "",
+            []
         ]
     }
 }
 
 ContextUtils.getFieldTitle = function(pContextId, pDefault)
 {
-    if (ContextUtils._getSelectMap()[pContextId] != undefined && ContextUtils._getSelectMap()[pContextId].length >= 3)
-        return ContextUtils._getSelectMap()[pContextId][3];
+    if (ContextUtils._getSelectMap()[pContextId] != undefined && ContextUtils._getSelectMap()[pContextId].length >= 4)
+        return ContextUtils._getSelectMap()[pContextId][4];
 
     return pDefault;
 }
@@ -227,7 +267,7 @@ ContextUtils.getNameSubselectSql = function(pContextIdDbField, pRowIdDbField)
     var selectMap = ContextUtils._getSelectMap()
     for (let contextId in selectMap)
     {
-        select += "when '" + contextId + "' then (select " + selectMap[contextId][0] + " from " + selectMap[contextId][1] + (pRowIdDbField ? " where " + selectMap[contextId][2] + " = " + pRowIdDbField : " ") + ") ";
+        select += "when '" + contextId + "' then (select " + selectMap[contextId][0] + " from " + selectMap[contextId][1] + " " + selectMap[contextId][2] + (pRowIdDbField ? " where " + selectMap[contextId][3] + " = " + pRowIdDbField : " ") + ") ";
     }
 
     select += "else 'Not defined in ContextUtils.getNameSql()!'";
@@ -243,7 +283,9 @@ ContextUtils.getNameSql = function(pContextId, pRowId)
 {
     var selectMap = ContextUtils._getSelectMap()
     if (selectMap[pContextId] != undefined)
-        return SqlCondition.begin().andPrepare((selectMap[pContextId][4] ? selectMap[pContextId][4] : selectMap[pContextId][1]) + "." + selectMap[pContextId][2], pRowId).buildSql("select " + selectMap[pContextId][0] + " from " + selectMap[pContextId][1], "1=2");
+    {
+        return SqlCondition.begin().andPrepare((selectMap[pContextId][6] ? selectMap[pContextId][6] : selectMap[pContextId][1]) + "." + selectMap[pContextId][3], pRowId).buildSql("select " + selectMap[pContextId][0] + " from " + selectMap[pContextId][1] + " " + selectMap[pContextId][2], "1=2");
+    }
     else
         return "select 1 from person where 1=2";
 }
@@ -251,18 +293,38 @@ ContextUtils.getNameSql = function(pContextId, pRowId)
 /**
  * TODO: !!!temporary function until you can get fields from another Entity!!!
  */
-ContextUtils.getContextDataSql = function(pContextId, pRowId, pWithDate)
+ContextUtils.getContextDataSql = function(pContextId, pRowId, pWithDate, pActive, pWithState)
 {
     var selectMap = ContextUtils._getSelectMap()
     var cond = SqlCondition.begin();
     if (pRowId)
     {
-        cond.andPrepare(selectMap[pContextId][1] + "." + selectMap[pContextId][3], pRowId)
+        cond.andPrepare(selectMap[pContextId][1] + "." + selectMap[pContextId][4], pRowId)
+    }
+    
+    if (pActive != undefined)
+    {
+        var activeStates = selectMap[pContextId][8]
+        if(activeStates != null && activeStates.length > 0)
+        {
+            var condSub = SqlCondition.begin();
+            activeStates.forEach(function (state) 
+            {   
+                if(pActive)
+                    condSub.orPrepare(selectMap[pContextId][1] + "." + selectMap[pContextId][7], state)
+                else
+                    condSub.andPrepare(selectMap[pContextId][1] + "." + selectMap[pContextId][7], state, "# != ?")
+            });
+            cond.andSqlCondition(condSub);   
+        }
     }
-
     var dateColumn = "";
     if (pWithDate === true)
-        dateColumn = ", " + selectMap[pContextId][4];
+        dateColumn = ", " + selectMap[pContextId][5];
+    
+    var stateColumn = "";
+    if (pWithState === true)
+        stateColumn = ", " + selectMap[pContextId][7];
 
-    return cond.buildSql("select " + selectMap[pContextId][2] + ", " + selectMap[pContextId][0] + dateColumn + " from " + selectMap[pContextId][1], "1=1");
+    return cond.buildSql("select " + selectMap[pContextId][3] + ", " + selectMap[pContextId][0] + dateColumn + stateColumn +  " from " + selectMap[pContextId][1] + " " + selectMap[pContextId][2], "1=1");
 }
diff --git a/process/Keyword_lib/process.js b/process/Keyword_lib/process.js
index 3c150d05ed7e111d2531dc3ef03177a27a88a082..a4527c2594eb3c43724bfa790cb6de3ffd803294 100644
--- a/process/Keyword_lib/process.js
+++ b/process/Keyword_lib/process.js
@@ -1,3 +1,4 @@
+import("system.logging");
 import("system.vars");
 import("system.SQLTYPES");
 import("system.db");
@@ -166,6 +167,28 @@ KeywordUtils.getEntryNamesByContainer = function(pContainerName)
     return list;
 };
 
+
+/**
+* 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
+* 
+* @param {String} pContainerName name of the keyword container for filtering
+* 
+* @return {String[]} translated titles as 1D-Array
+*/
+KeywordUtils.getEntryNamesAndIdsByContainer = function(pContainerName)
+{
+    var sql = SqlCondition.begin()
+                          .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", pContainerName)
+                          .buildSql("select AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID, AB_KEYWORD_ENTRY.TITLE from AB_KEYWORD_ENTRY", null, "order by AB_KEYWORD_ENTRY.SORTING asc, AB_KEYWORD_ENTRY.TITLE asc")
+                          
+    var list = db.table(sql);
+    for(var i = 0; i<list.length; i = i + 1)
+        list[i][1] = translate.text(list[i][1]);
+    
+    return list;
+};
+
 /**
  * object that provides featrues for a single keyword attribute; initalizes itself on creation with a specific keyword-attribute
  * 
@@ -217,6 +240,29 @@ LanguageKeywordUtils.getResolvedTitleSqlPart = function(pDbFieldName, pLocale)
     return db.translateStatement(resSql);
 };
 
+/**
+ * returns a specific name (translated) - this is normally the view-value of a language
+ * 
+ * @param {String} key id value of the language where the view-value shall be searched
+ *
+ * @return {String} representation of the translated name 
+ * 
+ */
+LanguageKeywordUtils.getViewValue = function(key)
+{
+    if (!key)
+        return "";
+    
+    var sql = SqlCondition.begin()
+    .andPrepare("AB_LANGUAGE.ISO3", key)
+    .buildSql("select AB_LANGUAGE.NAME_LATIN from AB_LANGUAGE");
+    var originalTitle = db.cell(sql);
+    if (originalTitle == "")
+        return "";
+    var translatedTitle = translate.text(originalTitle);
+    return translatedTitle;
+};
+
 
 /**
  * provides methods for interactions with legcy keywords
diff --git a/process/StandardObject_lib/StandardObject_lib.aod b/process/StandardObject_lib/StandardObject_lib.aod
new file mode 100644
index 0000000000000000000000000000000000000000..ae58a214e827cd23f98a3fd6bc43dfd6a230a3a6
--- /dev/null
+++ b/process/StandardObject_lib/StandardObject_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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.0">
+  <name>StandardObject_lib</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <documentation>%aditoprj%/process/StandardObject_lib/documentation.adoc</documentation>
+  <process>%aditoprj%/process/StandardObject_lib/process.js</process>
+  <variants>
+    <element>LIBRARY</element>
+  </variants>
+</process>
diff --git a/process/StandardObject_lib/documentation.adoc b/process/StandardObject_lib/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..894375807dd72b42d194052c09c553dbab27367d
--- /dev/null
+++ b/process/StandardObject_lib/documentation.adoc
@@ -0,0 +1,3 @@
+StandardObject_lib
+==================
+
diff --git a/process/StandardObject_lib/process.js b/process/StandardObject_lib/process.js
new file mode 100644
index 0000000000000000000000000000000000000000..52d5ba43de3bab4e62f9dd882bb9e4f165da0012
--- /dev/null
+++ b/process/StandardObject_lib/process.js
@@ -0,0 +1,305 @@
+import("system.logging");
+import("system.db");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+import("Contact_lib");
+
+function StandardObject (pObjectType, pObjectID, pScopeType, pScopeID) {
+    if (!this._isValidType("object", pObjectType))
+        throw new Error("StandardObject: Invalid object type")
+    if (!this._isValidType("scope", pScopeType))
+        throw new Error("StandardObject: Invalid scope type")
+    
+    this.objectType = pObjectType
+    this.objectID = pObjectID
+    this.scopeType = pScopeType
+    this.scopeID = pScopeID
+}
+
+StandardObject.CONST_OBJECT_ADDRESS = function () {
+    return "Address"
+}
+
+StandardObject.CONST_OBJECT_COMMUNICATION = function () {
+    return "Communication"
+}
+
+StandardObject.CONST_SCOPE_PERSON = function () {
+    return "Person"
+}
+
+StandardObject.CONST_SCOPE_ORGANISATION = function () {
+    return "Organisation"
+}
+
+StandardObject.prototype._isValidType = function (pFor, pType) {
+    var validObjectTypes = ["Address", "Communication"]
+    var validScopeTypes = ["Person", "Organisation"]
+    if (pFor === "object") {
+        return validObjectTypes.indexOf(pType) !== -1
+    } else if (pFor === "scope"){
+        return validScopeTypes.indexOf(pType) !== -1
+    } else {
+        return false;
+    }
+}
+
+/**
+ * Asserts the object type of this instance against the
+ * given type.
+ * 
+ * @throws Error if assertion fails.
+ */
+StandardObject.prototype._assertObjectType = function (pType) {
+    if (this.objectType !== pType)
+        throw new Error("Object assertion: Invalid type");
+}
+
+/**
+ * Asserts the scope type of this instance against the
+ * given type.
+ * 
+ * @throws Error if assertion fails.
+ */
+StandardObject.prototype._assertScopeType = function (pType) {
+    if (this.scopeType !== pType)
+        throw new Error("Scope assertion: Invalid type");
+}
+
+/**
+ * Asserts that the object ID is NOT null.
+ * 
+ * @throws Error if assertion fails.
+ */
+StandardObject.prototype._assertObjectIdNotNull = function () {
+    if (this.objectID === null)
+        throw new Error("Object assertion: ID is null");
+}
+
+/**
+ * Asserts that the scope ID is NOT null.
+ * 
+ * @throws Error if assertion fails.
+ */
+StandardObject.prototype._assertScopeIdNotNull = function () {
+    if (this.scopeID === null)
+        throw new Error("Scope assertion: ID is null");
+}
+
+/**
+ * Shall be executed in the `valueProcess` of the `ADDRESS_ID` in the
+ * `Person` entity. This function will take care about the standard address
+ * of the linked organisation.o
+ * 
+ * @param pSelectedOrganisationID The ID of the currently selected organisation.
+ * @return Standard address to apply to the field or null
+ * (if no standard address was found)
+ */
+StandardObject.prototype.onPersonValueChange = function (pSelectedOrganisationID) {
+    this._assertScopeIdNotNull();
+    
+    // Check if the organisation has an standard address
+    var addressID = this._getCompanyStandardAddress(pSelectedOrganisationID);
+    
+    return addressID;
+}
+
+/**
+ * Shall be executed on the `onDBInsert` process of the recordContainer
+ * of the object type (Address or Communication). This algorithm works
+ * on a "random" basis: Which object gets first inserted will get the
+ * place as standard.
+ */
+StandardObject.prototype.onObjectInsert = function () {
+    this._assertObjectIdNotNull();
+    this._assertScopeIdNotNull(); 
+    
+    if (this.objectType === StandardObject.CONST_OBJECT_ADDRESS()) {
+        this._onAddressInsert();
+    } else if (this.objectType === StandardObject.CONST_OBJECT_COMMUNICATION) {
+        this._onCommunicationInsert();
+    }
+}
+
+/**
+ * Shall be execute only on the `onDBInsert` process of the recordContainer
+ * of the `Address` entity. This will set the standard address on the
+ * contact if it's currently null.
+ */
+StandardObject.prototype._onAddressInsert = function () {
+    // Assert
+    this._assertObjectType(StandardObject.CONST_OBJECT_ADDRESS());
+    
+    if (!this._hasContactStandardAddress(this.scopeID)) {
+        this._setContactStandardAddress(this.objectID, this.scopeID);
+    }
+}
+
+StandardObject.prototype.onPersonUpdate = function (pOrganisationID) {
+    // Assert
+    this._assertScopeType(StandardObject.CONST_SCOPE_PERSON());
+    
+    var isOrganisationAddress = this._isOrganisationAddress(this.scopeID);
+    
+    if (isOrganisationAddress) {
+        // Update to new address of org
+        var addressID = this._getCompanyStandardAddress(pOrganisationID);
+        
+        this._setContactStandardAddress(addressID, this.scopeID);
+    }
+}
+
+StandardObject.prototype.onCommunicationInsert = function (pMediumID) {
+    // Assert
+    this._assertObjectType(StandardObject.CONST_OBJECT_COMMUNICATION());
+    this._assertObjectIdNotNull();
+    this._assertScopeIdNotNull();
+    
+    var mediumCategory = this._getMediumCategory(pMediumID);
+    
+    var hasStandard = this._hasStandardCommunicationByMedium(this.scopeID, mediumCategory);
+    if (!hasStandard) {
+        this._setStandardCommunication(this.objectID, 1);
+    }
+}
+
+StandardObject.prototype.onCommunicationUpdate = function (pMediumID) {
+    // Assert
+    this._assertObjectType(StandardObject.CONST_OBJECT_COMMUNICATION());
+    this._assertObjectIdNotNull();
+    this._assertScopeIdNotNull();
+    
+    this._setStandardCommunication(this.objectID, 0);
+    
+    var mediumCategory = this._getMediumCategory(pMediumID);
+    
+    var contactID = this._getContactIdByCommunication(this.objectID);
+    
+    var hasStandard = this._hasStandardCommunicationByMedium(contactID, mediumCategory);
+    if (!hasStandard)
+        this._setStandardCommunication(this.objectID, 1);
+}
+
+/**
+ * Checks if the given contact ID has any address ID set. If there is a standard
+ * address it will return `true`, otherwise `false`. This function asserts that
+ * it's currently working on a `Address` object.
+ * 
+ * @param pContactID Contact ID to check.
+ * @return If the contact ID has standard address.
+ */
+StandardObject.prototype._hasContactStandardAddress = function (pContactID) {
+    this._assertObjectType(StandardObject.CONST_OBJECT_ADDRESS());
+    
+    var databaseResult = db.cell("select ADDRESS_ID from CONTACT"
+        + " where CONTACTID = '" + pContactID + "'");
+    
+    return databaseResult !== "";
+}
+
+/**
+ * Will set the given address ID on the given contact ID. This function asserts
+ * that it's currently working on an `Address` object.
+ * 
+ * @param pAddressID New address ID to set on the contact.
+ * @param pContactID The contact ID to set the address ID on. 
+ */
+StandardObject.prototype._setContactStandardAddress = function (pAddressID, pContactID) {
+    // Assert.
+    this._assertObjectType(StandardObject.CONST_OBJECT_ADDRESS());
+    
+    // Update data.
+    db.updateData(
+        "CONTACT", 
+        ["ADDRESS_ID"], 
+        db.getColumnTypes("CONTACT", ["ADDRESS_ID"]), 
+        [pAddressID], 
+        "CONTACTID = '" + pContactID + "'");
+}
+
+/**
+ * Will return the standard address of the given organisation. If the organisation
+ * has no standard address set it will just return null.
+ * 
+ * @return Standard address of the organisation or null.
+ */
+StandardObject.prototype._getCompanyStandardAddress = function (pOrganisationID) {
+    var addressIdResult = db.cell("select ADDRESS_ID from CONTACT"
+        + " where ORGANISATION_ID = '" + pOrganisationID + "'"
+        + " and ADDRESS_ID is not null and PERSON_ID is null");
+    
+    if (addressIdResult === "")
+        return null;
+    return addressIdResult;
+}
+
+/**
+ * Checks if the given contact ID already has a standard set with the given medium
+ * category.
+ * 
+ * @param pContactID {String} Contact ID to check.
+ * @param pMediumCategory {String} Medium category to check.
+ * @return {Boolean} If the contact already has a standard addres with the given
+ * medium category.
+ */
+StandardObject.prototype._hasStandardCommunicationByMedium = function (pContactID, pMediumCategory) {   
+    var dbResult = db.array(db.COLUMN, "select CHAR_VALUE from COMMUNICATION"
+        + " left join AB_KEYWORD_ENTRY on KEYID = MEDIUM_ID"
+        + " left join AB_KEYWORD_ATTRIBUTERELATION on AB_KEYWORD_ENTRY_ID = AB_KEYWORD_ENTRYID and AB_KEYWORD_ATTRIBUTE_ID = '7250ff28-1d48-41cc-bb36-8c33ace341bb'"
+        + " where STANDARD = 1 and CONTACT_ID = '" + pContactID + "'");
+    
+    return dbResult.indexOf(pMediumCategory) !== -1;
+}
+
+/**
+ * Resolves the given pMediumID with the category.
+ * 
+ * @param pMediumID {String} ID of the medium to resolve.
+ * @return {String} Resovled category.
+ */
+StandardObject.prototype._getMediumCategory = function (pMediumID) {
+    var categories = KeywordUtils.getAttributeRelationsByKey(pMediumID, $KeywordRegistry.communicationMedium())
+    
+    return categories.category;
+}
+
+/**
+ * Will set the given communication ID as standard. (Will update the `STANDARD`
+ * column.)
+ * 
+ * @param pCommunicationID {String} The communication ID to set as standard.
+ * @param pValue {Number} 0 or 1 (boolean)
+ */
+StandardObject.prototype._setStandardCommunication = function (pCommunicationID, pValue) {
+    // Assert.
+    this._assertObjectType(StandardObject.CONST_OBJECT_COMMUNICATION());
+    
+    // Update data.
+    db.updateData(
+        "COMMUNICATION", 
+        ["STANDARD"], 
+        db.getColumnTypes("COMMUNICATION", ["STANDARD"]), 
+        [pValue], 
+        "COMMUNICATIONID = '" + pCommunicationID + "'");
+}
+
+/**
+ * Will return the Contact ID by the given communication ID.
+ * 
+ * @param pCommunicationID {String} Communication ID to get the contact ID for.
+ * @return The contact ID.
+ */
+StandardObject.prototype._getContactIdByCommunication = function (pCommunicationID) {
+    return db.cell("select CONTACT_ID from COMMUNICATION where COMMUNICATIONID = '" + pCommunicationID + "'");
+}
+
+StandardObject.prototype._isOrganisationAddress = function (pAddressID) {
+    var contactID = db.cell("select CONTACTID from CONTACT where ADDRESS_ID = '" + pAddressID + "'");
+    
+    if (contactID === "")
+        return false;
+    
+    var contactType = ContactUtils.getContactTypeByContactId(contactID);
+    
+    return contactType === 1;
+}
\ No newline at end of file