diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod
index e5d9fb31d428db53eb1d1d1ae4133057ec876525..85d9ea59971bd0383629b76354284efa73603500 100644
--- a/aliasDefinition/Data_alias/Data_alias.aod
+++ b/aliasDefinition/Data_alias/Data_alias.aod
@@ -3171,7 +3171,7 @@
                 <name>TYPE</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="12" />
+                <columnType v="4" />
                 <size v="10" />
                 <scale v="0" />
                 <notNull v="false" />
diff --git a/entity/SalesprojectCycle_entity/SalesprojectCycle_entity.aod b/entity/SalesprojectCycle_entity/SalesprojectCycle_entity.aod
index 9befac9617426bb9818265e19b258bda0daf9b73..5d159a99080bce773cc60e49f6b0115570ca76e9 100644
--- a/entity/SalesprojectCycle_entity/SalesprojectCycle_entity.aod
+++ b/entity/SalesprojectCycle_entity/SalesprojectCycle_entity.aod
@@ -43,6 +43,8 @@
       <name>TYPE</name>
       <tableName>SALESPROJECT_CYCLE</tableName>
       <columnName>TYPE</columnName>
+      <contentType>NUMBER</contentType>
+      <valueProcess>%aditoprj%/entity/SalesprojectCycle_entity/entityfields/type/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>VALUE</name>
diff --git a/entity/SalesprojectCycle_entity/entityfields/type/valueProcess.js b/entity/SalesprojectCycle_entity/entityfields/type/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/entity/SalesprojectCycle_entity/entityfields/value/possibleItemsProcess.js b/entity/SalesprojectCycle_entity/entityfields/value/possibleItemsProcess.js
index 5f5dd7b9b259a350afca9a07870eea8a8a7a77af..b5cc5a9e296867680409249faca03c472c6cf529 100644
--- a/entity/SalesprojectCycle_entity/entityfields/value/possibleItemsProcess.js
+++ b/entity/SalesprojectCycle_entity/entityfields/value/possibleItemsProcess.js
@@ -1,21 +1,22 @@
 import("system.result");
 import("system.vars");
+import("system.logging");
 import("Keyword_lib");
 
 var kwdUtils, items, keyword;
 
 kwdUtils = new KeywordUtils();
-
-switch (vars.get("$field.TYPE"))
+logging.log(vars.get("$field.TYPE").toSource())
+switch (parseInt(vars.get("$field.TYPE")))
 {
-    case "Phase":
+    case 1:
         keyword = "SALESPROJECT.PHASE";
         break;
-    case "State":
+    case 2:
         keyword = "SALESPROJECT.STATE";
         break;
 }
-
+logging.log(keyword)
 if (keyword) {
     items = kwdUtils.getStandardArray(keyword);
 }
diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod
index 91fa179c02f31386c04e75c8c5fbb2d44f319364..e24e99ec2aaa8f0a0cfe9132eb401348a23ab6b5 100644
--- a/entity/Salesproject_entity/Salesproject_entity.aod
+++ b/entity/Salesproject_entity/Salesproject_entity.aod
@@ -8,6 +8,7 @@
   <iconId>VAADIN:FILTER</iconId>
   <alias>Data_alias</alias>
   <onDBInsert>%aditoprj%/entity/Salesproject_entity/onDBInsert.js</onDBInsert>
+  <onDBUpdate>%aditoprj%/entity/Salesproject_entity/onDBUpdate.js</onDBUpdate>
   <entityFields>
     <entityIncomingField>
       <name>#INCOMING</name>
diff --git a/entity/Salesproject_entity/onDBInsert.js b/entity/Salesproject_entity/onDBInsert.js
index 677dab41bf3237f5954d0e635b70896cbd8f3649..24f917cdcd8ce993c006fb9db673be7d7216283b 100644
--- a/entity/Salesproject_entity/onDBInsert.js
+++ b/entity/Salesproject_entity/onDBInsert.js
@@ -1,5 +1,5 @@
 import("system.vars");
 import("Salesproject_lib");
 
-Salesproject.insertMilestone(vars.getString("$field.SALESPROJECTID"), Salesproject_TYPES.PHASE, vars.get("$field.PHASE"));
-Salesproject.insertMilestone(vars.getString("$field.SALESPROJECTID"), Salesproject_TYPES.STATE, vars.get("$field.STATE"));
\ No newline at end of file
+Salesproject.insertMilestone(vars.getString("$field.SALESPROJECTID"), 1, vars.get("$field.PHASE"));
+Salesproject.insertMilestone(vars.getString("$field.SALESPROJECTID"), 2, vars.get("$field.STATE"));
\ No newline at end of file
diff --git a/entity/Salesproject_entity/onDBUpdate.js b/entity/Salesproject_entity/onDBUpdate.js
new file mode 100644
index 0000000000000000000000000000000000000000..14b1627655d951e921dd41c9dbd93aac526a8e91
--- /dev/null
+++ b/entity/Salesproject_entity/onDBUpdate.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.logging");
+import("Salesproject_lib");
+
+logging.log(vars.get("$local.changed").toSource())
\ No newline at end of file
diff --git a/others/db_changes/data/example_salesproject/SALESPROJECT_gfk.xml b/others/db_changes/data/example_salesproject/SALESPROJECT_gfk.xml
index f806e073779854b827ca680df9693772357dbf57..db97bcf7d48a1d21d17a69cd578520faf8670d04 100644
--- a/others/db_changes/data/example_salesproject/SALESPROJECT_gfk.xml
+++ b/others/db_changes/data/example_salesproject/SALESPROJECT_gfk.xml
@@ -35,7 +35,7 @@
         <column name="USER_NEW" value="admin"/>
         <column name="DATE_NEW" valueDate="2018-06-13T09:03:43"/>
         <column name="SALESPROJECT_ID" value="0833465c-8851-4fbb-b7e3-8c1d73c903da"/>
-        <column name="TYPE" value="Phase"/>
+        <column name="TYPE" valueNumeric="1"/>
         <column name="VALUE" valueNumeric="1"/>
         <column name="DATE_START" valueDate="2018-06-13T09:03:43"/>
         <column name="DATE_END" valueDate="2018-06-13T09:03:43"/>
diff --git a/others/db_changes/struct/create_salesproject_cycle.xml b/others/db_changes/struct/create_salesproject_cycle.xml
index 49d8701706d3ff7c875e3f7b0910f930eab799d1..73db00ee2500b9baaf9adeb34284235b303610d6 100644
--- a/others/db_changes/struct/create_salesproject_cycle.xml
+++ b/others/db_changes/struct/create_salesproject_cycle.xml
@@ -9,7 +9,7 @@
                 <constraints nullable="false"/>
             </column>
             
-            <column name="TYPE" type="VARCHAR(10)"/>
+            <column name="TYPE" type="INTEGER"/>
             <column name="VALUE" type="INTEGER"/>
             
             <column name="DATE_START" type="TIMESTAMP"/>
diff --git a/process/Keyword_lib/process.js b/process/Keyword_lib/process.js
index fd778f65a004d4005f42345df26352c60d17ebfd..9faa3d7467ee1267071c4dcab5aa23e7fc3c629f 100644
--- a/process/Keyword_lib/process.js
+++ b/process/Keyword_lib/process.js
@@ -44,6 +44,7 @@ function KeywordUtils(){
      * @param {String} keywordType specifies the type of the keyword and therefore the list elements; e.g. "COUNTRY"
      * @return {Object} object with the following methods:
      * <br/>- toArray
+     * <br/>- get
      * <br/>- getPropForKey
      * <br/>- getPropsForKey
      * <br/>- filter
@@ -262,6 +263,12 @@ function KeywordUtils(){
                     ,createKeywordEntry("6", translate.text("Sales ID"))
                 ]);
                 break;
+            case "SALESPROJECT.CYCLE.TYPE":
+                valueContainer = createKeywordEntriesContainer([
+                     createKeywordEntry("1", translate.text("Phase"), null, {keyword: "SALESPROJECT.PHASE"})
+                    ,createKeywordEntry("2", translate.text("State"), null, {category: "SALESPROJECT.STATE"})
+                ]);
+                break;
             case "OFFER.PROBABILITY":
                 valueContainer = createKeywordEntriesContainer([
                      createKeywordEntry("1", translate.text("0 %"), null, {percentValue: 0})
@@ -338,6 +345,10 @@ function KeywordUtils(){
             }
             return res;
         };
+        
+        _existsFn = function(key){
+            return (valueContainer[key] != undefined);
+        };
 
         return {
             /**
@@ -355,6 +366,7 @@ function KeywordUtils(){
                 }
                 return this;
             }
+            ,exists: _existsFn
         };
     };
     
diff --git a/process/Salesproject_lib/process.js b/process/Salesproject_lib/process.js
index e3f10b6a49e5053b051b02a90dadc40c94dcf995..506500b8f9c21d31fa5abf39a7e1f01ddccf7242 100644
--- a/process/Salesproject_lib/process.js
+++ b/process/Salesproject_lib/process.js
@@ -2,6 +2,7 @@ import("system.translate");
 import("system.db");
 import("system.eMath");
 import("Util_lib");
+import("Keyword_lib");
 
 /**
 *  Types for the milestone.
@@ -44,13 +45,17 @@ Salesproject = {
      * Insert a new milestone.
      * 
      * @param {String} ID of the salesproject
-     * @param {TYPES} type type can either be Salesproject_TYPES.PHASE or Salesproject_TYPES.STATE
+     * @param {Integer} type can be any value of the keyword SALESPROJECT.CYCLE.TYPE
      * @param {Integer} value value of the phase or state
      * 
      * @result {boolean} true if inserted, else false
      */
     insertMilestone: function(salesprojectId, type, value) {
-        if (type == Salesproject_TYPES.PHASE || type == Salesproject_TYPES.STATE) {
+        var kwdUtils, items;
+
+        kwdUtils = new KeywordUtils();
+                
+        if (kwdUtils.createKeyword("SALESPROJECT.CYCLE.TYPE").exists(type)) {
             db.insertData(
                 "SALESPROJECT_CYCLE",
                 ["SALESPROJECT_CYCLEID", "SALESPROJECT_ID", "TYPE", "VALUE", "DATE_START", "USER_NEW", "DATE_NEW"],