diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod
index 58351f4f414ccd66f98a5e56890ee1c54e12c76f..f92410dc6e452781251f2c741f9e2a4632626f17 100644
--- a/aliasDefinition/Data_alias/Data_alias.aod
+++ b/aliasDefinition/Data_alias/Data_alias.aod
@@ -2016,19 +2016,6 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
-              <entityFieldDb>
-                <name>ESTIMATIONVALUE</name>
-                <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="4" />
-                <size v="10" />
-                <scale v="0" />
-                <notNull v="false" />
-                <isUnique v="false" />
-                <index v="false" />
-                <title></title>
-                <description></description>
-              </entityFieldDb>
               <entityFieldDb>
                 <name>INFO</name>
                 <dbName></dbName>
@@ -2042,19 +2029,6 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
-              <entityFieldDb>
-                <name>ESTIMATION</name>
-                <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="12" />
-                <size v="50" />
-                <scale v="0" />
-                <notNull v="false" />
-                <isUnique v="false" />
-                <index v="false" />
-                <title></title>
-                <description></description>
-              </entityFieldDb>
               <entityFieldDb>
                 <name>ENDDATE</name>
                 <dbName></dbName>
diff --git a/entity/AttributeRelation_entity/entityfields/attribute_parent_id/possibleItemsProcess.js b/entity/AttributeRelation_entity/entityfields/attribute_parent_id/possibleItemsProcess.js
index 4a159dc81d7a388e26c6fe81aeb554be0707f34b..eccc2a26904d34b493843fe84d3d562a7df71d9d 100644
--- a/entity/AttributeRelation_entity/entityfields/attribute_parent_id/possibleItemsProcess.js
+++ b/entity/AttributeRelation_entity/entityfields/attribute_parent_id/possibleItemsProcess.js
@@ -1,5 +1,5 @@
-import("system.vars");
-import("system.result");
-import("Attribute_lib");
-        
-result.object(AttributeUtil.getPossibleAttributes(vars.get("$param.objectType_param"), true));
+import("system.vars");
+import("system.result");
+import("Attribute_lib");
+        
+result.object(AttributeUtil.getPossibleAttributes(vars.get("$param.objectType_param"), true));
diff --git a/entity/Attribute_entity/entityfields/attribute_level/valueProcess.js b/entity/Attribute_entity/entityfields/attribute_level/valueProcess.js
index 1c37c30f461e97c9b5efb040f290f762fefc2166..1977334cca875a56fdbf51b64cd088a46a788ba4 100644
--- a/entity/Attribute_entity/entityfields/attribute_level/valueProcess.js
+++ b/entity/Attribute_entity/entityfields/attribute_level/valueProcess.js
@@ -1,16 +1,16 @@
-import("system.db");
-import("system.neon");
-import("system.result");
-import("system.vars");
-import("Sql_lib");
-
-if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    if (vars.get("$field.ATTRIBUTE_PARENT_ID") != "")
-    {
-        var level = db.cell(SqlCondition.begin()
-            .andPrepare("AB_ATTRIBUTE.AB_ATTRIBUTEID", vars.get("$field.ATTRIBUTE_PARENT_ID"))
-            .buildSql("select ATTRIBUTE_LEVEL from AB_ATTRIBUTE"));
-        result.string(parseInt(level) + 1);
-    }
-    else
-        result.string("0");
+import("system.db");
+import("system.neon");
+import("system.result");
+import("system.vars");
+import("Sql_lib");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    if (vars.get("$field.ATTRIBUTE_PARENT_ID") != "")
+    {
+        var level = db.cell(SqlCondition.begin()
+            .andPrepare("AB_ATTRIBUTE.AB_ATTRIBUTEID", vars.get("$field.ATTRIBUTE_PARENT_ID"))
+            .buildSql("select ATTRIBUTE_LEVEL from AB_ATTRIBUTE"));
+        result.string(parseInt(level) + 1);
+    }
+    else
+        result.string("0");
diff --git a/entity/Attribute_entity/entityfields/attribute_parent_id/stateProcess.js b/entity/Attribute_entity/entityfields/attribute_parent_id/stateProcess.js
index 876969048dfe73156cafbe8c083b7df89e968694..11f1cb994026398ca6df3cfcffd3157ed05f78f7 100644
--- a/entity/Attribute_entity/entityfields/attribute_parent_id/stateProcess.js
+++ b/entity/Attribute_entity/entityfields/attribute_parent_id/stateProcess.js
@@ -1,11 +1,11 @@
-import("system.result");
-import("system.neon");
-import("system.vars");
-
-var fieldState;
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    fieldState = neon.COMPONENTSTATE_AUTO;
-else
-    fieldState = neon.COMPONENTSTATE_READONLY;
-
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+var fieldState;
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    fieldState = neon.COMPONENTSTATE_AUTO;
+else
+    fieldState = neon.COMPONENTSTATE_READONLY;
+
 result.string(fieldState);
\ No newline at end of file
diff --git a/entity/Attribute_entity/entityfields/attribute_type/valueProcess.js b/entity/Attribute_entity/entityfields/attribute_type/valueProcess.js
index 149d8d0591e67a669d9fc78572350775da9c1850..8c60a83409d16ed0c06f474820e356a9c71b4fbb 100644
--- a/entity/Attribute_entity/entityfields/attribute_type/valueProcess.js
+++ b/entity/Attribute_entity/entityfields/attribute_type/valueProcess.js
@@ -1,12 +1,12 @@
-import("system.db");
-import("system.neon");
-import("system.result");
-import("system.vars");
-import("Attribute_lib");
-
-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($AttributeTypes.COMBOVALUE);
+import("system.db");
+import("system.neon");
+import("system.result");
+import("system.vars");
+import("Attribute_lib");
+
+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($AttributeTypes.COMBOVALUE);
 }
\ No newline at end of file
diff --git a/entity/Attribute_entity/recordcontainers/db/onDBInsert.js b/entity/Attribute_entity/recordcontainers/db/onDBInsert.js
index 4d04bd35a23a9b71da2fe8d62ae17fbd32cb6bb8..9abf4505f0765bd027b54de2c259db0da57b5704 100644
--- a/entity/Attribute_entity/recordcontainers/db/onDBInsert.js
+++ b/entity/Attribute_entity/recordcontainers/db/onDBInsert.js
@@ -1,31 +1,31 @@
-import("system.db");
-import("system.neon");
-import("system.result");
-import("system.vars");
-import("system.util");
-import("Sql_lib");
-
-if (vars.exists("$param.attrParentId_param") && vars.get("$param.attrParentId_param"))
-{
-    var parentId = vars.get("$param.attrParentId_param");
-    var attributeId = vars.get("$field.AB_ATTRIBUTEID");
-    var cols = [
-        "AB_ATTRIBUTEUSAGEID", 
-        "OBJECT_TYPE",
-        "AB_ATTRIBUTE_ID"
-    ];
-    var usageSql = SqlCondition.begin()
-        .andPrepare("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", parentId)
-        .buildSql("select " + cols.join(", ") + " from AB_ATTRIBUTEUSAGE", "1=0");
-    var usages = db.table(usageSql);
-
-    var table = "AB_ATTRIBUTEUSAGE";
-    var types = db.getColumnTypes(table, cols);
-    
-    var toInsert = usages.map(function (row) 
-    {
-        return [table, cols, types, [util.getNewUUID(), row[1], attributeId]];
-    });
-    
-    db.inserts(toInsert);
+import("system.db");
+import("system.neon");
+import("system.result");
+import("system.vars");
+import("system.util");
+import("Sql_lib");
+
+if (vars.exists("$param.attrParentId_param") && vars.get("$param.attrParentId_param"))
+{
+    var parentId = vars.get("$param.attrParentId_param");
+    var attributeId = vars.get("$field.AB_ATTRIBUTEID");
+    var cols = [
+        "AB_ATTRIBUTEUSAGEID", 
+        "OBJECT_TYPE",
+        "AB_ATTRIBUTE_ID"
+    ];
+    var usageSql = SqlCondition.begin()
+        .andPrepare("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", parentId)
+        .buildSql("select " + cols.join(", ") + " from AB_ATTRIBUTEUSAGE", "1=0");
+    var usages = db.table(usageSql);
+
+    var table = "AB_ATTRIBUTEUSAGE";
+    var types = db.getColumnTypes(table, cols);
+    
+    var toInsert = usages.map(function (row) 
+    {
+        return [table, cols, types, [util.getNewUUID(), row[1], attributeId]];
+    });
+    
+    db.inserts(toInsert);
 }
\ No newline at end of file
diff --git a/entity/Attribute_entity/recordcontainers/db/orderClauseProcess.js b/entity/Attribute_entity/recordcontainers/db/orderClauseProcess.js
index 7d38fd890e1751c5be85767520d81e8e362bbab3..4b14378884f0ed11d22218c0e63a66614d3d1d90 100644
--- a/entity/Attribute_entity/recordcontainers/db/orderClauseProcess.js
+++ b/entity/Attribute_entity/recordcontainers/db/orderClauseProcess.js
@@ -1,3 +1,3 @@
-import("system.db");
-import("system.result");
+import("system.db");
+import("system.result");
 result.object({"AB_ATTRIBUTE.ATTRIBUTE_LEVEL" : db.ASCENDING});
\ No newline at end of file
diff --git a/entity/Attribute_entity/titleProcess.js b/entity/Attribute_entity/titleProcess.js
index 09b4ecb2cceec0f6d09f3b1bd72c2fe60aba970d..bbb15f2a7f35c157449854b9c7fbeecd7550756d 100644
--- a/entity/Attribute_entity/titleProcess.js
+++ b/entity/Attribute_entity/titleProcess.js
@@ -1,4 +1,4 @@
-import("system.vars");
-import("system.result");
-
+import("system.vars");
+import("system.result");
+
 result.string(vars.get("$field.ATTRIBUTE_NAME"));
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/offers/children/contactid_param/code.js b/entity/Person_entity/entityfields/offers/children/contactid_param/code.js
index ed4a4f567aa9d494002b914426589ea37bc56682..7b6137b4d105e9ba592cf8ef6e796fb838a32b09 100644
--- a/entity/Person_entity/entityfields/offers/children/contactid_param/code.js
+++ b/entity/Person_entity/entityfields/offers/children/contactid_param/code.js
@@ -1,4 +1,4 @@
-import("system.vars");
-import("system.result");
-
+import("system.vars");
+import("system.result");
+
 result.string(vars.get("$field.CONTACTID"));
\ No newline at end of file
diff --git a/entity/SalesprojectForecast_entity/entityfields/salesprojectforecastdatestart/code.js b/entity/SalesprojectForecast_entity/entityfields/salesprojectforecastdatestart/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..66ce3a4676a6c0a9b212a2ac2126c03f3c3a912b
--- /dev/null
+++ b/entity/SalesprojectForecast_entity/entityfields/salesprojectforecastdatestart/code.js
@@ -0,0 +1,2 @@
+import("system.result")
+result.string("DATE_START");
\ No newline at end of file
diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod
index 33747b351b2cd6381beb1bb75c19b69da28b32ca..7bcd55845a690a27069d3f692ba3141545d364dc 100644
--- a/entity/Salesproject_entity/Salesproject_entity.aod
+++ b/entity/Salesproject_entity/Salesproject_entity.aod
@@ -31,16 +31,6 @@
       <resolution>DAY</resolution>
       <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/enddate/valueProcess.js</valueProcess>
     </entityField>
-    <entityField>
-      <name>ESTIMATION</name>
-      <title>Estimation</title>
-      <possibleItemsProcess>%aditoprj%/entity/Salesproject_entity/entityfields/estimation/possibleItemsProcess.js</possibleItemsProcess>
-      <selectionMode>MULTI</selectionMode>
-    </entityField>
-    <entityField>
-      <name>ESTIMATIONVALUE</name>
-      <searchable v="false" />
-    </entityField>
     <entityField>
       <name>INFO</name>
       <title>Information</title>
@@ -451,10 +441,6 @@
           <name>ENDDATE.value</name>
           <recordfield>SALESPROJECT.ENDDATE</recordfield>
         </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>ESTIMATION.value</name>
-          <recordfield>SALESPROJECT.ESTIMATION</recordfield>
-        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>INFO.value</name>
           <recordfield>SALESPROJECT.INFO</recordfield>
@@ -491,10 +477,6 @@
           <name>VOLUME.value</name>
           <recordfield>SALESPROJECT.VOLUME</recordfield>
         </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>ESTIMATIONVALUE.value</name>
-          <recordfield>SALESPROJECT.ESTIMATIONVALUE</recordfield>
-        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>CONTACT_ID.value</name>
           <recordfield>SALESPROJECT.CONTACT_ID</recordfield>
diff --git a/entity/Salesproject_entity/entityfields/days_notactive/valueProcess.js b/entity/Salesproject_entity/entityfields/days_notactive/valueProcess.js
index cddfb6d43c94f74e66d49f9444cbaf03415b07d2..d0e97fc19f6fb3ab1b69daa387909eb7f98d32ba 100644
--- a/entity/Salesproject_entity/entityfields/days_notactive/valueProcess.js
+++ b/entity/Salesproject_entity/entityfields/days_notactive/valueProcess.js
@@ -1,11 +1,11 @@
-import("system.translate");
-import("system.result");
-import("system.vars");
-import("Activity_lib");
-import("Date_lib");
-
-var entryDate = ActivityUtils.getLastActivityDate(vars.get("$field.SALESPROJECTID"));
-var daysPassed = DateUtils.getDayDifference(entryDate);
-
-if (daysPassed != null)
+import("system.translate");
+import("system.result");
+import("system.vars");
+import("Activity_lib");
+import("Date_lib");
+
+var entryDate = ActivityUtils.getLastActivityDate(vars.get("$field.SALESPROJECTID"));
+var daysPassed = DateUtils.getDayDifference(entryDate);
+
+if (daysPassed != null)
     result.string(daysPassed);
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/estimation/possibleItemsProcess.js b/entity/Salesproject_entity/entityfields/estimation/possibleItemsProcess.js
deleted file mode 100644
index f527f159dc20b1e2bf4dc0bb00bd2a028195169e..0000000000000000000000000000000000000000
--- a/entity/Salesproject_entity/entityfields/estimation/possibleItemsProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.result");
-import("Keyword_lib");
-
-var items;
-
-items = LegacyKeywordUtils.getStandardArray("SALESPROJECT.ESTIMATION");
-result.object(items);
\ No newline at end of file
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index ae516de8b29040697890f44b499916e7ca0ed646..c296a6d5b7327fc7b1164cd4ed027063141a5314 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -585,10 +585,6 @@
       <key>Rollout</key>
       <value>Roll Out</value>
     </entry>
-    <entry>
-      <key>Estimation</key>
-      <value>Einschätzung</value>
-    </entry>
     <entry>
       <key>Phase</key>
       <value>Phase</value>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index 4c101a4c2c0ac238cf76b884496c4bd3ab3c1274..647509f8eefbab504f14212ed4ae93b23ffc269e 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -352,9 +352,6 @@
     <entry>
       <key>Rollout</key>
     </entry>
-    <entry>
-      <key>Estimation</key>
-    </entry>
     <entry>
       <key>Phase</key>
     </entry>
diff --git a/neonContext/Salesproject/Salesproject.aod b/neonContext/Salesproject/Salesproject.aod
index 0d925d49efa8aeaf7421bd5b6fee7b5673f5d789..1409d56b581523d9bb7071a9293c438988e80a16 100644
--- a/neonContext/Salesproject/Salesproject.aod
+++ b/neonContext/Salesproject/Salesproject.aod
@@ -25,5 +25,9 @@
       <name>c35cc718-94a8-43cf-afe4-f02d251d4e9f</name>
       <view>SalesprojectEdit_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>d7fb7e2b-c932-4b96-be2c-ae5ec3d36beb</name>
+      <view>SalesprojectCycle_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonView/AttributeFilter_view/AttributeFilter_view.aod b/neonView/AttributeFilter_view/AttributeFilter_view.aod
index f832fe72dc58882788636fa74e9e1bf3e4aaa412..397239aacb52f57f539768356b12078993b2e19a 100644
--- a/neonView/AttributeFilter_view/AttributeFilter_view.aod
+++ b/neonView/AttributeFilter_view/AttributeFilter_view.aod
@@ -1,21 +1,21 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
-  <name>AttributeFilter_view</name>
-  <title>Attributes</title>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <filterable v="true" />
-  <layout>
-    <groupLayout>
-      <name>layout</name>
-    </groupLayout>
-  </layout>
-  <children>
-    <treetableViewTemplate>
-      <name>Treetable</name>
-      <parentField>ATTRIBUTE_PARENT_ID</parentField>
-      <titleField>ATTRIBUTE_NAME</titleField>
-      <descriptionField>ATTRIBUTE_TYPE</descriptionField>
-      <entityField>#ENTITY</entityField>
-    </treetableViewTemplate>
-  </children>
-</neonView>
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
+  <name>AttributeFilter_view</name>
+  <title>Attributes</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterable v="true" />
+  <layout>
+    <groupLayout>
+      <name>layout</name>
+    </groupLayout>
+  </layout>
+  <children>
+    <treetableViewTemplate>
+      <name>Treetable</name>
+      <parentField>ATTRIBUTE_PARENT_ID</parentField>
+      <titleField>ATTRIBUTE_NAME</titleField>
+      <descriptionField>ATTRIBUTE_TYPE</descriptionField>
+      <entityField>#ENTITY</entityField>
+    </treetableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/AttributeRelationFilter_view/AttributeRelationFilter_view.aod b/neonView/AttributeRelationFilter_view/AttributeRelationFilter_view.aod
index fbcf895c91a45e539a0b4aa4cb9d56875a007d49..8943bfa0c50cbef9a0e813a1d52d58e43dc4088b 100644
--- a/neonView/AttributeRelationFilter_view/AttributeRelationFilter_view.aod
+++ b/neonView/AttributeRelationFilter_view/AttributeRelationFilter_view.aod
@@ -1,36 +1,36 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
-  <name>AttributeRelationFilter_view</name>
-  <title>Attributes</title>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <filterable v="true" />
-  <layout>
-    <groupLayout>
-      <name>layout</name>
-    </groupLayout>
-  </layout>
-  <children>
-    <tableViewTemplate>
-      <name>Table</name>
-      <autoNewRow v="true" />
-      <entityField>#ENTITY</entityField>
-      <columns>
-        <neonTableColumn>
-          <name>b37d207a-6119-454a-8fc6-073e9d54b1d3</name>
-          <entityField>AB_ATTRIBUTE_ID</entityField>
-        </neonTableColumn>
-        <neonTableColumn>
-          <name>83a10d52-9eaf-4901-935e-2a7410831861</name>
-          <entityField>ATTRIBUTERELATION_VALUE</entityField>
-        </neonTableColumn>
-      </columns>
-    </tableViewTemplate>
-    <treetableViewTemplate>
-      <name>Tree</name>
-      <parentField>ATTRIBUTE_PARENT_ID</parentField>
-      <titleField>AB_ATTRIBUTE_ID</titleField>
-      <descriptionField>ATTRIBUTERELATION_VALUE</descriptionField>
-      <entityField>#ENTITY</entityField>
-    </treetableViewTemplate>
-  </children>
-</neonView>
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
+  <name>AttributeRelationFilter_view</name>
+  <title>Attributes</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterable v="true" />
+  <layout>
+    <groupLayout>
+      <name>layout</name>
+    </groupLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>Table</name>
+      <autoNewRow v="true" />
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>b37d207a-6119-454a-8fc6-073e9d54b1d3</name>
+          <entityField>AB_ATTRIBUTE_ID</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>83a10d52-9eaf-4901-935e-2a7410831861</name>
+          <entityField>ATTRIBUTERELATION_VALUE</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+    <treetableViewTemplate>
+      <name>Tree</name>
+      <parentField>ATTRIBUTE_PARENT_ID</parentField>
+      <titleField>AB_ATTRIBUTE_ID</titleField>
+      <descriptionField>ATTRIBUTERELATION_VALUE</descriptionField>
+      <entityField>#ENTITY</entityField>
+    </treetableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/AttributeUsageFilter_view/AttributeUsageFilter_view.aod b/neonView/AttributeUsageFilter_view/AttributeUsageFilter_view.aod
index eeb1eed20e2d6eb13d75e245cbeb7e8b79bb76b1..15c3fd3b9577143daee960012808a8e9b8937e4f 100644
--- a/neonView/AttributeUsageFilter_view/AttributeUsageFilter_view.aod
+++ b/neonView/AttributeUsageFilter_view/AttributeUsageFilter_view.aod
@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
-  <name>AttributeUsageFilter_view</name>
-  <description>View for listing all contexts where a attribute can be used in the attribute entity</description>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <layout>
-    <boxLayout>
-      <name>layout</name>
-    </boxLayout>
-  </layout>
-  <children>
-    <tableViewTemplate>
-      <name>UsageTable_template</name>
-      <autoNewRow v="true" />
-      <entityField>#ENTITY</entityField>
-      <columns>
-        <neonTableColumn>
-          <name>ba8d5468-4e59-4ab8-8174-afcca1ae0d9e</name>
-          <entityField>OBJECT_TYPE</entityField>
-        </neonTableColumn>
-      </columns>
-    </tableViewTemplate>
-  </children>
-</neonView>
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
+  <name>AttributeUsageFilter_view</name>
+  <description>View for listing all contexts where a attribute can be used in the attribute entity</description>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>UsageTable_template</name>
+      <autoNewRow v="true" />
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>ba8d5468-4e59-4ab8-8174-afcca1ae0d9e</name>
+          <entityField>OBJECT_TYPE</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod b/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod
index 231d9cf048557708638e4a93eeb3a471d91cda3a..37108cc1078ff2bcbad081a3022b48f8b2f857d0 100644
--- a/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod
+++ b/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod
@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
-  <name>AttributeUsageMultiEdit_view</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <layout>
-    <boxLayout>
-      <name>layout</name>
-    </boxLayout>
-  </layout>
-  <children>
-    <genericMultipleViewTemplate>
-      <name>UsageEdit_template</name>
-      <entityField>#ENTITY</entityField>
-      <columns>
-        <neonTableColumn>
-          <name>a2efb4ca-4e8d-4e90-9870-2cebf338d95f</name>
-          <entityField>OBJECT_TYPE</entityField>
-          <width v="75" />
-        </neonTableColumn>
-      </columns>
-    </genericMultipleViewTemplate>
-  </children>
-</neonView>
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
+  <name>AttributeUsageMultiEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <genericMultipleViewTemplate>
+      <name>UsageEdit_template</name>
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>a2efb4ca-4e8d-4e90-9870-2cebf338d95f</name>
+          <entityField>OBJECT_TYPE</entityField>
+          <width v="75" />
+        </neonTableColumn>
+      </columns>
+    </genericMultipleViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/SalesprojectCycle_view/SalesprojectCycle_view.aod b/neonView/SalesprojectCycle_view/SalesprojectCycle_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..0af20f499b83bd5f76825ed8e150a9ad7e1aefe4
--- /dev/null
+++ b/neonView/SalesprojectCycle_view/SalesprojectCycle_view.aod
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
+  <name>SalesprojectCycle_view</name>
+  <title>Milestones</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>c68c50b8-6ff9-4be4-ab1e-c8bd9b93f650</name>
+      <entityField>SalesprojectCycles</entityField>
+      <view>SalesprojectCycleFilter_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>b172fd14-209d-412f-9250-aeb0f37091b5</name>
+      <entityField>SalesprojectForecasts</entityField>
+      <view>SalesprojectForecastFilter_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod b/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod
index f6210915219b67e0f623747a3f521d65eb717fba..5e0a05ce09a55d27e751210dc2426f0d84c30ade 100644
--- a/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod
+++ b/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod
@@ -52,10 +52,6 @@
           <name>5b3c3dc2-4ca5-45c5-96e5-7196a99dcdce</name>
           <entityField>VOLUME</entityField>
         </entityFieldLink>
-        <entityFieldLink>
-          <name>f9332d9d-184b-4044-afaf-5d377fe59072</name>
-          <entityField>ESTIMATION</entityField>
-        </entityFieldLink>
         <entityFieldLink>
           <name>3836ef6b-64c4-4e0e-8cd6-88f784275b2f</name>
           <entityField>PROBABILITY</entityField>
diff --git a/neonView/SalesprojectMain_view/SalesprojectMain_view.aod b/neonView/SalesprojectMain_view/SalesprojectMain_view.aod
index 22e91e6848557fd2869630e628c09ae3c7e45bc8..c7d28d906bcbd9991378592dda9dfbebf03539a2 100644
--- a/neonView/SalesprojectMain_view/SalesprojectMain_view.aod
+++ b/neonView/SalesprojectMain_view/SalesprojectMain_view.aod
@@ -20,9 +20,9 @@
       <view>ActivityFilter_view</view>
     </neonViewReference>
     <neonViewReference>
-      <name>138f1ee7-f23b-4de9-a4c7-b4db870b57e9</name>
-      <entityField>SalesprojectCycles</entityField>
-      <view>SalesprojectCycleFilter_view</view>
+      <name>b0302dd4-fd72-4d34-8c22-70d3a721347f</name>
+      <entityField>#ENTITY</entityField>
+      <view>SalesprojectCycle_view</view>
     </neonViewReference>
     <neonViewReference>
       <name>5d7248e8-3f3e-4262-8f13-6d5eff7165c1</name>
@@ -49,11 +49,6 @@
       <entityField>SalesprojectClassifications</entityField>
       <view>SalesprojectClassificationFilter_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>0acc61f5-f61a-4c93-a4fb-e5ae44a71dae</name>
-      <entityField>SalesprojectForecasts</entityField>
-      <view>SalesprojectForecastFilter_view</view>
-    </neonViewReference>
     <neonViewReference>
       <name>c0027b4d-c014-4053-a595-daad9a73ad5c</name>
       <entityField>Timetrackings</entityField>
diff --git a/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod b/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod
index b36c8a2373c0003b4582c199462fffc280b5873f..e75219d501812337ef524570dbea61824d95c949 100644
--- a/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod
+++ b/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod
@@ -49,10 +49,6 @@
           <name>950d21a3-c0f9-4df5-9810-fa027a6fdb4a</name>
           <entityField>VOLUME</entityField>
         </entityFieldLink>
-        <entityFieldLink>
-          <name>774ab565-a5e0-4b31-a77a-39143534f9a8</name>
-          <entityField>ESTIMATION</entityField>
-        </entityFieldLink>
         <entityFieldLink>
           <name>bf7ecf7a-3d7f-4ec8-867a-c10ced346343</name>
           <entityField>TIMETRACKINGSUM</entityField>
diff --git a/others/db_changes/data_alias/basic/2019.2/ChangeNotes.txt b/others/db_changes/data_alias/basic/2019.2/ChangeNotes.txt
index 8dc9fca63611023e69b5f7bb306d1c4463fdfd0e..a567af3fbd00e9aa95d7858f28965087221b66a3 100644
--- a/others/db_changes/data_alias/basic/2019.2/ChangeNotes.txt
+++ b/others/db_changes/data_alias/basic/2019.2/ChangeNotes.txt
@@ -1,3 +1,4 @@
 * all TaskTypes are deleted, new Type "Task" is created
  - you may have to update all Tasks to use type "Tak" (keyid: 4dee8727-8299-422e-ae41-6cdf9de2dfd799)
-* Column CODE is reset to NULL on all tasks (it is curently  not needed by basic)
\ No newline at end of file
+* Column CODE is reset to NULL on all tasks (it is curently  not needed by basic)
+* ESTIMATION and ESTIMATIONVALUE from salesproject are droped
\ 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 8933dc01a5511fd07099d5a24bddc70d4928ee57..6677259879dd02f5fd5256bd666331a83fc8e3bc 100644
--- a/others/db_changes/data_alias/basic/2019.2/changelog.xml
+++ b/others/db_changes/data_alias/basic/2019.2/changelog.xml
@@ -47,4 +47,6 @@
     
     <include relativeToChangelogFile="true" file="activity_add_parent.xml"/>
     <include relativeToChangelogFile="true" file="task_add_parent.xml"/>
-</databaseChangeLog>
+    
+    <include relativeToChangelogFile="true" file="drop_estimation_salesproject.xml"/>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/drop_estimation_salesproject.xml b/others/db_changes/data_alias/basic/2019.2/drop_estimation_salesproject.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ab045eecb61425666f5f5a69642cb138dc77cbb5
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/drop_estimation_salesproject.xml
@@ -0,0 +1,14 @@
+<?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.hoermann" id="0601eb26-fc5e-4b57-ad18-2b6a064f383f">
+        <dropColumn tableName="SALESPROJECT" columnName="ESTIMATION"/>
+        <dropColumn tableName="SALESPROJECT" columnName="ESTIMATIONVALUE"/>
+        
+        <rollback>
+            <addColumn tableName="SALESPROJECT">
+                <column name="ESTIMATION" type="NVARCHAR(50)"/>
+                <column name="ESTIMATIONVALUE" type="INTEGER"/>
+            </addColumn>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/process/Keyword_lib/process.js b/process/Keyword_lib/process.js
index 4827e4fa1a0045c62aea4b40cd915402337df88e..d727fa79f4bee63c63a9deb2058a268e9c0149d4 100644
--- a/process/Keyword_lib/process.js
+++ b/process/Keyword_lib/process.js
@@ -321,22 +321,7 @@ function LegacyKeywordUtils(){}
                      _createKeywordEntry("1", translate.text("Weakness 1", locale))
                     ,_createKeywordEntry("2", translate.text("Weakness 2", locale))
                     ,_createKeywordEntry("3", translate.text("Weakness 3", locale))
-                ]);                
-                break;
-            case "SALESPROJECT.ESTIMATION":
-                valueContainer = _createKeywordEntriesContainer([
-                     _createKeywordEntry("1", translate.text("Project_volume sufficient", locale))
-                    ,_createKeywordEntry("2", translate.text("Project_budget available", locale))
-                    ,_createKeywordEntry("3", translate.text("Project_specifications available", locale))
-                    ,_createKeywordEntry("4", translate.text("Project_timeframe critical", locale))
-                    ,_createKeywordEntry("5", translate.text("Project_payment default/penalty critical", locale))
-                    ,_createKeywordEntry("6", translate.text("Project_references available", locale))
-                    ,_createKeywordEntry("7", translate.text("Product_requirements suitable", locale))
-                    ,_createKeywordEntry("8", translate.text("Product_philosophy fitting", locale))
-                    ,_createKeywordEntry("9", translate.text("Product_industry template available", locale))
-                    ,_createKeywordEntry("10", translate.text("Other_sympathy available", locale))
-                    ,_createKeywordEntry("11", translate.text("Other_advocate available", locale))
-                ]);                
+                ]);
                 break;
             case "SALESPROJECT.STATE":
                 valueContainer = _createKeywordEntriesContainer([
diff --git a/process/Salesproject_lib/process.js b/process/Salesproject_lib/process.js
index 479848b10d7f01270ceddc1a6456d9a040897b96..cadd2a4a1b46dffb081cc55939a6a5769624c2dd 100644
--- a/process/Salesproject_lib/process.js
+++ b/process/Salesproject_lib/process.js
@@ -1,3 +1,4 @@
+import("system.logging");
 import("system.neon");
 import("system.vars");
 import("system.util");
@@ -5,10 +6,9 @@ import("system.translate");
 import("system.db");
 import("system.eMath");
 import("system.question");
-import("system.logging");
 import("Util_lib");
 import("Keyword_lib");
-
+import("system.neonTools");
 /**
  * Methods used by the Salesproject.
  * Do not create an instance of this!
@@ -67,8 +67,8 @@ Salesproject.insertMilestone = function(salesprojectId, type, value, notifyForec
  * Notify the user to update the forecast
  */
 Salesproject.notifyToUpdateForecast = function() {
-    // TODO: logging.show durch sinnvolle Meldung ersetzen oder ähnlich...
-    logging.show(translate.text("Please update the forecast."));
+   // TODO: logging.show durch sinnvolle Meldung ersetzen oder ähnlich...
+   // logging.show(translate.text("Please update the forecast."));
 }
 
 /**