diff --git a/entity/Task_entity/entityfields/keywordpriority/children/containername_param/valueProcess.js b/.merge_file_a07900
similarity index 63%
rename from entity/Task_entity/entityfields/keywordpriority/children/containername_param/valueProcess.js
rename to .merge_file_a07900
index 8a4cee16039670b6963ac6920a03a81bf1a8ad43..167d3dc35f38110620b4eb5e6004b4c4454578f2 100644
--- a/entity/Task_entity/entityfields/keywordpriority/children/containername_param/valueProcess.js
+++ b/.merge_file_a07900
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.taskPriority());
\ No newline at end of file
+result.string($KeywordRegistry.addressType());
\ No newline at end of file
diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod
index 8a42653e859a888cca6db0bdfc78a369efe0631a..0b59d9d16b7f8277a23685ed180c0d909dca16af 100644
--- a/aliasDefinition/Data_alias/Data_alias.aod
+++ b/aliasDefinition/Data_alias/Data_alias.aod
@@ -90,48 +90,6 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
-              <entityFieldDb>
-                <name>STRENGTH</name>
-                <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="1" />
-                <size v="36" />
-                <scale v="0" />
-                <notNull v="false" />
-                <isUnique v="false" />
-                <index v="false" />
-                <documentation></documentation>
-                <title></title>
-                <description></description>
-              </entityFieldDb>
-              <entityFieldDb>
-                <name>WEAKNESS</name>
-                <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="1" />
-                <size v="36" />
-                <scale v="0" />
-                <notNull v="false" />
-                <isUnique v="false" />
-                <index v="false" />
-                <documentation></documentation>
-                <title></title>
-                <description></description>
-              </entityFieldDb>
-              <entityFieldDb>
-                <name>PRICE_POLITICS</name>
-                <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="1" />
-                <size v="36" />
-                <scale v="0" />
-                <notNull v="false" />
-                <isUnique v="false" />
-                <index v="false" />
-                <documentation></documentation>
-                <title></title>
-                <description></description>
-              </entityFieldDb>
               <entityFieldDb>
                 <name>ORGANISATIONID</name>
                 <dbName></dbName>
@@ -1798,6 +1756,34 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>PAYMENTTERMS</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DELIVERYTERMS</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -2177,6 +2163,20 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>REASONS</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="498" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -3792,11 +3792,11 @@
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>OBJECT2_TYPE</name>
+                <name>OBJECT1_ROWID</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="12" />
-                <size v="63" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="true" />
                 <isUnique v="false" />
@@ -3806,27 +3806,27 @@
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>OBJECT1_TYPE</name>
+                <name>AB_OBJECTRELATIONID</name>
                 <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="12" />
-                <size v="50" />
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="true" />
-                <isUnique v="false" />
+                <isUnique v="true" />
                 <index v="false" />
                 <documentation></documentation>
                 <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>OBJECT1_ROWID</name>
+                <name>AB_OBJECTRELATIONTYPE1</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
                 <columnType v="1" />
                 <size v="36" />
                 <scale v="0" />
-                <notNull v="true" />
+                <notNull v="false" />
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
@@ -3834,14 +3834,14 @@
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>AB_OBJECTRELATIONID</name>
+                <name>AB_OBJECTRELATIONTYPE2</name>
                 <dbName></dbName>
-                <primaryKey v="true" />
+                <primaryKey v="false" />
                 <columnType v="1" />
                 <size v="36" />
                 <scale v="0" />
-                <notNull v="true" />
-                <isUnique v="true" />
+                <notNull v="false" />
+                <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
                 <title></title>
@@ -4852,6 +4852,96 @@
               </entityFieldDb>
             </entityFields>
           </entityDb>
+          <entityDb>
+            <name>AB_OBJECTRELATIONTYPE</name>
+            <dbName></dbName>
+            <idColumn>AB_OBJECTRELATIONTYPEID</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>AB_OBJECTRELATIONTYPEID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SIDE</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>RELATION_TYPE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>OBJECT_TYPE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>RELATION_TITLE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="80" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
         </entities>
       </entityGroup>
     </aliasDefDb>
diff --git a/entity/ActivityLink_entity/ActivityLink_entity.aod b/entity/ActivityLink_entity/ActivityLink_entity.aod
index 11c38d879285d7d47b064deeb374b118fc8d9ab9..66ef8d1d9a82512eba48632122aba7839aef8bba 100644
--- a/entity/ActivityLink_entity/ActivityLink_entity.aod
+++ b/entity/ActivityLink_entity/ActivityLink_entity.aod
@@ -15,7 +15,7 @@
     <entityField>
       <name>OBJECT_TYPE</name>
       <title>Object type</title>
-      <consumer>Contexts</consumer>
+      <consumer>Context</consumer>
       <linkedContext>Context</linkedContext>
       <displayValueProcess>%aditoprj%/entity/ActivityLink_entity/entityfields/object_type/displayValueProcess.js</displayValueProcess>
     </entityField>
@@ -31,7 +31,7 @@
       <valueProcess>%aditoprj%/entity/ActivityLink_entity/entityfields/activity_id/valueProcess.js</valueProcess>
     </entityField>
     <entityProvider>
-      <name>Link</name>
+      <name>Links</name>
       <fieldType>DEPENDENCY_IN</fieldType>
       <targetContextField>OBJECT_TYPE</targetContextField>
       <targetIdField>OBJECT_ROWID</targetIdField>
@@ -68,7 +68,7 @@
       </children>
     </entityConsumer>
     <entityConsumer>
-      <name>Contexts</name>
+      <name>Context</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
diff --git a/entity/Activity_entity/Activity_entity.aod b/entity/Activity_entity/Activity_entity.aod
index b8bf5ba734410d5145cf7c6e18fd7e3610dcae2a..02008d0638d724fe6a149f808b3c27dc8b0d868d 100644
--- a/entity/Activity_entity/Activity_entity.aod
+++ b/entity/Activity_entity/Activity_entity.aod
@@ -37,7 +37,7 @@
     <entityField>
       <name>CATEGORY</name>
       <title>Category</title>
-      <consumer>KeywordCategory</consumer>
+      <consumer>KeywordCategories</consumer>
       <mandatory v="false" />
       <groupable v="true" />
     </entityField>
@@ -46,6 +46,7 @@
       <title>Subject</title>
       <mandatory v="true" />
       <groupable v="false" />
+      <onValueChange>%aditoprj%/entity/Activity_entity/entityfields/subject/onValueChange.js</onValueChange>
     </entityField>
     <entityParameter>
       <name>RowId_param</name>
@@ -158,7 +159,7 @@
       <dependency>
         <name>dependency</name>
         <entityName>ActivityLink_entity</entityName>
-        <fieldName>Link</fieldName>
+        <fieldName>Links</fieldName>
       </dependency>
       <children>
         <entityParameter>
@@ -178,8 +179,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/keyworddirections/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -267,16 +269,20 @@
       <dependency>
         <name>dependency</name>
         <entityName>ModuleTree_entity</entityName>
-        <fieldName>TreeProvider</fieldName>
+        <fieldName>TreeProviders</fieldName>
       </dependency>
       <children>
         <entityParameter>
-          <name>ContextName</name>
-          <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/moduletrees/children/contextname/valueProcess.js</valueProcess>
+          <name>ContextName_param</name>
+          <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/moduletrees/children/contextname_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+          <mandatory v="false" />
         </entityParameter>
         <entityParameter>
-          <name>ID</name>
-          <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/moduletrees/children/id/valueProcess.js</valueProcess>
+          <name>ID_param</name>
+          <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/moduletrees/children/id_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+          <mandatory v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -286,12 +292,15 @@
       <title>New activity</title>
       <onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
       <iconId>NEON:HISTORY</iconId>
+      <tooltip>New activity</tooltip>
+      <tooltipProcess>%aditoprj%/entity/Activity_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
     </entityActionField>
     <entityActionField>
       <name>newTask</name>
       <fieldType>ACTION</fieldType>
       <title>New task</title>
       <onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
+      <actionOrder v="1" />
       <iconId>VAADIN:TASKS</iconId>
     </entityActionField>
     <entityParameter>
@@ -317,7 +326,7 @@
       <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/parent_context/valueProcess.js</valueProcess>
     </entityField>
     <entityConsumer>
-      <name>KeywordCategory</name>
+      <name>KeywordCategories</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
@@ -326,8 +335,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
-          <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/keywordcategory/children/containername_param/valueProcess.js</valueProcess>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/keywordcategories/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="true" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -348,12 +358,12 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>objectRowId_param</name>
-          <triggerRecalculation v="true" />
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
         </entityParameter>
         <entityParameter>
-          <name>objectType_param</name>
-          <triggerRecalculation v="true" />
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
@@ -362,6 +372,7 @@
       <fieldType>ACTION</fieldType>
       <title>New offer</title>
       <onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/newoffer/onActionProcess.js</onActionProcess>
+      <actionOrder v="0" />
       <iconId>VAADIN:CART</iconId>
     </entityActionField>
     <entityConsumer>
@@ -380,7 +391,6 @@
       <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/Activity_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/Activity_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <onDBInsert>%aditoprj%/entity/Activity_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBDelete>%aditoprj%/entity/Activity_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
       <linkInformation>
         <linkInformation>
diff --git a/entity/Activity_entity/afterOperatingState.js b/entity/Activity_entity/afterOperatingState.js
index e2a61f97758bb5de2d74741e1feeec6b5b4d17e8..86428a9e4fb03c37531d0e845989459a4e88843a 100644
--- a/entity/Activity_entity/afterOperatingState.js
+++ b/entity/Activity_entity/afterOperatingState.js
@@ -1,19 +1,15 @@
-//import("system.logging");
-//import("system.util");
-//import("system.db");
-//import("system.neon");
-//import("system.vars");
-//import("Context_lib");
-//
-//if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW 
-//    && vars.exists("$param.RowId_param") && vars.get("$param.RowId_param")
-//    && vars.exists("$param.ObjectId_param") && vars.get("$param.ObjectId_param"))
-//{
-//    logging.log(vars.get("$field.ACTIVITYID"))
-//    neon.addRecord(null, "Links", {
-//        "OBJECT_TYPE" : vars.get("$param.ObjectId_param"), 
-//        "OBJECT_ROWID" : vars.get("$param.RowId_param"),
-//        "ACTIVITY_ID" : vars.getString("$field.ACTIVITYID"),
-//        "ActivityId_param" : vars.getString("$field.ACTIVITYID")
-//    });
-//}
\ No newline at end of file
+import("system.util");
+import("system.db");
+import("system.neon");
+import("system.vars");
+import("Context_lib");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW 
+    && vars.exists("$param.RowId_param") && vars.get("$param.RowId_param")
+    && vars.exists("$param.ObjectId_param") && vars.get("$param.ObjectId_param"))
+{
+    neon.addRecord(null, "Links", {
+        "OBJECT_TYPE" : vars.get("$param.ObjectId_param"), 
+        "OBJECT_ROWID" : vars.get("$param.RowId_param")
+    });
+}
\ No newline at end of file
diff --git a/entity/Activity_entity/entityfields/attributes/children/objecttype_param/valueProcess.js b/entity/Activity_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e8b4e72e74a0a4696ff39e83135aa6100ef908c0
--- /dev/null
+++ b/entity/Activity_entity/entityfields/attributes/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/keywordcategory/children/containername_param/valueProcess.js b/entity/Activity_entity/entityfields/keywordcategories/children/containername_param/valueProcess.js
similarity index 100%
rename from entity/Activity_entity/entityfields/keywordcategory/children/containername_param/valueProcess.js
rename to entity/Activity_entity/entityfields/keywordcategories/children/containername_param/valueProcess.js
diff --git a/entity/Organisation_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js b/entity/Activity_entity/entityfields/link/children/activityid_param/valueProcess.js
similarity index 50%
rename from entity/Organisation_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js
rename to entity/Activity_entity/entityfields/link/children/activityid_param/valueProcess.js
index bcfda44fe71eac93b3f8c11cc0c85a496f2cd51c..a8267b62060b4bd30cedaba4713f4421a6e6f9ff 100644
--- a/entity/Organisation_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js
+++ b/entity/Activity_entity/entityfields/link/children/activityid_param/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("system.result");
 
-result.string(vars.get("$field.ORGANISATIONID"));
\ No newline at end of file
+result.string(vars.get("$field.ACTIVITYID"));
\ No newline at end of file
diff --git a/entity/Activity_entity/entityfields/moduletrees/children/contextname/valueProcess.js b/entity/Activity_entity/entityfields/moduletrees/children/contextname_param/valueProcess.js
similarity index 100%
rename from entity/Activity_entity/entityfields/moduletrees/children/contextname/valueProcess.js
rename to entity/Activity_entity/entityfields/moduletrees/children/contextname_param/valueProcess.js
diff --git a/entity/Activity_entity/entityfields/moduletrees/children/id/valueProcess.js b/entity/Activity_entity/entityfields/moduletrees/children/id_param/valueProcess.js
similarity index 100%
rename from entity/Activity_entity/entityfields/moduletrees/children/id/valueProcess.js
rename to entity/Activity_entity/entityfields/moduletrees/children/id_param/valueProcess.js
diff --git a/entity/Activity_entity/entityfields/newactivity/tooltipProcess.js b/entity/Activity_entity/entityfields/newactivity/tooltipProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c71e677c22663c2295e524aa7f3ed3dd571724d7
--- /dev/null
+++ b/entity/Activity_entity/entityfields/newactivity/tooltipProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.string(translate.text("New activity"));
\ No newline at end of file
diff --git a/entity/Activity_entity/entityfields/subject/onValueChange.js b/entity/Activity_entity/entityfields/subject/onValueChange.js
new file mode 100644
index 0000000000000000000000000000000000000000..86428a9e4fb03c37531d0e845989459a4e88843a
--- /dev/null
+++ b/entity/Activity_entity/entityfields/subject/onValueChange.js
@@ -0,0 +1,15 @@
+import("system.util");
+import("system.db");
+import("system.neon");
+import("system.vars");
+import("Context_lib");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW 
+    && vars.exists("$param.RowId_param") && vars.get("$param.RowId_param")
+    && vars.exists("$param.ObjectId_param") && vars.get("$param.ObjectId_param"))
+{
+    neon.addRecord(null, "Links", {
+        "OBJECT_TYPE" : vars.get("$param.ObjectId_param"), 
+        "OBJECT_ROWID" : vars.get("$param.RowId_param")
+    });
+}
\ No newline at end of file
diff --git a/entity/Activity_entity/recordcontainers/db/onDBInsert.js b/entity/Activity_entity/recordcontainers/db/onDBInsert.js
deleted file mode 100644
index 309f19972fbe819442e918970e9c80d38c1a764f..0000000000000000000000000000000000000000
--- a/entity/Activity_entity/recordcontainers/db/onDBInsert.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import("system.util");
-import("system.db");
-import("system.neon");
-import("system.vars");
-import("Context_lib");
-
-if (vars.exists("$param.RowId_param") && vars.get("$param.RowId_param")
-    && vars.exists("$param.ObjectId_param") && vars.get("$param.ObjectId_param"))
-{
-    var rowIds = vars.get("$param.RowId_param");
-    if (/^\[.*\]$/.test(rowIds))
-        rowIds = JSON.parse(rowIds);
-    else 
-        rowIds = [rowIds];
-    rowIds.forEach(function (rowId) 
-    {
-        //TODO: remove this and use neon.addRecord
-        db.insertData(
-            "ACTIVITYLINK",
-            ["ACTIVITYLINKID", "OBJECT_TYPE", "OBJECT_ROWID", "ACTIVITY_ID"],
-            null,
-            [util.getNewUUID(), vars.get("$param.ObjectId_param"), rowId, vars.getString("$field.ACTIVITYID")]);
-    });
-}
\ No newline at end of file
diff --git a/entity/AddressType_entity/AddressType_entity.aod b/entity/AddressType_entity/AddressType_entity.aod
index 8a71a164f322a8284003fcc21c1be45bc740a181..c55a30f4a0d81b59839dc21f9641881fe7c7ba5b 100644
--- a/entity/AddressType_entity/AddressType_entity.aod
+++ b/entity/AddressType_entity/AddressType_entity.aod
@@ -25,20 +25,19 @@
         <entityDependency>
           <name>b6ddc934-51ac-43a5-8aa9-7239423ea14d</name>
           <entityName>Address_entity</entityName>
-          <fieldName>KeywordAddressType</fieldName>
+          <fieldName>KeywordAddressTypes</fieldName>
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
-          <name>usageFilter_param</name>
-          <expose v="true" />
+          <name>UsageFilter_param</name>
           <mandatory v="true" />
         </entityParameter>
       </children>
     </entityProvider>
     <entityParameter>
-      <name>usageFilter_param</name>
+      <name>UsageFilter_param</name>
       <title></title>
       <expose v="true" />
       <description>PARAMETER</description>
diff --git a/entity/Address_entity/Address_entity.aod b/entity/Address_entity/Address_entity.aod
index bec846d517c94052f44fbb05d122c665f9473c33..06638b363e56b50ae7a83ff2c589a3feefd638d4 100644
--- a/entity/Address_entity/Address_entity.aod
+++ b/entity/Address_entity/Address_entity.aod
@@ -26,7 +26,7 @@
       <name>ADDR_TYPE</name>
       <documentation>%aditoprj%/entity/Address_entity/entityfields/addr_type/documentation.adoc</documentation>
       <title>Addresstype</title>
-      <consumer>KeywordAddressType</consumer>
+      <consumer>KeywordAddressTypes</consumer>
     </entityField>
     <entityField>
       <name>BUILDINGNO</name>
@@ -106,7 +106,6 @@
     <entityProvider>
       <name>ContactAddresses</name>
       <fieldType>DEPENDENCY_IN</fieldType>
-      <recordContainer>db</recordContainer>
       <dependencies>
         <entityDependency>
           <name>efdb2f19-ab41-4f49-941a-843610e2b31b</name>
@@ -160,8 +159,8 @@
       <children>
         <entityParameter>
           <name>ContactType_param</name>
-          <code>%aditoprj%/entity/Address_entity/entityfields/organisationaddressesbycontact/children/contacttype_param/code.js</code>
-          <expose v="true" />
+          <valueProcess>%aditoprj%/entity/Address_entity/entityfields/organisationaddressesbycontact/children/contacttype_param/valueProcess.js</valueProcess>
+          <expose v="false" />
           <description>TODO: expose auf false. aktuell wird der Code nicht ausgeführt, wenn Expose false ist.</description>
         </entityParameter>
       </children>
@@ -187,7 +186,7 @@
       <description>PARAMETER</description>
     </entityParameter>
     <entityConsumer>
-      <name>KeywordAddressType</name>
+      <name>KeywordAddressTypes</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
@@ -196,7 +195,7 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Address_entity/entityfields/keywordaddresstype/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
diff --git a/entity/Address_entity/entityfields/contactaddresses/children/contacttype_param/valueProcess.js b/entity/Address_entity/entityfields/contactaddresses/children/contacttype_param/valueProcess.js
index cfff5cf20d03af319fbf9a4bf833eeffa9c12062..805812e9e79c8e443c591c62a20738c9d27e4760 100644
--- a/entity/Address_entity/entityfields/contactaddresses/children/contacttype_param/valueProcess.js
+++ b/entity/Address_entity/entityfields/contactaddresses/children/contacttype_param/valueProcess.js
@@ -1,4 +1,2 @@
 import("system.result");
-import("Contact_lib");
-
-result.object(Contact.TYPES.Contact);
\ No newline at end of file
+result.object(2);
\ No newline at end of file
diff --git a/entity/Address_entity/entityfields/keywordaddresstype/children/usagefilter_param/valueProcess.js b/entity/Address_entity/entityfields/keywordaddresstypes/children/usagefilter_param/valueProcess.js
similarity index 100%
rename from entity/Address_entity/entityfields/keywordaddresstype/children/usagefilter_param/valueProcess.js
rename to entity/Address_entity/entityfields/keywordaddresstypes/children/usagefilter_param/valueProcess.js
diff --git a/entity/Address_entity/entityfields/organisationaddresses/children/contacttype_param/valueProcess.js b/entity/Address_entity/entityfields/organisationaddresses/children/contacttype_param/valueProcess.js
deleted file mode 100644
index fde2b2a8d47f3048cb4cef97a3abf226e84e375f..0000000000000000000000000000000000000000
--- a/entity/Address_entity/entityfields/organisationaddresses/children/contacttype_param/valueProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.result");
-import("Contact_lib");
-
-result.object(Contact.TYPES.Organisation);
\ No newline at end of file
diff --git a/entity/Address_entity/entityfields/organisationaddressesbycontact/children/contacttype_param/valueProcess.js b/entity/Address_entity/entityfields/organisationaddressesbycontact/children/contacttype_param/valueProcess.js
deleted file mode 100644
index fde2b2a8d47f3048cb4cef97a3abf226e84e375f..0000000000000000000000000000000000000000
--- a/entity/Address_entity/entityfields/organisationaddressesbycontact/children/contacttype_param/valueProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.result");
-import("Contact_lib");
-
-result.object(Contact.TYPES.Organisation);
\ No newline at end of file
diff --git a/entity/AnyContact_entity/AnyContact_entity.aod b/entity/AnyContact_entity/AnyContact_entity.aod
index 66244e2a5aca0e2b79364c016963cae6cafdebfb..257efb852ac4719838bf3ae3bdbb57e50d907413 100644
--- a/entity/AnyContact_entity/AnyContact_entity.aod
+++ b/entity/AnyContact_entity/AnyContact_entity.aod
@@ -73,17 +73,17 @@ See ContactUtils.getRelationTypeByPersOrg for possible values</description>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/AnyContact_entity/entityfields/contact/children/ContactId_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/AnyContact_entity/entityfields/contact/children/contactid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
     <entityConsumer>
-      <name>Organisation</name>
+      <name>Organisations</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
         <entityName>Organisation_entity</entityName>
-        <fieldName>Organisation</fieldName>
+        <fieldName>Organisations</fieldName>
       </dependency>
       <children>
         <entityParameter>
diff --git a/entity/AnyContact_entity/entityfields/contact/children/contactid_param/valueProcess.js b/entity/AnyContact_entity/entityfields/contacts/children/contactid_param/valueProcess.js
similarity index 100%
rename from entity/AnyContact_entity/entityfields/contact/children/contactid_param/valueProcess.js
rename to entity/AnyContact_entity/entityfields/contacts/children/contactid_param/valueProcess.js
diff --git a/entity/AnyContact_entity/entityfields/organisation/children/contactid_param/valueProcess.js b/entity/AnyContact_entity/entityfields/organisations/children/contactid_param/valueProcess.js
similarity index 100%
rename from entity/AnyContact_entity/entityfields/organisation/children/contactid_param/valueProcess.js
rename to entity/AnyContact_entity/entityfields/organisations/children/contactid_param/valueProcess.js
diff --git a/entity/AppointmentLink_entity/AppointmentLink_entity.aod b/entity/AppointmentLink_entity/AppointmentLink_entity.aod
index ce1a58465cd502e769ba858d2d2799012510d73a..6735e3aea9f373838767882dcdbe2c17b462db7d 100644
--- a/entity/AppointmentLink_entity/AppointmentLink_entity.aod
+++ b/entity/AppointmentLink_entity/AppointmentLink_entity.aod
@@ -23,7 +23,7 @@
     </entityField>
     <entityField>
       <name>OBJECTTYPE</name>
-      <consumer>Contexts</consumer>
+      <consumer>Context</consumer>
       <linkedContext>Context_context</linkedContext>
       <displayValueProcess>%aditoprj%/entity/AppointmentLink_entity/entityfields/objecttype/displayValueProcess.js</displayValueProcess>
     </entityField>
@@ -34,7 +34,7 @@
       <description>PARAMETER</description>
     </entityParameter>
     <entityProvider>
-      <name>Link</name>
+      <name>Links</name>
       <fieldType>DEPENDENCY_IN</fieldType>
       <targetContextField>OBJECTTYPE</targetContextField>
       <targetIdField>OBJECTID</targetIdField>
@@ -55,7 +55,7 @@
       </children>
     </entityProvider>
     <entityConsumer>
-      <name>Contexts</name>
+      <name>Context</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
diff --git a/entity/Appointment_entity/Appointment_entity.aod b/entity/Appointment_entity/Appointment_entity.aod
index bb3d110a87e6550539481b8e30315705c12f6c3b..2a7d91fb2c3264ca5f9b1d2db10a2cd16b5aa739 100644
--- a/entity/Appointment_entity/Appointment_entity.aod
+++ b/entity/Appointment_entity/Appointment_entity.aod
@@ -151,7 +151,7 @@
       <dependency>
         <name>dependency</name>
         <entityName>AppointmentLink_entity</entityName>
-        <fieldName>Link</fieldName>
+        <fieldName>Links</fieldName>
       </dependency>
       <children>
         <entityParameter>
diff --git a/entity/AttributeRelation_entity/AttributeRelation_entity.aod b/entity/AttributeRelation_entity/AttributeRelation_entity.aod
index 8bd2d5bfe361486d888545be13b09e131401bfc4..614c1bf06c695442d732f155394ac8a5dd09821c 100644
--- a/entity/AttributeRelation_entity/AttributeRelation_entity.aod
+++ b/entity/AttributeRelation_entity/AttributeRelation_entity.aod
@@ -95,19 +95,9 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
-      <children>
-        <entityParameter>
-          <name>objectRowId_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>objectType_param</name>
-          <expose v="true" />
-        </entityParameter>
-      </children>
     </entityProvider>
     <entityParameter>
-      <name>objectRowId_param</name>
+      <name>ObjectRowId_param</name>
       <expose v="true" />
       <description>PARAMETER</description>
     </entityParameter>
@@ -122,7 +112,7 @@
       <state>EDITABLE</state>
     </entityField>
     <entityParameter>
-      <name>objectType_param</name>
+      <name>ObjectType_param</name>
       <expose v="true" />
       <description>PARAMETER</description>
     </entityParameter>
@@ -145,7 +135,7 @@
       </onValueChangeTypes>
     </entityField>
     <entityConsumer>
-      <name>Keyword</name>
+      <name>Keywords</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
@@ -154,8 +144,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
-          <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/keyword/children/containername_param/valueProcess.js</valueProcess>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/keywords/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
           <triggerRecalculation v="true" />
         </entityParameter>
       </children>
@@ -164,7 +155,7 @@
       <name>MEMO_VALUE</name>
     </entityField>
     <entityParameter>
-      <name>filteredAttributeIds_param</name>
+      <name>FilteredAttributeIds_param</name>
       <expose v="true" />
       <description>PARAMETER</description>
     </entityParameter>
@@ -178,15 +169,13 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>objectType_param</name>
+          <name>ObjectType_param</name>
           <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/specificattribute/children/objecttype_param/valueProcess.js</valueProcess>
-          <expose v="true" />
           <triggerRecalculation v="true" />
         </entityParameter>
         <entityParameter>
-          <name>filteredAttributeIds_param</name>
+          <name>FilteredAttributeIds_param</name>
           <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/specificattribute/children/filteredattributeids_param/valueProcess.js</valueProcess>
-          <expose v="true" />
           <triggerRecalculation v="true" />
         </entityParameter>
       </children>
diff --git a/entity/AttributeRelation_entity/entityfields/attribute_parent_id/possibleItemsProcess.js b/entity/AttributeRelation_entity/entityfields/attribute_parent_id/possibleItemsProcess.js
index eccc2a26904d34b493843fe84d3d562a7df71d9d..816f528b0cb03b2f412293c272955a49bfae48eb 100644
--- a/entity/AttributeRelation_entity/entityfields/attribute_parent_id/possibleItemsProcess.js
+++ b/entity/AttributeRelation_entity/entityfields/attribute_parent_id/possibleItemsProcess.js
@@ -2,4 +2,4 @@ import("system.vars");
 import("system.result");
 import("Attribute_lib");
         
-result.object(AttributeUtil.getPossibleAttributes(vars.get("$param.objectType_param"), true));
+result.object(AttributeUtil.getPossibleAttributes(vars.get("$param.ObjectType_param"), true));
diff --git a/entity/AttributeRelation_entity/entityfields/keyword/children/containername_param/valueProcess.js b/entity/AttributeRelation_entity/entityfields/keywords/children/containername_param/valueProcess.js
similarity index 86%
rename from entity/AttributeRelation_entity/entityfields/keyword/children/containername_param/valueProcess.js
rename to entity/AttributeRelation_entity/entityfields/keywords/children/containername_param/valueProcess.js
index 6c3a508f22bdf1ba7bb7401970a8d6d2d4ab808a..0ad606c237d8cdb5310fa2818e3edd9d14d6ab93 100644
--- a/entity/AttributeRelation_entity/entityfields/keyword/children/containername_param/valueProcess.js
+++ b/entity/AttributeRelation_entity/entityfields/keywords/children/containername_param/valueProcess.js
@@ -6,4 +6,4 @@ var attrKeywordSelect = "select KEYWORD_CONTAINER from AB_ATTRIBUTE";
 attrKeywordSelect = SqlCondition.begin()
     .andPrepareVars("AB_ATTRIBUTE.AB_ATTRIBUTEID", "$field.AB_ATTRIBUTE_ID")
     .buildSql(attrKeywordSelect);
-result.string(db.cell(attrKeywordSelect));
\ No newline at end of file
+result.string(db.cell(attrKeywordSelect));
diff --git a/entity/AttributeRelation_entity/entityfields/object_rowid/valueProcess.js b/entity/AttributeRelation_entity/entityfields/object_rowid/valueProcess.js
index 5f2f5a7b0d369b3b45e91afe9248bfd1660c966a..4e3d5a6e480d22383542cbb74c8bc5c9dd2c733d 100644
--- a/entity/AttributeRelation_entity/entityfields/object_rowid/valueProcess.js
+++ b/entity/AttributeRelation_entity/entityfields/object_rowid/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
-import("system.result");
-import("system.neon");
-
-if (vars.exists("$param.objectRowId_param") && vars.get("$param.objectRowId_param") != null)
-    result.string(vars.get("$param.objectRowId_param"));
\ No newline at end of file
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if (vars.exists("$param.ObjectRowId_param") && vars.get("$param.ObjectRowId_param") != null)
+    result.string(vars.get("$param.ObjectRowId_param"));
\ No newline at end of file
diff --git a/entity/AttributeRelation_entity/entityfields/object_type/valueProcess.js b/entity/AttributeRelation_entity/entityfields/object_type/valueProcess.js
index a2239bdb8c4a4c4cc92b319a4e90a2a64260b97e..2ce3f28be961ff856705b9dc395e33eb2976f0f2 100644
--- a/entity/AttributeRelation_entity/entityfields/object_type/valueProcess.js
+++ b/entity/AttributeRelation_entity/entityfields/object_type/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
-import("system.result");
-import("system.neon");
-
-if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.objectType_param") && vars.get("$param.objectType_param") != null)
-    result.string(vars.get("$param.objectType_param"));
\ No newline at end of file
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param") != null)
+    result.string(vars.get("$param.ObjectType_param"));
\ No newline at end of file
diff --git a/entity/AttributeRelation_entity/entityfields/specificattribute/children/filteredattributeids_param/valueProcess.js b/entity/AttributeRelation_entity/entityfields/specificattribute/children/filteredattributeids_param/valueProcess.js
index 823de404382c671455ed572865742aabb9d50ee7..0f10b7075d3dbe124dd9048f5ae7b3d092616329 100644
--- a/entity/AttributeRelation_entity/entityfields/specificattribute/children/filteredattributeids_param/valueProcess.js
+++ b/entity/AttributeRelation_entity/entityfields/specificattribute/children/filteredattributeids_param/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("system.result");
 
-result.string(vars.exists("$param.filteredAttributeIds_param") ? vars.get("$param.filteredAttributeIds_param") : "");
\ No newline at end of file
+result.string(vars.exists("$param.FilteredAttributeIds_param") ? vars.get("$param.FilteredAttributeIds_param") : "");
diff --git a/entity/AttributeRelation_entity/entityfields/specificattribute/children/objecttype_param/valueProcess.js b/entity/AttributeRelation_entity/entityfields/specificattribute/children/objecttype_param/valueProcess.js
index 987f30bf1e3214329ff1c5a07c18abca106f0a10..5c2ba1e99bd66da1cbc065319b7644302880879f 100644
--- a/entity/AttributeRelation_entity/entityfields/specificattribute/children/objecttype_param/valueProcess.js
+++ b/entity/AttributeRelation_entity/entityfields/specificattribute/children/objecttype_param/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("system.result");
 
-result.string(vars.exists("$param.objectType_param") ? vars.get("$param.objectType_param") : "");
\ No newline at end of file
+result.string(vars.exists("$param.ObjectType_param") ? vars.get("$param.ObjectType_param") : "");
diff --git a/entity/AttributeRelation_entity/entityfields/specificattributes/children/filteredattributeids_param/valueProcess.js b/entity/AttributeRelation_entity/entityfields/specificattributes/children/filteredattributeids_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..71802ad6ba34158c3344111a02c912789ae97f79
--- /dev/null
+++ b/entity/AttributeRelation_entity/entityfields/specificattributes/children/filteredattributeids_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.exists("$param.FilteredAttributeIds_param") ? vars.get("$param.FilteredAttributeIds_param") : "");
\ No newline at end of file
diff --git a/entity/AttributeRelation_entity/entityfields/specificattributes/children/objecttype_param/valueProcess.js b/entity/AttributeRelation_entity/entityfields/specificattributes/children/objecttype_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..26ba533642c539c7d4a4f1cf7dd8d306a6d3903e
--- /dev/null
+++ b/entity/AttributeRelation_entity/entityfields/specificattributes/children/objecttype_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.exists("$param.ObjectType_param") ? vars.get("$param.ObjectType_param") : "");
\ No newline at end of file
diff --git a/entity/AttributeRelation_entity/recordcontainers/db/conditionProcess.js b/entity/AttributeRelation_entity/recordcontainers/db/conditionProcess.js
index f48af1586cd6331e94c372f69656df270f40b9e5..8d6879931dd4a6fb087e62d8204c557958c33726 100644
--- a/entity/AttributeRelation_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/AttributeRelation_entity/recordcontainers/db/conditionProcess.js
@@ -6,11 +6,11 @@ import("Sql_lib");
 
 
 var cond = SqlCondition.begin()
-                   .andPrepareVars("AB_ATTRIBUTERELATION.OBJECT_ROWID", "$param.objectRowId_param");
+                   .andPrepareVars("AB_ATTRIBUTERELATION.OBJECT_ROWID", "$param.ObjectRowId_param");
                    
-if (vars.exists("$param.filteredAttributeIds_param") && vars.get("$param.filteredAttributeIds_param"))
+if (vars.exists("$param.FilteredAttributeIds_param") && vars.get("$param.FilteredAttributeIds_param"))
 {
-    var filteredIds = JSON.parse(vars.get("$param.filteredAttributeIds_param"));
+    var filteredIds = JSON.parse(vars.get("$param.FilteredAttributeIds_param"));
     var filteredIdsCondition = new SqlCondition();
     
     filteredIds.forEach(function(id) 
diff --git a/entity/AttributeUsage_entity/AttributeUsage_entity.aod b/entity/AttributeUsage_entity/AttributeUsage_entity.aod
index f35db01ad23996692b004f21314bcd8d1784d692..cac04071f268c81751675bb703394199c6c99d30 100644
--- a/entity/AttributeUsage_entity/AttributeUsage_entity.aod
+++ b/entity/AttributeUsage_entity/AttributeUsage_entity.aod
@@ -12,7 +12,7 @@
     <entityField>
       <name>OBJECT_TYPE</name>
       <title>Module</title>
-      <consumer>Contexts</consumer>
+      <consumer>Context</consumer>
     </entityField>
     <entityField>
       <name>AB_ATTRIBUTEUSAGEID</name>
@@ -24,7 +24,7 @@
       <valueProcess>%aditoprj%/entity/AttributeUsage_entity/entityfields/ab_attribute_id/valueProcess.js</valueProcess>
     </entityField>
     <entityProvider>
-      <name>specificAttribute</name>
+      <name>SpecificAttribute</name>
       <fieldType>DEPENDENCY_IN</fieldType>
       <recordContainer>db</recordContainer>
       <dependencies>
@@ -35,15 +35,9 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
-      <children>
-        <entityParameter>
-          <name>attributeId_param</name>
-          <expose v="true" />
-        </entityParameter>
-      </children>
     </entityProvider>
     <entityParameter>
-      <name>attributeId_param</name>
+      <name>AttributeId_param</name>
       <expose v="true" />
       <description>PARAMETER</description>
     </entityParameter>
@@ -62,7 +56,7 @@
       <onValidation>%aditoprj%/entity/AttributeUsage_entity/entityfields/max_count/onValidation.js</onValidation>
     </entityField>
     <entityConsumer>
-      <name>Contexts</name>
+      <name>Context</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
diff --git a/entity/Attribute_entity/Attribute_entity.aod b/entity/Attribute_entity/Attribute_entity.aod
index c204aef676ae39a7c6598da1397f70a48d887fd4..2b1e324f9f3d58cc2025df5178f5562af93f0f13 100644
--- a/entity/Attribute_entity/Attribute_entity.aod
+++ b/entity/Attribute_entity/Attribute_entity.aod
@@ -4,6 +4,7 @@
   <title>Attribute</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Attribute_entity/documentation.adoc</documentation>
+  <afterOperatingState>%aditoprj%/entity/Attribute_entity/afterOperatingState.js</afterOperatingState>
   <iconId>VAADIN:TAG</iconId>
   <titleProcess>%aditoprj%/entity/Attribute_entity/titleProcess.js</titleProcess>
   <recordContainer>db</recordContainer>
@@ -21,11 +22,12 @@
     <entityField>
       <name>ATTRIBUTE_TYPE</name>
       <title>Type</title>
-      <consumer>KeywordAttributeType</consumer>
+      <consumer>KeywordAttributeTypes</consumer>
       <mandatory v="true" />
       <stateProcess>%aditoprj%/entity/Attribute_entity/entityfields/attribute_type/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/attribute_type/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/Attribute_entity/entityfields/attribute_type/displayValueProcess.js</displayValueProcess>
+      <onValueChange>%aditoprj%/entity/Attribute_entity/entityfields/attribute_type/onValueChange.js</onValueChange>
     </entityField>
     <entityField>
       <name>AB_ATTRIBUTEID</name>
@@ -52,14 +54,15 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>attrParentId_param</name>
+          <name>AttrParentId_param</name>
           <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/attributechildren/children/attrparentid_param/valueProcess.js</valueProcess>
+          <expose v="false" />
           <triggerRecalculation v="true" />
-          <mandatory v="false" />
         </entityParameter>
         <entityParameter>
-          <name>attrParentType_param</name>
+          <name>AttrParentType_param</name>
           <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/attributechildren/children/attrparenttype_param/valueProcess.js</valueProcess>
+          <expose v="false" />
           <triggerRecalculation v="true" />
         </entityParameter>
       </children>
@@ -76,15 +79,9 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
-      <children>
-        <entityParameter>
-          <name>attrParentId_param</name>
-          <expose v="true" />
-        </entityParameter>
-      </children>
     </entityProvider>
     <entityParameter>
-      <name>attrParentId_param</name>
+      <name>AttrParentId_param</name>
       <expose v="true" />
       <description>PARAMETER</description>
     </entityParameter>
@@ -95,12 +92,13 @@
       <dependency>
         <name>dependency</name>
         <entityName>AttributeUsage_entity</entityName>
-        <fieldName>specificAttribute</fieldName>
+        <fieldName>SpecificAttribute</fieldName>
       </dependency>
       <children>
         <entityParameter>
-          <name>attributeId_param</name>
+          <name>AttributeId_param</name>
           <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/attributeusages/children/attributeid_param/valueProcess.js</valueProcess>
+          <expose v="false" />
           <triggerRecalculation v="true" />
         </entityParameter>
       </children>
@@ -113,7 +111,7 @@
       <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/attribute_active/valueProcess.js</valueProcess>
     </entityField>
     <entityConsumer>
-      <name>KeywordAttributeType</name>
+      <name>KeywordAttributeTypes</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
@@ -122,8 +120,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
-          <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/keywordattributetype/children/containername_param/valueProcess.js</valueProcess>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/keywordattributetypes/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -142,12 +141,12 @@
       <stateProcess>%aditoprj%/entity/Attribute_entity/entityfields/keyword_container/stateProcess.js</stateProcess>
     </entityField>
     <entityParameter>
-      <name>attrParentType_param</name>
+      <name>AttrParentType_param</name>
       <expose v="true" />
       <description>PARAMETER</description>
     </entityParameter>
     <entityParameter>
-      <name>objectType_param</name>
+      <name>ObjectType_param</name>
       <expose v="true" />
       <description>PARAMETER</description>
     </entityParameter>
@@ -163,23 +162,13 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
-      <children>
-        <entityParameter>
-          <name>objectType_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>filteredAttributeIds_param</name>
-          <expose v="true" />
-        </entityParameter>
-      </children>
     </entityProvider>
     <entityField>
       <name>FULL_ATTRIBUTE_NAME</name>
       <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/full_attribute_name/valueProcess.js</valueProcess>
     </entityField>
     <entityParameter>
-      <name>filteredAttributeIds_param</name>
+      <name>FilteredAttributeIds_param</name>
       <expose v="true" />
       <description>PARAMETER</description>
     </entityParameter>
@@ -206,7 +195,6 @@
       <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/Attribute_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/Attribute_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <onDBInsert>%aditoprj%/entity/Attribute_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBDelete>%aditoprj%/entity/Attribute_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
       <linkInformation>
         <linkInformation>
diff --git a/entity/Attribute_entity/afterOperatingState.js b/entity/Attribute_entity/afterOperatingState.js
new file mode 100644
index 0000000000000000000000000000000000000000..30104d6d3f51863d93968038d55720caf4d3b768
--- /dev/null
+++ b/entity/Attribute_entity/afterOperatingState.js
@@ -0,0 +1,25 @@
+import("system.util");
+import("system.db");
+import("system.neon");
+import("system.vars");
+import("Context_lib");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW 
+    && vars.exists("$param.attrParentId_param") && vars.get("$param.attrParentId_param"))
+{
+    var parentId = vars.get("$param.attrParentId_param");
+    var attributeId = vars.get("$field.AB_ATTRIBUTEID");
+    
+    var usageSql = SqlCondition.begin()
+        .andPrepare("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", parentId)
+        .buildSql("select OBJECT_TYPE from AB_ATTRIBUTEUSAGE", "1=0");
+    var usages = db.array(db.COLUMN, usageSql);
+
+    //preset the usages with the ones from the parent
+    usages.forEach(function (usage) 
+    {
+        neon.addRecord(null, "AttributeUsages", {
+            "OBJECT_TYPE" : usage
+        });
+    });
+}
\ No newline at end of file
diff --git a/entity/Attribute_entity/entityfields/attribute_type/onValueChange.js b/entity/Attribute_entity/entityfields/attribute_type/onValueChange.js
new file mode 100644
index 0000000000000000000000000000000000000000..1e41dcc648582d40537797bbf22e7d475b5424a4
--- /dev/null
+++ b/entity/Attribute_entity/entityfields/attribute_type/onValueChange.js
@@ -0,0 +1,8 @@
+import("system.neon");
+import("system.vars");
+import("Attribute_lib");
+import("Entity_lib");
+
+var type = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.ATTRIBUTE_TYPE")) || "";
+if (type.trim() != $AttributeTypes.KEYWORD && vars.get("$field.KEYWORD_CONTAINER"))
+    neon.setFieldValue("$field.KEYWORD_CONTAINER", "");
\ No newline at end of file
diff --git a/entity/Attribute_entity/entityfields/attributechildren/children/attrparentid_param/valueProcess.js b/entity/Attribute_entity/entityfields/attributechildren/children/attrparentid_param/valueProcess.js
index b0b8a8a60f836bf10861191025d415dcd27122b8..f2318723e88440808277d20753657fb7674a0d0f 100644
--- a/entity/Attribute_entity/entityfields/attributechildren/children/attrparentid_param/valueProcess.js
+++ b/entity/Attribute_entity/entityfields/attributechildren/children/attrparentid_param/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("system.result");
 
-result.string(vars.getString("$field.AB_ATTRIBUTEID"));
\ No newline at end of file
+result.string(vars.getString("$field.AB_ATTRIBUTEID"));
diff --git a/entity/Attribute_entity/entityfields/attributechildren/children/attrparenttype_param/valueProcess.js b/entity/Attribute_entity/entityfields/attributechildren/children/attrparenttype_param/valueProcess.js
index cbb5a62f5fedf49496fd6787ba7671c936bc24c0..fe18eca06c7f87d798bd3e58c7726058b5bf049f 100644
--- a/entity/Attribute_entity/entityfields/attributechildren/children/attrparenttype_param/valueProcess.js
+++ b/entity/Attribute_entity/entityfields/attributechildren/children/attrparenttype_param/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("system.result");
 
-result.string(vars.getString("$field.ATTRIBUTE_TYPE").trim());
\ No newline at end of file
+result.string(vars.getString("$field.ATTRIBUTE_TYPE").trim());
diff --git a/entity/Attribute_entity/entityfields/attributeusages/children/attributeid_param/valueProcess.js b/entity/Attribute_entity/entityfields/attributeusages/children/attributeid_param/valueProcess.js
index c9a3d90e33382c689b93d232411e2a788f71c0e9..f7ac89492841d22780c3d2eb1d38d4b0aa7de476 100644
--- a/entity/Attribute_entity/entityfields/attributeusages/children/attributeid_param/valueProcess.js
+++ b/entity/Attribute_entity/entityfields/attributeusages/children/attributeid_param/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("system.result");
 
-result.string(vars.get("$field.AB_ATTRIBUTEID"));
\ No newline at end of file
+result.string(vars.get("$field.AB_ATTRIBUTEID"));
diff --git a/entity/Attribute_entity/entityfields/keyword_container/stateProcess.js b/entity/Attribute_entity/entityfields/keyword_container/stateProcess.js
index eed48d6bc1c8b5253f3c6d29e6923253a1f6df90..205bd328d1c49c73a48ab3c4cf39e8d7cdc8ee05 100644
--- a/entity/Attribute_entity/entityfields/keyword_container/stateProcess.js
+++ b/entity/Attribute_entity/entityfields/keyword_container/stateProcess.js
@@ -1,12 +1,13 @@
-import("system.neon");
-import("system.vars");
-import("system.result");
-import("Attribute_lib");
-
-var fieldState;
-if (vars.get("$field.ATTRIBUTE_TYPE") == $AttributeTypes.KEYWORD || true) //TODO use the correct condition when updating the state is possible
-    fieldState = neon.COMPONENTSTATE_AUTO;
-else
-    fieldState = neon.COMPONENTSTATE_INVISIBLE;
-
+import("system.logging");
+import("system.neon");
+import("system.vars");
+import("system.result");
+import("Attribute_lib");
+
+var fieldState;
+if (vars.get("$field.ATTRIBUTE_TYPE").trim() == $AttributeTypes.KEYWORD)
+    fieldState = neon.COMPONENTSTATE_EDITABLE;
+else
+    fieldState = neon.COMPONENTSTATE_DISABLED;
+
 result.string(fieldState);
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/keywordprobability/children/containername_param/valueProcess.js b/entity/Attribute_entity/entityfields/keywordattributetypes/children/containername_param/valueProcess.js
similarity index 61%
rename from entity/Offer_entity/entityfields/keywordprobability/children/containername_param/valueProcess.js
rename to entity/Attribute_entity/entityfields/keywordattributetypes/children/containername_param/valueProcess.js
index b5612781a16cf17e988af9ad4c1f375ea2abd119..fa56a9436e690bf5b268572f48d31efa2f1f2c48 100644
--- a/entity/Offer_entity/entityfields/keywordprobability/children/containername_param/valueProcess.js
+++ b/entity/Attribute_entity/entityfields/keywordattributetypes/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.offerProbability());
\ No newline at end of file
+result.string($KeywordRegistry.attributeType());
diff --git a/entity/Attribute_entity/recordcontainers/db/conditionProcess.js b/entity/Attribute_entity/recordcontainers/db/conditionProcess.js
index 3ed5587eb64e97091d33e3297dc1eb785b7d0c6a..b6c5e92cacc1dcf517fb4e9140a5cf2ba0cfca80 100644
--- a/entity/Attribute_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/Attribute_entity/recordcontainers/db/conditionProcess.js
@@ -6,19 +6,19 @@ import("Attribute_lib");
 
 var condition = "1 = 2";
 
-var objectType = vars.exists("$param.objectType_param") && vars.get("$param.objectType_param");
+var objectType = vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param");
 if (objectType)  //if there's an objectType, it comes from the AttributeRelation entity
 {
     var filteredAttributes = [];
-    if (vars.exists("$param.filteredAttributeIds_param") && vars.get("$param.filteredAttributeIds_param"))
-        filteredAttributes = JSON.parse(vars.get("$param.filteredAttributeIds_param"));
+    if (vars.exists("$param.FilteredAttributeIds_param") && vars.get("$param.FilteredAttributeIds_param"))
+        filteredAttributes = JSON.parse(vars.get("$param.FilteredAttributeIds_param"));
     
     var ids = AttributeUtil.getPossibleAttributes(objectType, false, filteredAttributes);
     condition = "AB_ATTRIBUTE.AB_ATTRIBUTEID in ('" + ids.join("','") + "')";
 } 
 else 
 {
-    var type = vars.exists("$param.attrParentType_param") && vars.get("$param.attrParentType_param");
+    var type = vars.exists("$param.AttrParentType_param") && vars.get("$param.AttrParentType_param");
     if (type != $AttributeTypes.COMBOVALUE)
         condition = SqlCondition.begin()
             .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.GROUP)
@@ -26,12 +26,12 @@ else
 
     if (type == $AttributeTypes.COMBO)
         condition = SqlCondition.begin()
-            .andPrepareVars("AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID", "$param.attrParentId_param")
+            .andPrepareVars("AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID", "$param.AttrParentId_param")
             .build();
 
-    var parentId = vars.exists("$param.attrParentId_param") && vars.get("$param.attrParentId_param");
+    var parentId = vars.exists("$param.AttrParentId_param") && vars.get("$param.AttrParentId_param");
     if (parentId)
-        condition = "AB_ATTRIBUTE.AB_ATTRIBUTEID in ('" + AttributeUtil.getAllChildren(vars.getString("$param.attrParentId_param")).join("','") + "')";
+        condition = "AB_ATTRIBUTE.AB_ATTRIBUTEID in ('" + AttributeUtil.getAllChildren(vars.getString("$param.AttrParentId_param")).join("','") + "')";
     else if (!type)
         condition = "";
     
diff --git a/entity/Attribute_entity/recordcontainers/db/onDBInsert.js b/entity/Attribute_entity/recordcontainers/db/onDBInsert.js
deleted file mode 100644
index 9abf4505f0765bd027b54de2c259db0da57b5704..0000000000000000000000000000000000000000
--- a/entity/Attribute_entity/recordcontainers/db/onDBInsert.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import("system.db");
-import("system.neon");
-import("system.result");
-import("system.vars");
-import("system.util");
-import("Sql_lib");
-
-if (vars.exists("$param.attrParentId_param") && vars.get("$param.attrParentId_param"))
-{
-    var parentId = vars.get("$param.attrParentId_param");
-    var attributeId = vars.get("$field.AB_ATTRIBUTEID");
-    var cols = [
-        "AB_ATTRIBUTEUSAGEID", 
-        "OBJECT_TYPE",
-        "AB_ATTRIBUTE_ID"
-    ];
-    var usageSql = SqlCondition.begin()
-        .andPrepare("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", parentId)
-        .buildSql("select " + cols.join(", ") + " from AB_ATTRIBUTEUSAGE", "1=0");
-    var usages = db.table(usageSql);
-
-    var table = "AB_ATTRIBUTEUSAGE";
-    var types = db.getColumnTypes(table, cols);
-    
-    var toInsert = usages.map(function (row) 
-    {
-        return [table, cols, types, [util.getNewUUID(), row[1], attributeId]];
-    });
-    
-    db.inserts(toInsert);
-}
\ No newline at end of file
diff --git a/entity/Communication_entity/Communication_entity.aod b/entity/Communication_entity/Communication_entity.aod
index 37c88b676b90aa55ce875b420bdf2f91211b93aa..0837932c1001a4dd843ea571660cbea08b9a1eb5 100644
--- a/entity/Communication_entity/Communication_entity.aod
+++ b/entity/Communication_entity/Communication_entity.aod
@@ -21,7 +21,7 @@
     <entityField>
       <name>MEDIUM_ID</name>
       <title>Medium</title>
-      <consumer>KeywordMedium</consumer>
+      <consumer>KeywordMediums</consumer>
       <mandatory v="true" />
       <onValueChange>%aditoprj%/entity/Communication_entity/entityfields/medium_id/onValueChange.js</onValueChange>
       <onValueChangeTypes>
@@ -182,7 +182,7 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
       <description>PARAMETER</description>
     </entityParameter>
     <entityConsumer>
-      <name>KeywordMedium</name>
+      <name>KeywordMediums</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
@@ -191,8 +191,9 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
-          <valueProcess>%aditoprj%/entity/Communication_entity/entityfields/keywordmedium/children/containername_param/valueProcess.js</valueProcess>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Communication_entity/entityfields/keywordmediums/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
diff --git a/entity/Organisation_entity/entityfields/keywordweakness/children/containername_param/valueProcess.js b/entity/Communication_entity/entityfields/keywordmediums/children/containername_param/valueProcess.js
similarity index 59%
rename from entity/Organisation_entity/entityfields/keywordweakness/children/containername_param/valueProcess.js
rename to entity/Communication_entity/entityfields/keywordmediums/children/containername_param/valueProcess.js
index 9973fed72b013f63d5400a1bd09de489911df93c..7ce6a565f5020f011ad66d13e77b09d3a5efed75 100644
--- a/entity/Organisation_entity/entityfields/keywordweakness/children/containername_param/valueProcess.js
+++ b/entity/Communication_entity/entityfields/keywordmediums/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.salesprojectWeakness());
\ No newline at end of file
+result.string($KeywordRegistry.communicationMedium());
diff --git a/entity/Communication_entity/entityfields/medium_id/onValueChange.js b/entity/Communication_entity/entityfields/medium_id/onValueChange.js
index cb592a48f0bdac70740ca19a55b22dfbadf77acc..2befa48edce658cc2dacc6a4e081a1343b6f6a2b 100644
--- a/entity/Communication_entity/entityfields/medium_id/onValueChange.js
+++ b/entity/Communication_entity/entityfields/medium_id/onValueChange.js
@@ -1,8 +1,11 @@
-import("system.neon");
-import("system.vars");
-import("Entity_lib");
-
-var mediumId = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.MEDIUM_ID"));
-
-if (mediumId == "d08956b8-369e-4b65-88fa-1c37b3368ae3" && vars.get("$field.ADDR") == "") //medium == Internet
-    neon.setFieldValue("$field.ADDR", "https://");
\ No newline at end of file
+import("system.neon");
+import("system.vars");
+import("Entity_lib");
+
+var isInternet = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.MEDIUM_ID")) == "d08956b8-369e-4b65-88fa-1c37b3368ae3";
+var internetPreset = "https://";
+
+if (isInternet && vars.get("$field.ADDR") == "") //medium == Internet
+    neon.setFieldValue("$field.ADDR", internetPreset);
+else if (!isInternet && vars.get("$field.ADDR") == internetPreset)
+    neon.setFieldValue("$field.ADDR", "");
\ No newline at end of file
diff --git a/entity/Context_entity/Context_entity.aod b/entity/Context_entity/Context_entity.aod
index 15af48b45e3a5f290ed753245861f43ca339a116..025b0cdddb8bcdd9b697a97650dbd8dd1cd2ba20 100644
--- a/entity/Context_entity/Context_entity.aod
+++ b/entity/Context_entity/Context_entity.aod
@@ -13,13 +13,13 @@
         <entityDependency>
           <name>fcccd077-46c9-4d57-9d9f-27915e40dbce</name>
           <entityName>ObjectRelation_entity</entityName>
-          <fieldName>Contexts</fieldName>
+          <fieldName>Context</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
           <name>d713987f-1cf0-4c6c-8373-24d135d22dc8</name>
           <entityName>ActivityLink_entity</entityName>
-          <fieldName>Contexts</fieldName>
+          <fieldName>Context</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
@@ -52,13 +52,13 @@
         <entityDependency>
           <name>628bd4db-3b31-4337-88ac-1c000307836f</name>
           <entityName>AttributeUsage_entity</entityName>
-          <fieldName>Contexts</fieldName>
+          <fieldName>Context</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
           <name>64f5aca8-e756-4a6d-a7a3-89bdc67ddfb3</name>
           <entityName>AppointmentLink_entity</entityName>
-          <fieldName>Contexts</fieldName>
+          <fieldName>Context</fieldName>
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
diff --git a/entity/Contract_entity/Contract_entity.aod b/entity/Contract_entity/Contract_entity.aod
index 9aee7a44cbf820c395c66a545c9bb6777cf18a63..0d691e08620c9d63b4c75c55568c7e95c6ea133a 100644
--- a/entity/Contract_entity/Contract_entity.aod
+++ b/entity/Contract_entity/Contract_entity.aod
@@ -228,8 +228,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractpayments/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -243,8 +244,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractstates/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -258,8 +260,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contracttypes/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -281,14 +284,15 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>objectType_param</name>
-          <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
           <expose v="false" />
           <triggerRecalculation v="true" />
         </entityParameter>
         <entityParameter>
-          <name>objectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
+          <expose v="false" />
           <triggerRecalculation v="true" />
         </entityParameter>
       </children>
diff --git a/entity/Contract_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js b/entity/Contract_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js
index 6a986948950be876fd394dc2b62dcf465308140a..0cbf256ef501b81f0412f73d5cf28f40231c37d0 100644
--- a/entity/Contract_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js
+++ b/entity/Contract_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("system.result");
 
-result.string(vars.get("$field.CONTRACTID"));
\ No newline at end of file
+result.string(vars.get("$field.CONTRACTID"));
diff --git a/entity/Contract_entity/entityfields/attributes/children/objecttype_param/valueProcess.js b/entity/Contract_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
index 008915f61deac19ccdd40fff81701de63eb3b6a2..e8b4e72e74a0a4696ff39e83135aa6100ef908c0 100644
--- a/entity/Contract_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
+++ b/entity/Contract_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.result");
 import("Context_lib");
 
-result.string(ContextUtils.getCurrentContextId());
\ No newline at end of file
+result.string(ContextUtils.getCurrentContextId());
diff --git a/entity/Contract_entity/entityfields/contractpayments/children/containername_param/valueProcess.js b/entity/Contract_entity/entityfields/contractpayments/children/containername_param/valueProcess.js
index f17d453fcdc0a4cdd0830eac47ba7d7db0fea3db..b99d2d74ff1b4b0438d4221ab43252f2f327b269 100644
--- a/entity/Contract_entity/entityfields/contractpayments/children/containername_param/valueProcess.js
+++ b/entity/Contract_entity/entityfields/contractpayments/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.contractPayment());
\ No newline at end of file
+result.string($KeywordRegistry.contractPayment());
diff --git a/entity/Contract_entity/entityfields/contractstates/children/containername_param/valueProcess.js b/entity/Contract_entity/entityfields/contractstates/children/containername_param/valueProcess.js
index 8c1535d18c3a1b71fae6cd2c37224a17f9016ba4..f071a8b58d82501908de54b5cfc2376b958a9da4 100644
--- a/entity/Contract_entity/entityfields/contractstates/children/containername_param/valueProcess.js
+++ b/entity/Contract_entity/entityfields/contractstates/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.contractStatus());
\ No newline at end of file
+result.string($KeywordRegistry.contractStatus());
diff --git a/entity/Contract_entity/entityfields/contracttypes/children/containername_param/valueProcess.js b/entity/Contract_entity/entityfields/contracttypes/children/containername_param/valueProcess.js
index 8b185106748e306ba26e122862d4d33e49b447ec..6d492e72de90f22cd4b2ed07b753d46d455cac78 100644
--- a/entity/Contract_entity/entityfields/contracttypes/children/containername_param/valueProcess.js
+++ b/entity/Contract_entity/entityfields/contracttypes/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.contractType());
\ No newline at end of file
+result.string($KeywordRegistry.contractType());
diff --git a/entity/Countries_Entity/Countries_Entity.aod b/entity/Countries_Entity/Countries_Entity.aod
index 672fa2572514c9b665af4f87f7ed5db52f7c184a..2c137a620879d5892e1fee0a96da57ab0f77ea4c 100644
--- a/entity/Countries_Entity/Countries_Entity.aod
+++ b/entity/Countries_Entity/Countries_Entity.aod
@@ -13,7 +13,7 @@
       <recordContainer>db</recordContainer>
     </entityProvider>
     <entityProvider>
-      <name>ISO2_NAME</name>
+      <name>ISO2Name</name>
       <fieldType>DEPENDENCY_IN</fieldType>
       <dependencies>
         <entityDependency>
@@ -32,12 +32,12 @@
       <children>
         <entityParameter>
           <name>Key_param</name>
-          <valueProcess>%aditoprj%/entity/Countries_Entity/entityfields/iso2_name/children/key_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/Countries_Entity/entityfields/iso2name/children/key_param/valueProcess.js</valueProcess>
           <expose v="false" />
         </entityParameter>
         <entityParameter>
           <name>Value_param</name>
-          <valueProcess>%aditoprj%/entity/Countries_Entity/entityfields/iso2_name/children/value_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/Countries_Entity/entityfields/iso2name/children/value_param/valueProcess.js</valueProcess>
           <expose v="false" />
         </entityParameter>
       </children>
diff --git a/entity/Countries_Entity/entityfields/iso2_name2/children/key_param/code.js b/entity/Countries_Entity/entityfields/iso2_name2/children/key_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..ce35888708c4329a665a96045635891c38b79702
--- /dev/null
+++ b/entity/Countries_Entity/entityfields/iso2_name2/children/key_param/code.js
@@ -0,0 +1,2 @@
+import("system.result");
+result.string("ISO2");
\ No newline at end of file
diff --git a/entity/Countries_Entity/entityfields/iso2_name2/children/value_param/code.js b/entity/Countries_Entity/entityfields/iso2_name2/children/value_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..02118b507989b951950aed5724eeb78479f546cc
--- /dev/null
+++ b/entity/Countries_Entity/entityfields/iso2_name2/children/value_param/code.js
@@ -0,0 +1,2 @@
+import("system.result");
+result.string("NAME");
\ No newline at end of file
diff --git a/entity/Countries_Entity/entityfields/iso2_names/children/key_param/code.js b/entity/Countries_Entity/entityfields/iso2_names/children/key_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..ce35888708c4329a665a96045635891c38b79702
--- /dev/null
+++ b/entity/Countries_Entity/entityfields/iso2_names/children/key_param/code.js
@@ -0,0 +1,2 @@
+import("system.result");
+result.string("ISO2");
\ No newline at end of file
diff --git a/entity/Countries_Entity/entityfields/iso2_names/children/value_param/code.js b/entity/Countries_Entity/entityfields/iso2_names/children/value_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..02118b507989b951950aed5724eeb78479f546cc
--- /dev/null
+++ b/entity/Countries_Entity/entityfields/iso2_names/children/value_param/code.js
@@ -0,0 +1,2 @@
+import("system.result");
+result.string("NAME");
\ No newline at end of file
diff --git a/entity/Countries_Entity/entityfields/iso2name/children/key_param/valueProcess.js b/entity/Countries_Entity/entityfields/iso2name/children/key_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ce35888708c4329a665a96045635891c38b79702
--- /dev/null
+++ b/entity/Countries_Entity/entityfields/iso2name/children/key_param/valueProcess.js
@@ -0,0 +1,2 @@
+import("system.result");
+result.string("ISO2");
\ No newline at end of file
diff --git a/entity/Countries_Entity/entityfields/iso2name/children/value_param/valueProcess.js b/entity/Countries_Entity/entityfields/iso2name/children/value_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..02118b507989b951950aed5724eeb78479f546cc
--- /dev/null
+++ b/entity/Countries_Entity/entityfields/iso2name/children/value_param/valueProcess.js
@@ -0,0 +1,2 @@
+import("system.result");
+result.string("NAME");
\ No newline at end of file
diff --git a/entity/Countries_Entity/entityfields/iso2names/children/key_param/valueProcess.js b/entity/Countries_Entity/entityfields/iso2names/children/key_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ce35888708c4329a665a96045635891c38b79702
--- /dev/null
+++ b/entity/Countries_Entity/entityfields/iso2names/children/key_param/valueProcess.js
@@ -0,0 +1,2 @@
+import("system.result");
+result.string("ISO2");
\ No newline at end of file
diff --git a/entity/Countries_Entity/entityfields/iso2names/children/value_param/valueProcess.js b/entity/Countries_Entity/entityfields/iso2names/children/value_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..02118b507989b951950aed5724eeb78479f546cc
--- /dev/null
+++ b/entity/Countries_Entity/entityfields/iso2names/children/value_param/valueProcess.js
@@ -0,0 +1,2 @@
+import("system.result");
+result.string("NAME");
\ No newline at end of file
diff --git a/entity/KeywordAttributeRelation_entity/KeywordAttributeRelation_entity.aod b/entity/KeywordAttributeRelation_entity/KeywordAttributeRelation_entity.aod
index b14fc3e9812dad1b41c23f9b54eff190eaf862e7..e18e421f3ce600c7ef183072ec846efd4901952c 100644
--- a/entity/KeywordAttributeRelation_entity/KeywordAttributeRelation_entity.aod
+++ b/entity/KeywordAttributeRelation_entity/KeywordAttributeRelation_entity.aod
@@ -53,13 +53,14 @@
       </dependencies>
       <children>
         <entityParameter>
-          <name>keywordEntryId_param</name>
-          <expose v="true" />
+          <name>KeywordEntryId_param</name>
+          <triggerRecalculation v="false" />
+          <mandatory v="false" />
         </entityParameter>
       </children>
     </entityProvider>
     <entityParameter>
-      <name>containerName_param</name>
+      <name>ContainerName_param</name>
       <valueProcess>%aditoprj%/entity/KeywordAttributeRelation_entity/entityfields/containername_param/valueProcess.js</valueProcess>
       <triggerRecalculation v="true" />
       <mandatory v="false" />
@@ -71,21 +72,24 @@
       <dependency>
         <name>dependency</name>
         <entityName>KeywordAttribute_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
+        <fieldName>SpecificContainerKeyword</fieldName>
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/KeywordAttributeRelation_entity/entityfields/keywordattributes/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+          <triggerRecalculation v="false" />
         </entityParameter>
         <entityParameter>
-          <name>filterAlreadyUsedByEntryId_param</name>
+          <name>FilterAlreadyUsedByEntryId_param</name>
           <valueProcess>%aditoprj%/entity/KeywordAttributeRelation_entity/entityfields/keywordattributes/children/filteralreadyusedbyentryid_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
     <entityParameter>
-      <name>keywordEntryId_param</name>
+      <name>KeywordEntryId_param</name>
       <expose v="true" />
       <triggerRecalculation v="true" />
       <mandatory v="true" />
diff --git a/entity/KeywordAttributeRelation_entity/entityfields/keywordattributes/children/containername_param/valueProcess.js b/entity/KeywordAttributeRelation_entity/entityfields/keywordattributes/children/containername_param/valueProcess.js
index 04bac245422e16f11fa07dfd8ff7de51343d2148..3a71fd3b9c15160f718ce2bb30928efdbf35ea80 100644
--- a/entity/KeywordAttributeRelation_entity/entityfields/keywordattributes/children/containername_param/valueProcess.js
+++ b/entity/KeywordAttributeRelation_entity/entityfields/keywordattributes/children/containername_param/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("system.result");
 
-result.string(vars.get("$param.containerName_param"));
\ No newline at end of file
+result.string(vars.get("$param.containerName_param"));
diff --git a/entity/KeywordAttributeRelation_entity/entityfields/keywordattributes/children/filteralreadyusedbyentryid_param/valueProcess.js b/entity/KeywordAttributeRelation_entity/entityfields/keywordattributes/children/filteralreadyusedbyentryid_param/valueProcess.js
index f488dd168118d6d24130f83960ad4f4f59226a52..dcf07dae9bb02fe8d7f4acf9039b16fd99805e75 100644
--- a/entity/KeywordAttributeRelation_entity/entityfields/keywordattributes/children/filteralreadyusedbyentryid_param/valueProcess.js
+++ b/entity/KeywordAttributeRelation_entity/entityfields/keywordattributes/children/filteralreadyusedbyentryid_param/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("system.result");
 
-result.string(vars.get("$field.AB_KEYWORD_ENTRY_ID"));
\ No newline at end of file
+result.string(vars.get("$field.AB_KEYWORD_ENTRY_ID"));
diff --git a/entity/KeywordAttribute_entity/KeywordAttribute_entity.aod b/entity/KeywordAttribute_entity/KeywordAttribute_entity.aod
index 8796c265212fe95eae4441aecee375a740138196..5e4b0be7d206c8f070fe64eb845d13f33b8fd6bf 100644
--- a/entity/KeywordAttribute_entity/KeywordAttribute_entity.aod
+++ b/entity/KeywordAttribute_entity/KeywordAttribute_entity.aod
@@ -32,13 +32,13 @@
     <entityField>
       <name>TYPE</name>
       <title>Type</title>
-      <consumer>KeywordKeywordAttributeTypes</consumer>
+      <consumer>KeywordAttributeTypes</consumer>
       <mandatory v="true" />
     </entityField>
     <entityProvider>
-      <name>SpecificContainerKeywords</name>
+      <name>SpecificContainerKeyword</name>
       <fieldType>DEPENDENCY_IN</fieldType>
-      <documentation>%aditoprj%/entity/KeywordAttribute_entity/entityfields/specificcontainerkeywords/documentation.adoc</documentation>
+      <documentation>%aditoprj%/entity/KeywordAttribute_entity/entityfields/specificcontainerkeyword/documentation.adoc</documentation>
       <dependencies>
         <entityDependency>
           <name>1d11c064-1cf2-4f08-b842-9fa941ad3157</name>
@@ -49,30 +49,26 @@
       </dependencies>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>filterAlreadyUsedByEntryId_param</name>
-          <expose v="true" />
+          <name>ContainerName_param</name>
+          <triggerRecalculation v="false" />
         </entityParameter>
       </children>
     </entityProvider>
     <entityParameter>
-      <name>containerName_param</name>
+      <name>ContainerName_param</name>
       <expose v="true" />
       <triggerRecalculation v="true" />
       <description>PARAMETER</description>
     </entityParameter>
     <entityParameter>
-      <name>filterAlreadyUsedByEntryId_param</name>
+      <name>FilterAlreadyUsedByEntryId_param</name>
       <expose v="true" />
       <mandatory v="false" />
       <documentation>%aditoprj%/entity/KeywordAttribute_entity/entityfields/filteralreadyusedbyentryid_param/documentation.adoc</documentation>
       <description>PARAMETER</description>
     </entityParameter>
     <entityConsumer>
-      <name>KeywordKeywordAttributeTypes</name>
+      <name>KeywordAttributeTypes</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
@@ -81,8 +77,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
-          <valueProcess>%aditoprj%/entity/KeywordAttribute_entity/entityfields/keywordkeywordattributetypes/children/containername_param/valueProcess.js</valueProcess>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/KeywordAttribute_entity/entityfields/keywordattributetypes/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
diff --git a/entity/KeywordAttribute_entity/entityfields/keywordattributetype/children/containername_param/valueProcess.js b/entity/KeywordAttribute_entity/entityfields/keywordattributetype/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..286c720daa7ca679bc489aa75306c9e697210b12
--- /dev/null
+++ b/entity/KeywordAttribute_entity/entityfields/keywordattributetype/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.keywordAttributeType());
diff --git a/entity/Organisation_entity/entityfields/keywordstrenght/children/containername_param/valueProcess.js b/entity/KeywordAttribute_entity/entityfields/keywordattributetypes/children/containername_param/valueProcess.js
similarity index 59%
rename from entity/Organisation_entity/entityfields/keywordstrenght/children/containername_param/valueProcess.js
rename to entity/KeywordAttribute_entity/entityfields/keywordattributetypes/children/containername_param/valueProcess.js
index cae1ead3876117be7f9a2c2be4fcc91f3f3b5964..e52675c31d5faf2c260c05bd11438d29755121ca 100644
--- a/entity/Organisation_entity/entityfields/keywordstrenght/children/containername_param/valueProcess.js
+++ b/entity/KeywordAttribute_entity/entityfields/keywordattributetypes/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.salesprojectStrenght());
\ No newline at end of file
+result.string($KeywordRegistry.keywordAttributeType());
\ No newline at end of file
diff --git a/entity/KeywordAttribute_entity/entityfields/specificcontainerkeywords/documentation.adoc b/entity/KeywordAttribute_entity/entityfields/specificcontainerkeyword/documentation.adoc
similarity index 100%
rename from entity/KeywordAttribute_entity/entityfields/specificcontainerkeywords/documentation.adoc
rename to entity/KeywordAttribute_entity/entityfields/specificcontainerkeyword/documentation.adoc
diff --git a/entity/KeywordEntry_entity/KeywordEntry_entity.aod b/entity/KeywordEntry_entity/KeywordEntry_entity.aod
index 61a243030f198d4b0934d0914a12f70f8358c103..8b73d4bd76473e24f1d52d3063e8a0480ca26f9e 100644
--- a/entity/KeywordEntry_entity/KeywordEntry_entity.aod
+++ b/entity/KeywordEntry_entity/KeywordEntry_entity.aod
@@ -68,7 +68,7 @@
       <state>READONLY</state>
     </entityField>
     <entityParameter>
-      <name>containerName_param</name>
+      <name>ContainerName_param</name>
       <expose v="true" />
       <documentation>%aditoprj%/entity/KeywordEntry_entity/entityfields/containername_param/documentation.adoc</documentation>
     </entityParameter>
@@ -222,12 +222,6 @@
           <fieldName>KeywordStates</fieldName>
           <isConsumer v="false" />
         </entityDependency>
-        <entityDependency>
-          <name>59546343-9f48-4437-a829-e7715e860a7d</name>
-          <entityName>SalesprojectCompetition_entity</entityName>
-          <fieldName>KeywordWonLost</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
         <entityDependency>
           <name>e2041dea-8647-49e9-aacf-4481b75b76ff</name>
           <entityName>Stock_entity</entityName>
@@ -237,13 +231,13 @@
         <entityDependency>
           <name>403c40a4-f747-4e47-ad60-07334724d6fb</name>
           <entityName>KeywordAttribute_entity</entityName>
-          <fieldName>KeywordKeywordAttributeTypes</fieldName>
+          <fieldName>KeywordAttributeTypes</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
           <name>078bbd52-87fa-44cc-9902-04af935b5fbc</name>
           <entityName>Attribute_entity</entityName>
-          <fieldName>KeywordAttributeType</fieldName>
+          <fieldName>KeywordAttributeTypes</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
@@ -255,85 +249,97 @@
         <entityDependency>
           <name>a44375e9-917c-4db8-9aa8-de0625caf78f</name>
           <entityName>Activity_entity</entityName>
-          <fieldName>KeywordCategory</fieldName>
+          <fieldName>KeywordCategories</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
           <name>f442a641-4dff-4860-bf4c-cfddc054e075</name>
           <entityName>Offer_entity</entityName>
-          <fieldName>KeywordProbability</fieldName>
+          <fieldName>KeywordProbabilities</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
           <name>fa831dac-3287-422a-8f28-504fc525876a</name>
           <entityName>Communication_entity</entityName>
-          <fieldName>KeywordMedium</fieldName>
+          <fieldName>KeywordMediums</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>2ed3c1ee-0cae-4017-aaf2-49bf4307abc4</name>
+          <entityName>Address_entity</entityName>
+          <fieldName>KeywordAddressTypes</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
           <name>04b28ce6-a144-4c19-ac2d-4cfbc3568700</name>
           <entityName>Organisation_entity</entityName>
-          <fieldName>KeywordPrice_Politics</fieldName>
+          <fieldName>KeywordPricePolitics</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
           <name>f024df05-2faf-4447-9eed-ae31b329d542</name>
           <entityName>SalesprojectCompetition_entity</entityName>
-          <fieldName>KeywordPrice_Politics</fieldName>
+          <fieldName>KeywordPricePolitics</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
           <name>60840c28-9875-4e3e-8099-5ca208d58bbe</name>
           <entityName>Organisation_entity</entityName>
-          <fieldName>KeywordWeakness</fieldName>
+          <fieldName>KeywordWeaknesses</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
           <name>854148e2-2532-4562-b393-832819e8d462</name>
           <entityName>Organisation_entity</entityName>
-          <fieldName>KeywordStrenght</fieldName>
+          <fieldName>KeywordStrenghts</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
           <name>613d5861-0494-45f9-a839-a705347a68da</name>
           <entityName>SalesprojectCompetition_entity</entityName>
-          <fieldName>KeywordWeakness</fieldName>
+          <fieldName>KeywordWeaknesses</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
           <name>119d79d0-9e04-4dd0-80bb-0bc32eaae775</name>
           <entityName>SalesprojectCompetition_entity</entityName>
-          <fieldName>KeywordStrenght</fieldName>
+          <fieldName>KeywordStrenghts</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
           <name>6e2d164c-1ac7-4ed0-ad8f-7bfda1328493</name>
           <entityName>Salesproject_entity</entityName>
-          <fieldName>KeywordState</fieldName>
+          <fieldName>KeywordStates</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
           <name>3ca6d3c7-83d2-4761-bab4-50d2baecdbd6</name>
           <entityName>SalesprojectCompetition_entity</entityName>
-          <fieldName>KeywordPhase</fieldName>
+          <fieldName>KeywordPhases</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
           <name>f672b4a5-7d68-46c8-9834-4f706d0d8720</name>
           <entityName>Salesproject_entity</entityName>
-          <fieldName>KeywordPhase</fieldName>
+          <fieldName>KeywordPhases</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
           <name>1053a90d-574a-4ca2-b41d-42b513db0fd2</name>
           <entityName>Task_entity</entityName>
-          <fieldName>KeywordPriority</fieldName>
+          <fieldName>KeywordPriorities</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
           <name>bf9f7a07-dfb9-44d0-8f9b-d3814053683e</name>
           <entityName>SalesprojectCompetition_entity</entityName>
-          <fieldName>KeywordState</fieldName>
+          <fieldName>KeywordStates</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>ef8b9397-6292-42de-806e-5aaf3e3db5f3</name>
+          <entityName>Salesproject_entity</entityName>
+          <fieldName>KeywordWonLost</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
@@ -342,15 +348,27 @@
           <fieldName>KeywordProgress</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>36aa04c1-5361-4e40-a036-0546db596973</name>
+          <entityName>Offer_entity</entityName>
+          <fieldName>KeywordDeliveryTerm</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>7e12cbd6-3a2c-4bd8-bc66-5001c282b690</name>
+          <entityName>Offer_entity</entityName>
+          <fieldName>KeywordPaymentTerm</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
-          <name>onlyActives_param</name>
+          <name>OnlyActives_param</name>
           <valueProcess>%aditoprj%/entity/KeywordEntry_entity/entityfields/specificcontainerkeywords/children/onlyactives_param/valueProcess.js</valueProcess>
-          <expose v="true" />
+          <triggerRecalculation v="false" />
         </entityParameter>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <expose v="true" />
         </entityParameter>
       </children>
@@ -360,7 +378,7 @@
       <valueProcess>%aditoprj%/entity/KeywordEntry_entity/entityfields/title_translated/valueProcess.js</valueProcess>
     </entityField>
     <entityParameter>
-      <name>onlyActives_param</name>
+      <name>OnlyActives_param</name>
       <valueProcess>%aditoprj%/entity/KeywordEntry_entity/entityfields/onlyactives_param/valueProcess.js</valueProcess>
       <expose v="true" />
       <triggerRecalculation v="true" />
diff --git a/entity/KeywordEntry_entity/entityfields/specificcontainerkeywords/children/onlyactives_param/valueProcess.js b/entity/KeywordEntry_entity/entityfields/specificcontainerkeywords/children/onlyactives_param/valueProcess.js
index 0e7522714af4e73d87e977bb3e83b350461053b6..cdda594564ed7c18285a494edcae26c2f89cbcc9 100644
--- a/entity/KeywordEntry_entity/entityfields/specificcontainerkeywords/children/onlyactives_param/valueProcess.js
+++ b/entity/KeywordEntry_entity/entityfields/specificcontainerkeywords/children/onlyactives_param/valueProcess.js
@@ -1,2 +1,2 @@
 import("system.result");
-result.string("true");//TODO: provider-code is not executed correct (did not receive the value from here)
\ No newline at end of file
+result.string("true");//TODO: provider-code is not executed correct (did not receive the value from here)
diff --git a/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js b/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js
index 6be8b4e13cba7c2c1d210d3acd6e8c0b6dca61fd..4fb1ef2f327547a69afb2fe8d5e65cfa2dc1de00 100644
--- a/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js
@@ -3,9 +3,9 @@ import("system.db");
 import("system.result");
 import("Sql_lib");
 
-var cond = SqlCondition.begin().andPrepareVars("AB_KEYWORD_ENTRY.CONTAINER", "$param.containerName_param");
+var cond = SqlCondition.begin().andPrepareVars("AB_KEYWORD_ENTRY.CONTAINER", "$param.ContainerName_param");
 
-if (vars.get("$param.onlyActives_param") == "true")
+if (vars.get("$param.OnlyActives_param") == "true")
 {
     cond.andPrepare("AB_KEYWORD_ENTRY.ISACTIVE", "1");
 }
diff --git a/entity/Language_entity/Language_entity.aod b/entity/Language_entity/Language_entity.aod
index 29207002f6a1ead7e5d1b5d1e322817aa082edc1..e15560225faeb9ee919002ae6574978f1891c1ce 100644
--- a/entity/Language_entity/Language_entity.aod
+++ b/entity/Language_entity/Language_entity.aod
@@ -27,7 +27,7 @@
       <possibleItemsProcess>%aditoprj%/entity/Language_entity/entityfields/isactive/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
     <entityProvider>
-      <name>LanguagesISO3Code</name>
+      <name>ISO3Name</name>
       <fieldType>DEPENDENCY_IN</fieldType>
       <lookupIdfield>ISO3</lookupIdfield>
       <recordContainer>db</recordContainer>
diff --git a/entity/ModuleTree_entity/ModuleTree_entity.aod b/entity/ModuleTree_entity/ModuleTree_entity.aod
index 8aff9b18a14460074184ab44b37d932fc59a6783..53dcc4b3d10747a18d272dee3a93e584ccf42f5f 100644
--- a/entity/ModuleTree_entity/ModuleTree_entity.aod
+++ b/entity/ModuleTree_entity/ModuleTree_entity.aod
@@ -18,7 +18,7 @@
       <name>ICON</name>
     </entityField>
     <entityProvider>
-      <name>TreeProvider</name>
+      <name>TreeProviders</name>
       <fieldType>DEPENDENCY_IN</fieldType>
       <targetContextField>TYPE</targetContextField>
       <targetIdField>UID</targetIdField>
@@ -51,13 +51,13 @@
       <name>TYPE</name>
     </entityField>
     <entityParameter>
-      <name>ContextName</name>
+      <name>ContextName_param</name>
       <expose v="true" />
       <mandatory v="true" />
       <description>PARAMETER</description>
     </entityParameter>
     <entityParameter>
-      <name>ID</name>
+      <name>ID_param</name>
       <expose v="true" />
       <mandatory v="true" />
       <description>PARAMETER</description>
diff --git a/entity/ObjectRelation_entity/entityfields/keywordobjectrelationtype/children/containername_param/valueProcess.js b/entity/ObjectRelation_entity/entityfields/keywordobjectrelationtype/children/containername_param/valueProcess.js
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/entity/ObjectRelation_entity/entityfields/object1/children/objecttype_param/valueProcess.js b/entity/ObjectRelation_entity/entityfields/object1/children/objecttype_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..0e35811c9fc30b9f87c3e4dda4235787fb0066f7
--- /dev/null
+++ b/entity/ObjectRelation_entity/entityfields/object1/children/objecttype_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.OBJECT1_TYPE"))
\ No newline at end of file
diff --git a/entity/ObjectRelation_entity/entityfields/object2/children/objecttype_param/valueProcess.js b/entity/ObjectRelation_entity/entityfields/object2/children/objecttype_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e4c1084f9a07683a0ceaab1f42521b8a2819c3dc
--- /dev/null
+++ b/entity/ObjectRelation_entity/entityfields/object2/children/objecttype_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.OBJECT2_TYPE"))
\ No newline at end of file
diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod
index f1f4d1f9f065c2511818928d44082b132e12fdf9..ba77820ace7e27270b99d31f3d33ad729c9565ce 100644
--- a/entity/Offer_entity/Offer_entity.aod
+++ b/entity/Offer_entity/Offer_entity.aod
@@ -43,7 +43,7 @@
     <entityField>
       <name>PROBABILITY</name>
       <title>Probability</title>
-      <consumer>KeywordProbability</consumer>
+      <consumer>KeywordProbabilities</consumer>
     </entityField>
     <entityField>
       <name>CONTACT_ID</name>
@@ -92,7 +92,7 @@
     <entityField>
       <name>HEADER</name>
       <title>Cover letter</title>
-      <contentType>HTML</contentType>
+      <contentType>LONG_TEXT</contentType>
       <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/header/valueProcess.js</valueProcess>
     </entityField>
     <entityConsumer>
@@ -140,6 +140,7 @@
       <fieldType>ACTION</fieldType>
       <title>New offer version</title>
       <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/newofferversion/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CART</iconId>
     </entityActionField>
     <entityField>
       <name>NET</name>
@@ -200,6 +201,7 @@
       <fieldType>ACTION</fieldType>
       <title>Copy offer</title>
       <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/copyoffer/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:COPY</iconId>
     </entityActionField>
     <entityField>
       <name>VERSNR</name>
@@ -246,6 +248,7 @@
       <fieldType>ACTION</fieldType>
       <title>Print Offer</title>
       <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/printoffer/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:FILE_TEXT_O</iconId>
     </entityActionField>
     <entityField>
       <name>CONTACT_ORG_ID</name>
@@ -349,8 +352,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keywordcurrencies/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -364,8 +368,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keywordofferstates/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -374,6 +379,7 @@
       <fieldType>ACTION</fieldType>
       <title>Create receipt</title>
       <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/neworder/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:DOLLAR</iconId>
     </entityActionField>
     <entityConsumer>
       <name>Languages</name>
@@ -381,11 +387,11 @@
       <dependency>
         <name>dependency</name>
         <entityName>Language_entity</entityName>
-        <fieldName>LanguagesISO3Code</fieldName>
+        <fieldName>ISO3Name</fieldName>
       </dependency>
     </entityConsumer>
     <entityConsumer>
-      <name>KeywordProbability</name>
+      <name>KeywordProbabilities</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
@@ -394,8 +400,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keywordprobability/children/containername_param/valueProcess.js</valueProcess>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keywordprobabilities/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -425,6 +432,8 @@
       <title>New activity</title>
       <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
       <iconId>NEON:HISTORY</iconId>
+      <tooltip>New activity</tooltip>
+      <tooltipProcess>%aditoprj%/entity/Offer_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
     </entityActionField>
     <entityProvider>
       <name>ContactOffers</name>
@@ -436,6 +445,12 @@
           <fieldName>Offers</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>b308795f-3c81-4e60-99ca-3b5f8e82f62a</name>
+          <entityName>Organisation_entity</entityName>
+          <fieldName>Offers</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
@@ -508,6 +523,46 @@
       <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
       <iconId>VAADIN:TASKS</iconId>
     </entityActionField>
+    <entityField>
+      <name>PAYMENTTERMS</name>
+      <title>Payment term</title>
+      <consumer>KeywordPaymentTerm</consumer>
+    </entityField>
+    <entityField>
+      <name>DELIVERYTERMS</name>
+      <title>Deliveryspecification</title>
+      <consumer>KeywordDeliveryTerm</consumer>
+    </entityField>
+    <entityConsumer>
+      <name>KeywordPaymentTerm</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keywordpaymentterm/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordDeliveryTerm</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keyworddeliveryterm/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -629,6 +684,22 @@
           <name>PROBABILITY.displayValue</name>
           <expression>%aditoprj%/entity/Offer_entity/recordcontainers/db/recordfieldmappings/probability.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PAYMENTTERMS.value</name>
+          <recordfield>OFFER.PAYMENTTERMS</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DELIVERYTERMS.value</name>
+          <recordfield>OFFER.DELIVERYTERMS</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DELIVERYTERMS.displayValue</name>
+          <expression>%aditoprj%/entity/Offer_entity/recordcontainers/db/recordfieldmappings/deliveryterms.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PAYMENTTERMS.displayValue</name>
+          <expression>%aditoprj%/entity/Offer_entity/recordcontainers/db/recordfieldmappings/paymentterms.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Offer_entity/entityfields/chosenaddress/stateProcess.js b/entity/Offer_entity/entityfields/chosenaddress/stateProcess.js
index 5ef79888bb3ddc6f78d7dec6f8d57c1eb8ac646c..8553fd8936f517191bb51aacc3649a77359c9bed 100644
--- a/entity/Offer_entity/entityfields/chosenaddress/stateProcess.js
+++ b/entity/Offer_entity/entityfields/chosenaddress/stateProcess.js
@@ -3,4 +3,6 @@ import("system.result");
 import("system.neon");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW)
-    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+else
+    result.string(neon.COMPONENTSTATE_EDITABLE);
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/keywordcurrencies/children/containername_param/valueProcess.js b/entity/Offer_entity/entityfields/keywordcurrencies/children/containername_param/valueProcess.js
index 4c7780fc3a92a387ce3420c577290d3fc22221a6..05d20a465b202ed4b5be50ffc09f311e0d325de3 100644
--- a/entity/Offer_entity/entityfields/keywordcurrencies/children/containername_param/valueProcess.js
+++ b/entity/Offer_entity/entityfields/keywordcurrencies/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.currency());
\ No newline at end of file
+result.string($KeywordRegistry.currency());
diff --git a/entity/Offer_entity/entityfields/keyworddeliveryterm/children/containername_param/valueProcess.js b/entity/Offer_entity/entityfields/keyworddeliveryterm/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..25f473302308508a77047bc599cfaaae3b8339d1
--- /dev/null
+++ b/entity/Offer_entity/entityfields/keyworddeliveryterm/children/containername_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.deliveryTerm());
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/keywordofferstates/children/containername_param/valueProcess.js b/entity/Offer_entity/entityfields/keywordofferstates/children/containername_param/valueProcess.js
index 84f4d7951933717d735bd7f88f38fdff4b14f2c9..1b56fa019e14ae7e2652f2d23ed3d6f0306344ff 100644
--- a/entity/Offer_entity/entityfields/keywordofferstates/children/containername_param/valueProcess.js
+++ b/entity/Offer_entity/entityfields/keywordofferstates/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.offerStatus());
\ No newline at end of file
+result.string($KeywordRegistry.offerStatus());
diff --git a/entity/Offer_entity/entityfields/keywordpaymentterm/children/containername_param/valueProcess.js b/entity/Offer_entity/entityfields/keywordpaymentterm/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..f56caab574a4a81ef3ad1cce2c466198062cef06
--- /dev/null
+++ b/entity/Offer_entity/entityfields/keywordpaymentterm/children/containername_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.paymentTerm());
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/entityfields/keywordphase/children/containername_param/valueProcess.js b/entity/Offer_entity/entityfields/keywordprobabilities/children/containername_param/valueProcess.js
similarity index 61%
rename from entity/SalesprojectCompetition_entity/entityfields/keywordphase/children/containername_param/valueProcess.js
rename to entity/Offer_entity/entityfields/keywordprobabilities/children/containername_param/valueProcess.js
index 0fda06efff26a459feed87a3433a92ff99b14171..5201e2bd086a135a79c013249a4e96128c326955 100644
--- a/entity/SalesprojectCompetition_entity/entityfields/keywordphase/children/containername_param/valueProcess.js
+++ b/entity/Offer_entity/entityfields/keywordprobabilities/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.salesprojectPhase());
\ No newline at end of file
+result.string($KeywordRegistry.offerProbability());
diff --git a/entity/Offer_entity/entityfields/newactivity/tooltipProcess.js b/entity/Offer_entity/entityfields/newactivity/tooltipProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c71e677c22663c2295e524aa7f3ed3dd571724d7
--- /dev/null
+++ b/entity/Offer_entity/entityfields/newactivity/tooltipProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.string(translate.text("New activity"));
\ No newline at end of file
diff --git a/entity/Offer_entity/recordcontainers/db/recordfieldmappings/deliveryterms.displayvalue/expression.js b/entity/Offer_entity/recordcontainers/db/recordfieldmappings/deliveryterms.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cd52520317fbf40caec0fc9adf4b0ddd9283d61
--- /dev/null
+++ b/entity/Offer_entity/recordcontainers/db/recordfieldmappings/deliveryterms.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.deliveryTerm(), "OFFER.DELIVERYTERMS");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/Offer_entity/recordcontainers/db/recordfieldmappings/paymentterms.displayvalue/expression.js b/entity/Offer_entity/recordcontainers/db/recordfieldmappings/paymentterms.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..6025b8640845a5a338b0168519c46c3146e107c8
--- /dev/null
+++ b/entity/Offer_entity/recordcontainers/db/recordfieldmappings/paymentterms.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.paymentTerm(), "OFFER.PAYMENTTERMS");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/Offeritem_entity/Offeritem_entity.aod b/entity/Offeritem_entity/Offeritem_entity.aod
index ef7a5704ad94ffbfc651111d093b60d707890591..2301aa0b4257daa7f7b6d183e822699d92a5d50c 100644
--- a/entity/Offeritem_entity/Offeritem_entity.aod
+++ b/entity/Offeritem_entity/Offeritem_entity.aod
@@ -68,6 +68,7 @@
       <title>Article</title>
       <consumer>Products</consumer>
       <linkedContext>Product</linkedContext>
+      <displayValueProcess>%aditoprj%/entity/Offeritem_entity/entityfields/product_id/displayValueProcess.js</displayValueProcess>
       <onValueChange>%aditoprj%/entity/Offeritem_entity/entityfields/product_id/onValueChange.js</onValueChange>
       <onValueChangeTypes>
         <element>MASK</element>
@@ -187,8 +188,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Offeritem_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -202,8 +204,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Offeritem_entity/entityfields/keywordquantityunits/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
diff --git a/entity/Offeritem_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js b/entity/Offeritem_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js
index 0881ceab5803df2043bdf3ca34277137e48b6a6b..e0b3a6dd6b49bace8935531285f8defc51731f36 100644
--- a/entity/Offeritem_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js
+++ b/entity/Offeritem_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.productGroupcode());
\ No newline at end of file
+result.string($KeywordRegistry.productGroupcode());
diff --git a/entity/Offeritem_entity/entityfields/keywordquantityunits/children/containername_param/valueProcess.js b/entity/Offeritem_entity/entityfields/keywordquantityunits/children/containername_param/valueProcess.js
index 116859e4d94e5bae0bce9983a85ffad7b392cba1..f9b47cf535119ec96b469fe551b30a62cd4eb385 100644
--- a/entity/Offeritem_entity/entityfields/keywordquantityunits/children/containername_param/valueProcess.js
+++ b/entity/Offeritem_entity/entityfields/keywordquantityunits/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.quantityUnit());
\ No newline at end of file
+result.string($KeywordRegistry.quantityUnit());
diff --git a/entity/Offeritem_entity/entityfields/optional/valueProcess.js b/entity/Offeritem_entity/entityfields/optional/valueProcess.js
index 58162120400747dada1e4c1e2da49ecd5475054c..31b2531af1ad332b9ab67942d5a89d742c9ab368 100644
--- a/entity/Offeritem_entity/entityfields/optional/valueProcess.js
+++ b/entity/Offeritem_entity/entityfields/optional/valueProcess.js
@@ -2,5 +2,5 @@ import("system.vars");
 import("system.result");
 import("system.neon");
 
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && (vars.get("$this.value") == null || vars.get("$this.value") == ""))
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
     result.string("0");
\ No newline at end of file
diff --git a/entity/Offeritem_entity/entityfields/product_id/displayValueProcess.js b/entity/Offeritem_entity/entityfields/product_id/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..bb3640469b1d952d4ab5fc07f00b5cca1ba4eb2d
--- /dev/null
+++ b/entity/Offeritem_entity/entityfields/product_id/displayValueProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    result.string("");
\ No newline at end of file
diff --git a/entity/Offeritem_entity/entityfields/quantity/valueProcess.js b/entity/Offeritem_entity/entityfields/quantity/valueProcess.js
index f6173830c1313bf8a59babc8c9f76ba54df6069a..ebd4664e6124e2b62ca40d0d0e97e43003cf22f0 100644
--- a/entity/Offeritem_entity/entityfields/quantity/valueProcess.js
+++ b/entity/Offeritem_entity/entityfields/quantity/valueProcess.js
@@ -2,9 +2,7 @@ import("system.vars");
 import("system.result");
 import("system.neon");
 
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "")
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
 {
     result.string("1");
-}
-else
-    result.string(vars.get("$this.value"));
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/entity/Order_entity/Order_entity.aod b/entity/Order_entity/Order_entity.aod
index 7ef4bc3429e9acc6bf39b8fdba23626b476058b7..f4144c47ef4f8cb65d91e7edc5692c558e918611 100644
--- a/entity/Order_entity/Order_entity.aod
+++ b/entity/Order_entity/Order_entity.aod
@@ -135,6 +135,7 @@
       <fieldType>ACTION</fieldType>
       <title>New receipt version</title>
       <onActionProcess>%aditoprj%/entity/Order_entity/entityfields/neworderversion/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:DOLLAR</iconId>
     </entityActionField>
     <entityField>
       <name>NET</name>
@@ -169,6 +170,7 @@
       <fieldType>ACTION</fieldType>
       <title>Copy receipt</title>
       <onActionProcess>%aditoprj%/entity/Order_entity/entityfields/neworder/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:COPY</iconId>
     </entityActionField>
     <entityField>
       <name>VERSNR</name>
@@ -295,8 +297,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Order_entity/entityfields/keywordcurrencies/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -310,8 +313,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Order_entity/entityfields/keywordstates/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -349,7 +353,7 @@
       <dependency>
         <name>dependency</name>
         <entityName>Language_entity</entityName>
-        <fieldName>LanguagesISO3Code</fieldName>
+        <fieldName>ISO3Name</fieldName>
       </dependency>
     </entityConsumer>
     <entityParameter>
@@ -385,6 +389,8 @@
       <title>New activity</title>
       <onActionProcess>%aditoprj%/entity/Order_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
       <iconId>NEON:HISTORY</iconId>
+      <tooltip>New activity</tooltip>
+      <tooltipProcess>%aditoprj%/entity/Order_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
     </entityActionField>
     <entityField>
       <name>OFFER_ID</name>
diff --git a/entity/Order_entity/entityfields/keywordcurrencies/children/containername_param/valueProcess.js b/entity/Order_entity/entityfields/keywordcurrencies/children/containername_param/valueProcess.js
index 4c7780fc3a92a387ce3420c577290d3fc22221a6..05d20a465b202ed4b5be50ffc09f311e0d325de3 100644
--- a/entity/Order_entity/entityfields/keywordcurrencies/children/containername_param/valueProcess.js
+++ b/entity/Order_entity/entityfields/keywordcurrencies/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.currency());
\ No newline at end of file
+result.string($KeywordRegistry.currency());
diff --git a/entity/Order_entity/entityfields/keywordstates/children/containername_param/valueProcess.js b/entity/Order_entity/entityfields/keywordstates/children/containername_param/valueProcess.js
index 21e1ac4efb78a649858f36b6f7cdffbd30509e2c..060269c7e5030175700bec978ac845630a70291c 100644
--- a/entity/Order_entity/entityfields/keywordstates/children/containername_param/valueProcess.js
+++ b/entity/Order_entity/entityfields/keywordstates/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.salesorderState());
\ No newline at end of file
+result.string($KeywordRegistry.salesorderState());
diff --git a/entity/Order_entity/entityfields/newactivity/tooltipProcess.js b/entity/Order_entity/entityfields/newactivity/tooltipProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c71e677c22663c2295e524aa7f3ed3dd571724d7
--- /dev/null
+++ b/entity/Order_entity/entityfields/newactivity/tooltipProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.string(translate.text("New activity"));
\ No newline at end of file
diff --git a/entity/Orderitem_entity/Orderitem_entity.aod b/entity/Orderitem_entity/Orderitem_entity.aod
index 949fae1568665ef271268184bd77f003be5b2ec2..3cf710815f239ced71514a3dccac03d7443a2340 100644
--- a/entity/Orderitem_entity/Orderitem_entity.aod
+++ b/entity/Orderitem_entity/Orderitem_entity.aod
@@ -181,8 +181,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Orderitem_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -196,8 +197,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Orderitem_entity/entityfields/keywordquantityunits/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
diff --git a/entity/Orderitem_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js b/entity/Orderitem_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js
index 0881ceab5803df2043bdf3ca34277137e48b6a6b..e0b3a6dd6b49bace8935531285f8defc51731f36 100644
--- a/entity/Orderitem_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js
+++ b/entity/Orderitem_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.productGroupcode());
\ No newline at end of file
+result.string($KeywordRegistry.productGroupcode());
diff --git a/entity/Orderitem_entity/entityfields/keywordquantityunits/children/containername_param/valueProcess.js b/entity/Orderitem_entity/entityfields/keywordquantityunits/children/containername_param/valueProcess.js
index 116859e4d94e5bae0bce9983a85ffad7b392cba1..f9b47cf535119ec96b469fe551b30a62cd4eb385 100644
--- a/entity/Orderitem_entity/entityfields/keywordquantityunits/children/containername_param/valueProcess.js
+++ b/entity/Orderitem_entity/entityfields/keywordquantityunits/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.quantityUnit());
\ No newline at end of file
+result.string($KeywordRegistry.quantityUnit());
diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod
index 3d8869d2db00125df064b1057339bfdcba735e71..fbffc4ece7cfb89ee3645387082d6ff5fa3d9279 100644
--- a/entity/Organisation_entity/Organisation_entity.aod
+++ b/entity/Organisation_entity/Organisation_entity.aod
@@ -79,7 +79,7 @@
       </children>
     </entityConsumer>
     <entityConsumer>
-      <name>Contacts</name>
+      <name>Contact</name>
       <title>Contacts</title>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
@@ -90,12 +90,11 @@
       <children>
         <entityParameter>
           <name>OrgId_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/contacts/children/orgid_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/contact/children/orgid_param/valueProcess.js</valueProcess>
           <triggerRecalculation v="true" />
         </entityParameter>
         <entityParameter>
           <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/contacts/children/contactid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
@@ -117,14 +116,14 @@
       </fields>
     </entityFieldGroup>
     <entityProvider>
-      <name>Organisation</name>
+      <name>Organisations</name>
       <fieldType>DEPENDENCY_IN</fieldType>
       <recordContainer>db</recordContainer>
       <dependencies>
         <entityDependency>
           <name>e56d51be-aaf7-4ddc-8bed-7a4a3c42b4dd</name>
           <entityName>AnyContact_entity</entityName>
-          <fieldName>Organisation</fieldName>
+          <fieldName>Organisations</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
@@ -133,6 +132,12 @@
           <fieldName>Organisation</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>19a28531-bec6-49e2-b00d-aae3816e6690</name>
+          <entityName>Person_entity</entityName>
+          <fieldName>Organisations</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
@@ -140,6 +145,10 @@
           <expose v="true" />
           <mandatory v="true" />
         </entityParameter>
+        <entityParameter>
+          <name>WithPrivat_param</name>
+          <expose v="true" />
+        </entityParameter>
       </children>
     </entityProvider>
     <entityConsumer>
@@ -232,12 +241,6 @@
     <entityProvider>
       <name>#PROVIDER</name>
       <dependencies>
-        <entityDependency>
-          <name>72825dbe-c602-4c17-9aa8-546c4b61f2f9</name>
-          <entityName>Person_entity</entityName>
-          <fieldName>Organisations</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
         <entityDependency>
           <name>f78c0ca6-7939-4a0e-903e-0fbbbf512e76</name>
           <entityName>Product_entity</entityName>
@@ -295,6 +298,7 @@
       <documentation>%aditoprj%/entity/Organisation_entity/entityfields/openeditdefaultsview/documentation.adoc</documentation>
       <title>Edit defaults</title>
       <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/openeditdefaultsview/onActionProcess.js</onActionProcess>
+      <actionOrder v="1" />
       <iconId>NEON:WRENCH</iconId>
     </entityActionField>
     <entityActionField>
@@ -303,6 +307,7 @@
       <documentation>%aditoprj%/entity/Organisation_entity/entityfields/newoffer/documentation.adoc</documentation>
       <title>New offer</title>
       <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newoffer/onActionProcess.js</onActionProcess>
+      <actionOrder v="2" />
       <iconId>VAADIN:CART</iconId>
     </entityActionField>
     <entityField>
@@ -359,13 +364,17 @@
       <fieldType>ACTION</fieldType>
       <title>New activity</title>
       <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
+      <actionOrder v="0" />
       <iconId>NEON:HISTORY</iconId>
+      <tooltip>New activity</tooltip>
+      <tooltipProcess>%aditoprj%/entity/Organisation_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
     </entityActionField>
     <entityActionField>
       <name>orgReport</name>
       <fieldType>ACTION</fieldType>
       <title>Customer Base Sheet</title>
       <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/orgreport/onActionProcess.js</onActionProcess>
+      <actionOrder v="4" />
       <iconId>VAADIN:FILE_TEXT_O</iconId>
     </entityActionField>
     <entityConsumer>
@@ -374,7 +383,7 @@
       <dependency>
         <name>dependency</name>
         <entityName>Countries_Entity</entityName>
-        <fieldName>ISO2_NAME</fieldName>
+        <fieldName>ISO2Name</fieldName>
       </dependency>
     </entityConsumer>
     <entityConsumer>
@@ -388,14 +397,14 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>objectRowId_param</name>
+          <name>ObjectRowId_param</name>
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
-          <expose v="true" />
           <triggerRecalculation v="true" />
         </entityParameter>
         <entityParameter>
-          <name>objectType_param</name>
+          <name>ObjectType_param</name>
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
+          <expose v="false" />
           <triggerRecalculation v="true" />
         </entityParameter>
       </children>
@@ -430,8 +439,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/keywordcontactstates/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -445,8 +455,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/keywordorganisationtypes/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -456,11 +467,11 @@
       <dependency>
         <name>dependency</name>
         <entityName>Language_entity</entityName>
-        <fieldName>LanguagesISO3Code</fieldName>
+        <fieldName>ISO3Name</fieldName>
       </dependency>
     </entityConsumer>
     <entityConsumer>
-      <name>KeywordPrice_Politics</name>
+      <name>KeywordPricePolitics</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
@@ -469,13 +480,14 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/keywordprice_politics/children/containername_param/valueProcess.js</valueProcess>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/keywordpricepolitics/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
     <entityConsumer>
-      <name>KeywordWeakness</name>
+      <name>KeywordWeaknesses</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
@@ -484,13 +496,14 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/keywordweakness/children/containername_param/valueProcess.js</valueProcess>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/keywordweaknesses/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
     <entityConsumer>
-      <name>KeywordStrenght</name>
+      <name>KeywordStrenghts</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
@@ -499,8 +512,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/keywordstrenght/children/containername_param/valueProcess.js</valueProcess>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/keywordstrenghts/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -509,32 +523,47 @@
       <fieldType>ACTION</fieldType>
       <title>New task</title>
       <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
+      <actionOrder v="3" />
       <iconId>VAADIN:TASKS</iconId>
     </entityActionField>
     <entityConsumer>
-      <name>TaskObjectRelations</name>
-      <title>Tasks</title>
+      <name>Salesprojects</name>
+      <title>Salesprojects</title>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
+        <entityName>Salesproject_entity</entityName>
+        <fieldName>Salesprojects</fieldName>
       </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityConsumer>
-      <name>Salesprojects</name>
-      <title>Salesprojects</title>
+      <name>Offers</name>
+      <title>Offers</title>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
-        <entityName>Salesproject_entity</entityName>
-        <fieldName>Salesprojects</fieldName>
+        <entityName>Offer_entity</entityName>
+        <fieldName>ContactOffers</fieldName>
       </dependency>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/offers/children/contactid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityParameter>
+      <name>WithPrivat_param</name>
+      <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/withprivat_param/valueProcess.js</valueProcess>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
     <entityConsumer>
       <name>ObjectTrees</name>
       <title>Relation tree</title>
diff --git a/entity/Organisation_entity/entityfields/attributes/children/objecttype_param/valueProcess.js b/entity/Organisation_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
index 008915f61deac19ccdd40fff81701de63eb3b6a2..e8b4e72e74a0a4696ff39e83135aa6100ef908c0 100644
--- a/entity/Organisation_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
+++ b/entity/Organisation_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.result");
 import("Context_lib");
 
-result.string(ContextUtils.getCurrentContextId());
\ No newline at end of file
+result.string(ContextUtils.getCurrentContextId());
diff --git a/entity/Organisation_entity/entityfields/contacts/children/orgid_param/valueProcess.js b/entity/Organisation_entity/entityfields/contact/children/orgid_param/valueProcess.js
similarity index 100%
rename from entity/Organisation_entity/entityfields/contacts/children/orgid_param/valueProcess.js
rename to entity/Organisation_entity/entityfields/contact/children/orgid_param/valueProcess.js
diff --git a/entity/Organisation_entity/entityfields/contacts/children/contactid_param/valueProcess.js b/entity/Organisation_entity/entityfields/contacts/children/contactid_param/valueProcess.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0519ecba6ea913e21689ec692e81e9e4973fbf73 100644
--- a/entity/Organisation_entity/entityfields/contacts/children/contactid_param/valueProcess.js
+++ b/entity/Organisation_entity/entityfields/contacts/children/contactid_param/valueProcess.js
@@ -0,0 +1 @@
+ 
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/contract/children/contactid_param/valueProcess.js b/entity/Organisation_entity/entityfields/contract/children/contactid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..70a1c0fcc1293fa4bf37109294829055704eeaea
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/contract/children/contactid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.CONTACTID"));
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/keywordcontactstates/children/containername_param/valueProcess.js b/entity/Organisation_entity/entityfields/keywordcontactstates/children/containername_param/valueProcess.js
index 2f4d03edea3a8ff7253f793a4c8a3585f03db848..43e8d27c6a6cdd11f092f8b404a97dc237577a38 100644
--- a/entity/Organisation_entity/entityfields/keywordcontactstates/children/containername_param/valueProcess.js
+++ b/entity/Organisation_entity/entityfields/keywordcontactstates/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.contactStatus());
\ No newline at end of file
+result.string($KeywordRegistry.contactStatus());
diff --git a/entity/Organisation_entity/entityfields/keywordprice_politics/children/containername_param/valueProcess.js b/entity/Organisation_entity/entityfields/keywordpricepolitics/children/containername_param/valueProcess.js
similarity index 57%
rename from entity/Organisation_entity/entityfields/keywordprice_politics/children/containername_param/valueProcess.js
rename to entity/Organisation_entity/entityfields/keywordpricepolitics/children/containername_param/valueProcess.js
index a76a727534152d479a8b4cbef548371ef4224dc0..8ddda743906a3a7af1ac9036d21925bd20100e9f 100644
--- a/entity/Organisation_entity/entityfields/keywordprice_politics/children/containername_param/valueProcess.js
+++ b/entity/Organisation_entity/entityfields/keywordpricepolitics/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.salesprojectPricePolitics());
\ No newline at end of file
+result.string($KeywordRegistry.salesprojectPricePolitics());
diff --git a/entity/Organisation_entity/entityfields/keywordstrenghts/children/containername_param/valueProcess.js b/entity/Organisation_entity/entityfields/keywordstrenghts/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b71211967e4a28e997057fbcd50ace129832a7c6
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/keywordstrenghts/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.salesprojectStrenght());
diff --git a/entity/Organisation_entity/entityfields/keywordweaknesses/children/containername_param/valueProcess.js b/entity/Organisation_entity/entityfields/keywordweaknesses/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..f4e1a14c0058bc49e291493c4e49e6e3715b3fcd
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/keywordweaknesses/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.salesprojectWeakness());
diff --git a/entity/Organisation_entity/entityfields/newactivity/tooltipProcess.js b/entity/Organisation_entity/entityfields/newactivity/tooltipProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c71e677c22663c2295e524aa7f3ed3dd571724d7
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/newactivity/tooltipProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.string(translate.text("New activity"));
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/offers/children/contactid_param/valueProcess.js b/entity/Organisation_entity/entityfields/offers/children/contactid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7b6137b4d105e9ba592cf8ef6e796fb838a32b09
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/offers/children/contactid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.CONTACTID"));
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/withprivat_param/valueProcess.js b/entity/Organisation_entity/entityfields/withprivat_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..755662df1632264e94e6a4d766bb65ead50a553d
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/withprivat_param/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string("0")
\ 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 6e3446d992205ac3fe28c2db4ab869102f71fa72..1e07d6451b26971700fd1e10c2c96209fecb57c4 100644
--- a/entity/Organisation_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/Organisation_entity/recordcontainers/db/conditionProcess.js
@@ -4,8 +4,13 @@ import("system.db");
 import("system.result");
 import("Sql_lib");
 
+var cond = SqlCondition.begin()
+                            .andPrepareVars("ORGANISATION.ORGANISATIONID", "$param.ContactId_param");
+                            
+// filter privat company if it is not needed
+if (!vars.exists("$param.WithPrivat_param") || vars.get("$param.WithPrivat_param") != "1")
+    cond.andPrepare("ORGANISATION.ORGANISATIONID", "0", "# <> ?");
+
+logging.log(vars.get("$param.WithPrivat_param"))
 //TODO: use a preparedCondition when available #1030812 #1034026
-result.string(db.translateCondition(
-                SqlCondition.begin()
-                            .andPrepareVars("ORGANISATION.ORGANISATIONID", "$param.ContactId_param")
-                            .build("1 = 1")));
\ No newline at end of file
+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 76d04e39c8f79ae0cbb6767eec8f8a6bb80043a2..560a86bd617208bcbfe57a25e996d873eb88bb85 100644
--- a/entity/Person_entity/Person_entity.aod
+++ b/entity/Person_entity/Person_entity.aod
@@ -112,7 +112,7 @@
         <entityDependency>
           <name>41952879-c2f0-411f-8ca1-36c38914a629</name>
           <entityName>Organisation_entity</entityName>
-          <fieldName>Contacts</fieldName>
+          <fieldName>Contact</fieldName>
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
@@ -185,10 +185,6 @@
           <description>This parameter is used for specifing a related &amp;quot;CONTACTID&amp;quot; to a COMMUNICATION-entry.
 Usually this is used for filtering COMMUNICATION-entries by a specified contact or creating a new entry that is related to a contact.</description>
         </entityParameter>
-        <entityParameter>
-          <name>CommCategory_param</name>
-          <description>TODO: expose auf false. aktuell wird der Code nicht ausgeführt, wenn Expose false ist.</description>
-        </entityParameter>
       </children>
     </entityConsumer>
     <entityConsumer>
@@ -198,8 +194,14 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
       <dependency>
         <name>dependency</name>
         <entityName>Organisation_entity</entityName>
-        <fieldName>#PROVIDER</fieldName>
+        <fieldName>Organisations</fieldName>
       </dependency>
+      <children>
+        <entityParameter>
+          <name>WithPrivat_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/organisations/children/withprivat_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityConsumer>
       <name>Contracts</name>
@@ -370,6 +372,7 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
       <title>Company Addresses</title>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <state>READONLY</state>
+      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/orgaddresses/stateProcess.js</stateProcess>
       <dependency>
         <name>dependency</name>
         <entityName>Address_entity</entityName>
@@ -472,6 +475,8 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
       <title>New activity</title>
       <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
       <iconId>NEON:HISTORY</iconId>
+      <tooltip>New activity</tooltip>
+      <tooltipProcess>%aditoprj%/entity/Person_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
     </entityActionField>
     <entityConsumer>
       <name>ObjectRelations</name>
@@ -503,8 +508,9 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/keywordgenders/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -514,7 +520,7 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
       <dependency>
         <name>dependency</name>
         <entityName>Language_entity</entityName>
-        <fieldName>LanguagesISO3Code</fieldName>
+        <fieldName>ISO3Name</fieldName>
       </dependency>
     </entityConsumer>
     <entityConsumer>
@@ -544,14 +550,14 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
       </dependency>
       <children>
         <entityParameter>
-          <name>objectRowId_param</name>
+          <name>ObjectRowId_param</name>
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
-          <expose v="true" />
           <triggerRecalculation v="true" />
         </entityParameter>
         <entityParameter>
-          <name>objectType_param</name>
+          <name>ObjectType_param</name>
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
+          <expose v="false" />
           <triggerRecalculation v="true" />
         </entityParameter>
       </children>
diff --git a/entity/Person_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js b/entity/Person_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js
index ee0cddc370f78c08084b64d57e2a36686aad1e82..4170a76c71fa1e8732debf6ab2d719341a786d1a 100644
--- a/entity/Person_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js
+++ b/entity/Person_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("system.result");
 
-result.string(vars.get("$field.PERSONID"));
\ No newline at end of file
+result.string(vars.get("$field.PERSONID"));
diff --git a/entity/Person_entity/entityfields/attributes/children/objecttype_param/valueProcess.js b/entity/Person_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
index 008915f61deac19ccdd40fff81701de63eb3b6a2..e8b4e72e74a0a4696ff39e83135aa6100ef908c0 100644
--- a/entity/Person_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
+++ b/entity/Person_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.result");
 import("Context_lib");
 
-result.string(ContextUtils.getCurrentContextId());
\ No newline at end of file
+result.string(ContextUtils.getCurrentContextId());
diff --git a/entity/Person_entity/entityfields/contract/children/contactid_param/valueProcess.js b/entity/Person_entity/entityfields/contract/children/contactid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..70a1c0fcc1293fa4bf37109294829055704eeaea
--- /dev/null
+++ b/entity/Person_entity/entityfields/contract/children/contactid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.CONTACTID"));
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/newactivity/tooltipProcess.js b/entity/Person_entity/entityfields/newactivity/tooltipProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c71e677c22663c2295e524aa7f3ed3dd571724d7
--- /dev/null
+++ b/entity/Person_entity/entityfields/newactivity/tooltipProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.string(translate.text("New activity"));
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/orgaddresses/stateProcess.js b/entity/Person_entity/entityfields/orgaddresses/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..1cc2fa2fc58db255e35557993ad2fafaafdf870f
--- /dev/null
+++ b/entity/Person_entity/entityfields/orgaddresses/stateProcess.js
@@ -0,0 +1,12 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if (vars.get("$field.ORGANISATION_ID") == "0")
+{
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+}
+else
+{
+    result.string(neon.COMPONENTSTATE_READONLY);
+}
diff --git a/entity/Person_entity/entityfields/organisations/children/withprivat_param/valueProcess.js b/entity/Person_entity/entityfields/organisations/children/withprivat_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7fbe0afc48df1a87b17cfbf8129c12481f84c99a
--- /dev/null
+++ b/entity/Person_entity/entityfields/organisations/children/withprivat_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.logging");
+import("system.result");
+logging.log("set")
+result.string("1");
\ 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 e8302d00414fecb5dee552bfcacb6ff20a4a7f77..3d91dc356d820aa415077bbdec47668cc6cd2164 100644
--- a/entity/Person_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/Person_entity/recordcontainers/db/conditionProcess.js
@@ -1,3 +1,4 @@
+import("system.vars");
 import("system.db");
 import("system.result");
 import("Sql_lib");
diff --git a/entity/Prod2prod_entity/Prod2prod_entity.aod b/entity/Prod2prod_entity/Prod2prod_entity.aod
index 31d3adaf749bfa15cf27d5a191accd448e040f9d..f27ce2f8c15c58171225f2a3c3788484e36f1524 100644
--- a/entity/Prod2prod_entity/Prod2prod_entity.aod
+++ b/entity/Prod2prod_entity/Prod2prod_entity.aod
@@ -33,7 +33,7 @@
       <name>SOURCE_ID</name>
       <documentation>%aditoprj%/entity/Prod2prod_entity/entityfields/source_id/documentation.adoc</documentation>
       <title>Product</title>
-      <possibleItemsProcess>%aditoprj%/entity/Prod2prod_entity/entityfields/source_id/possibleItemsProcess.js</possibleItemsProcess>
+      <consumer>Products</consumer>
     </entityField>
     <entityField>
       <name>TAKEPRICE</name>
@@ -41,6 +41,7 @@
       <title>Take price</title>
       <contentType>BOOLEAN</contentType>
       <possibleItemsProcess>%aditoprj%/entity/Prod2prod_entity/entityfields/takeprice/possibleItemsProcess.js</possibleItemsProcess>
+      <valueProcess>%aditoprj%/entity/Prod2prod_entity/entityfields/takeprice/valueProcess.js</valueProcess>
     </entityField>
     <entityParameter>
       <name>ProductId_param</name>
@@ -60,7 +61,8 @@
     <entityProvider>
       <name>ProductLinks</name>
       <fieldType>DEPENDENCY_IN</fieldType>
-      <recordContainer>jdito</recordContainer>
+      <targetContextField>targetContext</targetContextField>
+      <targetIdField>SOURCE_ID</targetIdField>
       <dependencies>
         <entityDependency>
           <name>4bd06e3b-17a0-483e-a61c-818ff7e86be3</name>
@@ -69,20 +71,69 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>ProductId_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>CurrentProductId_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityField>
       <name>PRODUCTCODE</name>
       <title>Product number</title>
     </entityField>
+    <entityField>
+      <name>targetContext</name>
+      <valueProcess>%aditoprj%/entity/Prod2prod_entity/entityfields/targetcontext/valueProcess.js</valueProcess>
+    </entityField>
+    <entityActionGroup>
+      <name>alter</name>
+      <children>
+        <entityActionField>
+          <name>insert</name>
+          <fieldType>ACTION</fieldType>
+          <onActionProcess>%aditoprj%/entity/Prod2prod_entity/entityfields/alter/children/insert/onActionProcess.js</onActionProcess>
+          <isSelectionAction v="true" />
+          <iconId>VAADIN:FILE_TREE_SMALL</iconId>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
+    <entityConsumer>
+      <name>Products</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Product_entity</entityName>
+        <fieldName>Products</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ExcludedProducts_param</name>
+          <valueProcess>%aditoprj%/entity/Prod2prod_entity/entityfields/products/children/excludedproducts_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>PRODUCTID</name>
+    </entityField>
+    <entityParameter>
+      <name>CurrentProductId_param</name>
+      <valueProcess>%aditoprj%/entity/Prod2prod_entity/entityfields/currentproductid_param/valueProcess.js</valueProcess>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
       <name>jdito</name>
       <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
       <contentProcess>%aditoprj%/entity/Prod2prod_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
-      <isSortable v="false" />
       <onInsert>%aditoprj%/entity/Prod2prod_entity/recordcontainers/jdito/onInsert.js</onInsert>
-      <onUpdate>%aditoprj%/entity/Prod2prod_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
       <onDelete>%aditoprj%/entity/Prod2prod_entity/recordcontainers/jdito/onDelete.js</onDelete>
       <recordFields>
         <element>UID.value</element>
@@ -92,6 +143,7 @@
         <element>OPTIONAL.value</element>
         <element>TAKEPRICE.value</element>
         <element>PRODUCTCODE.value</element>
+        <element>PRODUCTID.value</element>
         <element>SOURCE_ID.value</element>
         <element>DEST_ID.displayValue</element>
       </recordFields>
diff --git a/entity/Prod2prod_entity/entityfields/alter/children/insert/onActionProcess.js b/entity/Prod2prod_entity/entityfields/alter/children/insert/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9aef9e30447606e854cd1aaf3dc5f7308926a1b4
--- /dev/null
+++ b/entity/Prod2prod_entity/entityfields/alter/children/insert/onActionProcess.js
@@ -0,0 +1,20 @@
+import("system.neon");
+import("system.vars");
+
+if (vars.exists("$local.rows") && vars.get("$local.rows"))
+{
+    var selectedRows = JSON.parse(vars.get("$local.rows"));
+    
+    if (selectedRows.length > 0 && vars.exists("$param.ProductId_param") && vars.getString("$param.ProductId_param"))
+    {
+        var productId = selectedRows[0].PRODUCTID;
+        var params = {
+            "ProductId_param" : vars.getString("$param.ProductId_param"),
+            "CurrentProductId_param" : productId
+        };
+
+        neon.openContext("Prod2prod", "Prod2ProdEdit_view", null, neon.OPERATINGSTATE_NEW, params);
+    }
+    
+    
+}
\ No newline at end of file
diff --git a/entity/Prod2prod_entity/entityfields/currentproductid_param/valueProcess.js b/entity/Prod2prod_entity/entityfields/currentproductid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..10ba60935fab2384a490edac342f029fe3b7a4a2
--- /dev/null
+++ b/entity/Prod2prod_entity/entityfields/currentproductid_param/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("system.vars");
+// default is the ProductId_param
+if (vars.exists("$param.ProductId_param") && vars.get("$param.ProductId_param"))
+{
+    result.string(vars.get("$param.ProductId_param"));
+}
\ No newline at end of file
diff --git a/entity/Prod2prod_entity/entityfields/dest_id/valueProcess.js b/entity/Prod2prod_entity/entityfields/dest_id/valueProcess.js
index c54ef701cedc01a2fa09b44824bbb22ee9f6a3d7..cdcb38abd09d9cd5853093e27ab6116fc6e3ba17 100644
--- a/entity/Prod2prod_entity/entityfields/dest_id/valueProcess.js
+++ b/entity/Prod2prod_entity/entityfields/dest_id/valueProcess.js
@@ -2,9 +2,9 @@ import("system.result");
 import("system.neon");
 import("system.vars");
 
-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.exists("$param.ProductId_param") && vars.get("$param.ProductId_param") != null && vars.get("$param.ProductId_param") != "")
-        result.string(vars.getString("$param.ProductId_param"));    
+    if(vars.exists("$param.CurrentProductId_param") && vars.get("$param.CurrentProductId_param"))
+        result.string(vars.getString("$param.CurrentProductId_param"));    
 }
 
diff --git a/entity/Prod2prod_entity/entityfields/optional/valueProcess.js b/entity/Prod2prod_entity/entityfields/optional/valueProcess.js
index 83eed9e7ea62cc80759f20e7d78cabcb73173595..31b2531af1ad332b9ab67942d5a89d742c9ab368 100644
--- a/entity/Prod2prod_entity/entityfields/optional/valueProcess.js
+++ b/entity/Prod2prod_entity/entityfields/optional/valueProcess.js
@@ -1,6 +1,6 @@
-//import("system.vars");
-//import("system.result");
-//import("system.neon");
-//
-//if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-//    result.string("0");
\ No newline at end of file
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    result.string("0");
\ No newline at end of file
diff --git a/entity/Prod2prod_entity/entityfields/products/children/excludedproducts_param/valueProcess.js b/entity/Prod2prod_entity/entityfields/products/children/excludedproducts_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..cc6b35783c6a05dc9deebfb83e491f8ca092bba1
--- /dev/null
+++ b/entity/Prod2prod_entity/entityfields/products/children/excludedproducts_param/valueProcess.js
@@ -0,0 +1,56 @@
+import("system.neon");
+import("system.db");
+import("system.vars");
+import("system.result");
+
+var recordstate = vars.get("$sys.recordstate");
+
+var currentPartID = (vars.exists("$param.CurrentProductId_param") && vars.getString("$param.CurrentProductId_param")) ? vars.getString("$param.CurrentProductId_param") : "";
+var productid = vars.getString("$param.ProductId_param");
+
+var destid = productid; //für Insert ermitteln
+var excludeIDs;
+
+if (recordstate == neon.OPERATINGSTATE_EDIT)
+{    
+    //Ausschließen des geöffneten Datensatzes
+    excludeIDs = [productid]
+    _getParentID([productid, currentPartID], excludeIDs);
+    _getChildrenID([productid, currentPartID], excludeIDs);
+}
+else
+{
+    //Ausschließen des geöffneten Datensatzes und des Produkts auf dem wir "stehen"
+    excludeIDs = [productid, currentPartID];
+    
+    //beide Seiten prüfen ob Über- oder Untergeordnetes Produkt
+    _getParentID([excludeIDs[0], excludeIDs[1]], excludeIDs);
+    _getChildrenID([excludeIDs[0], excludeIDs[1]], excludeIDs);
+}
+
+result.object(excludeIDs);
+
+// TODO: remove code duplication, better param naming and using SqlCondition
+function _getParentID(pID, pIDs)
+{
+    //Ermitteln welche Produkte ausgeschlossen werden müssen.
+    cond = typeof(pID) == "object" ? "in  ('" + pID.join("', '") +"')" : " =  '" + pID + "' "   
+    var parents = db.array(db.COLUMN, "select DEST_ID from PROD2PROD where SOURCE_ID " + cond);
+    for ( var i = 0; i < parents.length; i++)
+    {    
+        pIDs.push(parents[i]);
+        _getParentID(parents[i], pIDs)
+    }
+}
+
+function _getChildrenID(pID, pIDs)
+{
+    //Ermitteln welche Produkte ausgeschlossen werden müssen.
+    cond = typeof(pID) == "object" ? "in  ('" + pID.join("', '") +"')" : " =  '" + pID + "' "
+    var children = db.array(db.COLUMN, "select SOURCE_ID from PROD2PROD where DEST_ID " + cond);
+    for ( var i = 0; i < children.length; i++)
+    {    
+        pIDs.push(children[i]);
+        _getChildrenID(children[i], pIDs)
+    }
+}
\ No newline at end of file
diff --git a/entity/Prod2prod_entity/entityfields/source_id/possibleItemsProcess.js b/entity/Prod2prod_entity/entityfields/source_id/possibleItemsProcess.js
deleted file mode 100644
index dbfb722d579ddde54ef73f90ebddc2c4269c6b25..0000000000000000000000000000000000000000
--- a/entity/Prod2prod_entity/entityfields/source_id/possibleItemsProcess.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import("system.vars");
-import("system.result");
-import("system.db");
-import("system.neon");
-import("Keyword_lib");
-import("Product_lib");
-import("KeywordRegistry_basic");
-
-var condition = "";
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-{
-    var prodid = vars.get("$field.DEST_ID");
-    var excludeableProds = [prodid];
-    
-    var p2pUtils = new Prod2ProdUtils(prodid);  
-    
-    excludeableProds = excludeableProds.concat(p2pUtils.getPartsListProdIds());
-    excludeableProds = excludeableProds.concat(p2pUtils.getParentProdIds());
-    
-    condition += " where PRODUCTID not in ('" + excludeableProds.join("','") + "')";
-}
-
-var prods = db.table("select PRODUCTID, GROUPCODEID, PRODUCTNAME, PRODUCTCODE from PRODUCT " + condition);
-var res = [];
-for(var i = 0; i < prods.length; i++)
-{
-    res.push([prods[i][0], KeywordUtils.getViewValue($KeywordRegistry.productGroupcode(), prods[i][1]) + " / " + prods[i][2] + " / " + prods[i][3]]);
-}
-
-result.object(res);
\ No newline at end of file
diff --git a/entity/Prod2prod_entity/entityfields/takeprice/valueProcess.js b/entity/Prod2prod_entity/entityfields/takeprice/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..31b2531af1ad332b9ab67942d5a89d742c9ab368
--- /dev/null
+++ b/entity/Prod2prod_entity/entityfields/takeprice/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    result.string("0");
\ No newline at end of file
diff --git a/entity/Prod2prod_entity/entityfields/targetcontext/valueProcess.js b/entity/Prod2prod_entity/entityfields/targetcontext/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4fad819079cfa40ce1d3b8a8c579f5e0c46b2f9f
--- /dev/null
+++ b/entity/Prod2prod_entity/entityfields/targetcontext/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string("Product")
\ No newline at end of file
diff --git a/entity/Prod2prod_entity/recordcontainers/jdito/contentProcess.js b/entity/Prod2prod_entity/recordcontainers/jdito/contentProcess.js
index 7a8d1f20d335178965e37be3e00f04dfe3ce9c80..1eca5fb315ce03cf0f9cd20ce70f3b869cddd834 100644
--- a/entity/Prod2prod_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Prod2prod_entity/recordcontainers/jdito/contentProcess.js
@@ -1,15 +1,21 @@
-import("system.logging");
-import("system.result");
-import("system.vars");
-import("system.db");
-import("system.util");
-import("Product_lib");
-
-var prodid = vars.exists("$param.ProductId_param") 
-             && vars.get("$param.ProductId_param") != null ? vars.get("$param.ProductId_param") : "";
-
-if(prodid != "")
-{
-    var p2pUtils = new Prod2ProdUtils(prodid);
-    result.object(p2pUtils.getPartsListForRecordContainer());
+import("system.neon");
+import("system.result");
+import("system.vars");
+import("system.db");
+import("system.util");
+import("Product_lib");
+
+if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW)
+{
+    var prodid = vars.exists("$param.ProductId_param") 
+                 && vars.get("$param.ProductId_param") != null ? vars.get("$param.ProductId_param") : "";
+    if(prodid != "")
+    {
+        var p2pUtils = new Prod2ProdUtils(prodid);
+        result.object(p2pUtils.getPartsListForRecordContainer());
+    }
+}
+else
+{
+    result.object([]);
 }
\ No newline at end of file
diff --git a/entity/Prod2prod_entity/recordcontainers/jdito/onDelete.js b/entity/Prod2prod_entity/recordcontainers/jdito/onDelete.js
index e2c6c0ff0e6a62e643ed0dd4d109907f0fd6c077..75472b57594f5b0bfac9304d844e36c49cd92f69 100644
--- a/entity/Prod2prod_entity/recordcontainers/jdito/onDelete.js
+++ b/entity/Prod2prod_entity/recordcontainers/jdito/onDelete.js
@@ -1,6 +1,10 @@
+import("system.neon");
 import("system.db");
 import("Sql_lib");
 
 db.deleteData("PROD2PROD", SqlCondition.begin()
-                                       .andPrepareVars("PROD2PROD.PROD2PRODID", "$field.UID", "# = ?")
-                                       .build("1 = 0"));
\ No newline at end of file
+                                       .andPrepareVars("PROD2PROD.PROD2PRODID", "$field.PROD2PRODID")
+                                       .build("1=2"));
+
+// Refresh otherwise the children of the deleted node would be moved to the root.
+neon.refresh()
\ No newline at end of file
diff --git a/entity/Prod2prod_entity/recordcontainers/jdito/onInsert.js b/entity/Prod2prod_entity/recordcontainers/jdito/onInsert.js
index d11203f6249b0b7d30c523abe19cf4ac6b577e12..44ffb3c420f002f736b7110a5c4cd2bdf4a39fd9 100644
--- a/entity/Prod2prod_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/Prod2prod_entity/recordcontainers/jdito/onInsert.js
@@ -1,3 +1,4 @@
+import("system.logging");
 import("system.datetime");
 import("system.vars");
 import("system.db");
@@ -9,11 +10,12 @@ var cols = [ "PROD2PRODID"
            , "OPTIONAL"
            , "TAKEPRICE" ];
 
-var vals = [ vars.get("$field.UID")
+var vals = [ vars.get("$field.PROD2PRODID")
            , vars.get("$field.DEST_ID")
            , vars.get("$field.SOURCE_ID")
            , vars.get("$field.QUANTITY")
            , vars.get("$field.OPTIONAL")
            , vars.get("$field.TAKEPRICE") ];
 
+logging.log("INSERT!!!!")
 db.insertData("PROD2PROD", cols, null, vals);
\ No newline at end of file
diff --git a/entity/Prod2prod_entity/recordcontainers/jdito/onUpdate.js b/entity/Prod2prod_entity/recordcontainers/jdito/onUpdate.js
deleted file mode 100644
index 2d421e9b24ecd061673cbd3273c56e6fa24a7c47..0000000000000000000000000000000000000000
--- a/entity/Prod2prod_entity/recordcontainers/jdito/onUpdate.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import("system.datetime");
-import("system.vars");
-import("system.db");
-imp
-
-var cols = [ "DEST_ID"
-           , "SOURCE_ID"
-           , "QUANTITY"
-           , "OPTIONAL"
-           , "TAKEPRICE" ];
-
-var vals = [ vars.get("$field.DEST_ID")
-           , vars.get("$field.SOURCE_ID")
-           , vars.get("$field.QUANTITY")
-           , vars.get("$field.OPTIONAL")
-           , vars.get("$field.TAKEPRICE") ];
-
-
-db.updateData("PROD2PROD", 
-              cols,
-              null,
-              vals, 
-              SqlCondition.begin()
-                          .andPrepareVars("PROD2PROD.PROD2PRODID", "$field.UID", "# = ?")
-                          .build("1 = 0"));
\ No newline at end of file
diff --git a/entity/Product_entity/Product_entity.aod b/entity/Product_entity/Product_entity.aod
index daf1095ab993de330005659847bed045e1e39b2f..33f4c12de07859e7d701a75be4788dee25f73609 100644
--- a/entity/Product_entity/Product_entity.aod
+++ b/entity/Product_entity/Product_entity.aod
@@ -101,7 +101,7 @@
       </children>
     </entityConsumer>
     <entityConsumer>
-      <name>Stock</name>
+      <name>Stocks</name>
       <title>Stock</title>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <selectionMode>SINGLE</selectionMode>
@@ -113,7 +113,7 @@
       <children>
         <entityParameter>
           <name>ProductId_param</name>
-          <valueProcess>%aditoprj%/entity/Product_entity/entityfields/stock/children/productid_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/Product_entity/entityfields/stocks/children/productid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
@@ -127,7 +127,7 @@
       </onValueChangeTypes>
     </entityField>
     <entityConsumer>
-      <name>StockCount</name>
+      <name>StockCounts</name>
       <title>Stock</title>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <state>READONLY</state>
@@ -139,7 +139,7 @@
       <children>
         <entityParameter>
           <name>ProductId_param</name>
-          <valueProcess>%aditoprj%/entity/Product_entity/entityfields/stockcount/children/productid_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/Product_entity/entityfields/stockcounts/children/productid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
@@ -253,8 +253,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Product_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -268,8 +269,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Product_entity/entityfields/keywordquantityunits/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -284,7 +286,7 @@
       <dependency>
         <name>dependency</name>
         <entityName>Language_entity</entityName>
-        <fieldName>LanguagesISO3Code</fieldName>
+        <fieldName>ISO3Name</fieldName>
       </dependency>
     </entityConsumer>
     <entityConsumer>
@@ -313,6 +315,8 @@
       <title>New activity</title>
       <onActionProcess>%aditoprj%/entity/Product_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
       <iconId>NEON:HISTORY</iconId>
+      <tooltip>New activity</tooltip>
+      <tooltipProcess>%aditoprj%/entity/Product_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
     </entityActionField>
     <entityConsumer>
       <name>Attributes</name>
@@ -325,15 +329,40 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>objectType_param</name>
-          <valueProcess>%aditoprj%/entity/Product_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Product_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
         <entityParameter>
-          <name>objectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Product_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Product_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityParameter>
+      <name>ExcludedProducts_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityProvider>
+      <name>Products</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <dependencies>
+        <entityDependency>
+          <name>1b12e8ef-74ba-4294-bd2b-9d4afa80798c</name>
+          <entityName>Prod2prod_entity</entityName>
+          <fieldName>Products</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>ExcludedProducts_param</name>
+          <expose v="true" />
+        </entityParameter>
+      </children>
+    </entityProvider>
     <entityActionField>
       <name>newTask</name>
       <fieldType>ACTION</fieldType>
@@ -348,6 +377,7 @@
       <alias>Data_alias</alias>
       <maximumDbRows v="0" />
       <fromClauseProcess>%aditoprj%/entity/Product_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
+      <conditionProcess>%aditoprj%/entity/Product_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <onDBUpdate>%aditoprj%/entity/Product_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/Product_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
       <linkInformation>
diff --git a/entity/Product_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js b/entity/Product_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js
index 9635e2f4c42188cc99b051125cf236560cffe564..94eb4c992d1e4313fe0a2c41d0cd0d2bd006da5e 100644
--- a/entity/Product_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js
+++ b/entity/Product_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.vars");
 import("system.result");
 import("Context_lib");
 
-result.string(vars.get("$field.PRODUCTID"));
\ No newline at end of file
+result.string(vars.get("$field.PRODUCTID"));
diff --git a/entity/Product_entity/entityfields/attributes/children/objecttype_param/valueProcess.js b/entity/Product_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
index 008915f61deac19ccdd40fff81701de63eb3b6a2..e8b4e72e74a0a4696ff39e83135aa6100ef908c0 100644
--- a/entity/Product_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
+++ b/entity/Product_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.result");
 import("Context_lib");
 
-result.string(ContextUtils.getCurrentContextId());
\ No newline at end of file
+result.string(ContextUtils.getCurrentContextId());
diff --git a/entity/Product_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js b/entity/Product_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js
index 0881ceab5803df2043bdf3ca34277137e48b6a6b..e0b3a6dd6b49bace8935531285f8defc51731f36 100644
--- a/entity/Product_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js
+++ b/entity/Product_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.productGroupcode());
\ No newline at end of file
+result.string($KeywordRegistry.productGroupcode());
diff --git a/entity/Product_entity/entityfields/keywordquantityunits/children/containername_param/valueProcess.js b/entity/Product_entity/entityfields/keywordquantityunits/children/containername_param/valueProcess.js
index 116859e4d94e5bae0bce9983a85ffad7b392cba1..f9b47cf535119ec96b469fe551b30a62cd4eb385 100644
--- a/entity/Product_entity/entityfields/keywordquantityunits/children/containername_param/valueProcess.js
+++ b/entity/Product_entity/entityfields/keywordquantityunits/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.quantityUnit());
\ No newline at end of file
+result.string($KeywordRegistry.quantityUnit());
diff --git a/entity/Product_entity/entityfields/newactivity/tooltipProcess.js b/entity/Product_entity/entityfields/newactivity/tooltipProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c71e677c22663c2295e524aa7f3ed3dd571724d7
--- /dev/null
+++ b/entity/Product_entity/entityfields/newactivity/tooltipProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.string(translate.text("New activity"));
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/stock/children/productid_param/valueProcess.js b/entity/Product_entity/entityfields/stockcounts/children/productid_param/valueProcess.js
similarity index 100%
rename from entity/Product_entity/entityfields/stock/children/productid_param/valueProcess.js
rename to entity/Product_entity/entityfields/stockcounts/children/productid_param/valueProcess.js
diff --git a/entity/Product_entity/entityfields/stockcount/children/productid_param/valueProcess.js b/entity/Product_entity/entityfields/stocks/children/productid_param/valueProcess.js
similarity index 100%
rename from entity/Product_entity/entityfields/stockcount/children/productid_param/valueProcess.js
rename to entity/Product_entity/entityfields/stocks/children/productid_param/valueProcess.js
diff --git a/entity/Product_entity/recordcontainers/db/conditionProcess.js b/entity/Product_entity/recordcontainers/db/conditionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4d4a75621f119a42906a9f3e816b9861cbf968ec
--- /dev/null
+++ b/entity/Product_entity/recordcontainers/db/conditionProcess.js
@@ -0,0 +1,20 @@
+import("system.logging");
+import("system.result");
+import("system.vars");
+import("system.db");
+import("Sql_lib");
+
+var productCond = SqlCondition.begin()
+
+if (vars.exists("$param.ExcludedProducts_param") && vars.get("$param.ExcludedProducts_param"))
+{
+    var excludedIds = JSON.parse(vars.get("$param.ExcludedProducts_param"));
+
+    excludedIds.forEach(function(pId) 
+    {
+        this.andPrepare("PRODUCT.PRODUCTID", pId, "# <> ?");
+    }, productCond);
+}
+
+//TODO: use a preparedCondition when available #1030812 #1034026
+result.string(db.translateCondition(productCond.build("1 = 1")));
\ No newline at end of file
diff --git a/entity/Productprice_entity/Productprice_entity.aod b/entity/Productprice_entity/Productprice_entity.aod
index 811cb33671947750fbc166c2aa2d4cd2cdf26f27..98794639c708d6dac37f8c25888acc02130f32ac 100644
--- a/entity/Productprice_entity/Productprice_entity.aod
+++ b/entity/Productprice_entity/Productprice_entity.aod
@@ -170,8 +170,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Productprice_entity/entityfields/keywordcurrencies/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -185,8 +186,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Productprice_entity/entityfields/keywordpricelists/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
diff --git a/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod b/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod
index cab3c0a17ff4df23b59399e852b2dbeae08615de..1385a0beb1c239967198b45cf171764285948af0 100644
--- a/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod
+++ b/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod
@@ -23,6 +23,7 @@
       <name>REASON</name>
       <title>Reason</title>
       <consumer>KeywordWonLost</consumer>
+      <selectionMode>SINGLE</selectionMode>
       <onValidation>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/reason/onValidation.js</onValidation>
     </entityField>
     <entityField>
@@ -36,7 +37,7 @@
     <entityField>
       <name>STATUS</name>
       <title>State</title>
-      <consumer>KeywordState</consumer>
+      <consumer>KeywordStates</consumer>
       <mandatory v="true" />
     </entityField>
     <entityParameter>
@@ -89,7 +90,7 @@
       <dependency>
         <name>dependency</name>
         <entityName>Organisation_entity</entityName>
-        <fieldName>Organisation</fieldName>
+        <fieldName>Organisations</fieldName>
       </dependency>
       <children>
         <entityParameter>
@@ -112,6 +113,7 @@
     <entityConsumer>
       <name>KeywordWonLost</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
+      <selectionMode>MULTI</selectionMode>
       <dependency>
         <name>dependency</name>
         <entityName>KeywordEntry_entity</entityName>
@@ -119,19 +121,19 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/keywordwonlost/children/containername_param/valueProcess.js</valueProcess>
-          <documentation>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/keywordwonlost/children/containername_param/documentation.adoc</documentation>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
     <entityField>
       <name>PHASE</name>
       <title>Phase</title>
-      <consumer>KeywordPhase</consumer>
+      <consumer>KeywordPhases</consumer>
     </entityField>
     <entityConsumer>
-      <name>KeywordPrice_Politics</name>
+      <name>KeywordPricePolitics</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
@@ -140,13 +142,14 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
-          <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/keywordprice_politics/children/containername_param/valueProcess.js</valueProcess>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/keywordpricepolitics/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
     <entityConsumer>
-      <name>KeywordWeakness</name>
+      <name>KeywordWeaknesses</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
@@ -155,13 +158,14 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
-          <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/keywordweakness/children/containername_param/valueProcess.js</valueProcess>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/keywordweaknesses/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
     <entityConsumer>
-      <name>KeywordStrenght</name>
+      <name>KeywordStrenghts</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
@@ -170,13 +174,14 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
-          <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/keywordstrenght/children/containername_param/valueProcess.js</valueProcess>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/keywordstrenghts/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
     <entityConsumer>
-      <name>KeywordPhase</name>
+      <name>KeywordPhases</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
@@ -185,13 +190,14 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
-          <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/keywordphase/children/containername_param/valueProcess.js</valueProcess>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/keywordphases/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
     <entityConsumer>
-      <name>KeywordState</name>
+      <name>KeywordStates</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
@@ -200,8 +206,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
-          <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/keywordstate/children/containername_param/valueProcess.js</valueProcess>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/keywordstates/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -216,16 +223,19 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>objectType_param</name>
-          <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
+          <name>FilteredAttributeIds_param</name>
+          <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/attributes/children/filteredattributeids_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
         <entityParameter>
-          <name>objectRowId_param</name>
+          <name>ObjectRowId_param</name>
           <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
         <entityParameter>
-          <name>filteredAttributeIds_param</name>
-          <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/attributes/children/filteredattributeids_param/valueProcess.js</valueProcess>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
diff --git a/entity/SalesprojectCompetition_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js b/entity/SalesprojectCompetition_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js
index ef0d5bcac51027b862291e5abd61c0c05773a8df..3cb68cac618f4554bab868476992c09f591fe5fe 100644
--- a/entity/SalesprojectCompetition_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js
+++ b/entity/SalesprojectCompetition_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("system.result");
 
-result.string(vars.get("$field.CONTACT_ID"));
\ No newline at end of file
+result.string(vars.get("$field.CONTACT_ID"));
diff --git a/entity/SalesprojectCompetition_entity/entityfields/attributes/children/objecttype_param/valueProcess.js b/entity/SalesprojectCompetition_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
index 9e359dfbd05a73d0010c8e90a0a645160e0087e4..41202c0153c75fda1c5eb90ea3a2f09178ba6df9 100644
--- a/entity/SalesprojectCompetition_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
+++ b/entity/SalesprojectCompetition_entity/entityfields/attributes/children/objecttype_param/valueProcess.js
@@ -1,3 +1,3 @@
 import("system.result");
 
-result.string("Organisation");
\ No newline at end of file
+result.string("Organisation");
diff --git a/entity/Salesproject_entity/entityfields/keywordphase/children/containername_param/valueProcess.js b/entity/SalesprojectCompetition_entity/entityfields/keywordphases/children/containername_param/valueProcess.js
similarity index 60%
rename from entity/Salesproject_entity/entityfields/keywordphase/children/containername_param/valueProcess.js
rename to entity/SalesprojectCompetition_entity/entityfields/keywordphases/children/containername_param/valueProcess.js
index 0fda06efff26a459feed87a3433a92ff99b14171..d74e92060b4f3939402f40b792aee139e5f73b00 100644
--- a/entity/Salesproject_entity/entityfields/keywordphase/children/containername_param/valueProcess.js
+++ b/entity/SalesprojectCompetition_entity/entityfields/keywordphases/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.salesprojectPhase());
\ No newline at end of file
+result.string($KeywordRegistry.salesprojectPhase());
diff --git a/entity/SalesprojectCompetition_entity/entityfields/keywordprice_politics/children/containername_param/valueProcess.js b/entity/SalesprojectCompetition_entity/entityfields/keywordprice_politics/children/containername_param/valueProcess.js
deleted file mode 100644
index a76a727534152d479a8b4cbef548371ef4224dc0..0000000000000000000000000000000000000000
--- a/entity/SalesprojectCompetition_entity/entityfields/keywordprice_politics/children/containername_param/valueProcess.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-import("KeywordRegistry_basic");
-
-result.string($KeywordRegistry.salesprojectPricePolitics());
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/entityfields/keywordpricepolitics/children/containername_param/valueProcess.js b/entity/SalesprojectCompetition_entity/entityfields/keywordpricepolitics/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..8ddda743906a3a7af1ac9036d21925bd20100e9f
--- /dev/null
+++ b/entity/SalesprojectCompetition_entity/entityfields/keywordpricepolitics/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.salesprojectPricePolitics());
diff --git a/entity/SalesprojectCompetition_entity/entityfields/keywordstate/children/containername_param/valueProcess.js b/entity/SalesprojectCompetition_entity/entityfields/keywordstate/children/containername_param/valueProcess.js
deleted file mode 100644
index 542db3e9e7ca6cd30cc2d00f8144e106e0dca2c3..0000000000000000000000000000000000000000
--- a/entity/SalesprojectCompetition_entity/entityfields/keywordstate/children/containername_param/valueProcess.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-import("KeywordRegistry_basic");
-
-result.string($KeywordRegistry.salesprojectCompetitionState());
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/entityfields/keywordstates/children/containername_param/valueProcess.js b/entity/SalesprojectCompetition_entity/entityfields/keywordstates/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..d86b5c3b6fb28f749eead8761de6aa4f6266d817
--- /dev/null
+++ b/entity/SalesprojectCompetition_entity/entityfields/keywordstates/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.salesprojectCompetitionState());
diff --git a/entity/SalesprojectCompetition_entity/entityfields/keywordstrenght/children/containername_param/valueProcess.js b/entity/SalesprojectCompetition_entity/entityfields/keywordstrenght/children/containername_param/valueProcess.js
deleted file mode 100644
index cae1ead3876117be7f9a2c2be4fcc91f3f3b5964..0000000000000000000000000000000000000000
--- a/entity/SalesprojectCompetition_entity/entityfields/keywordstrenght/children/containername_param/valueProcess.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-import("KeywordRegistry_basic");
-
-result.string($KeywordRegistry.salesprojectStrenght());
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/entityfields/keywordstrenghts/children/containername_param/valueProcess.js b/entity/SalesprojectCompetition_entity/entityfields/keywordstrenghts/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b71211967e4a28e997057fbcd50ace129832a7c6
--- /dev/null
+++ b/entity/SalesprojectCompetition_entity/entityfields/keywordstrenghts/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.salesprojectStrenght());
diff --git a/entity/SalesprojectCompetition_entity/entityfields/keywordweakness/children/containername_param/valueProcess.js b/entity/SalesprojectCompetition_entity/entityfields/keywordweaknesses/children/containername_param/valueProcess.js
similarity index 90%
rename from entity/SalesprojectCompetition_entity/entityfields/keywordweakness/children/containername_param/valueProcess.js
rename to entity/SalesprojectCompetition_entity/entityfields/keywordweaknesses/children/containername_param/valueProcess.js
index 1f3ec844e7b00069d9f8bb49e3f1842402b71bdd..3cfb460e6aa8e27222a301e2e80bd2270aff72bb 100644
--- a/entity/SalesprojectCompetition_entity/entityfields/keywordweakness/children/containername_param/valueProcess.js
+++ b/entity/SalesprojectCompetition_entity/entityfields/keywordweaknesses/children/containername_param/valueProcess.js
@@ -3,4 +3,4 @@ import("Keyword_lib");
 import("KeywordRegistry_basic");
 
 var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectWeakness(), "ORGANISATION.WEAKNESS");
-result.string(sql);
\ No newline at end of file
+result.string(sql);
diff --git a/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod b/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod
index 0d0c6958258a7f614ddfdb5fefdb589d4075130d..becd248bbd77bd68ee37faf2b71d92354084d292 100644
--- a/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod
+++ b/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod
@@ -75,9 +75,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/SalesprojectForecast_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js</valueProcess>
-          <documentation>%aditoprj%/entity/SalesprojectForecast_entity/entityfields/keywordproductgroupcodes/children/containername_param/documentation.adoc</documentation>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
diff --git a/entity/SalesprojectForecast_entity/entityfields/keywordproductgroupcodes/children/containername_param/documentation.adoc b/entity/SalesprojectForecast_entity/entityfields/keywordproductgroupcodes/children/containername_param/documentation.adoc
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/entity/SalesprojectForecast_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js b/entity/SalesprojectForecast_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js
index 0881ceab5803df2043bdf3ca34277137e48b6a6b..e0b3a6dd6b49bace8935531285f8defc51731f36 100644
--- a/entity/SalesprojectForecast_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js
+++ b/entity/SalesprojectForecast_entity/entityfields/keywordproductgroupcodes/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.productGroupcode());
\ No newline at end of file
+result.string($KeywordRegistry.productGroupcode());
diff --git a/entity/SalesprojectMember_entity/SalesprojectMember_entity.aod b/entity/SalesprojectMember_entity/SalesprojectMember_entity.aod
index bac19d2e222c5d52d3278b86abff4a73fbb251f2..62534b1cb44a7a65d9450393b2d41b32995d0be4 100644
--- a/entity/SalesprojectMember_entity/SalesprojectMember_entity.aod
+++ b/entity/SalesprojectMember_entity/SalesprojectMember_entity.aod
@@ -98,7 +98,7 @@
       <children>
         <entityParameter>
           <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/SalesprojectMember_entity/entityfields/currentcontact/children/ContactId_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/SalesprojectMember_entity/entityfields/currentcontact/children/contactid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
@@ -148,8 +148,9 @@ TODO: intuitive möglichkeit, auf dend Stand aus Relation zurückzusetzen... akt
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/SalesprojectMember_entity/entityfields/keywordmemberroles/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
diff --git a/entity/SalesprojectMember_entity/entityfields/keywordmemberroles/children/containername_param/valueProcess.js b/entity/SalesprojectMember_entity/entityfields/keywordmemberroles/children/containername_param/valueProcess.js
index 7042000352a08048c56df02c22a9a1af2b70830d..038f4a4295e2517b9326f918abfcd73b80ef03f5 100644
--- a/entity/SalesprojectMember_entity/entityfields/keywordmemberroles/children/containername_param/valueProcess.js
+++ b/entity/SalesprojectMember_entity/entityfields/keywordmemberroles/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.salesprojectMemberRole());
\ No newline at end of file
+result.string($KeywordRegistry.salesprojectMemberRole());
diff --git a/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod b/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod
index aba44317376e981cc9864b5540ebf433e5cb418f..6d2e5169831d0f148786e37bdf637807eecf8ab1 100644
--- a/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod
+++ b/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod
@@ -68,8 +68,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/SalesprojectSource_entity/entityfields/keywordsources/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
diff --git a/entity/SalesprojectSource_entity/entityfields/keywordsources/children/containername_param/valueProcess.js b/entity/SalesprojectSource_entity/entityfields/keywordsources/children/containername_param/valueProcess.js
index c2806676a54f2d6c4dd76dd80551413e4ef9cc2a..0647d1069c4169a051c04c030264607f02702454 100644
--- a/entity/SalesprojectSource_entity/entityfields/keywordsources/children/containername_param/valueProcess.js
+++ b/entity/SalesprojectSource_entity/entityfields/keywordsources/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.salesprojectSource());
\ No newline at end of file
+result.string($KeywordRegistry.salesprojectSource());
diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod
index 29c788355bd388815e39500992384f2fa419efa3..a2022eaa27d58328c677a3cbd998e940dbe4df20 100644
--- a/entity/Salesproject_entity/Salesproject_entity.aod
+++ b/entity/Salesproject_entity/Salesproject_entity.aod
@@ -39,7 +39,7 @@
     <entityField>
       <name>PHASE</name>
       <title>Phase</title>
-      <consumer>KeywordPhase</consumer>
+      <consumer>KeywordPhases</consumer>
       <mandatory v="true" />
     </entityField>
     <entityField>
@@ -78,7 +78,7 @@
     <entityField>
       <name>STATE</name>
       <title>Status</title>
-      <consumer>KeywordState</consumer>
+      <consumer>KeywordStates</consumer>
       <mandatory v="true" />
     </entityField>
     <entityField>
@@ -157,6 +157,7 @@
       <name>SalesprojectCompetitions</name>
       <title>Competition</title>
       <fieldType>DEPENDENCY_OUT</fieldType>
+      <selectionMode>MULTI</selectionMode>
       <dependency>
         <name>dependency</name>
         <entityName>SalesprojectCompetition_entity</entityName>
@@ -248,6 +249,7 @@
       <title>New offer</title>
       <description>Opens the Offer context in NEW-Mode and fills salesproject and contact.</description>
       <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newoffer/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CART</iconId>
     </entityActionField>
     <entityConsumer>
       <name>Timetrackings</name>
@@ -351,6 +353,7 @@
       <title>New time tracking</title>
       <description>Opens the time tracking context in new-mode for the selected salesproject</description>
       <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newtimetracking/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:STOPWATCH</iconId>
     </entityActionField>
     <entityConsumer>
       <name>KeywordProbabilties</name>
@@ -362,13 +365,15 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
+          <title></title>
           <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/keywordprobabilties/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
     <entityConsumer>
-      <name>KeywordState</name>
+      <name>KeywordStates</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
@@ -377,13 +382,14 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/keywordstate/children/containername_param/valueProcess.js</valueProcess>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/keywordstates/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
     <entityConsumer>
-      <name>KeywordPhase</name>
+      <name>KeywordPhases</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
@@ -392,8 +398,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/keywordphase/children/containername_param/valueProcess.js</valueProcess>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/keywordphases/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -403,6 +410,8 @@
       <title>New activity</title>
       <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
       <iconId>NEON:HISTORY</iconId>
+      <tooltip>New activity</tooltip>
+      <tooltipProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
     </entityActionField>
     <entityField>
       <name>DAYS_NOTACTIVE</name>
@@ -411,6 +420,34 @@
       <state>READONLY</state>
       <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/days_notactive/valueProcess.js</valueProcess>
     </entityField>
+    <entityConsumer>
+      <name>KeywordWonLost</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <selectionMode>MULTI</selectionMode>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/keywordwonlost/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <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>
+    </entityField>
     <entityProvider>
       <name>Salesprojects</name>
       <fieldType>DEPENDENCY_IN</fieldType>
@@ -448,14 +485,14 @@
       <onDBUpdate>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <linkInformation>
         <linkInformation>
-          <name>4c96cc1e-fe7f-4f7f-93c8-5ceeb9e0a56b</name>
+          <name>02eb2f4c-3b85-409f-ac13-c8b26804da44</name>
           <tableName>SALESPROJECT</tableName>
           <primaryKey>SALESPROJECTID</primaryKey>
           <isUIDTable v="true" />
           <readonly v="false" />
         </linkInformation>
         <linkInformation>
-          <name>701d5159-3b17-4ba9-879f-fce34375411e</name>
+          <name>485af2f8-d91d-442f-89c7-c44915dda990</name>
           <tableName>ORGANISATION</tableName>
           <primaryKey>ORGANISATIONID</primaryKey>
           <isUIDTable v="false" />
@@ -523,6 +560,14 @@
           <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>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Salesproject_entity/entityfields/keywordphases/children/containername_param/valueProcess.js b/entity/Salesproject_entity/entityfields/keywordphases/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..d74e92060b4f3939402f40b792aee139e5f73b00
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/keywordphases/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.salesprojectPhase());
diff --git a/entity/Salesproject_entity/entityfields/keywordprobabilties/children/containername_param/valueProcess.js b/entity/Salesproject_entity/entityfields/keywordprobabilties/children/containername_param/valueProcess.js
index 6ca842dd15dc19ccf7e8af70272fabaee25756af..ac59463181f9370f389bb466248fb9696b50449d 100644
--- a/entity/Salesproject_entity/entityfields/keywordprobabilties/children/containername_param/valueProcess.js
+++ b/entity/Salesproject_entity/entityfields/keywordprobabilties/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.salesprojectProbability());
\ No newline at end of file
+result.string($KeywordRegistry.salesprojectProbability());
diff --git a/entity/Salesproject_entity/entityfields/keywordstate/children/containername_param/valueProcess.js b/entity/Salesproject_entity/entityfields/keywordstate/children/containername_param/valueProcess.js
deleted file mode 100644
index 9604353462b5f896fe861ef98813706bc705a3e7..0000000000000000000000000000000000000000
--- a/entity/Salesproject_entity/entityfields/keywordstate/children/containername_param/valueProcess.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-import("KeywordRegistry_basic");
-
-result.string($KeywordRegistry.salesprojectState());
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/keywordstates/children/containername_param/valueProcess.js b/entity/Salesproject_entity/entityfields/keywordstates/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b81ba69778aa69005ee7051dd84ce6e684944331
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/keywordstates/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.salesprojectState());
diff --git a/entity/Salesproject_entity/entityfields/keywordwonlost/children/containername_param/code.js b/entity/Salesproject_entity/entityfields/keywordwonlost/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..cbd1c681941578fe0b1e5234bd3c80837eaaae0a
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/keywordwonlost/children/containername_param/code.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.salesprojectWonLost());
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/keywordwonlost/children/containername_param/valueProcess.js b/entity/Salesproject_entity/entityfields/keywordwonlost/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..cfe4e46f28f8f4af7c16aeb186446ecad2a69a61
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/keywordwonlost/children/containername_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.salesprojectWonLost());
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/newactivity/tooltipProcess.js b/entity/Salesproject_entity/entityfields/newactivity/tooltipProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c71e677c22663c2295e524aa7f3ed3dd571724d7
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/newactivity/tooltipProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.string(translate.text("New activity"));
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/reasons/displayValueProcess.js b/entity/Salesproject_entity/entityfields/reasons/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..deb08ee45373586274083118dfdd81ee1b5c1c21
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/reasons/displayValueProcess.js
@@ -0,0 +1,6 @@
+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/mandatoryProcess.js b/entity/Salesproject_entity/entityfields/reasons/mandatoryProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..086a5d36d49678a0e352341b792f65b46d756025
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/reasons/mandatoryProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("system.vars");
+
+// IDs: SalesprojectState Order and Lost
+var res = vars.get("$field.STATE") && (vars.get("$field.STATE") == 'd8a60f60-a4e6-46ee-88ec-bac53e1afedd' || vars.get("$field.STATE") == '130bb53a-a97e-455e-8f34-8d445e985474');
+result.string(res);
\ 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..47fe8c4030f97a558b35b9483b8e4c9765d02c1c
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/reasons/possibleItemsProcess.js
@@ -0,0 +1,9 @@
+/*import("system.vars");
+import("system.result");
+import("system.db");
+
+var res = db.table("select KEYID, TITLE from AB_KEYWORD_ENTRY where CONTAINER = 'SalesprojectWonLost'");
+
+result.object(res);
+*/
+// TODO: multiple select
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/reasons/stateProcess.js b/entity/Salesproject_entity/entityfields/reasons/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..871eb8d93a8a009c0653f8863444cd2e6a3e2eba
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/reasons/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.vars");
+
+// IDs: SalesprojectState Order and Lost
+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");
diff --git a/entity/Salesproject_entity/entityfields/reasons/valueProcess.js b/entity/Salesproject_entity/entityfields/reasons/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..33b4bb87b0471fc747abb0399b51f83efa12ed41
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/reasons/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("system.vars");
+
+// 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("");
\ No newline at end of file
diff --git a/entity/Salesproject_entity/recordcontainers/db/fromClauseProcess.js b/entity/Salesproject_entity/recordcontainers/db/fromClauseProcess.js
index 0548f92efeb71ee8742f7b18d5a6a7be24a529a4..18dead55d190447fd1b51dc319abe52f8479776a 100644
--- a/entity/Salesproject_entity/recordcontainers/db/fromClauseProcess.js
+++ b/entity/Salesproject_entity/recordcontainers/db/fromClauseProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("system.result");
 
-result.string("SALESPROJECT join ORGANISATION on CONTACT_ID = ORGANISATIONID ");
\ No newline at end of file
+result.string("SALESPROJECT left join ORGANISATION on CONTACT_ID = ORGANISATIONID ");
\ No newline at end of file
diff --git a/entity/Salesproject_entity/recordcontainers/db/onDBInsert.js b/entity/Salesproject_entity/recordcontainers/db/onDBInsert.js
index 46e16c3d687c541b66574fd13cfaa2c00fff2b87..47067fdfe5c683417c30b9d75a0d753324d8534d 100644
--- a/entity/Salesproject_entity/recordcontainers/db/onDBInsert.js
+++ b/entity/Salesproject_entity/recordcontainers/db/onDBInsert.js
@@ -1,5 +1,6 @@
 import("system.vars");
 import("Salesproject_lib");
 
-Salesproject.insertMilestone(vars.getString("$field.SALESPROJECTID"), 1, vars.get("$field.PHASE"), false);
-Salesproject.insertMilestone(vars.getString("$field.SALESPROJECTID"), 2, vars.get("$field.STATE"), true);
\ No newline at end of file
+// TODO Milestone Value is still an Integer but has to be a String (varchar)
+// Salesproject.insertMilestone(vars.getString("$field.SALESPROJECTID"), 1, vars.get("$field.PHASE"), false);
+// Salesproject.insertMilestone(vars.getString("$field.SALESPROJECTID"), 2, vars.get("$field.STATE"), true);
\ 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 222926e7c12d2e84a2f409dd5b6698a8bbbf4c87..20ec5095d25b8ff9dc6674aa5aae7c7053612abd 100644
--- a/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js
+++ b/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js
@@ -1,22 +1,78 @@
+import("system.neon");
+import("system.translate");
 import("system.vars");
 import("Salesproject_lib");
+import("Sql_lib");
+import("system.db");
 
-var typeValue, fieldVar
+var needToUpdateForecast = false;
 
 // create Milestones if changed
 vars.get("$local.changed").forEach(function(fieldName) {
+    var typeValue;
+    var fieldVar;
+    
     switch (fieldName) {
         case "SALESPROJECT.PHASE":
             typeValue = 1;
             fieldVar = "$field.PHASE";
             break;
         case "SALESPROJECT.STATE":
+            // Milestone
             typeValue = 2;
             fieldVar = "$field.STATE";
+            
+            // set COMPETITION / OFFER to Lost
+            
+            // Lost
+            if ( vars.get("$field.STATE") == 'd8a60f60-a4e6-46ee-88ec-bac53e1afedd')
+            {
+                _updateDataToLost("OFFER", $KeywordRegistry.offerStatus());
+                _updateReasons();
+            }
+            // Order
+            else if(vars.get("$field.STATE") == '130bb53a-a97e-455e-8f34-8d445e985474')
+            {
+                _updateDataToLost("SALESPROJECT_COMPETITION", $KeywordRegistry.salesprojectCompetitionState()); 
+                _updateReasons();
+            }
+            else
+                _updateReasons("del");
             break;
     }
 
     if (typeValue) {
-        Salesproject.insertMilestone(vars.getString("$field.SALESPROJECTID"), typeValue, vars.getString(fieldVar), true);
+        needToUpdateForecast = true;
+        // TODO Milestone Value is still an Integer but has to be a String (varchar) -> use new keywords
+        //Salesproject.insertMilestone(vars.getString("$field.SALESPROJECTID"), typeValue, vars.getString(fieldVar));
     }
-});
\ No newline at end of file
+});
+
+if (needToUpdateForecast)
+    Salesproject.notifyToUpdateForecast();
+
+neon.refresh()
+
+function _updateReasons(pDelete)
+{
+    var reasons = "";
+    if(!pDelete)
+        vars.getString("field.REASONS");
+    if(reasons != null)
+        db.updateData("SALESPROJECT", ["REASONS"], null, [reasons], SqlCondition.equals("SALESPROJECT.SALESPROJECTID", vars.getString("$field.SALESPROJECTID"), "1=2"));
+}
+
+/**
+ * when project is state offer sets competitors to lost, when project is state lost sets offer to lost
+ * @param pTable {String}
+ * @param pContainer {String}
+ */
+function _updateDataToLost(pTable, pContainer )
+{
+     var statusLost = db.table(SqlCondition.begin()
+                .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", pContainer)
+                .andPrepare("AB_KEYWORD_ENTRY.TITLE", "Lost")
+                .buildSql("select KEYID from AB_KEYWORD_ENTRY", "1=2"));
+    
+    db.updateData(pTable, ["STATUS"], null, statusLost, SqlCondition.equals(pTable + ".SALESPROJECT_ID", vars.getString("$field.SALESPROJECTID"), "1=2"));
+}
diff --git a/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/reasons.displayvalue/expression.js b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/reasons.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..c62430bd64ea66ed105355c5d58f78cfdf9a785c
--- /dev/null
+++ b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/reasons.displayvalue/expression.js
@@ -0,0 +1,7 @@
+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/Stock_entity/Stock_entity.aod b/entity/Stock_entity/Stock_entity.aod
index 2fc3e2fa984debad331b4c7eb62e5aab4bd2cf0e..e4d16494ed79e54da4fd449e3cfc50c497faa464 100644
--- a/entity/Stock_entity/Stock_entity.aod
+++ b/entity/Stock_entity/Stock_entity.aod
@@ -55,13 +55,13 @@
         <entityDependency>
           <name>aa9264c8-2c96-4a7a-94c7-e38bc0ae7df3</name>
           <entityName>Product_entity</entityName>
-          <fieldName>Stock</fieldName>
+          <fieldName>Stocks</fieldName>
           <isConsumer v="false" />
         </entityDependency>
         <entityDependency>
           <name>e6168337-2f0b-4135-be16-1a4fd1c2ff65</name>
           <entityName>Product_entity</entityName>
-          <fieldName>StockCount</fieldName>
+          <fieldName>StockCounts</fieldName>
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
@@ -102,8 +102,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Stock_entity/entityfields/keywordwarehouses/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
diff --git a/entity/Stock_entity/entityfields/keywordwarehouses/children/containername_param/valueProcess.js b/entity/Stock_entity/entityfields/keywordwarehouses/children/containername_param/valueProcess.js
index 96b4ada951a400b65e3e56e0885a3f0d196db22c..9442a9d9807cb1443be2561fba749abb57d13037 100644
--- a/entity/Stock_entity/entityfields/keywordwarehouses/children/containername_param/valueProcess.js
+++ b/entity/Stock_entity/entityfields/keywordwarehouses/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.stockWarehouse());
\ No newline at end of file
+result.string($KeywordRegistry.stockWarehouse());
diff --git a/entity/Task_entity/Task_entity.aod b/entity/Task_entity/Task_entity.aod
index 7bbeed559ca783194d000902fe7ae43c7f5081f1..d8a80cb3455bca38e153dfe561bb51ceed72ad50 100644
--- a/entity/Task_entity/Task_entity.aod
+++ b/entity/Task_entity/Task_entity.aod
@@ -34,14 +34,16 @@
       <mandatory v="true" />
       <groupable v="true" />
       <valueProcess>%aditoprj%/entity/Task_entity/entityfields/status/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Task_entity/entityfields/status/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>PRIORITY</name>
       <title>priority</title>
-      <consumer>KeywordPriority</consumer>
+      <consumer>KeywordPriorities</consumer>
       <mandatory v="true" />
       <groupable v="true" />
       <valueProcess>%aditoprj%/entity/Task_entity/entityfields/priority/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Task_entity/entityfields/priority/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>REQUESTOR_CONTACT_ID</name>
@@ -154,8 +156,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Task_entity/entityfields/keywordstates/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -169,8 +172,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
+          <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/Task_entity/entityfields/keywordtypes/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -181,17 +185,20 @@
       <dependency>
         <name>dependency</name>
         <entityName>ModuleTree_entity</entityName>
-        <fieldName>TreeProvider</fieldName>
+        <fieldName>TreeProviders</fieldName>
       </dependency>
       <children>
         <entityParameter>
-          <name>ID</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/moduletrees/children/id/valueProcess.js</valueProcess>
-          <description>PARAMETER</description>
+          <name>ID_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/moduletrees/children/id_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+          <mandatory v="false" />
         </entityParameter>
         <entityParameter>
-          <name>ContextName</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/moduletrees/children/contextname/valueProcess.js</valueProcess>
+          <name>ContextName_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/moduletrees/children/contextname_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+          <mandatory v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -221,12 +228,15 @@
       <title>New activity</title>
       <onActionProcess>%aditoprj%/entity/Task_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
       <iconId>NEON:HISTORY</iconId>
+      <tooltip>New activity</tooltip>
+      <tooltipProcess>%aditoprj%/entity/Task_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
     </entityActionField>
     <entityActionField>
       <name>newTask</name>
       <fieldType>ACTION</fieldType>
       <title>New task</title>
       <onActionProcess>%aditoprj%/entity/Task_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
+      <actionOrder v="1" />
       <iconId>VAADIN:TASKS</iconId>
     </entityActionField>
     <entityParameter>
@@ -240,7 +250,7 @@
       <description>PARAMETER</description>
     </entityParameter>
     <entityConsumer>
-      <name>KeywordPriority</name>
+      <name>KeywordPriorities</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
@@ -249,8 +259,9 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>containerName_param</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/keywordpriority/children/containername_param/valueProcess.js</valueProcess>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/keywordpriorities/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
@@ -259,6 +270,7 @@
       <fieldType>ACTION</fieldType>
       <title>New offer</title>
       <onActionProcess>%aditoprj%/entity/Task_entity/entityfields/newoffer/onActionProcess.js</onActionProcess>
+      <actionOrder v="0" />
       <iconId>VAADIN:CART</iconId>
     </entityActionField>
     <entityField>
@@ -267,6 +279,7 @@
       <consumer>KeywordProgress</consumer>
       <mandatory v="true" />
       <valueProcess>%aditoprj%/entity/Task_entity/entityfields/progress/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Task_entity/entityfields/progress/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityConsumer>
       <name>KeywordProgress</name>
@@ -305,7 +318,6 @@
       <name>db</name>
       <alias>Data_alias</alias>
       <orderClauseProcess>%aditoprj%/entity/Task_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <onDBInsert>%aditoprj%/entity/Task_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBDelete>%aditoprj%/entity/Task_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
       <linkInformation>
         <linkInformation>
diff --git a/entity/Task_entity/afterOperatingState.js b/entity/Task_entity/afterOperatingState.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..86428a9e4fb03c37531d0e845989459a4e88843a 100644
--- a/entity/Task_entity/afterOperatingState.js
+++ b/entity/Task_entity/afterOperatingState.js
@@ -0,0 +1,15 @@
+import("system.util");
+import("system.db");
+import("system.neon");
+import("system.vars");
+import("Context_lib");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW 
+    && vars.exists("$param.RowId_param") && vars.get("$param.RowId_param")
+    && vars.exists("$param.ObjectId_param") && vars.get("$param.ObjectId_param"))
+{
+    neon.addRecord(null, "Links", {
+        "OBJECT_TYPE" : vars.get("$param.ObjectId_param"), 
+        "OBJECT_ROWID" : vars.get("$param.RowId_param")
+    });
+}
\ No newline at end of file
diff --git a/entity/Attribute_entity/entityfields/keywordattributetype/children/containername_param/valueProcess.js b/entity/Task_entity/entityfields/keywordpriorities/children/containername_param/valueProcess.js
similarity index 63%
rename from entity/Attribute_entity/entityfields/keywordattributetype/children/containername_param/valueProcess.js
rename to entity/Task_entity/entityfields/keywordpriorities/children/containername_param/valueProcess.js
index dc6dfca332983312b5fc1181f8a357c182ac603f..c021b9c4f2f5568c2c3a5ef6ee1507b35ea52d09 100644
--- a/entity/Attribute_entity/entityfields/keywordattributetype/children/containername_param/valueProcess.js
+++ b/entity/Task_entity/entityfields/keywordpriorities/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.attributeType());
\ No newline at end of file
+result.string($KeywordRegistry.taskPriority());
diff --git a/entity/Task_entity/entityfields/keywordstates/children/containername_param/valueProcess.js b/entity/Task_entity/entityfields/keywordstates/children/containername_param/valueProcess.js
index 729ee3d1884b9c7884bcbb920f3f9c4f5c54738a..8590e504f05a614b1c0c4b74901bb008feb47b94 100644
--- a/entity/Task_entity/entityfields/keywordstates/children/containername_param/valueProcess.js
+++ b/entity/Task_entity/entityfields/keywordstates/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.taskStatus());
\ No newline at end of file
+result.string($KeywordRegistry.taskStatus());
diff --git a/entity/Task_entity/entityfields/keywordtypes/children/containername_param/valueProcess.js b/entity/Task_entity/entityfields/keywordtypes/children/containername_param/valueProcess.js
index 308d10e96440d31d0a01fc030db90ecf88ff9350..b139734c3ee81a4a9d2ce291db74ea5241044e81 100644
--- a/entity/Task_entity/entityfields/keywordtypes/children/containername_param/valueProcess.js
+++ b/entity/Task_entity/entityfields/keywordtypes/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.taskType());
\ No newline at end of file
+result.string($KeywordRegistry.taskType());
diff --git a/entity/Task_entity/entityfields/moduletrees/children/contextname/documentation.adoc b/entity/Task_entity/entityfields/moduletrees/children/contextname/documentation.adoc
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/entity/Task_entity/entityfields/moduletrees/children/contextname/valueProcess.js b/entity/Task_entity/entityfields/moduletrees/children/contextname_param/valueProcess.js
similarity index 100%
rename from entity/Task_entity/entityfields/moduletrees/children/contextname/valueProcess.js
rename to entity/Task_entity/entityfields/moduletrees/children/contextname_param/valueProcess.js
diff --git a/entity/Task_entity/entityfields/moduletrees/children/id/valueProcess.js b/entity/Task_entity/entityfields/moduletrees/children/id_param/valueProcess.js
similarity index 100%
rename from entity/Task_entity/entityfields/moduletrees/children/id/valueProcess.js
rename to entity/Task_entity/entityfields/moduletrees/children/id_param/valueProcess.js
diff --git a/entity/Task_entity/entityfields/newactivity/tooltipProcess.js b/entity/Task_entity/entityfields/newactivity/tooltipProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c71e677c22663c2295e524aa7f3ed3dd571724d7
--- /dev/null
+++ b/entity/Task_entity/entityfields/newactivity/tooltipProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.string(translate.text("New activity"));
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/priority/displayValueProcess.js b/entity/Task_entity/entityfields/priority/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..83b9c66a79bc612731842800f4351568ff30aaa4
--- /dev/null
+++ b/entity/Task_entity/entityfields/priority/displayValueProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string(KeywordUtils.getViewValue($KeywordRegistry.taskPriority(), vars.get("$field.PRIORITY")));
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/priority/valueProcess.js b/entity/Task_entity/entityfields/priority/valueProcess.js
index 81d3400864d415754cd22dd9057ed91d14563ffd..97f66840686af1eee7e86efa71572140e845aa17 100644
--- a/entity/Task_entity/entityfields/priority/valueProcess.js
+++ b/entity/Task_entity/entityfields/priority/valueProcess.js
@@ -4,4 +4,4 @@ import("system.neon");
 import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    result.string("4467b33c-3a68-4c8b-ba4a-1eb666a6c774");
\ No newline at end of file
+    result.string("09072b59-d12f-469b-acbd-18a28232ff70");
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/progress/displayValueProcess.js b/entity/Task_entity/entityfields/progress/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..5acf17db5fe33b5b796c2cdddac86d75e9ccf067
--- /dev/null
+++ b/entity/Task_entity/entityfields/progress/displayValueProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string(KeywordUtils.getViewValue($KeywordRegistry.taskProgress(), vars.get("$field.PROGRESS")));
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/status/displayValueProcess.js b/entity/Task_entity/entityfields/status/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..759b610257ea2c3b32d2835923f9951bc6455d21
--- /dev/null
+++ b/entity/Task_entity/entityfields/status/displayValueProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string(KeywordUtils.getViewValue($KeywordRegistry.taskStatus(), vars.get("$field.STATUS")));
\ No newline at end of file
diff --git a/entity/Task_entity/recordcontainers/db/onDBInsert.js b/entity/Task_entity/recordcontainers/db/onDBInsert.js
deleted file mode 100644
index 832d42b125946d7c2ffa983cfa4a91f03c21670f..0000000000000000000000000000000000000000
--- a/entity/Task_entity/recordcontainers/db/onDBInsert.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import("system.vars");
-import("system.util");
-import("system.db");
-
-if (vars.exists("$param.ObjectType_param") && vars.exists("$param.RowId_param") && vars.get("$param.ObjectType_param") && vars.get("$param.RowId_param"))
-    db.insertData("TASKLINK", ["TASKLINKID", "OBJECT_TYPE", "OBJECT_ROWID", "TASK_ID"], null,
-        [
-            util.getNewUUID(),
-            vars.get("$param.ObjectType_param"),
-            vars.get("$param.RowId_param"),
-            vars.get("$field.TASKID")
-        ]);
\ No newline at end of file
diff --git a/entity/Turnover_entity/Turnover_entity.aod b/entity/Turnover_entity/Turnover_entity.aod
index 0fdd436343368d07d8afa194e2b9e02d1e5f5525..ef2ca815299e3cf054a9ca866278907c4264adc0 100644
--- a/entity/Turnover_entity/Turnover_entity.aod
+++ b/entity/Turnover_entity/Turnover_entity.aod
@@ -51,7 +51,7 @@
       <description>PARAMETER</description>
     </entityParameter>
     <entityProvider>
-      <name>FilteredTurnover</name>
+      <name>FilteredTurnovers</name>
       <fieldType>DEPENDENCY_IN</fieldType>
       <children>
         <entityParameter>
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index 5c651ab9b9f64375957196797f7526a7c48f92f5..128002a25d9fa6533e606f4c20dc14465c18ba57 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -682,7 +682,7 @@
       <key>Standard / Individual</key>
     </entry>
     <entry>
-      <key>Please update the forecast.</key>
+      <key>Please update the ${FORECAST_ENGLISH}.</key>
     </entry>
     <entry>
       <key>no Project planned</key>
@@ -2568,6 +2568,40 @@
     <entry>
       <key>Progress</key>
     </entry>
+    <entry>
+      <key>Module</key>
+    </entry>
+    <entry>
+      <key>7 days net</key>
+      <value></value>
+    </entry>
+    <entry>
+      <key>carriage free</key>
+    </entry>
+    <entry>
+      <key>Delivery terms</key>
+      <value></value>
+    </entry>
+    <entry>
+      <key>8 days 2% discount, 30 days net</key>
+      <value></value>
+    </entry>
+    <entry>
+      <key>CIF</key>
+    </entry>
+    <entry>
+      <key>ex works</key>
+    </entry>
+    <entry>
+      <key>Relation</key>
+    </entry>
+    <entry>
+      <key>Payment terms</key>
+    </entry>
+    <entry>
+      <key>30 days net</key>
+      <value></value>
+    </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 1b9c09e7083008c9ffcb9c30fe897116e87090f6..f560f4c32cf8506aed672627ecd5725d913e1867 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -718,6 +718,7 @@
     </entry>
     <entry>
       <key>75 %</key>
+      <value></value>
     </entry>
     <entry>
       <key>100 %</key>
@@ -1165,7 +1166,8 @@
       <key>Standard / Individual</key>
     </entry>
     <entry>
-      <key>Please update the forecast.</key>
+      <key>Please update the ${FORECAST_ENGLISH}.</key>
+      <value>Bitte den Forecast überprüfen.</value>
     </entry>
     <entry>
       <key>Industry</key>
@@ -1778,6 +1780,7 @@
     </entry>
     <entry>
       <key>Product_technic</key>
+      <value>Produkt_Technik</value>
     </entry>
     <entry>
       <key>Moldova (Republic of)</key>
@@ -1809,9 +1812,11 @@
     </entry>
     <entry>
       <key>Project_duration</key>
+      <value>Projekt_Dauer</value>
     </entry>
     <entry>
       <key>Company_internationality</key>
+      <value>Unternehmen_Internationalität</value>
     </entry>
     <entry>
       <key>Eritrea</key>
@@ -1847,6 +1852,7 @@
     </entry>
     <entry>
       <key>Product_functionality</key>
+      <value>Produkt_Funktionalität</value>
     </entry>
     <entry>
       <key>Bulgaria</key>
@@ -2026,6 +2032,7 @@
     </entry>
     <entry>
       <key>Other_existing Customer</key>
+      <value>Sonstiges_Bestandskunde</value>
     </entry>
     <entry>
       <key>Uzbekistan</key>
@@ -2165,6 +2172,7 @@
     </entry>
     <entry>
       <key>Product_mobile use</key>
+      <value>Produkt_Mobiler Einsatz</value>
     </entry>
     <entry>
       <key>Samoa</key>
@@ -2228,6 +2236,7 @@
     </entry>
     <entry>
       <key>Company_size</key>
+      <value>Unternehmen_Größe</value>
     </entry>
     <entry>
       <key>Republic of Kosovo</key>
@@ -2263,6 +2272,7 @@
     </entry>
     <entry>
       <key>Product_industry knowhow</key>
+      <value>Produkt_Branchen KnowHow</value>
     </entry>
     <entry>
       <key>Progress</key>
@@ -2286,6 +2296,7 @@
     </entry>
     <entry>
       <key>Project_volume</key>
+      <value>Projekt_Volumen</value>
     </entry>
     <entry>
       <key>Ireland</key>
@@ -2537,6 +2548,7 @@
     </entry>
     <entry>
       <key>Project_reference</key>
+      <value>Projekt_Referenz</value>
     </entry>
     <entry>
       <key>Vanuatu</key>
@@ -2592,6 +2604,7 @@
     </entry>
     <entry>
       <key>Product_flexibility</key>
+      <value>Produkt_Flexibilität</value>
     </entry>
     <entry>
       <key>China</key>
@@ -2711,6 +2724,7 @@
     </entry>
     <entry>
       <key>Other_unknown</key>
+      <value>Sonstiges_Unbekannt</value>
     </entry>
     <entry>
       <key>Isle of Man</key>
@@ -2734,6 +2748,7 @@
     </entry>
     <entry>
       <key>Product_GUI</key>
+      <value>Produkt_GUI</value>
     </entry>
     <entry>
       <key>${GENDER_OTHER}</key>
@@ -2865,6 +2880,7 @@
     </entry>
     <entry>
       <key>Company_industry knowhow</key>
+      <value>Unternehmen_Branchen KnowHow</value>
     </entry>
     <entry>
       <key>Monaco</key>
@@ -3316,6 +3332,39 @@
       <key>Japan</key>
       <value>Japan</value>
     </entry>
+    <entry>
+      <key>7 days net</key>
+      <value>7 Tage netto</value>
+    </entry>
+    <entry>
+      <key>carriage free</key>
+      <value>frei Haus</value>
+    </entry>
+    <entry>
+      <key>Delivery terms</key>
+    </entry>
+    <entry>
+      <key>8 days 2% discount, 30 days net</key>
+      <value>8 Tage 2% Skonto, 30 Tage netto</value>
+    </entry>
+    <entry>
+      <key>CIF</key>
+    </entry>
+    <entry>
+      <key>ex works</key>
+      <value>ab Werk</value>
+    </entry>
+    <entry>
+      <key>Relation</key>
+    </entry>
+    <entry>
+      <key>Payment term</key>
+      <value>Zahlungsbedingung</value>
+    </entry>
+    <entry>
+      <key>30 days net</key>
+      <value>30 Tage netto</value>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index 89482f2d09e3521ea6104087cea0e09388248fd3..01e1885eece3e9b58259a1a2af47c4c3d937e7cd 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -688,7 +688,8 @@
       <key>Standard / Individual</key>
     </entry>
     <entry>
-      <key>Please update the forecast.</key>
+      <key>Please update the ${FORECAST_ENGLISH}.</key>
+      <value>Please update the forecast.</value>
     </entry>
     <entry>
       <key>no Project planned</key>
@@ -2595,6 +2596,36 @@
     <entry>
       <key>Progress</key>
     </entry>
+    <entry>
+      <key>Module</key>
+    </entry>
+    <entry>
+      <key>7 days net</key>
+    </entry>
+    <entry>
+      <key>carriage free</key>
+    </entry>
+    <entry>
+      <key>Delivery terms</key>
+    </entry>
+    <entry>
+      <key>8 days 2% discount, 30 days net</key>
+    </entry>
+    <entry>
+      <key>CIF</key>
+    </entry>
+    <entry>
+      <key>ex works</key>
+    </entry>
+    <entry>
+      <key>Relation</key>
+    </entry>
+    <entry>
+      <key>Payment terms</key>
+    </entry>
+    <entry>
+      <key>30 days net</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonContext/Prod2prod/Prod2prod.aod b/neonContext/Prod2prod/Prod2prod.aod
index 7573a9c94d9de960e75caf33d7b66f716ad36ef9..6e83065bd6555fc554f824366bed9c56a4bd20d8 100644
--- a/neonContext/Prod2prod/Prod2prod.aod
+++ b/neonContext/Prod2prod/Prod2prod.aod
@@ -5,7 +5,7 @@
   <comment>Prod2Prod is mainly used for the parts list of products</comment>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterview>Prod2prodFilter_view</filterview>
-  <preview>Prod2prodPreview_view</preview>
+  <editview>Prod2ProdEdit_view</editview>
   <entity>Prod2prod_entity</entity>
   <references>
     <neonViewReference>
@@ -13,8 +13,8 @@
       <view>Prod2prodFilter_view</view>
     </neonViewReference>
     <neonViewReference>
-      <name>2a037997-7a55-4005-956e-fccf12ccc9d2</name>
-      <view>Prod2prodPreview_view</view>
+      <name>428b22a1-427f-4547-a478-964442078bc1</name>
+      <view>Prod2ProdEdit_view</view>
     </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonView/ActivityDetail_view/ActivityDetail_view.aod b/neonView/ActivityDetail_view/ActivityDetail_view.aod
index 3409dd71072b0365b04e4a66f649950932adbe10..8f868d95abff5cafc58cdb2d240ed5992ae7064c 100644
--- a/neonView/ActivityDetail_view/ActivityDetail_view.aod
+++ b/neonView/ActivityDetail_view/ActivityDetail_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>OfferDetail_template</name>
+      <name>OfferInfo</name>
       <editMode v="false" />
       <showDrawer v="false" />
       <entityField>#ENTITY</entityField>
diff --git a/neonView/ActivityEdit_view/ActivityEdit_view.aod b/neonView/ActivityEdit_view/ActivityEdit_view.aod
index bf43d84f217ac17265446677618128a118db6b13..87d9a877e00ae5ba725725e52dcbf3a212b3fd75 100644
--- a/neonView/ActivityEdit_view/ActivityEdit_view.aod
+++ b/neonView/ActivityEdit_view/ActivityEdit_view.aod
@@ -12,7 +12,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>Edit_template</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/ActivityFilter_view/ActivityFilter_view.aod b/neonView/ActivityFilter_view/ActivityFilter_view.aod
index 804d4a1e67f0d15b58db8f6e4d4c44d0310624e8..7ba6d9910cf60784c52230b75deb48e17456f8f5 100644
--- a/neonView/ActivityFilter_view/ActivityFilter_view.aod
+++ b/neonView/ActivityFilter_view/ActivityFilter_view.aod
@@ -56,7 +56,7 @@
   </layout>
   <children>
     <timelineViewTemplate>
-      <name>TimelineFilter_template</name>
+      <name>ActivitiesTimeline</name>
       <dateField>ENTRYDATE</dateField>
       <titleField>SUBJECT_DETAILS</titleField>
       <descriptionField>INFO</descriptionField>
@@ -64,7 +64,7 @@
       <entityField>#ENTITY</entityField>
     </timelineViewTemplate>
     <tableViewTemplate>
-      <name>table_template</name>
+      <name>ActivitiesTable</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
@@ -90,7 +90,7 @@
       </columns>
     </tableViewTemplate>
     <treetableViewTemplate>
-      <name>Treetable_template</name>
+      <name>ActivitiesTreetable</name>
       <titleField>SUBJECT</titleField>
       <descriptionField>INFO</descriptionField>
       <iconField>#IMAGE</iconField>
diff --git a/neonView/ActivityLinkFilter_view/ActivityLinkFilter_view.aod b/neonView/ActivityLinkFilter_view/ActivityLinkFilter_view.aod
index d7491b7ecf0d1e22859cd53718fcbc68c1b872bc..ac53a5312a8ed5ae03fce3d2952324f294a30007 100644
--- a/neonView/ActivityLinkFilter_view/ActivityLinkFilter_view.aod
+++ b/neonView/ActivityLinkFilter_view/ActivityLinkFilter_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>ActivityLinkFilter_template</name>
+      <name>Objects</name>
       <autoNewRow v="true" />
       <entityField>#ENTITY</entityField>
       <columns>
diff --git a/neonView/ActivityLinkPreview_view/ActivityLinkPreview_view.aod b/neonView/ActivityLinkPreview_view/ActivityLinkPreview_view.aod
index 64fab27c810ac15b9c769004b460853b1c234e17..64977bdef4397b8c245e4697e9d36d4c6a8e2310 100644
--- a/neonView/ActivityLinkPreview_view/ActivityLinkPreview_view.aod
+++ b/neonView/ActivityLinkPreview_view/ActivityLinkPreview_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>linkData</name>
+      <name>Links</name>
       <entityField>#ENTITY</entityField>
       <fields>
         <entityFieldLink>
diff --git a/neonView/ActivityPreview_view/ActivityPreview_view.aod b/neonView/ActivityPreview_view/ActivityPreview_view.aod
index d66ba53d9b79cb61b994009094c0e4d2492f7b92..f75f507b82508624e57685efc117374d6a4d3d0c 100644
--- a/neonView/ActivityPreview_view/ActivityPreview_view.aod
+++ b/neonView/ActivityPreview_view/ActivityPreview_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <cardViewTemplate>
-      <name>Card_template</name>
+      <name>Header</name>
       <iconField>ICON</iconField>
       <titleField>SUBJECT</titleField>
       <descriptionField>ENTRYDATE</descriptionField>
@@ -17,7 +17,7 @@
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
-      <name>ActivityInfo_template</name>
+      <name>Info</name>
       <showDrawer v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/ActivityTimeline_view/ActivityTimeline_view.aod b/neonView/ActivityTimeline_view/ActivityTimeline_view.aod
index 1ae938948772d216ef8400867da46773c7290300..0fcfc440b3c25a2626ac4c3cdac604d759d6b029 100644
--- a/neonView/ActivityTimeline_view/ActivityTimeline_view.aod
+++ b/neonView/ActivityTimeline_view/ActivityTimeline_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <timelineViewTemplate>
-      <name>Timeline_template</name>
+      <name>Activities</name>
       <dateField>ENTRYDATE</dateField>
       <titleField>SUBJECT_DETAILS</titleField>
       <descriptionField>INFO</descriptionField>
diff --git a/neonView/AddressEdit_view/AddressEdit_view.aod b/neonView/AddressEdit_view/AddressEdit_view.aod
index 74be246944169d13557a1832e318c6e292494ddb..93637ca8d7d896c180317240146a2da5300c6ddd 100644
--- a/neonView/AddressEdit_view/AddressEdit_view.aod
+++ b/neonView/AddressEdit_view/AddressEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>Generic_template</name>
+      <name>Edit</name>
       <showDrawer v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/AddressFilter_view/AddressFilter_view.aod b/neonView/AddressFilter_view/AddressFilter_view.aod
index 4c33eb1e108945b9ab272e0bff15b1ecfe24f2ce..aa879324206a348549e2b644ad427f66a0c7b677 100644
--- a/neonView/AddressFilter_view/AddressFilter_view.aod
+++ b/neonView/AddressFilter_view/AddressFilter_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>Table_template</name>
+      <name>Addresses</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/AddressList_view/AddressList_view.aod b/neonView/AddressList_view/AddressList_view.aod
index ab11f3f168a5411ca39e31ab8e53f2c98c64af55..02ba77391983a320ccb7838a54f78b2cd4804202 100644
--- a/neonView/AddressList_view/AddressList_view.aod
+++ b/neonView/AddressList_view/AddressList_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <titledListViewTemplate>
-      <name>TitledList_template</name>
+      <name>Addresses</name>
       <highlightingField>IS_STANDARD</highlightingField>
       <entityField>#ENTITY</entityField>
       <columns>
diff --git a/neonView/AdressMultiEdit_view/AdressMultiEdit_view.aod b/neonView/AdressMultiEdit_view/AdressMultiEdit_view.aod
index e343aeea66dcf9790222f33a2c13d9042203bc91..c809fb7987e73d0da7f9b8a7b0322a837db11303 100644
--- a/neonView/AdressMultiEdit_view/AdressMultiEdit_view.aod
+++ b/neonView/AdressMultiEdit_view/AdressMultiEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericMultipleViewTemplate>
-      <name>GenericMultiple_template</name>
+      <name>MultipleEdit</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/AnyContactLookup_view/AnyContactLookup_view.aod b/neonView/AnyContactLookup_view/AnyContactLookup_view.aod
index c6ca766c71de2386e22e89289b7d6581866cd8c8..c79be24e0e5cad712240557bcbba42694e0d1647 100644
--- a/neonView/AnyContactLookup_view/AnyContactLookup_view.aod
+++ b/neonView/AnyContactLookup_view/AnyContactLookup_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>relationLookupList_template</name>
+      <name>Relations</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/AppointmentEdit_view/AppointmentEdit_view.aod b/neonView/AppointmentEdit_view/AppointmentEdit_view.aod
index 81d642c40d54f51d68ef3246add18df5e97f9d6a..4261115e362fb32a275da57841b89d23da34ebfb 100644
--- a/neonView/AppointmentEdit_view/AppointmentEdit_view.aod
+++ b/neonView/AppointmentEdit_view/AppointmentEdit_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <appointmentEditViewTemplate>
-      <name>AppointmentEditTemplate</name>
+      <name>Edit</name>
       <summaryField>SUMMARY</summaryField>
       <descriptionField>DESCRIPTION</descriptionField>
       <beginField>BEGIN</beginField>
diff --git a/neonView/AppointmentPreview_view/AppointmentPreview_view.aod b/neonView/AppointmentPreview_view/AppointmentPreview_view.aod
index e01251e96f33f802d2feb985a6c3ac6829679bc9..bcb316222de7d2a9f4f87453b650d9599708cdd7 100644
--- a/neonView/AppointmentPreview_view/AppointmentPreview_view.aod
+++ b/neonView/AppointmentPreview_view/AppointmentPreview_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <appointmentPreviewViewTemplate>
-      <name>AppointmentPreviewTemplate</name>
+      <name>Appointments</name>
       <summaryField>SUMMARY</summaryField>
       <descriptionField>DESCRIPTION</descriptionField>
       <beginField>BEGIN</beginField>
diff --git a/neonView/AttributeEdit_view/AttributeEdit_view.aod b/neonView/AttributeEdit_view/AttributeEdit_view.aod
index 510c41d637b0abd1b91a31368667097d5b6a7591..4cb7fc75e48944418b78354cb6f84162b4aa1388 100644
--- a/neonView/AttributeEdit_view/AttributeEdit_view.aod
+++ b/neonView/AttributeEdit_view/AttributeEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>AttrEdit_template</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/AttributeFilter_view/AttributeFilter_view.aod b/neonView/AttributeFilter_view/AttributeFilter_view.aod
index 08bcb8f5ecfa8157443befceebc07e9af05f9932..18ecb2acf99f5e863c1d3438e7e976914bf59f0a 100644
--- a/neonView/AttributeFilter_view/AttributeFilter_view.aod
+++ b/neonView/AttributeFilter_view/AttributeFilter_view.aod
@@ -11,7 +11,7 @@
   </layout>
   <children>
     <treetableViewTemplate>
-      <name>Treetable_template</name>
+      <name>AttributesTreetable</name>
       <parentField>ATTRIBUTE_PARENT_ID</parentField>
       <favoriteActionGroup1>AttributeActions</favoriteActionGroup1>
       <titleField>ATTRIBUTE_NAME</titleField>
@@ -19,7 +19,7 @@
       <entityField>#ENTITY</entityField>
     </treetableViewTemplate>
     <tableViewTemplate>
-      <name>Table_template</name>
+      <name>AttributesTable</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/AttributePreview_view/AttributePreview_view.aod b/neonView/AttributePreview_view/AttributePreview_view.aod
index 4ebba8e503f92b6b617857ec1904bcb729c47d19..71780be9b2cb317a32ace8562481f24a8c1865ac 100644
--- a/neonView/AttributePreview_view/AttributePreview_view.aod
+++ b/neonView/AttributePreview_view/AttributePreview_view.aod
@@ -9,13 +9,13 @@
   </layout>
   <children>
     <cardViewTemplate>
-      <name>Attr_template</name>
+      <name>Head</name>
       <titleField>ATTRIBUTE_NAME</titleField>
       <subtitleField>ATTRIBUTE_TYPE</subtitleField>
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
-      <name>Generic</name>
+      <name>Info</name>
       <showDrawer v="true" />
       <entityField>#ENTITY</entityField>
       <title></title>
diff --git a/neonView/AttributeRelationEdit_view/AttributeRelationEdit_view.aod b/neonView/AttributeRelationEdit_view/AttributeRelationEdit_view.aod
index 4efbd08f92a2d2c18e136462bb1a5c4eba923ddf..6f811c93d2c2c7bbcc7154bc0d7bf58d38616674 100644
--- a/neonView/AttributeRelationEdit_view/AttributeRelationEdit_view.aod
+++ b/neonView/AttributeRelationEdit_view/AttributeRelationEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericMultipleViewTemplate>
-      <name>MultiEdit</name>
+      <name>MultipleEdit</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/AttributeRelationFilter_view/AttributeRelationFilter_view.aod b/neonView/AttributeRelationFilter_view/AttributeRelationFilter_view.aod
index 4af75c78d41b0401670df10fb650ecc7d0d8aa63..5ae7277d3355d458bb1abd202746e38fc88239eb 100644
--- a/neonView/AttributeRelationFilter_view/AttributeRelationFilter_view.aod
+++ b/neonView/AttributeRelationFilter_view/AttributeRelationFilter_view.aod
@@ -11,7 +11,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>Table</name>
+      <name>RelationsTable</name>
       <autoNewRow v="true" />
       <entityField>#ENTITY</entityField>
       <columns>
@@ -26,7 +26,7 @@
       </columns>
     </tableViewTemplate>
     <treetableViewTemplate>
-      <name>Tree</name>
+      <name>RelationsTreetable</name>
       <parentField>ATTRIBUTE_PARENT_ID</parentField>
       <titleField>AB_ATTRIBUTE_ID</titleField>
       <descriptionField>ATTRIBUTERELATION_VALUE</descriptionField>
diff --git a/neonView/AttributeRelationPreviewList/AttributeRelationPreviewList.aod b/neonView/AttributeRelationPreviewList/AttributeRelationPreviewList.aod
index 2429f48f5b7cfd2fc79af5fbc25a7940323ceb1b..140920fae809d2ed8ed96a578783a911bb6d5d19 100644
--- a/neonView/AttributeRelationPreviewList/AttributeRelationPreviewList.aod
+++ b/neonView/AttributeRelationPreviewList/AttributeRelationPreviewList.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <titledListViewTemplate>
-      <name>attributes</name>
+      <name>Relations</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/AttributeTree_view/AttributeTree_view.aod b/neonView/AttributeTree_view/AttributeTree_view.aod
index b1bb94f4487d39a4d56c56d9706b3c3b99eebcc5..609401d8e798e075cc6aa61a1439dfa6d79237f3 100644
--- a/neonView/AttributeTree_view/AttributeTree_view.aod
+++ b/neonView/AttributeTree_view/AttributeTree_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <treetableViewTemplate>
-      <name>Treetable</name>
+      <name>Attributes</name>
       <parentField>ATTRIBUTE_PARENT_ID</parentField>
       <titleField>ATTRIBUTE_NAME</titleField>
       <descriptionField>ATTRIBUTE_TYPE</descriptionField>
diff --git a/neonView/AttributeUsageFilter_view/AttributeUsageFilter_view.aod b/neonView/AttributeUsageFilter_view/AttributeUsageFilter_view.aod
index 15c3fd3b9577143daee960012808a8e9b8937e4f..54f22164044ef324dfb226854d888f5fcfc9b80e 100644
--- a/neonView/AttributeUsageFilter_view/AttributeUsageFilter_view.aod
+++ b/neonView/AttributeUsageFilter_view/AttributeUsageFilter_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>UsageTable_template</name>
+      <name>Usages</name>
       <autoNewRow v="true" />
       <entityField>#ENTITY</entityField>
       <columns>
diff --git a/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod b/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod
index 37108cc1078ff2bcbad081a3022b48f8b2f857d0..6df948ba82771edd17e0e9e62ed7b62c3ff8f598 100644
--- a/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod
+++ b/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericMultipleViewTemplate>
-      <name>UsageEdit_template</name>
+      <name>MultipleEdit</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/CommunicationEdit_view/CommunicationEdit_view.aod b/neonView/CommunicationEdit_view/CommunicationEdit_view.aod
index d1994e867c426810fd742c594a61418cdd201eb2..ef1c9f29b7987308dd4ea4323a8d8a52b4ec2fa8 100644
--- a/neonView/CommunicationEdit_view/CommunicationEdit_view.aod
+++ b/neonView/CommunicationEdit_view/CommunicationEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>Generic_template</name>
+      <name>Edit</name>
       <entityField>#ENTITY</entityField>
       <fields>
         <entityFieldLink>
diff --git a/neonView/CommunicationFilter_view/CommunicationFilter_view.aod b/neonView/CommunicationFilter_view/CommunicationFilter_view.aod
index 75f9f952b9f74905af4ea436511fd6016ca62eff..f2c25b10006cd08e70e1433febc38e28ff73c81f 100644
--- a/neonView/CommunicationFilter_view/CommunicationFilter_view.aod
+++ b/neonView/CommunicationFilter_view/CommunicationFilter_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>Table_template</name>
+      <name>Communications</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/CommunicationList_view/CommunicationList_view.aod b/neonView/CommunicationList_view/CommunicationList_view.aod
index 83862dcc001a0f46a4abe8cc2c6b89641f311196..55a25ba5586a941812df58ba027f84ff2e7722d9 100644
--- a/neonView/CommunicationList_view/CommunicationList_view.aod
+++ b/neonView/CommunicationList_view/CommunicationList_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <titledListViewTemplate>
-      <name>TitledList_template</name>
+      <name>Communications</name>
       <highlightingField>IS_STANDARD</highlightingField>
       <entityField>#ENTITY</entityField>
       <columns>
diff --git a/neonView/CommunicationMultiEdit_view/CommunicationMultiEdit_view.aod b/neonView/CommunicationMultiEdit_view/CommunicationMultiEdit_view.aod
index b75bc136ec2b14511621975f5997b66ded946ce2..92befc338fc2f55aecada3d31f7de7d3651fb916 100644
--- a/neonView/CommunicationMultiEdit_view/CommunicationMultiEdit_view.aod
+++ b/neonView/CommunicationMultiEdit_view/CommunicationMultiEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericMultipleViewTemplate>
-      <name>GenericMultiple_template</name>
+      <name>MultipleEdit</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/ContextLookup_view/ContextLookup_view.aod b/neonView/ContextLookup_view/ContextLookup_view.aod
index 71d36233d46d7a753b266393bc6f198214a42519..168e81c53040692f4af92091caf76c505f90b2c4 100644
--- a/neonView/ContextLookup_view/ContextLookup_view.aod
+++ b/neonView/ContextLookup_view/ContextLookup_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>contexts</name>
+      <name>Contexts</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/ContractEdit_view/ContractEdit_view.aod b/neonView/ContractEdit_view/ContractEdit_view.aod
index 1332afb97ccb1dca96ae7bb33dd4cef0d912bbed..bb0778925dd2c86167e34ce7099eb0d8aba78925 100644
--- a/neonView/ContractEdit_view/ContractEdit_view.aod
+++ b/neonView/ContractEdit_view/ContractEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>Generic</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/ContractFilter_view/ContractFilter_view.aod b/neonView/ContractFilter_view/ContractFilter_view.aod
index ed39ce42020ae746c45d057de2778f3adf79c146..b8ad46e1ede5ad2418d9d84d3b4e633149bc34bf 100644
--- a/neonView/ContractFilter_view/ContractFilter_view.aod
+++ b/neonView/ContractFilter_view/ContractFilter_view.aod
@@ -31,7 +31,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>Table_template</name>
+      <name>Contracts</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/ContractPreview_view/ContractPreview_view.aod b/neonView/ContractPreview_view/ContractPreview_view.aod
index 804d7114af9bfbdbe0d8dd1930c10bc87c2eb7c3..83643ff5f00bfaa24581f749c52de73212d534ab 100644
--- a/neonView/ContractPreview_view/ContractPreview_view.aod
+++ b/neonView/ContractPreview_view/ContractPreview_view.aod
@@ -9,14 +9,14 @@
   </layout>
   <children>
     <cardViewTemplate>
-      <name>ContractHeader_template</name>
+      <name>Header</name>
       <iconField>IMAGE</iconField>
       <titleField>CONTRACTCODE_DISPLAY_fieldGroup</titleField>
       <descriptionField>CONTACT_ID</descriptionField>
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
-      <name>ContractInfo_template</name>
+      <name>Details</name>
       <showDrawer v="true" />
       <drawerCaption>Details</drawerCaption>
       <entityField>#ENTITY</entityField>
@@ -44,7 +44,7 @@
       </fields>
     </genericViewTemplate>
     <genericViewTemplate>
-      <name>ContractDescription_template</name>
+      <name>Info</name>
       <showDrawer v="true" />
       <drawerCaption>Further informations</drawerCaption>
       <entityField>#ENTITY</entityField>
diff --git a/neonView/CountriesPreview_view/CountriesPreview_view.aod b/neonView/CountriesPreview_view/CountriesPreview_view.aod
index 9c96c4f1e8be9095098fda0cc30e1241816160b1..ec4d97c042a4ca457ca718ab3efb438d0fa423ae 100644
--- a/neonView/CountriesPreview_view/CountriesPreview_view.aod
+++ b/neonView/CountriesPreview_view/CountriesPreview_view.aod
@@ -9,14 +9,14 @@
   </layout>
   <children>
     <cardViewTemplate>
-      <name>basicdata_card_template</name>
+      <name>Header</name>
       <iconField>FLAG</iconField>
       <titleField>NAME_TRANSLATED</titleField>
       <descriptionField>ISO2</descriptionField>
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
-      <name>Generic</name>
+      <name>Info</name>
       <editMode v="false" />
       <showDrawer v="false" />
       <entityField>#ENTITY</entityField>
diff --git a/neonView/CountriesTable_view/CountriesTable_view.aod b/neonView/CountriesTable_view/CountriesTable_view.aod
index 463226fd16fd9b513f5c9add337ca32bc530bbf9..483072f9185a38100e45d66fc6be2e8d53aa4b65 100644
--- a/neonView/CountriesTable_view/CountriesTable_view.aod
+++ b/neonView/CountriesTable_view/CountriesTable_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>Table</name>
+      <name>Countries</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/DefaultLookup_view/DefaultLookup_view.aod b/neonView/DefaultLookup_view/DefaultLookup_view.aod
index 8f437165f69a8828a2f4daf19e7fb494744377f4..7bbd869c39065baabc1156b8d5f7ebba3ee74499 100644
--- a/neonView/DefaultLookup_view/DefaultLookup_view.aod
+++ b/neonView/DefaultLookup_view/DefaultLookup_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <listViewTemplate>
-      <name>ListTemplate</name>
+      <name>DefaultList</name>
       <entityField>#ENTITY</entityField>
     </listViewTemplate>
   </children>
diff --git a/neonView/DocumentEdit_view/DocumentEdit_view.aod b/neonView/DocumentEdit_view/DocumentEdit_view.aod
index af265987d1c99be75d8a6838628990ce2453e4a6..d9ec8e2effe90bbd497512e908b4030ffc079d74 100644
--- a/neonView/DocumentEdit_view/DocumentEdit_view.aod
+++ b/neonView/DocumentEdit_view/DocumentEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>DocumentGeneric_template</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/DocumentFilter_view/DocumentFilter_view.aod b/neonView/DocumentFilter_view/DocumentFilter_view.aod
index b0b20b24fc91fb3fb71c30a2fcec7109f21de7e1..2ffa7885c64f37b5a08445e66de5d7dcf817cd90 100644
--- a/neonView/DocumentFilter_view/DocumentFilter_view.aod
+++ b/neonView/DocumentFilter_view/DocumentFilter_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>Table_template</name>
+      <name>Documents</name>
       <favoriteActionGroup1>Document_actions</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
       <columns>
diff --git a/neonView/DocumentList_view/DocumentList_view.aod b/neonView/DocumentList_view/DocumentList_view.aod
index cd69801e1975c0b8d24f5884947288a02d97ac05..3cec5ca4c7e948b4ad5fc7c7a236efc6ebc10840 100644
--- a/neonView/DocumentList_view/DocumentList_view.aod
+++ b/neonView/DocumentList_view/DocumentList_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <actionListViewTemplate>
-      <name>ActionList_template</name>
+      <name>Actions</name>
       <titleField>NAME</titleField>
       <descriptionField>DESCRIPTION</descriptionField>
       <iconField>ICON</iconField>
diff --git a/neonView/DocumentPreview_view/DocumentPreview_view.aod b/neonView/DocumentPreview_view/DocumentPreview_view.aod
index dd5ea73a519265c26ff7821454c2a1a29dfabbac..83d58bbe2bd7c7e8310b4ab3b449a07c8f306fb7 100644
--- a/neonView/DocumentPreview_view/DocumentPreview_view.aod
+++ b/neonView/DocumentPreview_view/DocumentPreview_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <cardViewTemplate>
-      <name>DocumentPreview_card</name>
+      <name>Head</name>
       <iconField>PREVIEW_IMAGE</iconField>
       <titleField>NAME</titleField>
       <descriptionField>DESCRIPTION</descriptionField>
@@ -17,7 +17,7 @@
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
-      <name>DocumentPreview_generic</name>
+      <name>Info</name>
       <editMode v="false" />
       <showDrawer v="true" />
       <entityField>#ENTITY</entityField>
diff --git a/neonView/FacebookTimeline_view/FacebookTimeline_view.aod b/neonView/FacebookTimeline_view/FacebookTimeline_view.aod
index f04081147474915cb205fb7605f20d4da7637766..49a680672cc1ae299ee393f57752d923407aebb6 100644
--- a/neonView/FacebookTimeline_view/FacebookTimeline_view.aod
+++ b/neonView/FacebookTimeline_view/FacebookTimeline_view.aod
@@ -61,7 +61,7 @@
   </layout>
   <children>
     <webContentViewTemplate>
-      <name>Facebook_TIMELINE_TEMPLATE</name>
+      <name>Timeline</name>
       <entityField>FACEBOOK_TIMELINE</entityField>
     </webContentViewTemplate>
   </children>
diff --git a/neonView/KeywordAttributeEdit_view/KeywordAttributeEdit_view.aod b/neonView/KeywordAttributeEdit_view/KeywordAttributeEdit_view.aod
index 69c0e3fca07a06e8c913995bd618eb19b3e88465..7143d9b146199b7288486514f8ef6cc18ad952ce 100644
--- a/neonView/KeywordAttributeEdit_view/KeywordAttributeEdit_view.aod
+++ b/neonView/KeywordAttributeEdit_view/KeywordAttributeEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>mainGeneric</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/KeywordAttributeFilter_view/KeywordAttributeFilter_view.aod b/neonView/KeywordAttributeFilter_view/KeywordAttributeFilter_view.aod
index 629a4295a16efb0c1ca7db69ba6cc1e1ffcd5586..38a2f04dce6660e90c7c9b8a7062e8919d508728 100644
--- a/neonView/KeywordAttributeFilter_view/KeywordAttributeFilter_view.aod
+++ b/neonView/KeywordAttributeFilter_view/KeywordAttributeFilter_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>table</name>
+      <name>Attributes</name>
       <autoNewRow v="true" />
       <entityField>#ENTITY</entityField>
       <columns>
diff --git a/neonView/KeywordAttributeRelationRows_view/KeywordAttributeRelationRows_view.aod b/neonView/KeywordAttributeRelationRows_view/KeywordAttributeRelationRows_view.aod
index 617f416bf487f3c1ad7fa1cbb1d18cc8d22a4337..ba0e4b164349d848f40f11aa5567ed66ade8e720 100644
--- a/neonView/KeywordAttributeRelationRows_view/KeywordAttributeRelationRows_view.aod
+++ b/neonView/KeywordAttributeRelationRows_view/KeywordAttributeRelationRows_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>main</name>
+      <name>Relations</name>
       <autoNewRow v="true" />
       <entityField>#ENTITY</entityField>
       <columns>
diff --git a/neonView/KeywordEntryEdit_view/KeywordEntryEdit_view.aod b/neonView/KeywordEntryEdit_view/KeywordEntryEdit_view.aod
index 90a553cbf1ba7105f93e65b1a7626776cbeed7e5..b9eb4775cd1d474bcf006cb46b8ae810cc267d36 100644
--- a/neonView/KeywordEntryEdit_view/KeywordEntryEdit_view.aod
+++ b/neonView/KeywordEntryEdit_view/KeywordEntryEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>mainData</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod b/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod
index 107d221157400fd66c0bca8377f191310dcc3e7b..f4475555e512b2306eafe46439d457853aa00710 100644
--- a/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod
+++ b/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>table</name>
+      <name>EntriesTable</name>
       <entityField>#ENTITY</entityField>
       <title></title>
       <columns>
@@ -41,7 +41,7 @@
       </columns>
     </tableViewTemplate>
     <treetableViewTemplate>
-      <name>treeTable</name>
+      <name>EntriesTreetable</name>
       <titleField>TITLE</titleField>
       <descriptionField>KEYID</descriptionField>
       <entityField>#ENTITY</entityField>
diff --git a/neonView/KeywordEntryPreview_view/KeywordEntryPreview_view.aod b/neonView/KeywordEntryPreview_view/KeywordEntryPreview_view.aod
index 81e59a0f9d9be3cf73f77d9e3d592d99ef53989b..b3a9be781f359c13e06efe90b0b7b128c42db810 100644
--- a/neonView/KeywordEntryPreview_view/KeywordEntryPreview_view.aod
+++ b/neonView/KeywordEntryPreview_view/KeywordEntryPreview_view.aod
@@ -9,14 +9,14 @@
   </layout>
   <children>
     <cardViewTemplate>
-      <name>card</name>
+      <name>Header</name>
       <titleField>TITLE</titleField>
       <subtitleField>CONTAINER</subtitleField>
       <descriptionField>KEYID</descriptionField>
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
-      <name>data</name>
+      <name>Info</name>
       <showDrawer v="true" />
       <entityField>#ENTITY</entityField>
       <title></title>
diff --git a/neonView/ModuleTree_view/ModuleTree_view.aod b/neonView/ModuleTree_view/ModuleTree_view.aod
index 255c830a3d576467c148efbcc80f6f90635319d9..6e4933f25b43c9240012aa3d0fade6cec2b60cff 100644
--- a/neonView/ModuleTree_view/ModuleTree_view.aod
+++ b/neonView/ModuleTree_view/ModuleTree_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <treetableViewTemplate>
-      <name>Treetable</name>
+      <name>Modules</name>
       <parentField>PARENT_ID</parentField>
       <favoriteActionGroup3></favoriteActionGroup3>
       <titleField>TITLE</titleField>
diff --git a/neonView/ObjectLookup_view/ObjectLookup_view.aod b/neonView/ObjectLookup_view/ObjectLookup_view.aod
index b6116c46e2266e551978c902600a6281349ec249..982340c8c1f39fca053f04b7ce58654d7321468e 100644
--- a/neonView/ObjectLookup_view/ObjectLookup_view.aod
+++ b/neonView/ObjectLookup_view/ObjectLookup_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>objects</name>
+      <name>Objects</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/ObjectRelationEdit_view/ObjectRelationEdit_view.aod b/neonView/ObjectRelationEdit_view/ObjectRelationEdit_view.aod
index e5313525dd2ff8c63778f90097b547334c3d9df3..a780ec92502385463a4add59809492474b81c4f0 100644
--- a/neonView/ObjectRelationEdit_view/ObjectRelationEdit_view.aod
+++ b/neonView/ObjectRelationEdit_view/ObjectRelationEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>Objects</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/ObjectRelationFilter_view/ObjectRelationFilter_view.aod b/neonView/ObjectRelationFilter_view/ObjectRelationFilter_view.aod
index 0730580e0947eb90a26885d6561d3481eac21cfd..ec5b852e12f6127e6957f3eb14df0f5f37708583 100644
--- a/neonView/ObjectRelationFilter_view/ObjectRelationFilter_view.aod
+++ b/neonView/ObjectRelationFilter_view/ObjectRelationFilter_view.aod
@@ -18,10 +18,6 @@
           <name>02c397e9-092b-4df0-be67-0fa3a1b02432</name>
           <entityField>selectedObjectRelationTypeIdProxy</entityField>
         </neonTableColumn>
-        <neonTableColumn>
-          <name>4b44845d-8a70-401d-ba34-379a41d4fc2e</name>
-          <entityField>objectTypeProxy</entityField>
-        </neonTableColumn>
         <neonTableColumn>
           <name>ab25081c-cb63-4d28-87d0-e4c022aac878</name>
           <entityField>rowIdProxy</entityField>
diff --git a/neonView/ObjectRelationPreview_view/ObjectRelationPreview_view.aod b/neonView/ObjectRelationPreview_view/ObjectRelationPreview_view.aod
index 2d823012ed6ce0d76211eceeb3ec27513d5ca101..c5d691f83834286ad1c359f7ffd49ee36db8dd47 100644
--- a/neonView/ObjectRelationPreview_view/ObjectRelationPreview_view.aod
+++ b/neonView/ObjectRelationPreview_view/ObjectRelationPreview_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>Object</name>
+      <name>Objects</name>
       <entityField>#ENTITY</entityField>
       <title>Object</title>
       <fields>
diff --git a/neonView/ObjectTree_view/ObjectTree_view.aod b/neonView/ObjectTree_view/ObjectTree_view.aod
index 0dfda2de7288bd79bb1e3f0bc0b083ca99f9e5f8..6710c70676197aafd97a8fe8b6259869e0f27344 100644
--- a/neonView/ObjectTree_view/ObjectTree_view.aod
+++ b/neonView/ObjectTree_view/ObjectTree_view.aod
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
   <name>ObjectTree_view</name>
-  <title>Asdf</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
     <boxLayout>
@@ -10,13 +9,12 @@
   </layout>
   <children>
     <treetableViewTemplate>
-      <name>Treetable</name>
+      <name>ObjectRelations</name>
       <parentField>PARENT_ID</parentField>
       <titleField>TITLE</titleField>
       <descriptionField>DESCRIPTION</descriptionField>
       <iconField>ICON</iconField>
       <entityField>#ENTITY</entityField>
-      <title></title>
     </treetableViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/OfferDetail_view/OfferDetail_view.aod b/neonView/OfferDetail_view/OfferDetail_view.aod
index c2648f53605983db816ceb6aefc6de4e888ddd29..56bff7179c9ce18bc5567aa0b3be2a9009a7678e 100644
--- a/neonView/OfferDetail_view/OfferDetail_view.aod
+++ b/neonView/OfferDetail_view/OfferDetail_view.aod
@@ -10,12 +10,20 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>OfferDetail_template</name>
+      <name>Details</name>
       <showDrawer v="true" />
       <drawerCaption>Detail</drawerCaption>
       <entityField>#ENTITY</entityField>
       <title></title>
       <fields>
+        <entityFieldLink>
+          <name>f0d0c68a-8437-4d9e-b852-575efaa984e8</name>
+          <entityField>DELIVERYTERMS</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>c66f5e5b-82ad-4f93-9951-d96dfb802dbe</name>
+          <entityField>PAYMENTTERMS</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>8bf2a10e-e7e9-4f33-98cf-4ded02bf68a9</name>
           <entityField>HEADER</entityField>
diff --git a/neonView/OfferEdit_view/OfferEdit_view.aod b/neonView/OfferEdit_view/OfferEdit_view.aod
index 03cec9f4c8bcc0e85f54bae8438b91a2f0554888..6aa17c0dd3005aa6219dc920e8daa215caf54b51 100644
--- a/neonView/OfferEdit_view/OfferEdit_view.aod
+++ b/neonView/OfferEdit_view/OfferEdit_view.aod
@@ -12,7 +12,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>OfferEdit_generic</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
@@ -44,6 +44,14 @@
           <name>ac6f81a2-5012-461a-bcf1-4534182b0973</name>
           <entityField>SALESPROJECT_ID</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>7a9b0943-eb06-4b44-a111-ed4e2749da6a</name>
+          <entityField>DELIVERYTERMS</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>1e98fe37-8d52-4eef-8825-8ea14e7e20b5</name>
+          <entityField>PAYMENTTERMS</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>ed71986f-303c-4118-a895-51ec31ba8775</name>
           <entityField>HEADER</entityField>
diff --git a/neonView/OfferFilter_view/OfferFilter_view.aod b/neonView/OfferFilter_view/OfferFilter_view.aod
index 1bb8a3b058323b96096f007f2e1b1669883ace16..e2b01d35fe1d8cc226bc6c694ab1bfe09239557b 100644
--- a/neonView/OfferFilter_view/OfferFilter_view.aod
+++ b/neonView/OfferFilter_view/OfferFilter_view.aod
@@ -50,7 +50,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>OfferFilter_template</name>
+      <name>Offers</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/OfferPreview_view/OfferPreview_view.aod b/neonView/OfferPreview_view/OfferPreview_view.aod
index 557da913e40a8b37696bffc21ef6dc4f2739730d..360b681417061924a5b9245ed4933c77e547bc19 100644
--- a/neonView/OfferPreview_view/OfferPreview_view.aod
+++ b/neonView/OfferPreview_view/OfferPreview_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <cardViewTemplate>
-      <name>OfferHeader_template</name>
+      <name>Header</name>
       <iconField>IMAGE</iconField>
       <titleField>Offer_OfferCode_VersNr_fieldgroup</titleField>
       <descriptionField>CONTACT_ID</descriptionField>
@@ -17,7 +17,7 @@
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
-      <name>OfferInfo_template</name>
+      <name>Details</name>
       <editMode v="false" />
       <showDrawer v="true" />
       <drawerCaption>Details</drawerCaption>
@@ -46,7 +46,7 @@
       </fields>
     </genericViewTemplate>
     <genericViewTemplate>
-      <name>OfferPrice_template</name>
+      <name>Prices</name>
       <showDrawer v="true" />
       <drawerCaption>Prices</drawerCaption>
       <entityField>#ENTITY</entityField>
@@ -70,7 +70,7 @@
       </fields>
     </genericViewTemplate>
     <genericViewTemplate>
-      <name>Offer_generic</name>
+      <name>Info</name>
       <showDrawer v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/OfferitemFilter_view/OfferitemFilter_view.aod b/neonView/OfferitemFilter_view/OfferitemFilter_view.aod
index 9590a8698511a7517637e0717545ebf2bb63d600..bd3ad7c05f63c15cb25704f44c4d41a091fee02e 100644
--- a/neonView/OfferitemFilter_view/OfferitemFilter_view.aod
+++ b/neonView/OfferitemFilter_view/OfferitemFilter_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>OfferitemFilter_table</name>
+      <name>Offeritems</name>
       <autoNewRow v="true" />
       <entityField>#ENTITY</entityField>
       <columns>
diff --git a/neonView/OfferitemMultiEdit_view/OfferitemMultiEdit_view.aod b/neonView/OfferitemMultiEdit_view/OfferitemMultiEdit_view.aod
index 8d494baa95622d175a43f4bf4e8de88b9c975fdb..cc0d44ea404096dba8e253e485be17d97999ba67 100644
--- a/neonView/OfferitemMultiEdit_view/OfferitemMultiEdit_view.aod
+++ b/neonView/OfferitemMultiEdit_view/OfferitemMultiEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericMultipleViewTemplate>
-      <name>OfferitemData</name>
+      <name>MultipleEdit</name>
       <autoNewRow v="true" />
       <entityField>#ENTITY</entityField>
       <columns>
diff --git a/neonView/OfferitemPreview_view/OfferitemPreview_view.aod b/neonView/OfferitemPreview_view/OfferitemPreview_view.aod
index 0346e38139cea379a4b826288a0e56403dec3eaf..23612067afe53e7b0efc8a43cab7101861e6d0bc 100644
--- a/neonView/OfferitemPreview_view/OfferitemPreview_view.aod
+++ b/neonView/OfferitemPreview_view/OfferitemPreview_view.aod
@@ -9,13 +9,13 @@
   </layout>
   <children>
     <cardViewTemplate>
-      <name>OfferitemPreview_header</name>
+      <name>Header</name>
       <iconField>IMAGE</iconField>
       <titleField>ITEMNAME</titleField>
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
-      <name>Offeritem_generic</name>
+      <name>Info</name>
       <showDrawer v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/Options1_View/Options1_View.aod b/neonView/Options1_View/Options1_View.aod
index 669aac39c3fbb01ed5794d32cfa3a8f689ebc6f6..a670bda68e57bd0bf6daec227781e7cbab14b742 100644
--- a/neonView/Options1_View/Options1_View.aod
+++ b/neonView/Options1_View/Options1_View.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>Generic</name>
+      <name>Options</name>
       <showDrawer v="true" />
       <drawerCaption></drawerCaption>
       <entityField>#ENTITY</entityField>
diff --git a/neonView/Options2_View/Options2_View.aod b/neonView/Options2_View/Options2_View.aod
index 0b91054217f9186770323995d51fcc51d425547e..a49940dfd774833623f16463327b082a48e61b91 100644
--- a/neonView/Options2_View/Options2_View.aod
+++ b/neonView/Options2_View/Options2_View.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>Generic</name>
+      <name>Options</name>
       <showDrawer v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/OrderEdit_view/OrderEdit_view.aod b/neonView/OrderEdit_view/OrderEdit_view.aod
index dfd1bd1b478b5d88adb1782575b9fa63a9c08ec2..23f63cd45cbb9ac60becfee2806f1e55572fce2a 100644
--- a/neonView/OrderEdit_view/OrderEdit_view.aod
+++ b/neonView/OrderEdit_view/OrderEdit_view.aod
@@ -12,7 +12,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>OrderEdit_generic</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/OrderFilter_view/OrderFilter_view.aod b/neonView/OrderFilter_view/OrderFilter_view.aod
index 8759414296e0bf6e1921ad3d3068dc57e296599b..b351b465e4b70fe941479140c7b10b9a256b3aff 100644
--- a/neonView/OrderFilter_view/OrderFilter_view.aod
+++ b/neonView/OrderFilter_view/OrderFilter_view.aod
@@ -50,7 +50,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>OrderFilter_template</name>
+      <name>Orders</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/OrderPreview_view/OrderPreview_view.aod b/neonView/OrderPreview_view/OrderPreview_view.aod
index 80e86b5307565c844102b7048f52e3873db3981f..1806c6b61c7d1d63135fe6b0d0a22e3aa7a386cf 100644
--- a/neonView/OrderPreview_view/OrderPreview_view.aod
+++ b/neonView/OrderPreview_view/OrderPreview_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <cardViewTemplate>
-      <name>OrderHeader_template</name>
+      <name>Header</name>
       <iconField>IMAGE</iconField>
       <titleField>Order_OrderCode_VersNr_fieldgroup</titleField>
       <descriptionField>CONTACT_ID</descriptionField>
@@ -17,7 +17,7 @@
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
-      <name>OrderInfo_template</name>
+      <name>Details</name>
       <editMode v="false" />
       <showDrawer v="true" />
       <drawerCaption>Details</drawerCaption>
@@ -38,7 +38,7 @@
       </fields>
     </genericViewTemplate>
     <genericViewTemplate>
-      <name>OrderPrice_template</name>
+      <name>Prices</name>
       <showDrawer v="true" />
       <drawerCaption>Prices</drawerCaption>
       <entityField>#ENTITY</entityField>
@@ -62,7 +62,7 @@
       </fields>
     </genericViewTemplate>
     <genericViewTemplate>
-      <name>Order_generic</name>
+      <name>Info</name>
       <showDrawer v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/OrderitemFilter_view/OrderitemFilter_view.aod b/neonView/OrderitemFilter_view/OrderitemFilter_view.aod
index 63409f66aea785fe320183af3a09146b09c0f7b0..e5d4b353d19566c56dca00b269ef405b3b1117cc 100644
--- a/neonView/OrderitemFilter_view/OrderitemFilter_view.aod
+++ b/neonView/OrderitemFilter_view/OrderitemFilter_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>OrderitemFilter_table</name>
+      <name>Orderitems</name>
       <autoNewRow v="true" />
       <entityField>#ENTITY</entityField>
       <columns>
diff --git a/neonView/OrderitemMultiEdit_view/OrderitemMultiEdit_view.aod b/neonView/OrderitemMultiEdit_view/OrderitemMultiEdit_view.aod
index 3102dd60c99fe4720a2786a2b10cc2434b8eaa06..e4547bd22d25c1b5f398b41973ebef1ea30d452f 100644
--- a/neonView/OrderitemMultiEdit_view/OrderitemMultiEdit_view.aod
+++ b/neonView/OrderitemMultiEdit_view/OrderitemMultiEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericMultipleViewTemplate>
-      <name>OrderitemData</name>
+      <name>MultipleEdit</name>
       <autoNewRow v="true" />
       <entityField>#ENTITY</entityField>
       <columns>
diff --git a/neonView/OrderitemPreview_view/OrderitemPreview_view.aod b/neonView/OrderitemPreview_view/OrderitemPreview_view.aod
index f0a175961c47fb69242db3e02c25140a9f78e5f3..4aec996c99539d4676f41e4fe259813588b1e627 100644
--- a/neonView/OrderitemPreview_view/OrderitemPreview_view.aod
+++ b/neonView/OrderitemPreview_view/OrderitemPreview_view.aod
@@ -9,14 +9,14 @@
   </layout>
   <children>
     <cardViewTemplate>
-      <name>OrderitemPreview_header</name>
+      <name>Header</name>
       <iconField>IMAGE</iconField>
       <titleField>ITEMNAME</titleField>
       <descriptionField>INFO</descriptionField>
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
-      <name>Orderitem_generic</name>
+      <name>Info</name>
       <showDrawer v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/OrganisationEditDefaults_view/OrganisationEditDefaults_view.aod b/neonView/OrganisationEditDefaults_view/OrganisationEditDefaults_view.aod
index 4c660f02d48e4fce4c8af45f2f21198c2cc3fd55..5cfe3f84cda76bbc6e6429b885e1b5e3aef187c0 100644
--- a/neonView/OrganisationEditDefaults_view/OrganisationEditDefaults_view.aod
+++ b/neonView/OrganisationEditDefaults_view/OrganisationEditDefaults_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>EditDefaults_template</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/OrganisationEdit_view/OrganisationEdit_view.aod b/neonView/OrganisationEdit_view/OrganisationEdit_view.aod
index 3663da44374d333a97dddbdee952647333d17e74..e9d3939a7a0719e935150c77d31005ba3f1b0bd6 100644
--- a/neonView/OrganisationEdit_view/OrganisationEdit_view.aod
+++ b/neonView/OrganisationEdit_view/OrganisationEdit_view.aod
@@ -12,7 +12,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>Edit_template</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/OrganisationFilter_view/OrganisationFilter_view.aod b/neonView/OrganisationFilter_view/OrganisationFilter_view.aod
index a8f5cd47c2dbbb9bb37a9c70b53c31a0b0c7e8df..2fd381072d57ccb087bbe90c89f011d16b156d2e 100644
--- a/neonView/OrganisationFilter_view/OrganisationFilter_view.aod
+++ b/neonView/OrganisationFilter_view/OrganisationFilter_view.aod
@@ -31,7 +31,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>Table_template</name>
+      <name>Organisations</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/OrganisationLookup_view/OrganisationLookup_view.aod b/neonView/OrganisationLookup_view/OrganisationLookup_view.aod
index d51544e0e9ef248bca1a46d11f8c2af2d00401ec..18d8a20c7adf79af78e9d21903d933b10d4d9dd4 100644
--- a/neonView/OrganisationLookup_view/OrganisationLookup_view.aod
+++ b/neonView/OrganisationLookup_view/OrganisationLookup_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>orgLookupList_template</name>
+      <name>Organisations</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/OrganisationMain_view/OrganisationMain_view.aod b/neonView/OrganisationMain_view/OrganisationMain_view.aod
index 625488cba9f676d4934036d1ba841515ff395007..a67df9de9003bc521985a1cd2cd63d6737e69004 100644
--- a/neonView/OrganisationMain_view/OrganisationMain_view.aod
+++ b/neonView/OrganisationMain_view/OrganisationMain_view.aod
@@ -22,7 +22,7 @@
     </neonViewReference>
     <neonViewReference>
       <name>c10533a6-d185-4b13-84ee-53a468544c03</name>
-      <entityField>Contacts</entityField>
+      <entityField>Contact</entityField>
       <view>PersonSimpleList_view</view>
     </neonViewReference>
     <neonViewReference>
@@ -35,6 +35,11 @@
       <entityField>Documents</entityField>
       <view>DocumentFilter_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>50f61cda-5f85-4212-b3b2-3a55b9fae54d</name>
+      <entityField>Offers</entityField>
+      <view>OfferFilter_view</view>
+    </neonViewReference>
     <neonViewReference>
       <name>fd099297-e87d-4ada-b7e7-e04afafbd8b0</name>
       <entityField>Contracts</entityField>
diff --git a/neonView/OrganisationPreview_view/OrganisationPreview_view.aod b/neonView/OrganisationPreview_view/OrganisationPreview_view.aod
index 834aef029e22855dca538ed6518172f7afb23276..6c81fc9cd8529ef04536e04483863e1703022954 100644
--- a/neonView/OrganisationPreview_view/OrganisationPreview_view.aod
+++ b/neonView/OrganisationPreview_view/OrganisationPreview_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <cardViewTemplate>
-      <name>BasicCard_template</name>
+      <name>Header</name>
       <iconField>IMAGE</iconField>
       <titleField>NAME</titleField>
       <descriptionField>CUSTOMERCODE_DISPLAY_fieldGroup</descriptionField>
@@ -27,7 +27,7 @@
       <view>AddressList_view</view>
     </neonViewReference>
     <genericViewTemplate>
-      <name>OrgInfo_template</name>
+      <name>Info</name>
       <showDrawer v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/PersonDetail_view/PersonDetail_view.aod b/neonView/PersonDetail_view/PersonDetail_view.aod
index bce9f6a15ffdd29da13f0dfd4a4c1ea2215de626..e57b00a46a5629cb7508a6cb2ecf6f46ee37b831 100644
--- a/neonView/PersonDetail_view/PersonDetail_view.aod
+++ b/neonView/PersonDetail_view/PersonDetail_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>PersInfo_template</name>
+      <name>Details</name>
       <entityField>#ENTITY</entityField>
       <fields>
         <entityFieldLink>
diff --git a/neonView/PersonEditDefaults_view/PersonEditDefaults_view.aod b/neonView/PersonEditDefaults_view/PersonEditDefaults_view.aod
index 7add841fec2744b73e52c329741a0da133450553..d03b94432ed5a116278853874213d0904cdc27c3 100644
--- a/neonView/PersonEditDefaults_view/PersonEditDefaults_view.aod
+++ b/neonView/PersonEditDefaults_view/PersonEditDefaults_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>EditPersDefaults_template</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/PersonEdit_view/PersonEdit_view.aod b/neonView/PersonEdit_view/PersonEdit_view.aod
index ead84cbbd132386d47e232e9f04032eb339b646b..aadb5625acdcd634607e274db3797b9d1816712c 100644
--- a/neonView/PersonEdit_view/PersonEdit_view.aod
+++ b/neonView/PersonEdit_view/PersonEdit_view.aod
@@ -12,7 +12,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>PersEdit_template</name>
+      <name>Edit</name>
       <editMode v="true" />
       <showDrawer v="false" />
       <entityField>#ENTITY</entityField>
diff --git a/neonView/PersonFilter_view/PersonFilter_view.aod b/neonView/PersonFilter_view/PersonFilter_view.aod
index 3ae4694d9b2d5300a03e1051345d09c165c4debe..b013eb79ea36f695531f555d891a59598e5db997 100644
--- a/neonView/PersonFilter_view/PersonFilter_view.aod
+++ b/neonView/PersonFilter_view/PersonFilter_view.aod
@@ -31,7 +31,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>PersFilter_template</name>
+      <name>Persons</name>
       <showHeader v="true" />
       <entityField>#ENTITY</entityField>
       <columns>
diff --git a/neonView/PersonLookup_view/PersonLookup_view.aod b/neonView/PersonLookup_view/PersonLookup_view.aod
index 4c71e4b72b2294d0d34cbe55b9631d063f120299..4cc36b6335672f4246c40c510b674699b91df919 100644
--- a/neonView/PersonLookup_view/PersonLookup_view.aod
+++ b/neonView/PersonLookup_view/PersonLookup_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>persLookupList_template</name>
+      <name>Persons</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/PersonPreview_view/PersonPreview_view.aod b/neonView/PersonPreview_view/PersonPreview_view.aod
index 657b071091ce85c40f00699d0c8f28f1cba23c04..c0b9aa5c9e2b73bfc3ed0337fb394badab65f45f 100644
--- a/neonView/PersonPreview_view/PersonPreview_view.aod
+++ b/neonView/PersonPreview_view/PersonPreview_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <cardViewTemplate>
-      <name>PersHeader_template</name>
+      <name>Header</name>
       <iconField>IMAGE</iconField>
       <titleField>FULL_NAME_fieldGroup</titleField>
       <descriptionField>ORGANISATION_ID</descriptionField>
@@ -32,7 +32,7 @@
       <view>AddressList_view</view>
     </neonViewReference>
     <genericViewTemplate>
-      <name>PersInfo_template</name>
+      <name>Info</name>
       <showDrawer v="true" />
       <drawerCaption>weitere Informationen</drawerCaption>
       <entityField>#ENTITY</entityField>
diff --git a/neonView/PersonSimpleList_view/PersonSimpleList_view.aod b/neonView/PersonSimpleList_view/PersonSimpleList_view.aod
index 03023d6a3acf8df1f29f66dd328b0b76ea756645..23a4b86b305206b34ebf09e437908782107424fb 100644
--- a/neonView/PersonSimpleList_view/PersonSimpleList_view.aod
+++ b/neonView/PersonSimpleList_view/PersonSimpleList_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>persTable_template</name>
+      <name>Persons</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/Prod2ProdEdit_view/Prod2ProdEdit_view.aod b/neonView/Prod2ProdEdit_view/Prod2ProdEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..90875ab7fb7f07339f46bb3a569266bd166d0e36
--- /dev/null
+++ b/neonView/Prod2ProdEdit_view/Prod2ProdEdit_view.aod
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
+  <name>Prod2ProdEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>linkData</name>
+      <editMode v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>a522d552-60cd-4b79-827f-64bb9b551f57</name>
+          <entityField>SOURCE_ID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>868f8e9b-c863-4515-8aec-0b3d8c7657b5</name>
+          <entityField>QUANTITY</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>79c10c6e-d84e-4147-b4a6-fb283cc3521e</name>
+          <entityField>OPTIONAL</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>7fb15e31-bb91-47a8-9ae4-15cc1734d7ee</name>
+          <entityField>TAKEPRICE</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/Prod2prodFilter_view/Prod2prodFilter_view.aod b/neonView/Prod2prodFilter_view/Prod2prodFilter_view.aod
index c458b6242b94b01f3dd56e22a8258981ac69d72b..396e72b87968bd15aae4ba48a39deea1f279190d 100644
--- a/neonView/Prod2prodFilter_view/Prod2prodFilter_view.aod
+++ b/neonView/Prod2prodFilter_view/Prod2prodFilter_view.aod
@@ -10,8 +10,9 @@
   </layout>
   <children>
     <treetableViewTemplate>
-      <name>partlist</name>
+      <name>Partlist</name>
       <parentField>PARENTID</parentField>
+      <favoriteActionGroup1>alter</favoriteActionGroup1>
       <titleField>PRODUCTCODE</titleField>
       <descriptionField>QUANTITY</descriptionField>
       <entityField>#ENTITY</entityField>
diff --git a/neonView/Prod2prodPreview_view/Prod2prodPreview_view.aod b/neonView/Prod2prodPreview_view/Prod2prodPreview_view.aod
deleted file mode 100644
index 26f5a6c4d4601aa29d863407433af53b303d99be..0000000000000000000000000000000000000000
--- a/neonView/Prod2prodPreview_view/Prod2prodPreview_view.aod
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
-  <name>Prod2prodPreview_view</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <layout>
-    <boxLayout>
-      <name>layout</name>
-    </boxLayout>
-  </layout>
-</neonView>
diff --git a/neonView/ProductDescription_view/ProductDescription_view.aod b/neonView/ProductDescription_view/ProductDescription_view.aod
index 1443c025a557e5deffeca0ba2c69110d9aa293f9..68ea0b04dd451342f4f2c2111366361b77196c53 100644
--- a/neonView/ProductDescription_view/ProductDescription_view.aod
+++ b/neonView/ProductDescription_view/ProductDescription_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>ProductDescription_template</name>
+      <name>Info</name>
       <showDrawer v="true" />
       <drawerCaption>Description</drawerCaption>
       <entityField>#ENTITY</entityField>
diff --git a/neonView/ProductEdit_view/ProductEdit_view.aod b/neonView/ProductEdit_view/ProductEdit_view.aod
index 41bf0883f27b1183420e034cef8489fef0bf23d5..2ccd248922cc225f1f903bb0aef8c2f9fc88b5ab 100644
--- a/neonView/ProductEdit_view/ProductEdit_view.aod
+++ b/neonView/ProductEdit_view/ProductEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>ProductEdit_generic</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/ProductFilter_view/ProductFilter_view.aod b/neonView/ProductFilter_view/ProductFilter_view.aod
index 487ef7184828122708d3da3af001bff987dc0535..ae5dc5a7ba3d1879c8d094330a8ecfa8115fa2e3 100644
--- a/neonView/ProductFilter_view/ProductFilter_view.aod
+++ b/neonView/ProductFilter_view/ProductFilter_view.aod
@@ -31,13 +31,17 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>Table_template</name>
+      <name>Products</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
           <name>bf58edbf-0708-41a7-a092-ebc87a60c3c2</name>
           <entityField>IMAGE</entityField>
         </neonTableColumn>
+        <neonTableColumn>
+          <name>913381d1-91cc-4ec7-b732-b35ddab01b90</name>
+          <entityField>test</entityField>
+        </neonTableColumn>
         <neonTableColumn>
           <name>ee627d12-c60c-48c2-a86e-2a144f5853e6</name>
           <entityField>PRODUCTCODE</entityField>
diff --git a/neonView/ProductPreview_view/ProductPreview_view.aod b/neonView/ProductPreview_view/ProductPreview_view.aod
index 0c098ee2f5d822ed43af28eec055d02e840a3add..af0a4e3c36e3444755114831126c839e36575a0a 100644
--- a/neonView/ProductPreview_view/ProductPreview_view.aod
+++ b/neonView/ProductPreview_view/ProductPreview_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <cardViewTemplate>
-      <name>ProductHeader_template</name>
+      <name>Header</name>
       <iconField>IMAGE</iconField>
       <titleField>PRODUCTCODE</titleField>
       <descriptionField>PRODUCTNAME</descriptionField>
@@ -17,7 +17,7 @@
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
-      <name>ProductInfo_template</name>
+      <name>Info</name>
       <showDrawer v="true" />
       <drawerCaption>Details</drawerCaption>
       <entityField>#ENTITY</entityField>
@@ -49,7 +49,7 @@
       </fields>
     </genericViewTemplate>
     <genericViewTemplate>
-      <name>ProductPriceCurrent_template</name>
+      <name>ProductPriceCurrent</name>
       <showDrawer v="true" />
       <drawerCaption>Prices</drawerCaption>
       <entityField>#ENTITY</entityField>
diff --git a/neonView/ProductpriceEdit_view/ProductpriceEdit_view.aod b/neonView/ProductpriceEdit_view/ProductpriceEdit_view.aod
index 867fcfc0b4a69b217396e3a4e219d7f8eabc65ab..b1b22ede16b2ec58ea6b930f3250aae1b7d4eb3b 100644
--- a/neonView/ProductpriceEdit_view/ProductpriceEdit_view.aod
+++ b/neonView/ProductpriceEdit_view/ProductpriceEdit_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>Productprice_generic</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod b/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod
index 9044cb6adc656964251f56bb2ef0819c1d766726..afa1bba8b0c24828b262d9eda4cf59684cd30918 100644
--- a/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod
+++ b/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>Table_template</name>
+      <name>Prices</name>
       <autoNewRow v="true" />
       <entityField>#ENTITY</entityField>
       <columns>
diff --git a/neonView/ProductpriceRelation_view/ProductpriceRelation_view.aod b/neonView/ProductpriceRelation_view/ProductpriceRelation_view.aod
index 7d0c287f8589035410157b40263a35aaba214f05..5e6470cc381702417259cccc7c23f978003ebf89 100644
--- a/neonView/ProductpriceRelation_view/ProductpriceRelation_view.aod
+++ b/neonView/ProductpriceRelation_view/ProductpriceRelation_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>Table_template</name>
+      <name>PriceRelations</name>
       <autoNewRow v="true" />
       <entityField>#ENTITY</entityField>
       <columns>
diff --git a/neonView/SalesprojectClassificationEntryEdit_view/SalesprojectClassificationEntryEdit_view.aod b/neonView/SalesprojectClassificationEntryEdit_view/SalesprojectClassificationEntryEdit_view.aod
index 006ba7de60573095d68f0651f1925f157d9ba70c..6a8c90e4cc9574b7e8dbcae38bb67c4f93584485 100644
--- a/neonView/SalesprojectClassificationEntryEdit_view/SalesprojectClassificationEntryEdit_view.aod
+++ b/neonView/SalesprojectClassificationEntryEdit_view/SalesprojectClassificationEntryEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>SalesprojectClassificationEntryData_template</name>
+      <name>Edit</name>
       <entityField>#ENTITY</entityField>
       <fields>
         <entityFieldLink>
diff --git a/neonView/SalesprojectClassificationEntryPreview_view/SalesprojectClassificationEntryPreview_view.aod b/neonView/SalesprojectClassificationEntryPreview_view/SalesprojectClassificationEntryPreview_view.aod
index 8ad3101fd742c394aade32092feb495f8fbf9d20..d71591095da5d05a7478403e99a0569393f7bda2 100644
--- a/neonView/SalesprojectClassificationEntryPreview_view/SalesprojectClassificationEntryPreview_view.aod
+++ b/neonView/SalesprojectClassificationEntryPreview_view/SalesprojectClassificationEntryPreview_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <titledListViewTemplate>
-      <name>SalesprojectClassificationEntryData_template</name>
+      <name>Info</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/SalesprojectClassificationFilter_view/SalesprojectClassificationFilter_view.aod b/neonView/SalesprojectClassificationFilter_view/SalesprojectClassificationFilter_view.aod
index 6ca2bfd6a65c151850bd31d79c00b283398c27f9..06753041a8a50c9eb8525532f144b4b7bb73029d 100644
--- a/neonView/SalesprojectClassificationFilter_view/SalesprojectClassificationFilter_view.aod
+++ b/neonView/SalesprojectClassificationFilter_view/SalesprojectClassificationFilter_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>SalesprojectClassificationData_template</name>
+      <name>Classifications</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/SalesprojectClassificationPreview_view/SalesprojectClassificationPreview_view.aod b/neonView/SalesprojectClassificationPreview_view/SalesprojectClassificationPreview_view.aod
index eb623b4fad182b31fc6f7f790be940a2db376b76..e5e95d8c62544d0678dc47e672edffa99d9e6660 100644
--- a/neonView/SalesprojectClassificationPreview_view/SalesprojectClassificationPreview_view.aod
+++ b/neonView/SalesprojectClassificationPreview_view/SalesprojectClassificationPreview_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>rfff</name>
+      <name>Info</name>
       <entityField>#ENTITY</entityField>
       <fields>
         <entityFieldLink>
diff --git a/neonView/SalesprojectCompetitionEdit_view/SalesprojectCompetitionEdit_view.aod b/neonView/SalesprojectCompetitionEdit_view/SalesprojectCompetitionEdit_view.aod
index 858a5b24772af730677e7cadb8659880cdeb9e9d..2537d585ddfe5a5fe09c9ac624a1b50573e5233a 100644
--- a/neonView/SalesprojectCompetitionEdit_view/SalesprojectCompetitionEdit_view.aod
+++ b/neonView/SalesprojectCompetitionEdit_view/SalesprojectCompetitionEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>SalesprojectCompetitionEdit_template</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/SalesprojectCompetitionFilter_view/SalesprojectCompetitionFilter_view.aod b/neonView/SalesprojectCompetitionFilter_view/SalesprojectCompetitionFilter_view.aod
index 2e038d42282a35dae05b4170458c63a83482a408..216b398b5dbea3d8c449f5e7b5c4884cc3db3d2b 100644
--- a/neonView/SalesprojectCompetitionFilter_view/SalesprojectCompetitionFilter_view.aod
+++ b/neonView/SalesprojectCompetitionFilter_view/SalesprojectCompetitionFilter_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>SalesprojectCompetitionFilter_template</name>
+      <name>Competitions</name>
       <autoNewRow v="true" />
       <entityField>#ENTITY</entityField>
       <columns>
diff --git a/neonView/SalesprojectCompetitionPreview_view/SalesprojectCompetitionPreview_view.aod b/neonView/SalesprojectCompetitionPreview_view/SalesprojectCompetitionPreview_view.aod
index a75b6dbedd4669e0e74988874158a0b115adb5c2..55f23878481a0fb00144870044ed7933cdc30504 100644
--- a/neonView/SalesprojectCompetitionPreview_view/SalesprojectCompetitionPreview_view.aod
+++ b/neonView/SalesprojectCompetitionPreview_view/SalesprojectCompetitionPreview_view.aod
@@ -9,13 +9,13 @@
   </layout>
   <children>
     <cardViewTemplate>
-      <name>SalesprojectCompetitionHeader_template</name>
+      <name>Header</name>
       <titleField>CONTACT_ID</titleField>
       <descriptionField>INFO</descriptionField>
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
-      <name>SalesprojectCompetitionInfo_template</name>
+      <name>Info</name>
       <entityField>#ENTITY</entityField>
       <fields>
         <entityFieldLink>
diff --git a/neonView/SalesprojectCycleEdit_view/SalesprojectCycleEdit_view.aod b/neonView/SalesprojectCycleEdit_view/SalesprojectCycleEdit_view.aod
index c678f05e9ab6ec63523cd2d6bad3035e9a4bae1d..9ffceb4a51797981e39af4925ab879069c1de2e1 100644
--- a/neonView/SalesprojectCycleEdit_view/SalesprojectCycleEdit_view.aod
+++ b/neonView/SalesprojectCycleEdit_view/SalesprojectCycleEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>SalesprojectCycleEdit_template</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/SalesprojectCycleFilter_view/SalesprojectCycleFilter_view.aod b/neonView/SalesprojectCycleFilter_view/SalesprojectCycleFilter_view.aod
index 2a7d1b5ab98d4440d82b1f6d7649ab4dbb63e7b6..f0836de8505f8beb0b33953d2cd9ff2c0cc25203 100644
--- a/neonView/SalesprojectCycleFilter_view/SalesprojectCycleFilter_view.aod
+++ b/neonView/SalesprojectCycleFilter_view/SalesprojectCycleFilter_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>SalesprojectCycleFilter_template</name>
+      <name>Cycles</name>
       <autoNewRow v="true" />
       <entityField>#ENTITY</entityField>
       <columns>
diff --git a/neonView/SalesprojectCyclePreview_view/SalesprojectCyclePreview_view.aod b/neonView/SalesprojectCyclePreview_view/SalesprojectCyclePreview_view.aod
index d8ed26196daf4abb69b2de5bfc30f340cf6ae491..be4768faf2c2b90349565a61094bba1e7d0c1493 100644
--- a/neonView/SalesprojectCyclePreview_view/SalesprojectCyclePreview_view.aod
+++ b/neonView/SalesprojectCyclePreview_view/SalesprojectCyclePreview_view.aod
@@ -9,13 +9,13 @@
   </layout>
   <children>
     <cardViewTemplate>
-      <name>SalesprojectCycleHeader_template</name>
+      <name>Header</name>
       <titleField>VALUE</titleField>
       <descriptionField>DATE_START</descriptionField>
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
-      <name>SalesprojectForecastInfo_template</name>
+      <name>Info</name>
       <entityField>#ENTITY</entityField>
       <fields>
         <entityFieldLink>
diff --git a/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod b/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod
index 5e0a05ce09a55d27e751210dc2426f0d84c30ade..835768dd2859d518e198da621bd5ec29a627641b 100644
--- a/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod
+++ b/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod
@@ -12,7 +12,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>SalesprojectEdit_template</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
@@ -36,6 +36,10 @@
           <name>426a20c1-5d79-417b-bab1-d3100fabb25b</name>
           <entityField>STATE</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>373ba27b-5f27-4c5d-865e-da50447124fa</name>
+          <entityField>REASONS</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>c00b2121-c44d-41a1-8c32-e2339b4dd234</name>
           <entityField>PHASE</entityField>
diff --git a/neonView/SalesprojectFilter_view/SalesprojectFilter_view.aod b/neonView/SalesprojectFilter_view/SalesprojectFilter_view.aod
index 2181c73016332558c0b0bd74e3f74f0cf09592b0..593405a0514b25b4afdae87248371f1d39288a01 100644
--- a/neonView/SalesprojectFilter_view/SalesprojectFilter_view.aod
+++ b/neonView/SalesprojectFilter_view/SalesprojectFilter_view.aod
@@ -50,7 +50,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>SalesprojectFilter_table</name>
+      <name>Salesprojects</name>
       <entityField>#ENTITY</entityField>
       <title></title>
       <columns>
diff --git a/neonView/SalesprojectForecastEdit_view/SalesprojectForecastEdit_view.aod b/neonView/SalesprojectForecastEdit_view/SalesprojectForecastEdit_view.aod
index 073a35f6fde4101a8a6a5f190cccf2f6c0bca33b..ace0a0752837729ac0bd12bea77ba840a6a3fc0d 100644
--- a/neonView/SalesprojectForecastEdit_view/SalesprojectForecastEdit_view.aod
+++ b/neonView/SalesprojectForecastEdit_view/SalesprojectForecastEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>SalesprojectForecastEdit_template</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/SalesprojectForecastFilter_view/SalesprojectForecastFilter_view.aod b/neonView/SalesprojectForecastFilter_view/SalesprojectForecastFilter_view.aod
index 5ba261bf7b8a7d9a9bd62af9a72fdc78466c4cbe..0c71d3c8eb407620a7a8112d9dd544e2e2125fa9 100644
--- a/neonView/SalesprojectForecastFilter_view/SalesprojectForecastFilter_view.aod
+++ b/neonView/SalesprojectForecastFilter_view/SalesprojectForecastFilter_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>SalesprojectForecastFilter_template</name>
+      <name>Forecasts</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/SalesprojectForecastPreview_view/SalesprojectForecastPreview_view.aod b/neonView/SalesprojectForecastPreview_view/SalesprojectForecastPreview_view.aod
index 54966c16db05f856268988b3e97f6c04a83ab2d7..e4833d7143f90d4fbaec879cd7984cd476932850 100644
--- a/neonView/SalesprojectForecastPreview_view/SalesprojectForecastPreview_view.aod
+++ b/neonView/SalesprojectForecastPreview_view/SalesprojectForecastPreview_view.aod
@@ -9,13 +9,13 @@
   </layout>
   <children>
     <cardViewTemplate>
-      <name>SalesprojectForecastHeader_template</name>
+      <name>Header</name>
       <titleField>TYPE</titleField>
       <descriptionField>DATE_START</descriptionField>
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
-      <name>SalesprojectForecastInfo_template</name>
+      <name>Info</name>
       <entityField>#ENTITY</entityField>
       <fields>
         <entityFieldLink>
diff --git a/neonView/SalesprojectMemberEdit_view/SalesprojectMemberEdit_view.aod b/neonView/SalesprojectMemberEdit_view/SalesprojectMemberEdit_view.aod
index 879bdb7cd710969745e19a7cb503510656de3e60..755141ad8a614c7477258901aaf8e4c9acd0da66 100644
--- a/neonView/SalesprojectMemberEdit_view/SalesprojectMemberEdit_view.aod
+++ b/neonView/SalesprojectMemberEdit_view/SalesprojectMemberEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>SalesprojectMemberEdit_template</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/SalesprojectMemberFilter_view/SalesprojectMemberFilter_view.aod b/neonView/SalesprojectMemberFilter_view/SalesprojectMemberFilter_view.aod
index 325028978da8c455396bc3871c94340d38de2ee9..169043149e96691513370e4516096e8d06ec7141 100644
--- a/neonView/SalesprojectMemberFilter_view/SalesprojectMemberFilter_view.aod
+++ b/neonView/SalesprojectMemberFilter_view/SalesprojectMemberFilter_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>SalesprojectMemberFilter_template</name>
+      <name>Members</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/SalesprojectMemberPreview_view/SalesprojectMemberPreview_view.aod b/neonView/SalesprojectMemberPreview_view/SalesprojectMemberPreview_view.aod
index dc494029004cf195eeb62b92d4b27b187d13c1e2..f048677fa8d1211a710aae260daee1aa39a75358 100644
--- a/neonView/SalesprojectMemberPreview_view/SalesprojectMemberPreview_view.aod
+++ b/neonView/SalesprojectMemberPreview_view/SalesprojectMemberPreview_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <cardViewTemplate>
-      <name>SalesprojectMemberHeader_template</name>
+      <name>Header</name>
       <titleField>CONTACT_ID</titleField>
       <descriptionField>SALESPROJECT_ROLE</descriptionField>
       <entityField>#ENTITY</entityField>
diff --git a/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod b/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod
index f4c24b28ee034c8306df912b4d176d79a14c6e90..9fe2b5c18fc4e276f0fb2c6b5c1020b96acdb7d3 100644
--- a/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod
+++ b/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <cardViewTemplate>
-      <name>SalesprojectPreview_template</name>
+      <name>Head</name>
       <iconField>IMAGE</iconField>
       <titleField>PROJECTTITLE</titleField>
       <descriptionField>PROJECTCODE</descriptionField>
@@ -17,7 +17,7 @@
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
-      <name>SalesprojectInfo_template</name>
+      <name>Details</name>
       <showDrawer v="true" />
       <drawerCaption>Details</drawerCaption>
       <entityField>#ENTITY</entityField>
@@ -30,6 +30,10 @@
           <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>
@@ -57,7 +61,7 @@
       </fields>
     </genericViewTemplate>
     <genericViewTemplate>
-      <name>SalesprojectDescription_template</name>
+      <name>Info</name>
       <showDrawer v="true" />
       <drawerCaption>Further informations</drawerCaption>
       <entityField>#ENTITY</entityField>
@@ -74,7 +78,7 @@
       <view>DocumentList_view</view>
     </neonViewReference>
     <scoreCardViewTemplate>
-      <name>SalesprojectScore_template</name>
+      <name>AdditionalInfo</name>
       <entityField>#ENTITY</entityField>
       <fields>
         <entityFieldLink>
diff --git a/neonView/SalesprojectSourceEdit_view/SalesprojectSourceEdit_view.aod b/neonView/SalesprojectSourceEdit_view/SalesprojectSourceEdit_view.aod
index a137793544423149313145f1bf0306ea0a92dfcc..0630e05a808461f5177045b65f8087102d7c6b8e 100644
--- a/neonView/SalesprojectSourceEdit_view/SalesprojectSourceEdit_view.aod
+++ b/neonView/SalesprojectSourceEdit_view/SalesprojectSourceEdit_view.aod
@@ -9,7 +9,7 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>SalesprojectSourceEdit_template</name>
+      <name>Edit</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
diff --git a/neonView/SalesprojectSourceFilter_view/SalesprojectSourceFilter_view.aod b/neonView/SalesprojectSourceFilter_view/SalesprojectSourceFilter_view.aod
index cde4a6d650941e485a4af1a2626a67a4739a65e1..d2ac9aae0d330f54d0099326cbf4db895a41d715 100644
--- a/neonView/SalesprojectSourceFilter_view/SalesprojectSourceFilter_view.aod
+++ b/neonView/SalesprojectSourceFilter_view/SalesprojectSourceFilter_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <tableViewTemplate>
-      <name>SalesprojectSourceFilter_template</name>
+      <name>Entries</name>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/SalesprojectSourcePreview_view/SalesprojectSourcePreview_view.aod b/neonView/SalesprojectSourcePreview_view/SalesprojectSourcePreview_view.aod
index 296012a2a88b1364de15b4ed4263cec07c9a9373..32f84523f10f458ee658cb745fa97c6d8b1e438a 100644
--- a/neonView/SalesprojectSourcePreview_view/SalesprojectSourcePreview_view.aod
+++ b/neonView/SalesprojectSourcePreview_view/SalesprojectSourcePreview_view.aod
@@ -9,13 +9,13 @@
   </layout>
   <children>
     <cardViewTemplate>
-      <name>SalesprojectSourceHeader_template</name>
+      <name>Header</name>
       <titleField>SOURCE</titleField>
       <descriptionField>ENTRYDATE</descriptionField>
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
-      <name>SalesprojectSourceInfo_template</name>
+      <name>Info</name>
       <entityField>#ENTITY</entityField>
       <fields>
         <entityFieldLink>
diff --git a/neonView/TwitterTimeline_view/TwitterTimeline_view.aod b/neonView/TwitterTimeline_view/TwitterTimeline_view.aod
index 25c658f82ad88d6c76b77c1f5a3493e2dd63dff4..6763318663ae659f1b860d44eeb69ac067c851d3 100644
--- a/neonView/TwitterTimeline_view/TwitterTimeline_view.aod
+++ b/neonView/TwitterTimeline_view/TwitterTimeline_view.aod
@@ -61,7 +61,7 @@
   </layout>
   <children>
     <webContentViewTemplate>
-      <name>TIMELINE_TEMPLATE</name>
+      <name>Timeline</name>
       <entityField>TWITTER_TIMELINE</entityField>
     </webContentViewTemplate>
   </children>
diff --git a/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_DeliveryTerm.xml b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_DeliveryTerm.xml
new file mode 100644
index 0000000000000000000000000000000000000000..895edb0305d2c1564a21eaf218aa245b8f1cffb6
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_DeliveryTerm.xml
@@ -0,0 +1,55 @@
+<?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="7fb6a9f2-88c3-49cf-9c93-9210c4ccc127">
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="9509c6b8-208a-4e97-bdcd-53642d0c7489"/>
+
+            <column name="KEYID" value="7ab99d69-2a1e-4ef1-af62-aeabc7a3bc97"/>
+            <column name="TITLE" value="carriage free"/>
+            <column name="CONTAINER" value="DeliveryTerm"/>
+            <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="d713c45a-6f87-4516-ae21-1d8f1c217949"/>
+
+            <column name="KEYID" value="aa8713c9-ae12-4ce3-a588-0303cea11b44"/>
+            <column name="TITLE" value="CIF"/>
+            <column name="CONTAINER" value="DeliveryTerm"/>
+            <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="410a389b-67d4-4155-8d9e-1e8d816ecfb9"/>
+
+            <column name="KEYID" value="a4d40341-a015-4c59-9bde-f8e59582269b"/>
+            <column name="TITLE" value="ex works"/>
+            <column name="CONTAINER" value="DeliveryTerm"/>
+            <column name="SORTING" valueNumeric="2"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <rollback>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="9509c6b8-208a-4e97-bdcd-53642d0c7489" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="d713c45a-6f87-4516-ae21-1d8f1c217949" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="410a389b-67d4-4155-8d9e-1e8d816ecfb9" />
+                </whereParams>
+            </delete>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_PaymentTerm.xml b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_PaymentTerm.xml
new file mode 100644
index 0000000000000000000000000000000000000000..dafc82509cd4f22c65d3d16cd3b944d899e18622
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_PaymentTerm.xml
@@ -0,0 +1,55 @@
+<?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="c603e739-e01a-48ca-9ef4-4dc6ecc226c1">
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="b8409c4a-6447-408a-bd06-dfe67054a4f1"/>
+
+            <column name="KEYID" value="178aabbf-3f4c-415b-98bd-5f2510ea72b4"/>
+            <column name="TITLE" value="7 days net"/>
+            <column name="CONTAINER" value="PaymentTerm"/>
+            <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="edba1a8f-766b-4dfa-9360-1a2aca8569d6"/>
+
+            <column name="KEYID" value="c67ba0fc-2f2f-46d8-8d4d-e8fb4c27e09a"/>
+            <column name="TITLE" value="30 days net"/>
+            <column name="CONTAINER" value="PaymentTerm"/>
+            <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="ed1b3d39-9cab-4c3c-84c5-438a8b67be53"/>
+
+            <column name="KEYID" value="860d8e1c-ea85-426d-91c2-a78dcd14df8d"/>
+            <column name="TITLE" value="8 days 2% discount, 30 days net"/>
+            <column name="CONTAINER" value="PaymentTerm"/>
+            <column name="SORTING" valueNumeric="2"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <rollback>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="b8409c4a-6447-408a-bd06-dfe67054a4f1" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="edba1a8f-766b-4dfa-9360-1a2aca8569d6" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="ed1b3d39-9cab-4c3c-84c5-438a8b67be53" />
+                </whereParams>
+            </delete>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/Offer_terms.xml b/others/db_changes/data_alias/basic/2019.2/Offer_terms.xml
new file mode 100644
index 0000000000000000000000000000000000000000..89189b968b50b200f77fb830071f62f5837e3614
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/Offer_terms.xml
@@ -0,0 +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="09de84ad-de1a-42f6-a403-6032480be850">
+	<addColumn tableName="OFFER">
+            <column name="PAYMENTTERMS" type="CHAR(36)"/>
+	</addColumn>
+        <addColumn tableName="OFFER">
+            <column name="DELIVERYTERMS" type="CHAR(36)"/>
+	</addColumn>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/Salesproject_add_column.xml b/others/db_changes/data_alias/basic/2019.2/Salesproject_add_column.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a40ddf6bd75ea8cfbbe67b3da653db70d1cd58a3
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/Salesproject_add_column.xml
@@ -0,0 +1,9 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+	<changeSet author="m.hofmann" id="e148d42d-ba3c-4cb7-a414-f2da9a9f2ae0">
+		<addColumn tableName="SALESPROJECT">
+			<!-- space for 13 entries as Multistring encoded -->
+            <column name="REASONS" type="VARCHAR(498)"/>
+        </addColumn>
+    </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 c736ceb9e34909da0ffb88eb2a20bc03067c9808..8a9244cf31b3e77737752445dda60b9024748262 100644
--- a/others/db_changes/data_alias/basic/2019.2/changelog.xml
+++ b/others/db_changes/data_alias/basic/2019.2/changelog.xml
@@ -40,7 +40,7 @@
     <include relativeToChangelogFile="true" file="data/example_salesorder/SALESORDER_1008.xml" context="example"/>
     <include relativeToChangelogFile="true" file="data/example_salesorder/SALESORDER_1009.xml" context="example"/>
     <include relativeToChangelogFile="true" file="data/example_task/base.xml" context="example"/>
-	
+    
     <include relativeToChangelogFile="true" file="update_TaskType_Task.xml"/>
     
     <include relativeToChangelogFile="true" file="removeTaskCode.xml"/>
@@ -75,11 +75,16 @@
     <include relativeToChangelogFile="true" file="AditoBasic/init_TaskProgress.xml"/>
     <include relativeToChangelogFile="true" file="AditoBasic/init_SalesprojectCompetitionState.xml"/>
     <include relativeToChangelogFile="true" file="AditoBasic/init_AttributeType.xml"/>
+    <include relativeToChangelogFile="true" file="AditoBasic/init_PaymentTerm.xml"/>
+    <include relativeToChangelogFile="true" file="AditoBasic/init_DeliveryTerm.xml"/>
     <include relativeToChangelogFile="true" file="AttributeKeyword.xml"/>
     <include relativeToChangelogFile="true" file="Contact_add_columns.xml"/>
     <include relativeToChangelogFile="true" file="SalesOrder_source_offer.xml"/>
     <include relativeToChangelogFile="true" file="Product_remove_fk.xml"/>
     
+    <include relativeToChangelogFile="true" file="data/example_attribute/Attribute.xml" context="example"/>
+    <include relativeToChangelogFile="true" file="data/example_attribute/AttributeUsage.xml" context="example"/>
+	
     <include relativeToChangelogFile="true" file="drop_contact_id_sp_forecast.xml"/>
     
     <include relativeToChangelogFile="true" file="fix_sp_phases.xml"/>
@@ -90,6 +95,10 @@
     
     <include relativeToChangelogFile="true" file="create_taskLink.xml"/>
     
+    <include relativeToChangelogFile="true" file="Offer_terms.xml"/>
+    
     <include relativeToChangelogFile="true" file="add_ObjectRelation_type.xml"/>
     <include relativeToChangelogFile="true" file="data/AditoBasic/ObjectRelation_exampleData.xml" context="example"/>
+    
+    <include relativeToChangelogFile="true" file="Salesproject_add_column.xml"/>
 </databaseChangeLog>
diff --git a/others/db_changes/data_alias/basic/2019.2/data/ORGANISATION_private.xml b/others/db_changes/data_alias/basic/2019.2/data/ORGANISATION_private.xml
index 8bfd59c5eb3e9eda032162397fd7b55c06cfc0f1..396afa3108f89c7676306554c938882bca21393f 100644
--- a/others/db_changes/data_alias/basic/2019.2/data/ORGANISATION_private.xml
+++ b/others/db_changes/data_alias/basic/2019.2/data/ORGANISATION_private.xml
@@ -7,6 +7,13 @@
             <column name="CUSTOMERCODE" value=""/>
             <column name="TYPE" value="9cac8c7f-b9d8-45ad-ba0a-7ac17341c970"/>
 	</insert>
+        <insert tableName="CONTACT">
+            <column name="CONTACTID" value="0"/>
+            <column name="ORGANISATION_ID" value="0"/>
+            <column name="LANGUAGE" value="deu"/>
+            <column name="STATUS" value="BSIC0rel-stat-actv-ae03-b6b04430e90b"/>
+            <column name="ADDRESS_ID" value="0"/>
+        </insert>
 	<rollback>
 		<delete tableName="ORGANISATION">
 			<where>ORGANISATIONID = ?</where>
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 9ccc46c08d8a92dbf13ea0b33e0bbe3d1e85add3..7ad3f95ced078aeeab93939d4abdade69125db82 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
@@ -876,6 +876,7 @@
 	<column name="ATTRIBUTE_NAME" value="Zahlungskondition"/>
 	<column name="ATTRIBUTE_PARENT_ID" value="ab545654-1fce-4993-b763-0ec469781302"/>
 	<column name="ATTRIBUTE_TYPE" value="KEYWORD                             "/>
+	<column name="KEYWORD_CONTAINER" value="PaymentTerm"/>
 </insert>
 <insert tableName="AB_ATTRIBUTE">
 	<column name="AB_ATTRIBUTEID" value="3a6e11fc-b00a-4cf3-975a-a5e8b60fc5cb"/>
@@ -884,6 +885,7 @@
 	<column name="ATTRIBUTE_NAME" value="Lieferkondition"/>
 	<column name="ATTRIBUTE_PARENT_ID" value="ab545654-1fce-4993-b763-0ec469781302"/>
 	<column name="ATTRIBUTE_TYPE" value="KEYWORD                             "/>
+	<column name="KEYWORD_CONTAINER" value="DeliveryTerm"/>
 </insert>
 <insert tableName="AB_ATTRIBUTE">
 	<column name="AB_ATTRIBUTEID" value="97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec"/>
diff --git a/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1000.xml b/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1000.xml
index d5f2beace64934a0155e9401247be9a22892e04d..1310ef2cb4c02e3e775e08dea9c3d27b51477774 100644
--- a/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1000.xml
+++ b/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1000.xml
@@ -14,6 +14,9 @@
             <column name="VAT" valueNumeric="39.90"/>
             <column name="CURRENCY" value="EUR"/>
             <column name="LANGUAGE" value="deu"/>
+            <column name="ADDRESS" value="Gfk AG 
+Wilhelm-Straße 4
+80807 München"/>
         </insert>
         
         <insert tableName="OFFERITEM">
diff --git a/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1001.xml b/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1001.xml
index e604de5004b913b688d1b072415d3312bcaed6ac..223dcabb82d4353d2ced6cd5a13de06ec257069a 100644
--- a/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1001.xml
+++ b/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1001.xml
@@ -14,6 +14,9 @@
             <column name="VAT" valueNumeric="79.80"/>
             <column name="CURRENCY" value="EUR"/>
             <column name="LANGUAGE" value="deu"/>
+            <column name="ADDRESS" value="Gfk AG 
+Wilhelm-Straße 4
+80807 München"/>
         </insert>
         
         <insert tableName="OFFERITEM">
diff --git a/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1002.xml b/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1002.xml
index 414555f8209c2e1f2030afa0474f3b29aad7b2b9..2ddfc1f59db0f0d42c0429d911a788fc7565542a 100644
--- a/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1002.xml
+++ b/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1002.xml
@@ -14,6 +14,9 @@
             <column name="VAT" valueNumeric="119.70"/>
             <column name="CURRENCY" value="EUR"/>
             <column name="LANGUAGE" value="deu"/>
+            <column name="ADDRESS" value="Gfk AG 
+Wilhelm-Straße 4
+80807 München"/>
         </insert>
         
         <insert tableName="OFFERITEM">
diff --git a/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1003.xml b/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1003.xml
index 67ef28daa92589254dd8979e710d11f8cc87537f..8da2be150f7011f2336a53411184f285c4e6f707 100644
--- a/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1003.xml
+++ b/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1003.xml
@@ -14,6 +14,9 @@
             <column name="VAT" valueNumeric="79.80"/>
             <column name="CURRENCY" value="EUR"/>
             <column name="LANGUAGE" value="deu"/>
+            <column name="ADDRESS" value="Gfk AG 
+Wilhelm-Straße 4
+80807 München"/>
         </insert>
         
         <insert tableName="OFFERITEM">
diff --git a/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1004.xml b/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1004.xml
index 9c4753ea768df26f0371526429e9d0c64f64e436..9a14770741c1783622163387f1411440828723ad 100644
--- a/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1004.xml
+++ b/others/db_changes/data_alias/basic/2019.2/data/example_offer/OFFER_1004.xml
@@ -14,6 +14,9 @@
             <column name="VAT" valueNumeric="159.60"/>
             <column name="CURRENCY" value="EUR"/>
             <column name="LANGUAGE" value="deu"/>
+            <column name="ADDRESS" value="Gfk AG 
+Wilhelm-Straße 4
+80807 München"/>
         </insert>
         
         <insert tableName="OFFERITEM">
diff --git a/others/db_changes/data_alias/basic/2019.2/data/example_salesproject/SALESPROJECT_jkl.xml b/others/db_changes/data_alias/basic/2019.2/data/example_salesproject/SALESPROJECT_jkl.xml
index 530eacad2339a51bb508c32ce79e65f0b7ecff18..de505b1336fc9bd283cb8425038c939ca3eb661b 100644
--- a/others/db_changes/data_alias/basic/2019.2/data/example_salesproject/SALESPROJECT_jkl.xml
+++ b/others/db_changes/data_alias/basic/2019.2/data/example_salesproject/SALESPROJECT_jkl.xml
@@ -3,9 +3,9 @@
 <changeSet author="j.hoermanns" id="76912d9-ced7-4626-a031-d7138dfc948e">
     <insert tableName="SALESPROJECT">
         <column name="SALESPROJECTID" value="eaf8096b-2a1a-4336-932e-716e6c054b80"/>
-        <column name="PROJECTCODE" valueNumeric="2000"/>
+        <column name="PROJECTCODE" valueNumeric="1001"/>
         <column name="PROJECTTITLE" value="Jkl"/>
-        <column name="CONTACT_ID" value="d321e2b4-f97e-4754-ba16-ab4853512c3c"/>
+        <column name="CONTACT_ID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
         <column name="INFO" value="evtl. noch mit Berater Huber sprechen, ob ihm bekannt"/>
         <column name="STATE" valueNumeric="1"/>
         <column name="PHASE" valueNumeric="4"/>
diff --git a/others/db_changes/readme.adoc b/others/db_changes/readme.adoc
index e9bf2e4ff2a4a42d4252dc99c44fc2230751d85d..240dfacc5017f2e44ee53aa96535bc83ce96a311 100644
--- a/others/db_changes/readme.adoc
+++ b/others/db_changes/readme.adoc
@@ -31,7 +31,7 @@ So, that's where all our changes are located - but what about the changes _itsel
 As you can think of, they're stored in files located in the folders `struct` for DDL-stuff like _create_, _alter_ etc. 
 and `data` for DML-stuff like _insert_, _update_ etc. 
 
-If you want to know what to do add in these files take a look at the official liquibase documentation for futher information how to fill these XML files: http://www.liquibase.org/documentation/index.html
+If you want to know what to do add in these files take a look at the official liquibase documentation for further information how to fill these XML files: http://www.liquibase.org/documentation/index.html
 
 IMPORTANT: Always remember that you might have to define some rollback-entries. +
 This is e.g. not needed for create-entries but for others like insert.
diff --git a/others/guide/CodingGuidelines.adoc b/others/guide/CodingGuidelines.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..7fbd1bf92c5ecca6d93d8ffe076b933618cb861b
--- /dev/null
+++ b/others/guide/CodingGuidelines.adoc
@@ -0,0 +1,8 @@
+= Sample Document
+Doc Writer <doc.writer@asciidoc.org>; John Smith <john.smith@asciidoc.org>
+v1.0, 2013-05-20: First draft
+:title: Sample Document
+:tags: [document, example]
+
+
+Preamble...
diff --git a/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod b/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod
index 581c9d3a6896bb001678073f2ebc276b89dd4112..3da243cd2525b8dc98209f2e831642651c2be235 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.0.3" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/preferences/3.0.3">
   <name>_____PREFERENCES_PROJECT</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
-  <projectName>xRM-Basic2019</projectName>
+  <projectName>xRM-Basic5</projectName>
   <jditoMaxContentSize v="57671680" />
   <calendarCategoriesEvent>
     <entry>
diff --git a/process/Data_lib/process.js b/process/Data_lib/process.js
index f61e69c016b751cb6c849e090b1563efe5a9ee15..fe628720ef18b4a5d94ab82884a9cc3bf2f4cd96 100644
--- a/process/Data_lib/process.js
+++ b/process/Data_lib/process.js
@@ -375,8 +375,10 @@ DataTree.prototype.toArray = function(pMaxDepth)
     var uidMap = {};
     __push(this.rootId, tree[this.rootId], 0);
     
-    function __push(pParent, pNode, pDepth) {   
-        for (var i = 0; i < pNode.ids.length; i++) {
+    function __push(pParent, pNode, pDepth) {
+        if (pNode != undefined)
+        {
+            for (var i = 0; i < pNode.ids.length; i++) {
             if (pNode.parent == that.baseId)
             {
                 // set UUID to "" if it is a root-node
@@ -388,6 +390,7 @@ DataTree.prototype.toArray = function(pMaxDepth)
             
             if (pMaxDepth == undefined || pDepth < pMaxDepth)
                 __push(nextUid, tree[pNode.ids[i]], pDepth+1);
+            }
         }
     }
     
diff --git a/process/KeywordRegistry_basic/process.js b/process/KeywordRegistry_basic/process.js
index 6c571b3e1ac1a1e843a8bc2d56aba2fe0fdee0e7..ffd3454e5163c3277b89d3bdc1f44d9b52934a40 100644
--- a/process/KeywordRegistry_basic/process.js
+++ b/process/KeywordRegistry_basic/process.js
@@ -58,3 +58,5 @@ $KeywordRegistry.taskPriority = function(){return "TaskPriority"};
 $KeywordRegistry.taskProgress = function(){return "TaskProgress"};
 $KeywordRegistry.salesprojectCompetitionState = function(){return "SalesprojectCompetitionState"};
 $KeywordRegistry.objectRelationType = function(){return "ObjectRelationType"};
+$KeywordRegistry.deliveryTerm = function(){return "DeliveryTerm"};
+$KeywordRegistry.paymentTerm = function(){return "PaymentTerm"};
diff --git a/process/Offer_lib/process.js b/process/Offer_lib/process.js
index ef2ffc8cce809ab59037685c7007be611fc7cab6..b7ee707a8fcb27cc592b76705c1f072d24f11799 100644
--- a/process/Offer_lib/process.js
+++ b/process/Offer_lib/process.js
@@ -88,110 +88,115 @@ OfferUtils.createNewOffer = function(pSalesprojectId, pRelationId)
  *
  * @return {[]}
  */
-OfferUtils.openOfferReport = function(pOfferID)
+OfferUtils.openOfferReport = function (pOfferID)
 {    
     var offerReport = new Report("RPTJ_OFFER");  
     
     var sqlUtil = new SqlMaskingUtils();
     
-    // get data from DB
-    // TODO: OFFER.ADDRESS
-    var fields = [
-        /*"OFFER.ADDRESS"*/ "''", 
-        "OFFER.CONTACT_ID", 
-        "OFFER.LANGUAGE", 
-        /*"OFFER.PAYMENTTERMS"*/ "'DUMMY_OFFER.PAYMENTTERMS'", // 3
-        /*"OFFER.DELIVERYTERMS"*/ "'DUMMY_OFFER.DELIVERYTERMS'", 
-        "OFFER.OFFERCODE", 
-        "OFFER.CURRENCY", 
-        "OFFER.OFFERDATE", // 7
-        "OFFER.OFFERID", 
-        "OFFERITEM.OFFER_ID", 
+    var offerFields = [
+        "ADDRESS", 
+        "CONTACT_ID", 
+        "LANGUAGE", 
+        "PAYMENTTERMS", 
+        "DELIVERYTERMS", //4
+        "OFFERCODE", 
+        "CURRENCY", 
+        "OFFERDATE", 
+        "HEADER", //8
+        "VAT", 
+        sqlUtil.isNull("VERSNR", "0"),
+        sqlUtil.isNull("OFFERCODE", "0"), 
+        "SALESPROJECT_ID" //12
+    ];
+   
+    var offerSql = SqlCondition.begin()
+        .andPrepare("OFFER.OFFERID", pOfferID)
+        .buildSql("select " + offerFields.join(", ") + " from OFFER", "1 = 0");
+    var offerData = db.array(db.ROW, offerSql);
+    
+    offerData[7] = datetime.toDate(offerData[7], translate.text("dd.MM.yyyy", language));
+    
+    //TODO: use new keyword logic for language when possible
+    var language = "DE";
+    var contactId = offerData[1];
+    
+    
+    var offerItemFields = [
         "OFFERITEM.INFO", 
-        "OFFERITEM.ASSIGNEDTO", // 11
-        "OFFERITEM.PRODUCT_ID",
-        "OFFERITEM.ITEMNAME" , // 13
+        "OFFERITEM.ASSIGNEDTO",
+        "OFFERITEM.PRODUCT_ID", 
+        "OFFERITEM.ITEMNAME" , //3
         "OFFERITEM.OPTIONAL", 
-        "OFFERITEM.ITEMPOSITION", // 15
+        "OFFERITEM.ITEMPOSITION", 
         "PRODUCT.PRODUCTCODE", 
         "PRODUCT.PRODUCTID", 
-        "OFFER.HEADER", 
-        "OFFERITEM.UNIT", 
-        "OFFER.VAT", // 20
-        sqlUtil.isNull("OFFERITEM.QUANTITY", "0"),
+        "OFFERITEM.UNIT", //8
+        sqlUtil.isNull("OFFERITEM.QUANTITY", "0"), 
         sqlUtil.isNull("OFFERITEM.PRICE", "0"),
-        sqlUtil.isNull("OFFERITEM.DISCOUNT", "0"), // 23
-        sqlUtil.isNull("OFFER.VERSNR", "0"),
-        sqlUtil.isNull("OFFER.OFFERCODE", "0"),
+        sqlUtil.isNull("OFFERITEM.DISCOUNT", "0"), //11
         sqlUtil.isNull("OFFERITEM.VAT", "0"),
         "0", 
-        "''", 
-        "SALESPROJECT_ID" // 29
+        "''"
     ]; 
     
-    var offerFromSql = " from PRODUCT" 
-                     + " inner join OFFERITEM on (PRODUCT.PRODUCTID = OFFERITEM.PRODUCT_ID) "
-                     + " inner join OFFER on (OFFERITEM.OFFER_ID = OFFER.OFFERID)";
-   
-    var offerCondition = SqlCondition.begin()
-        .andPrepare("OFFER.OFFERID", pOfferID);
-    var rptdata = db.table(offerCondition.buildSql("select " + fields.join(", ") + offerFromSql, "1 = 0"));
+    var offerItemSql = SqlCondition.begin()
+        .andPrepare("OFFERITEM.OFFER_ID", pOfferID)
+        .buildSql(
+            "select " + offerItemFields.join(", ") + " from OFFERITEM join PRODUCT on PRODUCT.PRODUCTID = OFFERITEM.PRODUCT_ID", 
+            "1 = 0"
+        );
+    var itemData = db.table(offerItemSql);
     
-    //TODO: use new keyword logic for language when possible
-    var language = "DE";
-    var relid = rptdata[0][1];
     
     // TODO: AddrObject implementieren
-    //var addrobj = new AddrObject(relid);
+    //var addrobj = new AddrObject(contactId);
     
-    // new logik: Relationid from Org is always also the OrgId
-    var orgrelid = relid;
-    
-    var fullPrice= 0;
+    var fullPrice = 0;
     var itemSum = 0;
     var sumItemSum = 0;
     var total = 0;
     var sums = [];
     var vatsum = 0;
     
-    var data = rptdata.map(function (row)
+    itemData = itemData.map(function (item)
     {
         //quantity * price
-        fullPrice = eMath.mulDec(parseFloat(row[21]), parseFloat(row[22]));
+        fullPrice = eMath.mulDec(parseFloat(item[9]), parseFloat(item[10]));
         
-        if (row[14] != "1") //optional
+        if (item[4] != "1") //optional
         {
             //itemSum = (fullPrice * (100 - discount)) / 100
-            itemSum = eMath.roundDec(eMath.divDec(eMath.mulDec(fullPrice, eMath.subDec(100, row[23])), 100), 2, eMath.ROUND_HALF_EVEN); //sum of the item
+            itemSum = eMath.roundDec(eMath.divDec(eMath.mulDec(fullPrice, eMath.subDec(100, item[11])), 100), 2, eMath.ROUND_HALF_EVEN); //sum of the item
             sumItemSum += itemSum; //total sum (without vat) 
         }
         //vatsum = itemSum * vat / 100
-        vatsum = eMath.divDec(eMath.mulDec(itemSum, row[26]), 100); //vat per product
-        if(row[26] > 0) 
-            sums.push([row[26], vatsum]); //MWSteuerwerte für Map vorbereiten
+        vatsum = eMath.divDec(eMath.mulDec(itemSum, item[12]), 100); //vat per product
+        if(item[12] > 0) 
+            sums.push([item[12], vatsum]); //MWSteuerwerte für Map vorbereiten
         
         // sumItemSum + vat
-        total = eMath.addDec(sumItemSum, row[20]); //total sum with vat
+        total = eMath.addDec(sumItemSum, offerData[9]); //total sum with vat
         
         return [
-            row[6], //currency
-            datetime.toDate(row[7], translate.text("dd.MM.yyyy", language)), //offerdate
-            row[8],  //offerId
-            row[10], //info
-            row[11], //assignedTo
-            row[13], //itemname
-            row[14], //optional
-            row[15], //itemposition
-            row[16], //productcode
-            text.html2text(row[18]), //header 
-            text.formatDouble(row[21], translate.text("#,##0"), true),       //quantity
-            text.formatDouble(row[22], translate.text("#,##0.00"), true),    //price
-            text.formatDouble(row[23], translate.text("0.00"), true),        //discount
-            row[24], //versnr
-            row[25], //offercode
-            text.formatDouble(row[26], translate.text("#,##0.00"), true),    //vat
-            text.formatDouble(itemSum, translate.text("#,##0.00"), true),    //itemsum
-            KeywordUtils.getViewValue($KeywordRegistry.quantityUnit(), row[19]) //unittext
+            offerData[6],   //currency
+            offerData[7],   //offerdate
+            pOfferId,       //offerId
+            item[0],        //info
+            item[1],        //assignedTo
+            item[3],        //itemname
+            item[4],        //optional
+            item[5],        //itemposition
+            item[6],        //productcode
+            offerData[8],   //header 
+            text.formatDouble(item[9], translate.text("#,##0"), true),          //quantity
+            text.formatDouble(item[10], translate.text("#,##0.00"), true),      //price
+            text.formatDouble(item[11], translate.text("0.00"), true),          //discount
+            offerData[10],  //versnr
+            offerData[5],   //offercode
+            text.formatDouble(item[12], translate.text("#,##0.00"), true),      //vat
+            text.formatDouble(itemSum, translate.text("#,##0.00"), true),       //itemsum
+            KeywordUtils.getViewValue($KeywordRegistry.quantityUnit(), item[8]) //unittext
         ];
     });
     
@@ -207,13 +212,23 @@ OfferUtils.openOfferReport = function(pOfferID)
                    "base64:iVBORw0KGgoAAAANSUhEUgAAAM4AAABRCAYAAACaL5lSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDA4QzAyM0IwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDA4QzAyM0MwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMDhDMDIzOTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMDhDMDIzQTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhF3nYoAAAlvSURBVHja7J1fjBXVHcfPJQJRoe1urQYJRBYlMUJisqwvGNjY3WgEUtN2CeWBIGb3Ju6LElsW+gA8AHe1UfuwTcBASB/Q7CZNG0tjw2pWU15kNzEBJFnLqmvQBNEbU0pbX+jve+9vlrOzM/fOnTtz78zs95P8cv/MOTPnzJzvnN/5zZ+Tu3XrliGE1MYC7gJCKBxCKBxCKBxCKBxCKBxCCIVDCIVDCIVDCIVDyDzmDq8/d+1/PY5trRB7VGyt2BqxVWLLxe4RW6JpbohdF7sq9qnYpNhFsY/Evoi6QKeOvMAWQKITToQ8LPaEWKfYBrFlVdL/SO1BsU3W/1+JnRMbE3tP7DIPHcmicLrFfia2VWxlBOuD4H6pNi32tthfxM7yEJIsCAc9yw6x7WJLYyozhNgvtlPsLbHT2hMRkjrhYPzynNhu/d4IIMxesafEToqdiGMcREhcwnlKe4AtTaoDhHpArF1sSOwdHlYSN/WGo/Niv2+iaGy2aFnyPKwkqT1OTmyf2pIE1Qdh7t+J/VjsqBgfbyWJEU5OXaMDCa0ThHxYbJHYIYqHJMVV25dg0dgc0LIS0nTh5FPWGPdxzEOaLRxEz/YkbEwTxG3bo2UnpOHCQci3XwffaWONln0FDzdptHBwcXNLiuu5RetASMOE02nKdwSknd1aF0IaIpwdGXFzVmhdCIldOLjLeXuG6rtd60RIrMLBowFLM1TfpVonQmITDh5C25rBOm/VuhESi3Dw5ObKDNZ5pdaNkFiE05nhenfy0JM4hIMI1IYM13uD4QVREoNw8DaaZRmu9zKtIyGh8HusYG3UG/pJ6w/NKy89O/P70j+nzSsn/zTz+5EHV5oHlt9rep58fFa+sQ8vmEtXps35C5/4+12PrTMP3H9v6dMGeZAX6/Cp49tsAiRK4TTsnrS771xsdj3TZTrWPeQrCtiljmnzhzfPmH//538zyyC0/l9tLonSC6wT1tmxzgxJ3q+//a4pdSTzx1Vb1SjR/Hr3L3xFY4MeCWnt3wf7d/iKxgYC+83un7vTruLhJ1H3OMsbsfHnpbdAo0Yv8rcPzpsz74/P6i3QU0AgtgA2b1pvPhQXDHltd+7MB+MzPQrSIa/tukE0mzeuN6f+/O6cOuZyubrr0tvb12bK73nDZ/cbbxwfzWKD2Tnw2l75KIiN/rHwYibvwggyobSfcO6Ju3COINDYX5axjsuNKo1PYLue+eksATy9scN0rF1T6q0AxkkYL9l8dvWaOXX1XfPZl9dK+W23zxJY1HXsUtEANK7RBDf+s1reakyJOFa7/utz6ivr6ZLlmTxBhHXVGvawmsfYYxYjf//HrHENBIMexVnmFs2cwIJr+WO33cKo64gGNKXfBzPcZo479Z2voqnU4zQENGz0DpWAaJAOLpoNxGa7dn6cv/jJbHfv/vtiqYu4ZhDN6pQd/5rdLUk/mPETQ109zo2GCOf8hUDpPr4yHTqvu8exAgQ3DCERC+d63BtGT1Ktt3G45uHK+VybmYPbDbSEc52Hn0QtnKtxb7jSuKZaWojOHvfUkt8JKjSijmT+jXEwqdOmeHuc/4bOe7OOvK46etLb24eoWI8pv4/aHhSP+IWZNRx9RX/mJd3xasvlP2wDUSo7wlUaQ8jyYrUKhClnvewceO2Yltkr4maHq0vLEXkz5SijU8duJ6jgXpf8btPfe937Q5YXNU+LpilYaSY0zUiVsrdrObD+FmsR8o1Uyx+kx5mcByeNSa/GLzauB6XdtRgH66w21rqR9aDRDJu5YWGsf1yF5pe3YeWsU2QoW6DQt6a94hLNzP6AYFRY4y7RGN0Hwypav/UXrLwtrsU91fIHFc7FeSCci67G2KIHGQehqL1CDmbK0TLnbFSQtH11brtPbdDaRqu5Hept82hAzShnveDEgN5ltZzNc2pePaFTJ5S9Fel89sewfs876zPlR+GdywAFFZcX7VYPtj5E/kCuGubcxPSBWb1D+iuto01BDwp2YreGl0vo923SEIf17LTXOqhhaHe7c+qa5VUYJRdOvg94uGxRlhMXMStdJu+u41oNyjgRMNzdoq7SNucPdc3y2pC7rBPJNtulQvkkTd7cnp2vx3iHyydUcFP2nzXkD9TjYIKmcxnubc4ZaxIqbazO2XnQbowunB0KV6m9ju2PusdALn/bfZZsVjnrZTCCtPZ+8hyHqLinLMEajzQDbtG48hcr5Q/a44AxU55zM4uMefi4Xg13FtJQJ6Qh2o16IqxwAi5ri7mcsd5vVsNguyhp/co44fPdzZTur7aQxZ0wwW5DqioczO6Mq4dZfO/Aex5uhcO3VqOr5l6EpVih0RcrbL/R5ayHqSj2RwURhdqeFZWzx5s1i62ScDAlOh706s+gcC4npHHVSoshoRDB9Fjjw7qpdq8apkTH7M5LM75fnTNeUc74rSxn5kTjXFtyGLDHUAhE1HDHeCDhYGWYEr13nginBQPwIBcfWc5UsdcKLmyLYoVB3h192mR/GvRRnwE4y5n+3qbdcnErBSvaoxbOmNjJLO9cRKGsgWehylX7rmZdlU9LOdM2RtS7ClqiFg44IfbXtO6thQvvuBkgWd7auePuRqcN8Zi5faGsWaSlnIlAw9yOS1vQIIEjmDb7frkogwMOcNWGTPnNMGl7O8zknYsX/UA+76p2NpcGB/93WBslzugFn+QTzapMWsqZMPLW/sI9ae7l3ToOChxxq2UO0HfEXjXpegAMZX118aKFNwM2SvjAqzXqUvRohPi/tdkv4khLORPU64yoONxjHNyVsD7MbUU5rzd67Nr/eqU8+8UOp2Sf/VbsiN/CU0deYKsioVgQIs9RsUMpqNshLSshkRPmZR23tFF+L7bPJG/69hsqmKNaVkISIRxHPHCBvhHbk6CAwaSOw47x0JIkCscBDfRzU76frdnTuSNcPqRBDEISLRyjDfWSKUdzMCV6o+edQagcF2hPmOzf4UAyJByn8R405bsMMCU6ZneO+8bQf5nyfXSnzdznawhJhXAcxtQQL8fszpioNurnefCMEB53wJ3bvDpOMiEch7NqGHNgotpOU54+MOw7DPCOgHMqSjyEdpmHjmRROA6X1YZ07IPpAzETGqJwmJ8GU21g1gAnpI1QMt6wiZcF4r1niJLhbTQfcfxCkkQuyFwghJDZLOAuIITCIYTCIYTCIYTCIYTCIYRQOIRQOIRQOIRQOIRQOISQWvi/AAMA9UczDEaG0p8AAAAASUVORK5CYII="]
                 // getMyASYS_ICONSdata();
     
+    // TODO: implementieren wenn Attribute möglich sind
+    var adma = ""
+    /*var adm = getAddressData( [GetAttributeKey( "Aussendienst", "1", orgrelid, pUser )[0]],
+        [["Person","function", "concat( ['SALUTATION', 'TITLE', 'FIRSTNAME','LASTNAME'])"],
+        ["Telefon", "function", "getCommAddrSQL('Telefon', 'CONTACT.CONTACTID')"],
+        ["Email", "function", "getCommAddrSQL('E-Mail', 'CONTACT.CONTACTID')"]
+        ] );
+    var adma = "";
+    if (adm[1] != undefined)  adma = adm[1].join("\n");*/
+    
     var params = {
         "Zahlungsbedingung" : translate.text("Conditions of payment", language),
         "Artikelbezeichnung" : translate.text("Articledescription", language),
         "Lieferbedingung" : translate.text("Deliveryspecification", language),
         "OFFERPers" : (AddressUtils.getLetterSalutation() + ",").toString(), // TODO: AddrObject implementieren (addrobj.formatAddress("{ls},");)
         "Artikel-Nr" : translate.text("Articlenumber", language),
-        "OFFERAddr" : AddressUtils.getAddress(relid).toString(), // TODO: OFFER.ADDRESS 
+        "OFFERAddr" : AddressUtils.getAddress(contactId).toString(), // TODO: OFFER.ADDRESS 
         "zzglUMST" : translate.text("Plus Salestax", language),
         "Einzelpreis" : translate.text("Unitprice", language),
         "Nummer" : translate.text("Number", language),
@@ -226,23 +241,16 @@ OfferUtils.openOfferReport = function(pOfferID)
         "Pos" : translate.text("Pos.", language),
         "myAddr" : imgData[0],
         // TODO: payment / delivery-Terms implement (if needed)
-        "OFFERPay" : "", //getKeyName(rptdata[0][3] , "PAYMENTTERMS", "KEYNAME1", language);
-        "OFFERDel" : "" //getKeyName(rptdata[0][4] , "DELIVERYTERMS", "KEYNAME1", language);
+        
+        "OFFERPay" : KeywordUtils.getViewValue($KeywordRegistry.paymentTerm(), offerData[3]),
+        "OFFERDel" : KeywordUtils.getViewValue($KeywordRegistry.deliveryTerm(), offerData[4]),
+        "AD_Name" : adma,
+        "SUMITEMSUM" : sumItemSum,
+        "TOTAL" : text.formatDouble(total, translate.text("#,##0.00"), true),
+        "anzahl" : countDiscounts
     };
     
-    // TODO: implementieren wenn Attribute möglich sind
-    var adma = ""
-    /*var adm = getAddressData( [GetAttributeKey( "Aussendienst", "1", orgrelid, pUser )[0]],
-        [["Person","function", "concat( ['SALUTATION', 'TITLE', 'FIRSTNAME','LASTNAME'])"],
-        ["Telefon", "function", "getCommAddrSQL('Telefon', 'CONTACT.CONTACTID')"],
-        ["Email", "function", "getCommAddrSQL('E-Mail', 'CONTACT.CONTACTID')"]
-        ] );
-    var adma = "";
-    if (adm[1] != undefined)  adma = adm[1].join("\n");*/
-    params["AD_Name"] = adma;
-    params["SUMITEMSUM"] = sumItemSum;
-    params["TOTAL"] = text.formatDouble(total, translate.text("#,##0.00"), true);
-    params["anzahl"] = countDiscounts;
+    
 
     offerReport.addImage("myLogo", imgData[1]);
 
@@ -270,7 +278,7 @@ OfferUtils.openOfferReport = function(pOfferID)
             "ITEMSUM", // 16
             "OFFERITEM_UNITTEXT" //17
         ])
-        .add(data));
+        .add(itemData));
     
     offerReport.openReport();
 }
diff --git a/process/Product_lib/process.js b/process/Product_lib/process.js
index 99a29735c11b6866fa20079f8846c6fcaeded0d3..03b268f9d67c76fc3f4b754bb522c5489bb90d00 100644
--- a/process/Product_lib/process.js
+++ b/process/Product_lib/process.js
@@ -1,3 +1,4 @@
+import("system.logging");
 import("system.util");
 import("system.SQLTYPES");
 import("system.datetime");
@@ -427,7 +428,8 @@ Prod2ProdUtils.prototype.getPartsListObject = function() {
  *                    , "QUANTITY"
  *                    , "OPTIONAL"
  *                    , "TAKEPRICE"
- *                    , "PRODUCTCODE"] ]
+ *                    , "PRODUCTCODE"
+ *                    , "PRODUCTID"] ]
  */
 Prod2ProdUtils.prototype.getPartsListForRecordContainer = function() {
     var tree = this._relateChilds();
@@ -488,7 +490,7 @@ Prod2ProdUtils.prototype.getParentProdIds = function() {
 */
 Prod2ProdUtils.prototype._initProd2ProdData = function() {
     if (this.data == undefined) {
-        this.data = db.table("select SOURCE_ID, DEST_ID, PROD2PRODID, QUANTITY, OPTIONAL, TAKEPRICE, PRODUCTCODE, SOURCE_ID, DEST_ID "
+        this.data = db.table("select SOURCE_ID, DEST_ID, PROD2PRODID, QUANTITY, OPTIONAL, TAKEPRICE, PRODUCTCODE, PRODUCTID, SOURCE_ID, DEST_ID "
                     + "from PROD2PROD join PRODUCT on PROD2PROD.SOURCE_ID = PRODUCTID "
                     + "order by PRODUCTCODE ");
     }
@@ -500,7 +502,7 @@ Prod2ProdUtils.prototype._initProd2ProdData = function() {
 Prod2ProdUtils.prototype._buildTree = function(supervised) {
     this._initProd2ProdData();
     var productId = this.productId;
-    
+        
     var tree = DataTree.begin(this.productId).addArray(this.data,
         function(pUid, pNode)
         {
@@ -522,6 +524,7 @@ Prod2ProdUtils.prototype._buildTree = function(supervised) {
                     pNode["optional"] = pNode.data[2];
                     pNode["takeprice"] = pNode.data[3];
                     pNode["productcode"] = pNode.data[4];
+                    pNode["productid"] = pNode.data[5];
                 }
             }
         }
@@ -538,11 +541,14 @@ Prod2ProdUtils.prototype._relateChilds = function() {
 
     function __relate(id) {
         var treeObject = tree.getTreeObject();
-        for (var treeId in treeObject) {
-            if (treeObject[treeId].destid == treeObject[id].sourceid && treeObject[id].ids.indexOf(treeId) == -1) { 
-                treeObject[id].ids.push(treeId);
-                __relate(treeId);
-            }    
+        if (treeObject[id] != undefined)
+        {
+            for (var treeId in treeObject) {
+                if (treeObject[treeId].destid == treeObject[id].sourceid && treeObject[id].ids.indexOf(treeId) == -1) { 
+                    treeObject[id].ids.push(treeId);
+                    __relate(treeId);
+                }    
+            }
         }
     }
 }
@@ -557,11 +563,14 @@ Prod2ProdUtils.prototype._relateParents = function() {
 
     function __relate(id) {
         var treeObject = tree.getTreeObject();
-        for (var treeId in treeObject) {
-            if (treeObject[treeId].sourceid == treeObject[id].destid && treeObject[id].ids.indexOf(treeId) == -1) {   
-                treeObject[id].ids.push(treeId);
-                __relate(treeId);
-            }    
+        if (treeObject[id] != undefined)
+        {
+            for (var treeId in treeObject) {
+                if (treeObject[treeId].sourceid == treeObject[id].destid && treeObject[id].ids.indexOf(treeId) == -1) {   
+                    treeObject[id].ids.push(treeId);
+                    __relate(treeId);
+                }    
+            }
         }
     }
 }
\ No newline at end of file
diff --git a/process/Salesproject_lib/process.js b/process/Salesproject_lib/process.js
index cadd2a4a1b46dffb081cc55939a6a5769624c2dd..1e98c785d072feb6509c4959ecc89c84e2ad39a2 100644
--- a/process/Salesproject_lib/process.js
+++ b/process/Salesproject_lib/process.js
@@ -54,7 +54,6 @@ Salesproject.insertMilestone = function(salesprojectId, type, value, notifyForec
             ["SALESPROJECT_CYCLEID", "SALESPROJECT_ID", "TYPE", "VALUE", "DATE_START"],
             null,
             [util.getNewUUID(), salesprojectId, type, value, vars.get("$sys.date")]);
-            
         if (notifyForecast) {
             Salesproject.notifyToUpdateForecast()
         }
@@ -69,6 +68,7 @@ Salesproject.insertMilestone = function(salesprojectId, type, value, notifyForec
 Salesproject.notifyToUpdateForecast = function() {
    // TODO: logging.show durch sinnvolle Meldung ersetzen oder ähnlich...
    // logging.show(translate.text("Please update the forecast."));
+   question.showMessage(translate.text("Please update the ${FORECAST_ENGLISH}."), question.INFORMATION, translate.text("${FORECAST_ENGLISH}"))
 }
 
 /**
diff --git a/process/Sql_lib/process.js b/process/Sql_lib/process.js
index e677069ded29df17642361879c8b9d2fa146cd85..195c85cb415d1ab8dfcd35cf22bfff512480a6bd 100644
--- a/process/Sql_lib/process.js
+++ b/process/Sql_lib/process.js
@@ -1207,7 +1207,7 @@ SqlUtils.getSqlInStatement = function(pFieldname, pData, pQuoteSymbol) {
 * 
 * @return {String} a SQL-expression (case-when-statement) that resolves the KEYID into the title -> as preparedSatement-elements
 */
-SqlUtils.getResolvingCaseWhen = function(pKeyValueArray, pDbFieldName, pLocale)
+SqlUtils.getResolvingCaseWhen = function(pKeyValueArray, pDbFieldName, pLocale) 
 {
     var keyData = pKeyValueArray;
     if (keyData.length == 0)
diff --git a/report/RPTJ_OFFER/reportData.jrxml b/report/RPTJ_OFFER/reportData.jrxml
index eb3f94233e15c3ef7e83778cb2158003ea1b2a37..8b2770cb5478bfdf07ba53199fc3d93e03070191 100644
--- a/report/RPTJ_OFFER/reportData.jrxml
+++ b/report/RPTJ_OFFER/reportData.jrxml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report1" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="e7a916c8-3f9a-497d-84bb-3909b15271ea">
-	<property name="ireport.zoom" value="1.4641000000000006"/>
+	<property name="ireport.zoom" value="1.0"/>
 	<property name="ireport.x" value="0"/>
-	<property name="ireport.y" value="75"/>
+	<property name="ireport.y" value="0"/>
 	<parameter name="myAddr" class="java.lang.String"/>
 	<parameter name="Pos" class="java.lang.String"/>
 	<parameter name="Artikelbezeichnung" class="java.lang.String"/>
@@ -24,7 +24,7 @@
 	<parameter name="OFFERDel" class="java.lang.String"/>
 	<parameter name="AD_Name" class="java.lang.String"/>
 	<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
-		<defaultValueExpression><![CDATA["C:\\Entwicklungszweige\\0.0\\project\\xRM-Basic2019\\report\\RPTJ_OFFER\\"]]></defaultValueExpression>
+		<defaultValueExpression><![CDATA["C:\\entwicklungszweige\\0.0\\project\\xRM-Basic2019\\report\\RPTJ_OFFER\\"]]></defaultValueExpression>
 	</parameter>
 	<parameter name="adito.datasource.subdata" class="java.lang.Object"/>
 	<parameter name="SUMITEMSUM" class="java.lang.Double"/>
diff --git a/report/RPTJ_OFFER/reportData_subreport1.jrxml b/report/RPTJ_OFFER/reportData_subreport1.jrxml
index 3704cb6ed86eee69055cfb7d5d0fd3eb21c6bfc0..64c7bed355e5b67b1af4d11fbbff85398b6c3105 100644
--- a/report/RPTJ_OFFER/reportData_subreport1.jrxml
+++ b/report/RPTJ_OFFER/reportData_subreport1.jrxml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="reportData_subreport1" pageWidth="200" pageHeight="802" columnWidth="200" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="65da6912-abcf-40ed-a854-750d851fe857">
-	<property name="ireport.zoom" value="1.3310000000000004"/>
+	<property name="ireport.zoom" value="6.72749994932561"/>
 	<property name="ireport.x" value="0"/>
 	<property name="ireport.y" value="0"/>
 	<parameter name="zzglUMST" class="java.lang.String"/>
@@ -22,7 +22,7 @@
 					<textElement>
 						<font fontName="Segoe UI" size="8"/>
 					</textElement>
-					<textFieldExpression><![CDATA[$P{zzglUMST} + " ( " + $F{VAT} + " %) "]]></textFieldExpression>
+					<textFieldExpression><![CDATA[$P{zzglUMST} + " (" + $F{VAT} + " %) "]]></textFieldExpression>
 				</textField>
 				<textField evaluationTime="Group" evaluationGroup="VAT" pattern="#,##0.00;-#,##0.00">
 					<reportElement x="117" y="0" width="80" height="15" uuid="6bba70aa-7399-45b7-805a-1590fbe07209"/>