diff --git a/entity/Keyword_entity/Keyword_entity.aod b/entity/Keyword_entity/Keyword_entity.aod
index fef0c9e712b43157c0b422254e1334bafa2dc4af..dcce9447b41b5c14719d0b7f6110fb8d5636f5e8 100644
--- a/entity/Keyword_entity/Keyword_entity.aod
+++ b/entity/Keyword_entity/Keyword_entity.aod
@@ -214,6 +214,18 @@
           <fieldName>KeywordStates</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>59546343-9f48-4437-a829-e7715e860a7d</name>
+          <entityName>SalesprojectCompetition_entity</entityName>
+          <fieldName>KeywordWonLost</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>e2041dea-8647-49e9-aacf-4481b75b76ff</name>
+          <entityName>Stock_entity</entityName>
+          <fieldName>KeywordWarehouses</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
diff --git a/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod b/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod
index fedbaa221c85469f418d2ce020be68968fc559a9..1e4c35e49e06c7d638c9f60dc8252b54195f1b63 100644
--- a/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod
+++ b/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod
@@ -21,7 +21,7 @@
     <entityField>
       <name>REASON</name>
       <title>Reason</title>
-      <possibleItemsProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/reason/possibleItemsProcess.js</possibleItemsProcess>
+      <consumer>KeywordWonLost</consumer>
       <onValidation>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/reason/onValidation.js</onValidation>
     </entityField>
     <entityField>
@@ -117,6 +117,21 @@
         <fieldName>#PROVIDER</fieldName>
       </dependency>
     </entityConsumer>
+    <entityConsumer>
+      <name>KeywordWonLost</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Keyword_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/keywordwonlost/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -193,6 +208,10 @@
           <name>RELATION_ID.displayValue</name>
           <recordfield>ORG.NAME</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>REASON.displayValue</name>
+          <expression>%aditoprj%/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/reason.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/SalesprojectCompetition_entity/entityfields/keywordwonlost/children/containername_param/code.js b/entity/SalesprojectCompetition_entity/entityfields/keywordwonlost/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..b855b77f902b216254400e1e637a73c0b5ef24e7
--- /dev/null
+++ b/entity/SalesprojectCompetition_entity/entityfields/keywordwonlost/children/containername_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Keyword_lib");
+
+result.string($KeywordRegistry.get.SalesprojectWonLost);
\ No newline at end of file
diff --git a/entity/SalesprojectCompetition_entity/entityfields/reason/possibleItemsProcess.js b/entity/SalesprojectCompetition_entity/entityfields/reason/possibleItemsProcess.js
deleted file mode 100644
index 01a117014221c54705e7c420dd4a00a84e0f4556..0000000000000000000000000000000000000000
--- a/entity/SalesprojectCompetition_entity/entityfields/reason/possibleItemsProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-var items;
-
-items = KeywordUtils.getStandardArray("SALESPROJECT.WONLOST");
-result.object(items);
\ 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
new file mode 100644
index 0000000000000000000000000000000000000000..f3ca32ff036d770ee78a7319a9ff54545559237e
--- /dev/null
+++ b/entity/SalesprojectCompetition_entity/recordcontainers/db/recordfieldmappings/reason.displayvalue/expression.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.SalesprojectWonLost, "SALESPROJECT_COMPETITION.REASON");
+result.string(sql);
diff --git a/entity/Stock_entity/Stock_entity.aod b/entity/Stock_entity/Stock_entity.aod
index 2dc4b520d58c75fe5699a2a8d8378553242f024d..baea0e36914ab2a8c54294c1048e36d9eb26a4f7 100644
--- a/entity/Stock_entity/Stock_entity.aod
+++ b/entity/Stock_entity/Stock_entity.aod
@@ -43,8 +43,8 @@
     <entityField>
       <name>WAREHOUSE</name>
       <title>Warehouse</title>
+      <consumer>KeywordWarehouses</consumer>
       <mandatory v="true" />
-      <possibleItemsProcess>%aditoprj%/entity/Stock_entity/entityfields/warehouse/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
     <entityProvider>
       <name>Stocks</name>
@@ -85,6 +85,21 @@
     <entityProvider>
       <name>#PROVIDER</name>
     </entityProvider>
+    <entityConsumer>
+      <name>KeywordWarehouses</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Keyword_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>containerName_param</name>
+          <code>%aditoprj%/entity/Stock_entity/entityfields/keywordwarehouses/children/containername_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -131,6 +146,10 @@
           <name>WAREHOUSE.value</name>
           <recordfield>STOCK.WAREHOUSE</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>WAREHOUSE.displayValue</name>
+          <expression>%aditoprj%/entity/Stock_entity/recordcontainers/db/recordfieldmappings/warehouse.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Stock_entity/entityfields/keywordwarehouses/children/containername_param/code.js b/entity/Stock_entity/entityfields/keywordwarehouses/children/containername_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..e26a2604ef40955c2d68108716f127bf8290cbe3
--- /dev/null
+++ b/entity/Stock_entity/entityfields/keywordwarehouses/children/containername_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Keyword_lib");
+
+result.string($KeywordRegistry.get.StockWarehouse);
\ No newline at end of file
diff --git a/entity/Stock_entity/entityfields/warehouse/possibleItemsProcess.js b/entity/Stock_entity/entityfields/warehouse/possibleItemsProcess.js
deleted file mode 100644
index 6c5c45308653fc74a30dd66fd69296dd90e6fa0f..0000000000000000000000000000000000000000
--- a/entity/Stock_entity/entityfields/warehouse/possibleItemsProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-var items;
-
-items = KeywordUtils.getStandardArray("STOCK.WAREHOUSE");
-result.object(items);
\ 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
new file mode 100644
index 0000000000000000000000000000000000000000..ffecade2a1ac4c81cf347c212c9acb30314ade74
--- /dev/null
+++ b/entity/Stock_entity/recordcontainers/db/recordfieldmappings/warehouse.displayvalue/expression.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.get.StockWarehouse, "STOCK.WAREHOUSE");
+result.string(sql);
diff --git a/others/db_changes/data_alias/data/example_product/PRODUCT_42154311.xml b/others/db_changes/data_alias/data/example_product/PRODUCT_42154311.xml
index 1a5dedcbe3bed8fbfe2eeb5276ecd71c41dbf190..ca0d647143a83c45482f43c00d5b9531e2d61989 100644
--- a/others/db_changes/data_alias/data/example_product/PRODUCT_42154311.xml
+++ b/others/db_changes/data_alias/data/example_product/PRODUCT_42154311.xml
@@ -208,7 +208,7 @@
             <column name="QUANTITY" valueNumeric="30"/>
             <column name="PRODUCT_ID" value="a2e76fe1-e49b-4f2b-8da5-12660738043d"/>
             <column name="ENTRYDATE" valueDate="2018-11-22T00:00:00"/>
-            <column name="WAREHOUSE" valueNumeric="1"/>
+            <column name="WAREHOUSE" value="7885caba-8d58-4fe5-9774-1872fbad1dbe"/>
         </insert>
         <insert tableName="STOCK">
             <column name="STOCKID" value="a90a8aba-76bb-40b1-a4ab-ef39508296cb"/>
@@ -216,7 +216,7 @@
             <column name="QUANTITY" valueNumeric="25"/>
             <column name="PRODUCT_ID" value="a2e76fe1-e49b-4f2b-8da5-12660738043d"/>
             <column name="ENTRYDATE" valueDate="2018-11-15T00:00:00"/>
-            <column name="WAREHOUSE" valueNumeric="1"/>
+            <column name="WAREHOUSE" value="7885caba-8d58-4fe5-9774-1872fbad1dbe"/>
         </insert>
         <insert tableName="STOCK">
             <column name="STOCKID" value="bd4c1a16-1b80-4b3e-aa67-306f387a62df"/>
@@ -224,7 +224,7 @@
             <column name="QUANTITY" valueNumeric="23"/>
             <column name="PRODUCT_ID" value="a2e76fe1-e49b-4f2b-8da5-12660738043d"/>
             <column name="ENTRYDATE" valueDate="2018-11-22T00:00:00"/>
-            <column name="WAREHOUSE" valueNumeric="1"/>
+            <column name="WAREHOUSE" value="7885caba-8d58-4fe5-9774-1872fbad1dbe"/>
         </insert>
         <insert tableName="STOCK">
             <column name="STOCKID" value="3caba278-9d38-485c-9d78-11ea969b832c"/>
@@ -232,7 +232,7 @@
             <column name="QUANTITY" valueNumeric="17"/>
             <column name="PRODUCT_ID" value="a2e76fe1-e49b-4f2b-8da5-12660738043d"/>
             <column name="ENTRYDATE" valueDate="2018-11-15T00:00:00"/>
-            <column name="WAREHOUSE" valueNumeric="1"/>
+            <column name="WAREHOUSE" value="7885caba-8d58-4fe5-9774-1872fbad1dbe"/>
         </insert>
 
     </changeSet>
diff --git a/others/db_changes/data_alias/struct/create_salesproject_competition.xml b/others/db_changes/data_alias/struct/create_salesproject_competition.xml
index 308f9b0cae6782bdd4b2b948b3f3e85c63dfd0dc..219f5d3e349b83a541752f6ac12491f6a73a2308 100644
--- a/others/db_changes/data_alias/struct/create_salesproject_competition.xml
+++ b/others/db_changes/data_alias/struct/create_salesproject_competition.xml
@@ -13,7 +13,7 @@
             </column>
             <column name="DATE_CANCELLED" type="TIMESTAMP"/>
             <column name="INFO" type="NCLOB"/>
-            <column name="REASON" type="INTEGER"/>
+            <column name="REASON" type="CHAR(36)"/>
             <column name="STATUS" type="INTEGER"/> 
                         
         </createTable>
diff --git a/others/db_changes/data_alias/struct/create_stock.xml b/others/db_changes/data_alias/struct/create_stock.xml
index fec96be53fa98f54557e00dbcbbac2755f0fc010..13b95322b81217ee4c8afa09280a018aa243cdf1 100644
--- a/others/db_changes/data_alias/struct/create_stock.xml
+++ b/others/db_changes/data_alias/struct/create_stock.xml
@@ -14,7 +14,7 @@
                     <constraints nullable="false" foreignKeyName="FK_STOCK_PRODUCT_ID" references="PRODUCT(PRODUCTID)"/>
                 </column>
                 <column name="ENTRYDATE" type="TIMESTAMP"/>
-                <column name="WAREHOUSE" type="INTEGER"/>
+                <column name="WAREHOUSE" type="CHAR(36)"/>
 	</createTable>      
 </changeSet>
 </databaseChangeLog>
\ No newline at end of file
diff --git a/process/Keyword_lib/process.js b/process/Keyword_lib/process.js
index 57705e0db005e01331925449c59f164d48f2feee..2ecca3916bb8de8410c6d9f28e9f921d9bac5808 100644
--- a/process/Keyword_lib/process.js
+++ b/process/Keyword_lib/process.js
@@ -12,6 +12,9 @@ import("Sql_lib");
  * 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
@@ -37,6 +40,8 @@ $KeywordRegistry.get = {
     SalesprojectMemberRole: "SalesprojectMemberRole",
     SalesprojectSource: "SalesprojectSource",
     SalesorderState: "SalesorderState",
+    SalesprojectWonLost: "SalesprojectWonLost",
+    StockWarehouse: "StockWarehouse",
     
     "null": null
 };
@@ -219,13 +224,6 @@ KeywordUtils.getResolvedTitleSqlPart = function(pContainerName, pDbFieldName, pL
                     ,_createKeywordEntry("6", translate.text("Service", locale))
                 ]);
                 break;
-            case "STOCK.WAREHOUSE":
-                valueContainer = _createKeywordEntriesContainer([
-                     _createKeywordEntry("1", translate.text("Warehouse 1", locale))
-                    ,_createKeywordEntry("2", translate.text("Warehouse 2", locale))
-                    ,_createKeywordEntry("3", translate.text("Warehouse 3", locale))
-                ]);
-                break;
             case "SALESPROJECT.PRICE_POLITICS":
                 valueContainer = _createKeywordEntriesContainer([
                      _createKeywordEntry("1", translate.text("Abomodel", locale))
@@ -285,24 +283,6 @@ KeywordUtils.getResolvedTitleSqlPart = function(pContainerName, pDbFieldName, pL
                     ,_createKeywordEntry("1", translate.text("Lead", locale))
                 ]);
                 break;
-            case "SALESPROJECT.WONLOST":
-                valueContainer = _createKeywordEntriesContainer([
-                     _createKeywordEntry("1", translate.text("Project_volume", locale))
-                    ,_createKeywordEntry("2", translate.text("Project_duration", locale))
-                    ,_createKeywordEntry("3", translate.text("Project_reference", locale))
-                    ,_createKeywordEntry("4", translate.text("Product_technic", locale))
-                    ,_createKeywordEntry("5", translate.text("Product_flexibility", locale))
-                    ,_createKeywordEntry("6", translate.text("Product_GUI", locale))
-                    ,_createKeywordEntry("7", translate.text("Product_functionality", locale))
-                    ,_createKeywordEntry("8", translate.text("Product_industry knowhow", locale))
-                    ,_createKeywordEntry("9", translate.text("Product_mobile use", locale))
-                    ,_createKeywordEntry("10", translate.text("Company_size", locale))
-                    ,_createKeywordEntry("11", translate.text("Company_internationality", locale))
-                    ,_createKeywordEntry("12", translate.text("Company_industry knowhow", locale))
-                    ,_createKeywordEntry("13", translate.text("Other_existing Customer", locale))
-                    ,_createKeywordEntry("14", translate.text("Other_unknown", locale))
-                ]);
-                break;
             case "SALESPROJECT.CYCLE.TYPE":
                 valueContainer = _createKeywordEntriesContainer([
                      _createKeywordEntry("1", translate.text("Phase", locale), null, {keyword: "SALESPROJECT.PHASE"})