diff --git a/entity/Activity_entity/Activity_entity.aod b/entity/Activity_entity/Activity_entity.aod
index d3c741ac844494f461972cab8c0b16c468abdc50..ece6be667f3735f1bf350754596a6d0bd001ff7f 100644
--- a/entity/Activity_entity/Activity_entity.aod
+++ b/entity/Activity_entity/Activity_entity.aod
@@ -36,8 +36,8 @@
     <entityField>
       <name>CATEGORY</name>
       <title>Category</title>
+      <consumer>KeywordCategory</consumer>
       <mandatory v="false" />
-      <possibleItemsProcess>%aditoprj%/entity/Activity_entity/entityfields/category/possibleItemsProcess.js</possibleItemsProcess>
       <groupable v="true" />
     </entityField>
     <entityField>
@@ -333,6 +333,21 @@
       <name>PARENT_CONTEXT</name>
       <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/parent_context/valueProcess.js</valueProcess>
     </entityField>
+    <entityConsumer>
+      <name>KeywordCategory</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Activity_entity/entityfields/keywordcategory/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -392,6 +407,10 @@
           <name>PARENT_ID.value</name>
           <recordfield>ACTIVITY.PARENT_ID</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>CATEGORY.displayValue</name>
+          <expression>%aditoprj%/entity/Activity_entity/recordcontainers/db/recordfieldmappings/category.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Activity_entity/entityfields/category/possibleItemsProcess.js b/entity/Activity_entity/entityfields/category/possibleItemsProcess.js
deleted file mode 100644
index 921a43cb3947bb30cb50efd44320d7418e0200d7..0000000000000000000000000000000000000000
--- a/entity/Activity_entity/entityfields/category/possibleItemsProcess.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-var items = LegacyKeywordUtils.getStandardArray("ACTIVITY.CATEGORY");
-result.object(items);
\ No newline at end of file
diff --git a/entity/Activity_entity/entityfields/icon/valueProcess.js b/entity/Activity_entity/entityfields/icon/valueProcess.js
index 6cb990d62b05f123426dfa2e60d2b377aa4afa62..19bec4e77a8305f04a4b851908011003ffacc34e 100644
--- a/entity/Activity_entity/entityfields/icon/valueProcess.js
+++ b/entity/Activity_entity/entityfields/icon/valueProcess.js
@@ -2,9 +2,13 @@ import("system.vars");
 import("system.result");
 import("system.neon");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
 var category = vars.getString("$field.CATEGORY");
-var kwd = LegacyKeywordUtils.createKeyword("ACTIVITY.CATEGORY");
-var icon = kwd.getPropForKey(category, "defaultAvatarRepresentation", true);
-
+var icon;
+if (category)
+{
+    var keywordAttributes = KeywordUtils.getAttributeRelationsByKey(category, $KeywordRegistry.activityCategory())
+    icon = keywordAttributes.defaultAvatarRepresentation;
+}
 result.string(icon || "NEON:HISTORY");
diff --git a/entity/Activity_entity/entityfields/keywordcategory/children/containername_param/code.js b/entity/Activity_entity/entityfields/keywordcategory/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..7b43ff2f6bef70bf04cd150c46dd7d9f921cf5d0
--- /dev/null
+++ b/entity/Activity_entity/entityfields/keywordcategory/children/containername_param/code.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.activityCategory());
\ No newline at end of file
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 8cfc283099c6d657eef5f498c9a5c37bc435b73b..c135c700dd88b19e0fef3cf02e2ebd74bda48977 100644
--- a/entity/Activity_entity/entityfields/keyworddirections/children/containername_param/code.js
+++ b/entity/Activity_entity/entityfields/keyworddirections/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.ActivityDirection);
\ No newline at end of file
+result.string($KeywordRegistry.activityDirection());
\ No newline at end of file
diff --git a/entity/Activity_entity/entityfields/subject_details/valueProcess.js b/entity/Activity_entity/entityfields/subject_details/valueProcess.js
index 7cecd3b427054a5a7558dcc24adaf976c33bc034..c30d6b2520c493830ac572123194912dd8ef0d1b 100644
--- a/entity/Activity_entity/entityfields/subject_details/valueProcess.js
+++ b/entity/Activity_entity/entityfields/subject_details/valueProcess.js
@@ -1,6 +1,7 @@
 import("system.vars");
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
 var histMedium = vars.get("$field.CATEGORY");
-result.string(vars.get("$field.SUBJECT") + (histMedium ? " (" + LegacyKeywordUtils.getViewValue("ACTIVITY.CATEGORY", histMedium) + ")" : ""));
+result.string(vars.get("$field.SUBJECT") + (histMedium ? " (" + KeywordUtils.getViewValue($KeywordRegistry.activityCategory(), histMedium) + ")" : ""));
diff --git a/entity/Activity_entity/recordcontainers/db/recordfieldmappings/category.displayvalue/expression.js b/entity/Activity_entity/recordcontainers/db/recordfieldmappings/category.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..5337285ee96bbb64faa000f776d4eb1f05305df8
--- /dev/null
+++ b/entity/Activity_entity/recordcontainers/db/recordfieldmappings/category.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.activityCategory(), "ACTIVITY.CATEGORY");
+result.string(sql);
\ 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 1c43b5f520affa6cddbe8dfb95db976ffa4a0061..41920efa9a9a34b6034160177ecd4a7edcbf80fd 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,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.ActivityDirection, "ACTIVITY.DIRECTION");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.activityDirection(), "ACTIVITY.DIRECTION");
 result.string(sql);
diff --git a/entity/Address_entity/Address_entity.aod b/entity/Address_entity/Address_entity.aod
index 3da30a47df88abadd9685a05c36af3f4edc97cc8..e1dd74e5b3c25014aa8b7f711e9601f377d7f55c 100644
--- a/entity/Address_entity/Address_entity.aod
+++ b/entity/Address_entity/Address_entity.aod
@@ -26,7 +26,7 @@
       <name>ADDR_TYPE</name>
       <documentation>%aditoprj%/entity/Address_entity/entityfields/addr_type/documentation.adoc</documentation>
       <title>Addresstype</title>
-      <possibleItemsProcess>%aditoprj%/entity/Address_entity/entityfields/addr_type/possibleItemsProcess.js</possibleItemsProcess>
+      <consumer>KeywordAddressType</consumer>
     </entityField>
     <entityField>
       <name>BUILDINGNO</name>
@@ -187,6 +187,21 @@
       <documentation>%aditoprj%/entity/Address_entity/entityfields/contacttype_param/documentation.adoc</documentation>
       <description>PARAMETER</description>
     </entityParameter>
+    <entityConsumer>
+      <name>KeywordAddressType</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Address_entity/entityfields/keywordaddresstype/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -254,6 +269,10 @@
           <name>ZIP.value</name>
           <recordfield>ADDRESS.ZIP</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ADDR_TYPE.displayValue</name>
+          <expression>%aditoprj%/entity/Address_entity/recordcontainers/db/recordfieldmappings/addr_type.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Address_entity/entityfields/addr_type/possibleItemsProcess.js b/entity/Address_entity/entityfields/addr_type/possibleItemsProcess.js
deleted file mode 100644
index f65e4812fc2a1ea6e3d3c46d4cf3deeba893134e..0000000000000000000000000000000000000000
--- a/entity/Address_entity/entityfields/addr_type/possibleItemsProcess.js
+++ /dev/null
@@ -1,35 +0,0 @@
-import("system.logging");
-import("system.vars");
-import("system.result");
-import("system.neon");
-import("Keyword_lib");
-import("Contact_lib");
-
-if (vars.exists("$param.ContactType_param") && parseInt(vars.get("$param.ContactType_param"))) {
-    var type = parseInt(vars.get("$param.ContactType_param"));
-    var fields = [];
-    //logging.log(type)
-    switch (type) {
-        case 1:
-            fields = ["org"];
-            break;
-        case 2:
-            fields = ["person"];
-        case 3:
-            fields = ["person"];
-            break;
-    }
-
-    var resultKeywords = [];
-    LegacyKeywordUtils.getStandardArrayProps("ADDRESS.TYPE").forEach(function(pKeyword) {
-        for (let i = 0; i < fields.length; i++) {
-            if (pKeyword[2][fields[i]]) {
-                resultKeywords.push([pKeyword[0], pKeyword[1]]);
-                break;
-            }
-        }
-    });
-
-    result.object(resultKeywords);
-}
-
diff --git a/entity/Address_entity/entityfields/keywordaddresstype/children/containername_param/code.js b/entity/Address_entity/entityfields/keywordaddresstype/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..167d3dc35f38110620b4eb5e6004b4c4454578f2
--- /dev/null
+++ b/entity/Address_entity/entityfields/keywordaddresstype/children/containername_param/code.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.addressType());
\ No newline at end of file
diff --git a/entity/Address_entity/recordcontainers/db/recordfieldmappings/addr_type.displayvalue/expression.js b/entity/Address_entity/recordcontainers/db/recordfieldmappings/addr_type.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..34af55ea17e392d97e440c715ebb50b3b1f0f66c
--- /dev/null
+++ b/entity/Address_entity/recordcontainers/db/recordfieldmappings/addr_type.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.addressType(), "ADDRESS.ADDR_TYPE");
+result.string(sql);
diff --git a/entity/AnyContact_entity/recordcontainers/db/recordfieldmappings/standard_email_comm.value/expression.js b/entity/AnyContact_entity/recordcontainers/db/recordfieldmappings/standard_email_communication.value/expression.js
similarity index 100%
rename from entity/AnyContact_entity/recordcontainers/db/recordfieldmappings/standard_email_comm.value/expression.js
rename to entity/AnyContact_entity/recordcontainers/db/recordfieldmappings/standard_email_communication.value/expression.js
diff --git a/entity/AnyContact_entity/recordcontainers/db/recordfieldmappings/standard_phone_comm.value/expression.js b/entity/AnyContact_entity/recordcontainers/db/recordfieldmappings/standard_phone_communication.value/expression.js
similarity index 100%
rename from entity/AnyContact_entity/recordcontainers/db/recordfieldmappings/standard_phone_comm.value/expression.js
rename to entity/AnyContact_entity/recordcontainers/db/recordfieldmappings/standard_phone_communication.value/expression.js
diff --git a/entity/Attribute_entity/entityfields/attribute_type/displayValueProcess.js b/entity/Attribute_entity/entityfields/attribute_type/displayValueProcess.js
index 619f63d8dcc79bb835afdf13e9704898dcae4d84..1b16072cc5a33cdaf35fd48c69d9b74e98b526f7 100644
--- a/entity/Attribute_entity/entityfields/attribute_type/displayValueProcess.js
+++ b/entity/Attribute_entity/entityfields/attribute_type/displayValueProcess.js
@@ -4,10 +4,11 @@ import("system.result");
 import("system.vars");
 import("Attribute_lib");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
 if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$field.ATTRIBUTE_PARENT_ID") != "")
 {
     var type = AttributeHandler.begin(vars.get("$field.ATTRIBUTE_PARENT_ID")).getAttributeType();
     if (type == $AttributeTypes.COMBO)
-        result.string(KeywordUtils.getViewValue($KeywordRegistry.get.AttributeType, $AttributeTypes.COMBOVALUE));
+        result.string(KeywordUtils.getViewValue($KeywordRegistry.attributeType(), $AttributeTypes.COMBOVALUE));
 }
\ No newline at end of file
diff --git a/entity/Attribute_entity/entityfields/keywordattributetype/children/containername_param/code.js b/entity/Attribute_entity/entityfields/keywordattributetype/children/containername_param/code.js
index 437ff727d34d1243615ba8b321e0713af35ae485..dc6dfca332983312b5fc1181f8a357c182ac603f 100644
--- a/entity/Attribute_entity/entityfields/keywordattributetype/children/containername_param/code.js
+++ b/entity/Attribute_entity/entityfields/keywordattributetype/children/containername_param/code.js
@@ -1,4 +1,5 @@
-import("system.result");
-import("Keyword_lib");
-
-result.string($KeywordRegistry.get.AttributeType);
\ No newline at end of file
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.attributeType());
\ No newline at end of file
diff --git a/entity/Attribute_entity/recordcontainers/db/recordfieldmappings/attribute_type.displayvalue/expression.js b/entity/Attribute_entity/recordcontainers/db/recordfieldmappings/attribute_type.displayvalue/expression.js
index 8c745d3aa3627911fb2de2138a2381f8870a32a1..70d91a13284d4fe84c3ac11898f9818d944f46a2 100644
--- a/entity/Attribute_entity/recordcontainers/db/recordfieldmappings/attribute_type.displayvalue/expression.js
+++ b/entity/Attribute_entity/recordcontainers/db/recordfieldmappings/attribute_type.displayvalue/expression.js
@@ -1,5 +1,6 @@
-import("system.result");
-import("Keyword_lib");
-
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.AttributeType, "AB_ATTRIBUTE.ATTRIBUTE_TYPE");
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.attributeType(), "AB_ATTRIBUTE.ATTRIBUTE_TYPE");
 result.string(sql);
\ No newline at end of file
diff --git a/entity/Communication_entity/Communication_entity.aod b/entity/Communication_entity/Communication_entity.aod
index 41c869fa04a56789a95e13e5d5b413703ff4c462..30793c5263f6a7fd596fdf048fcbe0c5b172f6d7 100644
--- a/entity/Communication_entity/Communication_entity.aod
+++ b/entity/Communication_entity/Communication_entity.aod
@@ -21,8 +21,8 @@
     <entityField>
       <name>MEDIUM_ID</name>
       <title>Medium</title>
+      <consumer>KeywordMedium</consumer>
       <mandatory v="true" />
-      <possibleItemsProcess>%aditoprj%/entity/Communication_entity/entityfields/medium_id/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
     <entityField>
       <name>CONTACT_ID</name>
@@ -175,6 +175,21 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
       <triggerRecalculation v="true" />
       <description>PARAMETER</description>
     </entityParameter>
+    <entityConsumer>
+      <name>KeywordMedium</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Communication_entity/entityfields/keywordmedium/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -212,6 +227,10 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
           <name>STANDARD.value</name>
           <recordfield>COMMUNICATION.STANDARD</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>MEDIUM_ID.displayValue</name>
+          <expression>%aditoprj%/entity/Communication_entity/recordcontainers/db/recordfieldmappings/medium_id.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Communication_entity/entityfields/addr/contentTypeProcess.js b/entity/Communication_entity/entityfields/addr/contentTypeProcess.js
index a960f567b9adb79d447efe58f6e7bbbb12bd48d1..25141c53776680b9c9c714926c752fda5419deaa 100644
--- a/entity/Communication_entity/entityfields/addr/contentTypeProcess.js
+++ b/entity/Communication_entity/entityfields/addr/contentTypeProcess.js
@@ -1,17 +1,16 @@
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 import("system.vars");
 import("system.result");
 import("system.neon");
 
-var medium, contentType;
 //TODO: add constants for contentTypes #1022547
-medium = vars.get("$field.MEDIUM_ID");
-if (medium){
-    contentType = LegacyKeywordUtils.createKeyword("COMMUNICATION.MEDIUM").getPropForKey(medium, "contentType", true) || "TEXT";
+var medium = vars.get("$field.MEDIUM_ID");
+var contentType;
+if (medium)
+{
+    var keywordAttributes = KeywordUtils.getAttributeRelationsByKey(medium, $KeywordRegistry.communicationMedium());
+    contentType = keywordAttributes.contentType;
 }
-else {
-    contentType = "TEXT";
-}
-result.string(contentType);
-
 
+result.string(contentType || "TEXT");
\ No newline at end of file
diff --git a/entity/Communication_entity/entityfields/addr/onValidation.js b/entity/Communication_entity/entityfields/addr/onValidation.js
index bf2171c209dd9e13aceb6c2601f1f7269db9c3a4..54a9148c82d2064819c16312df0acd1d96e60870 100644
--- a/entity/Communication_entity/entityfields/addr/onValidation.js
+++ b/entity/Communication_entity/entityfields/addr/onValidation.js
@@ -7,13 +7,17 @@ import("Keyword_lib");
 import("Communication_lib");
 import("Util_lib");
 import("Entity_lib");
+import("KeywordRegistry_basic");
 
-var kwd = LegacyKeywordUtils.createKeyword("COMMUNICATION.MEDIUM");
 var commMedium = vars.get("$field.MEDIUM_ID");
-var commCategory = kwd.getPropForKey(commMedium, "contentType", true);//TODO: maybe accessible via  $property - then it's not needed to keep this information within the keyword
+
+//TODO: maybe accessible via  $property - then it's not needed to load that info twice
+var keywordAttributes = KeywordUtils.getAttributeRelationsByKey(commMedium, $KeywordRegistry.communicationMedium());
+var commCategory = keywordAttributes.contentType || "TEXT";
 
 var fn = CommValidationUtil.makeValidationFn(commCategory);
-if (fn != null){
+if (fn != null)
+{
     var commAddr = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.ADDR"));
     var additional = CommValidationUtil.getExtensionsBlueprint();
     additional.countryCode = vars.get("$param.ContactsMainCountry_param");//TODO: try to use users language first and then the companies
diff --git a/entity/Communication_entity/entityfields/keywordmedium/children/containername_param/code.js b/entity/Communication_entity/entityfields/keywordmedium/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..8f3681332b390618660138d7ac4fac9c61abe5fb
--- /dev/null
+++ b/entity/Communication_entity/entityfields/keywordmedium/children/containername_param/code.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.communicationMedium());
\ No newline at end of file
diff --git a/entity/Communication_entity/entityfields/medium_id/possibleItemsProcess.js b/entity/Communication_entity/entityfields/medium_id/possibleItemsProcess.js
deleted file mode 100644
index c92cbb2549430a0337918745657dc796bb21c2ff..0000000000000000000000000000000000000000
--- a/entity/Communication_entity/entityfields/medium_id/possibleItemsProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.text");
-import("system.vars");
-import("system.result");
-import("Keyword_lib");
-
-var items = LegacyKeywordUtils.getStandardArray("COMMUNICATION.MEDIUM");
-result.object(items);
diff --git a/entity/Communication_entity/entityfields/medium_id/valueMappingProcess.js b/entity/Communication_entity/entityfields/medium_id/valueMappingProcess.js
deleted file mode 100644
index a567223ae010bfe6382ee6e14fa7449fc4e1d670..0000000000000000000000000000000000000000
--- a/entity/Communication_entity/entityfields/medium_id/valueMappingProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-var kwdUtils, items;
-
-items = LegacyKeywordUtils.getStandardArray("COMMUNICATION.MEDIUM");
-result.object(items);
\ No newline at end of file
diff --git a/entity/Communication_entity/recordcontainers/db/recordfieldmappings/medium_id.displayvalue/expression.js b/entity/Communication_entity/recordcontainers/db/recordfieldmappings/medium_id.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..5fb31db85d8c9574b7746ddc1fca98ddafa92b76
--- /dev/null
+++ b/entity/Communication_entity/recordcontainers/db/recordfieldmappings/medium_id.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.communicationMedium(), "COMMUNICATION.MEDIUM_ID");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/valueProcess.js b/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/valueProcess.js
index 279ddaaf279e54233680dea48d9937503f0d530b..5739345823bc0b832b6e7814fc7b97291a9f599c 100644
--- a/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/valueProcess.js
+++ b/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/valueProcess.js
@@ -2,8 +2,9 @@ import("system.translate");
 import("system.vars");
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var contractType = KeywordUtils.getViewValue($KeywordRegistry.get.ContractType, vars.get("$field.CONTRACTTYPE"));
+var contractType = KeywordUtils.getViewValue($KeywordRegistry.contractType(), vars.get("$field.CONTRACTTYPE"));
 var contractCode = vars.get("$field.CONTRACTCODE");
 
 result.string((contractType || translate.text("Contract")) + " " + contractCode);
\ 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 54ff29d035dab6cf6017627910ae6a472dec27e0..f17d453fcdc0a4cdd0830eac47ba7d7db0fea3db 100644
--- a/entity/Contract_entity/entityfields/contractpayments/children/containername_param/code.js
+++ b/entity/Contract_entity/entityfields/contractpayments/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.ContractPayment);
\ No newline at end of file
+result.string($KeywordRegistry.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 54ff29d035dab6cf6017627910ae6a472dec27e0..f17d453fcdc0a4cdd0830eac47ba7d7db0fea3db 100644
--- a/entity/Contract_entity/entityfields/contractstates/children/containername_param/code.js
+++ b/entity/Contract_entity/entityfields/contractstates/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.ContractPayment);
\ No newline at end of file
+result.string($KeywordRegistry.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 0fe52ea7a199de4de39209b3f5f75eb10315a1b4..8b185106748e306ba26e122862d4d33e49b447ec 100644
--- a/entity/Contract_entity/entityfields/contracttypes/children/containername_param/code.js
+++ b/entity/Contract_entity/entityfields/contracttypes/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.ContractType);
\ No newline at end of file
+result.string($KeywordRegistry.contractType());
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/image/valueProcess.js b/entity/Contract_entity/entityfields/image/valueProcess.js
index 0219288c0b8874c0bf8b9a265b8229c65b3efab3..7d2a0e8c8f6947c8c57a61074628e05f4bb1d7a3 100644
--- a/entity/Contract_entity/entityfields/image/valueProcess.js
+++ b/entity/Contract_entity/entityfields/image/valueProcess.js
@@ -1,5 +1,6 @@
 import("system.vars");
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string("TEXT:" + KeywordUtils.getViewValue($KeywordRegistry.get.ContractType, vars.getString("$field.CONTRACTTYPE")) );
\ No newline at end of file
+result.string("TEXT:" + KeywordUtils.getViewValue($KeywordRegistry.contractType(), vars.getString("$field.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 d84fac9571b6495f5e06a6c1df40c631eefb0fdb..8e21b7b2cfa48b02572985537eb52289a065ef5a 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,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.ContractStatus, "CONTRACT.CONTRACTSTATUS");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.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 5f5e46ae862cacca32fc9145db9da181553b1f8d..dbf92aa783a002bc306473100ad00428206427c3 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,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.ContractType, "CONTRACT.CONTRACTTYPE");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.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 51b49d230598c3a4ba0e6d5e467b2f807d418602..a2edaa56105648db6c90de124d63b4e2383833e0 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,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.ContractPayment, "CONTRACT.PAYMENT");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.contractPayment(), "CONTRACT.PAYMENT");
 result.string(sql);
\ No newline at end of file
diff --git a/entity/KeywordAttribute_entity/entityfields/keywordkeywordattributetypes/children/containername_param/code.js b/entity/KeywordAttribute_entity/entityfields/keywordkeywordattributetypes/children/containername_param/code.js
index aee5aa764b590de8807fb1e55b2ebbe4d3900295..e52675c31d5faf2c260c05bd11438d29755121ca 100644
--- a/entity/KeywordAttribute_entity/entityfields/keywordkeywordattributetypes/children/containername_param/code.js
+++ b/entity/KeywordAttribute_entity/entityfields/keywordkeywordattributetypes/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.KeywordAttributeType);
\ No newline at end of file
+result.string($KeywordRegistry.keywordAttributeType());
\ No newline at end of file
diff --git a/entity/KeywordAttribute_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js b/entity/KeywordAttribute_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js
index 4095a1df3b895b7e6887f19e94e719a9ec8fbdb5..a08460ea208091b387b4fe5cd47dbfa78c9504fa 100644
--- a/entity/KeywordAttribute_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js
+++ b/entity/KeywordAttribute_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js
@@ -1,5 +1,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.KeywordAttributeType, "AB_KEYWORD_ATTRIBUTE.TYPE");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.keywordAttributeType(), "AB_KEYWORD_ATTRIBUTE.TYPE");
 result.string(sql);
diff --git a/entity/KeywordEntry_entity/KeywordEntry_entity.aod b/entity/KeywordEntry_entity/KeywordEntry_entity.aod
index 5460a7848abff474a7e42230bd91080ef97f3c21..adb09f7075ebb0a12c7a89f7ee6808487ac126a7 100644
--- a/entity/KeywordEntry_entity/KeywordEntry_entity.aod
+++ b/entity/KeywordEntry_entity/KeywordEntry_entity.aod
@@ -252,6 +252,96 @@
           <fieldName>KeywordProbabilties</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>a44375e9-917c-4db8-9aa8-de0625caf78f</name>
+          <entityName>Activity_entity</entityName>
+          <fieldName>KeywordCategory</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>f442a641-4dff-4860-bf4c-cfddc054e075</name>
+          <entityName>Offer_entity</entityName>
+          <fieldName>KeywordProbability</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>fa831dac-3287-422a-8f28-504fc525876a</name>
+          <entityName>Communication_entity</entityName>
+          <fieldName>KeywordMedium</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>2ed3c1ee-0cae-4017-aaf2-49bf4307abc4</name>
+          <entityName>Address_entity</entityName>
+          <fieldName>KeywordAddressType</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>04b28ce6-a144-4c19-ac2d-4cfbc3568700</name>
+          <entityName>Organisation_entity</entityName>
+          <fieldName>KeywordPrice_Politics</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>f024df05-2faf-4447-9eed-ae31b329d542</name>
+          <entityName>SalesprojectCompetition_entity</entityName>
+          <fieldName>KeywordPrice_Politics</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>60840c28-9875-4e3e-8099-5ca208d58bbe</name>
+          <entityName>Organisation_entity</entityName>
+          <fieldName>KeywordWeakness</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>854148e2-2532-4562-b393-832819e8d462</name>
+          <entityName>Organisation_entity</entityName>
+          <fieldName>KeywordStrenght</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>613d5861-0494-45f9-a839-a705347a68da</name>
+          <entityName>SalesprojectCompetition_entity</entityName>
+          <fieldName>KeywordWeakness</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>119d79d0-9e04-4dd0-80bb-0bc32eaae775</name>
+          <entityName>SalesprojectCompetition_entity</entityName>
+          <fieldName>KeywordStrenght</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>35298a2b-6d6a-4af8-817d-1647068fe1fa</name>
+          <entityName>Salesproject_entity</entityName>
+          <fieldName>KeywordEstimation</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>6e2d164c-1ac7-4ed0-ad8f-7bfda1328493</name>
+          <entityName>Salesproject_entity</entityName>
+          <fieldName>KeywordState</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>3ca6d3c7-83d2-4761-bab4-50d2baecdbd6</name>
+          <entityName>SalesprojectCompetition_entity</entityName>
+          <fieldName>KeywordPhase</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>f672b4a5-7d68-46c8-9834-4f706d0d8720</name>
+          <entityName>Salesproject_entity</entityName>
+          <fieldName>KeywordPhase</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>1053a90d-574a-4ca2-b41d-42b513db0fd2</name>
+          <entityName>Task_entity</entityName>
+          <fieldName>KeywordPriority</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod
index cba3010100ed198c433c1a2f516d8a2bd7e7ed8c..a8b5fc48f7e01bc3226aa0ecb31a6beb84c386be 100644
--- a/entity/Offer_entity/Offer_entity.aod
+++ b/entity/Offer_entity/Offer_entity.aod
@@ -42,7 +42,7 @@
     <entityField>
       <name>PROBABILITY</name>
       <title>Probability</title>
-      <possibleItemsProcess>%aditoprj%/entity/Offer_entity/entityfields/probability/possibleItemsProcess.js</possibleItemsProcess>
+      <consumer>KeywordProbability</consumer>
     </entityField>
     <entityField>
       <name>CONTACT_ID</name>
@@ -376,6 +376,21 @@
         <fieldName>LanguagesISO3Code</fieldName>
       </dependency>
     </entityConsumer>
+    <entityConsumer>
+      <name>KeywordProbability</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Offer_entity/entityfields/keywordprobability/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
     <entityConsumer>
       <name>Activities</name>
       <title>Activities</title>
@@ -591,6 +606,10 @@
           <name>LANGUAGE.displayValue</name>
           <expression>%aditoprj%/entity/Offer_entity/recordcontainers/db/recordfieldmappings/language.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PROBABILITY.displayValue</name>
+          <expression>%aditoprj%/entity/Offer_entity/recordcontainers/db/recordfieldmappings/probability.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Offer_entity/entityfields/currency/displayValueProcess.js b/entity/Offer_entity/entityfields/currency/displayValueProcess.js
index 251895de0caa384e595ac12282df6a3955093b04..c82efe19555b1d56e35a8e103aecffa015136880 100644
--- a/entity/Offer_entity/entityfields/currency/displayValueProcess.js
+++ b/entity/Offer_entity/entityfields/currency/displayValueProcess.js
@@ -1,9 +1,10 @@
-import("system.result");
-import("system.vars");
-import("Keyword_lib");
-
-if (vars.exists("$param.OfferCurrency_param") && vars.get("$param.OfferCurrency_param")) 
-{
-    var currency = KeywordUtils.getViewValue($KeywordRegistry.get.Currency, vars.get("$param.OfferCurrency_param"));
-    result.string(currency);
+import("system.result");
+import("system.vars");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+if (vars.exists("$param.OfferCurrency_param") && vars.get("$param.OfferCurrency_param")) 
+{
+    var currency = KeywordUtils.getViewValue($KeywordRegistry.currency(), vars.get("$param.OfferCurrency_param"));
+    result.string(currency);
 }
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/image/valueProcess.js b/entity/Offer_entity/entityfields/image/valueProcess.js
index 4705d8645a4f11582c670ed094445d4a6f160ce0..17664f2a052b736ff699cf8cdee04a6b10d73fdc 100644
--- a/entity/Offer_entity/entityfields/image/valueProcess.js
+++ b/entity/Offer_entity/entityfields/image/valueProcess.js
@@ -1,5 +1,6 @@
 import("system.vars");
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string("TEXT:" + KeywordUtils.getViewValue($KeywordRegistry.get.OfferStatus, vars.getString("$field.STATUS")) );
\ No newline at end of file
+result.string("TEXT:" + KeywordUtils.getViewValue($KeywordRegistry.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 0ef9cd25651259dd176ac538fd5ef7a4cdc00935..4c7780fc3a92a387ce3420c577290d3fc22221a6 100644
--- a/entity/Offer_entity/entityfields/keywordcurrencies/children/containername_param/code.js
+++ b/entity/Offer_entity/entityfields/keywordcurrencies/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.Currency);
\ No newline at end of file
+result.string($KeywordRegistry.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
index 86f885ef0bcbc6fee71e25863b358eacc6980407..84f4d7951933717d735bd7f88f38fdff4b14f2c9 100644
--- a/entity/Offer_entity/entityfields/keywordofferstates/children/containername_param/code.js
+++ b/entity/Offer_entity/entityfields/keywordofferstates/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.OfferStatus);
\ No newline at end of file
+result.string($KeywordRegistry.offerStatus());
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/keywordprobability/children/containername_param/code.js b/entity/Offer_entity/entityfields/keywordprobability/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..b5612781a16cf17e988af9ad4c1f375ea2abd119
--- /dev/null
+++ b/entity/Offer_entity/entityfields/keywordprobability/children/containername_param/code.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.offerProbability());
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/probability/possibleItemsProcess.js b/entity/Offer_entity/entityfields/probability/possibleItemsProcess.js
deleted file mode 100644
index 55d36f4786075593f83630cf383ec487af234902..0000000000000000000000000000000000000000
--- a/entity/Offer_entity/entityfields/probability/possibleItemsProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-result.object(LegacyKeywordUtils.getStandardArray("OFFER.PROBABILITY"));
\ 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 13bbda5570f30f932d7484aa813b1a6b6c99072a..be3be7b53e29117afd1dc3b139c0cd99034a37ba 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,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.Currency, "OFFER.CURRENCY");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.currency(), "OFFER.CURRENCY");
 result.string(sql);
\ No newline at end of file
diff --git a/entity/Offer_entity/recordcontainers/db/recordfieldmappings/probability.displayvalue/expression.js b/entity/Offer_entity/recordcontainers/db/recordfieldmappings/probability.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..e9591dca90a38b8354700b428504eec663a4afeb
--- /dev/null
+++ b/entity/Offer_entity/recordcontainers/db/recordfieldmappings/probability.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.offerProbability(), "OFFER.PROBABILITY");
+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
index e6d5b0c724f6f5ccf53a7c8f5152237b2f7b2ba0..47456c05cd7947009988f06233963406266701aa 100644
--- a/entity/Offer_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
+++ b/entity/Offer_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
@@ -1,5 +1,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.OfferStatus, "OFFER.STATUS");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.offerStatus(), "OFFER.STATUS");
 result.string(sql);
diff --git a/entity/Offeritem_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js b/entity/Offeritem_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
index d7218938fa93d73a75f71c79affa7b02d47668e3..0881ceab5803df2043bdf3ca34277137e48b6a6b 100644
--- a/entity/Offeritem_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
+++ b/entity/Offeritem_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.ProductGroupcode);
\ No newline at end of file
+result.string($KeywordRegistry.productGroupcode());
\ No newline at end of file
diff --git a/entity/Offeritem_entity/entityfields/keywordquantityunits/children/containername_param/code.js b/entity/Offeritem_entity/entityfields/keywordquantityunits/children/containername_param/code.js
index c21537814b1655b685387ba0a608f116ddee21ad..116859e4d94e5bae0bce9983a85ffad7b392cba1 100644
--- a/entity/Offeritem_entity/entityfields/keywordquantityunits/children/containername_param/code.js
+++ b/entity/Offeritem_entity/entityfields/keywordquantityunits/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.QuantityUnit);
\ No newline at end of file
+result.string($KeywordRegistry.quantityUnit());
\ 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
index 55e2a9c3ac9ccfc2b74803b24d1b29cc29fd1f3b..44fe0737367589779f577d652c9bf292b3ef167c 100644
--- a/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/groupcodeid.displayvalue/expression.js
+++ b/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/groupcodeid.displayvalue/expression.js
@@ -1,5 +1,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.ProductGroupcode, "OFFERITEM.GROUPCODEID");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "OFFERITEM.GROUPCODEID");
 result.string(sql);
diff --git a/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/unit.displayvalue/expression.js b/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/unit.displayvalue/expression.js
index 6804ff9fe016ab211d9c3fb384be68817ebfa62d..1f5e5ef5089e7769f7cb4f9f7565802f0efc8eb1 100644
--- a/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/unit.displayvalue/expression.js
+++ b/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/unit.displayvalue/expression.js
@@ -1,5 +1,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.QuantityUnit, "OFFERITEM.UNIT");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.quantityUnit(), "OFFERITEM.UNIT");
 result.string(sql);
diff --git a/entity/Order_entity/entityfields/currency/displayValueProcess.js b/entity/Order_entity/entityfields/currency/displayValueProcess.js
index 2519786ebebdab4dd7112825bf47108ea7110ead..76d0d8a1e703554cba1c6987434ff62990691e36 100644
--- a/entity/Order_entity/entityfields/currency/displayValueProcess.js
+++ b/entity/Order_entity/entityfields/currency/displayValueProcess.js
@@ -1,9 +1,10 @@
-import("system.result");
-import("system.vars");
-import("Keyword_lib");
-
-if (vars.exists("$param.OrderCurrency_param")) 
-{
-    var currency = KeywordUtils.getViewValue($KeywordRegistry.get.Currency, vars.get("$param.OrderCurrency_param"));
-    result.string(currency);
+import("system.result");
+import("system.vars");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+if (vars.exists("$param.OrderCurrency_param")) 
+{
+    var currency = KeywordUtils.getViewValue($KeywordRegistry.currency(), vars.get("$param.OrderCurrency_param"));
+    result.string(currency);
 }
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/image/valueProcess.js b/entity/Order_entity/entityfields/image/valueProcess.js
index 52a10cb1a727f778872eb03f08ab872da81a39f5..c02371b12bec59c4dcc278169f2d08c6fb919cc0 100644
--- a/entity/Order_entity/entityfields/image/valueProcess.js
+++ b/entity/Order_entity/entityfields/image/valueProcess.js
@@ -1,5 +1,6 @@
 import("system.vars");
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string("TEXT:" + KeywordUtils.getViewValue($KeywordRegistry.get.SalesorderState, vars.getString("$field.STATUS")) );
+result.string("TEXT:" + KeywordUtils.getViewValue($KeywordRegistry.salesorderState(), vars.getString("$field.STATUS")) );
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 0ef9cd25651259dd176ac538fd5ef7a4cdc00935..4c7780fc3a92a387ce3420c577290d3fc22221a6 100644
--- a/entity/Order_entity/entityfields/keywordcurrencies/children/containername_param/code.js
+++ b/entity/Order_entity/entityfields/keywordcurrencies/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.Currency);
\ No newline at end of file
+result.string($KeywordRegistry.currency());
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/keywordstates/children/containername_param/code.js b/entity/Order_entity/entityfields/keywordstates/children/containername_param/code.js
index cd95c55b921c762bde79bfc52f9c5acfc3a68d96..21e1ac4efb78a649858f36b6f7cdffbd30509e2c 100644
--- a/entity/Order_entity/entityfields/keywordstates/children/containername_param/code.js
+++ b/entity/Order_entity/entityfields/keywordstates/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.SalesorderState);
\ No newline at end of file
+result.string($KeywordRegistry.salesorderState());
\ 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 260c4da2e24cd277de2bb10d2c4fb3599be84484..96a20903efbd23dc29c8dac4a97c46c2fe6d3c88 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,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.Currency, "SALESORDER.CURRENCY");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.currency(), "SALESORDER.CURRENCY");
 result.string(sql);
\ No newline at end of file
diff --git a/entity/Order_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js b/entity/Order_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
index 57efdee546910fa235465b3c90280d5bd3958591..f2b9a0bfd51ec122ed45118cc0db8673efa32eb4 100644
--- a/entity/Order_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
+++ b/entity/Order_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
@@ -1,5 +1,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.SalesorderState, "SALESORDER.STATUS");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesorderState(), "SALESORDER.STATUS");
 result.string(sql);
diff --git a/entity/Orderitem_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js b/entity/Orderitem_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
index d7218938fa93d73a75f71c79affa7b02d47668e3..0881ceab5803df2043bdf3ca34277137e48b6a6b 100644
--- a/entity/Orderitem_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
+++ b/entity/Orderitem_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.ProductGroupcode);
\ No newline at end of file
+result.string($KeywordRegistry.productGroupcode());
\ No newline at end of file
diff --git a/entity/Orderitem_entity/entityfields/keywordquantityunits/children/containername_param/code.js b/entity/Orderitem_entity/entityfields/keywordquantityunits/children/containername_param/code.js
index c21537814b1655b685387ba0a608f116ddee21ad..116859e4d94e5bae0bce9983a85ffad7b392cba1 100644
--- a/entity/Orderitem_entity/entityfields/keywordquantityunits/children/containername_param/code.js
+++ b/entity/Orderitem_entity/entityfields/keywordquantityunits/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.QuantityUnit);
\ No newline at end of file
+result.string($KeywordRegistry.quantityUnit());
\ 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
index c9ff4dc3eedebfc89ba5d92a7fc2bb59772bb260..98962fe2604eef91a87d6c0717360b8a5268165d 100644
--- a/entity/Orderitem_entity/recordcontainers/db/recordfieldmappings/groupcodeid.displayvalue/expression.js
+++ b/entity/Orderitem_entity/recordcontainers/db/recordfieldmappings/groupcodeid.displayvalue/expression.js
@@ -1,5 +1,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.ProductGroupcode, "SALESORDERITEM.GROUPCODEID");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "SALESORDERITEM.GROUPCODEID");
 result.string(sql);
diff --git a/entity/Orderitem_entity/recordcontainers/db/recordfieldmappings/unit.displayvalue/expression.js b/entity/Orderitem_entity/recordcontainers/db/recordfieldmappings/unit.displayvalue/expression.js
index 23be3ff92aaa59d8cb08b9c43c150ea4f823c8eb..8df589a2cc9f62b8d471a8c982c1eeb9886ed823 100644
--- a/entity/Orderitem_entity/recordcontainers/db/recordfieldmappings/unit.displayvalue/expression.js
+++ b/entity/Orderitem_entity/recordcontainers/db/recordfieldmappings/unit.displayvalue/expression.js
@@ -1,5 +1,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.QuantityUnit, "SALESORDERITEM.UNIT");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.quantityUnit(), "SALESORDERITEM.UNIT");
 result.string(sql);
diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod
index 35d33420b9e19fef036b6a141eca5f008c292283..3cda22e64f9c44d2e31fdbd5aafdc98bf390df63 100644
--- a/entity/Organisation_entity/Organisation_entity.aod
+++ b/entity/Organisation_entity/Organisation_entity.aod
@@ -309,19 +309,19 @@
     <entityField>
       <name>PRICE_POLITICS</name>
       <title>Price politics</title>
-      <possibleItemsProcess>%aditoprj%/entity/Organisation_entity/entityfields/price_politics/possibleItemsProcess.js</possibleItemsProcess>
+      <consumer>KeywordPrice_Politics</consumer>
       <searchable v="false" />
     </entityField>
     <entityField>
       <name>STRENGTH</name>
       <title>Strength</title>
-      <possibleItemsProcess>%aditoprj%/entity/Organisation_entity/entityfields/strength/possibleItemsProcess.js</possibleItemsProcess>
+      <consumer>KeywordStrenght</consumer>
       <searchable v="false" />
     </entityField>
     <entityField>
       <name>WEAKNESS</name>
       <title>Weakness</title>
-      <possibleItemsProcess>%aditoprj%/entity/Organisation_entity/entityfields/weakness/possibleItemsProcess.js</possibleItemsProcess>
+      <consumer>KeywordWeakness</consumer>
       <searchable v="false" />
     </entityField>
     <entityField>
@@ -481,18 +481,48 @@
       </dependency>
     </entityConsumer>
     <entityConsumer>
-      <name>Salesprojects</name>
+      <name>KeywordPrice_Politics</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Organisation_entity/entityfields/keywordprice_politics/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordWeakness</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Organisation_entity/entityfields/keywordweakness/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordStrenght</name>
       <title>Salesprojects</title>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
-        <entityName>Salesproject_entity</entityName>
-        <fieldName>Salesprojects</fieldName>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
       </dependency>
       <children>
         <entityParameter>
-          <name>ContactId_param</name>
-          <code>%aditoprj%/entity/Organisation_entity/entityfields/salesprojects/children/contactid_param/code.js</code>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Organisation_entity/entityfields/keywordstrenght/children/containername_param/code.js</code>
         </entityParameter>
       </children>
     </entityConsumer>
@@ -630,6 +660,18 @@
           <name>LANGUAGE.displayValue</name>
           <expression>%aditoprj%/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/language.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PRICE_POLITICS.displayValue</name>
+          <expression>%aditoprj%/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/price_politics.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>WEAKNESS.displayValue</name>
+          <expression>%aditoprj%/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/weakness.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STRENGTH.displayValue</name>
+          <expression>%aditoprj%/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/strength.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Organisation_entity/entityfields/keywordcontactstates/children/containername_param/code.js b/entity/Organisation_entity/entityfields/keywordcontactstates/children/containername_param/code.js
index e01caa2834a6c1d27a619ea582b50f8a52f22494..2f4d03edea3a8ff7253f793a4c8a3585f03db848 100644
--- a/entity/Organisation_entity/entityfields/keywordcontactstates/children/containername_param/code.js
+++ b/entity/Organisation_entity/entityfields/keywordcontactstates/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.ContactStatus);
\ No newline at end of file
+result.string($KeywordRegistry.contactStatus());
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/keywordorganisationtypes/children/containername_param/code.js b/entity/Organisation_entity/entityfields/keywordorganisationtypes/children/containername_param/code.js
index 06fbc3ebbb1a587f502d8f5e885ceb4b6e6c34ed..9f418ef99a76f73e9ce0e06b98eb299c5431d63c 100644
--- a/entity/Organisation_entity/entityfields/keywordorganisationtypes/children/containername_param/code.js
+++ b/entity/Organisation_entity/entityfields/keywordorganisationtypes/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.OrganisationType);
+result.string($KeywordRegistry.organisationType());
diff --git a/entity/Organisation_entity/entityfields/keywordprice_politics/children/containername_param/code.js b/entity/Organisation_entity/entityfields/keywordprice_politics/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..a76a727534152d479a8b4cbef548371ef4224dc0
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/keywordprice_politics/children/containername_param/code.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.salesprojectPricePolitics());
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/keywordstrenght/children/containername_param/code.js b/entity/Organisation_entity/entityfields/keywordstrenght/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..cae1ead3876117be7f9a2c2be4fcc91f3f3b5964
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/keywordstrenght/children/containername_param/code.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.salesprojectStrenght());
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/keywordweakness/children/containername_param/code.js b/entity/Organisation_entity/entityfields/keywordweakness/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..9973fed72b013f63d5400a1bd09de489911df93c
--- /dev/null
+++ b/entity/Organisation_entity/entityfields/keywordweakness/children/containername_param/code.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.salesprojectWeakness());
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/price_politics/possibleItemsProcess.js b/entity/Organisation_entity/entityfields/price_politics/possibleItemsProcess.js
deleted file mode 100644
index 0a795d357bbf1bcc88dbfebb8d15491e6ee68f65..0000000000000000000000000000000000000000
--- a/entity/Organisation_entity/entityfields/price_politics/possibleItemsProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-result.object(LegacyKeywordUtils.getStandardArray("SALESPROJECT.PRICE_POLITICS"));
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/standard_email_comm/onValueChange.js b/entity/Organisation_entity/entityfields/standard_email_communication/onValueChange.js
similarity index 100%
rename from entity/Organisation_entity/entityfields/standard_email_comm/onValueChange.js
rename to entity/Organisation_entity/entityfields/standard_email_communication/onValueChange.js
diff --git a/entity/Organisation_entity/entityfields/standard_phone_comm/onValueChange.js b/entity/Organisation_entity/entityfields/standard_phone_communication/onValueChange.js
similarity index 100%
rename from entity/Organisation_entity/entityfields/standard_phone_comm/onValueChange.js
rename to entity/Organisation_entity/entityfields/standard_phone_communication/onValueChange.js
diff --git a/entity/Organisation_entity/entityfields/strength/possibleItemsProcess.js b/entity/Organisation_entity/entityfields/strength/possibleItemsProcess.js
deleted file mode 100644
index 75aef701340c5393390f3978613a76c95c72ee54..0000000000000000000000000000000000000000
--- a/entity/Organisation_entity/entityfields/strength/possibleItemsProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-result.object(LegacyKeywordUtils.getStandardArray("SALESPROJECT.STRENGTH"));
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/weakness/possibleItemsProcess.js b/entity/Organisation_entity/entityfields/weakness/possibleItemsProcess.js
deleted file mode 100644
index cf8185dc33c44e8994ef345b06ca0c76cd5606dc..0000000000000000000000000000000000000000
--- a/entity/Organisation_entity/entityfields/weakness/possibleItemsProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-result.object(LegacyKeywordUtils.getStandardArray("SALESPROJECT.WEAKNESS"));
\ No newline at end of file
diff --git a/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/price_politics.displayvalue/expression.js b/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/price_politics.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..d352cbd476f1f9c7225a6d4e287f254d0478fb4b
--- /dev/null
+++ b/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/price_politics.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectPricePolitics(), "ORGANISATION.PRICE_POLITICS");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/standard_email_comm.displayvalue/expression.js b/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/standard_email_communication.displayvalue/expression.js
similarity index 100%
rename from entity/Organisation_entity/recordcontainers/db/recordfieldmappings/standard_email_comm.displayvalue/expression.js
rename to entity/Organisation_entity/recordcontainers/db/recordfieldmappings/standard_email_communication.displayvalue/expression.js
diff --git a/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/standard_phone_comm.displayvalue/expression.js b/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/standard_phone_communication.displayvalue/expression.js
similarity index 100%
rename from entity/Organisation_entity/recordcontainers/db/recordfieldmappings/standard_phone_comm.displayvalue/expression.js
rename to entity/Organisation_entity/recordcontainers/db/recordfieldmappings/standard_phone_communication.displayvalue/expression.js
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 c831d8b5a5dd945d8017287b41e1577f12407430..b63b2d57742bc29e8f35acd8bae539ec0a560c9c 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,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.ContactStatus, "CONTACT.STATUS");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.contactStatus(), "CONTACT.STATUS");
 result.string(sql);
diff --git a/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/strength.displayvalue/expression.js b/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/strength.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..0071a532b7942b287c869f4eaef13c430b057297
--- /dev/null
+++ b/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/strength.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectStrenght(), "ORGANISATION.STRENGTH");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js b/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js
index 619878d59fb73109a10f794c87ab9932d039091d..2265271d80a155d2600e0f2fc2e423ed391d985c 100644
--- a/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js
+++ b/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js
@@ -1,5 +1,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.OrganisationType, "ORGANISATION.TYPE");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.organisationType(), "ORGANISATION.TYPE");
 result.string(sql);
diff --git a/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/weakness.displayvalue/expression.js b/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/weakness.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..1f3ec844e7b00069d9f8bb49e3f1842402b71bdd
--- /dev/null
+++ b/entity/Organisation_entity/recordcontainers/db/recordfieldmappings/weakness.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectWeakness(), "ORGANISATION.WEAKNESS");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/keywordgenders/children/containername_param/code.js b/entity/Person_entity/entityfields/keywordgenders/children/containername_param/code.js
index 2ebed5250dcf6d888af8a86154f7bf70893866f3..2a130b4196c03f8f085c36d26f4428d2ac706e54 100644
--- a/entity/Person_entity/entityfields/keywordgenders/children/containername_param/code.js
+++ b/entity/Person_entity/entityfields/keywordgenders/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.PersonGender);
+result.string($KeywordRegistry.personGender());
diff --git a/entity/Person_entity/entityfields/standard_email_comm/onValueChange.js b/entity/Person_entity/entityfields/standard_email_communication/onValueChange.js
similarity index 100%
rename from entity/Person_entity/entityfields/standard_email_comm/onValueChange.js
rename to entity/Person_entity/entityfields/standard_email_communication/onValueChange.js
diff --git a/entity/Person_entity/entityfields/standard_phone_comm/onValueChange.js b/entity/Person_entity/entityfields/standard_phone_communication/onValueChange.js
similarity index 100%
rename from entity/Person_entity/entityfields/standard_phone_comm/onValueChange.js
rename to entity/Person_entity/entityfields/standard_phone_communication/onValueChange.js
diff --git a/entity/Person_entity/recordcontainers/db/recordfieldmappings/gender.displayvalue/expression.js b/entity/Person_entity/recordcontainers/db/recordfieldmappings/gender.displayvalue/expression.js
index e6d8ad46e0f687fbab7d9c4dd23d39e1b3520112..2ca5eb7d19351645ff25822e2ab91a43713853bd 100644
--- a/entity/Person_entity/recordcontainers/db/recordfieldmappings/gender.displayvalue/expression.js
+++ b/entity/Person_entity/recordcontainers/db/recordfieldmappings/gender.displayvalue/expression.js
@@ -1,5 +1,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.PersonGender, "PERSON.GENDER");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.personGender(), "PERSON.GENDER");
 result.string(sql);
diff --git a/entity/Person_entity/recordcontainers/db/recordfieldmappings/standard_email_comm.displayvalue/expression.js b/entity/Person_entity/recordcontainers/db/recordfieldmappings/standard_email_communication.displayvalue/expression.js
similarity index 100%
rename from entity/Person_entity/recordcontainers/db/recordfieldmappings/standard_email_comm.displayvalue/expression.js
rename to entity/Person_entity/recordcontainers/db/recordfieldmappings/standard_email_communication.displayvalue/expression.js
diff --git a/entity/Person_entity/recordcontainers/db/recordfieldmappings/standard_phone_comm.displayvalue/expression.js b/entity/Person_entity/recordcontainers/db/recordfieldmappings/standard_phone_communication.displayvalue/expression.js
similarity index 100%
rename from entity/Person_entity/recordcontainers/db/recordfieldmappings/standard_phone_comm.displayvalue/expression.js
rename to entity/Person_entity/recordcontainers/db/recordfieldmappings/standard_phone_communication.displayvalue/expression.js
diff --git a/entity/Prod2prod_entity/entityfields/source_id/possibleItemsProcess.js b/entity/Prod2prod_entity/entityfields/source_id/possibleItemsProcess.js
index 72863229e5c11a62175f7a3cfb2f9b5d809329b7..dbfb722d579ddde54ef73f90ebddc2c4269c6b25 100644
--- a/entity/Prod2prod_entity/entityfields/source_id/possibleItemsProcess.js
+++ b/entity/Prod2prod_entity/entityfields/source_id/possibleItemsProcess.js
@@ -4,6 +4,7 @@ import("system.db");
 import("system.neon");
 import("Keyword_lib");
 import("Product_lib");
+import("KeywordRegistry_basic");
 
 var condition = "";
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
@@ -23,7 +24,7 @@ var prods = db.table("select PRODUCTID, GROUPCODEID, PRODUCTNAME, PRODUCTCODE fr
 var res = [];
 for(var i = 0; i < prods.length; i++)
 {
-    res.push([prods[i][0], KeywordUtils.getViewValue($KeywordRegistry.get.ProductGroupcode, prods[i][1]) + " / " + prods[i][2] + " / " + prods[i][3]]);
+    res.push([prods[i][0], KeywordUtils.getViewValue($KeywordRegistry.productGroupcode(), prods[i][1]) + " / " + prods[i][2] + " / " + prods[i][3]]);
 }
 
 result.object(res);
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js b/entity/Product_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
index d7218938fa93d73a75f71c79affa7b02d47668e3..0881ceab5803df2043bdf3ca34277137e48b6a6b 100644
--- a/entity/Product_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
+++ b/entity/Product_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.ProductGroupcode);
\ No newline at end of file
+result.string($KeywordRegistry.productGroupcode());
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/keywordquantityunits/children/containername_param/code.js b/entity/Product_entity/entityfields/keywordquantityunits/children/containername_param/code.js
index c21537814b1655b685387ba0a608f116ddee21ad..116859e4d94e5bae0bce9983a85ffad7b392cba1 100644
--- a/entity/Product_entity/entityfields/keywordquantityunits/children/containername_param/code.js
+++ b/entity/Product_entity/entityfields/keywordquantityunits/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.QuantityUnit);
\ No newline at end of file
+result.string($KeywordRegistry.quantityUnit());
\ 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
index f2dc803438076d35d0d9581bee0c37b5e398fe86..80b33bbf4ed76dec940817aee09916a9b15606fa 100644
--- a/entity/Product_entity/recordcontainers/db/recordfieldmappings/groupcodeid.displayvalue/expression.js
+++ b/entity/Product_entity/recordcontainers/db/recordfieldmappings/groupcodeid.displayvalue/expression.js
@@ -1,5 +1,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.ProductGroupcode, "PRODUCT.GROUPCODEID");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "PRODUCT.GROUPCODEID");
 result.string(sql);
diff --git a/entity/Product_entity/recordcontainers/db/recordfieldmappings/unit.displayvalue/expression.js b/entity/Product_entity/recordcontainers/db/recordfieldmappings/unit.displayvalue/expression.js
index 9a7de9042791562aedb9b712ca1d33064fcaa735..fbb5feb156534fdc53f23a8bc38714b1f9313133 100644
--- a/entity/Product_entity/recordcontainers/db/recordfieldmappings/unit.displayvalue/expression.js
+++ b/entity/Product_entity/recordcontainers/db/recordfieldmappings/unit.displayvalue/expression.js
@@ -1,5 +1,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.QuantityUnit, "PRODUCT.UNIT");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.quantityUnit(), "PRODUCT.UNIT");
 result.string(sql);
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 0ef9cd25651259dd176ac538fd5ef7a4cdc00935..4c7780fc3a92a387ce3420c577290d3fc22221a6 100644
--- a/entity/Productprice_entity/entityfields/keywordcurrencies/children/containername_param/code.js
+++ b/entity/Productprice_entity/entityfields/keywordcurrencies/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.Currency);
\ No newline at end of file
+result.string($KeywordRegistry.currency());
\ No newline at end of file
diff --git a/entity/Productprice_entity/entityfields/keywordpricelists/children/containername_param/code.js b/entity/Productprice_entity/entityfields/keywordpricelists/children/containername_param/code.js
index df8bbcf76e52f919af02a749a9d69f4021de2d5c..bdea9310b4cabba5b587c62ecfe4c466c3dc4948 100644
--- a/entity/Productprice_entity/entityfields/keywordpricelists/children/containername_param/code.js
+++ b/entity/Productprice_entity/entityfields/keywordpricelists/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.ProductPricelist);
+result.string($KeywordRegistry.productPricelist());
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 6cefa2f3b98461559313664013fb6a85ec05cc12..49249021849c167d7ff0fb0b3cea9389f042150c 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,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.Currency, "PRODUCTPRICE.CURRENCY");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.currency(), "PRODUCTPRICE.CURRENCY");
 result.string(sql);
\ No newline at end of file
diff --git a/entity/Productprice_entity/recordcontainers/db/recordfieldmappings/pricelist.displayvalue/expression.js b/entity/Productprice_entity/recordcontainers/db/recordfieldmappings/pricelist.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..e83ab1dfc880532cf6bcd1dcbaa3e8a0e49affa3
--- /dev/null
+++ b/entity/Productprice_entity/recordcontainers/db/recordfieldmappings/pricelist.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productPricelist(), "PRODUCTPRICE.PRICELIST");
+result.string(sql);
diff --git a/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod b/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod
index 21629dc90bdbc50be9ea7dcb469904a602c81615..5499baa022634247984a2941246147ae77183d41 100644
--- a/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod
+++ b/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod
@@ -102,17 +102,17 @@
     <entityField>
       <name>ORG_PRICE_POLITICS</name>
       <title>Price Politics</title>
-      <possibleItemsProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/org_price_politics/possibleItemsProcess.js</possibleItemsProcess>
+      <consumer>KeywordPrice_Politics</consumer>
     </entityField>
     <entityField>
       <name>ORG_STRENGTH</name>
       <title>Strength</title>
-      <possibleItemsProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/org_strength/possibleItemsProcess.js</possibleItemsProcess>
+      <consumer>KeywordStrenght</consumer>
     </entityField>
     <entityField>
       <name>ORG_WEAKNESS</name>
       <title>Weakness</title>
-      <possibleItemsProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/org_weakness/possibleItemsProcess.js</possibleItemsProcess>
+      <consumer>KeywordWeakness</consumer>
     </entityField>
     <entityConsumer>
       <name>Organisations</name>
@@ -142,8 +142,68 @@
     <entityField>
       <name>PHASE</name>
       <title>Phase</title>
-      <possibleItemsProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/phase/possibleItemsProcess.js</possibleItemsProcess>
+      <consumer>KeywordPhase</consumer>
     </entityField>
+    <entityConsumer>
+      <name>KeywordPrice_Politics</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/keywordprice_politics/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordWeakness</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/keywordweakness/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordStrenght</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/keywordstrenght/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordPhase</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/keywordphase/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -228,6 +288,22 @@
           <name>PHASE.value</name>
           <recordfield>SALESPROJECT_COMPETITION.PHASE</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ORG_PRICE_POLITICS.displayValue</name>
+          <expression>%aditoprj%/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/org_price_politics.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ORG_WEAKNESS.displayValue</name>
+          <expression>%aditoprj%/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/org_weakness.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ORG_STRENGTH.displayValue</name>
+          <expression>%aditoprj%/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/org_strength.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PHASE.displayValue</name>
+          <expression>%aditoprj%/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/phase.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/SalesprojectCompetition_entity/entityfields/keywordphase/children/containername_param/code.js b/entity/SalesprojectCompetition_entity/entityfields/keywordphase/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..0fda06efff26a459feed87a3433a92ff99b14171
--- /dev/null
+++ b/entity/SalesprojectCompetition_entity/entityfields/keywordphase/children/containername_param/code.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.salesprojectPhase());
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/entityfields/keywordprice_politics/children/containername_param/code.js b/entity/SalesprojectCompetition_entity/entityfields/keywordprice_politics/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..a76a727534152d479a8b4cbef548371ef4224dc0
--- /dev/null
+++ b/entity/SalesprojectCompetition_entity/entityfields/keywordprice_politics/children/containername_param/code.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.salesprojectPricePolitics());
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/entityfields/keywordstrenght/children/containername_param/code.js b/entity/SalesprojectCompetition_entity/entityfields/keywordstrenght/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..cae1ead3876117be7f9a2c2be4fcc91f3f3b5964
--- /dev/null
+++ b/entity/SalesprojectCompetition_entity/entityfields/keywordstrenght/children/containername_param/code.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.salesprojectStrenght());
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/entityfields/keywordweakness/children/containername_param/code.js b/entity/SalesprojectCompetition_entity/entityfields/keywordweakness/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..1f3ec844e7b00069d9f8bb49e3f1842402b71bdd
--- /dev/null
+++ b/entity/SalesprojectCompetition_entity/entityfields/keywordweakness/children/containername_param/code.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectWeakness(), "ORGANISATION.WEAKNESS");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/entityfields/keywordwonlost/children/containername_param/code.js b/entity/SalesprojectCompetition_entity/entityfields/keywordwonlost/children/containername_param/code.js
index b855b77f902b216254400e1e637a73c0b5ef24e7..cbd1c681941578fe0b1e5234bd3c80837eaaae0a 100644
--- a/entity/SalesprojectCompetition_entity/entityfields/keywordwonlost/children/containername_param/code.js
+++ b/entity/SalesprojectCompetition_entity/entityfields/keywordwonlost/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.SalesprojectWonLost);
\ No newline at end of file
+result.string($KeywordRegistry.salesprojectWonLost());
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/entityfields/org_price_politics/possibleItemsProcess.js b/entity/SalesprojectCompetition_entity/entityfields/org_price_politics/possibleItemsProcess.js
deleted file mode 100644
index 0a795d357bbf1bcc88dbfebb8d15491e6ee68f65..0000000000000000000000000000000000000000
--- a/entity/SalesprojectCompetition_entity/entityfields/org_price_politics/possibleItemsProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-result.object(LegacyKeywordUtils.getStandardArray("SALESPROJECT.PRICE_POLITICS"));
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/entityfields/org_strength/possibleItemsProcess.js b/entity/SalesprojectCompetition_entity/entityfields/org_strength/possibleItemsProcess.js
deleted file mode 100644
index 75aef701340c5393390f3978613a76c95c72ee54..0000000000000000000000000000000000000000
--- a/entity/SalesprojectCompetition_entity/entityfields/org_strength/possibleItemsProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-result.object(LegacyKeywordUtils.getStandardArray("SALESPROJECT.STRENGTH"));
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/entityfields/org_weakness/possibleItemsProcess.js b/entity/SalesprojectCompetition_entity/entityfields/org_weakness/possibleItemsProcess.js
deleted file mode 100644
index cf8185dc33c44e8994ef345b06ca0c76cd5606dc..0000000000000000000000000000000000000000
--- a/entity/SalesprojectCompetition_entity/entityfields/org_weakness/possibleItemsProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-result.object(LegacyKeywordUtils.getStandardArray("SALESPROJECT.WEAKNESS"));
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/entityfields/phase/possibleItemsProcess.js b/entity/SalesprojectCompetition_entity/entityfields/phase/possibleItemsProcess.js
deleted file mode 100644
index b539741cfe61bd1df9f3a8de8496fe4d1b38ca76..0000000000000000000000000000000000000000
--- a/entity/SalesprojectCompetition_entity/entityfields/phase/possibleItemsProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-result.object(LegacyKeywordUtils.getStandardArray("SALESPROJECT.PHASE"));
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/org_price_politics.displayvalue/expression.js b/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/org_price_politics.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..d352cbd476f1f9c7225a6d4e287f254d0478fb4b
--- /dev/null
+++ b/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/org_price_politics.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectPricePolitics(), "ORGANISATION.PRICE_POLITICS");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/org_strength.displayvalue/expression.js b/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/org_strength.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..0071a532b7942b287c869f4eaef13c430b057297
--- /dev/null
+++ b/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/org_strength.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectStrenght(), "ORGANISATION.STRENGTH");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/org_weakness.displayvalue/expression.js b/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/org_weakness.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..1f3ec844e7b00069d9f8bb49e3f1842402b71bdd
--- /dev/null
+++ b/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/org_weakness.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectWeakness(), "ORGANISATION.WEAKNESS");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/phase.displayvalue/expression.js b/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/phase.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..09107aba69570d4b7cdc97c6e6eee0b76c93c11a
--- /dev/null
+++ b/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/phase.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectPhase(), "SALESPROJECT.PHASE");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/reason.displayvalue/expression.js b/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/reason.displayvalue/expression.js
index f3ca32ff036d770ee78a7319a9ff54545559237e..588db217f864d270398ee0f75c43b0acc6d78b80 100644
--- a/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/reason.displayvalue/expression.js
+++ b/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/reason.displayvalue/expression.js
@@ -1,5 +1,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.SalesprojectWonLost, "SALESPROJECT_COMPETITION.REASON");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectWonLost(), "SALESPROJECT_COMPETITION.REASON");
 result.string(sql);
diff --git a/entity/SalesprojectForecast_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js b/entity/SalesprojectForecast_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
index d7218938fa93d73a75f71c79affa7b02d47668e3..0881ceab5803df2043bdf3ca34277137e48b6a6b 100644
--- a/entity/SalesprojectForecast_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
+++ b/entity/SalesprojectForecast_entity/entityfields/keywordproductgroupcodes/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.ProductGroupcode);
\ No newline at end of file
+result.string($KeywordRegistry.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
index a381b5188c60a12cd0ab9536bc3671e6e482f245..a2590bfa96fa9edd3731fa755fea15389de5dfac 100644
--- a/entity/SalesprojectForecast_entity/recordcontainers/db/recordfieldmappings/groupcode.displayvalue/expression.js
+++ b/entity/SalesprojectForecast_entity/recordcontainers/db/recordfieldmappings/groupcode.displayvalue/expression.js
@@ -1,5 +1,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.ProductGroupcode, "SALESPROJECT_FORECAST.GROUPCODE");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "SALESPROJECT_FORECAST.GROUPCODE");
 result.string(sql);
diff --git a/entity/SalesprojectMember_entity/entityfields/keywordmemberroles/children/containername_param/code.js b/entity/SalesprojectMember_entity/entityfields/keywordmemberroles/children/containername_param/code.js
index fcae12d10e03c0391978172ff2bb8dc16ea1f269..7042000352a08048c56df02c22a9a1af2b70830d 100644
--- a/entity/SalesprojectMember_entity/entityfields/keywordmemberroles/children/containername_param/code.js
+++ b/entity/SalesprojectMember_entity/entityfields/keywordmemberroles/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.SalesprojectMemberRole);
\ No newline at end of file
+result.string($KeywordRegistry.salesprojectMemberRole());
\ No newline at end of file
diff --git a/entity/SalesprojectMember_entity/recordcontainers/db/recordfieldmappings/salesproject_role.displayvalue/expression.js b/entity/SalesprojectMember_entity/recordcontainers/db/recordfieldmappings/salesproject_role.displayvalue/expression.js
index c336643dcfcb147d5f27c04dceeca3cc0f453354..18c379f40354d3845c0987ffe926f7e9f0631476 100644
--- a/entity/SalesprojectMember_entity/recordcontainers/db/recordfieldmappings/salesproject_role.displayvalue/expression.js
+++ b/entity/SalesprojectMember_entity/recordcontainers/db/recordfieldmappings/salesproject_role.displayvalue/expression.js
@@ -1,5 +1,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.SalesprojectMemberRole, "SALESPROJECT_MEMBER.SALESPROJECT_ROLE");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectMemberRole(), "SALESPROJECT_MEMBER.SALESPROJECT_ROLE");
 result.string(sql);
\ No newline at end of file
diff --git a/entity/SalesprojectSource_entity/entityfields/keywordsources/children/containername_param/code.js b/entity/SalesprojectSource_entity/entityfields/keywordsources/children/containername_param/code.js
index 5cda1338b7ac02d7d8c721e7b90d0a30d562b9f0..c2806676a54f2d6c4dd76dd80551413e4ef9cc2a 100644
--- a/entity/SalesprojectSource_entity/entityfields/keywordsources/children/containername_param/code.js
+++ b/entity/SalesprojectSource_entity/entityfields/keywordsources/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.SalesprojectSource);
\ No newline at end of file
+result.string($KeywordRegistry.salesprojectSource());
\ No newline at end of file
diff --git a/entity/SalesprojectSource_entity/recordcontainers/db/recordfieldmappings/source.displayvalue/expression.js b/entity/SalesprojectSource_entity/recordcontainers/db/recordfieldmappings/source.displayvalue/expression.js
index 940b47fc5de9a42dcf39ae8e35566585cc91d4be..78804de15943f7f1439549a5854d5d04f8918da6 100644
--- a/entity/SalesprojectSource_entity/recordcontainers/db/recordfieldmappings/source.displayvalue/expression.js
+++ b/entity/SalesprojectSource_entity/recordcontainers/db/recordfieldmappings/source.displayvalue/expression.js
@@ -1,5 +1,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.SalesprojectSource, "SALESPROJECT_SOURCE.SOURCE");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectSource(), "SALESPROJECT_SOURCE.SOURCE");
 result.string(sql);
diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod
index 7bcd55845a690a27069d3f692ba3141545d364dc..9934cf67ed200aad94830784991f5c727273a016 100644
--- a/entity/Salesproject_entity/Salesproject_entity.aod
+++ b/entity/Salesproject_entity/Salesproject_entity.aod
@@ -38,8 +38,8 @@
     <entityField>
       <name>PHASE</name>
       <title>Phase</title>
+      <consumer>KeywordPhase</consumer>
       <mandatory v="true" />
-      <possibleItemsProcess>%aditoprj%/entity/Salesproject_entity/entityfields/phase/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
     <entityField>
       <name>PROJECTCODE</name>
@@ -76,8 +76,8 @@
     <entityField>
       <name>STATE</name>
       <title>Status</title>
+      <consumer>KeywordState</consumer>
       <mandatory v="true" />
-      <possibleItemsProcess>%aditoprj%/entity/Salesproject_entity/entityfields/state/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
     <entityField>
       <name>VOLUME</name>
@@ -378,6 +378,51 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityConsumer>
+      <name>KeywordEstimation</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Salesproject_entity/entityfields/keywordestimation/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordState</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Salesproject_entity/entityfields/keywordstate/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordPhase</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Salesproject_entity/entityfields/keywordphase/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
     <entityActionField>
       <name>newActivity</name>
       <fieldType>ACTION</fieldType>
@@ -493,6 +538,22 @@
           <name>PROBABILITY.displayValue</name>
           <expression>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/probability.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ESTIMATIONVALUE.displayValue</name>
+          <expression>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/estimationvalue.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATE.displayValue</name>
+          <expression>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PHASE.displayValue</name>
+          <expression>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/phase.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ESTIMATION.displayValue</name>
+          <expression>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/estimation.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Salesproject_entity/entityfields/image/valueProcess.js b/entity/Salesproject_entity/entityfields/image/valueProcess.js
index 90f0619c9f05b2c4862a7b0c93e15648467ac16f..c04626b8e075d07b742f63f4810cde51d710516e 100644
--- a/entity/Salesproject_entity/entityfields/image/valueProcess.js
+++ b/entity/Salesproject_entity/entityfields/image/valueProcess.js
@@ -1,5 +1,6 @@
 import("system.vars");
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string("TEXT:" + LegacyKeywordUtils.getViewValue("SALESPROJECT.STATE", vars.getString("$field.STATE")) );
\ No newline at end of file
+result.string("TEXT:" + KeywordUtils.getViewValue($KeywordRegistry.salesprojectState(), vars.getString("$field.STATE")) );
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/keywordestimation/children/containername_param/code.js b/entity/Salesproject_entity/entityfields/keywordestimation/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..148aaa91247ddc35cef8d361cb890735366d75b6
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/keywordestimation/children/containername_param/code.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.salesprojectEstimation());
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/keywordphase/children/containername_param/code.js b/entity/Salesproject_entity/entityfields/keywordphase/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..0fda06efff26a459feed87a3433a92ff99b14171
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/keywordphase/children/containername_param/code.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.salesprojectPhase());
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/keywordprobabilties/children/containername_param/code.js b/entity/Salesproject_entity/entityfields/keywordprobabilties/children/containername_param/code.js
index 4eecf47c8cf65b769844277ca6d404f996267724..6ca842dd15dc19ccf7e8af70272fabaee25756af 100644
--- a/entity/Salesproject_entity/entityfields/keywordprobabilties/children/containername_param/code.js
+++ b/entity/Salesproject_entity/entityfields/keywordprobabilties/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.SalesprojectProbability);
\ No newline at end of file
+result.string($KeywordRegistry.salesprojectProbability());
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/keywordstate/children/containername_param/code.js b/entity/Salesproject_entity/entityfields/keywordstate/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..9604353462b5f896fe861ef98813706bc705a3e7
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/keywordstate/children/containername_param/code.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.salesprojectState());
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/phase/possibleItemsProcess.js b/entity/Salesproject_entity/entityfields/phase/possibleItemsProcess.js
deleted file mode 100644
index b539741cfe61bd1df9f3a8de8496fe4d1b38ca76..0000000000000000000000000000000000000000
--- a/entity/Salesproject_entity/entityfields/phase/possibleItemsProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-result.object(LegacyKeywordUtils.getStandardArray("SALESPROJECT.PHASE"));
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/state/possibleItemsProcess.js b/entity/Salesproject_entity/entityfields/state/possibleItemsProcess.js
deleted file mode 100644
index 904fa16280fd9e6516caf2915c795214425359f6..0000000000000000000000000000000000000000
--- a/entity/Salesproject_entity/entityfields/state/possibleItemsProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-var items;
-
-items = LegacyKeywordUtils.getStandardArray("SALESPROJECT.STATE");
-result.object(items);
\ No newline at end of file
diff --git a/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/estimation.displayvalue/expression.js b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/estimation.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..c2afa409b42fdc0e4a3cac10d1ef6e7645829dea
--- /dev/null
+++ b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/estimation.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectEstimation(), "SALESPROJECT.ESTIMATIONVALUE");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/estimationvalue.displayvalue/expression.js b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/estimationvalue.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..eb8f932fddcd182a6256f4e7eb337a3f44884718
--- /dev/null
+++ b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/estimationvalue.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectEstimation(), "SALESPROJECT.ESTIMATIONVALUE");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/phase.displayvalue/expression.js b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/phase.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..09107aba69570d4b7cdc97c6e6eee0b76c93c11a
--- /dev/null
+++ b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/phase.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectPhase(), "SALESPROJECT.PHASE");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/probability.displayvalue/expression.js b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/probability.displayvalue/expression.js
index a5769eccec40249640f8612dacb4ecede39106f4..f5ef49dc97e054a1378a98f5cf434622dd068c45 100644
--- a/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/probability.displayvalue/expression.js
+++ b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/probability.displayvalue/expression.js
@@ -1,5 +1,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.SalesprojectProbability, "SALESPROJECT.PROBABILITY");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectProbability(), "SALESPROJECT.PROBABILITY");
 result.string(sql);
diff --git a/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..fd49eda303bdc422d288bacde15a4d61683cdd3c
--- /dev/null
+++ b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectState(), "SALESPROJECT.STATE");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/Stock_entity/entityfields/keywordwarehouses/children/containername_param/code.js b/entity/Stock_entity/entityfields/keywordwarehouses/children/containername_param/code.js
index e26a2604ef40955c2d68108716f127bf8290cbe3..96b4ada951a400b65e3e56e0885a3f0d196db22c 100644
--- a/entity/Stock_entity/entityfields/keywordwarehouses/children/containername_param/code.js
+++ b/entity/Stock_entity/entityfields/keywordwarehouses/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.StockWarehouse);
\ No newline at end of file
+result.string($KeywordRegistry.stockWarehouse());
\ No newline at end of file
diff --git a/entity/Stock_entity/recordcontainers/db/recordfieldmappings/warehouse.displayvalue/expression.js b/entity/Stock_entity/recordcontainers/db/recordfieldmappings/warehouse.displayvalue/expression.js
index ffecade2a1ac4c81cf347c212c9acb30314ade74..4ff8fe23b40a4838516cfa85e441e852d8b4970e 100644
--- a/entity/Stock_entity/recordcontainers/db/recordfieldmappings/warehouse.displayvalue/expression.js
+++ b/entity/Stock_entity/recordcontainers/db/recordfieldmappings/warehouse.displayvalue/expression.js
@@ -1,5 +1,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.StockWarehouse, "STOCK.WAREHOUSE");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.stockWarehouse(), "STOCK.WAREHOUSE");
 result.string(sql);
diff --git a/entity/Task_entity/Task_entity.aod b/entity/Task_entity/Task_entity.aod
index f44e1b225807c52a2803e631d35ab5e81856d732..8284ec231dcc09a93a47c3dd7ef7b64e97c2290c 100644
--- a/entity/Task_entity/Task_entity.aod
+++ b/entity/Task_entity/Task_entity.aod
@@ -37,8 +37,8 @@
     <entityField>
       <name>PRIORITY</name>
       <title>priority</title>
+      <consumer>KeywordPriority</consumer>
       <mandatory v="true" />
-      <possibleItemsProcess>%aditoprj%/entity/Task_entity/entityfields/priority/possibleItemsProcess.js</possibleItemsProcess>
       <groupable v="true" />
       <valueProcess>%aditoprj%/entity/Task_entity/entityfields/priority/valueProcess.js</valueProcess>
     </entityField>
@@ -234,6 +234,21 @@
       <expose v="true" />
       <description>PARAMETER</description>
     </entityParameter>
+    <entityConsumer>
+      <name>KeywordPriority</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Task_entity/entityfields/keywordpriority/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -323,6 +338,10 @@
           <name>PARENT_ID.value</name>
           <recordfield>TASK.PARENT_ID</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PRIORITY.displayValue</name>
+          <expression>%aditoprj%/entity/Task_entity/recordcontainers/db/recordfieldmappings/priority.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Task_entity/entityfields/keywordpriority/children/containername_param/code.js b/entity/Task_entity/entityfields/keywordpriority/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..8a4cee16039670b6963ac6920a03a81bf1a8ad43
--- /dev/null
+++ b/entity/Task_entity/entityfields/keywordpriority/children/containername_param/code.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.taskPriority());
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/keywordstates/children/containername_param/code.js b/entity/Task_entity/entityfields/keywordstates/children/containername_param/code.js
index 580aeb3de0aefd7c19493d577f9c2128fbbc70d1..729ee3d1884b9c7884bcbb920f3f9c4f5c54738a 100644
--- a/entity/Task_entity/entityfields/keywordstates/children/containername_param/code.js
+++ b/entity/Task_entity/entityfields/keywordstates/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.TaskStatus);
\ No newline at end of file
+result.string($KeywordRegistry.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
index 45a01452c07d95ae93a3fe02d862477270852e1e..308d10e96440d31d0a01fc030db90ecf88ff9350 100644
--- a/entity/Task_entity/entityfields/keywordtypes/children/containername_param/code.js
+++ b/entity/Task_entity/entityfields/keywordtypes/children/containername_param/code.js
@@ -1,4 +1,5 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.get.TaskType);
\ No newline at end of file
+result.string($KeywordRegistry.taskType());
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/priority/possibleItemsProcess.js b/entity/Task_entity/entityfields/priority/possibleItemsProcess.js
deleted file mode 100644
index 83efeb09de4c609ecb59a10dc06c464bc380a859..0000000000000000000000000000000000000000
--- a/entity/Task_entity/entityfields/priority/possibleItemsProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-var items;
-
-items = LegacyKeywordUtils.getStandardArray("TASK.PRIORITY");
-result.object(items);
\ No newline at end of file
diff --git a/entity/Task_entity/iconIdProcess.js b/entity/Task_entity/iconIdProcess.js
index 446b9205ba8168cddc02ac6dc0e96b7418361417..c7a5eb886768027f7020cd78e8d135e1c29f69ec 100644
--- a/entity/Task_entity/iconIdProcess.js
+++ b/entity/Task_entity/iconIdProcess.js
@@ -2,9 +2,11 @@ import("system.vars");
 import("system.result");
 import("system.neon");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
 var category = vars.getString("$field.PRIORITY");
-var kwd = LegacyKeywordUtils.createKeyword("TASK.PRIORITY");
-var icon = kwd.getPropForKey(category, "defaultAvatarRepresentation", true);
+
+var keywordAttributes = KeywordUtils.getAttributeRelationsByKey(category, $KeywordRegistry.taskPriority());
+var icon = keywordAttributes.defaultAvatarRepresentation;
 
 result.string(icon || "VAADIN:TASKS");
\ No newline at end of file
diff --git a/entity/Task_entity/recordcontainers/db/recordfieldmappings/priority.displayvalue/expression.js b/entity/Task_entity/recordcontainers/db/recordfieldmappings/priority.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..0b2c6568c32b748a32d429eddffbc29e9f24d980
--- /dev/null
+++ b/entity/Task_entity/recordcontainers/db/recordfieldmappings/priority.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.taskPriority(), "TASK.PRIORITY");
+result.string(sql);
\ 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
index 4af15e0ec64815e204b045a8ba800de3847f2342..30eb95f58808f11dcc55f47d69c83025233fe2db 100644
--- a/entity/Task_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
+++ b/entity/Task_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
@@ -1,5 +1,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.TaskStatus, "TASK.STATUS");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.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
index a0b8bddfdcbd1c4f834335de9e052af44a0e4f3b..8f9ef6854e6d5c7f94f11bd1eec4865d67074b17 100644
--- a/entity/Task_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js
+++ b/entity/Task_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js
@@ -1,5 +1,6 @@
 import("system.result");
 import("Keyword_lib");
+import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.TaskType, "TASK.TYPE");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.taskType(), "TASK.TYPE");
 result.string(sql);
diff --git a/entity/Turnover_entity/recordcontainers/jdito/contentProcess.js b/entity/Turnover_entity/recordcontainers/jdito/contentProcess.js
index 74fa0b796d49d26a64f3dc1afebdec42fa58ec9d..5e172901d9f8b0a4a4585865f37490c6b1656b4e 100644
--- a/entity/Turnover_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Turnover_entity/recordcontainers/jdito/contentProcess.js
@@ -7,6 +7,7 @@ import("system.translate");
 import("Data_lib");
 import("Keyword_lib");
 import("Money_lib");
+import("KeywordRegistry_basic");
 
 var turnoverCategory = translate.text('Turnover');
 var forecastCategory = translate.text('Forecast');
@@ -14,13 +15,13 @@ var forecastCategory = translate.text('Forecast');
 // load data
 var sumOfMonthTurnover = db.table("select year(SALESORDERDATE) yearNum, month(SALESORDERDATE) monthNum, sum(NET + VAT) from SALESORDER group by year(SALESORDERDATE), month(SALESORDERDATE) order by yearNum, monthNum");
 var sumOfMonthForecast = db.table("select year(DATE_START) yearNum, month(DATE_START) monthNum, sum(VOLUME * 1000) from SALESPROJECT_FORECAST group by year(DATE_START), month(DATE_START) order by yearNum, monthNum");
-var sumOfMonthProductsTurnover = db.table("select year(SALESORDERDATE) yearNum, month(SALESORDERDATE) monthNum, SALESORDERITEM.DISCOUNT, SALESORDERITEM.VAT, SALESORDERITEM.PRICE, sum(SALESORDERITEM.QUANTITY), SALESORDERITEM.GROUPCODEID, (" + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.ProductGroupcode, "SALESORDERITEM.GROUPCODEID") + ") \n\
+var sumOfMonthProductsTurnover = db.table("select year(SALESORDERDATE) yearNum, month(SALESORDERDATE) monthNum, SALESORDERITEM.DISCOUNT, SALESORDERITEM.VAT, SALESORDERITEM.PRICE, sum(SALESORDERITEM.QUANTITY), SALESORDERITEM.GROUPCODEID, (" + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "SALESORDERITEM.GROUPCODEID") + ") \n\
                                             from SALESORDER \n\
                                             join SALESORDERITEM on SALESORDERITEM.SALESORDER_ID = SALESORDER.SALESORDERID \n\
                                             where SALESORDERITEM.OPTIONAL <> 1 \n\
                                             group by year(SALESORDERDATE), month(SALESORDERDATE), SALESORDERITEM.GROUPCODEID, SALESORDERITEM.DISCOUNT, SALESORDERITEM.VAT, SALESORDERITEM.PRICE \n\
                                             order by yearNum, monthNum");                  //           V--V--> there is no VAT/Discount in forecasts  V-----> forecasts are grouped by grupcode and have always quantity 1
-var sumOfMonthProductsForecast = db.table("select year(DATE_START) yearNum, month(DATE_START) monthNum, 0, 0, sum(VOLUME * 1000),                      1, GROUPCODE, (" + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.ProductGroupcode, "GROUPCODE") + ") from SALESPROJECT_FORECAST group by year(DATE_START), month(DATE_START), GROUPCODE order by yearNum, monthNum");
+var sumOfMonthProductsForecast = db.table("select year(DATE_START) yearNum, month(DATE_START) monthNum, 0, 0, sum(VOLUME * 1000),                      1, GROUPCODE, (" + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "GROUPCODE") + ") from SALESPROJECT_FORECAST group by year(DATE_START), month(DATE_START), GROUPCODE order by yearNum, monthNum");
 
 // build chartData
 var rootNode = "";
diff --git a/others/db_changes/data_alias/basic/2019.2/ActivityCategory.xml b/others/db_changes/data_alias/basic/2019.2/ActivityCategory.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fcbb269fbdfb34ae7b5fbdf4df342abc124457da
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/ActivityCategory.xml
@@ -0,0 +1,50 @@
+<?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="a.voegl" id="7c558f07-2ee7-4eb3-8b8c-a433acc7c39b">
+        <renameColumn newColumnName="CATEGORY_OLD" oldColumnName="CATEGORY" tableName="ACTIVITY"/>
+	<addColumn tableName="ACTIVITY">
+            <column name="CATEGORY" type="CHAR(36)"/>
+	</addColumn> 
+        <update tableName="ACTIVITY">
+            <column name="CATEGORY" value="12ef155a-7be2-405a-af26-d357e5a61c25"/>
+            <where>CATEGORY_OLD = 0</where>
+        </update>
+        <update tableName="ACTIVITY">
+            <column name="CATEGORY" value="7c5c8f92-d40e-4204-859c-fd07467e6f8b"/>
+            <where>CATEGORY_OLD = 1</where>
+        </update>
+        <update tableName="ACTIVITY">
+            <column name="CATEGORY" value="f925a037-e869-43c2-8a26-b0a7ade1964e"/>
+            <where>CATEGORY_OLD = 2</where>
+        </update>
+        <update tableName="ACTIVITY">
+            <column name="CATEGORY" value="150bae94-1175-4131-9320-a88dadbffcda"/>
+            <where>CATEGORY_OLD = 3</where>
+        </update>
+        <dropColumn tableName="ACTIVITY" columnName="CATEGORY_OLD"/>
+ 
+        <rollback>
+            <renameColumn newColumnName="CATEGORY_OLD" oldColumnName="CATEGORY" tableName="ACTIVITY"/>
+            <addColumn tableName="ACTIVITY">
+                <column name="CATEGORY" type="INTEGER"/>
+            </addColumn>   
+            <update tableName="ACTIVITY">
+                <column name="CATEGORY" valueNumeric="0"/>
+                <where>CATEGORY_OLD = '12ef155a-7be2-405a-af26-d357e5a61c25'</where>
+            </update>
+            <update tableName="ACTIVITY">
+                <column name="CATEGORY" valueNumeric="1"/>
+                <where>CATEGORY_OLD = '7c5c8f92-d40e-4204-859c-fd07467e6f8b'</where>
+            </update>
+            <update tableName="ACTIVITY">
+                <column name="CATEGORY" valueNumeric="2"/>
+                <where>CATEGORY_OLD = 'f925a037-e869-43c2-8a26-b0a7ade1964e'</where>
+            </update>
+            <update tableName="ACTIVITY">
+                <column name="CATEGORY" valueNumeric="3"/>
+                <where>CATEGORY_OLD = '150bae94-1175-4131-9320-a88dadbffcda'</where>
+            </update>
+            <dropColumn tableName="ACTIVITY" columnName="CATEGORY_OLD"/>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/AddressType.xml b/others/db_changes/data_alias/basic/2019.2/AddressType.xml
new file mode 100644
index 0000000000000000000000000000000000000000..64f8191fc2f44baa0e91a15cf714985ab13b797b
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/AddressType.xml
@@ -0,0 +1,50 @@
+<?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="a.voegl" id="6604df3f-37ad-4658-80c5-abe75fa71c14">
+        <renameColumn newColumnName="ADDR_TYPE_OLD" oldColumnName="ADDR_TYPE" tableName="ADDRESS"/>
+	<addColumn tableName="ADDRESS">
+            <column name="ADDR_TYPE" type="CHAR(36)"/>
+	</addColumn> 
+        <update tableName="ADDRESS">
+            <column name="ADDR_TYPE" value="b3292432-bca2-4674-8b06-b78b2b06351e"/>
+            <where>ADDR_TYPE_OLD = 1</where>
+        </update>
+        <update tableName="ADDRESS">
+            <column name="ADDR_TYPE" value="a7466ee5-3fba-40bf-93cf-aa20a2b32ad6"/>
+            <where>ADDR_TYPE_OLD = 2</where>
+        </update>
+        <update tableName="ADDRESS">
+            <column name="ADDR_TYPE" value="cf1c4cab-d24e-4690-ba52-54bae711cd47"/>
+            <where>ADDR_TYPE_OLD = 3</where>
+        </update>
+        <update tableName="ADDRESS">
+            <column name="ADDR_TYPE" value="dd0ddde2-9add-4309-b3ef-0f1dfb6d4aac"/>
+            <where>ADDR_TYPE_OLD = 4</where>
+        </update>
+        <dropColumn tableName="ADDRESS" columnName="ADDR_TYPE_OLD"/>
+ 
+        <rollback>
+            <renameColumn newColumnName="ADDR_TYPE_OLD" oldColumnName="ADDR_TYPE" tableName="ADDRESS"/>
+            <addColumn tableName="ADDRESS">
+                <column name="ADDR_TYPE" type="INTEGER"/>
+            </addColumn>   
+            <update tableName="ADDRESS">
+                <column name="ADDR_TYPE" valueNumeric="1"/>
+                <where>ADDR_TYPE_OLD = 'b3292432-bca2-4674-8b06-b78b2b06351e'</where>
+            </update>
+            <update tableName="ADDRESS">
+                <column name="ADDR_TYPE" valueNumeric="2"/>
+                <where>ADDR_TYPE_OLD = 'a7466ee5-3fba-40bf-93cf-aa20a2b32ad6'</where>
+            </update>
+            <update tableName="ADDRESS">
+                <column name="ADDR_TYPE" valueNumeric="3"/>
+                <where>ADDR_TYPE_OLD = 'cf1c4cab-d24e-4690-ba52-54bae711cd47'</where>
+            </update>
+            <update tableName="ADDRESS">
+                <column name="ADDR_TYPE" valueNumeric="4"/>
+                <where>ADDR_TYPE_OLD = 'dd0ddde2-9add-4309-b3ef-0f1dfb6d4aac'</where>
+            </update>
+            <dropColumn tableName="ADDRESS" columnName="ADDR_TYPE_OLD"/>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_ActivityCategory.xml b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_ActivityCategory.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c3b1b17794e650d31c496f887a3af8f594684d25
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_ActivityCategory.xml
@@ -0,0 +1,132 @@
+<?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="a.veogl" id="3e9548bd-2c3e-413f-a8b0-405d926f2790">
+        <insert tableName="AB_KEYWORD_ATTRIBUTE">
+            <column name="AB_KEYWORD_ATTRIBUTEID" value="14c2d515-a42f-4618-b534-7a23369d21e6"/>
+
+            <column name="NAME" value="defaultAvatarRepresentation"/>
+            <column name="CONTAINER" value="ActivityCategory"/>
+            <column name="TYPE" value="CHAR_VALUE"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="94529505-1913-4827-9812-026053bfcb51"/>
+
+            <column name="KEYID" value="12ef155a-7be2-405a-af26-d357e5a61c25"/>
+            <column name="TITLE" value="Visit"/>
+            <column name="CONTAINER" value="ActivityCategory"/>
+            <column name="SORTING" valueNumeric="0"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="9dfb126f-25ea-4a04-9603-c3e92fe74331"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="94529505-1913-4827-9812-026053bfcb51"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="14c2d515-a42f-4618-b534-7a23369d21e6"/>
+            <column name="CHAR_VALUE" value="VAADIN:TRAIN"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="3b677654-84e2-4b9c-b5d0-ed2b359c45af"/>
+
+            <column name="KEYID" value="7c5c8f92-d40e-4204-859c-fd07467e6f8b"/>
+            <column name="TITLE" value="E-Mail"/>
+            <column name="CONTAINER" value="ActivityCategory"/>
+            <column name="SORTING" valueNumeric="1"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="54dd7e21-924d-437b-9772-b4abd9a4c05d"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="3b677654-84e2-4b9c-b5d0-ed2b359c45af"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="14c2d515-a42f-4618-b534-7a23369d21e6"/>
+            <column name="CHAR_VALUE" value="VAADIN:AT"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="6febeb71-a8a4-400c-80fd-da27ac935260"/>
+
+            <column name="KEYID" value="f925a037-e869-43c2-8a26-b0a7ade1964e"/>
+            <column name="TITLE" value="Phone"/>
+            <column name="CONTAINER" value="ActivityCategory"/>
+            <column name="SORTING" valueNumeric="2"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="95a3b36c-8890-4d86-9f61-618f809b587d"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="6febeb71-a8a4-400c-80fd-da27ac935260"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="14c2d515-a42f-4618-b534-7a23369d21e6"/>
+            <column name="CHAR_VALUE" value="VAADIN:PHONE"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="68c3b1f7-2555-4d3b-a252-7df978173884"/>
+
+            <column name="KEYID" value="150bae94-1175-4131-9320-a88dadbffcda"/>
+            <column name="TITLE" value="Online-Meeting"/>
+            <column name="CONTAINER" value="ActivityCategory"/>
+            <column name="SORTING" valueNumeric="3"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="bf8291ee-d926-4544-a31b-1994610a52c8"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="68c3b1f7-2555-4d3b-a252-7df978173884"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="14c2d515-a42f-4618-b534-7a23369d21e6"/>
+            <column name="CHAR_VALUE" value="VAADIN:GLOBE_WIRE"/>
+        </insert>
+        <rollback>
+            <delete tableName="AB_KEYWORD_ATTRIBUTE">
+                <where>AB_KEYWORD_ATTRIBUTEID = ?</where>
+                <whereParams>
+                    <param value="14c2d515-a42f-4618-b534-7a23369d21e6" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="94529505-1913-4827-9812-026053bfcb51" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="9dfb126f-25ea-4a04-9603-c3e92fe74331" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="3b677654-84e2-4b9c-b5d0-ed2b359c45af" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="54dd7e21-924d-437b-9772-b4abd9a4c05d" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="6febeb71-a8a4-400c-80fd-da27ac935260" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="95a3b36c-8890-4d86-9f61-618f809b587d" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="68c3b1f7-2555-4d3b-a252-7df978173884" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="bf8291ee-d926-4544-a31b-1994610a52c8" />
+                </whereParams>
+            </delete>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_AddressType.xml b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_AddressType.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f5e48e9b9d2743f01d7bb5b6d402f4759aecc779
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_AddressType.xml
@@ -0,0 +1,193 @@
+<?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="a.veogl" id="83126524-0cca-4430-8a2c-571a44a7829d">
+        <insert tableName="AB_KEYWORD_ATTRIBUTE">
+            <column name="AB_KEYWORD_ATTRIBUTEID" value="1d5c5d49-0ffd-47fb-af10-542f7cf454cd"/>
+
+            <column name="NAME" value="organinsation"/>
+            <column name="CONTAINER" value="AddressType"/>
+            <column name="TYPE" value="BOOL_VALUE"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTE">
+            <column name="AB_KEYWORD_ATTRIBUTEID" value="c4c5352b-ff72-4323-80b9-631a24dd7245"/>
+
+            <column name="NAME" value="contact"/>
+            <column name="CONTAINER" value="AddressType"/>
+            <column name="TYPE" value="BOOL_VALUE"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="49bb6904-dd20-4ede-aaff-ae80131ed274"/>
+
+            <column name="KEYID" value="b3292432-bca2-4674-8b06-b78b2b06351e"/>
+            <column name="TITLE" value="Office address"/>
+            <column name="CONTAINER" value="AddressType"/>
+            <column name="SORTING" valueNumeric="1"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="a62eae3b-b670-4bf7-a144-696d456cd26a"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="49bb6904-dd20-4ede-aaff-ae80131ed274"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="1d5c5d49-0ffd-47fb-af10-542f7cf454cd"/>
+            <column name="BOOL_VALUE" valueNumeric="1"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="f4e88624-f2a8-43a5-b5db-51fa0879314f"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="49bb6904-dd20-4ede-aaff-ae80131ed274"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="c4c5352b-ff72-4323-80b9-631a24dd7245"/>
+            <column name="BOOL_VALUE" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="5213a48a-b6d2-47ee-8409-a4af7477535f"/>
+
+            <column name="KEYID" value="a7466ee5-3fba-40bf-93cf-aa20a2b32ad6"/>
+            <column name="TITLE" value="Home address"/>
+            <column name="CONTAINER" value="AddressType"/>
+            <column name="SORTING" valueNumeric="2"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="f6d6f746-bb2c-48c1-92a9-e5624d0a72e1"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="5213a48a-b6d2-47ee-8409-a4af7477535f"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="1d5c5d49-0ffd-47fb-af10-542f7cf454cd"/>
+            <column name="BOOL_VALUE" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="d62d4424-ba6c-4b10-ad83-f7d7c156f814"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="5213a48a-b6d2-47ee-8409-a4af7477535f"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="c4c5352b-ff72-4323-80b9-631a24dd7245"/>
+            <column name="BOOL_VALUE" valueNumeric="1"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="045d0567-4535-4d22-84f2-95b3b0e23000"/>
+
+            <column name="KEYID" value="cf1c4cab-d24e-4690-ba52-54bae711cd47"/>
+            <column name="TITLE" value="Delivery address"/>
+            <column name="CONTAINER" value="AddressType"/>
+            <column name="SORTING" valueNumeric="3"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="08f2ba6c-22da-447c-9aa8-052fe401f2bd"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="045d0567-4535-4d22-84f2-95b3b0e23000"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="1d5c5d49-0ffd-47fb-af10-542f7cf454cd"/>
+            <column name="BOOL_VALUE" valueNumeric="1"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="a02167af-0518-4e3d-80c7-8e25a725c31c"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="045d0567-4535-4d22-84f2-95b3b0e23000"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="c4c5352b-ff72-4323-80b9-631a24dd7245"/>
+            <column name="BOOL_VALUE" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="e62da2f2-6352-4660-b2ff-1e8a552d298a"/>
+
+            <column name="KEYID" value="dd0ddde2-9add-4309-b3ef-0f1dfb6d4aac"/>
+            <column name="TITLE" value="Post office box"/>
+            <column name="CONTAINER" value="AddressType"/>
+            <column name="SORTING" valueNumeric="4"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="502fd0cf-873e-4a9a-87a9-949c0c3b07af"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="e62da2f2-6352-4660-b2ff-1e8a552d298a"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="1d5c5d49-0ffd-47fb-af10-542f7cf454cd"/>
+            <column name="BOOL_VALUE" valueNumeric="1"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="443ffd0a-d5f5-46f8-948e-89d4e6456f4c"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="e62da2f2-6352-4660-b2ff-1e8a552d298a"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="c4c5352b-ff72-4323-80b9-631a24dd7245"/>
+            <column name="BOOL_VALUE" valueNumeric="0"/>
+        </insert>
+        <rollback>
+            <delete tableName="AB_KEYWORD_ATTRIBUTE">
+                <where>AB_KEYWORD_ATTRIBUTEID = ?</where>
+                <whereParams>
+                    <param value="1d5c5d49-0ffd-47fb-af10-542f7cf454cd" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTE">
+                <where>AB_KEYWORD_ATTRIBUTEID = ?</where>
+                <whereParams>
+                    <param value="c4c5352b-ff72-4323-80b9-631a24dd7245" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="49bb6904-dd20-4ede-aaff-ae80131ed274" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="a62eae3b-b670-4bf7-a144-696d456cd26a" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="f4e88624-f2a8-43a5-b5db-51fa0879314f" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="5213a48a-b6d2-47ee-8409-a4af7477535f" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="f6d6f746-bb2c-48c1-92a9-e5624d0a72e1" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="d62d4424-ba6c-4b10-ad83-f7d7c156f814" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="045d0567-4535-4d22-84f2-95b3b0e23000" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="08f2ba6c-22da-447c-9aa8-052fe401f2bd" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="a02167af-0518-4e3d-80c7-8e25a725c31c" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="e62da2f2-6352-4660-b2ff-1e8a552d298a" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="502fd0cf-873e-4a9a-87a9-949c0c3b07af" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="443ffd0a-d5f5-46f8-948e-89d4e6456f4c" />
+                </whereParams>
+            </delete>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_CommunicationMedium.xml b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_CommunicationMedium.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a45c7c9d215d6a8fe3bda55c8d567d60e598f99f
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_CommunicationMedium.xml
@@ -0,0 +1,181 @@
+<?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="a.veogl" id="2b9bfc42-1fd5-452f-88f1-896f9065757a">
+        <insert tableName="AB_KEYWORD_ATTRIBUTE">
+            <column name="AB_KEYWORD_ATTRIBUTEID" value="7250ff28-1d48-41cc-bb36-8c33ace341bb"/>
+
+            <column name="NAME" value="category"/>
+            <column name="CONTAINER" value="CommunicationMedium"/>
+            <column name="TYPE" value="CHAR_VALUE"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTE">
+            <column name="AB_KEYWORD_ATTRIBUTEID" value="3ea2ea72-e615-4e77-befb-e664fa5ec4e1"/>
+
+            <column name="NAME" value="contentType"/>
+            <column name="CONTAINER" value="CommunicationMedium"/>
+            <column name="TYPE" value="CHAR_VALUE"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="cc16d938-b95f-4e07-a3b4-73f8524bb664"/>
+
+            <column name="KEYID" value="1a4b1ebe-cf06-4bc1-b7af-e4633d38dc79"/>
+            <column name="TITLE" value="Mobil"/>
+            <column name="CONTAINER" value="CommunicationMedium"/>
+            <column name="SORTING" valueNumeric="0"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="688fe492-d5df-4af0-8bfe-8a7a4b6946d2"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="cc16d938-b95f-4e07-a3b4-73f8524bb664"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="7250ff28-1d48-41cc-bb36-8c33ace341bb"/>
+            <column name="CHAR_VALUE" value="PHONE"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="e1581c4e-24c6-4461-9340-7b69f5a32a58"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="cc16d938-b95f-4e07-a3b4-73f8524bb664"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="3ea2ea72-e615-4e77-befb-e664fa5ec4e1"/>
+            <column name="CHAR_VALUE" value="TELEPHONE"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="66950de5-fa8b-465c-8db1-4eb7aac98bd3"/>
+
+            <column name="KEYID" value="85ee16dd-c878-4463-be6a-324c25e76764"/>
+            <column name="TITLE" value="E-Mail"/>
+            <column name="CONTAINER" value="CommunicationMedium"/>
+            <column name="SORTING" valueNumeric="1"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="ace352ee-b9ba-47eb-a55d-4619a4b41e61"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="66950de5-fa8b-465c-8db1-4eb7aac98bd3"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="7250ff28-1d48-41cc-bb36-8c33ace341bb"/>
+            <column name="CHAR_VALUE" value="EMAIL"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="283695a0-1896-4500-a284-b8fd8c9a38ce"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="66950de5-fa8b-465c-8db1-4eb7aac98bd3"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="3ea2ea72-e615-4e77-befb-e664fa5ec4e1"/>
+            <column name="CHAR_VALUE" value="EMAIL"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="aa2b9cc9-3e87-4fe9-98a2-a4e417a3324f"/>
+
+            <column name="KEYID" value="2f48600a-5c3f-4201-a0c6-5ce1eb9fee13"/>
+            <column name="TITLE" value="Phone"/>
+            <column name="CONTAINER" value="CommunicationMedium"/>
+            <column name="SORTING" valueNumeric="2"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="bf5385d9-a50c-4c4d-8a98-aa94a894ba65"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="aa2b9cc9-3e87-4fe9-98a2-a4e417a3324f"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="7250ff28-1d48-41cc-bb36-8c33ace341bb"/>
+            <column name="CHAR_VALUE" value="PHONE"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="9cb37456-720e-4886-a142-b30624dc6dc5"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="aa2b9cc9-3e87-4fe9-98a2-a4e417a3324f"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="3ea2ea72-e615-4e77-befb-e664fa5ec4e1"/>
+            <column name="CHAR_VALUE" value="TELEPHONE"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="cfebe176-0a64-428d-b0ec-bba454d2ca3e"/>
+
+            <column name="KEYID" value="d08956b8-369e-4b65-88fa-1c37b3368ae3"/>
+            <column name="TITLE" value="Internet"/>
+            <column name="CONTAINER" value="CommunicationMedium"/>
+            <column name="SORTING" valueNumeric="3"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="22b05555-f152-40e2-8ec8-9c1740fcc0e9"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="cfebe176-0a64-428d-b0ec-bba454d2ca3e"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="7250ff28-1d48-41cc-bb36-8c33ace341bb"/>
+            <column name="CHAR_VALUE" value="OTHER"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="0b12da28-e132-4a91-a9ca-beceb811fa44"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="cfebe176-0a64-428d-b0ec-bba454d2ca3e"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="3ea2ea72-e615-4e77-befb-e664fa5ec4e1"/>
+            <column name="CHAR_VALUE" value="LINK"/>
+        </insert>
+        <rollback>
+            <delete tableName="AB_KEYWORD_ATTRIBUTE">
+                <where>AB_KEYWORD_ATTRIBUTEID = ?</where>
+                <whereParams>
+                    <param value="7250ff28-1d48-41cc-bb36-8c33ace341bb" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTE">
+                <where>AB_KEYWORD_ATTRIBUTEID = ?</where>
+                <whereParams>
+                    <param value="3ea2ea72-e615-4e77-befb-e664fa5ec4e1" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="cc16d938-b95f-4e07-a3b4-73f8524bb664" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="66950de5-fa8b-465c-8db1-4eb7aac98bd3" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="688fe492-d5df-4af0-8bfe-8a7a4b6946d2" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="e1581c4e-24c6-4461-9340-7b69f5a32a58" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="aa2b9cc9-3e87-4fe9-98a2-a4e417a3324f" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="ace352ee-b9ba-47eb-a55d-4619a4b41e61" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="283695a0-1896-4500-a284-b8fd8c9a38ce" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="cfebe176-0a64-428d-b0ec-bba454d2ca3e" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="22b05555-f152-40e2-8ec8-9c1740fcc0e9" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="0b12da28-e132-4a91-a9ca-beceb811fa44" />
+                </whereParams>
+            </delete>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_OfferProbability.xml b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_OfferProbability.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c80273b4d5a415896841963a2a809ad144912668
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_OfferProbability.xml
@@ -0,0 +1,160 @@
+<?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="a.voegl" id="3765fc5c-807c-4f33-a125-050a597b279b">
+        <insert tableName="AB_KEYWORD_ATTRIBUTE">
+            <column name="AB_KEYWORD_ATTRIBUTEID" value="b9766994-4e7d-4079-a0bc-f1397f93047f"/>
+
+            <column name="NAME" value="percentValue"/>
+            <column name="CONTAINER" value="OfferProbability"/>
+            <column name="TYPE" value="NUMBER_VALUE"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="e14fab55-4a85-48c2-a109-125eaed9dc3f"/>
+
+            <column name="KEYID" value="834f814d-4e31-4289-be6c-fad2dea3f2f0"/>
+            <column name="TITLE" value="0%"/>
+            <column name="CONTAINER" value="OfferProbability"/>
+            <column name="SORTING" valueNumeric="0"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="a7cc397c-b246-4552-9bf4-537ad4d4476d"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="e14fab55-4a85-48c2-a109-125eaed9dc3f"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="b9766994-4e7d-4079-a0bc-f1397f93047f"/>
+            <column name="NUMBER_VALUE" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="8f55a5e3-00a9-4691-ab79-309a3eda68ec"/>
+
+            <column name="KEYID" value="98ce5f41-90f5-434f-9e72-cdac4a0f5214"/>
+            <column name="TITLE" value="25%"/>
+            <column name="CONTAINER" value="OfferProbability"/>
+            <column name="SORTING" valueNumeric="1"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="fde64249-12c6-4140-9f3f-19585c2ba8fd"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="8f55a5e3-00a9-4691-ab79-309a3eda68ec"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="b9766994-4e7d-4079-a0bc-f1397f93047f"/>
+            <column name="NUMBER_VALUE" valueNumeric="25"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="808a55bc-5876-4deb-a78f-bb352c41d712"/>
+
+            <column name="KEYID" value="c510907f-8478-471e-b702-5008908504bd"/>
+            <column name="TITLE" value="50%"/>
+            <column name="CONTAINER" value="OfferProbability"/>
+            <column name="SORTING" valueNumeric="2"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="ad5da2d5-31ed-433d-8822-16ca9f763a9f"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="808a55bc-5876-4deb-a78f-bb352c41d712"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="b9766994-4e7d-4079-a0bc-f1397f93047f"/>
+            <column name="NUMBER_VALUE" valueNumeric="50"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="941e60df-a4f5-4ae8-9ca1-d9f2b2d01d9d"/>
+
+            <column name="KEYID" value="2dca6f38-b49a-4716-8c83-9d2183c5c065"/>
+            <column name="TITLE" value="75%"/>
+            <column name="CONTAINER" value="OfferProbability"/>
+            <column name="SORTING" valueNumeric="3"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="36fa5f86-6abf-4065-ae3d-e8e614985967"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="941e60df-a4f5-4ae8-9ca1-d9f2b2d01d9d"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="b9766994-4e7d-4079-a0bc-f1397f93047f"/>
+            <column name="NUMBER_VALUE" valueNumeric="75"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="2f21341b-9991-4967-a785-60216ec8c25e"/>
+
+            <column name="KEYID" value="dc7c62fe-ce4b-41e3-91ab-ce0b740ccaeb"/>
+            <column name="TITLE" value="100%"/>
+            <column name="CONTAINER" value="OfferProbability"/>
+            <column name="SORTING" valueNumeric="4"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="173b7c41-4f00-486d-8e24-8c7e9feb246b"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="2f21341b-9991-4967-a785-60216ec8c25e"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="b9766994-4e7d-4079-a0bc-f1397f93047f"/>
+            <column name="NUMBER_VALUE" valueNumeric="100"/>
+        </insert>
+        <rollback>
+            <delete tableName="AB_KEYWORD_ATTRIBUTE">
+                <where>AB_KEYWORD_ATTRIBUTEID = ?</where>
+                <whereParams>
+                    <param value="b9766994-4e7d-4079-a0bc-f1397f93047f" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="e14fab55-4a85-48c2-a109-125eaed9dc3f" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="a7cc397c-b246-4552-9bf4-537ad4d4476d" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="8f55a5e3-00a9-4691-ab79-309a3eda68ec" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="fde64249-12c6-4140-9f3f-19585c2ba8fd" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="808a55bc-5876-4deb-a78f-bb352c41d712" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="ad5da2d5-31ed-433d-8822-16ca9f763a9f" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="941e60df-a4f5-4ae8-9ca1-d9f2b2d01d9d" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="36fa5f86-6abf-4065-ae3d-e8e614985967" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="2f21341b-9991-4967-a785-60216ec8c25e" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="173b7c41-4f00-486d-8e24-8c7e9feb246b" />
+                </whereParams>
+            </delete>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_SalesprojectEstimation.xml b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_SalesprojectEstimation.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fdea48061581d8c89f4d23827541ddb44d868c70
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_SalesprojectEstimation.xml
@@ -0,0 +1,183 @@
+<?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="a.veogl" id="616f99aa-2067-43a4-b2cf-a642fe00e84d">
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="0a1dd1ed-800b-4b1d-a253-7936dac95a9d"/>
+
+            <column name="KEYID" value="c6c49da4-80dc-4c32-b5b0-c33eac27de7f"/>
+            <column name="TITLE" value="Project_volume sufficient"/>
+            <column name="CONTAINER" value="SalesprojectEstimation"/>
+            <column name="SORTING" valueNumeric="1"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="1d670df0-ab0e-45b6-85b8-d1ae4439da70"/>
+
+            <column name="KEYID" value="9237ee74-bb91-4333-8114-4485b35cf8d7"/>
+            <column name="TITLE" value="Project_budget available"/>
+            <column name="CONTAINER" value="SalesprojectEstimation"/>
+            <column name="SORTING" valueNumeric="2"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="0c7250da-a8ec-4509-98f4-660ad671837a"/>
+
+            <column name="KEYID" value="e3e16d06-1390-4d84-81bd-c495a401cc70"/>
+            <column name="TITLE" value="Project_specifications available"/>
+            <column name="CONTAINER" value="SalesprojectEstimation"/>
+            <column name="SORTING" valueNumeric="3"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="a5fb241b-0818-41b7-ae4f-939c2aa0b112"/>
+
+            <column name="KEYID" value="2ef3ac7d-72b8-43b3-9cc1-64ffdf43fe2f"/>
+            <column name="TITLE" value="Project_timeframe critical"/>
+            <column name="CONTAINER" value="SalesprojectEstimation"/>
+            <column name="SORTING" valueNumeric="4"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="6c932def-573d-409c-94b7-3e8640f2bdc6"/>
+
+            <column name="KEYID" value="4b322f3f-815e-442e-ac63-a983f3efca6b"/>
+            <column name="TITLE" value="Project_payment default/penalty critical"/>
+            <column name="CONTAINER" value="SalesprojectEstimation"/>
+            <column name="SORTING" valueNumeric="5"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="9f00cf54-d28b-4d77-a828-791c6d336d41"/>
+
+            <column name="KEYID" value="3179371b-b647-4141-b575-3c26ce9f9213"/>
+            <column name="TITLE" value="Project_references available"/>
+            <column name="CONTAINER" value="SalesprojectEstimation"/>
+            <column name="SORTING" valueNumeric="6"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="f7d55e39-1600-4a74-bfac-c6298e527e2d"/>
+
+            <column name="KEYID" value="3088256a-f247-40cb-ad4e-33892cbf5ca3"/>
+            <column name="TITLE" value="Product_requirements suitable"/>
+            <column name="CONTAINER" value="SalesprojectEstimation"/>
+            <column name="SORTING" valueNumeric="7"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="819d7bf1-1248-435d-9131-8faaae0a4a37"/>
+
+            <column name="KEYID" value="a2faa45e-bc7a-41f6-8130-7c7a636ddc9f"/>
+            <column name="TITLE" value="Product_philosophy fitting"/>
+            <column name="CONTAINER" value="SalesprojectEstimation"/>
+            <column name="SORTING" valueNumeric="8"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="74828345-edb0-47b4-aa80-1bc956021f43"/>
+
+            <column name="KEYID" value="d2e97e88-77fd-4fdb-8d5e-30807e2a40e2"/>
+            <column name="TITLE" value="Product_industry template available"/>
+            <column name="CONTAINER" value="SalesprojectEstimation"/>
+            <column name="SORTING" valueNumeric="9"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="57defed0-4545-40c9-bbd0-3014511332fc"/>
+
+            <column name="KEYID" value="87fd87af-1cb6-40fb-843e-aee612862362"/>
+            <column name="TITLE" value="Other_sympathy available"/>
+            <column name="CONTAINER" value="SalesprojectEstimation"/>
+            <column name="SORTING" valueNumeric="10"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="9d6739d7-9f76-4f8e-a641-a141d087fc1c"/>
+
+            <column name="KEYID" value="5de71df0-5086-49b8-bd72-a2c0a698e134"/>
+            <column name="TITLE" value="Other_advocate available"/>
+            <column name="CONTAINER" value="SalesprojectEstimation"/>
+            <column name="SORTING" valueNumeric="11"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <rollback>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="0a1dd1ed-800b-4b1d-a253-7936dac95a9d" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="1d670df0-ab0e-45b6-85b8-d1ae4439da70" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="0c7250da-a8ec-4509-98f4-660ad671837a" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="a5fb241b-0818-41b7-ae4f-939c2aa0b112" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="6c932def-573d-409c-94b7-3e8640f2bdc6" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="9f00cf54-d28b-4d77-a828-791c6d336d41" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="f7d55e39-1600-4a74-bfac-c6298e527e2d" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="819d7bf1-1248-435d-9131-8faaae0a4a37" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="74828345-edb0-47b4-aa80-1bc956021f43" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="57defed0-4545-40c9-bbd0-3014511332fc" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="9d6739d7-9f76-4f8e-a641-a141d087fc1c" />
+                </whereParams>
+            </delete>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_SalesprojectPhase.xml b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_SalesprojectPhase.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f5216b4ba27d38367662c26a67ba838df31ed72b
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_SalesprojectPhase.xml
@@ -0,0 +1,263 @@
+<?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="a.veogl" id="40103ba2-1a35-4707-b9eb-91c8c19fc32b">
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="b42caac9-8f8f-46e5-9f1c-d121cdf3ad8f"/>
+
+            <column name="KEYID" value="9f7d1fa9-7c09-4037-8f7c-8458def14d89"/>
+            <column name="TITLE" value="NQC"/>
+            <column name="CONTAINER" value="SalesprojectPhase"/>
+            <column name="SORTING" valueNumeric="0"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="8a2d19c9-bc32-437e-9261-78ed30110e92"/>
+
+            <column name="KEYID" value="292628f1-d9a5-432d-8130-f6690c14a5d4"/>
+            <column name="TITLE" value="MAL"/>
+            <column name="CONTAINER" value="SalesprojectPhase"/>
+            <column name="SORTING" valueNumeric="1"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="46f55a58-dbe4-40ae-9306-481df9095088"/>
+
+            <column name="KEYID" value="4467b33c-3a68-4c8b-ba4a-1eb666a6c774"/>
+            <column name="TITLE" value="MQL"/>
+            <column name="CONTAINER" value="SalesprojectPhase"/>
+            <column name="SORTING" valueNumeric="2"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="afa8cf58-07e8-4ee9-b24e-96cb6fa76aec"/>
+
+            <column name="KEYID" value="1e42f183-fb97-415f-9917-b43ca159fde4"/>
+            <column name="TITLE" value="SAL"/>
+            <column name="CONTAINER" value="SalesprojectPhase"/>
+            <column name="SORTING" valueNumeric="3"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="c9483fb9-c295-43d2-94e0-8c949cf6dc47"/>
+
+            <column name="KEYID" value="972a41dc-a8ae-43cd-a03b-522ea84efbfb"/>
+            <column name="TITLE" value="SQO"/>
+            <column name="CONTAINER" value="SalesprojectPhase"/>
+            <column name="SORTING" valueNumeric="4"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="0e8eab64-4c79-4eed-9746-0ac6fc397620"/>
+
+            <column name="KEYID" value="60d09bb1-7e02-4003-99bf-18b739a577ad"/>
+            <column name="TITLE" value="Offer"/>
+            <column name="CONTAINER" value="SalesprojectPhase"/>
+            <column name="SORTING" valueNumeric="5"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="405e2b7b-20c2-4824-a8b5-c7a533784ef3"/>
+
+            <column name="KEYID" value="213c8184-f930-457e-8605-703baaf21d4a"/>
+            <column name="TITLE" value="Negotiation"/>
+            <column name="CONTAINER" value="SalesprojectPhase"/>
+            <column name="SORTING" valueNumeric="6"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="f630f573-baae-4041-aeb0-41ff30ad188a"/>
+
+            <column name="KEYID" value="4eb20149-3a76-4f5d-b8b7-9b529d8d564d"/>
+            <column name="TITLE" value="Project decision"/>
+            <column name="CONTAINER" value="SalesprojectPhase"/>
+            <column name="SORTING" valueNumeric="7"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="4895c091-f810-4c64-9bba-698c07a59c5e"/>
+
+            <column name="KEYID" value="00a104d7-3af4-4250-bad3-1288b9df8152"/>
+            <column name="TITLE" value="Negotiation"/>
+            <column name="CONTAINER" value="SalesprojectPhase"/>
+            <column name="SORTING" valueNumeric="8"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="b255450e-418c-41dd-be47-26c69aedbffa"/>
+
+            <column name="KEYID" value="ae5ecf72-3146-4d75-a7ff-7b628868672f"/>
+            <column name="TITLE" value="Workshop"/>
+            <column name="CONTAINER" value="SalesprojectPhase"/>
+            <column name="SORTING" valueNumeric="9"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="de2e8c2a-ef34-4d62-8d65-a4ca530e7236"/>
+
+            <column name="KEYID" value="2f2afad4-6f1f-47f9-9830-4cbae67f9dc1"/>
+            <column name="TITLE" value="Presentation follow-up"/>
+            <column name="CONTAINER" value="SalesprojectPhase"/>
+            <column name="SORTING" valueNumeric="10"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="58f6b20b-0cae-4a1c-bb47-d2bfaab58df5"/>
+
+            <column name="KEYID" value="a6f57de3-02c2-44a8-9821-975b3a807b46"/>
+            <column name="TITLE" value="Presentation preparation"/>
+            <column name="CONTAINER" value="SalesprojectPhase"/>
+            <column name="SORTING" valueNumeric="11"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="4f957f7d-173d-4450-8502-ba8dc3351db3"/>
+
+            <column name="KEYID" value="a6205bc6-e80f-41fb-9686-2940703eac96"/>
+            <column name="TITLE" value="Deliver opinion"/>
+            <column name="CONTAINER" value="SalesprojectPhase"/>
+            <column name="SORTING" valueNumeric="12"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="ee7de36d-b33b-4e5c-b750-5ec2798d2964"/>
+
+            <column name="KEYID" value="8ae1d693-667f-4412-aa1b-eb45c5437aa6"/>
+            <column name="TITLE" value="Specifications in progress"/>
+            <column name="CONTAINER" value="SalesprojectPhase"/>
+            <column name="SORTING" valueNumeric="13"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="1991320a-3e15-4ed3-867a-5c7c39a4cf4a"/>
+
+            <column name="KEYID" value="874efae4-aae1-467f-896c-09d8ffe1e7af"/>
+            <column name="TITLE" value="Waiting for requirements"/>
+            <column name="CONTAINER" value="SalesprojectPhase"/>
+            <column name="SORTING" valueNumeric="14"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="adb3d122-992c-4d00-88a8-c04ec6e15cd3"/>
+
+            <column name="KEYID" value="11a3e3d1-aad0-4673-982d-e2533b0b4de6"/>
+            <column name="TITLE" value="Lead"/>
+            <column name="CONTAINER" value="SalesprojectPhase"/>
+            <column name="SORTING" valueNumeric="15"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <rollback>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="b42caac9-8f8f-46e5-9f1c-d121cdf3ad8f" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="8a2d19c9-bc32-437e-9261-78ed30110e92" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="46f55a58-dbe4-40ae-9306-481df9095088" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="afa8cf58-07e8-4ee9-b24e-96cb6fa76aec" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="c9483fb9-c295-43d2-94e0-8c949cf6dc47" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="0e8eab64-4c79-4eed-9746-0ac6fc397620" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="405e2b7b-20c2-4824-a8b5-c7a533784ef3" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="f630f573-baae-4041-aeb0-41ff30ad188a" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="4895c091-f810-4c64-9bba-698c07a59c5e" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="b255450e-418c-41dd-be47-26c69aedbffa" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="de2e8c2a-ef34-4d62-8d65-a4ca530e7236" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="58f6b20b-0cae-4a1c-bb47-d2bfaab58df5" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="4f957f7d-173d-4450-8502-ba8dc3351db3" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="ee7de36d-b33b-4e5c-b750-5ec2798d2964" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="1991320a-3e15-4ed3-867a-5c7c39a4cf4a" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="adb3d122-992c-4d00-88a8-c04ec6e15cd3" />
+                </whereParams>
+            </delete>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_SalesprojectState.xml b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_SalesprojectState.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ce858a70d018230f40877955af88b26e8c2cfc5b
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_SalesprojectState.xml
@@ -0,0 +1,103 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="j.goderbauer" id="033b6fcb-53d9-4e23-8c29-4e739294a704">
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="c6eeab06-cec9-42c3-8f11-468c7e602de4"/>
+
+            <column name="KEYID" value="25b0ac77-ef92-4809-802e-bb9d8782f865"/>
+            <column name="TITLE" value="Open"/>
+            <column name="CONTAINER" value="SalesprojectState"/>
+            <column name="SORTING" valueNumeric="1"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="115495eb-dff4-436d-8114-b9a7644586bf"/>
+
+            <column name="KEYID" value="23d38486-4cce-41ce-a8df-164ad44df706"/>
+            <column name="TITLE" value="Postponed"/>
+            <column name="CONTAINER" value="SalesprojectState"/>
+            <column name="SORTING" valueNumeric="2"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="9212a797-4470-4170-b4d1-330a5d991625"/>
+
+            <column name="KEYID" value="8916e241-9452-4541-a323-d479ad5f2e4d"/>
+            <column name="TITLE" value="Aborted"/>
+            <column name="CONTAINER" value="SalesprojectState"/>
+            <column name="SORTING" valueNumeric="3"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="1f857be1-7de0-479f-bac8-59b22d48fe39"/>
+
+            <column name="KEYID" value="1606cf46-a87b-4797-830e-55ebdd70a001"/>
+            <column name="TITLE" value="Partial order"/>
+            <column name="CONTAINER" value="SalesprojectState"/>
+            <column name="SORTING" valueNumeric="4"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="19997ffa-bfe3-4f6a-82f8-e862acb24655"/>
+
+            <column name="KEYID" value="130bb53a-a97e-455e-8f34-8d445e985474"/>
+            <column name="TITLE" value="Order"/>
+            <column name="CONTAINER" value="SalesprojectState"/>
+            <column name="SORTING" valueNumeric="5"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="d8e2cc64-cc61-440e-b0fc-3d5b45d75ba0"/>
+
+            <column name="KEYID" value="d8a60f60-a4e6-46ee-88ec-bac53e1afedd"/>
+            <column name="TITLE" value="Lost"/>
+            <column name="CONTAINER" value="SalesprojectState"/>
+            <column name="SORTING" valueNumeric="6"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <rollback>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="c6eeab06-cec9-42c3-8f11-468c7e602de4" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="115495eb-dff4-436d-8114-b9a7644586bf" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="9212a797-4470-4170-b4d1-330a5d991625" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="1f857be1-7de0-479f-bac8-59b22d48fe39" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="19997ffa-bfe3-4f6a-82f8-e862acb24655" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="d8e2cc64-cc61-440e-b0fc-3d5b45d75ba0" />
+                </whereParams>
+            </delete>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_TaskPriority.xml b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_TaskPriority.xml
new file mode 100644
index 0000000000000000000000000000000000000000..aff35a4847b45ed0876ea7792fa44dca7a2bd2a8
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/AditoBasic/init_TaskPriority.xml
@@ -0,0 +1,132 @@
+<?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="a.veogl" id="e4867853-0540-4c9b-86b3-571ad81635bf">
+        <insert tableName="AB_KEYWORD_ATTRIBUTE">
+            <column name="AB_KEYWORD_ATTRIBUTEID" value="6b951c1e-a0fd-4dbf-b139-e7cda94851cf"/>
+
+            <column name="NAME" value="defaultAvatarRepresentation"/>
+            <column name="CONTAINER" value="TaskPriority"/>
+            <column name="TYPE" value="CHAR_VALUE"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="97ec9a7e-a1dd-4167-bf7d-57ee3d79d46f"/>
+
+            <column name="KEYID" value="f587f53a-72cc-4b76-9e39-276a26cab2e0"/>
+            <column name="TITLE" value="{$TASK_PRIORITY_NONE}"/>
+            <column name="CONTAINER" value="TaskPriority"/>
+            <column name="SORTING" valueNumeric="0"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="ed62c79d-01a3-48af-be71-e9bd42bd020c"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="97ec9a7e-a1dd-4167-bf7d-57ee3d79d46f"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="6b951c1e-a0fd-4dbf-b139-e7cda94851cf"/>
+            <column name="CHAR_VALUE" value="null"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="798c1720-901e-4eae-bab3-80f334830601"/>
+
+            <column name="KEYID" value="09072b59-d12f-469b-acbd-18a28232ff70"/>
+            <column name="TITLE" value="{$TASK_PRIORITY_LOW}"/>
+            <column name="CONTAINER" value="TaskPriority"/>
+            <column name="SORTING" valueNumeric="1"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="597f9ad7-66a6-4f99-b062-0985a88cd242"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="798c1720-901e-4eae-bab3-80f334830601"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="6b951c1e-a0fd-4dbf-b139-e7cda94851cf"/>
+            <column name="CHAR_VALUE" value="VAADIN:ARROW_DOWN"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="53a01187-5306-4980-8c40-153e910dd115"/>
+
+            <column name="KEYID" value="4467b33c-3a68-4c8b-ba4a-1eb666a6c774"/>
+            <column name="TITLE" value="{$TASK_PRIORITY_NORMAL}"/>
+            <column name="CONTAINER" value="TaskPriority"/>
+            <column name="SORTING" valueNumeric="2"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="9fbe3d17-0427-49b6-b303-180a846a3151"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="53a01187-5306-4980-8c40-153e910dd115"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="6b951c1e-a0fd-4dbf-b139-e7cda94851cf"/>
+            <column name="CHAR_VALUE" value="null"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="3d17defd-5b6e-4e19-816c-f9a19aca3cc0"/>
+
+            <column name="KEYID" value="1e42f183-fb97-415f-9917-b43ca159fde4"/>
+            <column name="TITLE" value="{$TASK_PRIORITY_HIGH}"/>
+            <column name="CONTAINER" value="TaskPriority"/>
+            <column name="SORTING" valueNumeric="3"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="9af27015-2dd6-4c87-a31f-b323bb16ad78"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="3d17defd-5b6e-4e19-816c-f9a19aca3cc0"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="6b951c1e-a0fd-4dbf-b139-e7cda94851cf"/>
+            <column name="CHAR_VALUE" value="VAADIN:EXCLAMATION"/>
+        </insert>
+        <rollback>
+            <delete tableName="AB_KEYWORD_ATTRIBUTE">
+                <where>AB_KEYWORD_ATTRIBUTEID = ?</where>
+                <whereParams>
+                    <param value="6b951c1e-a0fd-4dbf-b139-e7cda94851cf" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="97ec9a7e-a1dd-4167-bf7d-57ee3d79d46f" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="ed62c79d-01a3-48af-be71-e9bd42bd020c" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="798c1720-901e-4eae-bab3-80f334830601" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="597f9ad7-66a6-4f99-b062-0985a88cd242" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="53a01187-5306-4980-8c40-153e910dd115" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="9fbe3d17-0427-49b6-b303-180a846a3151" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="3d17defd-5b6e-4e19-816c-f9a19aca3cc0" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="9af27015-2dd6-4c87-a31f-b323bb16ad78" />
+                </whereParams>
+            </delete>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/CommunicationMedium.xml b/others/db_changes/data_alias/basic/2019.2/CommunicationMedium.xml
new file mode 100644
index 0000000000000000000000000000000000000000..41ec048e1ac61aff091825420e5dc45f7a453eba
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/CommunicationMedium.xml
@@ -0,0 +1,50 @@
+<?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="a.voegl" id="72dc4a28-da73-4c4a-bd7e-2fbedd0abe4a">
+        <renameColumn newColumnName="MEDIUM_OLD" oldColumnName="MEDIUM_ID" tableName="COMMUNICATION"/>
+	<addColumn tableName="COMMUNICATION">
+            <column name="MEDIUM_ID" type="CHAR(36)"/>
+	</addColumn> 
+        <update tableName="COMMUNICATION">
+            <column name="MEDIUM_ID" value="1a4b1ebe-cf06-4bc1-b7af-e4633d38dc79"/>
+            <where>MEDIUM_OLD = 0</where>
+        </update>
+        <update tableName="COMMUNICATION">
+            <column name="MEDIUM_ID" value="85ee16dd-c878-4463-be6a-324c25e76764"/>
+            <where>MEDIUM_OLD = 1</where>
+        </update>
+        <update tableName="COMMUNICATION">
+            <column name="MEDIUM_ID" value="2f48600a-5c3f-4201-a0c6-5ce1eb9fee13"/>
+            <where>MEDIUM_OLD = 2</where>
+        </update>
+        <update tableName="COMMUNICATION">
+            <column name="MEDIUM_ID" value="d08956b8-369e-4b65-88fa-1c37b3368ae3"/>
+            <where>MEDIUM_OLD = 3</where>
+        </update>
+        <dropColumn tableName="COMMUNICATION" columnName="MEDIUM_OLD"/>
+ 
+        <rollback>
+            <renameColumn newColumnName="MEDIUM_OLD" oldColumnName="MEDIUM_ID" tableName="COMMUNICATION"/>
+            <addColumn tableName="COMMUNICATION">
+                <column name="MEDIUM_ID" type="INTEGER"/>
+            </addColumn>   
+            <update tableName="COMMUNICATION">
+                <column name="MEDIUM_ID" valueNumeric="0"/>
+                <where>MEDIUM_OLD = '1a4b1ebe-cf06-4bc1-b7af-e4633d38dc79'</where>
+            </update>
+            <update tableName="COMMUNICATION">
+                <column name="MEDIUM_ID" valueNumeric="1"/>
+                <where>MEDIUM_OLD = '85ee16dd-c878-4463-be6a-324c25e76764'</where>
+            </update>
+            <update tableName="COMMUNICATION">
+                <column name="MEDIUM_ID" valueNumeric="2"/>
+                <where>MEDIUM_OLD = '2f48600a-5c3f-4201-a0c6-5ce1eb9fee13'</where>
+            </update>
+            <update tableName="COMMUNICATION">
+                <column name="MEDIUM_ID" valueNumeric="3"/>
+                <where>MEDIUM_OLD = 'd08956b8-369e-4b65-88fa-1c37b3368ae3'</where>
+            </update>
+            <dropColumn tableName="COMMUNICATION" columnName="MEDIUM_OLD"/>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/OfferProbability.xml b/others/db_changes/data_alias/basic/2019.2/OfferProbability.xml
new file mode 100644
index 0000000000000000000000000000000000000000..adaa2322a621e1a9b39869ef01f85bea37b912e7
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/OfferProbability.xml
@@ -0,0 +1,58 @@
+<?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="a.voegl" id="fa33c0ca-f311-45ab-b8ad-359241301584">
+        <renameColumn newColumnName="PROBABILITY_OLD" oldColumnName="PROBABILITY" tableName="OFFER"/>
+	<addColumn tableName="OFFER">
+            <column name="PROBABILITY" type="CHAR(36)"/>
+	</addColumn> 
+        <update tableName="OFFER">
+            <column name="PROBABILITY" value="834f814d-4e31-4289-be6c-fad2dea3f2f0"/>
+            <where>PROBABILITY_OLD = 1</where>
+        </update>
+        <update tableName="OFFER">
+            <column name="PROBABILITY" value="98ce5f41-90f5-434f-9e72-cdac4a0f5214"/>
+            <where>PROBABILITY_OLD = 2</where>
+        </update>
+        <update tableName="OFFER">
+            <column name="PROBABILITY" value="c510907f-8478-471e-b702-5008908504bd"/>
+            <where>PROBABILITY_OLD = 3</where>
+        </update>
+        <update tableName="OFFER">
+            <column name="PROBABILITY" value="2dca6f38-b49a-4716-8c83-9d2183c5c065"/>
+            <where>PROBABILITY_OLD = 4</where>
+        </update>
+        <update tableName="OFFER">
+            <column name="PROBABILITY" value="dc7c62fe-ce4b-41e3-91ab-ce0b740ccaeb"/>
+            <where>PROBABILITY_OLD = 5</where>
+        </update>
+        <dropColumn tableName="OFFER" columnName="PROBABILITY_OLD"/>
+ 
+        <rollback>
+            <renameColumn newColumnName="PROBABILITY_OLD" oldColumnName="PROBABILITY" tableName="OFFER"/>
+            <addColumn tableName="OFFER">
+                <column name="PROBABILITY" type="INTEGER"/>
+            </addColumn>   
+            <update tableName="OFFER">
+                <column name="PROBABILITY" valueNumeric="1"/>
+                <where>PROBABILITY_OLD = '834f814d-4e31-4289-be6c-fad2dea3f2f0'</where>
+            </update>
+            <update tableName="OFFER">
+                <column name="PROBABILITY" valueNumeric="2"/>
+                <where>PROBABILITY_OLD = '98ce5f41-90f5-434f-9e72-cdac4a0f5214'</where>
+            </update>
+            <update tableName="OFFER">
+                <column name="PROBABILITY" valueNumeric="3"/>
+                <where>PROBABILITY_OLD = 'c510907f-8478-471e-b702-5008908504bd'</where>
+            </update>
+            <update tableName="OFFER">
+                <column name="PROBABILITY" valueNumeric="4"/>
+                <where>PROBABILITY_OLD = '2dca6f38-b49a-4716-8c83-9d2183c5c065'</where>
+            </update>
+            <update tableName="OFFER">
+                <column name="PROBABILITY" valueNumeric="5"/>
+                <where>PROBABILITY_OLD = 'dc7c62fe-ce4b-41e3-91ab-ce0b740ccaeb'</where>
+            </update>
+            <dropColumn tableName="OFFER" columnName="PROBABILITY_OLD"/>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
diff --git a/others/db_changes/data_alias/basic/2019.2/SalesProjectEstimation.xml b/others/db_changes/data_alias/basic/2019.2/SalesProjectEstimation.xml
new file mode 100644
index 0000000000000000000000000000000000000000..740b8ccaf4323ccfc6a055e31a53f2c237f0830c
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/SalesProjectEstimation.xml
@@ -0,0 +1,106 @@
+<?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="a.voegl" id="41eb17e3-2e67-4d45-907a-a2762e29b50c">
+        <renameColumn newColumnName="ESTIMATIONVALUE_OLD" oldColumnName="ESTIMATIONVALUE" tableName="SALESPROJECT"/>
+	<addColumn tableName="SALESPROJECT">
+            <column name="ESTIMATIONVALUE" type="CHAR(36)"/>
+	</addColumn> 
+        <update tableName="SALESPROJECT">
+            <column name="ESTIMATIONVALUE" value="c6c49da4-80dc-4c32-b5b0-c33eac27de7f"/>
+            <where>ESTIMATIONVALUE_OLD = 1</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="ESTIMATIONVALUE" value="9237ee74-bb91-4333-8114-4485b35cf8d7"/>
+            <where>ESTIMATIONVALUE_OLD = 2</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="ESTIMATIONVALUE" value="e3e16d06-1390-4d84-81bd-c495a401cc70"/>
+            <where>ESTIMATIONVALUE_OLD = 3</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="ESTIMATIONVALUE" value="2ef3ac7d-72b8-43b3-9cc1-64ffdf43fe2f"/>
+            <where>ESTIMATIONVALUE_OLD = 4</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="ESTIMATIONVALUE" value="4b322f3f-815e-442e-ac63-a983f3efca6b"/>
+            <where>ESTIMATIONVALUE_OLD = 5</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="ESTIMATIONVALUE" value="3179371b-b647-4141-b575-3c26ce9f9213"/>
+            <where>ESTIMATIONVALUE_OLD = 6</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="ESTIMATIONVALUE" value="3088256a-f247-40cb-ad4e-33892cbf5ca3"/>
+            <where>ESTIMATIONVALUE_OLD = 7</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="ESTIMATIONVALUE" value="a2faa45e-bc7a-41f6-8130-7c7a636ddc9f"/>
+            <where>ESTIMATIONVALUE_OLD = 8</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="ESTIMATIONVALUE" value="d2e97e88-77fd-4fdb-8d5e-30807e2a40e2"/>
+            <where>ESTIMATIONVALUE_OLD = 9</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="ESTIMATIONVALUE" value="87fd87af-1cb6-40fb-843e-aee612862362"/>
+            <where>ESTIMATIONVALUE_OLD = 10</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="ESTIMATIONVALUE" value="5de71df0-5086-49b8-bd72-a2c0a698e134"/>
+            <where>ESTIMATIONVALUE_OLD = 11</where>
+        </update>
+        <dropColumn tableName="SALESPROJECT" columnName="ESTIMATIONVALUE_OLD"/>
+ 
+        <rollback>
+            <renameColumn newColumnName="ESTIMATIONVALUE_OLD" oldColumnName="ESTIMATIONVALUE" tableName="SALESPROJECT"/>
+            <addColumn tableName="SALESPROJECT">
+                <column name="ESTIMATIONVALUE" type="INTEGER"/>
+            </addColumn>   
+            <update tableName="SALESPROJECT">
+                <column name="ESTIMATIONVALUE" valueNumeric="1"/>
+                <where>ESTIMATIONVALUE_OLD = 'c6c49da4-80dc-4c32-b5b0-c33eac27de7f'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="ESTIMATIONVALUE" valueNumeric="2"/>
+                <where>ESTIMATIONVALUE_OLD = '9237ee74-bb91-4333-8114-4485b35cf8d7'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="ESTIMATIONVALUE" valueNumeric="3"/>
+                <where>ESTIMATIONVALUE_OLD = 'e3e16d06-1390-4d84-81bd-c495a401cc70'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="ESTIMATIONVALUE" valueNumeric="4"/>
+                <where>ESTIMATIONVALUE_OLD = '2ef3ac7d-72b8-43b3-9cc1-64ffdf43fe2f'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="ESTIMATIONVALUE" valueNumeric="5"/>
+                <where>ESTIMATIONVALUE_OLD = '4b322f3f-815e-442e-ac63-a983f3efca6b'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="ESTIMATIONVALUE" valueNumeric="6"/>
+                <where>ESTIMATIONVALUE_OLD = '3179371b-b647-4141-b575-3c26ce9f9213'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="ESTIMATIONVALUE" valueNumeric="7"/>
+                <where>ESTIMATIONVALUE_OLD = '3088256a-f247-40cb-ad4e-33892cbf5ca3'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="ESTIMATIONVALUE" valueNumeric="8"/>
+                <where>ESTIMATIONVALUE_OLD = 'a2faa45e-bc7a-41f6-8130-7c7a636ddc9f'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="ESTIMATIONVALUE" valueNumeric="9"/>
+                <where>ESTIMATIONVALUE_OLD = 'd2e97e88-77fd-4fdb-8d5e-30807e2a40e2'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="ESTIMATIONVALUE" valueNumeric="10"/>
+                <where>ESTIMATIONVALUE_OLD = '87fd87af-1cb6-40fb-843e-aee612862362'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="ESTIMATIONVALUE" valueNumeric="11"/>
+                <where>ESTIMATIONVALUE_OLD = '5de71df0-5086-49b8-bd72-a2c0a698e134'</where>
+            </update>
+            <dropColumn tableName="SALESPROJECT" columnName="ESTIMATIONVALUE_OLD"/>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/SalesProjectPhase.xml b/others/db_changes/data_alias/basic/2019.2/SalesProjectPhase.xml
new file mode 100644
index 0000000000000000000000000000000000000000..34cf2c7d6d48c86d198b85bda5af28d4d7174491
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/SalesProjectPhase.xml
@@ -0,0 +1,146 @@
+<?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="a.voegl" id="d748d3d3-762f-4b1d-bb2a-9035a7373ae6">
+        <renameColumn newColumnName="PHASE_OLD" oldColumnName="PHASE" tableName="SALESPROJECT"/>
+	<addColumn tableName="SALESPROJECT">
+            <column name="PHASE" type="CHAR(36)"/>
+	</addColumn> 
+        <update tableName="SALESPROJECT">
+            <column name="PHASE" value="9f7d1fa9-7c09-4037-8f7c-8458def14d89"/>
+            <where>PHASE_OLD = 1</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="PHASE" value="292628f1-d9a5-432d-8130-f6690c14a5d4"/>
+            <where>PHASE_OLD = 2</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="PHASE" value="4467b33c-3a68-4c8b-ba4a-1eb666a6c774"/>
+            <where>PHASE_OLD = 3</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="PHASE" value="1e42f183-fb97-415f-9917-b43ca159fde4"/>
+            <where>PHASE_OLD = 4</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="PHASE" value="972a41dc-a8ae-43cd-a03b-522ea84efbfb"/>
+            <where>PHASE_OLD = 5</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="PHASE" value="60d09bb1-7e02-4003-99bf-18b739a577ad"/>
+            <where>PHASE_OLD = 6</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="PHASE" value="213c8184-f930-457e-8605-703baaf21d4a"/>
+            <where>PHASE_OLD = 7</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="PHASE" value="4eb20149-3a76-4f5d-b8b7-9b529d8d564d"/>
+            <where>PHASE_OLD = 8</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="PHASE" value="00a104d7-3af4-4250-bad3-1288b9df8152"/>
+            <where>PHASE_OLD = 9</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="PHASE" value="ae5ecf72-3146-4d75-a7ff-7b628868672f"/>
+            <where>PHASE_OLD = 10</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="PHASE" value="2f2afad4-6f1f-47f9-9830-4cbae67f9dc1"/>
+            <where>PHASE_OLD = 11</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="PHASE" value="a6f57de3-02c2-44a8-9821-975b3a807b46"/>
+            <where>PHASE_OLD = 12</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="PHASE" value="a6205bc6-e80f-41fb-9686-2940703eac96"/>
+            <where>PHASE_OLD = 13</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="PHASE" value="8ae1d693-667f-4412-aa1b-eb45c5437aa6"/>
+            <where>PHASE_OLD = 14</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="PHASE" value="874efae4-aae1-467f-896c-09d8ffe1e7af"/>
+            <where>PHASE_OLD = 15</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="PHASE" value="11a3e3d1-aad0-4673-982d-e2533b0b4de6"/>
+            <where>PHASE_OLD = 16</where>
+        </update>
+        <dropColumn tableName="SALESPROJECT" columnName="PHASE_OLD"/>
+ 
+        <rollback>
+            <renameColumn newColumnName="PHASE_OLD" oldColumnName="PHASE" tableName="SALESPROJECT"/>
+            <addColumn tableName="SALESPROJECT">
+                <column name="PHASE" type="INTEGER"/>
+            </addColumn>   
+            <update tableName="SALESPROJECT">
+                <column name="PHASE" valueNumeric="1"/>
+                <where>PHASE_OLD = '9f7d1fa9-7c09-4037-8f7c-8458def14d89'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="PHASE" valueNumeric="2"/>
+                <where>PHASE_OLD = '292628f1-d9a5-432d-8130-f6690c14a5d4'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="PHASE" valueNumeric="3"/>
+                <where>PHASE_OLD = '4467b33c-3a68-4c8b-ba4a-1eb666a6c774'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="PHASE" valueNumeric="4"/>
+                <where>PHASE_OLD = '1e42f183-fb97-415f-9917-b43ca159fde4'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="PHASE" valueNumeric="5"/>
+                <where>PHASE_OLD = '972a41dc-a8ae-43cd-a03b-522ea84efbfb'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="PHASE" valueNumeric="6"/>
+                <where>PHASE_OLD = '60d09bb1-7e02-4003-99bf-18b739a577ad'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="PHASE" valueNumeric="7"/>
+                <where>PHASE_OLD = '213c8184-f930-457e-8605-703baaf21d4a'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="PHASE" valueNumeric="8"/>
+                <where>PHASE_OLD = '4eb20149-3a76-4f5d-b8b7-9b529d8d564d'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="PHASE" valueNumeric="9"/>
+                <where>PHASE_OLD = '00a104d7-3af4-4250-bad3-1288b9df8152'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="PHASE" valueNumeric="10"/>
+                <where>PHASE_OLD = 'ae5ecf72-3146-4d75-a7ff-7b628868672f'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="PHASE" valueNumeric="11"/>
+                <where>PHASE_OLD = '2f2afad4-6f1f-47f9-9830-4cbae67f9dc1'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="PHASE" valueNumeric="12"/>
+                <where>PHASE_OLD = 'a6f57de3-02c2-44a8-9821-975b3a807b46'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="PHASE" valueNumeric="13"/>
+                <where>PHASE_OLD = 'a6205bc6-e80f-41fb-9686-2940703eac96'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="PHASE" valueNumeric="14"/>
+                <where>PHASE_OLD = '8ae1d693-667f-4412-aa1b-eb45c5437aa6'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="PHASE" valueNumeric="15"/>
+                <where>PHASE_OLD = '874efae4-aae1-467f-896c-09d8ffe1e7af'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="PHASE" valueNumeric="16"/>
+                <where>PHASE_OLD = '11a3e3d1-aad0-4673-982d-e2533b0b4de6'</where>
+            </update>
+            <dropColumn tableName="SALESPROJECT" columnName="PHASE_OLD"/>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/SalesProjectPricePolitics.xml b/others/db_changes/data_alias/basic/2019.2/SalesProjectPricePolitics.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8153cc75b9bb9a40c4829c44a1648b3e30aaf43e
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/SalesProjectPricePolitics.xml
@@ -0,0 +1,42 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="a.voegl" id="99538b46-216c-4c4f-ae29-888742df56c1">
+        <renameColumn newColumnName="PRICE_POLITICS_OLD" oldColumnName="PRICE_POLITICS" tableName="ORGANISATION"/>
+	<addColumn tableName="ORGANISATION">
+            <column name="PRICE_POLITICS" type="CHAR(36)"/>
+	</addColumn> 
+        <update tableName="ORGANISATION">
+            <column name="PRICE_POLITICS" value="45339ba2-2412-4211-8865-43175dfac072"/>
+            <where>PRICE_POLITICS_OLD = 1</where>
+        </update>
+        <update tableName="ORGANISATION">
+            <column name="PRICE_POLITICS" value="b00a6be1-2926-4aa7-868c-6519f8e0043a"/>
+            <where>PRICE_POLITICS_OLD = 2</where>
+        </update>
+        <update tableName="ORGANISATION">
+            <column name="PRICE_POLITICS" value="983b01e3-68cf-4c97-a7ab-de636cf5ee83"/>
+            <where>PRICE_POLITICS_OLD = 3</where>
+        </update>
+        <dropColumn tableName="ORGANISATION" columnName="PRICE_POLITICS_OLD"/>
+ 
+        <rollback>
+            <renameColumn newColumnName="PRICE_POLITICS_OLD" oldColumnName="PRICE_POLITICS" tableName="ORGANISATION"/>
+            <addColumn tableName="ORGANISATION">
+                <column name="PRICE_POLITICS" type="INTEGER"/>
+            </addColumn>   
+            <update tableName="ORGANISATION">
+                <column name="PRICE_POLITICS" valueNumeric="1"/>
+                <where>PRICE_POLITICS_OLD = '45339ba2-2412-4211-8865-43175dfac072'</where>
+            </update>
+            <update tableName="ORGANISATION">
+                <column name="PRICE_POLITICS" valueNumeric="2"/>
+                <where>PRICE_POLITICS_OLD = 'b00a6be1-2926-4aa7-868c-6519f8e0043a'</where>
+            </update>
+            <update tableName="ORGANISATION">
+                <column name="PRICE_POLITICS" valueNumeric="3"/>
+                <where>PRICE_POLITICS_OLD = '983b01e3-68cf-4c97-a7ab-de636cf5ee83'</where>
+            </update>
+            <dropColumn tableName="ORGANISATION" columnName="PRICE_POLITICS_OLD"/>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
diff --git a/others/db_changes/data_alias/basic/2019.2/SalesProjectState.xml b/others/db_changes/data_alias/basic/2019.2/SalesProjectState.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2d71ed03849fc35bcd8f0036930b32ee2073540e
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/SalesProjectState.xml
@@ -0,0 +1,66 @@
+<?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="a.voegl" id="8de6cb0d-0dc3-4440-9ad9-a3c084b0d470">
+        <renameColumn newColumnName="STATE_OLD" oldColumnName="STATE" tableName="SALESPROJECT"/>
+	<addColumn tableName="SALESPROJECT">
+            <column name="STATE" type="CHAR(36)"/>
+	</addColumn> 
+        <update tableName="SALESPROJECT">
+            <column name="STATE" value="25b0ac77-ef92-4809-802e-bb9d8782f865"/>
+            <where>STATE_OLD = 1</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="STATE" value="23d38486-4cce-41ce-a8df-164ad44df706"/>
+            <where>STATE_OLD = 2</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="STATE" value="8916e241-9452-4541-a323-d479ad5f2e4d"/>
+            <where>STATE_OLD = 3</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="STATE" value="1606cf46-a87b-4797-830e-55ebdd70a001"/>
+            <where>STATE_OLD = 4</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="STATE" value="130bb53a-a97e-455e-8f34-8d445e985474"/>
+            <where>STATE_OLD = 5</where>
+        </update>
+        <update tableName="SALESPROJECT">
+            <column name="STATE" value="d8a60f60-a4e6-46ee-88ec-bac53e1afedd"/>
+            <where>STATE_OLD = 6</where>
+        </update>
+        <dropColumn tableName="SALESPROJECT" columnName="STATE_OLD"/>
+ 
+        <rollback>
+            <renameColumn newColumnName="STATE_OLD" oldColumnName="STATE" tableName="SALESPROJECT"/>
+            <addColumn tableName="SALESPROJECT">
+                <column name="STATE" type="INTEGER"/>
+            </addColumn>   
+            <update tableName="SALESPROJECT">
+                <column name="STATE" valueNumeric="1"/>
+                <where>STATE_OLD = '25b0ac77-ef92-4809-802e-bb9d8782f865'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="STATE" valueNumeric="2"/>
+                <where>STATE_OLD = '23d38486-4cce-41ce-a8df-164ad44df706'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="STATE" valueNumeric="3"/>
+                <where>STATE_OLD = '8916e241-9452-4541-a323-d479ad5f2e4d'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="STATE" valueNumeric="4"/>
+                <where>STATE_OLD = '1606cf46-a87b-4797-830e-55ebdd70a001'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="STATE" valueNumeric="5"/>
+                <where>STATE_OLD = '130bb53a-a97e-455e-8f34-8d445e985474'</where>
+            </update>
+            <update tableName="SALESPROJECT">
+                <column name="STATE" valueNumeric="6"/>
+                <where>STATE_OLD = 'd8a60f60-a4e6-46ee-88ec-bac53e1afedd'</where>
+            </update>
+            <dropColumn tableName="SALESPROJECT" columnName="STATE_OLD"/>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/SalesProjectStrength.xml b/others/db_changes/data_alias/basic/2019.2/SalesProjectStrength.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ae35aed7f007d357961742c22b4581c50277fe49
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/SalesProjectStrength.xml
@@ -0,0 +1,42 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="a.voegl" id="ed05d1c9-045e-43c8-bbca-5dacee2855ba">
+        <renameColumn newColumnName="STRENGTH_OLD" oldColumnName="STRENGTH" tableName="ORGANISATION"/>
+	<addColumn tableName="ORGANISATION">
+            <column name="STRENGTH" type="CHAR(36)"/>
+	</addColumn> 
+        <update tableName="ORGANISATION">
+            <column name="STRENGTH" value="a30e5d5c-88e2-4674-98d3-8a88622a62a8"/>
+            <where>STRENGTH_OLD = 0</where>
+        </update>
+        <update tableName="ORGANISATION">
+            <column name="STRENGTH" value="b5def5d7-a843-4e5e-b56e-e18e26fd0bc1"/>
+            <where>STRENGTH_OLD = 1</where>
+        </update>
+        <update tableName="ORGANISATION">
+            <column name="STRENGTH" value="2eda4875-53e6-4359-b367-464d006cf9b3"/>
+            <where>STRENGTH_OLD = 2</where>
+        </update>
+        <dropColumn tableName="ORGANISATION" columnName="STRENGTH_OLD"/>
+ 
+        <rollback>
+            <renameColumn newColumnName="STRENGTH_OLD" oldColumnName="STRENGTH" tableName="ORGANISATION"/>
+            <addColumn tableName="ORGANISATION">
+                <column name="STRENGTH" type="INTEGER"/>
+            </addColumn>   
+            <update tableName="ORGANISATION">
+                <column name="STRENGTH" valueNumeric="0"/>
+                <where>STRENGTH_OLD = 'a30e5d5c-88e2-4674-98d3-8a88622a62a8'</where>
+            </update>
+            <update tableName="ORGANISATION">
+                <column name="STRENGTH" valueNumeric="1"/>
+                <where>STRENGTH_OLD = 'b5def5d7-a843-4e5e-b56e-e18e26fd0bc1'</where>
+            </update>
+            <update tableName="ORGANISATION">
+                <column name="STRENGTH" valueNumeric="2"/>
+                <where>STRENGTH_OLD = '2eda4875-53e6-4359-b367-464d006cf9b3'</where>
+            </update>
+            <dropColumn tableName="ORGANISATION" columnName="STRENGTH_OLD"/>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/SalesProjectWeakness.xml b/others/db_changes/data_alias/basic/2019.2/SalesProjectWeakness.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1e3ff5dfb738ccdc6845350f0f43790de57c2486
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/SalesProjectWeakness.xml
@@ -0,0 +1,42 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="a.voegl" id="0b194aa7-44da-46d8-98f3-a4ab87b9fd0e">
+        <renameColumn newColumnName="WEAKNESS_OLD" oldColumnName="WEAKNESS" tableName="ORGANISATION"/>
+	<addColumn tableName="ORGANISATION">
+            <column name="WEAKNESS" type="CHAR(36)"/>
+	</addColumn> 
+        <update tableName="ORGANISATION">
+            <column name="WEAKNESS" value="316a1ef2-cdfd-476b-863c-faeb7d53305f"/>
+            <where>WEAKNESS_OLD = 1</where>
+        </update>
+        <update tableName="ORGANISATION">
+            <column name="WEAKNESS" value="558eb63d-f167-46c8-87b3-131e9cfacdcb"/>
+            <where>WEAKNESS_OLD = 2</where>
+        </update>
+        <update tableName="ORGANISATION">
+            <column name="WEAKNESS" value="6fea454d-55f3-4923-9e90-b8d24b7a48ae"/>
+            <where>WEAKNESS_OLD = 3</where>
+        </update>    
+        <dropColumn tableName="ORGANISATION" columnName="WEAKNESS_OLD"/>
+ 
+        <rollback>
+            <renameColumn newColumnName="WEAKNESS_OLD" oldColumnName="WEAKNESS" tableName="ORGANISATION"/>
+            <addColumn tableName="ORGANISATION">
+                <column name="WEAKNESS" type="INTEGER"/>
+            </addColumn>   
+            <update tableName="ORGANISATION">
+                <column name="WEAKNESS" valueNumeric="1"/>
+                <where>WEAKNESS_OLD = '316a1ef2-cdfd-476b-863c-faeb7d53305f'</where>
+            </update>
+            <update tableName="ORGANISATION">
+                <column name="WEAKNESS" valueNumeric="2"/>
+                <where>WEAKNESS_OLD = '558eb63d-f167-46c8-87b3-131e9cfacdcb'</where>
+            </update>
+            <update tableName="ORGANISATION">
+                <column name="WEAKNESS" valueNumeric="3"/>
+                <where>WEAKNESS_OLD = '6fea454d-55f3-4923-9e90-b8d24b7a48ae'</where>
+            </update>
+            <dropColumn tableName="ORGANISATION" columnName="WEAKNESS_OLD"/>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/TaskPriority.xml b/others/db_changes/data_alias/basic/2019.2/TaskPriority.xml
new file mode 100644
index 0000000000000000000000000000000000000000..44a9d53f2cc6896e99cb4c9421178e935c51a289
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/TaskPriority.xml
@@ -0,0 +1,49 @@
+<?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="a.voegl" id="d748d3d3-762f-4b1d-bb2a-9035a7373ae6">
+        <renameColumn newColumnName="PRIORITY_OLD" oldColumnName="PRIORITY" tableName="TASK"/>
+	<addColumn tableName="TASK">
+            <column name="PRIORITY" type="CHAR(36)"/>
+	</addColumn> 
+        <update tableName="TASK">
+            <column name="PRIORITY" value="f587f53a-72cc-4b76-9e39-276a26cab2e0"/>
+            <where>PRIORITY_OLD = 0</where>
+        </update>
+        <update tableName="TASK">
+            <column name="PRIORITY" value="09072b59-d12f-469b-acbd-18a28232ff70"/>
+            <where>PRIORITY_OLD = 1</where>
+        </update>
+        <update tableName="TASK">
+            <column name="PRIORITY" value="4467b33c-3a68-4c8b-ba4a-1eb666a6c774"/>
+            <where>PRIORITY_OLD = 2</where>
+        </update>
+        <update tableName="TASK">
+            <column name="PRIORITY" value="1e42f183-fb97-415f-9917-b43ca159fde4"/>
+            <where>PRIORITY_OLD = 3</where>
+        </update>
+        <dropColumn tableName="TASK" columnName="PRIORITY_OLD"/>
+        <rollback>
+            <renameColumn newColumnName="PRIORITY_OLD" oldColumnName="PRIORITY" tableName="TASK"/>
+            <addColumn tableName="TASK">
+                <column name="PRIORITY" type="INTEGER"/>
+            </addColumn>   
+            <update tableName="TASK">
+                <column name="PRIORITY" valueNumeric="0"/>
+                <where>PRIORITY_OLD = 'f587f53a-72cc-4b76-9e39-276a26cab2e0'</where>
+            </update>
+            <update tableName="TASK">
+                <column name="PRIORITY" valueNumeric="1"/>
+                <where>PRIORITY_OLD = '09072b59-d12f-469b-acbd-18a28232ff70'</where>
+            </update>
+            <update tableName="TASK">
+                <column name="PRIORITY" valueNumeric="2"/>
+                <where>PRIORITY_OLD = '4467b33c-3a68-4c8b-ba4a-1eb666a6c774'</where>
+            </update>
+            <update tableName="TASK">
+                <column name="PRIORITY" valueNumeric="3"/>
+                <where>PRIORITY_OLD = '1e42f183-fb97-415f-9917-b43ca159fde4'</where>
+            </update>
+            <dropColumn tableName="TASK" columnName="PRIORITY_OLD"/>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/changelog.xml b/others/db_changes/data_alias/basic/2019.2/changelog.xml
index 6677259879dd02f5fd5256bd666331a83fc8e3bc..223cc1acc83c715801c3c9429ce6e9220f2c3a9a 100644
--- a/others/db_changes/data_alias/basic/2019.2/changelog.xml
+++ b/others/db_changes/data_alias/basic/2019.2/changelog.xml
@@ -49,4 +49,27 @@
     <include relativeToChangelogFile="true" file="task_add_parent.xml"/>
     
     <include relativeToChangelogFile="true" file="drop_estimation_salesproject.xml"/>
-</databaseChangeLog>
\ No newline at end of file
+
+    <!--References to the Keyword Values-->
+    <include relativeToChangelogFile="true" file="OfferProbability.xml"/>
+    <include relativeToChangelogFile="true" file="ActivityCategory.xml"/>
+    <include relativeToChangelogFile="true" file="CommunicationMedium.xml"/>
+    <include relativeToChangelogFile="true" file="AddressType.xml"/>
+    <include relativeToChangelogFile="true" file="SalesProjectEstimation.xml"/>
+    <include relativeToChangelogFile="true" file="SalesProjectStrength.xml"/>
+    <include relativeToChangelogFile="true" file="SalesProjectPhase.xml"/>
+    <include relativeToChangelogFile="true" file="SalesProjectState.xml"/>
+    <include relativeToChangelogFile="true" file="SalesProjectWeakness.xml"/>
+    <include relativeToChangelogFile="true" file="SalesProjectPricePolitics.xml"/>
+    <include relativeToChangelogFile="true" file="TaskPriority.xml"/>
+       
+    <!--References to the reference files-->
+    <include relativeToChangelogFile="true" file="AditoBasic/init_OfferProbability.xml"/>
+    <include relativeToChangelogFile="true" file="AditoBasic/init_ActivityCategory.xml"/>
+    <include relativeToChangelogFile="true" file="AditoBasic/init_CommunicationMedium.xml"/>
+    <include relativeToChangelogFile="true" file="AditoBasic/init_AddressType.xml"/>
+    <include relativeToChangelogFile="true" file="AditoBasic/init_SalesProjectState.xml"/>
+    <include relativeToChangelogFile="true" file="AditoBasic/init_SalesProjectPhase.xml"/>
+    <include relativeToChangelogFile="true" file="AditoBasic/init_SalesprojectEstimation.xml"/>
+    <include relativeToChangelogFile="true" file="AditoBasic/init_TaskPriority.xml"/>
+</databaseChangeLog>
diff --git a/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod b/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod
index 581c9d3a6896bb001678073f2ebc276b89dd4112..8eebd273b16dbd3d55a1d322eb3cfba4472d2433 100644
--- a/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod
+++ b/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod
@@ -2,7 +2,7 @@
 <preferences xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="3.0.3" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/preferences/3.0.3">
   <name>_____PREFERENCES_PROJECT</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
-  <projectName>xRM-Basic2019</projectName>
+  <projectName>xRM-Basic 2019</projectName>
   <jditoMaxContentSize v="57671680" />
   <calendarCategoriesEvent>
     <entry>
diff --git a/process/Communication_lib/process.js b/process/Communication_lib/process.js
index f704ccfc6d6f2caa62fee555e5890d3b97abd4eb..50f6e2e7e153d3d37e54071a6645568527b2f7e0 100644
--- a/process/Communication_lib/process.js
+++ b/process/Communication_lib/process.js
@@ -6,6 +6,8 @@ import("system.net");
 import("system.mail");
 import("system.cti");
 import("Sql_lib");
+import("KeywordRegistry_basic");
+import("Keyword_lib");
 
 /**
  * provides static methods for Comm
@@ -22,11 +24,16 @@ function CommUtil(){}
  */
 CommUtil.getMediumIdsByCategory = function (pCategory)
 {
-    var kwd = LegacyKeywordUtils.createKeyword("COMMUNICATION.MEDIUM");
-    kwd.filter(function(id, name, customs){
-        return customs.category == pCategory;
-    });
-    var mediumIds = kwd.toArray("id");
+    var keywordAttr = new KeywordAttribute($KeywordRegistry.communicationMedium(), "category");
+    //TODO: waiting for load entity via JDito
+    var sql = SqlCondition.begin()
+                            .andPrepare("AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ATTRIBUTE_ID", keywordAttr.id)
+                            .andPrepare("AB_KEYWORD_ATTRIBUTERELATION." + keywordAttr.dbField, pCategory)
+                            .buildSql("select AB_KEYWORD_ENTRY.KEYID \n\
+                                        from AB_KEYWORD_ATTRIBUTERELATION \n\
+                                        join AB_KEYWORD_ENTRY on AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID = AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ENTRY_ID");
+
+    var mediumIds = db.array(db.COLUMN, sql);
     return mediumIds;
 };
 
@@ -99,23 +106,23 @@ CommUtil.setStandardMail = function(pAffectedRowId, pNewStandardCommId)
 /**
  * returns a sub sql-string (without bracets) for getting the standard address of a COMMUNICATION
  * @param {String} pCategory value of the keyword "COMMUNICATION.MEDIUM" custom.category; e.g. "PHONE"
- * @param {String|SqlCondition} [pRelationField=CONTACT.CONTACTID] SQL-fieldname that shall be used for filtering the CONTACT_ID, this can be a string(fieldname) or an SqlCondition object
+ * @param {String|SqlCondition} [pContactField=CONTACT.CONTACTID] SQL-fieldname that shall be used for filtering the CONTACT_ID, this can be a string(fieldname) or an SqlCondition object
  * @return {String} sub-sql
  */
-CommUtil.getStandardSubSqlForCategory = function(pCategory, pRelationField)
+CommUtil.getStandardSubSqlForCategory = function(pCategory, pContactField)
 {
     if (!pCategory)
         return "''";
     
     var cond = SqlCondition.begin();
-    if (pRelationField == undefined)
+    if (pContactField == undefined)
         cond.and("COMMUNICATION.CONTACT_ID = CONTACT.CONTACTID");
     else if (typeof(pRelationField) == "string")
-        cond.andPrepare("COMMUNICATION.CONTACT_ID", pRelationField);
+        cond.andPrepare("COMMUNICATION.CONTACT_ID", pContactField);
     else if (typeof(pRelationField) == "object")
     {
         //you may want to sepcify a concrete value
-        cond.andSqlCondition(pRelationField, "1=2");
+        cond.andSqlCondition(pContactField, "1=2");
     }
     else
         return "''";//TODO: throw error
@@ -139,22 +146,22 @@ CommUtil.getStandardSubSqlForCategory = function(pCategory, pRelationField)
 
 /**
  * returns a sub sql-string (without bracets) for getting the standard address of a PHONE-COMMUNICATION
- * @param {String|SqlCondition} [pRelationField=CONTACT.CONTACTID] SQL-fieldname that shall be used for filtering the CONTACT_ID, this can be a string(fieldname) or an SqlCondition object
+ * @param {String|SqlCondition} [pContactField=CONTACT.CONTACTID] SQL-fieldname that shall be used for filtering the CONTACT_ID, this can be a string(fieldname) or an SqlCondition object
  * @return {String} sub-sql
  */
-CommUtil.getStandardSubSqlPhone = function(pRelationField)
+CommUtil.getStandardSubSqlPhone = function(pContactField)
 {
-    return CommUtil.getStandardSubSqlForCategory("PHONE", pRelationField);
+    return CommUtil.getStandardSubSqlForCategory("PHONE", pContactField);
 };
 
 /**
  * returns a sub sql-string (without bracets) for getting the standard address of a EMAIL-COMMUNICATION
- * @param {String|SqlCondition} [pRelationField=CONTACT.CONTACTID] SQL-fieldname that shall be used for filtering the CONTACT_ID, this can be a string(fieldname) or an SqlCondition object
+ * @param {String|SqlCondition} [pContactField=CONTACT.CONTACTID] SQL-fieldname that shall be used for filtering the CONTACT_ID, this can be a string(fieldname) or an SqlCondition object
  * @return {String} sub-sql
  */
-CommUtil.getStandardSubSqlMail= function(pRelationField)
+CommUtil.getStandardSubSqlMail= function(pContactField)
 {
-    return CommUtil.getStandardSubSqlForCategory("EMAIL", pRelationField);
+    return CommUtil.getStandardSubSqlForCategory("EMAIL", pContactField);
 };
 
 /**
diff --git a/process/KeywordRegistry_basic/KeywordRegistry_basic.aod b/process/KeywordRegistry_basic/KeywordRegistry_basic.aod
new file mode 100644
index 0000000000000000000000000000000000000000..075cdf4574dd82db7b2096fd9c339fd19588ba5b
--- /dev/null
+++ b/process/KeywordRegistry_basic/KeywordRegistry_basic.aod
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.7" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.1.7">
+  <name>KeywordRegistry_basic</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <process>%aditoprj%/process/KeywordRegistry_basic/process.js</process>
+</process>
diff --git a/process/KeywordRegistry_basic/process.js b/process/KeywordRegistry_basic/process.js
new file mode 100644
index 0000000000000000000000000000000000000000..6d8a44d2954a8733e03de4ad59b7da5bf78d3929
--- /dev/null
+++ b/process/KeywordRegistry_basic/process.js
@@ -0,0 +1,58 @@
+/**
+ * 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
+ * 
+ * Not every KeywordContainer that exists has to be listed here (e.g. dynamic created keywords) but every keyword-container-name that is used within
+ * JDito code should be listed here
+ * 
+ * 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
+ * 
+ * @example
+ * $KeywordRegistry.activityDirection()
+ */
+function $KeywordRegistry(){}
+
+$KeywordRegistry.attributeType = function(){return "AttributeType"};
+$KeywordRegistry.keywordAttributeType = function(){return "KeywordAttributeType"};
+$KeywordRegistry.contractPayment = function(){return "ContractPayment"};
+$KeywordRegistry.contractStatus = function(){return "ContractStatus"};
+$KeywordRegistry.contractType = function(){return "ContractType"};
+$KeywordRegistry.activityDirection = function(){return "ActivityDirection"};
+
+$KeywordRegistry.contactStatus = function(){return "ContactStatus"};
+$KeywordRegistry.contactStatus$active = function(){return "BSIC0rel-stat-actv-ae03-b6b04430e90b"};
+
+$KeywordRegistry.currency = function(){return "Currency"};
+$KeywordRegistry.productGroupcode = function(){return "ProductGroupcode"};
+$KeywordRegistry.offerStatus = function(){return "OfferStatus"};
+$KeywordRegistry.organisationType = function(){return "OrganisationType"};
+$KeywordRegistry.personGender = function(){return "PersonGender"};
+$KeywordRegistry.taskStatus = function(){return "TaskStatus"};
+$KeywordRegistry.taskType = function(){return "TaskType"};
+
+$KeywordRegistry.productPricelist = function(){return "ProductPricelist"};
+$KeywordRegistry.productPricelist$standardList = function(){return "02553fc7-4611-4914-8ff5-0b7c4e7531c9"};
+
+$KeywordRegistry.quantityUnit = function(){return "QuantityUnit"};
+$KeywordRegistry.salesprojectMemberRole = function(){return "SalesprojectMemberRole"};
+$KeywordRegistry.salesprojectSource = function(){return "SalesprojectSource"};
+$KeywordRegistry.salesorderState = function(){return "SalesorderState"};
+$KeywordRegistry.salesprojectWonLost = function(){return "SalesprojectWonLost"};
+$KeywordRegistry.stockWarehouse = function(){return "StockWarehouse"};
+$KeywordRegistry.salesprojectProbability = function(){return "SalesprojectProbability"};
+$KeywordRegistry.activityCategory = function(){return "ActivityCategory"};
+$KeywordRegistry.addressType = function(){return "AddressType"};
+$KeywordRegistry.offerProbability = function(){return "OfferProbability"};
+$KeywordRegistry.communicationMedium = function(){return "CommunicationMedium"};
+$KeywordRegistry.salesprojectPricePolitics = function(){return "SalesprojectPricePolitics"};
+$KeywordRegistry.salesprojectWeakness = function(){return "SalesprojectWeakness"};
+$KeywordRegistry.salesprojectStrenght = function(){return "SalesprojectStrenght"};
+$KeywordRegistry.salesprojectEstimation = function(){return "SalesprojectEstimation"};
+$KeywordRegistry.salesprojectState = function(){return "SalesprojectState"};
+$KeywordRegistry.salesprojectPhase = function(){return "SalesprojectPhase"};
+$KeywordRegistry.taskPriority = function(){return "TaskPriority"};
\ No newline at end of file
diff --git a/process/Keyword_lib/process.js b/process/Keyword_lib/process.js
index d727fa79f4bee63c63a9deb2058a268e9c0149d4..a40a3dd0d3c78acd350c07fc400b3c812cb75abd 100644
--- a/process/Keyword_lib/process.js
+++ b/process/Keyword_lib/process.js
@@ -5,51 +5,6 @@ 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
- * 
- * Not every KeywordContainer that exists has to be listed here (e.g. dynamic created keywords) but every keyword-container-name that is used within
- * JDito code should be listed here
- * 
- * 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 = {
-    AttributeType: "AttributeType",
-    KeywordAttributeType: "KeywordAttributeType",
-    ContractPayment: "ContractPayment",
-    ContractStatus: "ContractStatus",
-    ContractType: "ContractType",
-    ActivityDirection: "ActivityDirection",
-    ContactStatus: "ContactStatus",
-    Currency: "Currency",
-    ProductGroupcode: "ProductGroupcode",
-    OfferStatus: "OfferStatus",
-    OrganisationType: "OrganisationType",
-    PersonGender: "PersonGender",
-    TaskStatus: "TaskStatus",
-    TaskType: "TaskType",
-    ProductPricelist: "ProductPricelist",
-    QuantityUnit: "QuantityUnit",
-    SalesprojectMemberRole: "SalesprojectMemberRole",
-    SalesprojectSource: "SalesprojectSource",
-    SalesorderState: "SalesorderState",
-    SalesprojectWonLost: "SalesprojectWonLost",
-    StockWarehouse: "StockWarehouse",
-    SalesprojectProbability: "SalesprojectProbability",
-    
-    "null": null
-};
-Object.freeze($KeywordRegistry.get);
-
 /**
  * provides methods for interactions with keywords
  * 
@@ -107,14 +62,45 @@ KeywordUtils.getViewValue = function(keywordContainer, key)
  * @return {Object} key-value-pair of the keyword-attributes; contains all attribute-keys for the keywords-entries container; 
  *                                  if there is no value set for a key the null-value is given
  */
-KeywordUtils.getKeywordAttributeRelations = function (pEntryId)
+KeywordUtils.getAttributeRelationsByEntryId = function(pEntryId)
 {
-    var sql = SqlCondition.begin()
-        .andPrepare("AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID", pEntryId)
-        .buildSql("select AB_KEYWORD_ATTRIBUTE.NAME, AB_KEYWORD_ATTRIBUTE.TYPE, \n\
+    var cond = SqlCondition.begin()
+                           .andPrepare("AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID", pEntryId);
+
+    return KeywordUtils._getKeywordAttributeRelations(cond);
+};
+
+/**
+ * collects possible and defined keyword-attributes per keyword entry and returns them
+ * 
+ * @param {String} pKeyId the key of an element within a containerName - this is the value that is stored in the reference-table (e.g. "DE")
+ * @param {String} pContainerName specifies the type of the keyword and therefore the list elements;
+ *                                  e.g. "COUNTRY"; use an entry of the $KeywordRegistry here
+ * @return {Object} key-value-pair of the keyword-attributes; contains all attribute-keys for the keywords-entries container; 
+ *                                  if there is no value set for a key the null-value is given
+ */
+KeywordUtils.getAttributeRelationsByKey = function(pKeyId, pContainerName)
+{
+    var cond = SqlCondition.begin()
+                           .andPrepare("AB_KEYWORD_ENTRY.KEYID", pKeyId)
+                           .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", pContainerName);
+
+    return KeywordUtils._getKeywordAttributeRelations(cond);
+};
+
+/**
+ * internal function that collects possible and defined keyword-attributes per keyword entry and returns them
+ * 
+ * @param {SqlCondition} pSqlCondition condition that shrinks a resultset to one AB_KEYWORD_ENTRY
+ * @return {Object} SQL-Condition object that filters
+ */
+KeywordUtils._getKeywordAttributeRelations = function (pSqlCondition)
+{
+    var cond = pSqlCondition;
+    var sql = cond.buildSql("select AB_KEYWORD_ATTRIBUTE.NAME, AB_KEYWORD_ATTRIBUTE.TYPE, \n\
                 AB_KEYWORD_ATTRIBUTERELATION.CHAR_VALUE, AB_KEYWORD_ATTRIBUTERELATION.NUMBER_VALUE, AB_KEYWORD_ATTRIBUTERELATION.BOOL_VALUE \n\
                 from AB_KEYWORD_ENTRY \n\
-                left join AB_KEYWORD_ATTRIBUTE on (AB_KEYWORD_ATTRIBUTE.CONTAINER = AB_KEYWORD_ENTRY.CONTAINER) \n\
+                join AB_KEYWORD_ATTRIBUTE on (AB_KEYWORD_ATTRIBUTE.CONTAINER = AB_KEYWORD_ENTRY.CONTAINER) \n\
                 left join AB_KEYWORD_ATTRIBUTERELATION \n\
                     on (AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ATTRIBUTE_ID = AB_KEYWORD_ATTRIBUTE.AB_KEYWORD_ATTRIBUTEID\n\
                         and AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ENTRY_ID = AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID)");
@@ -147,7 +133,6 @@ KeywordUtils.getKeywordAttributeRelations = function (pEntryId)
     return res;
 };
 
-
 /**
 * provides a distinctive list of all keyword-container-names in the system
 * 
@@ -159,6 +144,34 @@ KeywordUtils.getContainerNames = function()
     return list;
 };
 
+/**
+ * object that provides featrues for a single keyword attribute; initalizes itself on creation with a specific keyword-attribute
+ * 
+ * @param {String} pContainerName specifies the type of the keyword and therefore the list elements;
+ *                                  e.g. "COUNTRY"; use an entry of the $KeywordRegistry here
+ * @param {String} pAttributeName the name of the keyword attribute that shall be initalized
+ * 
+ * @class
+ */
+function KeywordAttribute(pContainerName, pAttributeName)
+{
+    this.container = pContainerName;
+    this.attribute = pAttributeName;
+    
+    var sql  = SqlCondition.begin()
+                           .andPrepare("AB_KEYWORD_ATTRIBUTE.CONTAINER", pContainerName)
+                           .andPrepare("AB_KEYWORD_ATTRIBUTE.NAME", pAttributeName)
+                           .buildSql("select AB_KEYWORD_ATTRIBUTE.AB_KEYWORD_ATTRIBUTEID, AB_KEYWORD_ATTRIBUTE.TYPE from AB_KEYWORD_ATTRIBUTE");
+    
+    var keywordAttrData = db.array(db.ROW, sql);
+    
+    if (keywordAttrData.length == 0)
+        throw new Error(translate.withArguments("no keyword attribute \"%0\" found in keyword container \"%1\"", this.attribute, this.container));
+    
+    this.id = keywordAttrData[0];
+    this.type = keywordAttrData[1];
+    this.dbField = this.type.trim();
+}
 
 /**
  * provides methods for interactions with the sepcial-keywords "LANGUAGE"
diff --git a/process/Offer_lib/process.js b/process/Offer_lib/process.js
index 716a56fb2ae06122dde7cf8903132805185f100f..6cf2ac0f1641836470f3adc8b34c6306761ba91d 100644
--- a/process/Offer_lib/process.js
+++ b/process/Offer_lib/process.js
@@ -14,6 +14,7 @@ import("Report_lib");
 import("OfferOrder_lib");
 import("PostalAddress_lib");
 import("Neon_lib");
+import("KeywordRegistry_basic");
 
 /**
  * Methods used by Offer.
@@ -137,7 +138,7 @@ OfferUtils.openOfferReport = function(pOfferID)
     var rptdata = db.table(offerCondition.buildSql("select " + fields.join(", ") + offerFromSql, "1 = 0"));
     
     //TODO: use new keyword logic for language when possible
-    var language = "DE"; // LegacyKeywordUtils.get("LANGUAGE", rptdata[0][2])[1];
+    var language = "DE";
     var relid = rptdata[0][1];
     
     // TODO: AddrObject implementieren
@@ -190,7 +191,7 @@ OfferUtils.openOfferReport = function(pOfferID)
             row[25], //offercode
             text.formatDouble(row[26], translate.text("#,##0.00"), true),    //vat
             text.formatDouble(itemSum, translate.text("#,##0.00"), true),    //itemsum
-            KeywordUtils.getViewValue($KeywordRegistry.get.QuantityUnit, row[19]) //unittext
+            KeywordUtils.getViewValue($KeywordRegistry.quantityUnit(), row[19]) //unittext
         ];
     });
     
diff --git a/process/Organisation_lib/process.js b/process/Organisation_lib/process.js
index 793d7d0ecd7b102a8129224553d64550e086a057..78565ea988c6a42ebea90bbed1b9420d8947f642 100644
--- a/process/Organisation_lib/process.js
+++ b/process/Organisation_lib/process.js
@@ -6,6 +6,8 @@ import("Report_lib");
 import("Sql_lib");
 import("Keyword_lib");
 import("PostalAddress_lib");
+import("Communication_lib");
+import("KeywordRegistry_basic");
 
 /**
  * a static Utility class for the Org context.
@@ -75,47 +77,28 @@ OrgUtils.openOrgReport = function(pOrgId)
     //resolve keyword
     commData.forEach(function (row)
     {
-        row[0] = LegacyKeywordUtils.getViewValue("COMMUNICATION.MEDIUM", row[0]);
+        row[0] = KeywordUtils.getViewValue($KeywordRegistry.communicationMedium(), row[0]);
     });
     commData = ReportData.begin(["KINDOFCOMM", "COMMVALUE"]).add(commData);
     
     //select people from the organization
-    //TODO: Position und Abteilung fehlen noch
-    var persSql = "select SALUTATION, TITLE, FIRSTNAME, LASTNAME, '', '', '', ORGANISATION_ID, CONTACTID"
-        + " from PERSON join CONTACT on PERSONID = PERSON_ID";
+    
+    var persSql = "select SALUTATION, TITLE, FIRSTNAME, LASTNAME "
+        + ",'' as PERSFUNCITON, '' as PERSDEPARTMENT "//TODO: Position und Abteilung fehlen noch
+        + ",(" + CommUtil.getStandardSubSqlMail() + ")"
+        + ",(" + CommUtil.getStandardSubSqlPhone() + ")"
+        + ",ORGANISATION_ID, CONTACTID "
+        + "from PERSON join CONTACT on PERSONID = PERSON_ID";
     persSql = SqlCondition.begin()
         .andPrepare("CONTACT.ORGANISATION_ID", pOrgId)
-        .and("CONTACT.STATUS = 'BSIC0rel-stat-actv-ae03-b6b04430e90b'") //TODO: replace this with something that isn't a hard coded id
+        .and("CONTACT.STATUS = '" + $KeywordRegistry.contactStatus$active() + "'") //TODO: replace this with something that isn't a hard coded id
         .buildSql(persSql, "", " order by PERSON.LASTNAME asc");
     var persData = db.table(persSql);
     
-    //TODO: get the keywords in another way when keywords are entitys
-    var mediumIds = [];
-    var mediums = LegacyKeywordUtils.getStandardArrayProps("COMMUNICATION.MEDIUM");
-    for (let i = 0; i < mediums.length; i++)
-        if ("category" in mediums[i][2] && (mediums[i][2].category == "PHONE" || mediums[i][2].category == "EMAIL"))
-            mediumIds.push(mediums[i][0]);
-    mediums = mediumIds.join(", ");
-    
     for (let i = 0; i < persData.length; i++)
     {
         _joinArrayVals(persData[i], 0, 4); //join the full name together
-        
-        //select the contact info for every person for phone and mail
-        var persCommSql = "select MEDIUM_ID, ADDR from COMMUNICATION";
-        persCommSql = SqlCondition.begin()
-            .andPrepare("COMMUNICATION.CONTACT_ID", persData[i][5])
-            .and("MEDIUM_ID in (" + mediumIds + ")")
-            .and("STANDARD = 1")
-            .buildSql(persCommSql);
-        var persDataComm = db.table(persCommSql);
-        
-        //resolve keyword
-        persData[i][3] = persDataComm.map(function (row)
-            {
-                return LegacyKeywordUtils.getViewValue("COMMUNICATION.MEDIUM", row[0]) + ": " + row[1];
-            }
-        ).join("\n");
+        _joinArrayVals(persData[i], 3, 2, "\n"); //join communication together
     }
     persData = ReportData.begin(["PERSNAMECOMPLETE", "PERSFUNCTION", "PERSDEPARTMENT", "PERSCOMM", "ORGANISATION_ID", "CONTACT_ID"]).add(persData);
 
@@ -132,7 +115,7 @@ OrgUtils.openOrgReport = function(pOrgId)
     histData.forEach(function (row) 
     {
         row[0] = datetime.toDate(row[0], dateFormat);
-        row[1] = LegacyKeywordUtils.getViewValue("ACTIVITY.CATEGORY", row[1]);
+        row[1] = KeywordUtils.getViewValue($KeywordRegistry.activityCategory(), row[1]);
         _joinArrayVals(row, 2, 2);
     });
     histData = ReportData.begin(["ENTRYDATE", "MEDIUM", "LOGIN", "INFO"]).add(histData);
@@ -151,7 +134,7 @@ OrgUtils.openOrgReport = function(pOrgId)
     
     taskData.forEach(function (row) 
     {
-        row[2] = KeywordUtils.getViewValue($KeywordRegistry.get.TaskStatus, row[2]);
+        row[2] = KeywordUtils.getViewValue($KeywordRegistry.taskStatus(), row[2]);
         _joinArrayVals(row, 3, 2); //join FIRSTNAME and LASTNAME together
     });
     taskData = ReportData.begin(["SUBJECT", "INFOTEXT", "STATUS", "RESPONSIBLE"]).add(taskData);
@@ -184,10 +167,12 @@ OrgUtils.openOrgReport = function(pOrgId)
     /*
      * merges multiple columns in an two-dimensional array into one
      */
-    function _joinArrayVals (pArr, pIndex, pHowMany)
+    function _joinArrayVals (pArr, pIndex, pHowMany, pJoinSeparator)
     {
+        if (pJoinSeparator == undefined)
+            pJoinSeparator = " ";
         pArr.splice(pIndex, pHowMany, 
             pArr.slice(pIndex, pIndex + pHowMany)
-                .filter(function (val) {return val;}).join(" "));
+                .filter(function (val) {return val;}).join(pJoinSeparator));
     }
 }
\ No newline at end of file
diff --git a/process/PostalAddress_lib/process.js b/process/PostalAddress_lib/process.js
index 8d31f07afec4252a16224dd689792654c647187c..c18e69398a84f6f99591b495c4d5622167679884 100644
--- a/process/PostalAddress_lib/process.js
+++ b/process/PostalAddress_lib/process.js
@@ -1,3 +1,4 @@
+import("KeywordRegistry_basic");
 import("system.db");
 import("Sql_lib");
 import("Contact_lib");
@@ -137,7 +138,7 @@ AddressUtils.getAllPossibleAddresses = function(pRelationId) {
                                                      .buildSql("select ADDRESSID, ADDR_TYPE, ADDRIDENTIFIER from ADDRESS join CONTACT on CONTACTID = CONTACT_ID or CONTACT_ID = ORGANISATION_ID", "1=0"));
                                                      
     return addresses.map(function(pAddress) {
-        return [pAddress[0], LegacyKeywordUtils.get("ADDRESS.TYPE", pAddress[1])[1] + " " + pAddress[2]]
+        return [pAddress[0], KeywordUtils.getViewValue($KeywordRegistry.addressType(), pAddress[1]) + ": " + pAddress[2]];
     });
 }
 
diff --git a/process/Product_lib/process.js b/process/Product_lib/process.js
index 217d65e53246c9cedf00aac7915c2791c2da7d36..33c29bed91e7e06274fb6acb36c78b445aa03ca3 100644
--- a/process/Product_lib/process.js
+++ b/process/Product_lib/process.js
@@ -4,6 +4,7 @@ import("system.datetime");
 import("system.db");
 import("system.vars");
 import("system.translate");
+import("KeywordRegistry_basic");
 import("Util_lib");
 import("Binary_lib");
 import("Sql_lib");
@@ -44,7 +45,7 @@ ProductUtils.getCurrentProductPrice = function(pid, buySell) {
         var productPriceData = db.array(db.ROW, actualPriceCondition.buildSql("select PRICE, CURRENCY from PRODUCTPRICE", "1 = 2", "order by VALID_FROM desc"));
         
         if (productPriceData[0] && productPriceData[1])
-            return  productPriceData[0] + " " + LegacyKeywordUtils.get("CURRENCY", productPriceData[1])[1];
+            return  productPriceData[0] + " " + KeywordUtils.getViewValue($KeywordRegistry.currency(), productPriceData[1]);
         else
             return "";
     } else {
@@ -272,7 +273,7 @@ ProductUtils.getProductDetails = function(pid, priceListFilter, additionalProduc
                 return priceLists[list];
             }
             //default price list
-            if (priceLists[list].priceList == "1") {
+            if (priceLists[list].priceList == $KeywordRegistry.productPricelist$standardList()) {
                 return priceLists[list];
             }
         }
diff --git a/process/Sql_lib/process.js b/process/Sql_lib/process.js
index 05a07d2c9a1c9baeecaab65bd05a1e93044257bf..98e631dea84403ba8da2969a74db4a5247d1a0d3 100644
--- a/process/Sql_lib/process.js
+++ b/process/Sql_lib/process.js
@@ -1208,7 +1208,7 @@ SqlUtils.getResolvingCaseWhen = function(pKeyValueArray, pDbFieldName, pLocale)
 {
     var keyData = pKeyValueArray;
     if (keyData.length == 0)
-        return  ["''"];
+        return  ["''", []];
     
     //a helper function for easy translation
     var translateValue = function(value){
diff --git a/report/RPTJ_OFFER/reportData.jrxml b/report/RPTJ_OFFER/reportData.jrxml
index cc52933641c4cd1a47ce046eb76845e4862a400d..5ec99598ff792d80e04f6bf6c47bbeaa33708d1a 100644
--- a/report/RPTJ_OFFER/reportData.jrxml
+++ b/report/RPTJ_OFFER/reportData.jrxml
@@ -2,7 +2,7 @@
 <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report1" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="e7a916c8-3f9a-497d-84bb-3909b15271ea">
 	<property name="ireport.zoom" value="1.771561000000001"/>
 	<property name="ireport.x" value="0"/>
-	<property name="ireport.y" value="113"/>
+	<property name="ireport.y" value="0"/>
 	<parameter name="myAddr" class="java.lang.String"/>
 	<parameter name="Pos" class="java.lang.String"/>
 	<parameter name="Artikelbezeichnung" class="java.lang.String"/>
@@ -24,7 +24,7 @@
 	<parameter name="OFFERDel" class="java.lang.String"/>
 	<parameter name="AD_Name" class="java.lang.String"/>
 	<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
-		<defaultValueExpression><![CDATA["C:\\entwicklungszweige\\0.0\\project\\xRM-Basic2019\\report\\RPTJ_OFFER\\"]]></defaultValueExpression>
+		<defaultValueExpression><![CDATA["C:\\Users\\a.voegl\\Documents\\AditoProjects\\xRM-Basic 2019\\report\\RPTJ_OFFER\\"]]></defaultValueExpression>
 	</parameter>
 	<parameter name="adito.datasource.subdata" class="java.lang.Object"/>
 	<parameter name="SUMITEMSUM" class="java.lang.Double"/>