diff --git a/.aditoprj/project.version b/.aditoprj/project.version
index 7575f2bdceeea11d07df2726a45be64b21ca4149..990663a160520bc3b2fedaa851ae64c30602bb79 100644
--- a/.aditoprj/project.version
+++ b/.aditoprj/project.version
@@ -1,4 +1,4 @@
 #This file is generated by ADITO designer. Do NOT delete or modify!
-#Mon Feb 04 13:21:44 CET 2019
+#Tue Feb 05 08:37:18 CET 2019
 version=5.1.8
 
diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod
index d435d6e3ae9c3101f7ac8120e861ec85340041c2..d751bf76565ac6bf277693b672e0613c11280972 100644
--- a/aliasDefinition/Data_alias/Data_alias.aod
+++ b/aliasDefinition/Data_alias/Data_alias.aod
@@ -88,8 +88,8 @@
                 <name>TYPE</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="4" />
-                <size v="10" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
@@ -728,8 +728,8 @@
                 <name>PAYMENT</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="4" />
-                <size v="10" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
@@ -741,8 +741,8 @@
                 <name>CONTRACTSTATUS</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="4" />
-                <size v="10" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
@@ -793,8 +793,8 @@
                 <name>CONTRACTTYPE</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="4" />
-                <size v="10" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
@@ -942,8 +942,8 @@
                 <name>GROUPCODEID</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="4" />
-                <size v="10" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
@@ -1139,8 +1139,8 @@
                 <name>CURRENCY</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="4" />
-                <size v="10" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="true" />
                 <isUnique v="false" />
@@ -1554,8 +1554,8 @@
                 <name>CURRENCY</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="4" />
-                <size v="10" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
@@ -1658,8 +1658,8 @@
                 <name>STATUS</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="4" />
-                <size v="10" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
@@ -1914,8 +1914,8 @@
                 <name>GROUPCODEID</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="4" />
-                <size v="10" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
@@ -2395,8 +2395,8 @@
                 <name>GROUPCODE</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="4" />
-                <size v="10" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
@@ -3041,8 +3041,8 @@
                 <name>CURRENCY</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="4" />
-                <size v="10" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
@@ -3382,8 +3382,8 @@
                 <name>GROUPCODEID</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="4" />
-                <size v="10" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
diff --git a/entity/ActivityLink_entity/ActivityLink_entity.aod b/entity/ActivityLink_entity/ActivityLink_entity.aod
index c03ee0e46d6d263184e8d9efbdb7f3f72e9302bc..455013ad01ed451d35ccf7eeef396362219eeb38 100644
--- a/entity/ActivityLink_entity/ActivityLink_entity.aod
+++ b/entity/ActivityLink_entity/ActivityLink_entity.aod
@@ -42,7 +42,7 @@
         <entityDependency>
           <name>73dec28e-1c16-4b09-a665-8db44201d317</name>
           <entityName>Activity_entity</entityName>
-          <fieldName>Links</fieldName>
+          <fieldName>ActivityLink_dfo</fieldName>
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
diff --git a/entity/Activity_entity/entityfields/links/children/objectrowid_param/code.js b/entity/Activity_entity/entityfields/activitylink_dfo/children/objectrowid_param/code.js
similarity index 100%
rename from entity/Activity_entity/entityfields/links/children/objectrowid_param/code.js
rename to entity/Activity_entity/entityfields/activitylink_dfo/children/objectrowid_param/code.js
diff --git a/entity/Activity_entity/entityfields/links/children/objecttype_param/code.js b/entity/Activity_entity/entityfields/activitylink_dfo/children/objecttype_param/code.js
similarity index 100%
rename from entity/Activity_entity/entityfields/links/children/objecttype_param/code.js
rename to entity/Activity_entity/entityfields/activitylink_dfo/children/objecttype_param/code.js
diff --git a/entity/Activity_entity/entityfields/maindocuments/children/assignmentname_param/code.js b/entity/Activity_entity/entityfields/activitymaindocument_dfo/children/assignmentname_param/code.js
similarity index 100%
rename from entity/Activity_entity/entityfields/maindocuments/children/assignmentname_param/code.js
rename to entity/Activity_entity/entityfields/activitymaindocument_dfo/children/assignmentname_param/code.js
diff --git a/entity/Activity_entity/entityfields/maindocuments/children/assignmentrowid_param/code.js b/entity/Activity_entity/entityfields/activitymaindocument_dfo/children/assignmentrowid_param/code.js
similarity index 100%
rename from entity/Activity_entity/entityfields/maindocuments/children/assignmentrowid_param/code.js
rename to entity/Activity_entity/entityfields/activitymaindocument_dfo/children/assignmentrowid_param/code.js
diff --git a/entity/Activity_entity/entityfields/maindocuments/children/assignmenttable_param/code.js b/entity/Activity_entity/entityfields/activitymaindocument_dfo/children/assignmenttable_param/code.js
similarity index 100%
rename from entity/Activity_entity/entityfields/maindocuments/children/assignmenttable_param/code.js
rename to entity/Activity_entity/entityfields/activitymaindocument_dfo/children/assignmenttable_param/code.js
diff --git a/entity/Activity_entity/entityfields/objectrelations/children/object1rowid_param/code.js b/entity/Activity_entity/entityfields/activityobjectrelation_dfo/children/object1rowid_param/code.js
similarity index 100%
rename from entity/Activity_entity/entityfields/objectrelations/children/object1rowid_param/code.js
rename to entity/Activity_entity/entityfields/activityobjectrelation_dfo/children/object1rowid_param/code.js
diff --git a/entity/Activity_entity/entityfields/objectrelations/children/object1type_param/code.js b/entity/Activity_entity/entityfields/activityobjectrelation_dfo/children/object1type_param/code.js
similarity index 100%
rename from entity/Activity_entity/entityfields/objectrelations/children/object1type_param/code.js
rename to entity/Activity_entity/entityfields/activityobjectrelation_dfo/children/object1type_param/code.js
diff --git a/entity/Activity_entity/entityfields/keyworddirections/children/containername_param/code.js b/entity/Activity_entity/entityfields/keyworddirections/children/containername_param/code.js
index a61ca767b20547291786e74edb131c5a4142ead1..8cfc283099c6d657eef5f498c9a5c37bc435b73b 100644
--- a/entity/Activity_entity/entityfields/keyworddirections/children/containername_param/code.js
+++ b/entity/Activity_entity/entityfields/keyworddirections/children/containername_param/code.js
@@ -1,3 +1,4 @@
 import("system.result");
+import("Keyword_lib");
 
-result.string("ActivityDirection");
\ No newline at end of file
+result.string($KeywordRegistry.get.ActivityDirection);
\ No newline at end of file
diff --git a/entity/Activity_entity/recordcontainers/db/recordfieldmappings/direction.displayvalue/expression.js b/entity/Activity_entity/recordcontainers/db/recordfieldmappings/direction.displayvalue/expression.js
index dbba57a01b3e2f2d3291ecb90ac417c995db6bde..1c43b5f520affa6cddbe8dfb95db976ffa4a0061 100644
--- a/entity/Activity_entity/recordcontainers/db/recordfieldmappings/direction.displayvalue/expression.js
+++ b/entity/Activity_entity/recordcontainers/db/recordfieldmappings/direction.displayvalue/expression.js
@@ -1,5 +1,5 @@
 import("system.result");
 import("Keyword_lib");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart("ActivityDirection", "ACTIVITY.DIRECTION");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.ActivityDirection, "ACTIVITY.DIRECTION");
 result.string(sql);
diff --git a/entity/Appointment_entity/Appointment_entity.aod b/entity/Appointment_entity/Appointment_entity.aod
index afa818a7903f7f3be94f33b51d73894adebcf479..6fbc883175d2d8f650c4e6c032372c2ab7810bcc 100644
--- a/entity/Appointment_entity/Appointment_entity.aod
+++ b/entity/Appointment_entity/Appointment_entity.aod
@@ -129,6 +129,36 @@
       <expose v="true" />
       <description>PARAMETER</description>
     </entityParameter>
+    <entityConsumer>
+      <name>ObjectRelations</name>
+      <title>Relations</title>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ObjectRelation_entity</entityName>
+        <fieldName>AnyObject</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>AnyObjectRowid_param</name>
+          <code>%aditoprj%/entity/Appointment_entity/entityfields/objectrelations/children/anyobjectrowid_param/code.js</code>
+          <expose v="true" />
+          <mandatory v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>AnyObjectType_param</name>
+          <code>%aditoprj%/entity/Appointment_entity/entityfields/objectrelations/children/anyobjecttype_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityParameter>
+      <name>AnyObjectRowid_param</name>
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>AnyObjectType_param</name>
+      <description>PARAMETER</description>
+    </entityParameter>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
diff --git a/entity/Appointment_entity/entityfields/objectrelations/children/anyobjectrowid_param/code.js b/entity/Appointment_entity/entityfields/objectrelations/children/anyobjectrowid_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..fa08fc1fd16d270732a297ccfed03b1136701758
--- /dev/null
+++ b/entity/Appointment_entity/entityfields/objectrelations/children/anyobjectrowid_param/code.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.UID"))
\ No newline at end of file
diff --git a/entity/Appointment_entity/entityfields/objectrelations/children/anyobjecttype_param/code.js b/entity/Appointment_entity/entityfields/objectrelations/children/anyobjecttype_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..efc405cb8b7289310ca284800a6ff50eea9bbe12
--- /dev/null
+++ b/entity/Appointment_entity/entityfields/objectrelations/children/anyobjecttype_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Context_lib");
+
+result.string(ContextUtils.getCurrentContextId())
\ No newline at end of file
diff --git a/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js b/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js
index e6467cae5b4cb5d9a2940ba2d61f710b640159a5..a30df98ad48f6d33ebc392cdd90678dc64ccd15d 100644
--- a/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js
@@ -6,7 +6,6 @@ import("system.datetime");
 import("system.eMath");
 import("system.util");
 
-//logging.log("contentProcess")
 if(vars.exists("$param.Entry_param"))
 {
     var entry = JSON.parse(vars.getString("$param.Entry_param"));
diff --git a/entity/Contact_entity/Contact_entity.aod b/entity/Contact_entity/Contact_entity.aod
index 379297c63d0ef8d10f9d30e47def7add75140c78..57c4bc79dfc28de4f14dba22e32062056c25c3b5 100644
--- a/entity/Contact_entity/Contact_entity.aod
+++ b/entity/Contact_entity/Contact_entity.aod
@@ -21,7 +21,7 @@
     <entityField>
       <name>GENDER</name>
       <title>Gender</title>
-      <possibleItemsProcess>%aditoprj%/entity/Contact_entity/entityfields/gender/possibleItemsProcess.js</possibleItemsProcess>
+      <consumer>KeywordGenders</consumer>
     </entityField>
     <entityField>
       <name>LASTNAME</name>
@@ -453,6 +453,21 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityConsumer>
+      <name>KeywordGenders</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Keyword_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Contact_entity/entityfields/keywordgenders/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -559,6 +574,10 @@
           <name>ORG_ID.displayValue</name>
           <recordfield>ORG.NAME</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>GENDER.displayValue</name>
+          <expression>%aditoprj%/entity/Contact_entity/recordcontainers/db/recordfieldmappings/gender.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Contact_entity/entityfields/gender/possibleItemsProcess.js b/entity/Contact_entity/entityfields/gender/possibleItemsProcess.js
deleted file mode 100644
index 4459a5974eff9e6fa81c831eb0ecd11c2b2f014c..0000000000000000000000000000000000000000
--- a/entity/Contact_entity/entityfields/gender/possibleItemsProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-var items;
-
-items = KeywordUtils.getStandardArray("PERS.GENDER");
-result.object(items);
\ No newline at end of file
diff --git a/entity/Contact_entity/entityfields/keywordgenders/children/containername_param/code.js b/entity/Contact_entity/entityfields/keywordgenders/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..2ebed5250dcf6d888af8a86154f7bf70893866f3
--- /dev/null
+++ b/entity/Contact_entity/entityfields/keywordgenders/children/containername_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Keyword_lib");
+
+result.string($KeywordRegistry.get.PersonGender);
diff --git a/entity/Contact_entity/recordcontainers/db/recordfieldmappings/gender.displayvalue/expression.js b/entity/Contact_entity/recordcontainers/db/recordfieldmappings/gender.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..cb2c32fa461419f02b9b86952589116453e77f92
--- /dev/null
+++ b/entity/Contact_entity/recordcontainers/db/recordfieldmappings/gender.displayvalue/expression.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.PersonGender, "PERS.GENDER");
+result.string(sql);
diff --git a/entity/Context_entity/Context_entity.aod b/entity/Context_entity/Context_entity.aod
new file mode 100644
index 0000000000000000000000000000000000000000..5348326bb64b41d175e94689ff5f2f9a8710d95d
--- /dev/null
+++ b/entity/Context_entity/Context_entity.aod
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.2.0">
+  <name>Context_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <titleProcess>%aditoprj%/entity/Context_entity/titleProcess.js</titleProcess>
+  <recordContainer>jdito</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+      <recordContainer>jdito</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>40037d07-01a3-474a-aaf6-875aaf250bbf</name>
+          <entityName>ObjectRelation_entity</entityName>
+          <fieldName>Context_dfo</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>7b7e6760-5f1f-47d5-a164-72c9e16b9e20</name>
+          <entityName>ObjectRelation_entity</entityName>
+          <fieldName>Contexts</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+    <entityField>
+      <name>UID</name>
+      <title>Context id</title>
+    </entityField>
+    <entityField>
+      <name>CONTEXT_NAME</name>
+      <title>Context name</title>
+    </entityField>
+    <entityParameter>
+      <name>ContextId_param</name>
+      <expose v="true" />
+      <mandatory v="false" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityProvider>
+      <name>Context</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <children>
+        <entityParameter>
+          <name>ContextId_param</name>
+          <expose v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+  </entityFields>
+  <recordContainers>
+    <jDitoRecordContainer>
+      <name>jdito</name>
+      <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
+      <contentProcess>%aditoprj%/entity/Context_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
+      <recordFields>
+        <element>UID.value</element>
+        <element>UID.displayValue</element>
+        <element>CONTEXT_NAME.value</element>
+      </recordFields>
+    </jDitoRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/Context_entity/recordcontainers/jdito/contentProcess.js b/entity/Context_entity/recordcontainers/jdito/contentProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..62ea3319494a23ed8a93d3eddd3b73996cf370ce
--- /dev/null
+++ b/entity/Context_entity/recordcontainers/jdito/contentProcess.js
@@ -0,0 +1,29 @@
+import("system.vars");
+import("system.result");
+import("system.project");
+import("system.logging");
+import("Context_lib");
+
+if (vars.exists("$param.ContextId_param") && vars.get("$param.ContextId_param"))
+{
+    result.object(_contextDataMapping(project.getDataModel(project.DATAMODEL_KIND_CONTEXT, vars.get("$param.ContextId_param"))));
+}
+else
+{
+    result.object(project.getDataModels(project.DATAMODEL_KIND_CONTEXT).map(_contextDataMapping).sort(function(pContext1, pContext2) {
+        if (pContext1[2] > pContext2[2])
+            return 1;
+        
+        if (pContext1[2] < pContext2[2])
+            return -1;
+        
+        return 0;
+    }));
+}
+
+function _contextDataMapping(pContext)
+{
+    var contextName = ContextUtils.getContextName(pContext[0]);
+
+    return [pContext[0], contextName, (pContext[1] ? pContext[1] : contextName)];
+}
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/contractpayments/children/containername_param/code.js b/entity/Contract_entity/entityfields/contractpayments/children/containername_param/code.js
index c34418d5c88c764b87cfb79b99689ff1006e5fca..54ff29d035dab6cf6017627910ae6a472dec27e0 100644
--- a/entity/Contract_entity/entityfields/contractpayments/children/containername_param/code.js
+++ b/entity/Contract_entity/entityfields/contractpayments/children/containername_param/code.js
@@ -1,2 +1,4 @@
 import("system.result");
-result.string("ContractPayment");
\ No newline at end of file
+import("Keyword_lib");
+
+result.string($KeywordRegistry.get.ContractPayment);
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/contractstates/children/containername_param/code.js b/entity/Contract_entity/entityfields/contractstates/children/containername_param/code.js
index 11ada9125d8a16eb253124748f409276a7aa4d1a..54ff29d035dab6cf6017627910ae6a472dec27e0 100644
--- a/entity/Contract_entity/entityfields/contractstates/children/containername_param/code.js
+++ b/entity/Contract_entity/entityfields/contractstates/children/containername_param/code.js
@@ -1,2 +1,4 @@
 import("system.result");
-result.string("ContractStatus");
\ No newline at end of file
+import("Keyword_lib");
+
+result.string($KeywordRegistry.get.ContractPayment);
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/contracttypes/children/containername_param/code.js b/entity/Contract_entity/entityfields/contracttypes/children/containername_param/code.js
index c7495149c8a411397718c797ce6d9044af176c38..0fe52ea7a199de4de39209b3f5f75eb10315a1b4 100644
--- a/entity/Contract_entity/entityfields/contracttypes/children/containername_param/code.js
+++ b/entity/Contract_entity/entityfields/contracttypes/children/containername_param/code.js
@@ -1,2 +1,4 @@
 import("system.result");
-result.string("ContractType");
\ No newline at end of file
+import("Keyword_lib");
+
+result.string($KeywordRegistry.get.ContractType);
\ No newline at end of file
diff --git a/entity/Contract_entity/recordcontainers/db/recordfieldmappings/contractstatus.displayvalue/expression.js b/entity/Contract_entity/recordcontainers/db/recordfieldmappings/contractstatus.displayvalue/expression.js
index 07c629a28ad80b2151cadfb09f2db4b8eb80c203..d84fac9571b6495f5e06a6c1df40c631eefb0fdb 100644
--- a/entity/Contract_entity/recordcontainers/db/recordfieldmappings/contractstatus.displayvalue/expression.js
+++ b/entity/Contract_entity/recordcontainers/db/recordfieldmappings/contractstatus.displayvalue/expression.js
@@ -1,5 +1,5 @@
 import("system.result");
 import("Keyword_lib");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart("ContractStatus", "CONTRACT.CONTRACTSTATUS");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.ContractStatus, "CONTRACT.CONTRACTSTATUS");
 result.string(sql);
\ No newline at end of file
diff --git a/entity/Contract_entity/recordcontainers/db/recordfieldmappings/contracttype.displayvalue/expression.js b/entity/Contract_entity/recordcontainers/db/recordfieldmappings/contracttype.displayvalue/expression.js
index b436148a9b20344a734c0ff72cc38f39154576b1..5f5e46ae862cacca32fc9145db9da181553b1f8d 100644
--- a/entity/Contract_entity/recordcontainers/db/recordfieldmappings/contracttype.displayvalue/expression.js
+++ b/entity/Contract_entity/recordcontainers/db/recordfieldmappings/contracttype.displayvalue/expression.js
@@ -1,5 +1,5 @@
 import("system.result");
 import("Keyword_lib");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart("ContractType", "CONTRACT.CONTRACTTYPE");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.ContractType, "CONTRACT.CONTRACTTYPE");
 result.string(sql);
\ No newline at end of file
diff --git a/entity/Contract_entity/recordcontainers/db/recordfieldmappings/payment.displayvalue/expression.js b/entity/Contract_entity/recordcontainers/db/recordfieldmappings/payment.displayvalue/expression.js
index 48711d1d4a9a2606c540c64d858a4d488ae5a790..51b49d230598c3a4ba0e6d5e467b2f807d418602 100644
--- a/entity/Contract_entity/recordcontainers/db/recordfieldmappings/payment.displayvalue/expression.js
+++ b/entity/Contract_entity/recordcontainers/db/recordfieldmappings/payment.displayvalue/expression.js
@@ -1,5 +1,5 @@
 import("system.result");
 import("Keyword_lib");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart("ContractPayment", "CONTRACT.PAYMENT");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.ContractPayment, "CONTRACT.PAYMENT");
 result.string(sql);
\ No newline at end of file
diff --git a/entity/Document_entity/Document_entity.aod b/entity/Document_entity/Document_entity.aod
index a50a7de1637dc7223d367cb674afeb7564614822..033c516e6df9aa13470168344a60155985c97d80 100644
--- a/entity/Document_entity/Document_entity.aod
+++ b/entity/Document_entity/Document_entity.aod
@@ -48,6 +48,19 @@
       <contentType>IMAGE</contentType>
       <state>READONLY</state>
     </entityField>
+    <entityProvider>
+      <name>OrgDocument_dfi</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <recordContainer>jdito</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>a6870a73-171b-4060-960c-8cc53ea558ae</name>
+          <entityName>Org_entity</entityName>
+          <fieldName>OrgDocument_dfo</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
     <entityField>
       <name>BINDATA_UPLOAD</name>
       <title>Datei</title>
diff --git a/entity/Keyword_entity/Keyword_entity.aod b/entity/Keyword_entity/Keyword_entity.aod
index 92a3e27b2b9c101c7b04e539b2f2649e145e1614..afc39b04e783658f5668cd1dea326cbd8503720e 100644
--- a/entity/Keyword_entity/Keyword_entity.aod
+++ b/entity/Keyword_entity/Keyword_entity.aod
@@ -118,6 +118,60 @@
           <fieldName>KeywordCurrencies</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>f5dcbf08-3765-4a9d-8b42-cb1219c87f57</name>
+          <entityName>Offeritem_entity</entityName>
+          <fieldName>KeywordProductGroupcodes</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>53bcaa07-94eb-4e81-9e9e-c5748156dad5</name>
+          <entityName>Orderitem_entity</entityName>
+          <fieldName>KeywordProductGroupcodes</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>c404b010-1634-4160-adca-7edf1535ee26</name>
+          <entityName>Product_entity</entityName>
+          <fieldName>KeywordProductGroupcodes</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>3575fdd7-3dd6-4318-b0d2-32d1df821076</name>
+          <entityName>SalesprojectForecast_entity</entityName>
+          <fieldName>KeywordProductGroupcodes</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>5a21cbe2-4eb0-4968-80fa-b98a64599230</name>
+          <entityName>Offer_entity</entityName>
+          <fieldName>KeywordOfferStates</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>8696e561-b263-4c7c-b753-c5da44b48055</name>
+          <entityName>Organisation_entity</entityName>
+          <fieldName>KeywordOrganisationTypes</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>0d54d283-f158-4b91-8f6d-026954ed9c50</name>
+          <entityName>Contact_entity</entityName>
+          <fieldName>KeywordGenders</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>001e0934-0920-4b38-afff-caf299e96abf</name>
+          <entityName>Task_entity</entityName>
+          <fieldName>KeywordTypes</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>8d28f08b-675d-4bcf-9318-a508d45ca69e</name>
+          <entityName>Task_entity</entityName>
+          <fieldName>KeywordStates</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
diff --git a/entity/ObjectRelation_entity/ObjectRelation_entity.aod b/entity/ObjectRelation_entity/ObjectRelation_entity.aod
index c6d960e6b8af422e05de763fdaab02b90fd17538..af84b90dd673c0d7b191dc9fec3a6433033885e4 100644
--- a/entity/ObjectRelation_entity/ObjectRelation_entity.aod
+++ b/entity/ObjectRelation_entity/ObjectRelation_entity.aod
@@ -12,10 +12,16 @@
     <entityField>
       <name>OBJECT1_TYPE</name>
       <title>Type 1</title>
+      <consumer>Contexts</consumer>
+      <linkedContextProcess>%aditoprj%/entity/ObjectRelation_entity/entityfields/object1_type/linkedContextProcess.js</linkedContextProcess>
+      <stateProcess>%aditoprj%/entity/ObjectRelation_entity/entityfields/object1_type/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/ObjectRelation_entity/entityfields/object1_type/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/ObjectRelation_entity/entityfields/object1_type/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>OBJECT1_ROWID</name>
       <title>Object 1</title>
+      <consumer>Objects1</consumer>
       <linkedContextProcess>%aditoprj%/entity/ObjectRelation_entity/entityfields/object1_rowid/linkedContextProcess.js</linkedContextProcess>
     </entityField>
     <entityField>
@@ -24,11 +30,16 @@
     <entityField>
       <name>OBJECT2_ROWID</name>
       <title>Object 2</title>
+      <consumer>Objects2</consumer>
       <linkedContextProcess>%aditoprj%/entity/ObjectRelation_entity/entityfields/object2_rowid/linkedContextProcess.js</linkedContextProcess>
     </entityField>
     <entityField>
       <name>OBJECT2_TYPE</name>
       <title>Type 2</title>
+      <consumer>Contexts</consumer>
+      <linkedContext>Context_context</linkedContext>
+      <stateProcess>%aditoprj%/entity/ObjectRelation_entity/entityfields/object2_type/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/ObjectRelation_entity/entityfields/object2_type/valueProcess.js</valueProcess>
     </entityField>
     <entityParameter>
       <name>Object1Type_param</name>
@@ -174,6 +185,8 @@
     <entityProvider>
       <name>AnyObject</name>
       <fieldType>DEPENDENCY_IN</fieldType>
+      <targetContextField>OBJECT1_TYPE</targetContextField>
+      <targetIdField>OBJECT1_ROWID</targetIdField>
       <recordContainer>db</recordContainer>
       <dependencies>
         <entityDependency>
@@ -188,6 +201,24 @@
           <fieldName>ObjectRelations</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>5c2e0fd4-8b64-46c7-afe1-fbb5fbbbedf8</name>
+          <entityName>Salesproject_entity</entityName>
+          <fieldName>ObjectRelation_dfo</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>e91667d7-9031-4c91-82af-5db255305793</name>
+          <entityName>Contract_entity</entityName>
+          <fieldName>ObjectRelation_dfo</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>f3b9bfa5-e04d-45b4-8bd6-baed4c7ceac0</name>
+          <entityName>Appointment_entity</entityName>
+          <fieldName>ObjectRelations</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
@@ -216,6 +247,45 @@
         </entityParameter>
       </children>
     </entityProvider>
+    <entityConsumer>
+      <name>Contexts</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Context_entity</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Objects1</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Object_entity</entityName>
+        <fieldName>AllObjects</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <code>%aditoprj%/entity/ObjectRelation_entity/entityfields/objects1/children/objecttype_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Objects2</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Object_entity</entityName>
+        <fieldName>AllObjects</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <code>%aditoprj%/entity/ObjectRelation_entity/entityfields/objects2/children/objecttype_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/ObjectRelation_entity/entityfields/object1_type/linkedContextProcess.js b/entity/ObjectRelation_entity/entityfields/object1_type/linkedContextProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/entity/ObjectRelation_entity/entityfields/objects1/children/objecttype_param/code.js b/entity/ObjectRelation_entity/entityfields/objects1/children/objecttype_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..b3edc8d5129d7466309b808d0975584267fffa9d
--- /dev/null
+++ b/entity/ObjectRelation_entity/entityfields/objects1/children/objecttype_param/code.js
@@ -0,0 +1,6 @@
+import("system.logging");
+import("system.vars");
+import("system.result");
+
+logging.log("type: " + vars.get("$field.OBJECT1_TYPE"))
+result.string(vars.get("$field.OBJECT1_TYPE"))
\ No newline at end of file
diff --git a/entity/ObjectRelation_entity/entityfields/objects2/children/objecttype_param/code.js b/entity/ObjectRelation_entity/entityfields/objects2/children/objecttype_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/entity/Object_entity/Object_entity.aod b/entity/Object_entity/Object_entity.aod
new file mode 100644
index 0000000000000000000000000000000000000000..291e5910541b827261245f4acbd272f2f0d63bbc
--- /dev/null
+++ b/entity/Object_entity/Object_entity.aod
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.2.0">
+  <name>Object_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <recordContainer>jdito</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+      <recordContainer>jdito</recordContainer>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityField>
+      <name>UID</name>
+    </entityField>
+    <entityField>
+      <name>TITLE</name>
+    </entityField>
+    <entityParameter>
+      <name>ObjectType_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>ObjectRowId_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityProvider>
+      <name>OneObject</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <recordContainer>jdito</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>a85ea94b-20dc-42f2-9fd6-412995ea7f03</name>
+          <entityName>ObjectRelation_entity</entityName>
+          <fieldName>Object1</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>47b7bc71-753e-41c5-8d17-296c5ae707ba</name>
+          <entityName>ObjectRelation_entity</entityName>
+          <fieldName>Object2</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <expose v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <expose v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityProvider>
+      <name>AllObjects</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <recordContainer>jdito</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>9810264a-4e53-4775-98eb-7025668c0021</name>
+          <entityName>ObjectRelation_entity</entityName>
+          <fieldName>Objects1</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>f7b2a5c1-f108-43b9-afa4-5fe6a67bed4c</name>
+          <entityName>ObjectRelation_entity</entityName>
+          <fieldName>Objects2</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <expose v="false" />
+          <mandatory v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <expose v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+  </entityFields>
+  <recordContainers>
+    <jDitoRecordContainer>
+      <name>jdito</name>
+      <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
+      <contentProcess>%aditoprj%/entity/Object_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
+      <recordFields>
+        <element>UID.value</element>
+        <element>TITLE.value</element>
+      </recordFields>
+    </jDitoRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/Object_entity/recordcontainers/jdito/contentProcess.js b/entity/Object_entity/recordcontainers/jdito/contentProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ddef820042f2f02cf8fdca93586229d3dbf58cf1
--- /dev/null
+++ b/entity/Object_entity/recordcontainers/jdito/contentProcess.js
@@ -0,0 +1,16 @@
+import("system.db");
+import("system.vars");
+import("system.logging");
+import("system.result");
+import("Context_lib");
+logging.log("huuihuihihi");
+
+if (vars.exists("$param.ObjectType_param"))
+{
+    if (vars.exists("$param.ObjectRowId_param"))
+    {
+        result.object(db.table(vars.get("$param.ObjectRowId_param"), ContextUtils.getContextDataSql(vars.get("$param.ObjectType_param"), vars.get("$param.ObjectRowId_param"))));
+    }
+    result.object(db.table(ContextUtils.getContextDataSql(vars.get("$param.ObjectType_param"))))
+}
+result.object([]);
\ No newline at end of file
diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod
index 4c96e366bc22c4a22572b6d8076e38f1870b1adf..77e750c98442a080fc5082df0434d1e0a6daf3e4 100644
--- a/entity/Offer_entity/Offer_entity.aod
+++ b/entity/Offer_entity/Offer_entity.aod
@@ -70,7 +70,7 @@
     <entityField>
       <name>STATUS</name>
       <title>Status</title>
-      <possibleItemsProcess>%aditoprj%/entity/Offer_entity/entityfields/status/possibleItemsProcess.js</possibleItemsProcess>
+      <consumer>KeywordOfferStates</consumer>
       <state>EDITABLE</state>
     </entityField>
     <entityField>
@@ -332,6 +332,21 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityConsumer>
+      <name>KeywordOfferStates</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Keyword_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Offer_entity/entityfields/keywordofferstates/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -444,6 +459,10 @@
           <name>CURRENCY.displayValue</name>
           <expression>%aditoprj%/entity/Offer_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATUS.displayValue</name>
+          <expression>%aditoprj%/entity/Offer_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Offer_entity/entityfields/image/valueProcess.js b/entity/Offer_entity/entityfields/image/valueProcess.js
index f7a107a3721f557f794cf6adf92822240f3dceb7..4705d8645a4f11582c670ed094445d4a6f160ce0 100644
--- a/entity/Offer_entity/entityfields/image/valueProcess.js
+++ b/entity/Offer_entity/entityfields/image/valueProcess.js
@@ -2,4 +2,4 @@ import("system.vars");
 import("system.result");
 import("Keyword_lib");
 
-result.string("TEXT:" + KeywordUtils.getViewValue("OFFER.STATUS", vars.getString("$field.STATUS")) );
\ No newline at end of file
+result.string("TEXT:" + KeywordUtils.getViewValue($KeywordRegistry.get.OfferStatus, vars.getString("$field.STATUS")) );
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/keywordcurrencies/children/containername_param/code.js b/entity/Offer_entity/entityfields/keywordcurrencies/children/containername_param/code.js
index 84063b8ce392d2e1b57ed338c6208d83a5f25c34..0ef9cd25651259dd176ac538fd5ef7a4cdc00935 100644
--- a/entity/Offer_entity/entityfields/keywordcurrencies/children/containername_param/code.js
+++ b/entity/Offer_entity/entityfields/keywordcurrencies/children/containername_param/code.js
@@ -1,2 +1,4 @@
 import("system.result");
-result.string("Currency");
\ No newline at end of file
+import("Keyword_lib");
+
+result.string($KeywordRegistry.get.Currency);
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/keywordofferstates/children/containername_param/code.js b/entity/Offer_entity/entityfields/keywordofferstates/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..86f885ef0bcbc6fee71e25863b358eacc6980407
--- /dev/null
+++ b/entity/Offer_entity/entityfields/keywordofferstates/children/containername_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Keyword_lib");
+
+result.string($KeywordRegistry.get.OfferStatus);
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/status/possibleItemsProcess.js b/entity/Offer_entity/entityfields/status/possibleItemsProcess.js
deleted file mode 100644
index 4b16d722adcc1ffbb8aaa1506498fa284c55a17d..0000000000000000000000000000000000000000
--- a/entity/Offer_entity/entityfields/status/possibleItemsProcess.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-import("system.vars");
-import("Offer_lib");
-
-var items = KeywordUtils.getStandardArray("OFFER.STATUS");
-
-
-if (!OfferUtils.isEditable(vars.get("$field.STATUS")))
-{
-    items = items.filter(function(pItem) 
-    {
-        return !OfferUtils.isEditable(pItem[0]);
-    });
-}
-result.object(items);
\ No newline at end of file
diff --git a/entity/Offer_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js b/entity/Offer_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js
index c677c3247fd856a058346946bb46efec4bd184bc..13bbda5570f30f932d7484aa813b1a6b6c99072a 100644
--- a/entity/Offer_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js
+++ b/entity/Offer_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js
@@ -1,5 +1,5 @@
 import("system.result");
 import("Keyword_lib");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart("Currency", "OFFER.CURRENCY");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.Currency, "OFFER.CURRENCY");
 result.string(sql);
\ No newline at end of file
diff --git a/entity/Offer_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js b/entity/Offer_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..e6d5b0c724f6f5ccf53a7c8f5152237b2f7b2ba0
--- /dev/null
+++ b/entity/Offer_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.OfferStatus, "OFFER.STATUS");
+result.string(sql);
diff --git a/entity/Offeritem_entity/Offeritem_entity.aod b/entity/Offeritem_entity/Offeritem_entity.aod
index 1de272d816e90e95d7cad1dd297cd835b41ff87c..c3be284bd5d4f8609beb7f2eb762250f2523a48f 100644
--- a/entity/Offeritem_entity/Offeritem_entity.aod
+++ b/entity/Offeritem_entity/Offeritem_entity.aod
@@ -20,7 +20,7 @@
     <entityField>
       <name>GROUPCODEID</name>
       <title>Commodity group</title>
-      <possibleItemsProcess>%aditoprj%/entity/Offeritem_entity/entityfields/groupcodeid/possibleItemsProcess.js</possibleItemsProcess>
+      <consumer>KeywordProductGroupcodes</consumer>
       <state>READONLY</state>
     </entityField>
     <entityField>
@@ -148,6 +148,21 @@
       <contentType>LONG_TEXT</contentType>
       <valueProcess>%aditoprj%/entity/Offeritem_entity/entityfields/info/valueProcess.js</valueProcess>
     </entityField>
+    <entityConsumer>
+      <name>KeywordProductGroupcodes</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Keyword_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Offeritem_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -229,6 +244,10 @@
           <name>INFO.value</name>
           <recordfield>OFFERITEM.INFO</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>GROUPCODEID.displayValue</name>
+          <expression>%aditoprj%/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/groupcodeid.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Offeritem_entity/entityfields/groupcodeid/possibleItemsProcess.js b/entity/Offeritem_entity/entityfields/groupcodeid/possibleItemsProcess.js
deleted file mode 100644
index 8828ea38229e76281d5bca8673172307d373418f..0000000000000000000000000000000000000000
--- a/entity/Offeritem_entity/entityfields/groupcodeid/possibleItemsProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-var items;
-
-items = KeywordUtils.getStandardArray("GROUPCODE");
-result.object(items);
\ No newline at end of file
diff --git a/entity/Offeritem_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js b/entity/Offeritem_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..d7218938fa93d73a75f71c79affa7b02d47668e3
--- /dev/null
+++ b/entity/Offeritem_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Keyword_lib");
+
+result.string($KeywordRegistry.get.ProductGroupcode);
\ No newline at end of file
diff --git a/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/groupcodeid.displayvalue/expression.js b/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/groupcodeid.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..55e2a9c3ac9ccfc2b74803b24d1b29cc29fd1f3b
--- /dev/null
+++ b/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/groupcodeid.displayvalue/expression.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.ProductGroupcode, "OFFERITEM.GROUPCODEID");
+result.string(sql);
diff --git a/entity/Order_entity/entityfields/keywordcurrencies/children/containername_param/code.js b/entity/Order_entity/entityfields/keywordcurrencies/children/containername_param/code.js
index 84063b8ce392d2e1b57ed338c6208d83a5f25c34..0ef9cd25651259dd176ac538fd5ef7a4cdc00935 100644
--- a/entity/Order_entity/entityfields/keywordcurrencies/children/containername_param/code.js
+++ b/entity/Order_entity/entityfields/keywordcurrencies/children/containername_param/code.js
@@ -1,2 +1,4 @@
 import("system.result");
-result.string("Currency");
\ No newline at end of file
+import("Keyword_lib");
+
+result.string($KeywordRegistry.get.Currency);
\ No newline at end of file
diff --git a/entity/Order_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js b/entity/Order_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js
index 202e23136909132e9a4c48ff298894265bd0453b..260c4da2e24cd277de2bb10d2c4fb3599be84484 100644
--- a/entity/Order_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js
+++ b/entity/Order_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js
@@ -1,5 +1,5 @@
 import("system.result");
 import("Keyword_lib");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart("Currency", "SALESORDER.CURRENCY");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.Currency, "SALESORDER.CURRENCY");
 result.string(sql);
\ No newline at end of file
diff --git a/entity/Orderitem_entity/Orderitem_entity.aod b/entity/Orderitem_entity/Orderitem_entity.aod
index a968a11607ba52d3be2283c0c75d34bb3a7a1d44..6fa012d21849197ae65d039f442ecae89a38414b 100644
--- a/entity/Orderitem_entity/Orderitem_entity.aod
+++ b/entity/Orderitem_entity/Orderitem_entity.aod
@@ -21,7 +21,7 @@
     <entityField>
       <name>GROUPCODEID</name>
       <title>Commodity group</title>
-      <possibleItemsProcess>%aditoprj%/entity/Orderitem_entity/entityfields/groupcodeid/possibleItemsProcess.js</possibleItemsProcess>
+      <consumer>KeywordProductGroupcodes</consumer>
       <state>READONLY</state>
     </entityField>
     <entityField>
@@ -152,6 +152,21 @@
       <name>INFO</name>
       <title>Note</title>
     </entityField>
+    <entityConsumer>
+      <name>KeywordProductGroupcodes</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Keyword_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Orderitem_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -233,6 +248,10 @@
           <name>VAT.value</name>
           <recordfield>SALESORDERITEM.VAT</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>GROUPCODEID.displayValue</name>
+          <expression>%aditoprj%/entity/Orderitem_entity/recordcontainers/db/recordfieldmappings/groupcodeid.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Orderitem_entity/entityfields/groupcodeid/possibleItemsProcess.js b/entity/Orderitem_entity/entityfields/groupcodeid/possibleItemsProcess.js
deleted file mode 100644
index 8828ea38229e76281d5bca8673172307d373418f..0000000000000000000000000000000000000000
--- a/entity/Orderitem_entity/entityfields/groupcodeid/possibleItemsProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-var items;
-
-items = KeywordUtils.getStandardArray("GROUPCODE");
-result.object(items);
\ No newline at end of file
diff --git a/entity/Orderitem_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js b/entity/Orderitem_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..d7218938fa93d73a75f71c79affa7b02d47668e3
--- /dev/null
+++ b/entity/Orderitem_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Keyword_lib");
+
+result.string($KeywordRegistry.get.ProductGroupcode);
\ No newline at end of file
diff --git a/entity/Orderitem_entity/recordcontainers/db/recordfieldmappings/groupcodeid.displayvalue/expression.js b/entity/Orderitem_entity/recordcontainers/db/recordfieldmappings/groupcodeid.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..c9ff4dc3eedebfc89ba5d92a7fc2bb59772bb260
--- /dev/null
+++ b/entity/Orderitem_entity/recordcontainers/db/recordfieldmappings/groupcodeid.displayvalue/expression.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.ProductGroupcode, "SALESORDERITEM.GROUPCODEID");
+result.string(sql);
diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod
index f20931628d3a2f0c51641b60534a860eb9022e26..8e37869ecd7e5d8f7c2e91c72a11122539ccd41f 100644
--- a/entity/Organisation_entity/Organisation_entity.aod
+++ b/entity/Organisation_entity/Organisation_entity.aod
@@ -51,13 +51,12 @@
       <name>STATUS</name>
       <title>Status</title>
       <consumer>KeywordRelationStates</consumer>
-      <contentType>TEXT</contentType>
       <searchable v="false" />
     </entityField>
     <entityField>
       <name>TYPE</name>
       <title>Type</title>
-      <possibleItemsProcess>%aditoprj%/entity/Organisation_entity/entityfields/type/possibleItemsProcess.js</possibleItemsProcess>
+      <consumer>KeywordOrganisationTypes</consumer>
       <searchable v="false" />
     </entityField>
     <entityConsumer>
@@ -443,6 +442,21 @@ Usually this is used for filtering COMM-entires by a specified contact or creati
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityConsumer>
+      <name>KeywordOrganisationTypes</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Keyword_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Organisation_entity/entityfields/keywordorganisationtypes/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -534,6 +548,10 @@ Usually this is used for filtering COMM-entires by a specified contact or creati
           <name>STATUS.displayValue</name>
           <expression>%aditoprj%/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>TYPE.displayValue</name>
+          <expression>%aditoprj%/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Organisation_entity/entityfields/keywordorganisationtypes/children/containername_param/code.js b/entity/Organisation_entity/entityfields/keywordorganisationtypes/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..06fbc3ebbb1a587f502d8f5e885ceb4b6e6c34ed
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/keywordorganisationtypes/children/containername_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Keyword_lib");
+
+result.string($KeywordRegistry.get.OrganisationType);
diff --git a/entity/Organisation_entity/entityfields/keywordrelationstates/children/containername_param/code.js b/entity/Organisation_entity/entityfields/keywordrelationstates/children/containername_param/code.js
index 5d02d3d16c82b9ffcd01d8830b3a5e2c55a683f9..90bd2931483769fae8430e1944c890bae64af196 100644
--- a/entity/Organisation_entity/entityfields/keywordrelationstates/children/containername_param/code.js
+++ b/entity/Organisation_entity/entityfields/keywordrelationstates/children/containername_param/code.js
@@ -1,3 +1,4 @@
 import("system.result");
+import("Keyword_lib");
 
-result.string("RelationStatus");
\ No newline at end of file
+result.string($KeywordRegistry.get.RelationStatus);
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/keywordrelationstatus_dfo/children/containername_param/code.js b/entity/Organisation_entity/entityfields/keywordrelationstatus_dfo/children/containername_param/code.js
index 4de51f91664f29eba1ac491f29e3da298ebfc95e..90bd2931483769fae8430e1944c890bae64af196 100644
--- a/entity/Organisation_entity/entityfields/keywordrelationstatus_dfo/children/containername_param/code.js
+++ b/entity/Organisation_entity/entityfields/keywordrelationstatus_dfo/children/containername_param/code.js
@@ -1,2 +1,4 @@
 import("system.result");
-result.string("RelationStatus");
\ No newline at end of file
+import("Keyword_lib");
+
+result.string($KeywordRegistry.get.RelationStatus);
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/orgattr_dfo/children/objecttype_param/code.js b/entity/Organisation_entity/entityfields/orgattr_dfo/children/objecttype_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..5996e99db232db8df50f155732110608e5abff4e
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/orgattr_dfo/children/objecttype_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Context_lib");
+
+result.string(ContextUtils.getCurrentContextId());
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/type/possibleItemsProcess.js b/entity/Organisation_entity/entityfields/type/possibleItemsProcess.js
deleted file mode 100644
index 4d7899f0d57747772a3bc2ff44bd00bd3606aea3..0000000000000000000000000000000000000000
--- a/entity/Organisation_entity/entityfields/type/possibleItemsProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-var items;
-
-items = KeywordUtils.getStandardArray("ORG.TYPE");
-result.object(items);
\ No newline at end of file
diff --git a/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js b/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
index c921dc20078327a2425ad442600b5bdb72bffe23..ef80c8f700ce9172b639558bb950256bd609bb71 100644
--- a/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
+++ b/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
@@ -1,5 +1,5 @@
 import("system.result");
 import("Keyword_lib");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart("RelationStatus", "RELATION.STATUS");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.RelationStatus, "RELATION.STATUS");
 result.string(sql);
diff --git a/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js b/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..7f6a3ceb6508913e75e059f44f80e8d1e7ce606f
--- /dev/null
+++ b/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.OrganisationType, "ORG.TYPE");
+result.string(sql);
diff --git a/entity/Product_entity/Product_entity.aod b/entity/Product_entity/Product_entity.aod
index fdba153893926ca56e757ca2586ad9b68fce6eec..7cccaceb0c671a261abac6ca25227c45befe57a5 100644
--- a/entity/Product_entity/Product_entity.aod
+++ b/entity/Product_entity/Product_entity.aod
@@ -18,8 +18,8 @@
     <entityField>
       <name>GROUPCODEID</name>
       <title>Product group</title>
+      <consumer>KeywordProductGroupcodes</consumer>
       <mandatory v="true" />
-      <possibleItemsProcess>%aditoprj%/entity/Product_entity/entityfields/groupcodeid/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
     <entityField>
       <name>MINSTOCK</name>
@@ -232,6 +232,21 @@
     <entityField>
       <name>ORG_NAME</name>
     </entityField>
+    <entityConsumer>
+      <name>KeywordProductGroupcodes</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Keyword_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Product_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -329,6 +344,10 @@
           <name>INFO.value</name>
           <recordfield>PRODUCT.INFO</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>GROUPCODEID.displayValue</name>
+          <expression>%aditoprj%/entity/Product_entity/recordcontainers/db/recordfieldmappings/groupcodeid.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Product_entity/entityfields/groupcodeid/possibleItemsProcess.js b/entity/Product_entity/entityfields/groupcodeid/possibleItemsProcess.js
deleted file mode 100644
index 8828ea38229e76281d5bca8673172307d373418f..0000000000000000000000000000000000000000
--- a/entity/Product_entity/entityfields/groupcodeid/possibleItemsProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-var items;
-
-items = KeywordUtils.getStandardArray("GROUPCODE");
-result.object(items);
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js b/entity/Product_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..d7218938fa93d73a75f71c79affa7b02d47668e3
--- /dev/null
+++ b/entity/Product_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Keyword_lib");
+
+result.string($KeywordRegistry.get.ProductGroupcode);
\ No newline at end of file
diff --git a/entity/Product_entity/recordcontainers/db/recordfieldmappings/groupcodeid.displayvalue/expression.js b/entity/Product_entity/recordcontainers/db/recordfieldmappings/groupcodeid.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..f2dc803438076d35d0d9581bee0c37b5e398fe86
--- /dev/null
+++ b/entity/Product_entity/recordcontainers/db/recordfieldmappings/groupcodeid.displayvalue/expression.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.ProductGroupcode, "PRODUCT.GROUPCODEID");
+result.string(sql);
diff --git a/entity/Productprice_entity/Productprice_entity.aod b/entity/Productprice_entity/Productprice_entity.aod
index b8669e264ba1b0d7da452803b7656ae0bcaf1c82..8c553e3c0829dbb984f3a521e1a8b37711111e98 100644
--- a/entity/Productprice_entity/Productprice_entity.aod
+++ b/entity/Productprice_entity/Productprice_entity.aod
@@ -118,6 +118,7 @@
     </entityField>
     <entityProvider>
       <name>#PROVIDER</name>
+      <recordContainer>db</recordContainer>
     </entityProvider>
     <entityProvider>
       <name>Productprices</name>
diff --git a/entity/Productprice_entity/entityfields/keywordcurrencies/children/containername_param/code.js b/entity/Productprice_entity/entityfields/keywordcurrencies/children/containername_param/code.js
index 84063b8ce392d2e1b57ed338c6208d83a5f25c34..0ef9cd25651259dd176ac538fd5ef7a4cdc00935 100644
--- a/entity/Productprice_entity/entityfields/keywordcurrencies/children/containername_param/code.js
+++ b/entity/Productprice_entity/entityfields/keywordcurrencies/children/containername_param/code.js
@@ -1,2 +1,4 @@
 import("system.result");
-result.string("Currency");
\ No newline at end of file
+import("Keyword_lib");
+
+result.string($KeywordRegistry.get.Currency);
\ No newline at end of file
diff --git a/entity/Productprice_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js b/entity/Productprice_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js
index 065362abed27f8a1065e211c2004a77e746ca657..6cefa2f3b98461559313664013fb6a85ec05cc12 100644
--- a/entity/Productprice_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js
+++ b/entity/Productprice_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js
@@ -1,5 +1,5 @@
 import("system.result");
 import("Keyword_lib");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart("Currency", "PRODUCTPRICE.CURRENCY");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.Currency, "PRODUCTPRICE.CURRENCY");
 result.string(sql);
\ No newline at end of file
diff --git a/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod b/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod
index ebc680c2fedf190f8accb54b8d902b7935ac1db6..7392e4e601226a6b556df3c57109f92b5a539e92 100644
--- a/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod
+++ b/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod
@@ -17,7 +17,7 @@
     <entityField>
       <name>GROUPCODE</name>
       <title>Product</title>
-      <possibleItemsProcess>%aditoprj%/entity/SalesprojectForecast_entity/entityfields/groupcode/possibleItemsProcess.js</possibleItemsProcess>
+      <consumer>KeywordProductGroupcodes</consumer>
     </entityField>
     <entityField>
       <name>INFO</name>
@@ -62,6 +62,21 @@
         </entityDependency>
       </dependencies>
     </entityProvider>
+    <entityConsumer>
+      <name>KeywordProductGroupcodes</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Keyword_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/SalesprojectForecast_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -111,6 +126,10 @@
           <name>VOLUME.value</name>
           <recordfield>SALESPROJECT_FORECAST.VOLUME</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>GROUPCODE.displayValue</name>
+          <expression>%aditoprj%/entity/SalesprojectForecast_entity/recordcontainers/db/recordfieldmappings/groupcode.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/SalesprojectForecast_entity/entityfields/groupcode/possibleItemsProcess.js b/entity/SalesprojectForecast_entity/entityfields/groupcode/possibleItemsProcess.js
deleted file mode 100644
index 8828ea38229e76281d5bca8673172307d373418f..0000000000000000000000000000000000000000
--- a/entity/SalesprojectForecast_entity/entityfields/groupcode/possibleItemsProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-var items;
-
-items = KeywordUtils.getStandardArray("GROUPCODE");
-result.object(items);
\ No newline at end of file
diff --git a/entity/SalesprojectForecast_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js b/entity/SalesprojectForecast_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..d7218938fa93d73a75f71c79affa7b02d47668e3
--- /dev/null
+++ b/entity/SalesprojectForecast_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Keyword_lib");
+
+result.string($KeywordRegistry.get.ProductGroupcode);
\ No newline at end of file
diff --git a/entity/SalesprojectForecast_entity/recordcontainers/db/recordfieldmappings/groupcode.displayvalue/expression.js b/entity/SalesprojectForecast_entity/recordcontainers/db/recordfieldmappings/groupcode.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..a381b5188c60a12cd0ab9536bc3671e6e482f245
--- /dev/null
+++ b/entity/SalesprojectForecast_entity/recordcontainers/db/recordfieldmappings/groupcode.displayvalue/expression.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.ProductGroupcode, "SALESPROJECT_FORECAST.GROUPCODE");
+result.string(sql);
diff --git a/entity/Task_entity/Task_entity.aod b/entity/Task_entity/Task_entity.aod
index a2069a80263e97bf6083ef2023a0a243a8b44598..0e739e2edaf55b0d7b6f39daea684fc1f6f6fb2d 100644
--- a/entity/Task_entity/Task_entity.aod
+++ b/entity/Task_entity/Task_entity.aod
@@ -30,8 +30,8 @@
     <entityField>
       <name>STATUS</name>
       <title>{$TASK_STATUS}</title>
+      <consumer>KeywordStates</consumer>
       <mandatory v="true" />
-      <possibleItemsProcess>%aditoprj%/entity/Task_entity/entityfields/status/possibleItemsProcess.js</possibleItemsProcess>
       <groupable v="true" />
       <valueProcess>%aditoprj%/entity/Task_entity/entityfields/status/valueProcess.js</valueProcess>
     </entityField>
@@ -76,7 +76,7 @@
     <entityField>
       <name>TYPE</name>
       <title>type</title>
-      <possibleItemsProcess>%aditoprj%/entity/Task_entity/entityfields/type/possibleItemsProcess.js</possibleItemsProcess>
+      <consumer>KeywordTypes</consumer>
       <groupable v="true" />
     </entityField>
     <entityField>
@@ -140,6 +140,36 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityConsumer>
+      <name>KeywordStates</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Keyword_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Task_entity/entityfields/keywordstates/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordTypes</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Keyword_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Task_entity/entityfields/keywordtypes/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -212,6 +242,14 @@
           <name>REQUESTOR_RELATION_ID.displayValue</name>
           <expression>%aditoprj%/entity/Task_entity/recordcontainers/db/recordfieldmappings/requestor_relation_id.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>TYPE.displayValue</name>
+          <expression>%aditoprj%/entity/Task_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATUS.displayValue</name>
+          <expression>%aditoprj%/entity/Task_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Task_entity/entityfields/keywordstates/children/containername_param/code.js b/entity/Task_entity/entityfields/keywordstates/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..580aeb3de0aefd7c19493d577f9c2128fbbc70d1
--- /dev/null
+++ b/entity/Task_entity/entityfields/keywordstates/children/containername_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Keyword_lib");
+
+result.string($KeywordRegistry.get.TaskStatus);
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/keywordtypes/children/containername_param/code.js b/entity/Task_entity/entityfields/keywordtypes/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..45a01452c07d95ae93a3fe02d862477270852e1e
--- /dev/null
+++ b/entity/Task_entity/entityfields/keywordtypes/children/containername_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Keyword_lib");
+
+result.string($KeywordRegistry.get.TaskType);
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/status/possibleItemsProcess.js b/entity/Task_entity/entityfields/status/possibleItemsProcess.js
deleted file mode 100644
index c954aedab3cf2702fd535445681b9e61db55a6e1..0000000000000000000000000000000000000000
--- a/entity/Task_entity/entityfields/status/possibleItemsProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-var items;
-
-items = KeywordUtils.getStandardArray("TASK.STATUS");
-result.object(items);
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/type/possibleItemsProcess.js b/entity/Task_entity/entityfields/type/possibleItemsProcess.js
deleted file mode 100644
index ff1398053b4ebab0c4eff6a66cf31f075faa3e3e..0000000000000000000000000000000000000000
--- a/entity/Task_entity/entityfields/type/possibleItemsProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-var items;
-
-items = KeywordUtils.getStandardArray("TASK.TYPE");
-result.object(items);
\ No newline at end of file
diff --git a/entity/Task_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js b/entity/Task_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..4af15e0ec64815e204b045a8ba800de3847f2342
--- /dev/null
+++ b/entity/Task_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.TaskStatus, "TASK.STATUS");
+result.string(sql);
diff --git a/entity/Task_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js b/entity/Task_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..a0b8bddfdcbd1c4f834335de9e052af44a0e4f3b
--- /dev/null
+++ b/entity/Task_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.TaskType, "TASK.TYPE");
+result.string(sql);
diff --git a/neonContext/AttributeRelation_context/AttributeRelation_context.aod b/neonContext/AttributeRelation_context/AttributeRelation_context.aod
index 4604a512c94044f9b5f1e9c4157158e63712faad..d0ac7885be56960f91295248492192837017539e 100644
--- a/neonContext/AttributeRelation_context/AttributeRelation_context.aod
+++ b/neonContext/AttributeRelation_context/AttributeRelation_context.aod
@@ -3,17 +3,12 @@
   <name>AttributeRelation_context</name>
   <title>Attributes</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
-  <filterview>AttributeRelationTree_view</filterview>
-  <editview>AttributeRelationMultiEdit_view</editview>
+  <filterview>AttributeRelationFilter_view</filterview>
   <entity>AttributeRelation_entity</entity>
   <references>
     <neonViewReference>
       <name>d21d2e1b-db79-4013-a056-6e9ce35a5757</name>
-      <view>AttributeRelationTree_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>52dd8729-c22d-4767-b491-1e8c9d157ddb</name>
-      <view>AttributeRelationMultiEdit_view</view>
+      <view>AttributeRelationFilter_view</view>
     </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/Context_context/Context_context.aod b/neonContext/Context_context/Context_context.aod
new file mode 100644
index 0000000000000000000000000000000000000000..a647a63a82bd9eeaadb7fa2e7621802c820deb63
--- /dev/null
+++ b/neonContext/Context_context/Context_context.aod
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.0.0">
+  <name>Context_context</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <lookupview>ContextLookup_view</lookupview>
+  <entity>Context_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>ddec38ae-82e6-4ac7-a50e-8a735eb9a075</name>
+      <view>ContextFilter_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>f9fed52b-de56-49a0-89cd-84d1a9e82536</name>
+      <view>ContextLookup_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>86650dd4-9569-433e-b3e5-fb9d62a7e45d</name>
+      <view>ContextLookup_vieww</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonContext/Object_context/Object_context.aod b/neonContext/Object_context/Object_context.aod
new file mode 100644
index 0000000000000000000000000000000000000000..c09553d8af6353233bf503cc64a19a918a344222
--- /dev/null
+++ b/neonContext/Object_context/Object_context.aod
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.0.0">
+  <name>Object_context</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <lookupview>ObjectLookup_view</lookupview>
+  <entity>Object_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>a9193747-07f9-41f4-8bea-97c46e20bd05</name>
+      <view>ObjectLookup_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonView/ActivityPreview_view/ActivityPreview_view.aod b/neonView/ActivityPreview_view/ActivityPreview_view.aod
index 305b2238fe3da9600e215a63384e90fa0d550fea..eaa45e929fc6184e171a216cc0ad63b6ed15cace 100644
--- a/neonView/ActivityPreview_view/ActivityPreview_view.aod
+++ b/neonView/ActivityPreview_view/ActivityPreview_view.aod
@@ -36,7 +36,7 @@
     </genericViewTemplate>
     <neonViewReference>
       <name>43167618-e4dc-429b-a264-3ea95bd647f9</name>
-      <entityField>MainDocuments</entityField>
+      <entityField>ActivityMainDocument_dfo</entityField>
       <view>DocumentList_view</view>
     </neonViewReference>
   </children>
diff --git a/neonView/AttributeRelationMultiEdit_view/AttributeRelationMultiEdit_view.aod b/neonView/AttributeRelationFilter_view/AttributeRelationFilter_view.aod
similarity index 68%
rename from neonView/AttributeRelationMultiEdit_view/AttributeRelationMultiEdit_view.aod
rename to neonView/AttributeRelationFilter_view/AttributeRelationFilter_view.aod
index e872c8b1638a2da5e853d68863a813bdf62890cd..35c89979888896cc8b7fc1470ba150dc19de61fe 100644
--- a/neonView/AttributeRelationMultiEdit_view/AttributeRelationMultiEdit_view.aod
+++ b/neonView/AttributeRelationFilter_view/AttributeRelationFilter_view.aod
@@ -1,6 +1,7 @@
 <?xml version="1.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>AttributeRelationMultiEdit_view</name>
+  <name>AttributeRelationFilter_view</name>
+  <title>Attributes</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
     <boxLayout>
@@ -8,19 +9,20 @@
     </boxLayout>
   </layout>
   <children>
-    <genericMultipleViewTemplate>
-      <name>GenericMultiple</name>
+    <tableViewTemplate>
+      <name>Table</name>
+      <autoNewRow v="true" />
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
-          <name>beb3a9bd-ca81-42ce-8d43-d0984946c81e</name>
+          <name>b37d207a-6119-454a-8fc6-073e9d54b1d3</name>
           <entityField>AB_ATTRIBUTE_ID</entityField>
         </neonTableColumn>
         <neonTableColumn>
-          <name>29e9bc62-c748-471e-85ae-6c87e8f2dee1</name>
+          <name>83a10d52-9eaf-4901-935e-2a7410831861</name>
           <entityField>ATTRIBUTERELATION_VALUE</entityField>
         </neonTableColumn>
       </columns>
-    </genericMultipleViewTemplate>
+    </tableViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/ContactSimpleList_view/ContactSimpleList_view.aod b/neonView/ContactSimpleList_view/ContactSimpleList_view.aod
index 8e3e5e2fe97473b74d8a15194c3fd87c20b1f745..7aa9896421c092ff0acf58bd82ab6881d6eeef90 100644
--- a/neonView/ContactSimpleList_view/ContactSimpleList_view.aod
+++ b/neonView/ContactSimpleList_view/ContactSimpleList_view.aod
@@ -2,6 +2,11 @@
 <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>ContactSimpleList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
   <children>
     <tableViewTemplate>
       <name>persTable_template</name>
diff --git a/neonView/ContextLookup_view/ContextLookup_view.aod b/neonView/ContextLookup_view/ContextLookup_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..71d36233d46d7a753b266393bc6f198214a42519
--- /dev/null
+++ b/neonView/ContextLookup_view/ContextLookup_view.aod
@@ -0,0 +1,22 @@
+<?xml version="1.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>ContextLookup_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>contexts</name>
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>e3178147-3010-48e2-b23c-022e1badc3f7</name>
+          <entityField>CONTEXT_NAME</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ObjectLookup_view/ObjectLookup_view.aod b/neonView/ObjectLookup_view/ObjectLookup_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..b6116c46e2266e551978c902600a6281349ec249
--- /dev/null
+++ b/neonView/ObjectLookup_view/ObjectLookup_view.aod
@@ -0,0 +1,22 @@
+<?xml version="1.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>ObjectLookup_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>objects</name>
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>f131a39f-a3fe-42a6-b5df-65e12ae9eea7</name>
+          <entityField>TITLE</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/OrganisationMain_view/OrganisationMain_view.aod b/neonView/OrganisationMain_view/OrganisationMain_view.aod
index 24928bc18e0f64f509f812298c21cf95478633f7..b9ce1e2697add58f0e5ef93632b317681e4b46f5 100644
--- a/neonView/OrganisationMain_view/OrganisationMain_view.aod
+++ b/neonView/OrganisationMain_view/OrganisationMain_view.aod
@@ -43,7 +43,7 @@
     <neonViewReference>
       <name>39c98ccb-7f77-4df0-818f-1f302f69fec4</name>
       <entityField>Attributes</entityField>
-      <view>AttributeRelationTree_view</view>
+      <view>AttributeRelationFilter_view</view>
     </neonViewReference>
     <neonViewReference>
       <name>ee7395b9-b787-4662-9021-f6e2d486bd16</name>
diff --git a/others/db_changes/data_alias/data/AditoBasic/ab_keyword_entry.xml b/others/db_changes/data_alias/data/AditoBasic/ab_keyword_entry.xml
index 0a45f8bd45611adff5a7c0495eea6817938ba822..1fa2ad1be6463fc8b2056894d452d03da08d076b 100644
--- a/others/db_changes/data_alias/data/AditoBasic/ab_keyword_entry.xml
+++ b/others/db_changes/data_alias/data/AditoBasic/ab_keyword_entry.xml
@@ -6,7 +6,7 @@
     <include relativeToChangelogFile="true" file="ab_keyword_entry/init_ContractStatus.xml"/>
     <include relativeToChangelogFile="true" file="ab_keyword_entry/init_ContractType.xml"/>
     <include relativeToChangelogFile="true" file="ab_keyword_entry/init_Currency.xml"/>
-    <include relativeToChangelogFile="true" file="ab_keyword_entry/init_OfferitemGroupcode.xml"/>
+    <include relativeToChangelogFile="true" file="ab_keyword_entry/init_ProductGroupcode.xml"/>
     <include relativeToChangelogFile="true" file="ab_keyword_entry/init_OfferStatus.xml"/>
     <include relativeToChangelogFile="true" file="ab_keyword_entry/init_OrganisationType.xml"/>
     <include relativeToChangelogFile="true" file="ab_keyword_entry/init_PersonGender.xml"/>
diff --git a/others/db_changes/data_alias/data/AditoBasic/ab_keyword_entry/init_PersonGender.xml b/others/db_changes/data_alias/data/AditoBasic/ab_keyword_entry/init_PersonGender.xml
index b42b3e2631a849fcdb285bd37ab28f4efa7a1ec4..1b96176b98d1e2edddbb19802feb491299b62f5e 100644
--- a/others/db_changes/data_alias/data/AditoBasic/ab_keyword_entry/init_PersonGender.xml
+++ b/others/db_changes/data_alias/data/AditoBasic/ab_keyword_entry/init_PersonGender.xml
@@ -3,7 +3,7 @@
   <changeSet author="j.goderbauer" id="e7f911b2-7f89-41b1-b59e-4b359ccbf728">
     <insert tableName="AB_KEYWORD_ENTRY">
       <column name="AB_KEYWORD_ENTRYID" value="a6b639c5-41f7-41fb-8856-059f5ea1a629"/>
-      <column name="KEYID" value="cb8cfc30-0826-4a7f-bd07-b981c70efe24"/>
+      <column name="KEYID" value="f"/>
       <column name="TITLE" value="Female"/>
       <column name="CONTAINER" value="PersonGender"/>
       <column name="SORTING" valueNumeric="0"/>
@@ -12,7 +12,7 @@
     </insert>
     <insert tableName="AB_KEYWORD_ENTRY">
       <column name="AB_KEYWORD_ENTRYID" value="7177a6a6-6a71-43a5-a2ba-fe2f80054fef"/>
-      <column name="KEYID" value="e682b767-2549-4414-9470-8d05f59b492b"/>
+      <column name="KEYID" value="m"/>
       <column name="TITLE" value="Male"/>
       <column name="CONTAINER" value="PersonGender"/>
       <column name="SORTING" valueNumeric="1"/>
@@ -21,7 +21,7 @@
     </insert>
     <insert tableName="AB_KEYWORD_ENTRY">
       <column name="AB_KEYWORD_ENTRYID" value="f5466bc3-77b8-45f4-817a-79b16946f680"/>
-      <column name="KEYID" value="1d48171d-d581-4491-becf-9293c953c174"/>
+      <column name="KEYID" value="o"/>
       <column name="TITLE" value="${GENDER_OTHER}"/>
       <column name="CONTAINER" value="PersonGender"/>
       <column name="SORTING" valueNumeric="2"/>
diff --git a/others/db_changes/data_alias/data/AditoBasic/ab_keyword_entry/init_OfferitemGroupcode.xml b/others/db_changes/data_alias/data/AditoBasic/ab_keyword_entry/init_ProductGroupcode.xml
similarity index 92%
rename from others/db_changes/data_alias/data/AditoBasic/ab_keyword_entry/init_OfferitemGroupcode.xml
rename to others/db_changes/data_alias/data/AditoBasic/ab_keyword_entry/init_ProductGroupcode.xml
index 248033e03be87d037bb83d4cab148bcce0f656b1..87e63f3f38597041b6b8b740aa8ea169d26e49b9 100644
--- a/others/db_changes/data_alias/data/AditoBasic/ab_keyword_entry/init_OfferitemGroupcode.xml
+++ b/others/db_changes/data_alias/data/AditoBasic/ab_keyword_entry/init_ProductGroupcode.xml
@@ -5,7 +5,7 @@
       <column name="AB_KEYWORD_ENTRYID" value="b6079a56-594f-463d-8b85-67db622cf522"/>
       <column name="KEYID" value="f0ef0c0d-c972-4db5-9ec4-99dcc3363192"/>
       <column name="TITLE" value="Commodity group 1"/>
-      <column name="CONTAINER" value="OfferitemGroupcode"/>
+      <column name="CONTAINER" value="ProductGroupcode"/>
       <column name="SORTING" valueNumeric="0"/>
       <column name="ISACTIVE" valueNumeric="1"/>
       <column name="ISESSENTIAL" valueNumeric="0"/>
@@ -14,7 +14,7 @@
       <column name="AB_KEYWORD_ENTRYID" value="7c666a94-ef9a-42e9-83c8-de3a97123bce"/>
       <column name="KEYID" value="2a87ee6c-3c20-40ef-8329-c353cbeb58a6"/>
       <column name="TITLE" value="Commodity group 2"/>
-      <column name="CONTAINER" value="OfferitemGroupcode"/>
+      <column name="CONTAINER" value="ProductGroupcode"/>
       <column name="SORTING" valueNumeric="1"/>
       <column name="ISACTIVE" valueNumeric="1"/>
       <column name="ISESSENTIAL" valueNumeric="0"/>
@@ -23,7 +23,7 @@
       <column name="AB_KEYWORD_ENTRYID" value="72ffaa0b-9982-4614-93be-31ae76f91d19"/>
       <column name="KEYID" value="dd51e43d-fed3-4402-9616-5d9dbdbbfd71"/>
       <column name="TITLE" value="Commodity group 3"/>
-      <column name="CONTAINER" value="OfferitemGroupcode"/>
+      <column name="CONTAINER" value="ProductGroupcode"/>
       <column name="SORTING" valueNumeric="2"/>
       <column name="ISACTIVE" valueNumeric="1"/>
       <column name="ISESSENTIAL" valueNumeric="0"/>
@@ -32,7 +32,7 @@
       <column name="AB_KEYWORD_ENTRYID" value="688b91d3-3c5b-4704-9220-e11b4532c05c"/>
       <column name="KEYID" value="dc511fd4-bda8-40b5-8602-4bea554576e6"/>
       <column name="TITLE" value="Discount"/>
-      <column name="CONTAINER" value="OfferitemGroupcode"/>
+      <column name="CONTAINER" value="ProductGroupcode"/>
       <column name="SORTING" valueNumeric="3"/>
       <column name="ISACTIVE" valueNumeric="1"/>
       <column name="ISESSENTIAL" valueNumeric="0"/>
@@ -41,7 +41,7 @@
       <column name="AB_KEYWORD_ENTRYID" value="5f5a0927-5827-4948-bfe7-32e83d8cf3aa"/>
       <column name="KEYID" value="d878701c-8b69-4687-b677-f564ae1a2ec1"/>
       <column name="TITLE" value="Spare parts"/>
-      <column name="CONTAINER" value="OfferitemGroupcode"/>
+      <column name="CONTAINER" value="ProductGroupcode"/>
       <column name="SORTING" valueNumeric="4"/>
       <column name="ISACTIVE" valueNumeric="1"/>
       <column name="ISESSENTIAL" valueNumeric="0"/>
@@ -50,7 +50,7 @@
       <column name="AB_KEYWORD_ENTRYID" value="611cd178-c0fc-4d2a-a9ba-af747d571755"/>
       <column name="KEYID" value="5b8b8e5f-2df8-4119-aae6-e224fb360d4e"/>
       <column name="TITLE" value="Service"/>
-      <column name="CONTAINER" value="OfferitemGroupcode"/>
+      <column name="CONTAINER" value="ProductGroupcode"/>
       <column name="SORTING" valueNumeric="5"/>
       <column name="ISACTIVE" valueNumeric="1"/>
       <column name="ISESSENTIAL" valueNumeric="0"/>
diff --git a/others/db_changes/data_alias/data/example_offer/OFFER_1000.xml b/others/db_changes/data_alias/data/example_offer/OFFER_1000.xml
index b9dd17e3148b73c37479ddf3aaf659016d0c62cf..1db01af0b7cecf71036ddb979002611efb6b00e4 100644
--- a/others/db_changes/data_alias/data/example_offer/OFFER_1000.xml
+++ b/others/db_changes/data_alias/data/example_offer/OFFER_1000.xml
@@ -8,7 +8,7 @@
             <column name="OFFERDATE" valueDate="2018-11-21T00:00:00"/>
             <column name="OFFERCODE" valueNumeric="1000"/>
             <column name="VERSNR" valueNumeric="1"/>
-            <column name="STATUS" valueNumeric="2"/>
+            <column name="STATUS" value="e5d6b5a4-7576-440f-8332-bc40147c0335"/>
             <column name="PROBABILITY" valueNumeric="5"/>
             <column name="NET" valueNumeric="210.00"/>
             <column name="VAT" valueNumeric="39.90"/>
@@ -21,7 +21,7 @@
             <column name="OFFER_ID" value="0461959c-88c5-4d79-9ac2-f41f26254dbe"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="1"/>
-            <column name="GROUPCODEID" valueNumeric="1"/>
+            <column name="GROUPCODEID" value="f0ef0c0d-c972-4db5-9ec4-99dcc3363192"/>
             <column name="PRICE" valueNumeric="210.00"/>
             <column name="ITEMSORT" valueNumeric="1"/>
             <column name="PRODUCT_ID" value="a2e76fe1-e49b-4f2b-8da5-12660738043d"/>
@@ -36,7 +36,7 @@
             <column name="OFFER_ID" value="0461959c-88c5-4d79-9ac2-f41f26254dbe"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="1"/>
-            <column name="GROUPCODEID" valueNumeric="1"/>
+            <column name="GROUPCODEID" value="f0ef0c0d-c972-4db5-9ec4-99dcc3363192"/>
             <column name="ASSIGNEDTO" value="aea44090-b57a-4620-ae65-12c9ade05c79"/>
             <column name="ITEMSORT" valueNumeric="2"/>
             <column name="PRODUCT_ID" value="feefb3a9-f02a-4536-9ebb-ab7070cc71ba"/>
@@ -50,7 +50,7 @@
             <column name="OFFER_ID" value="0461959c-88c5-4d79-9ac2-f41f26254dbe"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="3"/>
-            <column name="GROUPCODEID" valueNumeric="5"/>
+            <column name="GROUPCODEID" value="d878701c-8b69-4687-b677-f564ae1a2ec1"/>
             <column name="ASSIGNEDTO" value="306997c2-212f-4ee3-97a2-525320c67f67"/>
             <column name="ITEMSORT" valueNumeric="3"/>
             <column name="PRODUCT_ID" value="6e52e636-284d-454b-978c-8f58844c5c5b"/>
@@ -64,7 +64,7 @@
             <column name="OFFER_ID" value="0461959c-88c5-4d79-9ac2-f41f26254dbe"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="3"/>
-            <column name="GROUPCODEID" valueNumeric="4"/>
+            <column name="GROUPCODEID" value="dc511fd4-bda8-40b5-8602-4bea554576e6"/>
             <column name="ASSIGNEDTO" value="44b75a12-ae8b-4003-9347-9952843425a9"/>
             <column name="ITEMSORT" valueNumeric="4"/>
             <column name="PRODUCT_ID" value="368aa1c0-b802-4dea-844e-e61bf85a03c9"/>
@@ -78,7 +78,7 @@
             <column name="OFFER_ID" value="0461959c-88c5-4d79-9ac2-f41f26254dbe"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="3"/>
-            <column name="GROUPCODEID" valueNumeric="5"/>
+            <column name="GROUPCODEID" value="d878701c-8b69-4687-b677-f564ae1a2ec1"/>
             <column name="ASSIGNEDTO" value="306997c2-212f-4ee3-97a2-525320c67f67"/>
             <column name="ITEMSORT" valueNumeric="5"/>
             <column name="PRODUCT_ID" value="072680e3-9e5d-4228-b5a8-f4acef8f2452"/>
@@ -92,7 +92,7 @@
             <column name="OFFER_ID" value="0461959c-88c5-4d79-9ac2-f41f26254dbe"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="2"/>
-            <column name="GROUPCODEID" valueNumeric="5"/>
+            <column name="GROUPCODEID" value="d878701c-8b69-4687-b677-f564ae1a2ec1"/>
             <column name="ASSIGNEDTO" value="aea44090-b57a-4620-ae65-12c9ade05c79"/>
             <column name="ITEMSORT" valueNumeric="6"/>
             <column name="PRODUCT_ID" value="f52b1d6e-bf08-4fe1-8d83-ac0728c4b1c4"/>
@@ -106,7 +106,7 @@
             <column name="OFFER_ID" value="0461959c-88c5-4d79-9ac2-f41f26254dbe"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="3"/>
-            <column name="GROUPCODEID" valueNumeric="5"/>
+            <column name="GROUPCODEID" value="d878701c-8b69-4687-b677-f564ae1a2ec1"/>
             <column name="ASSIGNEDTO" value="aea44090-b57a-4620-ae65-12c9ade05c79"/>
             <column name="ITEMSORT" valueNumeric="7"/>
             <column name="PRODUCT_ID" value="b973e3f9-277c-4787-96a0-7cac54472420"/>
diff --git a/others/db_changes/data_alias/data/example_offer/OFFER_1001.xml b/others/db_changes/data_alias/data/example_offer/OFFER_1001.xml
index b630a245d32abc8151b6a6c04c510f997a0add5f..ecc6cc3d075e22c3f62b0f784055d8bd8e49dda4 100644
--- a/others/db_changes/data_alias/data/example_offer/OFFER_1001.xml
+++ b/others/db_changes/data_alias/data/example_offer/OFFER_1001.xml
@@ -8,7 +8,7 @@
             <column name="OFFERDATE" valueDate="2018-08-12T00:00:00"/>
             <column name="OFFERCODE" valueNumeric="1001"/>
             <column name="VERSNR" valueNumeric="1"/>
-            <column name="STATUS" valueNumeric="2"/>
+            <column name="STATUS" value="e5d6b5a4-7576-440f-8332-bc40147c0335"/>
             <column name="PROBABILITY" valueNumeric="3"/>
             <column name="NET" valueNumeric="420.00"/>
             <column name="VAT" valueNumeric="79.80"/>
@@ -21,7 +21,7 @@
             <column name="OFFER_ID" value="0461959c-88c5-4d79-9ac2-f41f21154dbe"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="2"/>
-            <column name="GROUPCODEID" valueNumeric="1"/>
+            <column name="GROUPCODEID" value="f0ef0c0d-c972-4db5-9ec4-99dcc3363192"/>
             <column name="PRICE" valueNumeric="210.00"/>
             <column name="ITEMSORT" valueNumeric="1"/>
             <column name="PRODUCT_ID" value="a2e76fe1-e49b-4f2b-8da5-12660738043d"/>
diff --git a/others/db_changes/data_alias/data/example_offer/OFFER_1002.xml b/others/db_changes/data_alias/data/example_offer/OFFER_1002.xml
index a393f41c3fc90db71106f3ece1ae85ee15aee2c0..313d5556c1cfe2e48181a9502e334e494b379e57 100644
--- a/others/db_changes/data_alias/data/example_offer/OFFER_1002.xml
+++ b/others/db_changes/data_alias/data/example_offer/OFFER_1002.xml
@@ -8,7 +8,7 @@
             <column name="OFFERDATE" valueDate="2018-06-14T00:00:00"/>
             <column name="OFFERCODE" valueNumeric="1002"/>
             <column name="VERSNR" valueNumeric="1"/>
-            <column name="STATUS" valueNumeric="2"/>
+            <column name="STATUS" value="e5d6b5a4-7576-440f-8332-bc40147c0335"/>
             <column name="PROBABILITY" valueNumeric="4"/>
             <column name="NET" valueNumeric="630.00"/>
             <column name="VAT" valueNumeric="119.70"/>
@@ -21,7 +21,7 @@
             <column name="OFFER_ID" value="5561959c-88c5-4d79-9ac2-f41f21154dbe"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="3"/>
-            <column name="GROUPCODEID" valueNumeric="1"/>
+            <column name="GROUPCODEID" value="f0ef0c0d-c972-4db5-9ec4-99dcc3363192"/>
             <column name="PRICE" valueNumeric="210.00"/>
             <column name="ITEMSORT" valueNumeric="1"/>
             <column name="PRODUCT_ID" value="a2e76fe1-e49b-4f2b-8da5-12660738043d"/>
diff --git a/others/db_changes/data_alias/data/example_offer/OFFER_1003.xml b/others/db_changes/data_alias/data/example_offer/OFFER_1003.xml
index a426f2e88bd139c5bf87f89d66f50959b2a7f025..72947481ec71f9e5b4019c46b36fd0a9ceb4cdf5 100644
--- a/others/db_changes/data_alias/data/example_offer/OFFER_1003.xml
+++ b/others/db_changes/data_alias/data/example_offer/OFFER_1003.xml
@@ -8,7 +8,7 @@
             <column name="OFFERDATE" valueDate="2018-02-23T00:00:00"/>
             <column name="OFFERCODE" valueNumeric="1003"/>
             <column name="VERSNR" valueNumeric="1"/>
-            <column name="STATUS" valueNumeric="1"/>
+            <column name="STATUS" value="5134153d-2e18-452f-ab35-7a52f1aee7d1"/>
             <column name="PROBABILITY" valueNumeric="1"/>
             <column name="NET" valueNumeric="420.00"/>
             <column name="VAT" valueNumeric="79.80"/>
@@ -21,7 +21,7 @@
             <column name="OFFER_ID" value="0461959c-11c5-4d79-9ac2-f41f21154dbe"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="2"/>
-            <column name="GROUPCODEID" valueNumeric="1"/>
+            <column name="GROUPCODEID" value="f0ef0c0d-c972-4db5-9ec4-99dcc3363192"/>
             <column name="PRICE" valueNumeric="210.00"/>
             <column name="ITEMSORT" valueNumeric="1"/>
             <column name="PRODUCT_ID" value="a2e76fe1-e49b-4f2b-8da5-12660738043d"/>
diff --git a/others/db_changes/data_alias/data/example_offer/OFFER_1004.xml b/others/db_changes/data_alias/data/example_offer/OFFER_1004.xml
index fa800dad48614f488b8a8df11f0cfc0404d9bf21..322eaf4bfc79c6e1c46d1437aaf6653600264a3f 100644
--- a/others/db_changes/data_alias/data/example_offer/OFFER_1004.xml
+++ b/others/db_changes/data_alias/data/example_offer/OFFER_1004.xml
@@ -8,7 +8,7 @@
             <column name="OFFERDATE" valueDate="2017-11-09T00:00:00"/>
             <column name="OFFERCODE" valueNumeric="1004"/>
             <column name="VERSNR" valueNumeric="1"/>
-            <column name="STATUS" valueNumeric="1"/>
+            <column name="STATUS" value="5134153d-2e18-452f-ab35-7a52f1aee7d1"/>
             <column name="PROBABILITY" valueNumeric="3"/>
             <column name="NET" valueNumeric="840.00"/>
             <column name="VAT" valueNumeric="159.60"/>
@@ -21,7 +21,7 @@
             <column name="OFFER_ID" value="ab61911c-88c5-4d79-9ac2-f41f21154dbe"/>
             <column name="UNIT" valueNumeric="4"/>
             <column name="QUANTITY" valueNumeric="2"/>
-            <column name="GROUPCODEID" valueNumeric="1"/>
+            <column name="GROUPCODEID" value="f0ef0c0d-c972-4db5-9ec4-99dcc3363192"/>
             <column name="PRICE" valueNumeric="210.00"/>
             <column name="ITEMSORT" valueNumeric="1"/>
             <column name="PRODUCT_ID" value="a2e76fe1-e49b-4f2b-8da5-12660738043d"/>
diff --git a/others/db_changes/data_alias/data/example_org/ORG_gfk.xml b/others/db_changes/data_alias/data/example_org/ORG_gfk.xml
index 73dec748b6f810675030f7b2613199e96ee6241f..36c8791e747ca552332ee44aaea0959a84424100 100644
--- a/others/db_changes/data_alias/data/example_org/ORG_gfk.xml
+++ b/others/db_changes/data_alias/data/example_org/ORG_gfk.xml
@@ -5,7 +5,7 @@
             <column name="ORGID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
             <column name="NAME" value="Gfk AG"/>
             <column name="CUSTOMERCODE" value="00000001"/>
-            <column name="TYPE" valueNumeric="0"/>
+            <column name="TYPE" value="9cac8c7f-b9d8-45ad-ba0a-7ac17341c970"/>
             <column name="PRICE_POLITICS" valueNumeric="1"/>    
             <column name="STRENGTH" valueNumeric="1"/>    
             <column name="WEAKNESS" valueNumeric="1"/>
diff --git a/others/db_changes/data_alias/data/example_org/ORG_privat.xml b/others/db_changes/data_alias/data/example_org/ORG_privat.xml
index fd6b0ecb8fabe6365b8295e33f5544622809e812..5acde0141cd04a21a92e720dd1d40a9778d05930 100644
--- a/others/db_changes/data_alias/data/example_org/ORG_privat.xml
+++ b/others/db_changes/data_alias/data/example_org/ORG_privat.xml
@@ -5,7 +5,7 @@
             <column name="ORGID" value="0"/>
             <column name="NAME" value="privat"/>
             <column name="CUSTOMERCODE" value=""/>
-            <column name="TYPE" valueNumeric="0"/>
+            <column name="TYPE" value="9cac8c7f-b9d8-45ad-ba0a-7ac17341c970"/>
 	</insert>
 	<rollback>
 		<delete tableName="ORG">
diff --git a/others/db_changes/data_alias/data/example_product/PRODUCT_42154311.xml b/others/db_changes/data_alias/data/example_product/PRODUCT_42154311.xml
index 61c0eb8736c9410c23e6a9bc6cd828a726a1cf4e..29cbb4f99a6b8d2092fe83f6716a79698c4e5d1a 100644
--- a/others/db_changes/data_alias/data/example_product/PRODUCT_42154311.xml
+++ b/others/db_changes/data_alias/data/example_product/PRODUCT_42154311.xml
@@ -4,7 +4,7 @@
         <insert tableName="PRODUCT">
             <column name="PRODUCTID" value="a2e76fe1-e49b-4f2b-8da5-12660738043d"/>
             <column name="ADVERTISING" value="N"/>
-            <column name="GROUPCODEID" valueNumeric="1"/>
+            <column name="GROUPCODEID" value="f0ef0c0d-c972-4db5-9ec4-99dcc3363192"/>
             <column name="MINSTOCK" valueNumeric="5.00"/>
             <column name="PRODUCTCODE" value="ProduktNr1"/>
             <column name="PRODUCTNAME" value="AX45"/>
@@ -14,7 +14,7 @@
         <insert tableName="PRODUCT">
             <column name="PRODUCTID" value="f52b1d6e-bf08-4fe1-8d83-ac0728c4b1c4"/>
             <column name="ADVERTISING" value="N"/>
-            <column name="GROUPCODEID" valueNumeric="5"/>
+            <column name="GROUPCODEID" value="d878701c-8b69-4687-b677-f564ae1a2ec1"/>
             <column name="MINSTOCK" valueNumeric="12.00"/>
             <column name="PRODUCTCODE" value="ProduktNr1.1"/>
             <column name="PRODUCTNAME" value="Produktname1.1"/>
@@ -24,7 +24,7 @@
         <insert tableName="PRODUCT">
             <column name="PRODUCTID" value="b973e3f9-277c-4787-96a0-7cac54472420"/>
             <column name="ADVERTISING" value="N"/>
-            <column name="GROUPCODEID" valueNumeric="5"/>
+            <column name="GROUPCODEID" value="d878701c-8b69-4687-b677-f564ae1a2ec1"/>
             <column name="MINSTOCK" valueNumeric="10.00"/>
             <column name="PRODUCTCODE" value="ProduktNr1.2"/>
             <column name="PRODUCTNAME" value="Produktname1.2"/>
@@ -34,7 +34,7 @@
         <insert tableName="PRODUCT">
             <column name="PRODUCTID" value="6e52e636-284d-454b-978c-8f58844c5c5b"/>
             <column name="ADVERTISING" value="N"/>
-            <column name="GROUPCODEID" valueNumeric="5"/>
+            <column name="GROUPCODEID" value="d878701c-8b69-4687-b677-f564ae1a2ec1"/>
             <column name="MINSTOCK" valueNumeric="15.00"/>
             <column name="PRODUCTCODE" value="ProduktNr4.1"/>
             <column name="PRODUCTNAME" value="Produktname4.1"/>
@@ -44,7 +44,7 @@
         <insert tableName="PRODUCT">
             <column name="PRODUCTID" value="072680e3-9e5d-4228-b5a8-f4acef8f2452"/>
             <column name="ADVERTISING" value="N"/>
-            <column name="GROUPCODEID" valueNumeric="5"/>
+            <column name="GROUPCODEID" value="d878701c-8b69-4687-b677-f564ae1a2ec1"/>
             <column name="MINSTOCK" valueNumeric="50.00"/>
             <column name="PRODUCTCODE" value="ProduktNr4.2"/>
             <column name="PRODUCTNAME" value="Produktname4.2a"/>
@@ -54,7 +54,7 @@
         <insert tableName="PRODUCT">
             <column name="PRODUCTID" value="368aa1c0-b802-4dea-844e-e61bf85a03c9"/>
             <column name="ADVERTISING" value="N"/>
-            <column name="GROUPCODEID" valueNumeric="4"/>
+            <column name="GROUPCODEID" value="dc511fd4-bda8-40b5-8602-4bea554576e6"/>
             <column name="MINSTOCK" valueNumeric="0.00"/>
             <column name="PRODUCTCODE" value="R01"/>
             <column name="PRODUCTNAME" value="Sonderrabatt"/>
@@ -64,7 +64,7 @@
         <insert tableName="PRODUCT">
             <column name="PRODUCTID" value="feefb3a9-f02a-4536-9ebb-ab7070cc71ba"/>
             <column name="ADVERTISING" value="N"/>
-            <column name="GROUPCODEID" valueNumeric="1"/>
+            <column name="GROUPCODEID" value="f0ef0c0d-c972-4db5-9ec4-99dcc3363192"/>
             <column name="MINSTOCK" valueNumeric="2.00"/>
             <column name="PRODUCTCODE" value="AX47-2233"/>
             <column name="PRODUCTNAME" value="AX47"/>
diff --git a/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1000.xml b/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1000.xml
index 941ce71fca3fd7849e0aecc90ebfd28f2b2c1b41..e1786e1f22ef3494fa3e23abc529d094ba8256f3 100644
--- a/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1000.xml
+++ b/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1000.xml
@@ -20,7 +20,7 @@
             <column name="SALESORDER_ID" value="2e661772-951f-47bc-a862-5aa3c5aa2731"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="1"/>
-            <column name="GROUPCODEID" valueNumeric="1"/>
+            <column name="GROUPCODEID" value="f0ef0c0d-c972-4db5-9ec4-99dcc3363192"/>
             <column name="PRICE" valueNumeric="210.00"/>
             <column name="ITEMSORT" valueNumeric="1"/>
             <column name="PRODUCT_ID" value="a2e76fe1-e49b-4f2b-8da5-12660738043d"/>
@@ -35,7 +35,7 @@
             <column name="SALESORDER_ID" value="2e661772-951f-47bc-a862-5aa3c5aa2731"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="1"/>
-            <column name="GROUPCODEID" valueNumeric="1"/>
+            <column name="GROUPCODEID" value="f0ef0c0d-c972-4db5-9ec4-99dcc3363192"/>
             <column name="ASSIGNEDTO" value="f6207cd1-5ab0-4a97-a243-448242c02f17"/>
             <column name="ITEMSORT" valueNumeric="2"/>
             <column name="PRODUCT_ID" value="feefb3a9-f02a-4536-9ebb-ab7070cc71ba"/>
@@ -49,7 +49,7 @@
             <column name="SALESORDER_ID" value="2e661772-951f-47bc-a862-5aa3c5aa2731"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="3"/>
-            <column name="GROUPCODEID" valueNumeric="5"/>
+            <column name="GROUPCODEID" value="d878701c-8b69-4687-b677-f564ae1a2ec1"/>
             <column name="ASSIGNEDTO" value="02681c7d-7494-4c0e-8b4a-170a64b5baa1"/>
             <column name="ITEMSORT" valueNumeric="3"/>
             <column name="PRODUCT_ID" value="6e52e636-284d-454b-978c-8f58844c5c5b"/>
@@ -63,7 +63,7 @@
             <column name="SALESORDER_ID" value="2e661772-951f-47bc-a862-5aa3c5aa2731"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="3"/>
-            <column name="GROUPCODEID" valueNumeric="4"/>
+            <column name="GROUPCODEID" value="dc511fd4-bda8-40b5-8602-4bea554576e6"/>
             <column name="ASSIGNEDTO" value="1e1a68ba-dc28-43e5-ad05-a2d062da2dbc"/>
             <column name="ITEMSORT" valueNumeric="4"/>
             <column name="PRODUCT_ID" value="368aa1c0-b802-4dea-844e-e61bf85a03c9"/>
@@ -77,7 +77,7 @@
             <column name="SALESORDER_ID" value="2e661772-951f-47bc-a862-5aa3c5aa2731"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="3"/>
-            <column name="GROUPCODEID" valueNumeric="5"/>
+            <column name="GROUPCODEID" value="d878701c-8b69-4687-b677-f564ae1a2ec1"/>
             <column name="ASSIGNEDTO" value="02681c7d-7494-4c0e-8b4a-170a64b5baa1"/>
             <column name="ITEMSORT" valueNumeric="5"/>
             <column name="PRODUCT_ID" value="072680e3-9e5d-4228-b5a8-f4acef8f2452"/>
@@ -91,7 +91,7 @@
             <column name="SALESORDER_ID" value="2e661772-951f-47bc-a862-5aa3c5aa2731"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="2"/>
-            <column name="GROUPCODEID" valueNumeric="5"/>
+            <column name="GROUPCODEID" value="d878701c-8b69-4687-b677-f564ae1a2ec1"/>
             <column name="ASSIGNEDTO" value="f6207cd1-5ab0-4a97-a243-448242c02f17"/>
             <column name="ITEMSORT" valueNumeric="6"/>
             <column name="PRODUCT_ID" value="f52b1d6e-bf08-4fe1-8d83-ac0728c4b1c4"/>
@@ -105,7 +105,7 @@
             <column name="SALESORDER_ID" value="2e661772-951f-47bc-a862-5aa3c5aa2731"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="3"/>
-            <column name="GROUPCODEID" valueNumeric="5"/>
+            <column name="GROUPCODEID" value="d878701c-8b69-4687-b677-f564ae1a2ec1"/>
             <column name="ASSIGNEDTO" value="f6207cd1-5ab0-4a97-a243-448242c02f17"/>
             <column name="ITEMSORT" valueNumeric="7"/>
             <column name="PRODUCT_ID" value="b973e3f9-277c-4787-96a0-7cac54472420"/>
diff --git a/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1001.xml b/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1001.xml
index a11562d308f57ecdafa9a0127d6412dbbb6a7237..4a2217e22755f486a449da785949b35fd9c27cd2 100644
--- a/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1001.xml
+++ b/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1001.xml
@@ -20,7 +20,7 @@
             <column name="SALESORDER_ID" value="41197800-027b-47f5-923a-f1004d09a969"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="2"/>
-            <column name="GROUPCODEID" valueNumeric="1"/>
+            <column name="GROUPCODEID" value="f0ef0c0d-c972-4db5-9ec4-99dcc3363192"/>
             <column name="PRICE" valueNumeric="210.00"/>
             <column name="ITEMSORT" valueNumeric="1"/>
             <column name="PRODUCT_ID" value="a2e76fe1-e49b-4f2b-8da5-12660738043d"/>
diff --git a/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1002.xml b/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1002.xml
index c15939abb4f50b6675ac4514591e4b85502dcc0c..c785f001ab271931d98bd2f0d15fc116d4b9261c 100644
--- a/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1002.xml
+++ b/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1002.xml
@@ -20,7 +20,7 @@
             <column name="SALESORDER_ID" value="373f28a5-a812-433b-8196-a6bf8bdd5656"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="3"/>
-            <column name="GROUPCODEID" valueNumeric="1"/>
+            <column name="GROUPCODEID" value="f0ef0c0d-c972-4db5-9ec4-99dcc3363192"/>
             <column name="PRICE" valueNumeric="210.00"/>
             <column name="ITEMSORT" valueNumeric="1"/>
             <column name="PRODUCT_ID" value="a2e76fe1-e49b-4f2b-8da5-12660738043d"/>
diff --git a/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1003.xml b/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1003.xml
index 5a127bc9bf7abdb8240538dcc9b8b3cdc22519b3..24cb562bc9f32cea70f496af6c502bad61bab85f 100644
--- a/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1003.xml
+++ b/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1003.xml
@@ -20,7 +20,7 @@
             <column name="SALESORDER_ID" value="5a34f4a2-13b2-46ec-8f61-939fe27ba484"/>
             <column name="UNIT" valueNumeric="1"/>
             <column name="QUANTITY" valueNumeric="2"/>
-            <column name="GROUPCODEID" valueNumeric="1"/>
+            <column name="GROUPCODEID" value="f0ef0c0d-c972-4db5-9ec4-99dcc3363192"/>
             <column name="PRICE" valueNumeric="210.00"/>
             <column name="ITEMSORT" valueNumeric="1"/>
             <column name="PRODUCT_ID" value="a2e76fe1-e49b-4f2b-8da5-12660738043d"/>
diff --git a/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1004.xml b/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1004.xml
index 6611d451b80916e15f9622945451c517af0e037b..f75a87d11c25617a1cee9805baa1d7440a34addf 100644
--- a/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1004.xml
+++ b/others/db_changes/data_alias/data/example_salesorder/SALESORDER_1004.xml
@@ -20,7 +20,7 @@
             <column name="SALESORDER_ID" value="545ffd81-cfa5-4be6-b62c-df269909dcd4"/>
             <column name="UNIT" valueNumeric="4"/>
             <column name="QUANTITY" valueNumeric="2"/>
-            <column name="GROUPCODEID" valueNumeric="1"/>
+            <column name="GROUPCODEID" value="f0ef0c0d-c972-4db5-9ec4-99dcc3363192"/>
             <column name="PRICE" valueNumeric="210.00"/>
             <column name="ITEMSORT" valueNumeric="1"/>
             <column name="PRODUCT_ID" value="a2e76fe1-e49b-4f2b-8da5-12660738043d"/>
diff --git a/others/db_changes/data_alias/data/example_salesproject/SALESPROJECT_gfk.xml b/others/db_changes/data_alias/data/example_salesproject/SALESPROJECT_gfk.xml
index e7b58dacbd1d8562cd90a88df21c16ee00e54629..3edff36d08fa54cc0ddfed4764f1f21fdab663c5 100644
--- a/others/db_changes/data_alias/data/example_salesproject/SALESPROJECT_gfk.xml
+++ b/others/db_changes/data_alias/data/example_salesproject/SALESPROJECT_gfk.xml
@@ -47,7 +47,7 @@
         <column name="RELATION_ID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
 
         <column name="TYPE" value="PLAN"/>
-        <column name="GROUPCODE" valueNumeric="1"/>
+        <column name="GROUPCODE" value="f0ef0c0d-c972-4db5-9ec4-99dcc3363192"/>
         <column name="INFO" value="grob abgeschätzt, da große Unsicherheit"/>
 
         <column name="DATE_START" valueDate="2018-06-13T09:03:43"/>
@@ -60,7 +60,7 @@
         <column name="RELATION_ID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
 
         <column name="TYPE" value="PLAN"/>
-        <column name="GROUPCODE" valueNumeric="1"/>
+        <column name="GROUPCODE" value="f0ef0c0d-c972-4db5-9ec4-99dcc3363192"/>
         <column name="INFO" value="grob abgeschätzt, da große Unsicherheit"/>
 
         <column name="DATE_START" valueDate="2016-06-13T09:03:43"/>
@@ -73,7 +73,7 @@
         <column name="RELATION_ID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
 
         <column name="TYPE" value="PLAN"/>
-        <column name="GROUPCODE" valueNumeric="1"/>
+        <column name="GROUPCODE" value="f0ef0c0d-c972-4db5-9ec4-99dcc3363192"/>
         <column name="INFO" value="grob abgeschätzt, da große Unsicherheit"/>
 
         <column name="DATE_START" valueDate="2017-06-13T09:03:43"/>
@@ -86,7 +86,7 @@
         <column name="RELATION_ID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
 
         <column name="TYPE" value="PLAN"/>
-        <column name="GROUPCODE" valueNumeric="1"/>
+        <column name="GROUPCODE" value="f0ef0c0d-c972-4db5-9ec4-99dcc3363192"/>
         <column name="INFO" value="grob abgeschätzt, da große Unsicherheit"/>
 
         <column name="DATE_START" valueDate="2017-05-13T09:03:43"/>
diff --git a/others/db_changes/data_alias/data/example_task/base.xml b/others/db_changes/data_alias/data/example_task/base.xml
index d87f6b06ef943a0ddf706cb0697c7fa3fb4efff8..e52129586bb2ea3d32c6aa60cb81507eea375095 100644
--- a/others/db_changes/data_alias/data/example_task/base.xml
+++ b/others/db_changes/data_alias/data/example_task/base.xml
@@ -10,7 +10,7 @@
 
             <column name="CODE" valueNumeric="10000"/>
             <column name="SUBJECT" value="effiziente Wertschöpfungsketten bündeln und anlaysieren"/>
-            <column name="STATUS" valueNumeric="1"/>
+            <column name="STATUS" value="b1fd456f-f5d2-459e-b467-76e2914c8169"/>
             <column name="PRIORITY" valueNumeric="2"/>
             <column name="PROTECTIONLEVEL" valueNumeric="0"/>
             <column name="START_DATE" valueDate="2019-01-20T14:00:00"/>
@@ -31,7 +31,7 @@
 
             <column name="CODE" valueNumeric="10001"/>
             <column name="SUBJECT" value="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."/>
-            <column name="STATUS" valueNumeric="2"/>
+            <column name="STATUS" value="00595a73-22e2-4c3b-a21c-06bdec262d20"/>
             <column name="PRIORITY" valueNumeric="1"/>
             <column name="PROTECTIONLEVEL" valueNumeric="1"/>
             <column name="START_DATE" valueDate="2019-01-20T11:30:00"/>
@@ -52,7 +52,7 @@
 
             <column name="CODE" valueNumeric="10002"/>
             <column name="SUBJECT" value="Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris"/>
-            <column name="STATUS" valueNumeric="1"/>
+            <column name="STATUS" value="b1fd456f-f5d2-459e-b467-76e2914c8169"/>
             <column name="PRIORITY" valueNumeric="3"/>
             <column name="PROTECTIONLEVEL" valueNumeric="0"/>
             <column name="START_DATE" valueDate="2019-01-09T08:00:00"/>
diff --git a/others/db_changes/data_alias/struct/create_offer.xml b/others/db_changes/data_alias/struct/create_offer.xml
index 3159a27e76d1cb1107cc2c76b9b8f8b333529862..bef9d63d6514a2e2a4d860bea075505550e6d9b2 100644
--- a/others/db_changes/data_alias/struct/create_offer.xml
+++ b/others/db_changes/data_alias/struct/create_offer.xml
@@ -16,7 +16,7 @@
                 <column name="LANGUAGE" type="CHAR(5)"/>
                 <column name="OFFERCODE" type="INTEGER"/>
                 <column name="VERSNR" type="INTEGER"/>
-                <column name="STATUS" type="INTEGER"/>
+                <column name="STATUS" type="CHAR(36)"/>
                 <column name="PROBABILITY" type="INTEGER"/>
                 <column name="NET" type="NUMERIC(14,2)"/>
                 <column name="VAT" type="NUMERIC(14,2)"/>
diff --git a/others/db_changes/data_alias/struct/create_offeritem.xml b/others/db_changes/data_alias/struct/create_offeritem.xml
index 8a0b1a6825cfab456dfcf72fad09e4b6718ea585..3f34c928db3c461c9a548ad4aa23d49fb4cdf1e2 100644
--- a/others/db_changes/data_alias/struct/create_offeritem.xml
+++ b/others/db_changes/data_alias/struct/create_offeritem.xml
@@ -8,7 +8,7 @@
                 <column name="OFFER_ID" type="CHAR(36)"/>
                 <column name="UNIT" type="INTEGER"/>
                 <column name="QUANTITY" type="NUMERIC(14,2)"/>
-                <column name="GROUPCODEID" type="INTEGER"/>
+                <column name="GROUPCODEID" type="CHAR(36)"/>
                 <column name="ASSIGNEDTO" type="CHAR(36)">
                     <constraints foreignKeyName="FK_OFFERITEM_ASSIGNEDTO" references="OFFERITEM(OFFERITEMID)"/>
                 </column>
diff --git a/others/db_changes/data_alias/struct/create_org.xml b/others/db_changes/data_alias/struct/create_org.xml
index 3c5b60a867ff4596a71f8ac3295611f9fc4f0758..9e1858fbea590dcad4d6cdb675f15f89d2cc7303 100644
--- a/others/db_changes/data_alias/struct/create_org.xml
+++ b/others/db_changes/data_alias/struct/create_org.xml
@@ -1,12 +1,12 @@
 <?xml version="1.1" encoding="UTF-8" standalone="no"?>
 <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
-    <changeSet author="j.goderbauer" id="1528803466364-1">
+    <changeSet author="j.goderbauer" id="026ec2d0-cbd8-4230-9e87-377d7aa13472">
         <createTable tableName="ORG">
             <column name="NAME" type="NVARCHAR(255)">
                 <constraints nullable="false"/>
             </column>
             <column name="INFO" type="NCLOB"/>
-            <column name="TYPE" type="INTEGER"/>
+            <column name="TYPE" type="CHAR(36)"/>
             <column name="CUSTOMERCODE" type="NVARCHAR(30)"/>
             <column name="ORGID" type="CHAR(36)">
                 <constraints primaryKey="true" primaryKeyName="PK_ORG_ORGID"/>
diff --git a/others/db_changes/data_alias/struct/create_pers.xml b/others/db_changes/data_alias/struct/create_pers.xml
index 88f96834ca8818a0e349da99319b191277860e02..94bc16c8da99dfaa5f4cdf20727e5affb2cacddb 100644
--- a/others/db_changes/data_alias/struct/create_pers.xml
+++ b/others/db_changes/data_alias/struct/create_pers.xml
@@ -11,7 +11,7 @@
 		<column name="LASTNAME" type="NVARCHAR(50)">
                     <constraints nullable="false"/>
                 </column>
-                <column name="GENDER" type="CHAR(1)"/>
+                <column name="GENDER" type="CHAR(36)"/>
 		<column name="SALUTATION" type="NVARCHAR(16)"/>
 		<column name="TITLE" type="NVARCHAR(50)"/>
 		<column name="TITLESUFFIX" type="NVARCHAR(50)"/>
diff --git a/others/db_changes/data_alias/struct/create_product.xml b/others/db_changes/data_alias/struct/create_product.xml
index 4efa9edcd599c06b711177ec77487abd67531416..94ebd50dd9fb481bbd23f458743e759a163f2883 100644
--- a/others/db_changes/data_alias/struct/create_product.xml
+++ b/others/db_changes/data_alias/struct/create_product.xml
@@ -6,7 +6,7 @@
 			<constraints primaryKey="true" primaryKeyName="PK_PRODUCT_PRODUCTID"/>
 		</column>    
 		<column name="ADVERTISING" type="CHAR(1)"/>          
-		<column name="GROUPCODEID" type="INTEGER"/>
+		<column name="GROUPCODEID" type="CHAR(36)"/>
 		<column name="MINSTOCK" type="INTEGER"/>
 		<column name="RELATION_ID" type="CHAR(36)"/>
 		<column name="PRODUCTCODE" type="NVARCHAR(50)">
diff --git a/others/db_changes/data_alias/struct/create_salesorderitem.xml b/others/db_changes/data_alias/struct/create_salesorderitem.xml
index c42681a4957dadd4d5b1269fe9182f22e54889bc..e44b2f9356f252af48503019fd27d46b9182c15b 100644
--- a/others/db_changes/data_alias/struct/create_salesorderitem.xml
+++ b/others/db_changes/data_alias/struct/create_salesorderitem.xml
@@ -8,7 +8,7 @@
                 <column name="SALESORDER_ID" type="CHAR(36)"/>
                 <column name="UNIT" type="INTEGER"/>
                 <column name="QUANTITY" type="NUMERIC(14,2)"/>
-                <column name="GROUPCODEID" type="INTEGER"/>
+                <column name="GROUPCODEID" type="CHAR(36)"/>
                 <column name="ASSIGNEDTO" type="CHAR(36)">
                     <constraints foreignKeyName="FK_SALESORDERITEM_ASSIGNEDTO" references="SALESORDERITEM(SALESORDERITEMID)"/>
                 </column>
diff --git a/others/db_changes/data_alias/struct/create_salesproject_forecast.xml b/others/db_changes/data_alias/struct/create_salesproject_forecast.xml
index 56bf09025fbccdebe4930b8f5db9bdd4f501ad66..ad93e9433aec3c82dc03ee4d327b9de40426d014 100644
--- a/others/db_changes/data_alias/struct/create_salesproject_forecast.xml
+++ b/others/db_changes/data_alias/struct/create_salesproject_forecast.xml
@@ -12,7 +12,7 @@
                 <constraints nullable="false"/>
             </column>
             
-            <column name="GROUPCODE" type="INTEGER"/>
+            <column name="GROUPCODE" type="CHAR(36)"/>
             <column name="INFO" type="NCLOB"/>
             <column name="DATE_START" type="TIMESTAMP"/>
             <column name="TYPE" type="NVARCHAR(10)"/>
diff --git a/others/db_changes/data_alias/struct/create_task.xml b/others/db_changes/data_alias/struct/create_task.xml
index b28b6c8c059569a96ed1387a205549058fb40da2..4d10c0757cbef27234a636dce2f4e4c730187219 100644
--- a/others/db_changes/data_alias/struct/create_task.xml
+++ b/others/db_changes/data_alias/struct/create_task.xml
@@ -10,13 +10,13 @@
                 <constraints nullable="false" unique="true"/>
             </column>
             <column name="SUBJECT" type="NVARCHAR(254)"/>
-            <column name="STATUS" type="SMALLINT"/>
+            <column name="STATUS" type="CHAR(36)"/>
             <column name="PRIORITY" type="SMALLINT"/>
             <column name="REQUESTOR_RELATION_ID" type="CHAR(36)"/>
             <column name="EDITOR_RELATION_ID" type="CHAR(36)"/>
             <column name="START_DATE" type="TIMESTAMP"/>
             <column name="MATURITY_DATE" type="TIMESTAMP"/>
-            <column name="TYPE" type="SMALLINT"/>
+            <column name="TYPE" type="CHAR(36)"/>
             <column name="DESCRIPTION" type="NCLOB"/>
             <column name="PROTECTIONLEVEL" type="SMALLINT"/>
         </createTable>
diff --git a/process/Context_lib/process.js b/process/Context_lib/process.js
index 977e94750efb3b4c0338fea69a67142a274cdaf1..1cbfa06eaea3c2d2e05153d7cc5a7702ad797e42 100644
--- a/process/Context_lib/process.js
+++ b/process/Context_lib/process.js
@@ -1,3 +1,5 @@
+import("system.logging");
+import("system.project");
 import("system.SQLTYPES");
 import("system.vars");
 import("Sql_lib");
@@ -12,26 +14,17 @@ function ContextUtils() {}
    
 /**
  * Get the id of the current context
- * TODO: We need a function to either get the current contextname or BETTER: a function to get a UUID of the current context which doesn't change
+ * TODO: use a UUID of the current context which doesn't change
  * 
  * @return {String} Id of the current context
  */
 ContextUtils.getCurrentContextId = function() 
 {
-    var entityName = vars.getString("$sys.currententityname");
-    // TODO: replace with Core-method instead of switch-case!!!
-    switch (entityName)
-    {
-        // if an Entity doesn't have a fitting context, add a case.
-        default:
-            // TODO: workaround: remove "entity" and add "context". This is a Workaround and has to be changed (see above todo)!
-            return entityName.substr(0, entityName.length-6) + "context";
-            
-    }
+    return vars.getString("$sys.currentcontextname");
 }
 
 /**
- * TODO: use System function
+ * TODO: use System function. Currently the Name is also the id.
  * Returns the Name of a context by the Id
  * 
  * @param {String} pContextId the id of a context
@@ -43,23 +36,77 @@ ContextUtils.getContextName = function(pContextId)
     return pContextId;
 }
 
+/**
+ * Get all contexts of the project.
+ * 
+ * @return {String[][]} [ ["contextid", "contextName" ], [..., ...], ...]
+ */
+ContextUtils.getContexts = function() 
+{
+    // TODO: The name is currently also the id. This may change.
+    return project.getDataModelNames(project.DATAMODEL_KIND_CONTEXT).map(function(contextName) {
+        return [contextName, ContextUtils.getContextName(contextName)];
+    });
+}
+
+/**
+ * TODO: !!!temporary function until you can get fields from another Entity!!!
+ */
+ContextUtils._getSelectMap = function()
+{
+    var maskingUtils = new SqlMaskingUtils();
+    return {
+          // contextId   nameField  Tablename, IDField
+        "Organisation_context": ["\"NAME\"", "ORG", "ORGID"],
+        "Contact_context": [maskingUtils.concat(["FIRSTNAME", "LASTNAME"]), "PERS", "PERSID"],
+        "Activity_context": ["SUBJECT", "ACTIVITY", "ACTIVITYID"],
+        "Salesproject_context": [maskingUtils.concat([maskingUtils.cast("PROJECTCODE", SQLTYPES.VARCHAR, 10), "':'", "PROJECTTITLE"]), "SALESPROJECT", "SALESPROJECTID"],
+        // TODO: keywords sind noch nicht in der DB somit gibt es nichts ähnliches zu getKeySQL.
+        // maskingUtils.concat([SqlMaskingUtils.cast("CONTRACTCODE", "varchar", 10), getKeySQL("CONTRACTTYPE", "CONTRACTTYPE" )])
+        "Contract_context": [maskingUtils.cast("CONTRACTCODE", SQLTYPES.VARCHAR, 10), "CONTRACT", "CONTRACTID"],
+        "Appointment_context": ["SUMMARY", "ASYS_CALENDARBACKEND", "UID"]
+    }
+}
+
 /**
  * TODO: !!!temporary function until you can get fields from another Entity!!!
  */
 ContextUtils.getNameSubselectSql = function(pContextIdDbField, pRowIdDbField)
 {
     var select = "(case " + pContextIdDbField + " ";
-    var maskingUtils = new SqlMaskingUtils();
     
-    select += "when 'Organisation_context' then (select \"NAME\" from ORG where ORG.ORGID = " + pRowIdDbField + ") ";
-    select += "when 'Contact_context' then (select " + maskingUtils.concat(["FIRSTNAME", "LASTNAME"]) + " from PERS where PERS.PERSID = " + pRowIdDbField + ") ";
-    select += "when 'Activity_context' then (select SUBJECT from ACTIVITY where ACTIVITY.ACTIVITYID = " + pRowIdDbField + ") ";
-    select += "when 'Salesproject_context' then (select " + maskingUtils.concat([maskingUtils.cast("PROJECTCODE", SQLTYPES.VARCHAR, 10), "':'", "PROJECTTITLE"]) + " from SALESPROJECT where SALESPROJECT.SALESPROJECTID = " + pRowIdDbField + ") ";
-    // TODO: keywords sind noch nicht in der DB somit gibt es nichts ähnliches zu getKeySQL.
-    //select += "when 'Contract_context' then (select " + maskingUtils.concat([SqlMaskingUtils.cast("CONTRACTCODE", "varchar", 10), getKeySQL("CONTRACTTYPE", "CONTRACTTYPE" )]) + " from CONTRACT where CONTRACT.CONTRACTID = " + pRowIdDbField + ") ";
-    select += "when 'Contract_context' then (select " + maskingUtils.cast("CONTRACTCODE", SQLTYPES.VARCHAR, 10) + " from CONTRACT where CONTRACT.CONTRACTID = " + pRowIdDbField + ") ";
+    var selectMap = ContextUtils._getSelectMap()
+    for (let contextId in selectMap) 
+    {
+        select += "when '" + contextId + "' then (select " + selectMap[contextId][0] + " from " + selectMap[contextId][1] + (pRowIdDbField ? " where " + selectMap[contextId][2] + " = " + pRowIdDbField : " ") + ") ";
+    }
+    
     select += "else 'Not defined in ContextUtils.getNameSql()!'";
     select += "end)";
     
     return select;
+}
+
+/**
+ * TODO: !!!temporary function until you can get fields from another Entity!!!
+ */
+ContextUtils.getNameSql = function(pContextId, pRowId)
+{
+    var selectMap = ContextUtils._getSelectMap()
+    return SqlCondition.begin().andPrepare(selectMap[pContextId][1] + "." + selectMap[pContextId][2], pRowId).buildSql("select " + selectMap[contextId][0] + " from " + selectMap[contextId][1], "1=2");
+}
+
+/**
+ * TODO: Evtl ein anderer Weg ohne hard gecodedeten Selects.
+ */
+ContextUtils.getContextDataSql = function(pContextId, pRowId)
+{
+    var selectMap = ContextUtils._getSelectMap()
+    var cond = SqlCondition.begin();
+    if (pRowId)
+    {
+        cond.andPrepare(selectMap[pContextId][1] + "." + selectMap[pContextId][2], pRowId)
+    }
+    
+    return cond.buildSql("select " + selectMap[pContextId][2] + ", " + selectMap[pContextId][0] + " from " + selectMap[pContextId][1], "1=1");
 }
\ No newline at end of file
diff --git a/process/Keyword_lib/process.js b/process/Keyword_lib/process.js
index 0ecd409a5e232302f5d940c27b9631f963d5547b..b8492b50719f38413451bf0cf4299c2572745969 100644
--- a/process/Keyword_lib/process.js
+++ b/process/Keyword_lib/process.js
@@ -4,6 +4,39 @@ import("system.db");
 import("system.translate");
 import("system.neon");
 import("Sql_lib");
+
+/**
+ * provides static functionality for a registry of keywords
+ * The main reason for this is a convenient usage within jdito-code (autocomplete)
+ * never use these registered keywords directly in an library - only within function definition that are called later
+ * the reason behind this is that the registry is initalized at the position of the Keyword_lib-import;
+ * That means, if a value of the registry is used before the import of the Keyword_lib the registry is not set
+ * 
+ * This is a very special case of an object and should not be used as a refernece for own implementations since the requirements will be different
+ * 
+ * @class
+ */
+function $KeywordRegistry(){}
+
+//static property
+$KeywordRegistry.get = {
+    ContractPayment: "ContractPayment",
+    ContractStatus: "ContractStatus",
+    ContractType: "ContractType",
+    ActivityDirection: "ActivityDirection",
+    RelationStatus: "RelationStatus",
+    Currency: "Currency",
+    ProductGroupcode: "ProductGroupcode",
+    OfferStatus: "OfferStatus",
+    OrganisationType: "OrganisationType",
+    PersonGender: "PersonGender",
+    TaskStatus: "TaskStatus",
+    TaskType: "TaskType",
+    
+    "null": null
+};
+Object.freeze($KeywordRegistry.get);
+
 /**
  * provides methods for interactions with keywords
  * 
@@ -128,13 +161,6 @@ KeywordUtils.getResolvedTitleSqlPart = function(pContainerName, pDbFieldName, pL
         }
 
         switch (keywordType){
-            case "RELATION.STATUS":
-                valueContainer = _createKeywordEntriesContainer([
-                     _createKeywordEntry("0", translate.text("Inactive", locale))
-                    ,_createKeywordEntry("1", translate.text("Active", locale))
-                    ,_createKeywordEntry("2", translate.text("In review", locale))
-                ]);
-                break;
             case "COUNTRY":
                 valueContainer = _createKeywordEntriesContainer([
                      _createKeywordEntry("DE", translate.text("Germany", locale))
@@ -154,13 +180,6 @@ KeywordUtils.getResolvedTitleSqlPart = function(pContainerName, pDbFieldName, pL
                     ,_createKeywordEntry("no-NO", translate.text("Norwegian", locale))
                 ]);
                 break;
-            case "ACTIVITY.DIRECTION":
-                valueContainer = _createKeywordEntriesContainer([
-                     _createKeywordEntry("i", translate.text("Incoming", locale))
-                    ,_createKeywordEntry("o", translate.text("Outgoing", locale))
-                    ,_createKeywordEntry("p", translate.text("Internal", locale))
-                ]);
-                break;
             case "ACTIVITY.CATEGORY":
                 valueContainer = _createKeywordEntriesContainer([
                      _createKeywordEntry("0", translate.text("Visit", locale), null, {defaultAvatarRepresentation: "VAADIN:TRAIN"})
@@ -185,44 +204,6 @@ KeywordUtils.getResolvedTitleSqlPart = function(pContainerName, pDbFieldName, pL
                     ,_createKeywordEntry("4", translate.text("Post office box", locale), null, {org: true, pers: true})
                 ]);
                 break;
-            case "ORG.TYPE":
-                valueContainer = _createKeywordEntriesContainer([
-                     _createKeywordEntry("0", translate.text("Customer", locale))
-                    ,_createKeywordEntry("1", translate.text("Prospect", locale))
-                    ,_createKeywordEntry("2", translate.text("Supplier", locale))
-                    ,_createKeywordEntry("3", translate.text("${ORGTYPE_OTHER}", locale))
-                ]);
-                break;
-            case "PERS.GENDER":
-                valueContainer = _createKeywordEntriesContainer([
-                     _createKeywordEntry("f", translate.text("Female", locale))
-                    ,_createKeywordEntry("m", translate.text("Male", locale))
-                    ,_createKeywordEntry("o", translate.text("${GENDER_OTHER}", locale))
-                ]);
-                break;
-            case "CONTRACT.CONTRACTTYPE":
-                valueContainer = _createKeywordEntriesContainer([
-                     _createKeywordEntry("0", translate.text("Framework contract", locale))
-                    ,_createKeywordEntry("1", translate.text("Service contract", locale))
-                    ,_createKeywordEntry("2", translate.text("Maintenance contract", locale))
-                ]);
-                break;
-            case "CONTRACT.CONTRACTSTATUS":
-                valueContainer = _createKeywordEntriesContainer([
-                     _createKeywordEntry("0", translate.text("Valid, unlimited", locale))
-                    ,_createKeywordEntry("1", translate.text("Valid, limited", locale))
-                    ,_createKeywordEntry("2", translate.text("Not signed yet", locale))
-                    ,_createKeywordEntry("3", translate.text("None, individual count", locale))
-                    ,_createKeywordEntry("4", translate.text("Resigned", locale))
-                ]);
-                break;
-            case "CONTRACT.PAYMENT":
-                valueContainer = _createKeywordEntriesContainer([
-                     _createKeywordEntry("0", translate.text("Annually", locale))
-                    ,_createKeywordEntry("1", translate.text("Semiannually", locale))
-                    ,_createKeywordEntry("2", translate.text("Quarterly", locale))
-                ]);
-                break;
             case "GROUPCODE":
                 valueContainer = _createKeywordEntriesContainer([
                      _createKeywordEntry("1", translate.text("Commodity group 1", locale))
@@ -249,14 +230,6 @@ KeywordUtils.getResolvedTitleSqlPart = function(pContainerName, pDbFieldName, pL
                     ,_createKeywordEntry("4", translate.text("${PRICELIST_SERVICE}", locale))
                 ]);
                 break;
-            case "CURRENCY":
-                valueContainer = _createKeywordEntriesContainer([
-                     _createKeywordEntry("1", translate.text("EUR", locale))
-                    ,_createKeywordEntry("2", translate.text("USD", locale))
-                    ,_createKeywordEntry("3", translate.text("CND", locale))
-                    ,_createKeywordEntry("4", translate.text("CHF", locale))
-                ]);
-                break;
             case "STOCK.WAREHOUSE":
                 valueContainer = _createKeywordEntriesContainer([
                      _createKeywordEntry("1", translate.text("Warehouse 1", locale))
@@ -435,14 +408,6 @@ KeywordUtils.getResolvedTitleSqlPart = function(pContainerName, pDbFieldName, pL
                     ,_createKeywordEntry("5", translate.text("100 %", locale), null, {percentValue: 100})
                 ]);
                 break;
-            case "OFFER.STATUS":
-                valueContainer = _createKeywordEntriesContainer([
-                     _createKeywordEntry("1", translate.text("Checked", locale))
-                    ,_createKeywordEntry("2", translate.text("Sent", locale))
-                    ,_createKeywordEntry("3", translate.text("Won", locale))
-                    ,_createKeywordEntry("4", translate.text("Lost", locale))
-                ]);
-                break;
             case "SALESORDER.STATUS":
                 valueContainer = _createKeywordEntriesContainer([
                      _createKeywordEntry("1", translate.text("Checked", locale))
@@ -459,25 +424,6 @@ KeywordUtils.getResolvedTitleSqlPart = function(pContainerName, pDbFieldName, pL
                     ,_createKeywordEntry("3", translate.text("{$TASK_PRIORITY_HIGH}", locale), null, {defaultAvatarRepresentation: "VAADIN:EXCLAMATION"})
                     ]);
                 break;
-            case "TASK.TYPE":
-                //even this keyword may look like the same as the "ACTIVITY.CATEGORY" keyword:
-                //these are *not* categories since task-categories are reservated for future implementation
-                //the TASK.TYPE is more like an type of source for example
-                valueContainer = _createKeywordEntriesContainer([
-                     _createKeywordEntry("0", translate.text("Visit", locale))
-                    ,_createKeywordEntry("1", translate.text("E-Mail", locale))
-                    ,_createKeywordEntry("2", translate.text("Phone", locale))
-                    ,_createKeywordEntry("3", translate.text("Online-Meeting", locale))
-                ]);
-                break;
-            case "TASK.STATUS":
-                valueContainer = _createKeywordEntriesContainer([
-                     _createKeywordEntry("0", translate.text("new", locale))
-                    ,_createKeywordEntry("1", translate.text("in process", locale))
-                    ,_createKeywordEntry("2", translate.text("waiting", locale))
-                    ,_createKeywordEntry("3", translate.text("ended", locale))
-                    ]);
-                break;
             default: 
                 throw new Error(translate.withArguments("[%0]the given keyword \"%1\" has no match with the possible keywordlist", [
                     arguments.callee.name, keywordType