diff --git a/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_CommunicationMedium.xml b/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_CommunicationMedium.xml
index a45c7c9d215d6a8fe3bda55c8d567d60e598f99f..14da74fff976569710a26ebb18a7b23bded7a802 100644
--- a/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_CommunicationMedium.xml
+++ b/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_CommunicationMedium.xml
@@ -176,6 +176,18 @@
                     <param value="0b12da28-e132-4a91-a9ca-beceb811fa44" />
                 </whereParams>
             </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="135eef4c-4c98-4f6a-8b9d-a5dee5b60d31" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="42e5f9eb-a1f7-4aba-81b6-507a935de624" />
+                </whereParams>
+            </delete>
         </rollback>
     </changeSet>
 </databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_CommunicationMediumCampaign.xml b/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_CommunicationMediumCampaign.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d8d795d2d8684c4ec60a7b1e728f93433efd5538
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_CommunicationMediumCampaign.xml
@@ -0,0 +1,239 @@
+<?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="s.leierseder" id="e05723fe-c397-4a6a-bad3-f640c710dea7">
+        <insert tableName="AB_KEYWORD_ATTRIBUTE">
+            <column name="AB_KEYWORD_ATTRIBUTEID" value="5e65d4a0-af83-4a7b-babb-b1b7af4b9f20"/>
+
+            <column name="NAME" value="AdvertisingBan"/>
+            <column name="CONTAINER" value="CommunicationMediumCampaign"/>
+            <column name="TYPE" value="CHAR_VALUE"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTE">
+            <column name="AB_KEYWORD_ATTRIBUTEID" value="d6c0fd72-ded2-4e4d-adf5-f8832d7b24f2"/>
+
+            <column name="NAME" value="AdvertisingBanIcon"/>
+            <column name="CONTAINER" value="CommunicationMediumCampaign"/>
+            <column name="TYPE" value="CHAR_VALUE"/>
+        </insert>                       
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="2acd3694-ccef-4d0b-ae7a-b3d31f8d9cc0"/>
+
+            <column name="KEYID" value="97a53bf1-0862-4973-a774-d2b8eeb78006"/>
+            <column name="TITLE" value="Phone"/>
+            <column name="CONTAINER" value="CommunicationMediumCampaign"/>
+            <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="ca0302d1-23ec-49a3-a076-ea14854d5b92"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="2acd3694-ccef-4d0b-ae7a-b3d31f8d9cc0"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="5e65d4a0-af83-4a7b-babb-b1b7af4b9f20"/>
+            <column name="CHAR_VALUE" value="No calls"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="08976dd1-ae7e-4c33-b5a3-c2889a295651"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="2acd3694-ccef-4d0b-ae7a-b3d31f8d9cc0"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="d6c0fd72-ded2-4e4d-adf5-f8832d7b24f2"/>
+            <column name="CHAR_VALUE" value="VAADIN:PHONE"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="cb07397b-a976-4960-b8e5-9edf189c5caf"/>
+
+            <column name="KEYID" value="8d25a426-808d-4f57-8637-7319f3b4be41"/>
+            <column name="TITLE" value="E-Mail"/>
+            <column name="CONTAINER" value="CommunicationMediumCampaign"/>
+            <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="9d8e534d-9c34-4cb7-b0bb-7428e8942482"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="cb07397b-a976-4960-b8e5-9edf189c5caf"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="5e65d4a0-af83-4a7b-babb-b1b7af4b9f20"/>
+            <column name="CHAR_VALUE" value="No mails"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="6767aead-da3c-4ce4-a95c-fbd6f4401c53"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="cb07397b-a976-4960-b8e5-9edf189c5caf"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="d6c0fd72-ded2-4e4d-adf5-f8832d7b24f2"/>
+            <column name="CHAR_VALUE" value="VAADIN:AT"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="990a03e0-aeb4-4bdb-9d22-09b66eee6b85"/>
+
+            <column name="KEYID" value="accb9390-757a-4549-9c03-7c8219260055"/>
+            <column name="TITLE" value="Letter"/>
+            <column name="CONTAINER" value="CommunicationMediumCampaign"/>
+            <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="766e211d-07ed-4d23-b5e9-f455511811d8"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="990a03e0-aeb4-4bdb-9d22-09b66eee6b85"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="5e65d4a0-af83-4a7b-babb-b1b7af4b9f20"/>
+            <column name="CHAR_VALUE" value="No letters"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="9d09f8a7-dc4b-4a70-b1e3-d5f607637c0b"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="990a03e0-aeb4-4bdb-9d22-09b66eee6b85"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="d6c0fd72-ded2-4e4d-adf5-f8832d7b24f2"/>
+            <column name="CHAR_VALUE" value="VAADIN:ENVELOPE"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="51085b8b-ded0-4d1d-9e85-ae89bd1480fe"/>
+
+            <column name="KEYID" value="1f1bd64b-da10-4c81-84fd-9fa57dff736e"/>
+            <column name="TITLE" value="Fax"/>
+            <column name="CONTAINER" value="CommunicationMediumCampaign"/>
+            <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="1e6a750e-fd92-49b3-90b0-11ba277b3c82"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="51085b8b-ded0-4d1d-9e85-ae89bd1480fe"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="5e65d4a0-af83-4a7b-babb-b1b7af4b9f20"/>
+            <column name="CHAR_VALUE" value="No fax"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="c3a88502-d1a7-4af0-b30c-396a66d3c195"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="51085b8b-ded0-4d1d-9e85-ae89bd1480fe"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="d6c0fd72-ded2-4e4d-adf5-f8832d7b24f2"/>
+            <column name="CHAR_VALUE" value="VAADIN:PRINT"/>
+        </insert> 
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="b72ba2f5-612b-4ef6-832e-62089892b8d7"/>
+
+            <column name="KEYID" value="fbf68c7e-655d-42ca-a279-6606004cafe4"/>
+            <column name="TITLE" value="SMS"/>
+            <column name="CONTAINER" value="CommunicationMediumCampaign"/>
+            <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="a92e3492-875e-40e6-947e-3077e9cb6e36"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="b72ba2f5-612b-4ef6-832e-62089892b8d7"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="5e65d4a0-af83-4a7b-babb-b1b7af4b9f20"/>
+            <column name="CHAR_VALUE" value="No SMS"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="0a2db2d9-39ce-4c4f-999c-127881407b3f"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="b72ba2f5-612b-4ef6-832e-62089892b8d7"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="d6c0fd72-ded2-4e4d-adf5-f8832d7b24f2"/>
+            <column name="CHAR_VALUE" value="VAADIN:PAPERPLANE"/>
+        </insert> 
+        <rollback>
+            <delete tableName="AB_KEYWORD_ATTRIBUTE">
+                <where>AB_KEYWORD_ATTRIBUTEID = ?</where>
+                <whereParams>
+                    <param value="5e65d4a0-af83-4a7b-babb-b1b7af4b9f20" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTE">
+                <where>AB_KEYWORD_ATTRIBUTEID = ?</where>
+                <whereParams>
+                    <param value="d6c0fd72-ded2-4e4d-adf5-f8832d7b24f2" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="2acd3694-ccef-4d0b-ae7a-b3d31f8d9cc0" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="cb07397b-a976-4960-b8e5-9edf189c5caf" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="ca0302d1-23ec-49a3-a076-ea14854d5b92" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="08976dd1-ae7e-4c33-b5a3-c2889a295651" />
+                </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="9d8e534d-9c34-4cb7-b0bb-7428e8942482" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="6767aead-da3c-4ce4-a95c-fbd6f4401c53" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="990a03e0-aeb4-4bdb-9d22-09b66eee6b85" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="766e211d-07ed-4d23-b5e9-f455511811d8" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="9d09f8a7-dc4b-4a70-b1e3-d5f607637c0b" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="51085b8b-ded0-4d1d-9e85-ae89bd1480fe" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="1e6a750e-fd92-49b3-90b0-11ba277b3c82" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="c3a88502-d1a7-4af0-b30c-396a66d3c195" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ENTRY">
+                <where>AB_KEYWORD_ENTRYID = ?</where>
+                <whereParams>
+                    <param value="b72ba2f5-612b-4ef6-832e-62089892b8d7" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="a92e3492-875e-40e6-947e-3077e9cb6e36" />
+                </whereParams>
+            </delete>
+            <delete tableName="AB_KEYWORD_ATTRIBUTERELATION">
+                <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where>
+                <whereParams>
+                    <param value="0a2db2d9-39ce-4c4f-999c-127881407b3f" />
+                </whereParams>
+            </delete>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2019.2/AditoBasic/salesprojectsource_add_icon_attr.xml b/.liquibase/Data_alias/basic/2019.2/AditoBasic/salesprojectsource_add_icon_attr.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a8099715835eb541392625c9c63b1cf7e6bf9210
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2019.2/AditoBasic/salesprojectsource_add_icon_attr.xml
@@ -0,0 +1,37 @@
+<?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="s.leierseder" id="49ca80b4-7735-4300-8603-6761672b2048">
+        <insert tableName="AB_KEYWORD_ATTRIBUTE">
+            <column name="AB_KEYWORD_ATTRIBUTEID" value="4b05ec8a-6964-40e5-8713-0043ca926eb6"/>
+
+            <column name="NAME" value="defaultAvatarRepresentation"/>
+            <column name="CONTAINER" value="SalesprojectSource"/>
+            <column name="TYPE" value="CHAR_VALUE"/>
+        </insert>
+
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="4a6b782b-1b15-45d7-9acb-831312d3f745"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="f83c96e3-47be-4ca1-bc47-4a3a2fce7fca"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="4b05ec8a-6964-40e5-8713-0043ca926eb6"/>
+            <column name="CHAR_VALUE" value="VAADIN:GLOBE_WIRE"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="f3b79959-00e3-4361-b042-6c179dc6cbca"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="1a197ade-0c61-4643-8287-159719d519b4"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="4b05ec8a-6964-40e5-8713-0043ca926eb6"/>
+            <column name="CHAR_VALUE" value="VAADIN:HOME"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="54c417d8-e567-41ae-8d56-277559f7b023"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="f552b84a-b8e7-472a-9ce5-d64e7f14e74b"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="4b05ec8a-6964-40e5-8713-0043ca926eb6"/>
+            <column name="CHAR_VALUE" value="VAADIN:HOME"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="a6157376-f0af-49f2-b55e-5c0acc331742"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="7ea06933-94c9-4a05-ba7d-4266df9e4ab2"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="4b05ec8a-6964-40e5-8713-0043ca926eb6"/>
+            <column name="CHAR_VALUE" value="VAADIN:SHOP"/>
+        </insert>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2019.2/Ticketmanagement/insert_TaskType_Task.xml b/.liquibase/Data_alias/basic/2019.2/Ticketmanagement/insert_TaskType_Task.xml
index 86cbe99543c78f872f95443701c60071039e6a7b..4013cfcce2a90ba6e8ca13a500e4ffe86c2644fc 100644
--- a/.liquibase/Data_alias/basic/2019.2/Ticketmanagement/insert_TaskType_Task.xml
+++ b/.liquibase/Data_alias/basic/2019.2/Ticketmanagement/insert_TaskType_Task.xml
@@ -15,7 +15,13 @@
         </insert>
         <insert tableName="AB_KEYWORD_ATTRIBUTE">
             <column name="AB_KEYWORD_ATTRIBUTEID" value="6f10015d-b7ee-43aa-99f9-87960ec2e4fd"/>
-            <column name="NAME" value="status"/>
+            <column name="NAME" value="availableStatus"/>
+            <column name="CONTAINER" value="TaskType"/>
+            <column name="TYPE" value="CHAR_VALUE"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTE">
+            <column name="AB_KEYWORD_ATTRIBUTEID" value="729a41d1-0463-480d-bf7b-0eb6c2e96f37"/>
+            <column name="NAME" value="defaultStatus"/>
             <column name="CONTAINER" value="TaskType"/>
             <column name="TYPE" value="CHAR_VALUE"/>
         </insert>
@@ -38,11 +44,17 @@
             <column name="AB_KEYWORD_ATTRIBUTE_ID" value="9ac96671-b519-488b-bbad-6dea3e5baafd"/>
             <column name="BOOL_VALUE" valueNumeric="0"/>
         </insert>
+        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="169edc60-5bad-45eb-b938-46a47b10a0a3"/>
+            <column name="AB_KEYWORD_ENTRY_ID" value="9e30365b-a9a6-4b57-ae6b-140c9e5a4eb4"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="729a41d1-0463-480d-bf7b-0eb6c2e96f37"/>
+            <column name="CHAR_VALUE" value="21bc4d20-1a87-4247-8f7c-8d3a09631850"/>
+        </insert>
         
         <insert tableName="AB_KEYWORD_ENTRY">
             <column name="AB_KEYWORD_ENTRYID" value="2ef84e0e-988a-44b4-9d14-3461555d2f18"/>
             <column name="KEYID" value="f3da0edd-49d9-4061-98c1-8fda8631be7e"/>
-            <column name="TITLE" value="Bug Ticket"/>
+            <column name="TITLE" value="Complaint"/>
             <column name="CONTAINER" value="TaskType"/>
             <column name="SORTING" valueNumeric="1"/>
             <column name="ISACTIVE" valueNumeric="1"/>
@@ -61,12 +73,12 @@
             <column name="CHAR_VALUE" value="[&quot;ff8b1caf-cf30-4edb-b5ca-a9a219ba8399&quot;]"/>
         </insert>
         <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
-            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="1e35235b-fc50-4098-bf10-2b05b4c37373"/>
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="4cabba92-fa98-42c8-aabb-8bff718c1502"/>
             <column name="AB_KEYWORD_ENTRY_ID" value="2ef84e0e-988a-44b4-9d14-3461555d2f18"/>
-            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="6f10015d-b7ee-43aa-99f9-87960ec2e4fd"/>
-            <column name="CHAR_VALUE" value="TicketStatus"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="729a41d1-0463-480d-bf7b-0eb6c2e96f37"/>
+            <column name="CHAR_VALUE" value="21bc4d20-1a87-4247-8f7c-8d3a09631850"/>
         </insert>
-
+        
         <insert tableName="AB_KEYWORD_ENTRY">
             <column name="AB_KEYWORD_ENTRYID" value="9d326a2a-923c-41de-adb9-b0f86417e7c2"/>
             <column name="KEYID" value="7bf77721-470f-4cdf-a6af-452bf05a405b"/>
@@ -89,10 +101,10 @@
             <column name="CHAR_VALUE" value="[&quot;01d761e0-802a-46d0-827f-b6ca5d9a2148&quot;]"/>
         </insert>
         <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
-            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="713685f5-18d6-4c8a-ad4c-1d193ca0b592"/>
+            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="b7d946e4-3644-4f97-96cb-f2331fc3aa1e"/>
             <column name="AB_KEYWORD_ENTRY_ID" value="9d326a2a-923c-41de-adb9-b0f86417e7c2"/>
-            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="6f10015d-b7ee-43aa-99f9-87960ec2e4fd"/>
-            <column name="CHAR_VALUE" value="TicketStatus"/>
+            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="729a41d1-0463-480d-bf7b-0eb6c2e96f37"/>
+            <column name="CHAR_VALUE" value="21bc4d20-1a87-4247-8f7c-8d3a09631850"/>
         </insert>
     </changeSet>
 </databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2019.2/Ticketmanagement/insert_TicketStatus_Task.xml b/.liquibase/Data_alias/basic/2019.2/Ticketmanagement/insert_TicketStatus_Task.xml
deleted file mode 100644
index 4a5f7e51ee9f2e0a796bad89d34d47305c98dd6b..0000000000000000000000000000000000000000
--- a/.liquibase/Data_alias/basic/2019.2/Ticketmanagement/insert_TicketStatus_Task.xml
+++ /dev/null
@@ -1,107 +0,0 @@
-<?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="d1440b93-e01c-406b-9f0d-c55cac877fcd">
-        <insert tableName="AB_KEYWORD_ATTRIBUTE">
-            <column name="AB_KEYWORD_ATTRIBUTEID" value="7186d414-710b-4171-902f-f96f728fe38f"/>
-            <column name="NAME" value="icon"/>
-            <column name="CONTAINER" value="TicketStatus"/>
-            <column name="TYPE" value="CHAR_VALUE"/>
-        </insert>
-        
-        <insert tableName="AB_KEYWORD_ENTRY">
-            <column name="AB_KEYWORD_ENTRYID" value="9cd52d5f-7438-45f9-96d9-47d093dc3245"/>
-            <column name="KEYID" value="ea5a0f80-4ba2-442f-892d-4992d664705b"/>
-            <column name="TITLE" value="new"/>
-            <column name="CONTAINER" value="TicketStatus"/>
-            <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="1a93bc02-6cec-4f56-9b63-fac2f5ff4dc5"/>
-            <column name="AB_KEYWORD_ENTRY_ID" value="9cd52d5f-7438-45f9-96d9-47d093dc3245"/>
-            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="7186d414-710b-4171-902f-f96f728fe38f"/>
-            <column name="CHAR_VALUE" value="NEON:STATUS_NOT_STARTED"/>
-        </insert>
-
-        <insert tableName="AB_KEYWORD_ENTRY">
-            <column name="AB_KEYWORD_ENTRYID" value="75175699-62bd-43bf-81a1-0e0ace930e39"/>
-            <column name="KEYID" value="6f5fb83d-9a2a-420a-a73c-22bd7d31d3d5"/>
-            <column name="TITLE" value="in process"/>
-            <column name="CONTAINER" value="TicketStatus"/>
-            <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="c67cdf5a-18e6-45ff-a077-5a8b0a174c00"/>
-            <column name="AB_KEYWORD_ENTRY_ID" value="75175699-62bd-43bf-81a1-0e0ace930e39"/>
-            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="7186d414-710b-4171-902f-f96f728fe38f"/>
-            <column name="CHAR_VALUE" value="NEON:STATUS_IN_PROGRESS"/>
-        </insert>
-        
-        <insert tableName="AB_KEYWORD_ENTRY">
-            <column name="AB_KEYWORD_ENTRYID" value="d9c2402b-62d2-4d3e-9d48-c102c45935bd"/>
-            <column name="KEYID" value="34327ed4-75ed-4040-adc2-2919afe99209"/>
-            <column name="TITLE" value="testing"/>
-            <column name="CONTAINER" value="TicketStatus"/>
-            <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="b429d563-2e04-4df8-a800-e3abf0c2bb66"/>
-            <column name="AB_KEYWORD_ENTRY_ID" value="d9c2402b-62d2-4d3e-9d48-c102c45935bd"/>
-            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="7186d414-710b-4171-902f-f96f728fe38f"/>
-            <column name="CHAR_VALUE" value="NEON:STATUS_WAITING"/>
-        </insert>
-        
-        <insert tableName="AB_KEYWORD_ENTRY">
-            <column name="AB_KEYWORD_ENTRYID" value="b0549a0d-d0e2-46be-9e57-741d6ddfc2ae"/>
-            <column name="KEYID" value="b0549a0d-d0e2-46be-9e57-741d6ddfc2ae"/>
-            <column name="TITLE" value="waiting"/>
-            <column name="CONTAINER" value="TicketStatus"/>
-            <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="e07e624c-1556-4908-a80f-7656fc5f2009"/>
-            <column name="AB_KEYWORD_ENTRY_ID" value="b0549a0d-d0e2-46be-9e57-741d6ddfc2ae"/>
-            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="7186d414-710b-4171-902f-f96f728fe38f"/>
-            <column name="CHAR_VALUE" value="NEON:STATUS_WAITING"/>
-        </insert>
-        
-        <insert tableName="AB_KEYWORD_ENTRY">
-            <column name="AB_KEYWORD_ENTRYID" value="5d938aa3-cf32-4cd0-97a5-2b685ff7dc1b"/>
-            <column name="KEYID" value="84b84207-25ae-4988-ba0a-f998f64afb37"/>
-            <column name="TITLE" value="double"/>
-            <column name="CONTAINER" value="TicketStatus"/>
-            <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="3b295993-8bbb-442f-8405-99adbad3ad7d"/>
-            <column name="AB_KEYWORD_ENTRY_ID" value="5d938aa3-cf32-4cd0-97a5-2b685ff7dc1b"/>
-            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="7186d414-710b-4171-902f-f96f728fe38f"/>
-            <column name="CHAR_VALUE" value="NEON:STATUS_DONE"/>
-        </insert>
-        
-        <insert tableName="AB_KEYWORD_ENTRY">
-            <column name="AB_KEYWORD_ENTRYID" value="73a6493d-37a4-47ce-8d38-53a5e72e76c1"/>
-            <column name="KEYID" value="18ca0cb6-54d2-4696-8f24-b67c8aa56a77"/>
-            <column name="TITLE" value="closed"/>
-            <column name="CONTAINER" value="TicketStatus"/>
-            <column name="SORTING" valueNumeric="5"/>
-            <column name="ISACTIVE" valueNumeric="1"/>
-            <column name="ISESSENTIAL" valueNumeric="0"/>
-        </insert>
-        <insert tableName="AB_KEYWORD_ATTRIBUTERELATION">
-            <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="22bac516-3dd6-47f1-a95b-26712031630b"/>
-            <column name="AB_KEYWORD_ENTRY_ID" value="73a6493d-37a4-47ce-8d38-53a5e72e76c1"/>
-            <column name="AB_KEYWORD_ATTRIBUTE_ID" value="7186d414-710b-4171-902f-f96f728fe38f"/>
-            <column name="CHAR_VALUE" value="NEON:STATUS_DONE"/>
-        </insert>
-    </changeSet>
-</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2019.2/changelog.xml b/.liquibase/Data_alias/basic/2019.2/changelog.xml
index 10a9b2c92186abc167ae643988ffecd3cc0e90c2..fde3e882e7a218bc99563e477aa1a91d2b088331 100644
--- a/.liquibase/Data_alias/basic/2019.2/changelog.xml
+++ b/.liquibase/Data_alias/basic/2019.2/changelog.xml
@@ -70,6 +70,7 @@
     <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_CommunicationMediumCampaign.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"/>
@@ -183,6 +184,8 @@
     
     <include relativeToChangelogFile="true" file="Ticketmanagement/insertTicketAttributes_TaskType_Task.xml"/>
     <include relativeToChangelogFile="true" file="Ticketmanagement/insert_TaskType_Task.xml"/>
-    <include relativeToChangelogFile="true" file="Ticketmanagement/insert_TicketStatus_Task.xml"/>
     <include relativeToChangelogFile="true" file="Ticketmanagement/update_TaskStatus_add_icon.xml"/>
+    
+    <include relativeToChangelogFile="true" file="AditoBasic/salesprojectsource_add_icon_attr.xml"/>
+    
 </databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/init/init.xml b/.liquibase/Data_alias/basic/init/init.xml
index c4653839c7b975a5f2951845804b0ef995888eeb..e876310e9ee3b12d48593794ad3b6a32af0856c1 100644
--- a/.liquibase/Data_alias/basic/init/init.xml
+++ b/.liquibase/Data_alias/basic/init/init.xml
@@ -36,6 +36,7 @@
     <include relativeToChangelogFile="true" file="struct/create_salesorderitem.xml"/>
     <include relativeToChangelogFile="true" file="struct/create_timetracking.xml"/>
     <include relativeToChangelogFile="true" file="struct/create_task.xml"/>
+    <include relativeToChangelogFile="true" file="struct/create_commrestriction.xml"/>
     
     <!--reference files for keywords:--> 
     <include relativeToChangelogFile="true" file="data/AditoBasic/ab_keyword_entry.xml"/>
diff --git a/.liquibase/Data_alias/basic/init/struct/create_commrestriction.xml b/.liquibase/Data_alias/basic/init/struct/create_commrestriction.xml
new file mode 100644
index 0000000000000000000000000000000000000000..11015875e8780c908331e88b49f243b2d8d84095
--- /dev/null
+++ b/.liquibase/Data_alias/basic/init/struct/create_commrestriction.xml
@@ -0,0 +1,15 @@
+<?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="s.leierseder" id="b4c37abb-8d02-4fcf-a585-64e61864ece6">
+        <createTable tableName="COMMRESTRICTION">
+            <column name="COMMRESTRICTIONID" type="CHAR(36)">
+                <constraints primaryKey="true" primaryKeyName="PK_COMMRESTRICTION_COMMRESTRICTIONID"/>
+            </column>
+            <column name="MEDIUM" type="CHAR(36)"/>
+            <column name="REASON" type="NVARCHAR(250)"/>
+            <column name="CONTACT_ID" type="CHAR(36)"/>
+            <column name="STARTDATE" type="DATETIME"/>
+            <column name="EMPLOYEE_INVOLVED" type="NVARCHAR(250)"/>
+        </createTable>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/application/_____SYSTEM_APPLICATION/_____SYSTEM_APPLICATION.aod b/application/_____SYSTEM_APPLICATION/_____SYSTEM_APPLICATION.aod
index ec11a32ebe4eeb702b0d4b93821a9c92ad8d77c7..7fa0bc63cd21d38f632e3023c12f85e0558e2c9f 100644
--- a/application/_____SYSTEM_APPLICATION/_____SYSTEM_APPLICATION.aod
+++ b/application/_____SYSTEM_APPLICATION/_____SYSTEM_APPLICATION.aod
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<application xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/application/1.2.1">
-  <name>_____SYSTEM_APPLICATION</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <entityNode>
-    <name>entityNode</name>
-    <kind v="200" />
-  </entityNode>
-  <company>
-    <name>company</name>
-    <backgroundColor v="0xff83cbd8" />
-  </company>
-</application>
+<?xml version="1.0" encoding="UTF-8"?>
+<application xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/application/1.2.1">
+  <name>_____SYSTEM_APPLICATION</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <entityNode>
+    <name>entityNode</name>
+    <kind v="200" />
+  </entityNode>
+  <company>
+    <name>company</name>
+    <backgroundColor v="0xff83cbd8" />
+  </company>
+</application>
diff --git a/application/_____SYSTEM_CALENDAR_RIBBON/_____SYSTEM_CALENDAR_RIBBON.aod b/application/_____SYSTEM_CALENDAR_RIBBON/_____SYSTEM_CALENDAR_RIBBON.aod
index 9c0722a0cb6e6ee0addb2a5dbc0838334dd09970..8330bf556d46213b0e263bf3b76ad40ba146b7f0 100644
--- a/application/_____SYSTEM_CALENDAR_RIBBON/_____SYSTEM_CALENDAR_RIBBON.aod
+++ b/application/_____SYSTEM_CALENDAR_RIBBON/_____SYSTEM_CALENDAR_RIBBON.aod
@@ -1,17 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<application xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/application/1.2.1">
-  <name>_____SYSTEM_CALENDAR_RIBBON</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <entityNode>
-    <name>entityNode</name>
-    <kind v="200" />
-  </entityNode>
-  <calendarRibbon>
-    <name>calendarRibbon</name>
-    <ribbonTasks>
-      <ribbonTask>
-        <name>TASK_CALENDAR</name>
-      </ribbonTask>
-    </ribbonTasks>
-  </calendarRibbon>
-</application>
+<?xml version="1.0" encoding="UTF-8"?>
+<application xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/application/1.2.1">
+  <name>_____SYSTEM_CALENDAR_RIBBON</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <entityNode>
+    <name>entityNode</name>
+    <kind v="200" />
+  </entityNode>
+  <calendarRibbon>
+    <name>calendarRibbon</name>
+    <ribbonTasks>
+      <ribbonTask>
+        <name>TASK_CALENDAR</name>
+      </ribbonTask>
+    </ribbonTasks>
+  </calendarRibbon>
+</application>
diff --git a/application/_____SYSTEM_CALENDAR_RIBBON_NEON/_____SYSTEM_CALENDAR_RIBBON_NEON.aod b/application/_____SYSTEM_CALENDAR_RIBBON_NEON/_____SYSTEM_CALENDAR_RIBBON_NEON.aod
index d75ce776afb4af858583e7c7e58fd4da2b68fa6d..ad4a9d9fe39f6033cffd97d3fc8818b72956eeb9 100644
--- a/application/_____SYSTEM_CALENDAR_RIBBON_NEON/_____SYSTEM_CALENDAR_RIBBON_NEON.aod
+++ b/application/_____SYSTEM_CALENDAR_RIBBON_NEON/_____SYSTEM_CALENDAR_RIBBON_NEON.aod
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<application xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/application/1.2.1">
-  <name>_____SYSTEM_CALENDAR_RIBBON_NEON</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <entityNode>
-    <name>entityNode</name>
-    <kind v="200" />
-  </entityNode>
-  <neonCalendarRibbon>
-    <name>neonCalendarRibbon</name>
-    <entity>
-      <name>entity</name>
-    </entity>
-  </neonCalendarRibbon>
-</application>
+<?xml version="1.0" encoding="UTF-8"?>
+<application xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/application/1.2.1">
+  <name>_____SYSTEM_CALENDAR_RIBBON_NEON</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <entityNode>
+    <name>entityNode</name>
+    <kind v="200" />
+  </entityNode>
+  <neonCalendarRibbon>
+    <name>neonCalendarRibbon</name>
+    <entity>
+      <name>entity</name>
+    </entity>
+  </neonCalendarRibbon>
+</application>
diff --git a/application/_____SYSTEM_INDEXSEARCH_RIBBON/_____SYSTEM_INDEXSEARCH_RIBBON.aod b/application/_____SYSTEM_INDEXSEARCH_RIBBON/_____SYSTEM_INDEXSEARCH_RIBBON.aod
index aed93b8da3aa895422ae40f41b66bdd50f0d3bdd..0da3c760e4fab15c3b667450bcc8bb0034e2f547 100644
--- a/application/_____SYSTEM_INDEXSEARCH_RIBBON/_____SYSTEM_INDEXSEARCH_RIBBON.aod
+++ b/application/_____SYSTEM_INDEXSEARCH_RIBBON/_____SYSTEM_INDEXSEARCH_RIBBON.aod
@@ -1,17 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<application xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/application/1.2.1">
-  <name>_____SYSTEM_INDEXSEARCH_RIBBON</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <entityNode>
-    <name>entityNode</name>
-    <kind v="200" />
-  </entityNode>
-  <indexSearchRibbon>
-    <name>indexSearchRibbon</name>
-    <ribbonTasks>
-      <ribbonTask>
-        <name>TASK_INDEXSEARCH</name>
-      </ribbonTask>
-    </ribbonTasks>
-  </indexSearchRibbon>
-</application>
+<?xml version="1.0" encoding="UTF-8"?>
+<application xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/application/1.2.1">
+  <name>_____SYSTEM_INDEXSEARCH_RIBBON</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <entityNode>
+    <name>entityNode</name>
+    <kind v="200" />
+  </entityNode>
+  <indexSearchRibbon>
+    <name>indexSearchRibbon</name>
+    <ribbonTasks>
+      <ribbonTask>
+        <name>TASK_INDEXSEARCH</name>
+      </ribbonTask>
+    </ribbonTasks>
+  </indexSearchRibbon>
+</application>
diff --git a/application/_____SYSTEM_INDEXSEARCH_RIBBON_NEON/_____SYSTEM_INDEXSEARCH_RIBBON_NEON.aod b/application/_____SYSTEM_INDEXSEARCH_RIBBON_NEON/_____SYSTEM_INDEXSEARCH_RIBBON_NEON.aod
index 45edac7e715795520238ce9f82aca48008dee834..3ad5be3eb1c0ff7b9e1a4b48f920704edf01932c 100644
--- a/application/_____SYSTEM_INDEXSEARCH_RIBBON_NEON/_____SYSTEM_INDEXSEARCH_RIBBON_NEON.aod
+++ b/application/_____SYSTEM_INDEXSEARCH_RIBBON_NEON/_____SYSTEM_INDEXSEARCH_RIBBON_NEON.aod
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<application xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/application/1.2.1">
-  <name>_____SYSTEM_INDEXSEARCH_RIBBON_NEON</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <entityNode>
-    <name>entityNode</name>
-    <kind v="200" />
-  </entityNode>
-  <neonIndexSearchRibbon>
-    <name>neonIndexSearchRibbon</name>
-  </neonIndexSearchRibbon>
-</application>
+<?xml version="1.0" encoding="UTF-8"?>
+<application xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/application/1.2.1">
+  <name>_____SYSTEM_INDEXSEARCH_RIBBON_NEON</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <entityNode>
+    <name>entityNode</name>
+    <kind v="200" />
+  </entityNode>
+  <neonIndexSearchRibbon>
+    <name>neonIndexSearchRibbon</name>
+  </neonIndexSearchRibbon>
+</application>
diff --git a/entity/360Degree_entity/entityfields/newmodule/children/newoffer/onActionProcess.js b/entity/360Degree_entity/entityfields/newmodule/children/newoffer/onActionProcess.js
index 0be1b35b781bca3828a99415c0d7dac475792176..69da5ef8011ebb9b1aedba6ffe05541816995649 100644
--- a/entity/360Degree_entity/entityfields/newmodule/children/newoffer/onActionProcess.js
+++ b/entity/360Degree_entity/entityfields/newmodule/children/newoffer/onActionProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("Offer_lib");
 
-OfferUtils.createNewOffer(null, vars.getString("$param.ObjectRowId_param"));
\ No newline at end of file
+OfferUtils.createNewOffer(null, null, vars.getString("$param.ObjectRowId_param"));
\ No newline at end of file
diff --git a/entity/Activity_entity/entityfields/newoffer/onActionProcess.js b/entity/Activity_entity/entityfields/newoffer/onActionProcess.js
index c8ece29b25cd7e84188ceb35fee3e7b999f77476..09323bf30c541b504c98b32af02d2ad9546349a7 100644
--- a/entity/Activity_entity/entityfields/newoffer/onActionProcess.js
+++ b/entity/Activity_entity/entityfields/newoffer/onActionProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("Offer_lib");
 
-OfferUtils.createNewOffer(null, vars.getString("$field.ACTIVITYID"));
\ No newline at end of file
+OfferUtils.createNewOffer(null, null, vars.getString("$field.ACTIVITYID"));
\ No newline at end of file
diff --git a/entity/AnyContact_entity/AnyContact_entity.aod b/entity/AnyContact_entity/AnyContact_entity.aod
index 212ff19be1cd95c75a03422a13372927db441c66..50859654a81be104cd9e408d99af51d335d73098 100644
--- a/entity/AnyContact_entity/AnyContact_entity.aod
+++ b/entity/AnyContact_entity/AnyContact_entity.aod
@@ -1,220 +1,242 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
-  <name>AnyContact_entity</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <contentTitleProcess>%aditoprj%/entity/AnyContact_entity/contentTitleProcess.js</contentTitleProcess>
-  <recordContainer>db</recordContainer>
-  <entityFields>
-    <entityProvider>
-      <name>#PROVIDER</name>
-      <dependencies>
-        <entityDependency>
-          <name>5d8b421e-a234-4d03-bfec-ed01f464a54c</name>
-          <entityName>Contract_entity</entityName>
-          <fieldName>Relations</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>94e4fa2c-7525-49f9-b933-353d200b829c</name>
-          <entityName>Offer_entity</entityName>
-          <fieldName>Relations</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>f1f7d959-ecb5-4438-9762-fc11f1bc5334</name>
-          <entityName>Order_entity</entityName>
-          <fieldName>Relations</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>336fdc6b-05f8-40bc-89ba-d4ab98bd6948</name>
-          <entityName>CampaignParticipant_entity</entityName>
-          <fieldName>AnyContacts</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-    </entityProvider>
-    <entityField>
-      <name>ADDRESS_ID</name>
-      <title>standard address</title>
-      <searchable v="false" />
-      <displayValueProcess>%aditoprj%/entity/AnyContact_entity/entityfields/address_id/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>LANGUAGE</name>
-      <searchable v="false" />
-    </entityField>
-    <entityField>
-      <name>ORGANISATION_ID</name>
-      <searchable v="false" />
-    </entityField>
-    <entityField>
-      <name>PERSON_ID</name>
-      <searchable v="false" />
-    </entityField>
-    <entityField>
-      <name>CONTACTID</name>
-      <searchable v="false" />
-    </entityField>
-    <entityField>
-      <name>STATUS</name>
-      <searchable v="false" />
-    </entityField>
-    <entityField>
-      <name>contactType</name>
-      <description>Relation type. Value is based on the existance or non-existance of ORGANISATION_ID and PERSON_ID.
-See ContactUtils.getRelationTypeByPersOrg for possible values</description>
-      <contentType>NUMBER</contentType>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/AnyContact_entity/entityfields/contactType/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>ORGANISATION_NAME</name>
-      <title>Organisation name</title>
-    </entityField>
-    <entityField>
-      <name>PERSON_FIRSTNAME</name>
-      <title>Firstname</title>
-    </entityField>
-    <entityField>
-      <name>PERSON_LASTNAME</name>
-      <title>Lastname</title>
-    </entityField>
-    <entityField>
-      <name>IMAGE</name>
-      <contentType>IMAGE</contentType>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/AnyContact_entity/entityfields/image/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>STANDARD_EMAIL_COMMUNICATION</name>
-      <title>standard email</title>
-      <searchable v="false" />
-    </entityField>
-    <entityField>
-      <name>STANDARD_PHONE_COMMUNICATION</name>
-      <title>Phone</title>
-      <searchable v="false" />
-    </entityField>
-    <entityField>
-      <name>RELATIONSHIP</name>
-      <description>TODO: Beziehung zu der Relation 1024846 (z.B. per Ampelsystem)</description>
-      <searchable v="false" />
-    </entityField>
-    <entityField>
-      <name>PERSON_MIDDLENAME</name>
-    </entityField>
-    <entityField>
-      <name>PERSON_TITLE</name>
-    </entityField>
-    <entityField>
-      <name>PERSON_SALUTATION</name>
-    </entityField>
-    <entityField>
-      <name>PERSON_FULL_NAME</name>
-      <title>Person</title>
-      <valueProcess>%aditoprj%/entity/AnyContact_entity/entityfields/person_full_name/valueProcess.js</valueProcess>
-    </entityField>
-  </entityFields>
-  <recordContainers>
-    <dbRecordContainer>
-      <name>db</name>
-      <alias>Data_alias</alias>
-      <fromClauseProcess>%aditoprj%/entity/AnyContact_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
-      <conditionProcess>%aditoprj%/entity/AnyContact_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <orderClauseProcess>%aditoprj%/entity/AnyContact_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <linkInformation>
-        <linkInformation>
-          <name>7b3fa460-44a1-40f3-89e3-1625ce9c6bb3</name>
-          <tableName>CONTACT</tableName>
-          <primaryKey>CONTACTID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>6786a204-2cea-42ae-857d-4335bad6b5e4</name>
-          <tableName>ORGANISATION</tableName>
-          <primaryKey>ORGANISATIONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>d15ccb84-6928-4c44-b940-0f5d04826b55</name>
-          <tableName>PERSON</tableName>
-          <primaryKey>PERSONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>b778622f-449a-4185-b7cb-9b373ba4024f</name>
-          <tableName>ADDRESS</tableName>
-          <primaryKey>ADDRESSID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
-      <recordFieldMappings>
-        <dbRecordFieldMapping>
-          <name>ADDRESS_ID.value</name>
-          <recordfield>CONTACT.ADDRESS_ID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>LANGUAGE.value</name>
-          <recordfield>CONTACT.LANGUAGE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>ORGANISATION_ID.value</name>
-          <recordfield>CONTACT.ORGANISATION_ID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PERSON_ID.value</name>
-          <recordfield>CONTACT.PERSON_ID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>CONTACTID.value</name>
-          <recordfield>CONTACT.CONTACTID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>STATUS.value</name>
-          <recordfield>CONTACT.STATUS</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>ORGANISATION_NAME.value</name>
-          <recordfield>ORGANISATION.NAME</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PERSON_FIRSTNAME.value</name>
-          <recordfield>PERSON.FIRSTNAME</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PERSON_LASTNAME.value</name>
-          <recordfield>PERSON.LASTNAME</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>STANDARD_EMAIL_COMMUNICATION.value</name>
-          <expression>%aditoprj%/entity/AnyContact_entity/recordcontainers/db/recordfieldmappings/standard_email_communication.value/expression.js</expression>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>STANDARD_PHONE_COMMUNICATION.value</name>
-          <expression>%aditoprj%/entity/AnyContact_entity/recordcontainers/db/recordfieldmappings/standard_phone_communication.value/expression.js</expression>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>RELATIONSHIP.value</name>
-          <recordfield>CONTACT.RELATIONSHIP</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PERSON_MIDDLENAME.value</name>
-          <recordfield>PERSON.MIDDLENAME</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PERSON_TITLE.value</name>
-          <recordfield>PERSON.TITLE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PERSON_SALUTATION.value</name>
-          <recordfield>PERSON.SALUTATION</recordfield>
-        </dbRecordFieldMapping>
-      </recordFieldMappings>
-    </dbRecordContainer>
-  </recordContainers>
-</entity>
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
+  <name>AnyContact_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <contentTitleProcess>%aditoprj%/entity/AnyContact_entity/contentTitleProcess.js</contentTitleProcess>
+  <recordContainer>db</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+      <dependencies>
+        <entityDependency>
+          <name>5d8b421e-a234-4d03-bfec-ed01f464a54c</name>
+          <entityName>Contract_entity</entityName>
+          <fieldName>Relations</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>94e4fa2c-7525-49f9-b933-353d200b829c</name>
+          <entityName>Offer_entity</entityName>
+          <fieldName>Relations</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>f1f7d959-ecb5-4438-9762-fc11f1bc5334</name>
+          <entityName>Order_entity</entityName>
+          <fieldName>Relations</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>336fdc6b-05f8-40bc-89ba-d4ab98bd6948</name>
+          <entityName>CampaignParticipant_entity</entityName>
+          <fieldName>AnyContacts</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+    <entityField>
+      <name>ADDRESS_ID</name>
+      <title>standard address</title>
+      <searchable v="false" />
+      <displayValueProcess>%aditoprj%/entity/AnyContact_entity/entityfields/address_id/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>LANGUAGE</name>
+      <searchable v="false" />
+    </entityField>
+    <entityField>
+      <name>ORGANISATION_ID</name>
+      <searchable v="false" />
+    </entityField>
+    <entityField>
+      <name>PERSON_ID</name>
+      <searchable v="false" />
+    </entityField>
+    <entityField>
+      <name>CONTACTID</name>
+      <searchable v="false" />
+    </entityField>
+    <entityField>
+      <name>STATUS</name>
+      <searchable v="false" />
+    </entityField>
+    <entityField>
+      <name>contactType</name>
+      <description>Relation type. Value is based on the existance or non-existance of ORGANISATION_ID and PERSON_ID.
+See ContactUtils.getRelationTypeByPersOrg for possible values</description>
+      <contentType>NUMBER</contentType>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/AnyContact_entity/entityfields/contactType/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>ORGANISATION_NAME</name>
+      <title>Organisation name</title>
+    </entityField>
+    <entityField>
+      <name>PERSON_FIRSTNAME</name>
+      <title>Firstname</title>
+    </entityField>
+    <entityField>
+      <name>PERSON_LASTNAME</name>
+      <title>Lastname</title>
+    </entityField>
+    <entityField>
+      <name>IMAGE</name>
+      <contentType>IMAGE</contentType>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/AnyContact_entity/entityfields/image/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>STANDARD_EMAIL_COMMUNICATION</name>
+      <title>standard email</title>
+      <searchable v="false" />
+    </entityField>
+    <entityField>
+      <name>STANDARD_PHONE_COMMUNICATION</name>
+      <title>Phone</title>
+      <searchable v="false" />
+    </entityField>
+    <entityField>
+      <name>RELATIONSHIP</name>
+      <description>TODO: Beziehung zu der Relation 1024846 (z.B. per Ampelsystem)</description>
+      <searchable v="false" />
+    </entityField>
+    <entityField>
+      <name>PERSON_MIDDLENAME</name>
+    </entityField>
+    <entityField>
+      <name>PERSON_TITLE</name>
+    </entityField>
+    <entityField>
+      <name>PERSON_SALUTATION</name>
+    </entityField>
+    <entityField>
+      <name>PERSON_FULL_NAME</name>
+      <title>Person</title>
+      <valueProcess>%aditoprj%/entity/AnyContact_entity/entityfields/person_full_name/valueProcess.js</valueProcess>
+    </entityField>
+    <entityParameter>
+      <name>ContactId_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityProvider>
+      <name>OnlySameCompany</name>
+      <dependencies>
+        <entityDependency>
+          <name>28b19d6b-237c-4268-b6c6-323df408c94a</name>
+          <entityName>Offer_entity</entityName>
+          <fieldName>AnyContacts</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+  </entityFields>
+  <recordContainers>
+    <dbRecordContainer>
+      <name>db</name>
+      <alias>Data_alias</alias>
+      <fromClauseProcess>%aditoprj%/entity/AnyContact_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
+      <conditionProcess>%aditoprj%/entity/AnyContact_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <orderClauseProcess>%aditoprj%/entity/AnyContact_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
+      <linkInformation>
+        <linkInformation>
+          <name>7b3fa460-44a1-40f3-89e3-1625ce9c6bb3</name>
+          <tableName>CONTACT</tableName>
+          <primaryKey>CONTACTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>6786a204-2cea-42ae-857d-4335bad6b5e4</name>
+          <tableName>ORGANISATION</tableName>
+          <primaryKey>ORGANISATIONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>d15ccb84-6928-4c44-b940-0f5d04826b55</name>
+          <tableName>PERSON</tableName>
+          <primaryKey>PERSONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>b778622f-449a-4185-b7cb-9b373ba4024f</name>
+          <tableName>ADDRESS</tableName>
+          <primaryKey>ADDRESSID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
+      <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>ADDRESS_ID.value</name>
+          <recordfield>CONTACT.ADDRESS_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>LANGUAGE.value</name>
+          <recordfield>CONTACT.LANGUAGE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ORGANISATION_ID.value</name>
+          <recordfield>CONTACT.ORGANISATION_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PERSON_ID.value</name>
+          <recordfield>CONTACT.PERSON_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>CONTACTID.value</name>
+          <recordfield>CONTACT.CONTACTID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATUS.value</name>
+          <recordfield>CONTACT.STATUS</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ORGANISATION_NAME.value</name>
+          <recordfield>ORGANISATION.NAME</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PERSON_FIRSTNAME.value</name>
+          <recordfield>PERSON.FIRSTNAME</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PERSON_LASTNAME.value</name>
+          <recordfield>PERSON.LASTNAME</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STANDARD_EMAIL_COMMUNICATION.value</name>
+          <expression>%aditoprj%/entity/AnyContact_entity/recordcontainers/db/recordfieldmappings/standard_email_communication.value/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STANDARD_PHONE_COMMUNICATION.value</name>
+          <expression>%aditoprj%/entity/AnyContact_entity/recordcontainers/db/recordfieldmappings/standard_phone_communication.value/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>RELATIONSHIP.value</name>
+          <recordfield>CONTACT.RELATIONSHIP</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PERSON_MIDDLENAME.value</name>
+          <recordfield>PERSON.MIDDLENAME</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PERSON_TITLE.value</name>
+          <recordfield>PERSON.TITLE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PERSON_SALUTATION.value</name>
+          <recordfield>PERSON.SALUTATION</recordfield>
+        </dbRecordFieldMapping>
+      </recordFieldMappings>
+    </dbRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/AnyContact_entity/recordcontainers/db/conditionProcess.js b/entity/AnyContact_entity/recordcontainers/db/conditionProcess.js
index e3e997905f8c97b4a21ca506627746a2b93dbde1..565287dccb22ad6f19f9b527caa276b87dd618bd 100644
--- a/entity/AnyContact_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/AnyContact_entity/recordcontainers/db/conditionProcess.js
@@ -1,14 +1,30 @@
+import("system.vars");
 import("system.db");
 import("system.result");
 import("Sql_lib");
+import("Contact_lib");
+
+var orgContactId;
+if (vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param"))
+{
+    var contactId = vars.get("$param.ContactId_param");
+    var ids = ContactUtils.getPersOrgIds(contactId);
+
+    if (ids.length >= 3 && ids[2])
+    {
+        orgContactId = ids[2];
+    }
+}
 
 //exclude private organisation
 var cond = SqlCondition.begin()
-                       .andPrepare("CONTACT.ORGANISATION_ID", "0", "# != ?")
-                       .orSqlCondition(SqlCondition.begin()
-                                                     .andPrepare("CONTACT.ORGANISATION_ID", "0")
-                                                     .and("CONTACT.PERSON_ID is not null")
-                       );
-                       
+                        .andSqlCondition(SqlCondition.begin()
+                                        .andPrepare("CONTACT.ORGANISATION_ID", "0", "# != ?")
+                                        .orSqlCondition(SqlCondition.begin()
+                                                                        .andPrepare("CONTACT.ORGANISATION_ID", "0")
+                                                                        .and("CONTACT.PERSON_ID is not null")
+                                        )
+                        )
+                       .andPrepareIfSet("CONTACT.ORGANISATION_ID", orgContactId);
 
 result.string(db.translateCondition(cond.build()));
\ No newline at end of file
diff --git a/entity/Appointment_entity/Appointment_entity.aod b/entity/Appointment_entity/Appointment_entity.aod
index 78cbee09a0b4c7e088ab9d3942c2f9fecf04e9d9..156c683d4c400237c1d63a2f1f7e19960f4b6d79 100644
--- a/entity/Appointment_entity/Appointment_entity.aod
+++ b/entity/Appointment_entity/Appointment_entity.aod
@@ -79,20 +79,26 @@
           <title>accept</title>
           <onActionProcess>%aditoprj%/entity/Appointment_entity/entityfields/partstatactiongroup/children/accept/onActionProcess.js</onActionProcess>
           <actionOrder v="0" />
+          <isMenuAction v="true" />
           <iconId>VAADIN:CHECK</iconId>
+          <stateProcess>%aditoprj%/entity/Appointment_entity/entityfields/partstatactiongroup/children/accept/stateProcess.js</stateProcess>
         </entityActionField>
         <entityActionField>
           <name>decline</name>
           <title>decline</title>
           <description></description>
           <onActionProcess>%aditoprj%/entity/Appointment_entity/entityfields/partstatactiongroup/children/decline/onActionProcess.js</onActionProcess>
+          <isMenuAction v="true" />
           <iconId>VAADIN:CLOSE</iconId>
+          <stateProcess>%aditoprj%/entity/Appointment_entity/entityfields/partstatactiongroup/children/decline/stateProcess.js</stateProcess>
         </entityActionField>
         <entityActionField>
           <name>tentative</name>
           <title>tentative</title>
           <onActionProcess>%aditoprj%/entity/Appointment_entity/entityfields/partstatactiongroup/children/tentative/onActionProcess.js</onActionProcess>
+          <isMenuAction v="true" />
           <iconId>VAADIN:QUESTION</iconId>
+          <stateProcess>%aditoprj%/entity/Appointment_entity/entityfields/partstatactiongroup/children/tentative/stateProcess.js</stateProcess>
         </entityActionField>
       </children>
     </entityActionGroup>
@@ -162,6 +168,14 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityActionField>
+      <name>deleteSeries</name>
+      <title>Delete recurring appointment</title>
+      <onActionProcess>%aditoprj%/entity/Appointment_entity/entityfields/deleteseries/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:TRASH</iconId>
+      <stateProcess>%aditoprj%/entity/Appointment_entity/entityfields/deleteseries/stateProcess.js</stateProcess>
+      <tooltip>series delete action</tooltip>
+    </entityActionField>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
diff --git a/entity/Appointment_entity/entityfields/deleteseries/onActionProcess.js b/entity/Appointment_entity/entityfields/deleteseries/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9cb2e7df77e952743484814ab2ed687b0adb1e15
--- /dev/null
+++ b/entity/Appointment_entity/entityfields/deleteseries/onActionProcess.js
@@ -0,0 +1,14 @@
+import("system.vars");
+import("system.calendars");
+import("system.question");
+import("system.translate");
+
+
+var event = JSON.parse(vars.getString("$param.MasterEntry_param"));
+
+if(event != undefined && event != "")
+{
+    var reallyDelete = question.askYesNo(translate.text("Delete appointment"), translate.text("Do you really want to delete this recurring appointment?"), false);
+    if(reallyDelete)
+        calendars.removeEntryByUID(-1, null, event[calendars.ID], null);
+}
\ No newline at end of file
diff --git a/entity/Appointment_entity/entityfields/deleteseries/stateProcess.js b/entity/Appointment_entity/entityfields/deleteseries/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..8d6b8cb3eccdac6567b0c0e9e9fe583f72b06a38
--- /dev/null
+++ b/entity/Appointment_entity/entityfields/deleteseries/stateProcess.js
@@ -0,0 +1,16 @@
+import("system.tools");
+import("system.logging");
+import("system.vars");
+import("system.result");
+import("system.calendars");
+import("system.neon");
+
+
+var event = JSON.parse(vars.getString("$param.Entry_param"));
+
+if(event != undefined && event != "") //event not empty
+    if(event[calendars.RECURRENCEID] != undefined && event[calendars.RECURRENCEID] != "") //event recurring appointment
+        if(event[calendars.ORGANIZER] == tools.getCurrentUser()["title"]) //user == organizer
+            result.object(neon.COMPONENTSTATE_EDITABLE);
+        else
+            result.object(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Appointment_entity/entityfields/partstatactiongroup/children/accept/stateProcess.js b/entity/Appointment_entity/entityfields/partstatactiongroup/children/accept/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..073b73435825e69bd31502ff6bc4d809bc9e5c05
--- /dev/null
+++ b/entity/Appointment_entity/entityfields/partstatactiongroup/children/accept/stateProcess.js
@@ -0,0 +1,9 @@
+import("system.calendars");
+import("system.neon");
+import("system.result");
+
+
+if(calendars.getBackendType() == calendars.BACKEND_EXCHANGEWS)
+    result.object(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.object(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Appointment_entity/entityfields/partstatactiongroup/children/decline/stateProcess.js b/entity/Appointment_entity/entityfields/partstatactiongroup/children/decline/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..073b73435825e69bd31502ff6bc4d809bc9e5c05
--- /dev/null
+++ b/entity/Appointment_entity/entityfields/partstatactiongroup/children/decline/stateProcess.js
@@ -0,0 +1,9 @@
+import("system.calendars");
+import("system.neon");
+import("system.result");
+
+
+if(calendars.getBackendType() == calendars.BACKEND_EXCHANGEWS)
+    result.object(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.object(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Appointment_entity/entityfields/partstatactiongroup/children/tentative/stateProcess.js b/entity/Appointment_entity/entityfields/partstatactiongroup/children/tentative/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..073b73435825e69bd31502ff6bc4d809bc9e5c05
--- /dev/null
+++ b/entity/Appointment_entity/entityfields/partstatactiongroup/children/tentative/stateProcess.js
@@ -0,0 +1,9 @@
+import("system.calendars");
+import("system.neon");
+import("system.result");
+
+
+if(calendars.getBackendType() == calendars.BACKEND_EXCHANGEWS)
+    result.object(neon.COMPONENTSTATE_EDITABLE);
+else
+    result.object(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/grantDeleteProcess.js b/entity/ClassificationAdmin_entity/grantDeleteProcess.js
index 6a0202d0b06e410bc42a2aa04aef955c32e8c6e5..0b3ed93eea3cca1985cfc8768475f656f3c87cee 100644
--- a/entity/ClassificationAdmin_entity/grantDeleteProcess.js
+++ b/entity/ClassificationAdmin_entity/grantDeleteProcess.js
@@ -1,8 +1,11 @@
+import("system.logging");
 import("system.result");
 import("system.db");
 import("system.vars");
 import("Sql_lib");
-
+logging.log("grantDelete " + (parseInt(db.cell(SqlCondition.begin()
+                        .andPrepare("CLASSIFICATION.CLASSIFICATIONTYPE_ID", vars.get("$field.CLASSIFICATIONTYPEID"))
+                        .buildSql("select count(*) from CLASSIFICATION", "1=2"))) <= 0))
 result.object(parseInt(db.cell(SqlCondition.begin()
                         .andPrepare("CLASSIFICATION.CLASSIFICATIONTYPE_ID", vars.get("$field.CLASSIFICATIONTYPEID"))
                         .buildSql("select count(*) from CLASSIFICATION", "1=2"))) <= 0);
\ No newline at end of file
diff --git a/entity/CommRestriction_Entity/CommRestriction_Entity.aod b/entity/CommRestriction_Entity/CommRestriction_Entity.aod
new file mode 100644
index 0000000000000000000000000000000000000000..7ba13087b6642bf66b4d70e9d7f03b9213ad6ea6
--- /dev/null
+++ b/entity/CommRestriction_Entity/CommRestriction_Entity.aod
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
+  <name>CommRestriction_Entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <title>Advertising ban</title>
+  <titlePlural>Advertising bans</titlePlural>
+  <recordContainer>db</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+    </entityProvider>
+    <entityField>
+      <name>CONTACT_ID</name>
+      <title>Person</title>
+      <valueProcess>%aditoprj%/entity/CommRestriction_Entity/entityfields/contact_id/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>MEDIUM</name>
+      <title>Advertising ban</title>
+      <consumer>CommRestrictionMedium</consumer>
+      <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/CommRestriction_Entity/entityfields/medium/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/CommRestriction_Entity/entityfields/medium/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>STARTDATE</name>
+      <title>Valid from</title>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
+      <valueProcess>%aditoprj%/entity/CommRestriction_Entity/entityfields/startdate/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>EMPLOYEE_INVOLVED</name>
+      <title>Responsible</title>
+      <consumer>EmployeeInvolved</consumer>
+      <valueProcess>%aditoprj%/entity/CommRestriction_Entity/entityfields/employee_involved/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/CommRestriction_Entity/entityfields/employee_involved/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>REASON</name>
+      <title>Reason</title>
+      <contentType>LONG_TEXT</contentType>
+    </entityField>
+    <entityField>
+      <name>COMMRESTRICTIONID</name>
+      <valueProcess>%aditoprj%/entity/CommRestriction_Entity/entityfields/commrestrictionid/valueProcess.js</valueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>EmployeeInvolved</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Employee_entity</entityName>
+        <fieldName>Employees</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityConsumer>
+      <name>CommRestrictionMedium</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/CommRestriction_Entity/entityfields/commrestrictionmedium/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityProvider>
+      <name>PersonsCommRestriction</name>
+      <dependencies>
+        <entityDependency>
+          <name>b50e33cd-e20f-4bdf-b0ee-2ecdab921ffd</name>
+          <entityName>Person_entity</entityName>
+          <fieldName>CommRestrictions</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>PersonId_param</name>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityParameter>
+      <name>PersonId_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <mandatory v="true" />
+    </entityParameter>
+    <entityField>
+      <name>ICON</name>
+      <colorProcess>%aditoprj%/entity/CommRestriction_Entity/entityfields/icon/colorProcess.js</colorProcess>
+      <contentType>IMAGE</contentType>
+      <valueProcess>%aditoprj%/entity/CommRestriction_Entity/entityfields/icon/valueProcess.js</valueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>MediumKeywordAttribute</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordAttribute_entity</entityName>
+        <fieldName>SpecificContainerKeyword</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/CommRestriction_Entity/entityfields/mediumkeywordattribute/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+  </entityFields>
+  <recordContainers>
+    <dbRecordContainer>
+      <name>db</name>
+      <alias>Data_alias</alias>
+      <conditionProcess>%aditoprj%/entity/CommRestriction_Entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <linkInformation>
+        <linkInformation>
+          <name>d02c4bb0-c0aa-46fa-bf1b-4bcc44aeb012</name>
+          <tableName>COMMRESTRICTION</tableName>
+          <primaryKey>COMMRESTRICTIONID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
+      <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>COMMRESTRICTIONID.value</name>
+          <recordfield>COMMRESTRICTION.COMMRESTRICTIONID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>CONTACT_ID.value</name>
+          <recordfield>COMMRESTRICTION.CONTACT_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>EMPLOYEE_INVOLVED.value</name>
+          <recordfield>COMMRESTRICTION.EMPLOYEE_INVOLVED</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>MEDIUM.value</name>
+          <recordfield>COMMRESTRICTION.MEDIUM</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>REASON.value</name>
+          <recordfield>COMMRESTRICTION.REASON</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STARTDATE.value</name>
+          <recordfield>COMMRESTRICTION.STARTDATE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>EMPLOYEE_INVOLVED.displayValue</name>
+          <expression>%aditoprj%/entity/CommRestriction_Entity/recordcontainers/db/recordfieldmappings/employee_involved.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>MEDIUM.displayValue</name>
+          <expression>%aditoprj%/entity/CommRestriction_Entity/recordcontainers/db/recordfieldmappings/medium.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+      </recordFieldMappings>
+    </dbRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/CommRestriction_Entity/entityfields/commrestrictionid/valueProcess.js b/entity/CommRestriction_Entity/entityfields/commrestrictionid/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a2378ee42b3638db13001b2890b78669e5c65d9e
--- /dev/null
+++ b/entity/CommRestriction_Entity/entityfields/commrestrictionid/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    result.string(util.getNewUUID());
\ No newline at end of file
diff --git a/entity/CommRestriction_Entity/entityfields/commrestrictionmedium/children/containername_param/valueProcess.js b/entity/CommRestriction_Entity/entityfields/commrestrictionmedium/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a944db3259568d4c9b4453d682666704918a9b80
--- /dev/null
+++ b/entity/CommRestriction_Entity/entityfields/commrestrictionmedium/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.communicationMediumCampaign());
\ No newline at end of file
diff --git a/entity/CommRestriction_Entity/entityfields/contact_id/valueProcess.js b/entity/CommRestriction_Entity/entityfields/contact_id/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..f9c4af9c89f397d57058f69d5bd171c82b858d81
--- /dev/null
+++ b/entity/CommRestriction_Entity/entityfields/contact_id/valueProcess.js
@@ -0,0 +1,10 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    if(vars.exists("$param.PersonId_param") && vars.get("$param.PersonId_param") != null) {
+        result.string(vars.getString("$param.PersonId_param"));    
+    }
+}
\ No newline at end of file
diff --git a/entity/CommRestriction_Entity/entityfields/employee_involved/displayValueProcess.js b/entity/CommRestriction_Entity/entityfields/employee_involved/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..53e2f557005d9c3a143446716fcd1c7034984786
--- /dev/null
+++ b/entity/CommRestriction_Entity/entityfields/employee_involved/displayValueProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.result");
+import("Contact_lib");
+
+result.string(ContactUtils.getTitleByContactId(vars.get("$field.EMPLOYEE_INVOLVED")));
\ No newline at end of file
diff --git a/entity/CommRestriction_Entity/entityfields/employee_involved/valueProcess.js b/entity/CommRestriction_Entity/entityfields/employee_involved/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..0d83e155507cb0955f8ebc5a4ff4af836b96977e
--- /dev/null
+++ b/entity/CommRestriction_Entity/entityfields/employee_involved/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+import("Employee_lib");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value"))
+    result.string(EmployeeUtils.getCurrentContactId());
\ No newline at end of file
diff --git a/entity/CommRestriction_Entity/entityfields/icon/colorProcess.js b/entity/CommRestriction_Entity/entityfields/icon/colorProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a5313f5d649a572265a947e3c2e21d1cda4539a4
--- /dev/null
+++ b/entity/CommRestriction_Entity/entityfields/icon/colorProcess.js
@@ -0,0 +1,3 @@
+import("system.neon");
+import("system.result");
+result.string(neon.PRIORITY_HIGH_COLOR);
\ No newline at end of file
diff --git a/entity/CommRestriction_Entity/entityfields/icon/valueProcess.js b/entity/CommRestriction_Entity/entityfields/icon/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..95aab66e4c3ff7cee3579ab03305c720636f37ab
--- /dev/null
+++ b/entity/CommRestriction_Entity/entityfields/icon/valueProcess.js
@@ -0,0 +1,13 @@
+import("system.result");
+import("system.vars");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var med = vars.getString("$field.MEDIUM");
+var ban;
+if (med)
+{
+    var keywordAttributes = KeywordUtils.getAttributeRelationsByKey(med, $KeywordRegistry.communicationMediumCampaign())
+    ban = keywordAttributes.AdvertisingBanIcon;
+}
+result.string(ban)
diff --git a/entity/CommRestriction_Entity/entityfields/medium/displayValueProcess.js b/entity/CommRestriction_Entity/entityfields/medium/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..5bf6d01dc50eb03e563c369075f877b67761d257
--- /dev/null
+++ b/entity/CommRestriction_Entity/entityfields/medium/displayValueProcess.js
@@ -0,0 +1,20 @@
+import("system.result");
+import("system.vars");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+import("system.translate");
+
+//result.string(KeywordUtils.getViewValue($KeywordRegistry.communicationMediumCampaign(), vars.get("$field.MEDIUM")));
+
+var med = vars.getString("$field.MEDIUM");
+var ban;
+if (med == "")
+{
+    result.string("")
+}
+else
+{
+    var keywordAttributes = KeywordUtils.getAttributeRelationsByKey(med, $KeywordRegistry.communicationMediumCampaign())
+    ban = keywordAttributes.AdvertisingBan;
+    result.string(translate.text(ban))
+}
diff --git a/entity/CommRestriction_Entity/entityfields/medium/valueProcess.js b/entity/CommRestriction_Entity/entityfields/medium/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/entity/CommRestriction_Entity/entityfields/mediumkeywordattribute/children/containername_param/valueProcess.js b/entity/CommRestriction_Entity/entityfields/mediumkeywordattribute/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..677df6872b7002295d7a25175d35238a8dd43fd2
--- /dev/null
+++ b/entity/CommRestriction_Entity/entityfields/mediumkeywordattribute/children/containername_param/valueProcess.js
@@ -0,0 +1,2 @@
+import("system.result");
+result.string(keywordAttributes.AdvertisingBan);
\ No newline at end of file
diff --git a/entity/CommRestriction_Entity/entityfields/startdate/valueProcess.js b/entity/CommRestriction_Entity/entityfields/startdate/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..3e186c747bfbb6719878872798de7bcea5ab7794
--- /dev/null
+++ b/entity/CommRestriction_Entity/entityfields/startdate/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.datetime");
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.getString("$this.value"))
+    result.string(datetime.date());
\ No newline at end of file
diff --git a/entity/CommRestriction_Entity/recordcontainers/db/conditionProcess.js b/entity/CommRestriction_Entity/recordcontainers/db/conditionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..eeed9a9c6d4224310d91f4dbf7c1920a2a0c8c1a
--- /dev/null
+++ b/entity/CommRestriction_Entity/recordcontainers/db/conditionProcess.js
@@ -0,0 +1,9 @@
+import("system.db");
+import("system.result");
+import("Sql_lib");
+
+var cond = new SqlCondition();
+cond.andPrepareVars("COMMRESTRICTION.CONTACT_ID", "$param.PersonId_param");
+
+//TODO: use a preparedCondition when available #1030812 #1034026
+result.string(db.translateCondition(cond.build("1 = 1")));
\ No newline at end of file
diff --git a/entity/CommRestriction_Entity/recordcontainers/db/recordfieldmappings/employee_involved.displayvalue/expression.js b/entity/CommRestriction_Entity/recordcontainers/db/recordfieldmappings/employee_involved.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..06ef06d816c1f533fd458d3ff5786d2aec2dccca
--- /dev/null
+++ b/entity/CommRestriction_Entity/recordcontainers/db/recordfieldmappings/employee_involved.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Person_lib");
+
+//TODO: try to find a better solution for this -> #TITLE-mechanic when available
+var subSql = PersUtils.getResolvingDisplaySubSql("COMMRESTRICTION.EMPLOYEE_INVOLVED");
+result.string(subSql);
\ No newline at end of file
diff --git a/entity/CommRestriction_Entity/recordcontainers/db/recordfieldmappings/medium.displayvalue/expression.js b/entity/CommRestriction_Entity/recordcontainers/db/recordfieldmappings/medium.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..d3f5a12faa99758192ecc4ed3fc22c9249232e86
--- /dev/null
+++ b/entity/CommRestriction_Entity/recordcontainers/db/recordfieldmappings/medium.displayvalue/expression.js
@@ -0,0 +1 @@
+
diff --git a/entity/Context_entity/Context_entity.aod b/entity/Context_entity/Context_entity.aod
index 90c638545b2a19d9db5334f8aa75ace13ae5a865..04bc3298a3d9b6a02ec563548960426571c67ba6 100644
--- a/entity/Context_entity/Context_entity.aod
+++ b/entity/Context_entity/Context_entity.aod
@@ -59,6 +59,12 @@
           <fieldName>Contexts</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>420468aa-c237-4e29-a24f-8851e56343b9</name>
+          <entityName>Offer_entity</entityName>
+          <fieldName>Contexts</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
@@ -118,6 +124,10 @@
       <expose v="true" />
       <description>PARAMETER</description>
     </entityParameter>
+    <entityParameter>
+      <name>Whitelist</name>
+      <expose v="true" />
+    </entityParameter>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
diff --git a/entity/Context_entity/recordcontainers/jdito/contentProcess.js b/entity/Context_entity/recordcontainers/jdito/contentProcess.js
index 29391c90234a2a5d1408843663ae6e6c4c1e4abd..17ad5303c6a29885409f306a9cc3f1d15c569e79 100644
--- a/entity/Context_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Context_entity/recordcontainers/jdito/contentProcess.js
@@ -1,3 +1,4 @@
+import("system.logging");
 import("system.vars");
 import("system.result");
 import("Context_lib");
@@ -7,5 +8,6 @@ if (excludeContexts)
     excludeContexts = JSON.parse(excludeContexts);
 var filterContexts = !(vars.exists("$param.GetAllContexts_param") && vars.get("$param.GetAllContexts_param") == "true");
 var useExclusives = vars.exists("$param.UseExclusives_param") && vars.get("$param.UseExclusives_param") == "true";
+var whitelist = vars.exists("$param.Whitelist") && vars.get("$param.Whitelist") ? JSON.parse(vars.get("$param.Whitelist")) : undefined;
 
-result.object(ContextUtils.getContexts(filterContexts, excludeContexts, useExclusives));
\ No newline at end of file
+result.object(ContextUtils.getContexts(filterContexts, excludeContexts, useExclusives, whitelist));
\ No newline at end of file
diff --git a/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod b/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod
index b5751c4d703293c01d3298e0ab9304592672e102..3bd8b2660950ae178ff7dae70d9d3f1a5f21a1fd 100644
--- a/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod
+++ b/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod
@@ -1,317 +1,317 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
-  <name>DocumentTemplate_entity</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <icon>VAADIN:FILE_FONT</icon>
-  <title>Document Template</title>
-  <contentTitleProcess>%aditoprj%/entity/DocumentTemplate_entity/contentTitleProcess.js</contentTitleProcess>
-  <afterUiInit>%aditoprj%/entity/DocumentTemplate_entity/afterUiInit.js</afterUiInit>
-  <recordContainer>db</recordContainer>
-  <entityFields>
-    <entityProvider>
-      <name>#PROVIDER</name>
-      <dependencies>
-        <entityDependency>
-          <name>5cc2e566-309c-4b47-84f3-52376e919b9b</name>
-          <entityName>Email_entity</entityName>
-          <fieldName>DocumentTemplates</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-    </entityProvider>
-    <entityField>
-      <name>DATE_EDIT</name>
-      <title>Date edit</title>
-      <searchable v="false" />
-    </entityField>
-    <entityField>
-      <name>DESCRIPTION</name>
-      <title>Description</title>
-      <contentType>LONG_TEXT</contentType>
-    </entityField>
-    <entityField>
-      <name>DOCUMENTTEMPLATEID</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/documenttemplateid/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>DATE_NEW</name>
-      <title>Date new</title>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/date_new/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>USER_NEW</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/user_new/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>TYPE</name>
-      <title>Type</title>
-      <consumer>KeywordDocumentTemplateType</consumer>
-      <mandatory v="true" />
-      <groupable v="true" />
-      <stateProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/type/stateProcess.js</stateProcess>
-      <displayValueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/type/displayValueProcess.js</displayValueProcess>
-      <onValueChange>%aditoprj%/entity/DocumentTemplate_entity/entityfields/type/onValueChange.js</onValueChange>
-    </entityField>
-    <entityField>
-      <name>USER_EDIT</name>
-      <searchable v="false" />
-    </entityField>
-    <entityField>
-      <name>NAME</name>
-      <title>Name</title>
-      <mandatory v="true" />
-    </entityField>
-    <entityField>
-      <name>LANGUAGE</name>
-      <title>Language</title>
-      <consumer>Languages</consumer>
-      <mandatory v="true" />
-      <displayValueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/language/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>BINDATA</name>
-      <contentType>FILE</contentType>
-      <onValueChange>%aditoprj%/entity/DocumentTemplate_entity/entityfields/bindata/onValueChange.js</onValueChange>
-    </entityField>
-    <entityConsumer>
-      <name>Documents</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>Documents</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>AssignmentTable_param</name>
-          <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>AssignmentRowId_param</name>
-          <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Languages</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Language_entity</entityName>
-        <fieldName>ISO3Name</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>KeywordDocumentTemplateType</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/keyworddocumenttemplatetype/children/containername_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Attributes</name>
-      <onValidation>%aditoprj%/entity/DocumentTemplate_entity/entityfields/attributes/onValidation.js</onValidation>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>AttributeRelations</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectType_param</name>
-          <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>texText</name>
-      <title>Text</title>
-      <contentType>LONG_TEXT</contentType>
-      <state>INVISIBLE</state>
-      <stateProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/textext/stateProcess.js</stateProcess>
-      <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/textext/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/textext/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>CLASSIFICATION</name>
-      <title>Classification</title>
-      <consumer>DocumentTemplateTypeCategory</consumer>
-      <groupable v="true" />
-      <state>DISABLED</state>
-      <stateProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/classification/stateProcess.js</stateProcess>
-      <displayValueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/classification/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityConsumer>
-      <name>DocumentTemplateTypeCategory</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>DocumentTemplateTypeCategory_entity</entityName>
-        <fieldName>ByCategory</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>usageFilter_param</name>
-          <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/documenttemplatetypecategory/children/usagefilter_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityProvider>
-      <name>Attachments</name>
-      <targetContextField>TARGET_CONTEXT</targetContextField>
-      <targetIdField>DOCUMENTTEMPLATEID</targetIdField>
-      <targetConsumerProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/attachments/targetConsumerProcess.js</targetConsumerProcess>
-      <titlePlural>Attachments</titlePlural>
-      <recordContainer>db</recordContainer>
-      <dependencies>
-        <entityDependency>
-          <name>856e3435-a173-4cf5-8e81-3f884f8238d3</name>
-          <entityName>DocumentTemplateLink_entity</entityName>
-          <fieldName>Attachments</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-    </entityProvider>
-    <entityConsumer>
-      <name>Links</name>
-      <stateProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/links/stateProcess.js</stateProcess>
-      <dependency>
-        <name>dependency</name>
-        <entityName>DocumentTemplateLink_entity</entityName>
-        <fieldName>Links</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>DocumentId_param</name>
-          <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/links/children/documentid_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>Type_param</name>
-          <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/links/children/type_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityParameter>
-      <name>DocumentTemplateTypeClassification_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityProvider>
-      <name>DocumentTemplateProvider</name>
-      <dependencies>
-        <entityDependency>
-          <name>e1c555c3-9e53-4ccf-962c-4bdd3c14bb16</name>
-          <entityName>Offer_entity</entityName>
-          <fieldName>DocumentTemplateText</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>9c10883d-eb73-4587-b758-693a66367a4c</name>
-          <entityName>Offer_entity</entityName>
-          <fieldName>DocumentTemplateTexHeader</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>67f64ed9-bc92-41ba-a040-671a12b7a5f3</name>
-          <entityName>Offer_entity</entityName>
-          <fieldName>DocumentTemplateTexFooter</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>57f408e3-aeb7-4006-a20d-287dae1f0922</name>
-          <entityName>Mail_entity</entityName>
-          <fieldName>DocumentTemplates</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-    </entityProvider>
-    <entityParameter>
-      <name>DocumentTemplateType_param</name>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityField>
-      <name>TARGET_CONTEXT</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/target_context/valueProcess.js</valueProcess>
-    </entityField>
-  </entityFields>
-  <recordContainers>
-    <dbRecordContainer>
-      <name>db</name>
-      <alias>Data_alias</alias>
-      <conditionProcess>%aditoprj%/entity/DocumentTemplate_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <onDBInsert>%aditoprj%/entity/DocumentTemplate_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
-      <onDBUpdate>%aditoprj%/entity/DocumentTemplate_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
-      <onDBDelete>%aditoprj%/entity/DocumentTemplate_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>982325b6-d12e-43f9-8ac2-c4b9f013aafd</name>
-          <tableName>DOCUMENTTEMPLATE</tableName>
-          <primaryKey>DOCUMENTTEMPLATEID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
-      <recordFieldMappings>
-        <dbRecordFieldMapping>
-          <name>DATE_EDIT.value</name>
-          <recordfield>DOCUMENTTEMPLATE.DATE_EDIT</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>DATE_NEW.value</name>
-          <recordfield>DOCUMENTTEMPLATE.DATE_NEW</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>DESCRIPTION.value</name>
-          <recordfield>DOCUMENTTEMPLATE.DESCRIPTION</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>LANGUAGE.value</name>
-          <recordfield>DOCUMENTTEMPLATE.LANGUAGE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>NAME.value</name>
-          <recordfield>DOCUMENTTEMPLATE.NAME</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>TYPE.value</name>
-          <recordfield>DOCUMENTTEMPLATE.TYPE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>USER_EDIT.value</name>
-          <recordfield>DOCUMENTTEMPLATE.USER_EDIT</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>USER_NEW.value</name>
-          <recordfield>DOCUMENTTEMPLATE.USER_NEW</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>DOCUMENTTEMPLATEID.value</name>
-          <recordfield>DOCUMENTTEMPLATE.DOCUMENTTEMPLATEID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>CLASSIFICATION.value</name>
-          <recordfield>DOCUMENTTEMPLATE.CLASSIFICATION</recordfield>
-        </dbRecordFieldMapping>
-      </recordFieldMappings>
-    </dbRecordContainer>
-  </recordContainers>
-</entity>
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
+  <name>DocumentTemplate_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>VAADIN:FILE_FONT</icon>
+  <title>Document Template</title>
+  <contentTitleProcess>%aditoprj%/entity/DocumentTemplate_entity/contentTitleProcess.js</contentTitleProcess>
+  <afterUiInit>%aditoprj%/entity/DocumentTemplate_entity/afterUiInit.js</afterUiInit>
+  <recordContainer>db</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+      <dependencies>
+        <entityDependency>
+          <name>5cc2e566-309c-4b47-84f3-52376e919b9b</name>
+          <entityName>Email_entity</entityName>
+          <fieldName>DocumentTemplates</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <title>Date edit</title>
+      <searchable v="false" />
+    </entityField>
+    <entityField>
+      <name>DESCRIPTION</name>
+      <title>Description</title>
+      <contentType>LONG_TEXT</contentType>
+    </entityField>
+    <entityField>
+      <name>DOCUMENTTEMPLATEID</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/documenttemplateid/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <title>Date new</title>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_NEW</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>TYPE</name>
+      <title>Type</title>
+      <consumer>KeywordDocumentTemplateType</consumer>
+      <groupable v="true" />
+      <mandatory v="true" />
+      <stateProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/type/stateProcess.js</stateProcess>
+      <displayValueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/type/displayValueProcess.js</displayValueProcess>
+      <onValueChange>%aditoprj%/entity/DocumentTemplate_entity/entityfields/type/onValueChange.js</onValueChange>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <searchable v="false" />
+    </entityField>
+    <entityField>
+      <name>NAME</name>
+      <title>Name</title>
+      <mandatory v="true" />
+    </entityField>
+    <entityField>
+      <name>LANGUAGE</name>
+      <title>Language</title>
+      <consumer>Languages</consumer>
+      <mandatory v="true" />
+      <displayValueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/language/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>BINDATA</name>
+      <contentType>FILE</contentType>
+      <onValueChange>%aditoprj%/entity/DocumentTemplate_entity/entityfields/bindata/onValueChange.js</onValueChange>
+    </entityField>
+    <entityConsumer>
+      <name>Documents</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>Documents</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>AssignmentTable_param</name>
+          <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>AssignmentRowId_param</name>
+          <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Languages</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Language_entity</entityName>
+        <fieldName>ISO3Name</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordDocumentTemplateType</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/keyworddocumenttemplatetype/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Attributes</name>
+      <onValidation>%aditoprj%/entity/DocumentTemplate_entity/entityfields/attributes/onValidation.js</onValidation>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>AttributeRelations</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>texText</name>
+      <title>Text</title>
+      <contentType>LONG_TEXT</contentType>
+      <state>INVISIBLE</state>
+      <stateProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/textext/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/textext/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/textext/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>CLASSIFICATION</name>
+      <title>Classification</title>
+      <consumer>DocumentTemplateTypeCategory</consumer>
+      <groupable v="true" />
+      <state>DISABLED</state>
+      <stateProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/classification/stateProcess.js</stateProcess>
+      <displayValueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/classification/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>DocumentTemplateTypeCategory</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>DocumentTemplateTypeCategory_entity</entityName>
+        <fieldName>ByCategory</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>usageFilter_param</name>
+          <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/documenttemplatetypecategory/children/usagefilter_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityProvider>
+      <name>Attachments</name>
+      <targetContextField>TARGET_CONTEXT</targetContextField>
+      <targetIdField>DOCUMENTTEMPLATEID</targetIdField>
+      <targetConsumerProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/attachments/targetConsumerProcess.js</targetConsumerProcess>
+      <titlePlural>Attachments</titlePlural>
+      <recordContainer>db</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>856e3435-a173-4cf5-8e81-3f884f8238d3</name>
+          <entityName>DocumentTemplateLink_entity</entityName>
+          <fieldName>Attachments</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+    <entityConsumer>
+      <name>Links</name>
+      <stateProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/links/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>DocumentTemplateLink_entity</entityName>
+        <fieldName>Links</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>DocumentId_param</name>
+          <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/links/children/documentid_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>Type_param</name>
+          <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/links/children/type_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityParameter>
+      <name>DocumentTemplateTypeClassification_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityProvider>
+      <name>DocumentTemplateProvider</name>
+      <dependencies>
+        <entityDependency>
+          <name>e1c555c3-9e53-4ccf-962c-4bdd3c14bb16</name>
+          <entityName>Offer_entity</entityName>
+          <fieldName>DocumentTemplateText</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>9c10883d-eb73-4587-b758-693a66367a4c</name>
+          <entityName>Offer_entity</entityName>
+          <fieldName>DocumentTemplateTexHeader</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>67f64ed9-bc92-41ba-a040-671a12b7a5f3</name>
+          <entityName>Offer_entity</entityName>
+          <fieldName>DocumentTemplateTexFooter</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>57f408e3-aeb7-4006-a20d-287dae1f0922</name>
+          <entityName>Letter_entity</entityName>
+          <fieldName>DocumentTemplates</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+    <entityParameter>
+      <name>DocumentTemplateType_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityField>
+      <name>TARGET_CONTEXT</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/target_context/valueProcess.js</valueProcess>
+    </entityField>
+  </entityFields>
+  <recordContainers>
+    <dbRecordContainer>
+      <name>db</name>
+      <alias>Data_alias</alias>
+      <conditionProcess>%aditoprj%/entity/DocumentTemplate_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <onDBInsert>%aditoprj%/entity/DocumentTemplate_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
+      <onDBUpdate>%aditoprj%/entity/DocumentTemplate_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
+      <onDBDelete>%aditoprj%/entity/DocumentTemplate_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
+      <linkInformation>
+        <linkInformation>
+          <name>982325b6-d12e-43f9-8ac2-c4b9f013aafd</name>
+          <tableName>DOCUMENTTEMPLATE</tableName>
+          <primaryKey>DOCUMENTTEMPLATEID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
+      <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>DOCUMENTTEMPLATE.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>DOCUMENTTEMPLATE.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DESCRIPTION.value</name>
+          <recordfield>DOCUMENTTEMPLATE.DESCRIPTION</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>LANGUAGE.value</name>
+          <recordfield>DOCUMENTTEMPLATE.LANGUAGE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>NAME.value</name>
+          <recordfield>DOCUMENTTEMPLATE.NAME</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>TYPE.value</name>
+          <recordfield>DOCUMENTTEMPLATE.TYPE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>DOCUMENTTEMPLATE.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>DOCUMENTTEMPLATE.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DOCUMENTTEMPLATEID.value</name>
+          <recordfield>DOCUMENTTEMPLATE.DOCUMENTTEMPLATEID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>CLASSIFICATION.value</name>
+          <recordfield>DOCUMENTTEMPLATE.CLASSIFICATION</recordfield>
+        </dbRecordFieldMapping>
+      </recordFieldMappings>
+    </dbRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/Employee_entity/Employee_entity.aod b/entity/Employee_entity/Employee_entity.aod
index bc69db9b8adad40442595fdb5f9ec2b5ee43a92d..825d28e44750a8740676e6a94bb4c74526eead5c 100644
--- a/entity/Employee_entity/Employee_entity.aod
+++ b/entity/Employee_entity/Employee_entity.aod
@@ -250,6 +250,12 @@
           <fieldName>ContactRequestors</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>6a502317-8b81-4bea-803f-003f990513df</name>
+          <entityName>CommRestriction_Entity</entityName>
+          <fieldName>EmployeeInvolved</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
diff --git a/entity/Forecast_entity/Forecast_entity.aod b/entity/Forecast_entity/Forecast_entity.aod
index 8bf3ee5a9b40ab579250fcc56a46c6edca4a93da..40b28f5d43e04dc8d87378ee45b4c4eb0940eefd 100644
--- a/entity/Forecast_entity/Forecast_entity.aod
+++ b/entity/Forecast_entity/Forecast_entity.aod
@@ -34,6 +34,7 @@
     </entityField>
     <entityField>
       <name>OBJECT_ROWID</name>
+      <title>Connection</title>
       <consumer>Objects</consumer>
       <linkedContextProcess>%aditoprj%/entity/Forecast_entity/entityfields/object_rowid/linkedContextProcess.js</linkedContextProcess>
       <valueProcess>%aditoprj%/entity/Forecast_entity/entityfields/object_rowid/valueProcess.js</valueProcess>
@@ -63,6 +64,7 @@
     </entityConsumer>
     <entityField>
       <name>OBJECT_TYPE</name>
+      <title>Type</title>
       <consumer>Contexts</consumer>
       <valueProcess>%aditoprj%/entity/Forecast_entity/entityfields/object_type/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/Forecast_entity/entityfields/object_type/displayValueProcess.js</displayValueProcess>
diff --git a/entity/KeywordAttribute_entity/KeywordAttribute_entity.aod b/entity/KeywordAttribute_entity/KeywordAttribute_entity.aod
index 351b8e62e9d7a0421ef1a6c4b6cd2f8234c2e7eb..82818b7cc16a4d1c56f086cec681695e5378b15f 100644
--- a/entity/KeywordAttribute_entity/KeywordAttribute_entity.aod
+++ b/entity/KeywordAttribute_entity/KeywordAttribute_entity.aod
@@ -47,6 +47,12 @@
           <fieldName>KeywordAttributes</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>684a3e60-00ad-4d46-8c98-6559e485a729</name>
+          <entityName>CommRestriction_Entity</entityName>
+          <fieldName>MediumKeywordAttribute</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
diff --git a/entity/KeywordEntry_entity/entityfields/whitelistids_param/documentation.adoc b/entity/KeywordEntry_entity/entityfields/whitelistids_param/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..caf09a596a0ef5b1b96ac49912f41e8878787465
--- /dev/null
+++ b/entity/KeywordEntry_entity/entityfields/whitelistids_param/documentation.adoc
@@ -0,0 +1,2 @@
+Can be filled with a JSON array containing all allowed keyIds
+["id1", "id2", ...]
\ No newline at end of file
diff --git a/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js b/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js
index aa341622d89f926f6f953987c23486d84b8a3ef3..e581324d162afd72b6e3b262fc2a827a64882517 100644
--- a/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js
@@ -13,5 +13,8 @@ if (vars.get("$param.OnlyActives_param") == "true")
 if (vars.exists("$param.ExcludedKeyIdsSubquery_param") && vars.get("$param.ExcludedKeyIdsSubquery_param"))
     cond.and("AB_KEYWORD_ENTRY.KEYID not in (" + vars.get("$param.ExcludedKeyIdsSubquery_param") + ")");
 
+if (vars.exists("$param.WhitelistIds_param") && vars.getString("$param.WhitelistIds_param"))
+    cond.andIn("AB_KEYWORD_ENTRY.KEYID", JSON.parse(vars.getString("$param.WhitelistIds_param")));
+
 var condStr = db.translateCondition(cond.build("1 = 1"));
 result.string(condStr);
\ No newline at end of file
diff --git a/entity/Mail_entity/Mail_entity.aod b/entity/Letter_entity/Letter_entity.aod
similarity index 81%
rename from entity/Mail_entity/Mail_entity.aod
rename to entity/Letter_entity/Letter_entity.aod
index b986ba28239d31687deb82cbac971b52f7c13cd4..feb4c64b0d0830d3a92ea5e7bd98c8c786d13338 100644
--- a/entity/Mail_entity/Mail_entity.aod
+++ b/entity/Letter_entity/Letter_entity.aod
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
-  <name>Mail_entity</name>
+  <name>Letter_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <recordContainer>jdito</recordContainer>
   <entityFields>
@@ -12,6 +12,7 @@
     </entityField>
     <entityField>
       <name>DOCUMENT_TEMPLATE</name>
+      <title>Document Template</title>
       <consumer>DocumentTemplates</consumer>
       <linkedContext>DocumentTemplate</linkedContext>
     </entityField>
@@ -23,11 +24,16 @@
         <fieldName>DocumentTemplateProvider</fieldName>
       </dependency>
     </entityConsumer>
+    <entityParameter>
+      <name>ContactId_param</name>
+      <expose v="true" />
+    </entityParameter>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
       <name>jdito</name>
       <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
+      <onInsert>%aditoprj%/entity/Letter_entity/recordcontainers/jdito/onInsert.js</onInsert>
       <recordFields>
         <element>UID.value</element>
       </recordFields>
diff --git a/entity/Letter_entity/recordcontainers/jdito/onInsert.js b/entity/Letter_entity/recordcontainers/jdito/onInsert.js
new file mode 100644
index 0000000000000000000000000000000000000000..e588da43cfc45fca8b59c5077ce24a58d8dcbe18
--- /dev/null
+++ b/entity/Letter_entity/recordcontainers/jdito/onInsert.js
@@ -0,0 +1,6 @@
+import("system.neon");
+import("system.vars");
+import("DocumentTemplate_lib");
+
+var template = DocumentTemplate.loadTemplate(vars.get("$field.DOCUMENT_TEMPLATE"));
+neon.download(template.getReplacedContentByContactId(vars.get("$param.ContactId_param")), template.filename);
\ No newline at end of file
diff --git a/entity/Member_entity/Member_entity.aod b/entity/Member_entity/Member_entity.aod
index 8d043c5a8a818881be86beb2e66263dcad2f3007..10a933ec5362d5b7579f9ae178b616a705efff38 100644
--- a/entity/Member_entity/Member_entity.aod
+++ b/entity/Member_entity/Member_entity.aod
@@ -224,6 +224,11 @@ TODO: intuitive möglichkeit, auf dend Stand aus Relation zurückzusetzen... akt
       <contentType>BOOLEAN</contentType>
       <dropDownProcess>%aditoprj%/entity/Member_entity/entityfields/decider/dropDownProcess.js</dropDownProcess>
     </entityField>
+    <entityField>
+      <name>IMAGE</name>
+      <contentType>IMAGE</contentType>
+      <valueProcess>%aditoprj%/entity/Member_entity/entityfields/image/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/Member_entity/entityfields/icon/valueProcess.js b/entity/Member_entity/entityfields/icon/valueProcess.js
index 05a9a85fd7d0f67869b1d86d8c6a9f5a5a1bbeec..a19d7b291a62db0944669f510d766e839377fcdd 100644
--- a/entity/Member_entity/entityfields/icon/valueProcess.js
+++ b/entity/Member_entity/entityfields/icon/valueProcess.js
@@ -1,3 +1,4 @@
+import("system.logging");
 import("system.vars");
 import("system.result");
 import("system.neon");
@@ -6,6 +7,7 @@ import("KeywordRegistry_basic");
 
 var role = vars.get("$field.ROLE");
 var isIntern = false, icon;
+
 if(role)
 {
     var keywordAttributes = KeywordUtils.getAttributeRelationsByKey(role, $KeywordRegistry.MemberRole())
@@ -15,4 +17,10 @@ if(role)
 
 if(isIntern)
     result.string("VAADIN:STAR");
-else result.string("VAADIN:AIRPLANE");
\ No newline at end of file
+else result.string("VAADIN:AIRPLANE");
+
+//var keywordAttributes = KeywordUtils.getAttributeRelationsByKey(role, $KeywordRegistry.MemberRole());
+//
+//logging.log(keywordAttributes);
+//
+//result.string("VAADIN:AIRPLANE");
\ No newline at end of file
diff --git a/entity/Member_entity/entityfields/image/valueProcess.js b/entity/Member_entity/entityfields/image/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..16100cd9731b680a25cd2a6517eb6eb18e853e92
--- /dev/null
+++ b/entity/Member_entity/entityfields/image/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string("TEXT:" + vars.get("$field.PERSON_FULL_NAME"));
\ No newline at end of file
diff --git a/entity/ObjectTree_entity/ObjectTree_entity.aod b/entity/ObjectTree_entity/ObjectTree_entity.aod
index 28c0346f335af0dfbf7058256009a0795495bf61..c34eecf01484eb7f20d7d47ff1019248afd437dd 100644
--- a/entity/ObjectTree_entity/ObjectTree_entity.aod
+++ b/entity/ObjectTree_entity/ObjectTree_entity.aod
@@ -1,208 +1,209 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
-  <name>ObjectTree_entity</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <title>Object relation</title>
-  <titlePlural>Relations</titlePlural>
-  <recordContainer>jdito</recordContainer>
-  <entityFields>
-    <entityProvider>
-      <name>#PROVIDER</name>
-    </entityProvider>
-    <entityProvider>
-      <name>TreeProvider</name>
-      <targetContextField>TARGET_CONTEXT</targetContextField>
-      <targetIdField>TARGET_ID</targetIdField>
-      <dependencies>
-        <entityDependency>
-          <name>f4c0605f-3ccb-4ff1-b460-7268e8553857</name>
-          <entityName>Organisation_entity</entityName>
-          <fieldName>ObjectTrees</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>423acf79-e2c5-46e4-9fb5-7b1a7078d4f4</name>
-          <entityName>Person_entity</entityName>
-          <fieldName>ObjectTrees</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-      <children>
-        <entityParameter>
-          <name>ObjectId_param</name>
-          <expose v="true" />
-          <mandatory v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectType_param</name>
-          <expose v="true" />
-          <mandatory v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>RelationType_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>Uid_param</name>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityParameter>
-      <name>ObjectId_param</name>
-      <expose v="true" />
-      <mandatory v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityField>
-      <name>UID</name>
-      <searchable v="false" />
-    </entityField>
-    <entityField>
-      <name>PARENT_ID</name>
-      <searchable v="false" />
-      <tooltip></tooltip>
-      <valueProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/parent_id/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>TITLE</name>
-      <title>Object</title>
-      <linkedContextProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/title/linkedContextProcess.js</linkedContextProcess>
-      <searchable v="false" />
-    </entityField>
-    <entityField>
-      <name>ICON</name>
-      <contentType>IMAGE</contentType>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/icon/valueProcess.js</valueProcess>
-    </entityField>
-    <entityConsumer>
-      <name>ObjectRelationTypes</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>ObjectRelationType_entity</entityName>
-        <fieldName>ObjectRelationTypes</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>SourceObjectType_param</name>
-          <valueProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/objectrelationtypes/children/sourceobjecttype_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityParameter>
-      <name>ObjectType_param</name>
-      <expose v="true" />
-      <mandatory v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityField>
-      <name>EXPANDED</name>
-      <searchable v="false" />
-    </entityField>
-    <entityField>
-      <name>NODEID</name>
-      <searchable v="false" />
-    </entityField>
-    <entityField>
-      <name>TARGET_ID</name>
-      <title>Object</title>
-      <consumer>Objects</consumer>
-      <linkedContextProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/target_id/linkedContextProcess.js</linkedContextProcess>
-      <mandatory v="true" />
-      <searchable v="false" />
-      <stateProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/target_id/stateProcess.js</stateProcess>
-      <displayValueProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/target_id/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>TARGET_CONTEXT</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/target_context/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>INFO</name>
-      <title>Description</title>
-      <contentType>LONG_TEXT</contentType>
-      <searchable v="false" />
-      <tooltipProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/info/tooltipProcess.js</tooltipProcess>
-    </entityField>
-    <entityField>
-      <name>OBJECTRELATIONTYPEID</name>
-      <title>Relationtype</title>
-      <consumer>ObjectRelationTypes</consumer>
-      <mandatory v="true" />
-      <stateProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/objectrelationtypeid/stateProcess.js</stateProcess>
-      <valueProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/objectrelationtypeid/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/objectrelationtypeid/displayValueProcess.js</displayValueProcess>
-      <onValueChange>%aditoprj%/entity/ObjectTree_entity/entityfields/objectrelationtypeid/onValueChange.js</onValueChange>
-    </entityField>
-    <entityConsumer>
-      <name>Objects</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Object_entity</entityName>
-        <fieldName>FilteredObjects</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ObjectType_param</name>
-          <title></title>
-          <valueProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/objects/children/objecttype_param/valueProcess.js</valueProcess>
-          <triggerRecalculation v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ExcludedObjectIds_param</name>
-          <valueProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/objects/children/excludedobjectids_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityActionGroup>
-      <name>alter</name>
-      <children>
-        <entityActionField>
-          <name>insert</name>
-          <onActionProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/alter/children/insert/onActionProcess.js</onActionProcess>
-          <iconId>VAADIN:FILE_TREE_SMALL</iconId>
-          <stateProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/alter/children/insert/stateProcess.js</stateProcess>
-        </entityActionField>
-        <entityActionField>
-          <name>edit</name>
-          <onActionProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/alter/children/edit/onActionProcess.js</onActionProcess>
-          <iconId>NEON:PENCIL</iconId>
-          <stateProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/alter/children/edit/stateProcess.js</stateProcess>
-        </entityActionField>
-      </children>
-    </entityActionGroup>
-    <entityParameter>
-      <name>RelationType_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>Uid_param</name>
-      <expose v="true" />
-      <description>Needed to load ONE Objectrelation together with ObjectId_param and ObjectType_param to determine the side</description>
-    </entityParameter>
-  </entityFields>
-  <recordContainers>
-    <jDitoRecordContainer>
-      <name>jdito</name>
-      <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
-      <isFilterable v="true" />
-      <contentProcess>%aditoprj%/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
-      <onInsert>%aditoprj%/entity/ObjectTree_entity/recordcontainers/jdito/onInsert.js</onInsert>
-      <onUpdate>%aditoprj%/entity/ObjectTree_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
-      <onDelete>%aditoprj%/entity/ObjectTree_entity/recordcontainers/jdito/onDelete.js</onDelete>
-      <recordFields>
-        <element>UID.value</element>
-        <element>TITLE.value</element>
-        <element>PARENT_ID.value</element>
-        <element>EXPANDED.value</element>
-        <element>TARGET_ID.value</element>
-        <element>TARGET_CONTEXT.value</element>
-        <element>INFO.value</element>
-        <element>OBJECTRELATIONTYPEID.value</element>
-      </recordFields>
-    </jDitoRecordContainer>
-  </recordContainers>
-</entity>
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
+  <name>ObjectTree_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <title>Object relation</title>
+  <grantDeleteProcess>%aditoprj%/entity/ObjectTree_entity/grantDeleteProcess.js</grantDeleteProcess>
+  <titlePlural>Relations</titlePlural>
+  <recordContainer>jdito</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+    </entityProvider>
+    <entityProvider>
+      <name>TreeProvider</name>
+      <targetContextField>TARGET_CONTEXT</targetContextField>
+      <targetIdField>TARGET_ID</targetIdField>
+      <dependencies>
+        <entityDependency>
+          <name>f4c0605f-3ccb-4ff1-b460-7268e8553857</name>
+          <entityName>Organisation_entity</entityName>
+          <fieldName>ObjectTrees</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>423acf79-e2c5-46e4-9fb5-7b1a7078d4f4</name>
+          <entityName>Person_entity</entityName>
+          <fieldName>ObjectTrees</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>ObjectId_param</name>
+          <expose v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <expose v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>RelationType_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>Uid_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityParameter>
+      <name>ObjectId_param</name>
+      <expose v="true" />
+      <mandatory v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityField>
+      <name>UID</name>
+      <searchable v="false" />
+    </entityField>
+    <entityField>
+      <name>PARENT_ID</name>
+      <searchable v="false" />
+      <tooltip></tooltip>
+      <valueProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/parent_id/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>TITLE</name>
+      <title>Object</title>
+      <linkedContextProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/title/linkedContextProcess.js</linkedContextProcess>
+      <searchable v="false" />
+    </entityField>
+    <entityField>
+      <name>ICON</name>
+      <contentType>IMAGE</contentType>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/icon/valueProcess.js</valueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>ObjectRelationTypes</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ObjectRelationType_entity</entityName>
+        <fieldName>ObjectRelationTypes</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>SourceObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/objectrelationtypes/children/sourceobjecttype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityParameter>
+      <name>ObjectType_param</name>
+      <expose v="true" />
+      <mandatory v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityField>
+      <name>EXPANDED</name>
+      <searchable v="false" />
+    </entityField>
+    <entityField>
+      <name>NODEID</name>
+      <searchable v="false" />
+    </entityField>
+    <entityField>
+      <name>TARGET_ID</name>
+      <title>Object</title>
+      <consumer>Objects</consumer>
+      <linkedContextProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/target_id/linkedContextProcess.js</linkedContextProcess>
+      <mandatory v="true" />
+      <searchable v="false" />
+      <stateProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/target_id/stateProcess.js</stateProcess>
+      <displayValueProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/target_id/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>TARGET_CONTEXT</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/target_context/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>INFO</name>
+      <title>Description</title>
+      <contentType>LONG_TEXT</contentType>
+      <searchable v="false" />
+      <tooltipProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/info/tooltipProcess.js</tooltipProcess>
+    </entityField>
+    <entityField>
+      <name>OBJECTRELATIONTYPEID</name>
+      <title>Relationtype</title>
+      <consumer>ObjectRelationTypes</consumer>
+      <mandatory v="true" />
+      <stateProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/objectrelationtypeid/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/objectrelationtypeid/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/objectrelationtypeid/displayValueProcess.js</displayValueProcess>
+      <onValueChange>%aditoprj%/entity/ObjectTree_entity/entityfields/objectrelationtypeid/onValueChange.js</onValueChange>
+    </entityField>
+    <entityConsumer>
+      <name>Objects</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Object_entity</entityName>
+        <fieldName>FilteredObjects</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <title></title>
+          <valueProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/objects/children/objecttype_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ExcludedObjectIds_param</name>
+          <valueProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/objects/children/excludedobjectids_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityActionGroup>
+      <name>alter</name>
+      <children>
+        <entityActionField>
+          <name>insert</name>
+          <onActionProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/alter/children/insert/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:FILE_TREE_SMALL</iconId>
+          <stateProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/alter/children/insert/stateProcess.js</stateProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>edit</name>
+          <onActionProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/alter/children/edit/onActionProcess.js</onActionProcess>
+          <iconId>NEON:PENCIL</iconId>
+          <stateProcess>%aditoprj%/entity/ObjectTree_entity/entityfields/alter/children/edit/stateProcess.js</stateProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
+    <entityParameter>
+      <name>RelationType_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>Uid_param</name>
+      <expose v="true" />
+      <description>Needed to load ONE Objectrelation together with ObjectId_param and ObjectType_param to determine the side</description>
+    </entityParameter>
+  </entityFields>
+  <recordContainers>
+    <jDitoRecordContainer>
+      <name>jdito</name>
+      <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
+      <isFilterable v="true" />
+      <contentProcess>%aditoprj%/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
+      <onInsert>%aditoprj%/entity/ObjectTree_entity/recordcontainers/jdito/onInsert.js</onInsert>
+      <onUpdate>%aditoprj%/entity/ObjectTree_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
+      <onDelete>%aditoprj%/entity/ObjectTree_entity/recordcontainers/jdito/onDelete.js</onDelete>
+      <recordFields>
+        <element>UID.value</element>
+        <element>TITLE.value</element>
+        <element>PARENT_ID.value</element>
+        <element>EXPANDED.value</element>
+        <element>TARGET_ID.value</element>
+        <element>TARGET_CONTEXT.value</element>
+        <element>INFO.value</element>
+        <element>OBJECTRELATIONTYPEID.value</element>
+      </recordFields>
+    </jDitoRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/Object_entity/Object_entity.aod b/entity/Object_entity/Object_entity.aod
index 2a5bcd1a989a21127d3f813c6e32c93213d095a3..e504fb8b241d892022b64b318a85fc45e2c35634 100644
--- a/entity/Object_entity/Object_entity.aod
+++ b/entity/Object_entity/Object_entity.aod
@@ -53,12 +53,6 @@
           <fieldName>Objects</fieldName>
           <isConsumer v="false" />
         </entityDependency>
-        <entityDependency>
-          <name>f6bb8beb-dbcb-4871-9c50-d2399d569fdb</name>
-          <entityName>Offer_entity</entityName>
-          <fieldName>Objects</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
         <entityDependency>
           <name>8834387f-acf8-4d9f-80ec-45425622a3dd</name>
           <entityName>Competition_entity</entityName>
@@ -83,6 +77,10 @@
           <name>ExcludedObjectIds_param</name>
           <expose v="false" />
         </entityParameter>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="false" />
+        </entityParameter>
       </children>
     </entityProvider>
     <entityConsumer>
@@ -92,12 +90,12 @@
         <entityName>Organisation_entity</entityName>
         <fieldName>#PROVIDER</fieldName>
       </dependency>
-      <children>
-        <entityParameter>
-          <name>ExcludedContactIds_param</name>
-          <valueProcess>%aditoprj%/entity/Object_entity/entityfields/organisations/children/excludedcontactids_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
+      <children>
+        <entityParameter>
+          <name>ExcludedContactIds_param</name>
+          <valueProcess>%aditoprj%/entity/Object_entity/entityfields/organisations/children/excludedcontactids_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityConsumer>
       <name>Persons</name>
@@ -106,12 +104,16 @@
         <entityName>Person_entity</entityName>
         <fieldName>#PROVIDER</fieldName>
       </dependency>
-      <children>
-        <entityParameter>
-          <name>ExcludedContactIds_param</name>
-          <valueProcess>%aditoprj%/entity/Object_entity/entityfields/persons/children/excludedcontactids_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
+      <children>
+        <entityParameter>
+          <name>ExcludedContactIds_param</name>
+          <valueProcess>%aditoprj%/entity/Object_entity/entityfields/persons/children/excludedcontactids_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Object_entity/entityfields/persons/children/contactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityConsumer>
       <name>Offers</name>
@@ -120,6 +122,12 @@
         <entityName>Offer_entity</entityName>
         <fieldName>#PROVIDER</fieldName>
       </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Object_entity/entityfields/offers/children/contactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityConsumer>
       <name>Orders</name>
@@ -128,6 +136,12 @@
         <entityName>Order_entity</entityName>
         <fieldName>#PROVIDER</fieldName>
       </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Object_entity/entityfields/orders/children/contactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityConsumer>
       <name>Products</name>
@@ -144,6 +158,12 @@
         <entityName>Contract_entity</entityName>
         <fieldName>#PROVIDER</fieldName>
       </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Object_entity/entityfields/contracts/children/contactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityConsumer>
       <name>Salesprojects</name>
@@ -152,6 +172,12 @@
         <entityName>Salesproject_entity</entityName>
         <fieldName>#PROVIDER</fieldName>
       </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Object_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityParameter>
       <name>ExcludedObjectIds_param</name>
@@ -168,6 +194,12 @@
           <fieldName>Objects</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>e93b8c8f-2575-4669-9e45-48d8382444ab</name>
+          <entityName>Offer_entity</entityName>
+          <fieldName>Objects</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
@@ -180,6 +212,10 @@
           <triggerRecalculation v="true" />
           <mandatory v="true" />
         </entityParameter>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="true" />
+        </entityParameter>
       </children>
     </entityProvider>
     <entityConsumer>
@@ -198,6 +234,10 @@
         <fieldName>#PROVIDER</fieldName>
       </dependency>
     </entityConsumer>
+    <entityParameter>
+      <name>ContactId_param</name>
+      <expose v="true" />
+    </entityParameter>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
diff --git a/entity/Object_entity/entityfields/contracts/children/contactid_param/valueProcess.js b/entity/Object_entity/entityfields/contracts/children/contactid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ca088c7645554049762a2b629b6a26809e8a8832
--- /dev/null
+++ b/entity/Object_entity/entityfields/contracts/children/contactid_param/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.vars");
+import("system.result");
+result.string(vars.get("$param.ContactId_param"));
\ No newline at end of file
diff --git a/entity/Object_entity/entityfields/offers/children/contactid_param/valueProcess.js b/entity/Object_entity/entityfields/offers/children/contactid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ca088c7645554049762a2b629b6a26809e8a8832
--- /dev/null
+++ b/entity/Object_entity/entityfields/offers/children/contactid_param/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.vars");
+import("system.result");
+result.string(vars.get("$param.ContactId_param"));
\ No newline at end of file
diff --git a/entity/Object_entity/entityfields/orders/children/contactid_param/valueProcess.js b/entity/Object_entity/entityfields/orders/children/contactid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ca088c7645554049762a2b629b6a26809e8a8832
--- /dev/null
+++ b/entity/Object_entity/entityfields/orders/children/contactid_param/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.vars");
+import("system.result");
+result.string(vars.get("$param.ContactId_param"));
\ No newline at end of file
diff --git a/entity/Object_entity/entityfields/persons/children/contactid_param/valueProcess.js b/entity/Object_entity/entityfields/persons/children/contactid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ca088c7645554049762a2b629b6a26809e8a8832
--- /dev/null
+++ b/entity/Object_entity/entityfields/persons/children/contactid_param/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.vars");
+import("system.result");
+result.string(vars.get("$param.ContactId_param"));
\ No newline at end of file
diff --git a/entity/Object_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js b/entity/Object_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ca088c7645554049762a2b629b6a26809e8a8832
--- /dev/null
+++ b/entity/Object_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.vars");
+import("system.result");
+result.string(vars.get("$param.ContactId_param"));
\ No newline at end of file
diff --git a/entity/Object_entity/recordcontainers/jdito/contentProcess.js b/entity/Object_entity/recordcontainers/jdito/contentProcess.js
index 932e731251c23666c267719d92e6cef41b191f71..be53d613509b6299cd40adf724395524a7a6e15c 100644
--- a/entity/Object_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Object_entity/recordcontainers/jdito/contentProcess.js
@@ -13,7 +13,11 @@ if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param"
     if (vars.exists("$param.ExcludedObjectIds_param") && vars.get("$param.ExcludedObjectIds_param"))
         excludedIds = JSON.parse(vars.getString("$param.ExcludedObjectIds_param"));
     
-    result.object(db.table(ContextUtils.getContextDataSql(vars.get("$param.ObjectType_param"), undefined, false, undefined, false, excludedIds)))
+    var contactId
+    if (vars.exists("$param.ContactId") && vars.get("$param.ContactId"))
+        contactId = vars.get("$param.ContactId");
+    
+    result.object(db.table(ContextUtils.getContextDataSql(vars.get("$param.ObjectType_param"), contactId, false, undefined, false, excludedIds)))
 } 
 else
 {
diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod
index f590f09647a72172346e12a860986813e79e60f7..560dadf71a05818c2890d09385087f5a0ef4cf3c 100644
--- a/entity/Offer_entity/Offer_entity.aod
+++ b/entity/Offer_entity/Offer_entity.aod
@@ -1,989 +1,1044 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
-  <name>Offer_entity</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <documentation>%aditoprj%/entity/Offer_entity/documentation.adoc</documentation>
-  <title>Offer</title>
-  <siblings>
-    <element>Offeritem_entity</element>
-  </siblings>
-  <afterUiInit>%aditoprj%/entity/Offer_entity/afterUiInit.js</afterUiInit>
-  <iconId>VAADIN:CART</iconId>
-  <recordContainer>db</recordContainer>
-  <entityFields>
-    <entityProvider>
-      <name>#PROVIDER</name>
-      <dependencies>
-        <entityDependency>
-          <name>f909c251-16c1-49e2-9b43-6d5f834137c6</name>
-          <entityName>Object_entity</entityName>
-          <fieldName>Offers</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-    </entityProvider>
-    <entityField>
-      <name>CURRENCY</name>
-      <title>Currency</title>
-      <consumer>KeywordCurrencies</consumer>
-      <mandatory v="true" />
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/currency/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/currency/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>OFFERCODE</name>
-      <documentation>%aditoprj%/entity/Offer_entity/entityfields/offercode/documentation.adoc</documentation>
-      <title>Offer number</title>
-      <state>READONLY</state>
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offercode/valueProcess.js</valueProcess>
-      <onValidation>%aditoprj%/entity/Offer_entity/entityfields/offercode/onValidation.js</onValidation>
-    </entityField>
-    <entityField>
-      <name>OFFERDATE</name>
-      <title>Date</title>
-      <contentType>DATE</contentType>
-      <resolution>DAY</resolution>
-      <outputFormat>dd.MM.yyyy</outputFormat>
-      <inputFormat>dd.MM.yyyy</inputFormat>
-      <mandatory v="true" />
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offerdate/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>OFFERID</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offerid/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>PROBABILITY</name>
-      <title>Probability</title>
-      <consumer>KeywordProbabilities</consumer>
-      <contentType>NUMBER</contentType>
-      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/probability/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>CONTACT_ID</name>
-      <documentation>%aditoprj%/entity/Offer_entity/entityfields/contact_id/documentation.adoc</documentation>
-      <title>Connection</title>
-      <consumer>AnyContacts</consumer>
-      <linkedContextProcess>%aditoprj%/entity/Offer_entity/entityfields/contact_id/linkedContextProcess.js</linkedContextProcess>
-      <mandatory v="true" />
-      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/contact_id/stateProcess.js</stateProcess>
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/contact_id/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/contact_id/displayValueProcess.js</displayValueProcess>
-      <onValueChange>%aditoprj%/entity/Offer_entity/entityfields/contact_id/onValueChange.js</onValueChange>
-      <onValueChangeTypes>
-        <element>MASK</element>
-        <element>PROCESS</element>
-        <element>PROCESS_SETVALUE</element>
-      </onValueChangeTypes>
-    </entityField>
-    <entityField>
-      <name>STATUS</name>
-      <title>Status</title>
-      <consumer>KeywordOfferStates</consumer>
-      <mandatory v="true" />
-      <state>EDITABLE</state>
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/status/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/status/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>VAT</name>
-      <title>Total VAT</title>
-      <contentType>NUMBER</contentType>
-      <inputFormat>#,##0.00</inputFormat>
-      <state>READONLY</state>
-      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/vat/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>IMAGE</name>
-      <contentType>IMAGE</contentType>
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/image/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>HEADER</name>
-      <title>Header text</title>
-      <contentType>LONG_TEXT</contentType>
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/header/valueProcess.js</valueProcess>
-    </entityField>
-    <entityConsumer>
-      <name>Offeritems</name>
-      <description></description>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Offeritem_entity</entityName>
-        <fieldName>OfferItems</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>OfferId_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offeritems/children/offerid_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-          <mandatory v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>Currency_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offeritems/children/currency_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offeritems/children/ContactId_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-          <mandatory v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>OfferStatus_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offeritems/children/offerstatus_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-          <mandatory v="true" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityActionField>
-      <name>newOfferVersion</name>
-      <title>New offer version</title>
-      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/newofferversion/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CART</iconId>
-    </entityActionField>
-    <entityField>
-      <name>NET</name>
-      <title>Total net</title>
-      <contentType>NUMBER</contentType>
-      <inputFormat>#,##0.00</inputFormat>
-      <state>READONLY</state>
-      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/net/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>TotalGross</name>
-      <documentation>%aditoprj%/entity/Offer_entity/entityfields/totalgross/documentation.adoc</documentation>
-      <title>Total gross</title>
-      <contentType>NUMBER</contentType>
-      <inputFormat>#,##0.00</inputFormat>
-      <state>READONLY</state>
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/totalgross/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/totalgross/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>LANGUAGE</name>
-      <title>Language</title>
-      <consumer>Languages</consumer>
-      <mandatory v="true" />
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/language/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/language/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityActionField>
-      <name>copyOffer</name>
-      <title>Copy offer</title>
-      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/copyoffer/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:COPY</iconId>
-    </entityActionField>
-    <entityField>
-      <name>VERSNR</name>
-      <documentation>%aditoprj%/entity/Offer_entity/entityfields/versnr/documentation.adoc</documentation>
-      <title>Vers. no.</title>
-      <state>READONLY</state>
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/versnr/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>OFFER_ID</name>
-      <documentation>%aditoprj%/entity/Offer_entity/entityfields/offer_id/documentation.adoc</documentation>
-    </entityField>
-    <entityFieldGroup>
-      <name>OfferCode_VersNr_fieldgroup</name>
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offercode_versnr_fieldgroup/valueProcess.js</valueProcess>
-      <title>Offer number</title>
-      <description>Offercode + VersNr</description>
-      <state>READONLY</state>
-      <fields>
-        <element>OFFERCODE</element>
-        <element>VERSNR</element>
-      </fields>
-    </entityFieldGroup>
-    <entityParameter>
-      <name>ContactId_param</name>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <mandatory v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityActionField>
-      <name>printOffer</name>
-      <title>Print Offer</title>
-      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/printoffer/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:FILE_TEXT_O</iconId>
-      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/printoffer/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityField>
-      <name>CONTACT_ORG_ID</name>
-      <searchable v="false" />
-    </entityField>
-    <entityField>
-      <name>CONTACT_PERSON_ID</name>
-      <searchable v="false" />
-    </entityField>
-    <entityConsumer>
-      <name>AnyContacts</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AnyContact_entity</entityName>
-        <fieldName>#PROVIDER</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Documents</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>Documents</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>AssignmentRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>AssignmentTable_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>MainDocuments</name>
-      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/maindocuments/stateProcess.js</stateProcess>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>MainDocuments</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>AssignmentRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/maindocuments/children/assignmentrowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>AssignmentTable_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/maindocuments/children/assignmenttable_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>ADDRESS</name>
-      <documentation>%aditoprj%/entity/Offer_entity/entityfields/address/documentation.adoc</documentation>
-      <title>Address</title>
-      <description></description>
-      <contentType>LONG_TEXT</contentType>
-      <mandatory v="true" />
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/address/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>ChosenAddress</name>
-      <title>Choose address</title>
-      <consumer>PossibleAddresses</consumer>
-      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/chosenaddress/stateProcess.js</stateProcess>
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/chosenaddress/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/chosenaddress/displayValueProcess.js</displayValueProcess>
-      <onValueChange>%aditoprj%/entity/Offer_entity/entityfields/chosenaddress/onValueChange.js</onValueChange>
-      <onValueChangeTypes>
-        <element>MASK</element>
-        <element>PROCESS</element>
-      </onValueChangeTypes>
-    </entityField>
-    <entityConsumer>
-      <name>KeywordCurrencies</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keywordcurrencies/children/containername_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>KeywordOfferStates</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keywordofferstates/children/containername_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityActionField>
-      <name>newOrder</name>
-      <title>Create receipt</title>
-      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/neworder/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:DOLLAR</iconId>
-    </entityActionField>
-    <entityConsumer>
-      <name>Languages</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Language_entity</entityName>
-        <fieldName>ISO3Name</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>KeywordProbabilities</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keywordprobabilities/children/containername_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Activities</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Activity_entity</entityName>
-        <fieldName>LinkedObjects</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ObjectId_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/activities/children/objectid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>RowId_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/activities/children/rowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>PresetLinks_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/activities/children/presetlinks_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityActionField>
-      <name>newActivity</name>
-      <title>New activity</title>
-      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:HOURGLASS_END</iconId>
-      <tooltip>New activity</tooltip>
-      <tooltipProcess>%aditoprj%/entity/Offer_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
-    </entityActionField>
-    <entityProvider>
-      <name>ContactOffers</name>
-      <dependencies>
-        <entityDependency>
-          <name>5c9720b5-1288-4a30-88fd-6dcff6359083</name>
-          <entityName>Person_entity</entityName>
-          <fieldName>Offers</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>b308795f-3c81-4e60-99ca-3b5f8e82f62a</name>
-          <entityName>Organisation_entity</entityName>
-          <fieldName>Offers</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>SalesprojectId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OfferLanguage_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectRowId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OfferCode_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OfferAddress_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OfferCurrency_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OfferDeliveryTerm_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OfferHeader_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>OfferOriginal_Id_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>OfferPaymentTerm_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OfferVersnr_param</name>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityParameter>
-      <name>OfferCurrency_param</name>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <mandatory v="false" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>OfferLanguage_param</name>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <mandatory v="false" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>OfferHeader_param</name>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <mandatory v="false" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>OfferOriginal_Id_param</name>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <mandatory v="false" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>OfferAddress_param</name>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <mandatory v="false" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>OfferCode_param</name>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <mandatory v="false" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>OfferVersnr_param</name>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <mandatory v="false" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityActionField>
-      <name>newTask</name>
-      <title>New task</title>
-      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:TASKS</iconId>
-    </entityActionField>
-    <entityField>
-      <name>PAYMENTTERMS</name>
-      <title>Payment term</title>
-      <consumer>KeywordPaymentTerm</consumer>
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/paymentterms/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/paymentterms/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>DELIVERYTERMS</name>
-      <title>Delivery specification</title>
-      <consumer>KeywordDeliveryTerm</consumer>
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/deliveryterms/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/deliveryterms/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityConsumer>
-      <name>KeywordPaymentTerm</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keywordpaymentterm/children/containername_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>KeywordDeliveryTerm</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keyworddeliveryterm/children/containername_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Tasks</name>
-      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/tasks/stateProcess.js</stateProcess>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Task_entity</entityName>
-        <fieldName>Tasks</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>RowId_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/tasks/children/rowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectId_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/tasks/children/objectid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>PresetLinks_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/tasks/children/presetlinks_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>INFO</name>
-      <title>Information</title>
-      <contentType>LONG_TEXT</contentType>
-    </entityField>
-    <entityConsumer>
-      <name>Attributes</name>
-      <onValidation>%aditoprj%/entity/Offer_entity/entityfields/attributes/onValidation.js</onValidation>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>AttributeRelations</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectType_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityParameter>
-      <name>OfferPaymentTerm_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>OfferDeliveryTerm_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityField>
-      <name>USER_NEW</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/user_new/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>USER_EDIT</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/user_edit/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>DATE_NEW</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/date_new/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>DATE_EDIT</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/date_edit/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>FullOfferCode</name>
-      <title>Offer number</title>
-      <state>READONLY</state>
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/fulloffercode/valueProcess.js</valueProcess>
-    </entityField>
-    <entityConsumer>
-      <name>PossibleAddresses</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Address_entity</entityName>
-        <fieldName>OrganisationAndContactAddresses</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/possibleaddresses/children/contactid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>ChoosenTEXHeader</name>
-      <title>Choose Header</title>
-      <consumer>DocumentTemplateTexHeader</consumer>
-    </entityField>
-    <entityField>
-      <name>OBJECT_ROWID</name>
-      <consumer>Objects</consumer>
-      <linkedContextProcess>%aditoprj%/entity/Offer_entity/entityfields/object_rowid/linkedContextProcess.js</linkedContextProcess>
-      <mandatoryProcess>%aditoprj%/entity/Offer_entity/entityfields/object_rowid/mandatoryProcess.js</mandatoryProcess>
-      <state>AUTO</state>
-      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/object_rowid/stateProcess.js</stateProcess>
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/object_rowid/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/object_rowid/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>OBJECT_TYPE</name>
-      <consumer>Contexts</consumer>
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/object_type/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/object_type/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityConsumer>
-      <name>Objects</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Object_entity</entityName>
-        <fieldName>AllObjects</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Contexts</name>
-      <dependency>
-        <name>dependency</name>
-      </dependency>
-    </entityConsumer>
-    <entityProvider>
-      <name>Links</name>
-      <recordContainer>db</recordContainer>
-      <dependencies>
-        <entityDependency>
-          <name>88a166e6-ccd0-4d51-b554-e3327f66d834</name>
-          <entityName>Salesproject_entity</entityName>
-          <fieldName>Offers</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-      <children>
-        <entityParameter>
-          <name>OfferDeliveryTerm_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OfferCode_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OfferOriginal_Id_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectRowId_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectType_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>OfferAddress_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OfferCurrency_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OfferHeader_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OfferLanguage_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OfferPaymentTerm_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>OfferVersnr_param</name>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityParameter>
-      <name>ObjectRowId_param</name>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>ObjectType_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityField>
-      <name>chooseTEXHeader</name>
-      <consumer>DocumentTemplateTex</consumer>    </entityField>
-    <entityConsumer>
-      <name>DocumentTemplateTexHeader</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>DocumentTemplate_entity</entityName>
-        <fieldName>DocumentTemplateProvider</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>DocumentTemplateType_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/documenttemplatetexheader/children/documenttemplatetype_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>DocumentTemplateTypeClassification_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/documenttemplatetexheader/children/documenttemplatetypeclassification_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>LogHistoryConsumer</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>LogHistory_entity</entityName>
-        <fieldName>LogHistoryProvider</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>tablenames_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>FOOTER</name>
-      <title>Footer text</title>
-      <contentType>LONG_TEXT</contentType>
-      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/footer/valueProcess.js</valueProcess>
-    </entityField>
-    <entityParameter>
-      <name>OfferFooter_param</name>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityField>
-      <name>ChoosenTEXFooter</name>
-      <title>Choose Footer</title>
-      <consumer>DocumentTemplateTexFooter</consumer>
-    </entityField>
-    <entityConsumer>
-      <name>DocumentTemplateTexFooter</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>DocumentTemplate_entity</entityName>
-        <fieldName>DocumentTemplateProvider</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>DocumentTemplateType_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/documenttemplatetexfooter/children/documenttemplatetype_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>DocumentTemplateTypeClassification_param</name>
-          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/documenttemplatetexfooter/children/documenttemplatetypeclassification_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-  </entityFields>
-  <recordContainers>
-    <dbRecordContainer>
-      <name>db</name>
-      <alias>Data_alias</alias>
-      <maximumDbRows v="0" />
-      <fromClauseProcess>%aditoprj%/entity/Offer_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
-      <conditionProcess>%aditoprj%/entity/Offer_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <orderClauseProcess>%aditoprj%/entity/Offer_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <onDBInsert>%aditoprj%/entity/Offer_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
-      <onDBDelete>%aditoprj%/entity/Offer_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>681f6893-d11a-430c-a8ca-87215054d86f</name>
-          <tableName>OFFER</tableName>
-          <primaryKey>OFFERID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>acdf69f0-c6ad-431a-90c7-5bd0b3dc3d8e</name>
-          <tableName>CONTACT</tableName>
-          <primaryKey>CONTACTID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>b129928e-886e-4482-99da-463135008fef</name>
-          <tableName>SALESPROJECT</tableName>
-          <primaryKey>SALESPROJECTID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
-      <recordFieldMappings>
-        <dbRecordFieldMapping>
-          <name>CURRENCY.value</name>
-          <recordfield>OFFER.CURRENCY</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>HEADER.value</name>
-          <recordfield>OFFER.HEADER</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>LANGUAGE.value</name>
-          <recordfield>OFFER.LANGUAGE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>NET.value</name>
-          <recordfield>OFFER.NET</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>OFFERCODE.value</name>
-          <recordfield>OFFER.OFFERCODE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>OFFERDATE.value</name>
-          <recordfield>OFFER.OFFERDATE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>OFFERID.value</name>
-          <recordfield>OFFER.OFFERID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PROBABILITY.value</name>
-          <recordfield>OFFER.PROBABILITY</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>STATUS.value</name>
-          <recordfield>OFFER.STATUS</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>VAT.value</name>
-          <recordfield>OFFER.VAT</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>VERSNR.value</name>
-          <recordfield>OFFER.VERSNR</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>CONTACT_ID.value</name>
-          <recordfield>OFFER.CONTACT_ID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>CONTACT_ORG_ID.value</name>
-          <recordfield>CONTACT.ORGANISATION_ID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>CONTACT_PERSON_ID.value</name>
-          <recordfield>CONTACT.PERSON_ID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>ADDRESS.value</name>
-          <recordfield>OFFER.ADDRESS</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>CURRENCY.displayValue</name>
-          <expression>%aditoprj%/entity/Offer_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>STATUS.displayValue</name>
-          <expression>%aditoprj%/entity/Offer_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <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>
-        <dbRecordFieldMapping>
-          <name>PAYMENTTERMS.value</name>
-          <recordfield>OFFER.PAYMENTTERMS</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>DELIVERYTERMS.value</name>
-          <recordfield>OFFER.DELIVERYTERMS</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>DELIVERYTERMS.displayValue</name>
-          <expression>%aditoprj%/entity/Offer_entity/recordcontainers/db/recordfieldmappings/deliveryterms.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PAYMENTTERMS.displayValue</name>
-          <expression>%aditoprj%/entity/Offer_entity/recordcontainers/db/recordfieldmappings/paymentterms.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>INFO.value</name>
-          <recordfield>OFFER.INFO</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>USER_NEW.value</name>
-          <recordfield>OFFER.USER_NEW</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>USER_EDIT.value</name>
-          <recordfield>OFFER.USER_EDIT</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>DATE_NEW.value</name>
-          <recordfield>OFFER.DATE_NEW</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>DATE_EDIT.value</name>
-          <recordfield>OFFER.DATE_EDIT</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>OBJECT_ROWID.value</name>
-          <recordfield>OFFER.OBJECT_ROWID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>FOOTER.value</name>
-          <recordfield>OFFER.FOOTER</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>OBJECT_TYPE.value</name>
-          <recordfield>OFFER.OBJECT_TYPE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>OBJECT_ROWID.displayValue</name>
-          <expression>%aditoprj%/entity/Offer_entity/recordcontainers/db/recordfieldmappings/object_rowid.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
-      </recordFieldMappings>
-    </dbRecordContainer>
-  </recordContainers>
-</entity>
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
+  <name>Offer_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <documentation>%aditoprj%/entity/Offer_entity/documentation.adoc</documentation>
+  <title>Offer</title>
+  <afterUiInit>%aditoprj%/entity/Offer_entity/afterUiInit.js</afterUiInit>
+  <iconId>VAADIN:CART</iconId>
+  <recordContainer>db</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+      <dependencies>
+        <entityDependency>
+          <name>f909c251-16c1-49e2-9b43-6d5f834137c6</name>
+          <entityName>Object_entity</entityName>
+          <fieldName>Offers</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+    <entityField>
+      <name>CURRENCY</name>
+      <title>Currency</title>
+      <consumer>KeywordCurrencies</consumer>
+      <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/currency/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/currency/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>OFFERCODE</name>
+      <documentation>%aditoprj%/entity/Offer_entity/entityfields/offercode/documentation.adoc</documentation>
+      <title>Offer number</title>
+      <state>READONLY</state>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offercode/valueProcess.js</valueProcess>
+      <onValidation>%aditoprj%/entity/Offer_entity/entityfields/offercode/onValidation.js</onValidation>
+    </entityField>
+    <entityField>
+      <name>OFFERDATE</name>
+      <title>Date</title>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
+      <outputFormat>dd.MM.yyyy</outputFormat>
+      <inputFormat>dd.MM.yyyy</inputFormat>
+      <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offerdate/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>OFFERID</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offerid/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>PROBABILITY</name>
+      <title>Probability</title>
+      <consumer>KeywordProbabilities</consumer>
+      <contentType>NUMBER</contentType>
+      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/probability/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>STATUS</name>
+      <title>Status</title>
+      <consumer>KeywordOfferStates</consumer>
+      <mandatory v="true" />
+      <state>EDITABLE</state>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/status/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/status/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>VAT</name>
+      <title>Total VAT</title>
+      <contentType>NUMBER</contentType>
+      <inputFormat>#,##0.00</inputFormat>
+      <state>READONLY</state>
+      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/vat/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>IMAGE</name>
+      <contentType>IMAGE</contentType>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/image/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>HEADER</name>
+      <title>Header text</title>
+      <contentType>LONG_TEXT</contentType>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/header/valueProcess.js</valueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>Offeritems</name>
+      <description></description>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Offeritem_entity</entityName>
+        <fieldName>OfferItems</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>OfferId_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offeritems/children/offerid_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>Currency_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offeritems/children/currency_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offeritems/children/ContactId_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>OfferStatus_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offeritems/children/offerstatus_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityActionField>
+      <name>newOfferVersion</name>
+      <title>New offer version</title>
+      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/newofferversion/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CART</iconId>
+    </entityActionField>
+    <entityField>
+      <name>NET</name>
+      <title>Total net</title>
+      <contentType>NUMBER</contentType>
+      <inputFormat>#,##0.00</inputFormat>
+      <state>READONLY</state>
+      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/net/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>TotalGross</name>
+      <documentation>%aditoprj%/entity/Offer_entity/entityfields/totalgross/documentation.adoc</documentation>
+      <title>Total gross</title>
+      <contentType>NUMBER</contentType>
+      <inputFormat>#,##0.00</inputFormat>
+      <state>READONLY</state>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/totalgross/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/totalgross/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>LANGUAGE</name>
+      <title>Language</title>
+      <consumer>Languages</consumer>
+      <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/language/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/language/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityActionField>
+      <name>copyOffer</name>
+      <title>Copy offer</title>
+      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/copyoffer/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:COPY</iconId>
+    </entityActionField>
+    <entityField>
+      <name>VERSNR</name>
+      <documentation>%aditoprj%/entity/Offer_entity/entityfields/versnr/documentation.adoc</documentation>
+      <title>Vers. no.</title>
+      <state>READONLY</state>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/versnr/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>OFFER_ID</name>
+      <documentation>%aditoprj%/entity/Offer_entity/entityfields/offer_id/documentation.adoc</documentation>
+    </entityField>
+    <entityFieldGroup>
+      <name>OfferCode_VersNr_fieldgroup</name>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offercode_versnr_fieldgroup/valueProcess.js</valueProcess>
+      <title>Offer number</title>
+      <description>Offercode + VersNr</description>
+      <state>READONLY</state>
+      <fields>
+        <element>OFFERCODE</element>
+        <element>VERSNR</element>
+      </fields>
+    </entityFieldGroup>
+    <entityParameter>
+      <name>ContactId_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <mandatory v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityActionField>
+      <name>printOffer</name>
+      <title>Print Offer</title>
+      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/printoffer/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:FILE_TEXT_O</iconId>
+      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/printoffer/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityField>
+      <name>CONTACT_ORG_ID</name>
+      <searchable v="false" />
+    </entityField>
+    <entityField>
+      <name>CONTACT_PERSON_ID</name>
+      <searchable v="false" />
+    </entityField>
+    <entityConsumer>
+      <name>AnyContacts</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AnyContact_entity</entityName>
+        <fieldName>OnlySameCompany</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/anycontacts/children/contactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Documents</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>Documents</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>AssignmentRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>AssignmentTable_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>MainDocuments</name>
+      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/maindocuments/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>MainDocuments</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>AssignmentRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/maindocuments/children/assignmentrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>AssignmentTable_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/maindocuments/children/assignmenttable_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>ADDRESS</name>
+      <documentation>%aditoprj%/entity/Offer_entity/entityfields/address/documentation.adoc</documentation>
+      <title>Address</title>
+      <description></description>
+      <contentType>LONG_TEXT</contentType>
+      <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/address/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>ChosenAddress</name>
+      <title>Choose address</title>
+      <consumer>PossibleAddresses</consumer>
+      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/chosenaddress/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/chosenaddress/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/chosenaddress/displayValueProcess.js</displayValueProcess>
+      <onValueChange>%aditoprj%/entity/Offer_entity/entityfields/chosenaddress/onValueChange.js</onValueChange>
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+      </onValueChangeTypes>
+    </entityField>
+    <entityConsumer>
+      <name>KeywordCurrencies</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keywordcurrencies/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordOfferStates</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keywordofferstates/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityActionField>
+      <name>newOrder</name>
+      <title>Create receipt</title>
+      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/neworder/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:DOLLAR</iconId>
+    </entityActionField>
+    <entityConsumer>
+      <name>Languages</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Language_entity</entityName>
+        <fieldName>ISO3Name</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordProbabilities</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keywordprobabilities/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Activities</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Activity_entity</entityName>
+        <fieldName>LinkedObjects</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectId_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/activities/children/objectid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>RowId_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/activities/children/rowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>PresetLinks_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/activities/children/presetlinks_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityActionField>
+      <name>newActivity</name>
+      <title>New activity</title>
+      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:HOURGLASS_END</iconId>
+      <tooltip>New activity</tooltip>
+      <tooltipProcess>%aditoprj%/entity/Offer_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
+    </entityActionField>
+    <entityProvider>
+      <name>ContactOffers</name>
+      <dependencies>
+        <entityDependency>
+          <name>5c9720b5-1288-4a30-88fd-6dcff6359083</name>
+          <entityName>Person_entity</entityName>
+          <fieldName>Offers</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>b308795f-3c81-4e60-99ca-3b5f8e82f62a</name>
+          <entityName>Organisation_entity</entityName>
+          <fieldName>Offers</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>SalesprojectId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OfferLanguage_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OfferCode_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OfferAddress_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OfferCurrency_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OfferDeliveryTerm_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OfferHeader_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>OfferOriginal_Id_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>OfferPaymentTerm_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OfferVersnr_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>PossibleConnectionTypes</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityParameter>
+      <name>OfferCurrency_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <mandatory v="false" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>OfferLanguage_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <mandatory v="false" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>OfferHeader_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <mandatory v="false" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>OfferOriginal_Id_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <mandatory v="false" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>OfferAddress_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <mandatory v="false" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>OfferCode_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <mandatory v="false" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>OfferVersnr_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <mandatory v="false" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityActionField>
+      <name>newTask</name>
+      <title>New task</title>
+      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:TASKS</iconId>
+    </entityActionField>
+    <entityField>
+      <name>PAYMENTTERMS</name>
+      <title>Payment term</title>
+      <consumer>KeywordPaymentTerm</consumer>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/paymentterms/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/paymentterms/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>DELIVERYTERMS</name>
+      <title>Delivery specification</title>
+      <consumer>KeywordDeliveryTerm</consumer>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/deliveryterms/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/deliveryterms/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>KeywordPaymentTerm</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keywordpaymentterm/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordDeliveryTerm</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/keyworddeliveryterm/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Tasks</name>
+      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/tasks/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Task_entity</entityName>
+        <fieldName>Tasks</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>RowId_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/tasks/children/rowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectId_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/tasks/children/objectid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>PresetLinks_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/tasks/children/presetlinks_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>INFO</name>
+      <title>Information</title>
+      <contentType>LONG_TEXT</contentType>
+    </entityField>
+    <entityConsumer>
+      <name>Attributes</name>
+      <onValidation>%aditoprj%/entity/Offer_entity/entityfields/attributes/onValidation.js</onValidation>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>AttributeRelations</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityParameter>
+      <name>OfferPaymentTerm_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>OfferDeliveryTerm_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityField>
+      <name>USER_NEW</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>FullOfferCode</name>
+      <title>Offer number</title>
+      <state>READONLY</state>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/fulloffercode/valueProcess.js</valueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>PossibleAddresses</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Address_entity</entityName>
+        <fieldName>OrganisationAndContactAddresses</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/possibleaddresses/children/contactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>ChoosenTEXHeader</name>
+      <title>Choose Header</title>
+      <consumer>DocumentTemplateTexHeader</consumer>
+    </entityField>
+    <entityField>
+      <name>OBJECT_ROWID</name>
+      <title>Connection</title>
+      <consumer>Objects</consumer>
+      <linkedContextProcess>%aditoprj%/entity/Offer_entity/entityfields/object_rowid/linkedContextProcess.js</linkedContextProcess>
+      <mandatoryProcess>%aditoprj%/entity/Offer_entity/entityfields/object_rowid/mandatoryProcess.js</mandatoryProcess>
+      <state>AUTO</state>
+      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/object_rowid/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/object_rowid/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/object_rowid/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>OBJECT_TYPE</name>
+      <title>Connection Type</title>
+      <consumer>Contexts</consumer>
+      <mandatoryProcess>%aditoprj%/entity/Offer_entity/entityfields/object_type/mandatoryProcess.js</mandatoryProcess>
+      <state>INVISIBLE</state>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/object_type/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/object_type/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>Objects</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Object_entity</entityName>
+        <fieldName>FilteredObjects</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/objects/children/objecttype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/objects/children/contactid_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Contexts</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Context_entity</entityName>
+        <fieldName>Context</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>Whitelist</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/contexts/children/whitelist/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityProvider>
+      <name>Links</name>
+      <recordContainer>db</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>88a166e6-ccd0-4d51-b554-e3327f66d834</name>
+          <entityName>Salesproject_entity</entityName>
+          <fieldName>Offers</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>OfferDeliveryTerm_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OfferCode_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OfferOriginal_Id_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>OfferAddress_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OfferCurrency_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OfferHeader_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OfferLanguage_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OfferPaymentTerm_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>OfferVersnr_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>PossibleConnectionTypes</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/links/children/possibleconnectiontypes/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityParameter>
+      <name>ObjectRowId_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>ObjectType_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityField>
+      <name>chooseTEXHeader</name>
+      <consumer>DocumentTemplateTex</consumer>
+    </entityField>
+    <entityConsumer>
+      <name>DocumentTemplateTexHeader</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>DocumentTemplate_entity</entityName>
+        <fieldName>DocumentTemplateProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>DocumentTemplateType_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/documenttemplatetexheader/children/documenttemplatetype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>DocumentTemplateTypeClassification_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/documenttemplatetexheader/children/documenttemplatetypeclassification_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>LogHistoryConsumer</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>LogHistory_entity</entityName>
+        <fieldName>LogHistoryProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>tablenames_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>FOOTER</name>
+      <title>Footer text</title>
+      <contentType>LONG_TEXT</contentType>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/footer/valueProcess.js</valueProcess>
+    </entityField>
+    <entityParameter>
+      <name>OfferFooter_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityField>
+      <name>ChoosenTEXFooter</name>
+      <title>Choose Footer</title>
+      <consumer>DocumentTemplateTexFooter</consumer>
+    </entityField>
+    <entityConsumer>
+      <name>DocumentTemplateTexFooter</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>DocumentTemplate_entity</entityName>
+        <fieldName>DocumentTemplateProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>DocumentTemplateType_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/documenttemplatetexfooter/children/documenttemplatetype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>DocumentTemplateTypeClassification_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/documenttemplatetexfooter/children/documenttemplatetypeclassification_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Salesprojects</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Salesproject_entity</entityName>
+        <fieldName>Salesprojects</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>CONTACT_ID</name>
+      <documentation>%aditoprj%/entity/Offer_entity/entityfields/contact_id/documentation.adoc</documentation>
+      <title>Assignment</title>
+      <consumer>AnyContacts</consumer>
+      <linkedContextProcess>%aditoprj%/entity/Offer_entity/entityfields/contact_id/linkedContextProcess.js</linkedContextProcess>
+      <mandatory v="true" />
+      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/contact_id/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/contact_id/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/contact_id/displayValueProcess.js</displayValueProcess>
+      <onValueChange>%aditoprj%/entity/Offer_entity/entityfields/contact_id/onValueChange.js</onValueChange>
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+        <element>PROCESS_SETVALUE</element>
+      </onValueChangeTypes>
+    </entityField>
+    <entityParameter>
+      <name>PossibleConnectionTypes</name>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/possibleconnectiontypes/valueProcess.js</valueProcess>
+      <expose v="true" />
+    </entityParameter>
+  </entityFields>
+  <recordContainers>
+    <dbRecordContainer>
+      <name>db</name>
+      <alias>Data_alias</alias>
+      <maximumDbRows v="0" />
+      <fromClauseProcess>%aditoprj%/entity/Offer_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
+      <conditionProcess>%aditoprj%/entity/Offer_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <orderClauseProcess>%aditoprj%/entity/Offer_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
+      <onDBInsert>%aditoprj%/entity/Offer_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
+      <onDBDelete>%aditoprj%/entity/Offer_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
+      <linkInformation>
+        <linkInformation>
+          <name>681f6893-d11a-430c-a8ca-87215054d86f</name>
+          <tableName>OFFER</tableName>
+          <primaryKey>OFFERID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>acdf69f0-c6ad-431a-90c7-5bd0b3dc3d8e</name>
+          <tableName>CONTACT</tableName>
+          <primaryKey>CONTACTID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>b129928e-886e-4482-99da-463135008fef</name>
+          <tableName>SALESPROJECT</tableName>
+          <primaryKey>SALESPROJECTID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
+      <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>CURRENCY.value</name>
+          <recordfield>OFFER.CURRENCY</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>HEADER.value</name>
+          <recordfield>OFFER.HEADER</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>LANGUAGE.value</name>
+          <recordfield>OFFER.LANGUAGE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>NET.value</name>
+          <recordfield>OFFER.NET</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OFFERCODE.value</name>
+          <recordfield>OFFER.OFFERCODE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OFFERDATE.value</name>
+          <recordfield>OFFER.OFFERDATE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OFFERID.value</name>
+          <recordfield>OFFER.OFFERID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PROBABILITY.value</name>
+          <recordfield>OFFER.PROBABILITY</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATUS.value</name>
+          <recordfield>OFFER.STATUS</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>VAT.value</name>
+          <recordfield>OFFER.VAT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>VERSNR.value</name>
+          <recordfield>OFFER.VERSNR</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>CONTACT_ORG_ID.value</name>
+          <recordfield>CONTACT.ORGANISATION_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>CONTACT_PERSON_ID.value</name>
+          <recordfield>CONTACT.PERSON_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ADDRESS.value</name>
+          <recordfield>OFFER.ADDRESS</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>CURRENCY.displayValue</name>
+          <expression>%aditoprj%/entity/Offer_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATUS.displayValue</name>
+          <expression>%aditoprj%/entity/Offer_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <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>
+        <dbRecordFieldMapping>
+          <name>PAYMENTTERMS.value</name>
+          <recordfield>OFFER.PAYMENTTERMS</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DELIVERYTERMS.value</name>
+          <recordfield>OFFER.DELIVERYTERMS</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DELIVERYTERMS.displayValue</name>
+          <expression>%aditoprj%/entity/Offer_entity/recordcontainers/db/recordfieldmappings/deliveryterms.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PAYMENTTERMS.displayValue</name>
+          <expression>%aditoprj%/entity/Offer_entity/recordcontainers/db/recordfieldmappings/paymentterms.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>INFO.value</name>
+          <recordfield>OFFER.INFO</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>OFFER.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>OFFER.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>OFFER.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>OFFER.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OBJECT_ROWID.value</name>
+          <recordfield>OFFER.OBJECT_ROWID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>FOOTER.value</name>
+          <recordfield>OFFER.FOOTER</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OBJECT_TYPE.value</name>
+          <recordfield>OFFER.OBJECT_TYPE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OBJECT_ROWID.displayValue</name>
+          <expression>%aditoprj%/entity/Offer_entity/recordcontainers/db/recordfieldmappings/object_rowid.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>CONTACT_ID.value</name>
+          <recordfield>OFFER.CONTACT_ID</recordfield>
+        </dbRecordFieldMapping>
+      </recordFieldMappings>
+    </dbRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/Offer_entity/conditionProcess.js b/entity/Offer_entity/conditionProcess.js
index 30a86e4e5f568fd555a1a52ded71f3ab23481034..b14a501b815b431fb104bad81e46125ecaca45eb 100644
--- a/entity/Offer_entity/conditionProcess.js
+++ b/entity/Offer_entity/conditionProcess.js
@@ -3,7 +3,7 @@ import("system.result");
 import("Sql_lib");
 
 var cond = new SqlCondition();
-cond.andPrepareVars("OFFER.OBJECT_ROWID", "$param.SalesprojectId_param");
+cond.andPrepareVars("OFFER.OBJECT_ROWID", "$param.ObjectRowId_param");
 
 //TODO: use a preparedCondition when available #1030812 #1034026
 result.string(db.translateCondition(cond.build("1 = 1")));
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/anycontacts/children/contactid_param/valueProcess.js b/entity/Offer_entity/entityfields/anycontacts/children/contactid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c41e20315c6fbf1f10f4978391c9af3f762b2274
--- /dev/null
+++ b/entity/Offer_entity/entityfields/anycontacts/children/contactid_param/valueProcess.js
@@ -0,0 +1,17 @@
+import("system.result");
+import("system.vars");
+
+var contactId = "";
+if (vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param")) {
+    contactId = vars.get("$param.ContactId_param");
+} 
+else if ((vars.exists("$param.ObjectType_param") 
+            && vars.get("$param.ObjectType_param") 
+            && vars.exists("$param.ObjectRowId_param") 
+            && vars.get("$param.ObjectRowId_param")))
+{
+    contactId = ContextUtils.getContactId(vars.get("$param.ObjectType_param"), vars.get("$param.ObjectRowId_param"));
+}
+
+if (contactId)
+    result.string(contactId);
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/contact_id/displayValueProcess.js b/entity/Offer_entity/entityfields/contact_id/displayValueProcess.js
index 08ad146eeefe97e12cfe29fc61672ae76f34c01b..d8f47a34a6c795199277bc1d2930775b4b29e253 100644
--- a/entity/Offer_entity/entityfields/contact_id/displayValueProcess.js
+++ b/entity/Offer_entity/entityfields/contact_id/displayValueProcess.js
@@ -1,7 +1,7 @@
-import("system.result");
-import("system.vars");
-import("Contact_lib");
-import("system.neon");
-
-
+import("system.result");
+import("system.vars");
+import("Contact_lib");
+import("system.neon");
+
+
 result.string(ContactUtils.getFullTitleByContactId(vars.getString("$field.CONTACT_ID")));
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/contact_id/documentation.adoc b/entity/Offer_entity/entityfields/contact_id/documentation.adoc
index f8989a2242e89dd5d4eeca7ccb59e9ca0cccedc0..5812dd624daeeb2a97ec0d796bf3a3dba0fade26 100644
--- a/entity/Offer_entity/entityfields/contact_id/documentation.adoc
+++ b/entity/Offer_entity/entityfields/contact_id/documentation.adoc
@@ -1,10 +1,10 @@
-= CONTACT_ID
-:hardbreaks:
-
-Over this field the company or contact person of customer is linked.
-
-== onValueChange
-
-If set in the selected company or contact person, the following field value are taken over:
-
+= CONTACT_ID
+:hardbreaks:
+
+Over this field the company or contact person of customer is linked.
+
+== onValueChange
+
+If set in the selected company or contact person, the following field value are taken over:
+
 * LANGUAGE
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/contact_id/linkedContextProcess.js b/entity/Offer_entity/entityfields/contact_id/linkedContextProcess.js
index 2e504d63e3b5a3f71b54b072798b3ad09c50984b..c6e221c7440633d683f94fcc2505ba548d581b1b 100644
--- a/entity/Offer_entity/entityfields/contact_id/linkedContextProcess.js
+++ b/entity/Offer_entity/entityfields/contact_id/linkedContextProcess.js
@@ -1,5 +1,5 @@
-import("system.vars");
-import("system.result");
-import("Contact_lib");
-
+import("system.vars");
+import("system.result");
+import("Contact_lib");
+
 result.string(ContactUtils.getContextByContactId(vars.getString("$field.CONTACT_ID")));
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/contact_id/onValueChange.js b/entity/Offer_entity/entityfields/contact_id/onValueChange.js
index 21017ee1ee7962854598b28f6b669380403ecac1..2aab8d05a139fa179c4f98c2d4a548b1ec5cedc4 100644
--- a/entity/Offer_entity/entityfields/contact_id/onValueChange.js
+++ b/entity/Offer_entity/entityfields/contact_id/onValueChange.js
@@ -1,19 +1,25 @@
-import("system.neon");
-import("system.vars");
-import("system.db");
-import("Util_lib");
-import("Entity_lib");
-import("Contact_lib");
-
-var contactid = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.CONTACT_ID"));
-if(contactid != "")
-{
-    //Language Preset
-    var relData = db.array(db.ROW, "select LANGUAGE from CONTACT where CONTACTID = '" + contactid + "'");
-    if(relData[0] != "") 
-        neon.setFieldValue("field.LANGUAGE", relData[0]);
-    
-    // set $field.CONTATCT_ORG_ID per contactid
-    var orgid = ContactUtils.getPersOrgIds(contactid);
-    neon.setFieldValue("$field.CONTACT_ORG_ID", orgid[2]);
+import("system.neon");
+import("system.vars");
+import("system.db");
+import("Util_lib");
+import("Entity_lib");
+import("Contact_lib");
+
+var contactid = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.CONTACT_ID"));
+if(contactid != "")
+{
+    //Language Preset
+    var relData = db.array(db.ROW, "select LANGUAGE from CONTACT where CONTACTID = '" + contactid + "'");
+    if(relData[0] != "") 
+        neon.setFieldValue("field.LANGUAGE", relData[0]);
+    
+    // set $field.CONTATCT_ORG_ID per contactid
+    var orgid = ContactUtils.getPersOrgIds(contactid);
+    neon.setFieldValue("$field.CONTACT_ORG_ID", orgid[2]);
+} 
+else
+{
+    neon.setFieldValue("$field.CONTACT_ORG_ID", "");
+    neon.setFieldValue("$field.LANGUAGE", "");
+    neon.setFieldValue("$field.OBJECT_ROWID", "");
 }
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/contact_id/stateProcess.js b/entity/Offer_entity/entityfields/contact_id/stateProcess.js
index dc6fd1b10e00d0339454f749a9fe9f88c68457fe..f246db11722b6d2cca8a3a3144177f2dcd78a677 100644
--- a/entity/Offer_entity/entityfields/contact_id/stateProcess.js
+++ b/entity/Offer_entity/entityfields/contact_id/stateProcess.js
@@ -2,5 +2,6 @@ import("system.result");
 import("system.vars");
 import("system.neon");
 
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT || 
+        (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param")))
     result.string(neon.COMPONENTSTATE_READONLY);
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/contact_id/valueProcess.js b/entity/Offer_entity/entityfields/contact_id/valueProcess.js
index de8555de92b5ab107b544f7169220c0a5f5372b9..1fca2af19c495e073b9eac4eb9dd3f036b3a89c7 100644
--- a/entity/Offer_entity/entityfields/contact_id/valueProcess.js
+++ b/entity/Offer_entity/entityfields/contact_id/valueProcess.js
@@ -1,22 +1,30 @@
+import("system.logging");
 import("system.neon");
 import("system.db");
 import("system.result");
 import("system.vars");
 import("Sql_lib");
+import("Context_lib");
 
-if (vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param")) 
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value"))
+var contactId = "";
+if ((!vars.exists("$param.ContactId_param") || !vars.get("$param.ContactId_param")) 
+    && (vars.exists("$param.ObjectType_param") 
+        && vars.get("$param.ObjectType_param") 
+        && vars.exists("$param.ObjectRowId_param") 
+        && vars.get("$param.ObjectRowId_param"))) 
 {
-    var contactid = vars.get("$param.ContactId_param");
-    var relData = db.array(db.ROW, "select LANGUAGE from CONTACT where CONTACTID = '" + contactid + "'");
+    contactId = ContextUtils.getContactId(vars.get("$param.ObjectType_param"), vars.get("$param.ObjectRowId_param"))
+} else if (vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param")) {
+    contactId = vars.get("$param.ContactId_param");
+}
+
+if (contactId) 
+{
+    var relData = db.array(db.ROW, "select LANGUAGE from CONTACT where CONTACTID = '" + contactId + "'");
 
     if(relData[0] != "") 
         neon.setFieldValue("field.LANGUAGE", relData[0]);
     
-    result.string(vars.get("$param.ContactId_param"));
-}
-else if (vars.exists("$param.SalesprojectId_param") && vars.get("$param.SalesprojectId_param"))
-{
-    result.string(db.cell(SqlCondition.begin()
-                                      .andPrepareVars("SALESPROJECT.SALESPROJECTID", "$param.SalesprojectId_param")
-                                      .buildSql("select CONTACT_ID from SALESPROJECT", "1=2")));
+    result.string(contactId);
 }
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/contexts/children/whitelist/valueProcess.js b/entity/Offer_entity/entityfields/contexts/children/whitelist/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..928bc6a94ca7787626928dc47c2262baabb82854
--- /dev/null
+++ b/entity/Offer_entity/entityfields/contexts/children/whitelist/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$param.PossibleConnectionTypes"))
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/copyoffer/onActionProcess.js b/entity/Offer_entity/entityfields/copyoffer/onActionProcess.js
index eecb29ab0dc13c1d69af8cf28578deb153d74bb8..4dc0b8f10aade72bb70fc84b11368e1f42993366 100644
--- a/entity/Offer_entity/entityfields/copyoffer/onActionProcess.js
+++ b/entity/Offer_entity/entityfields/copyoffer/onActionProcess.js
@@ -10,9 +10,10 @@ var footer = vars.getString("$field.FOOTER");
 var offerId = vars.getString("$field.OFFERID");
 var deliveryTerm = vars.getString("$field.DELIVERYTERMS");
 var paymentTerm = vars.getString("$field.PAYMENTTERMS");
-var salesprojectId = vars.getString("$field.OBJECT_ROWID");
+var rowId = vars.getString("$field.OBJECT_ROWID");
+var objectType = vars.getString("$field.OBJECT_TYPE");
 
 
 
-OfferUtils.copyOffer(offerId, contactId, language, currency, header, footer, deliveryTerm, paymentTerm, salesprojectId);
+OfferUtils.copyOffer(offerId, contactId, language, currency, header, footer, deliveryTerm, paymentTerm, objectType, rowId);
     
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/links/children/possibleconnectiontypes/valueProcess.js b/entity/Offer_entity/entityfields/links/children/possibleconnectiontypes/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4ac5b0e3eff22ae1ef817e6e862c16b1e4618049
--- /dev/null
+++ b/entity/Offer_entity/entityfields/links/children/possibleconnectiontypes/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.result");
+
+if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param"))
+    result.object([vars.get("$param.ObjectType_param")]);
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/newofferversion/onActionProcess.js b/entity/Offer_entity/entityfields/newofferversion/onActionProcess.js
index 5087acef8c931156ad1abf76fd4d118e992c0769..66b368d8e0178f9601c77a600619d542fa2c14ff 100644
--- a/entity/Offer_entity/entityfields/newofferversion/onActionProcess.js
+++ b/entity/Offer_entity/entityfields/newofferversion/onActionProcess.js
@@ -4,7 +4,8 @@ import("Offer_lib");
 
 var params = {
     "ContactId_param" : vars.get("$field.CONTACT_ID"),
-    "SalesprojectId_param" : vars.get("$field.OBJECT_ROWID"),
+    "ObjectType_param" : vars.get("$field.OBJECT_TYPE"),
+    "ObjectRowId_param" : vars.get("$field.OBJECT_ROWID"),
     "OfferLanguage_param" : vars.get("$field.LANGUAGE"),
     "OfferOriginal_Id_param" : vars.get("$field.OFFERID"),
     "OfferCode_param" : vars.get("$field.OFFERCODE"),
diff --git a/entity/Offer_entity/entityfields/object_rowid/displayValueProcess.js b/entity/Offer_entity/entityfields/object_rowid/displayValueProcess.js
index 8b080bceea92c146a676b0f33cc7cb87d4e86b9d..56d86282f48b1a4469aa61f7817b24edde6e5123 100644
--- a/entity/Offer_entity/entityfields/object_rowid/displayValueProcess.js
+++ b/entity/Offer_entity/entityfields/object_rowid/displayValueProcess.js
@@ -4,7 +4,7 @@ import("system.db");
 import("system.result");
 import("Context_lib");
 
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$field.OBJECT_ROWID")) {
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) {
     result.string("");
 } else if (vars.exists("$field.OBJECT_TYPE") && vars.get("$field.OBJECT_TYPE")) {
     result.string(db.cell(ContextUtils.getNameSql(vars.get("$field.OBJECT_TYPE"), vars.get("$field.OBJECT_ROWID"))));
diff --git a/entity/Offer_entity/entityfields/object_rowid/mandatoryProcess.js b/entity/Offer_entity/entityfields/object_rowid/mandatoryProcess.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..4736fe4bfc8bfa641c18710e9b5a5303e967b9a6 100644
--- a/entity/Offer_entity/entityfields/object_rowid/mandatoryProcess.js
+++ b/entity/Offer_entity/entityfields/object_rowid/mandatoryProcess.js
@@ -0,0 +1,7 @@
+import("system.vars");
+import("system.result");
+import("Contact_lib");
+
+var type = ContactUtils.getContactType(vars.get("$field.CONTACT_ID"), vars.get("$field.CONTACT_PERSON_ID"), vars.get("$field.CONTACT_ORG_ID"));
+
+result.string(type != 2);
diff --git a/entity/Offer_entity/entityfields/object_rowid/stateProcess.js b/entity/Offer_entity/entityfields/object_rowid/stateProcess.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..68e51e8c391f18996f9f92aaf3f24453702fd0b3 100644
--- a/entity/Offer_entity/entityfields/object_rowid/stateProcess.js
+++ b/entity/Offer_entity/entityfields/object_rowid/stateProcess.js
@@ -0,0 +1,17 @@
+import("system.neon");
+import("system.result");
+import("system.vars");
+import("Entity_lib");
+
+switch (vars.get("$sys.recordstate")) 
+{
+    case neon.OPERATINGSTATE_NEW:
+        //only EDITABLE if $field.CONTACT_ID is set and not objectrowid preset
+        if(vars.get("$field.CONTACT_ID") && !(vars.exists("$param.ObjectRowId_param") && vars.get("$param.ObjectRowId_param") && vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param")))
+            result.object(neon.COMPONENTSTATE_EDITABLE);
+        else
+            result.object(neon.COMPONENTSTATE_READONLY);
+    break;
+    default:
+        result.object(neon.COMPONENTSTATE_READONLY);
+}
diff --git a/entity/Offer_entity/entityfields/object_rowid/valueProcess.js b/entity/Offer_entity/entityfields/object_rowid/valueProcess.js
index 09d845d6f59f097036ad418f74975808ec568bb6..752a1b6b75422488d7490688c686a6a5a0d59dc0 100644
--- a/entity/Offer_entity/entityfields/object_rowid/valueProcess.js
+++ b/entity/Offer_entity/entityfields/object_rowid/valueProcess.js
@@ -2,4 +2,4 @@ import("system.vars");
 import("system.result");
 
 if(vars.exists("$param.ObjectRowId_param") && vars.get("$param.ObjectRowId_param"))
-    result.string(vars.get("$param.ObjectRowId_param"));
\ No newline at end of file
+    result.string(vars.get("$param.ObjectRowId_param"));
diff --git a/entity/Offer_entity/entityfields/object_type/mandatoryProcess.js b/entity/Offer_entity/entityfields/object_type/mandatoryProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4736fe4bfc8bfa641c18710e9b5a5303e967b9a6
--- /dev/null
+++ b/entity/Offer_entity/entityfields/object_type/mandatoryProcess.js
@@ -0,0 +1,7 @@
+import("system.vars");
+import("system.result");
+import("Contact_lib");
+
+var type = ContactUtils.getContactType(vars.get("$field.CONTACT_ID"), vars.get("$field.CONTACT_PERSON_ID"), vars.get("$field.CONTACT_ORG_ID"));
+
+result.string(type != 2);
diff --git a/entity/Offer_entity/entityfields/object_type/valueProcess.js b/entity/Offer_entity/entityfields/object_type/valueProcess.js
index 18543dfe49df8c16f06d8dacbb0a1e34d97dfb42..93f98305df0261d0421a5e19c4f7d0f03e6c9fce 100644
--- a/entity/Offer_entity/entityfields/object_type/valueProcess.js
+++ b/entity/Offer_entity/entityfields/object_type/valueProcess.js
@@ -1,7 +1,20 @@
+import("system.logging");
+import("system.neon");
 import("system.vars");
 import("system.result");
 import("Context_lib")
 
-if(vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param"))
-    result.string(vars.get("$param.ObjectType_param"));
-else result.string(ContextUtils.getCurrentContextId())
\ No newline at end of file
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value"))
+{
+    if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param"))
+    {
+        result.string(vars.get("$param.ObjectType_param"));
+    }        
+    else if (vars.exists("$param.PossibleConnectionTypes") && vars.get("$param.PossibleConnectionTypes"))
+    {
+        var possible = JSON.parse(vars.getString("$param.PossibleConnectionTypes"));
+        if (possible.length > 0)
+            result.string(possible[0]);
+    }
+}
+        
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/objects/children/contactid_param/valueProcess.js b/entity/Offer_entity/entityfields/objects/children/contactid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..22a6e045a3a3c037f3081a29d3d34810375564f9
--- /dev/null
+++ b/entity/Offer_entity/entityfields/objects/children/contactid_param/valueProcess.js
@@ -0,0 +1,10 @@
+import("system.result");
+import("system.vars");
+import("Contact_lib");
+
+if (vars.get("$field.CONTACT_ID"))
+{
+    var ids = ContactUtils.getPersOrgIds(vars.getString("$field.CONTACT_ID"));
+    if (ids.length >= 3 && ids[2])
+        result.string(ContactUtils.getPersOrgIds(vars.getString("$field.CONTACT_ID"))[2]);
+}
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/objects/children/objecttype_param/valueProcess.js b/entity/Offer_entity/entityfields/objects/children/objecttype_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4238ef7d3313d43079cfa870caa675f766839cf6
--- /dev/null
+++ b/entity/Offer_entity/entityfields/objects/children/objecttype_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.OBJECT_TYPE"));
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/possibleconnectiontypes/valueProcess.js b/entity/Offer_entity/entityfields/possibleconnectiontypes/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e4878ba3eaca6d7a3944c9e2b9e100142f47c298
--- /dev/null
+++ b/entity/Offer_entity/entityfields/possibleconnectiontypes/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.object(["Salesproject"]);
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js b/entity/Offer_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9232f51b2e090002d80c469239ab003444411400
--- /dev/null
+++ b/entity/Offer_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.result");
+import("Entity_lib");
+
+result.string(ProcessHandlingUtils.getOnValidationValue(vars.get("$field.CONTACT_ORG_ID")));
diff --git a/entity/Offer_entity/recordcontainers/db/conditionProcess.js b/entity/Offer_entity/recordcontainers/db/conditionProcess.js
index 4538e37b37538159dabb6e7c037e5ba15e88fef3..25a5d52c1d4d1808cee87b68e601d8f6bf2a346f 100644
--- a/entity/Offer_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/Offer_entity/recordcontainers/db/conditionProcess.js
@@ -1,11 +1,15 @@
+import("system.vars");
 import("system.db");
 import("system.result");
 import("Sql_lib");
 
 var cond = new SqlCondition();
-cond.andPrepareVars("OFFER.OBJECT_ROWID", "$param.ObjectRowId_param");
-cond.andPrepareVars("OFFER.OBJECT_TYPE", "$param.ObjectType_param");
-cond.andPrepareVars("OFFER.CONTACT_ID", "$param.ContactId_param");
 
+if(vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param"))
+    cond.andPrepareVars("OFFER.CONTACT_ID", "$param.ContactId_param");
+else {
+    cond.andPrepareVars("OFFER.OBJECT_ROWID", "$param.ObjectRowId_param");
+    cond.andPrepareVars("OFFER.OBJECT_TYPE", "$param.ObjectType_param");
+}
 //TODO: use a preparedCondition when available #1030812 #1034026
 result.string(db.translateCondition(cond.build("1 = 1")));
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/newoffer/onActionProcess.js b/entity/Organisation_entity/entityfields/newoffer/onActionProcess.js
index a7172e4cec347fa3e63060898a4d88f438dcc53d..e9a139362426db55f1f53c2df01304a9ded97941 100644
--- a/entity/Organisation_entity/entityfields/newoffer/onActionProcess.js
+++ b/entity/Organisation_entity/entityfields/newoffer/onActionProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("Offer_lib");
 
-OfferUtils.createNewOffer(null, vars.getString("$field.CONTACTID"));
\ No newline at end of file
+OfferUtils.createNewOffer(null, null, vars.getString("$field.CONTACTID"));
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/condition/stateProcess.js b/entity/PermissionDetail_entity/entityfields/condition/stateProcess.js
index f6b4510443313add8e02e610d18165a834e48bd1..ad116179661d269a520ee40204edef68ddb22c6c 100644
--- a/entity/PermissionDetail_entity/entityfields/condition/stateProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/condition/stateProcess.js
@@ -5,5 +5,5 @@ import("system.neon");
 if(vars.get("$field.ACCESSTYPE") == "E") {
     result.string(neon.COMPONENTSTATE_DISABLED);
 } else {
-    result.string(neon.COMPONENTSTATE_AUTO);
+    result.string(neon.COMPONENTSTATE_EDITABLE);
 }
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js b/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js
index 123b0887b475ce6f8f0395511b849638dfd658cf..531be41df5558d08f05b6f5ff71d5966d69ac31e 100644
--- a/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/field/dropDownProcess.js
@@ -3,9 +3,9 @@ import("system.vars");
 import("system.project");
 
 var entityTitle = vars.get("$field.ENTITY");
+var res = [];
 if (entityTitle != undefined && entityTitle != null && entityTitle != "") {
     var entityStructure = project.getEntityStructure(entityTitle);
-    var res = [];
 
     for (var field in entityStructure.fields) { 
         field = entityStructure.fields[field];
@@ -13,11 +13,11 @@ if (entityTitle != undefined && entityTitle != null && entityTitle != "") {
             var name = field.name;
             var title = field.title;
             if (title != undefined && title != null && title != "") {
-                res.push([title, title]);
+                res.push([name, title]);
             } else {
                 res.push([name, name]);
             }
         }
     }
-    result.object(res);
-}
\ No newline at end of file
+}
+result.object(res);
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js
index a8b90871694702f7e892d3b6f96a05ceecb102eb..055d366a91c0bfede177ae7d76c2840318023c9e 100644
--- a/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js
@@ -1,3 +1,4 @@
+import("system.logging");
 import("system.util");
 import("system.vars");
 import("system.db");
@@ -10,16 +11,27 @@ var sqlStr;
 var whereCond = " where";
 var alias = "_____SYSTEMALIAS";
 var entitiesMetaData = project.getDataModels(project.DATAMODEL_KIND_ENTITY);
+var entityStructure;
 var entitiesUsePermFlagSet = [];
+var fieldsUsePermFlagSet = [];
 
 // gets all names of the entites which have the 'usePermission'-flag set (positive list)
+// gets all names of the fields which have the 'usePermission'-flag set (positive list)
 for each (let entityMetaData in entitiesMetaData) {
     if (entityMetaData[6] == "true") {
         entitiesUsePermFlagSet.push(entityMetaData[0])
-    }
+        entityStructure = project.getEntityStructure(entityMetaData[0]);
+        for (fieldname in entityStructure.fields) {
+            field = entityStructure.fields[fieldname];
+            if (field.usePermissions == true) {
+                fieldsUsePermFlagSet.push(field.name);
+            }
+        }
+    }   
 }
 
 whereCond += " ENTITY_ID in ('" + entitiesUsePermFlagSet.join("','") + "')";
+whereCond += " and (FIELD_ID in ('" + fieldsUsePermFlagSet.join("','") + "') or FIELD_ID is NULL)";
 
 if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) {
     whereCond += " and ASYS_PERMISSIONSET.ROLE_ID = '" + vars.getString("$param.RoleTitle_param") + "'";
diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod
index 9e4e5dea7acccd0c6d1649a504f13c63eea3a126..69cdcfe7e4382bd72aaed8ca1107ab42d3e8b80c 100644
--- a/entity/Person_entity/Person_entity.aod
+++ b/entity/Person_entity/Person_entity.aod
@@ -1,1043 +1,1066 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
-  <name>Person_entity</name>
-  <description>former Pers</description>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <documentation>%aditoprj%/entity/Person_entity/documentation.adoc</documentation>
-  <title>Contact</title>
-  <contentTitleProcess>%aditoprj%/entity/Person_entity/contentTitleProcess.js</contentTitleProcess>
-  <afterUiInit>%aditoprj%/entity/Person_entity/afterUiInit.js</afterUiInit>
-  <onValidation>%aditoprj%/entity/Person_entity/onValidation.js</onValidation>
-  <iconId>VAADIN:USERS</iconId>
-  <imageProcess>%aditoprj%/entity/Person_entity/imageProcess.js</imageProcess>
-  <titlePlural>Contacts</titlePlural>
-  <recordContainer>db</recordContainer>
-  <entityFields>
-    <entityField>
-      <name>DATEOFBIRTH</name>
-      <title>Date of birth</title>
-      <contentType>DATE</contentType>
-      <resolution>DAY</resolution>
-      <outputFormat>dd.MM.yyyy</outputFormat>
-      <inputFormat>dd.MM.yyyy</inputFormat>
-      <onValidation>%aditoprj%/entity/Person_entity/entityfields/dateofbirth/onValidation.js</onValidation>
-    </entityField>
-    <entityField>
-      <name>FIRSTNAME</name>
-      <title>Firstname</title>
-    </entityField>
-    <entityField>
-      <name>GENDER</name>
-      <title>Gender</title>
-      <consumer>KeywordGenders</consumer>
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/gender/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/gender/displayValueProcess.js</displayValueProcess>
-      <onValueChange>%aditoprj%/entity/Person_entity/entityfields/gender/onValueChange.js</onValueChange>
-      <onValueChangeTypes>
-        <element>MASK</element>
-      </onValueChangeTypes>
-    </entityField>
-    <entityField>
-      <name>LASTNAME</name>
-      <title>Lastname</title>
-      <mandatory v="true" />
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/lastname/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>MIDDLENAME</name>
-      <title>Middlename</title>
-    </entityField>
-    <entityField>
-      <name>PERSONID</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/personid/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>SALUTATION</name>
-      <title>Salutation</title>
-      <consumer>Salutations</consumer>
-      <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/salutation/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>TITLE</name>
-      <title>Title</title>
-      <consumer>SalutationTitles</consumer>
-      <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/title/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>TITLESUFFIX</name>
-      <searchable v="false" />
-    </entityField>
-    <entityParameter>
-      <name>OrgId_param</name>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <mandatory v="false" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityFieldGroup>
-      <name>NAME_fieldGroup</name>
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/name_fieldgroup/valueProcess.js</valueProcess>
-      <description>FIELDGROUP</description>
-      <fields>
-        <element>FIRSTNAME</element>
-        <element>LASTNAME</element>
-      </fields>
-    </entityFieldGroup>
-    <entityConsumer>
-      <name>Activities</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Activity_entity</entityName>
-        <fieldName>LinkedObjects</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>RowId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/activities/children/rowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/activities/children/objectid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>PresetLinks_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/activities/children/presetlinks_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>CONTACTID</name>
-      <searchable v="false" />
-    </entityField>
-    <entityProvider>
-      <name>OrganisationRelated</name>
-      <recordContainer>db</recordContainer>
-      <dependencies>
-        <entityDependency>
-          <name>41952879-c2f0-411f-8ca1-36c38914a629</name>
-          <entityName>Organisation_entity</entityName>
-          <fieldName>Contact</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>OrgId_param</name>
-          <expose v="true" />
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityField>
-      <name>PERSON_ID</name>
-      <documentation>%aditoprj%/entity/Person_entity/entityfields/person_id/documentation.adoc</documentation>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/person_id/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>ORGANISATION_ID</name>
-      <title>Company</title>
-      <consumer>Organisations</consumer>
-      <linkedContextProcess>%aditoprj%/entity/Person_entity/entityfields/organisation_id/linkedContextProcess.js</linkedContextProcess>
-      <mandatory v="false" />
-      <searchable v="true" />
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/organisation_id/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/organisation_id/displayValueProcess.js</displayValueProcess>
-      <onValueChange>%aditoprj%/entity/Person_entity/entityfields/organisation_id/onValueChange.js</onValueChange>
-      <onValidation>%aditoprj%/entity/Person_entity/entityfields/organisation_id/onValidation.js</onValidation>
-    </entityField>
-    <entityConsumer>
-      <name>PersAddresses</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Address_entity</entityName>
-        <fieldName>ContactAddresses</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>DefaultAddressId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/persaddresses/children/defaultaddressid_param/valueProcess.js</valueProcess>
-          <triggerRecalculation v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/persaddresses/children/contactid_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-          <triggerRecalculation v="true" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Communications</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Communication_entity</entityName>
-        <fieldName>AllCommunications</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/communications/children/contactid_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-          <triggerRecalculation v="true" />
-          <description>This parameter is used for specifing a related &amp;quot;CONTACTID&amp;quot; to a COMMUNICATION-entry. 
-Usually this is used for filtering COMMUNICATION-entries by a specified contact or creating a new entry that is related to a contact.</description>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Organisations</name>
-      <selectionMode>SINGLE</selectionMode>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Organisation_entity</entityName>
-        <fieldName>WithPersonIdFilter</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ExcludeOrganisationsByPersonId</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/organisations/children/excludeorganisationsbypersonid/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Contracts</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Contract_entity</entityName>
-        <fieldName>Contracts</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/contracts/children/contactid_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-          <triggerRecalculation v="true" />
-          <mandatory v="true" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Pricelists</name>
-      <state>AUTO</state>
-      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/pricelists/stateProcess.js</stateProcess>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Productprice_entity</entityName>
-        <fieldName>Productprices</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/pricelists/children/contactid_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-          <triggerRecalculation v="false" />
-          <mandatory v="true" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Genders</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Gender_keyword</entityName>
-        <fieldName>#PROVIDER</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityProvider>
-      <name>#PROVIDER</name>
-      <dependencies>
-        <entityDependency>
-          <name>ec66d6b0-a1fa-40a1-9612-34775d3e89a9</name>
-          <entityName>Object_entity</entityName>
-          <fieldName>Persons</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-    </entityProvider>
-    <entityField>
-      <name>LANGUAGE</name>
-      <title>Language</title>
-      <consumer>Languages</consumer>
-      <mandatory v="true" />
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/language/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/language/displayValueProcess.js</displayValueProcess>
-      <onValueChange>%aditoprj%/entity/Person_entity/entityfields/language/onValueChange.js</onValueChange>
-      <onValueChangeTypes>
-        <element>MASK</element>
-      </onValueChangeTypes>
-    </entityField>
-    <entityConsumer>
-      <name>Documents</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>Documents</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>AssignmentRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>AssignmentTable_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityParameter>
-      <name>ContactId_param</name>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <mandatory v="false" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityFieldGroup>
-      <name>FULL_NAME_fieldGroup</name>
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/full_name_fieldgroup/valueProcess.js</valueProcess>
-      <title>Name</title>
-      <description>FIELDGROUP</description>
-      <fields>
-        <element>SALUTATION</element>
-        <element>TITLE</element>
-        <element>FIRSTNAME</element>
-        <element>MIDDLENAME</element>
-        <element>LASTNAME</element>
-      </fields>
-    </entityFieldGroup>
-    <entityProvider>
-      <name>Contact</name>
-      <recordContainer>db</recordContainer>
-      <dependencies>
-        <entityDependency>
-          <name>12c5350a-3159-449b-a94e-d57658b4c124</name>
-          <entityName>Member_entity</entityName>
-          <fieldName>CurrentContact</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-      <children>
-        <entityParameter>
-          <name>OrgId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <expose v="true" />
-          <mandatory v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ExcludedContactIds_param</name>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityConsumer>
-      <name>OrgAddresses</name>
-      <state>READONLY</state>
-      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/orgaddresses/stateProcess.js</stateProcess>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Address_entity</entityName>
-        <fieldName>OrganisationAddressesByContact</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/orgaddresses/children/contactid_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-          <triggerRecalculation v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>DefaultAddressId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/orgaddresses/children/defaultaddressid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>REL_RELATIONSHIP</name>
-      <title>Relationship</title>
-      <description>TODO: Beziehung zu der Relation 1024846 (z.B. per Ampelsystem)</description>
-      <contentType>NUMBER</contentType>
-      <mandatory v="false" />
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/rel_relationship/valueProcess.js</valueProcess>
-    </entityField>
-    <entityActionField>
-      <name>openEditDefaultsView</name>
-      <title>Edit defaults</title>
-      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/openeditdefaultsview/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:WRENCH</iconId>
-    </entityActionField>
-    <entityActionField>
-      <name>newOffer</name>
-      <title>New offer</title>
-      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newoffer/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CART</iconId>
-    </entityActionField>
-    <entityField>
-      <name>STANDARD_EMAIL_COMMUNICATION</name>
-      <title>E-Mail</title>
-      <consumer>EmailCommunications</consumer>
-      <searchable v="false" />
-      <onValueChange>%aditoprj%/entity/Person_entity/entityfields/standard_email_communication/onValueChange.js</onValueChange>
-      <onValueChangeTypes>
-        <element>MASK</element>
-        <element>PROCESS</element>
-        <element>PROCESS_SETVALUE</element>
-      </onValueChangeTypes>
-    </entityField>
-    <entityField>
-      <name>STANDARD_PHONE_COMMUNICATION</name>
-      <title>Phone</title>
-      <consumer>PhoneCommunications</consumer>
-      <searchable v="false" />
-      <onValueChange>%aditoprj%/entity/Person_entity/entityfields/standard_phone_communication/onValueChange.js</onValueChange>
-    </entityField>
-    <entityConsumer>
-      <name>PhoneCommunications</name>
-      <description>Used for standard communication</description>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Communication_entity</entityName>
-        <fieldName>PhoneCommunications</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/phonecommunications/children/contactid_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-          <description>This parameter is used for specifing a related &amp;quot;CONTACTID&amp;quot; to a COMMUNICATION-entry. 
-Usually this is used for filtering COMMUNICATION-entries by a specified contact or creating a new entry that is related to a contact.</description>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>EmailCommunications</name>
-      <description>Used for standard communication</description>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Communication_entity</entityName>
-        <fieldName>EmailCommunications</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/emailcommunications/children/contactid_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-          <description>This parameter is used for specifing a related &amp;quot;CONTACTID&amp;quot; to a COMMUNICATION-entry. 
-Usually this is used for filtering COMMUNICATION-entries by a specified contact or creating a new entry that is related to a contact.</description>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>ADDRESS_ID</name>
-      <title>Address</title>
-      <consumer>ContactAndOrganisationAddresses</consumer>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/address_id/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/address_id/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityActionField>
-      <name>newActivity</name>
-      <title>New activity</title>
-      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:HOURGLASS_END</iconId>
-      <tooltip>New activity</tooltip>
-      <tooltipProcess>%aditoprj%/entity/Person_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
-    </entityActionField>
-    <entityConsumer>
-      <name>ObjectRelations</name>
-      <dependency>
-        <name>dependency</name>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ObjectType_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/objectrelations/children/objecttype_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectRowid_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/objectrelations/children/objectrowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>KeywordGenders</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/keywordgenders/children/containername_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Languages</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Language_entity</entityName>
-        <fieldName>ISO3Name</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Offers</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Offer_entity</entityName>
-        <fieldName>ContactOffers</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/offers/children/contactid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Salutations</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>SalutationDistinct_entity</entityName>
-        <fieldName>Salutations</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>Language_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/salutations/children/language_param/valueProcess.js</valueProcess>
-          <triggerRecalculation v="true" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Attributes</name>
-      <onValidation>%aditoprj%/entity/Person_entity/entityfields/attributes/onValidation.js</onValidation>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>AttributeRelations</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
-          <triggerRecalculation v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectType_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
-          <triggerRecalculation v="true" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>SalutationTitles</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>SalutationTitleDistinct_entity</entityName>
-        <fieldName>SalutationTitles</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>Salutation_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/salutationtitles/children/salutation_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>Language_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/salutationtitles/children/language_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityActionField>
-      <name>newTask</name>
-      <title>New task</title>
-      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:TASKS</iconId>
-    </entityActionField>
-    <entityConsumer>
-      <name>Tasks</name>
-      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/tasks/stateProcess.js</stateProcess>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Task_entity</entityName>
-        <fieldName>Tasks</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>RowId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/tasks/children/rowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/tasks/children/objectid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>PresetLinks_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/tasks/children/presetlinks_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>ObjectTrees</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>ObjectTree_entity</entityName>
-        <fieldName>TreeProvider</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ObjectId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/objecttrees/children/objectid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectType_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/objecttrees/children/objecttype_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>STATUS</name>
-      <title>Status</title>
-      <consumer>KeywordContactStates</consumer>
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/status/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/status/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityConsumer>
-      <name>KeywordContactStates</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/keywordcontactstates/children/containername_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>ContactAndOrganisationAddresses</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Address_entity</entityName>
-        <fieldName>OrganisationAndContactAddresses</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/contactandorganisationaddresses/children/contactid_param/valueProcess.js</valueProcess>
-          <triggerRecalculation v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>OrganisationId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/contactandorganisationaddresses/children/organisationid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>DEPARTMENT</name>
-      <title>Department</title>
-      <dropDownProcess>%aditoprj%/entity/Person_entity/entityfields/department/dropDownProcess.js</dropDownProcess>
-      <textInputAllowed v="true" />
-    </entityField>
-    <entityField>
-      <name>POSITION</name>
-      <title>Position</title>
-      <dropDownProcess>%aditoprj%/entity/Person_entity/entityfields/position/dropDownProcess.js</dropDownProcess>
-      <textInputAllowed v="true" />
-    </entityField>
-    <entityField>
-      <name>CONTACTROLE</name>
-      <title>Contactrole</title>
-      <dropDownProcess>%aditoprj%/entity/Person_entity/entityfields/contactrole/dropDownProcess.js</dropDownProcess>
-      <textInputAllowed v="true" />
-    </entityField>
-    <entityConsumer>
-      <name>LogHistoryConsumer</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>LogHistory_entity</entityName>
-        <fieldName>LogHistoryProvider</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>tablenames_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-          <mandatory v="true" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>OtherContacts</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Contact_entity</entityName>
-        <fieldName>PersonsContactsExceptOwn</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>OwnContactId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/othercontacts/children/owncontactid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>LanguageKey_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/othercontacts/children/languagekey_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>ORGANISATION_NAME</name>
-      <searchable v="false" />
-    </entityField>
-    <entityParameter>
-      <name>ExcludedContactIds_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityProvider>
-      <name>Contacts</name>
-      <dependencies>
-        <entityDependency>
-          <name>e46dcd73-64a8-4b3e-b976-1b4643c54ebb</name>
-          <entityName>CampaignStep_entity</entityName>
-          <fieldName>ContactsConsumer</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>4d317eb3-6a4e-40c6-946e-d54289dcd99b</name>
-          <entityName>Member_entity</entityName>
-          <fieldName>Contacts</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>ExcludedContactIds_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>OrgId_param</name>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityConsumer>
-      <name>360DegreeObjects</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>360Degree_entity</entityName>
-        <fieldName>PersonObjects</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/360degreeobjects/children/objectrowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityActionField>
-      <name>addToCampaign</name>
-      <title>Add to Campaign</title>
-      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/addtocampaign/onActionProcess.js</onActionProcess>
-      <actionOrder v="1" />
-      <iconId>NEON:GROUP_APPOINTMENT</iconId>
-      <tooltip>Choose a campaign and a step to add the contact to a  campaign</tooltip>
-    </entityActionField>
-    <entityConsumer>
-      <name>AttributeTree</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>TreeProvider</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js</valueProcess>
-          <triggerRecalculation v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectType_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js</valueProcess>
-          <triggerRecalculation v="true" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>DATE_NEW</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/date_new/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>USER_NEW</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/user_new/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>USER_EDIT</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/user_edit/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>DATE_EDIT</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/date_edit/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>DATE_NEW_CONTACT</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/date_new_contact/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>USER_NEW_CONTACT</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/user_new_contact/valueProcess.js</valueProcess>
-    </entityField>
-    <entityParameter>
-      <name>AdditionalActivityTaskLinks_param</name>
-      <title></title>
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/additionalactivitytasklinks_param/valueProcess.js</valueProcess>
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityField>
-      <name>PICTURE</name>
-      <title>Picture</title>
-      <contentType>IMAGE</contentType>
-      <searchable v="false" />
-      <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/picture/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityParameter>
-      <name>AvatarText_param</name>
-      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/avatartext_param/valueProcess.js</valueProcess>
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityActionGroup>
-      <name>campaignActionGroup</name>
-      <title>Campaign</title>
-      <children>
-        <entityActionField>
-          <name>addToCampaignFromTable</name>
-          <title>Add to Campaign</title>
-          <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/onActionProcess.js</onActionProcess>
-          <isMenuAction v="true" />
-          <isObjectAction v="false" />
-          <isSelectionAction v="true" />
-          <iconId>NEON:GROUP_APPOINTMENT</iconId>
-          <tooltip>Add the selection to a campaign</tooltip>
-          <tooltipProcess>%aditoprj%/entity/Person_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/tooltipProcess.js</tooltipProcess>
-        </entityActionField>
-      </children>
-    </entityActionGroup>
-    <entityActionField>
-      <name>newEmail</name>
-      <title>Write email</title>
-      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newemail/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:AT</iconId>
-    </entityActionField>
-    <entityActionField>
-      <name>newAppointment</name>
-      <title>New appointment</title>
-      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newappointment/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CALENDAR</iconId>
-      <tooltip>New Appointment</tooltip>
-    </entityActionField>
-  </entityFields>
-  <recordContainers>
-    <dbRecordContainer>
-      <name>db</name>
-      <alias>Data_alias</alias>
-      <fromClauseProcess>%aditoprj%/entity/Person_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
-      <conditionProcess>%aditoprj%/entity/Person_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <orderClauseProcess>%aditoprj%/entity/Person_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <onDBUpdate>%aditoprj%/entity/Person_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
-      <linkInformation>
-        <linkInformation>
-          <name>3afdecb0-515e-43d2-872f-04c82ecca9ae</name>
-          <tableName>PERSON</tableName>
-          <primaryKey>PERSONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>217d431f-018c-4573-b786-d1b6b88f4b64</name>
-          <tableName>CONTACT</tableName>
-          <primaryKey>CONTACTID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>19877118-eb80-4672-bd73-cf10dbbb052a</name>
-          <tableName>ORGANISATION</tableName>
-          <primaryKey>ORGANISATIONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-        <linkInformation>
-          <name>64f188c2-e53d-44b5-9980-c867282eff7e</name>
-          <tableName>ADDRESS</tableName>
-          <primaryKey>ADDRESSID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
-      <recordFieldMappings>
-        <dbRecordFieldMapping>
-          <name>PERSONID.value</name>
-          <recordfield>PERSON.PERSONID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>DATEOFBIRTH.value</name>
-          <recordfield>PERSON.DATEOFBIRTH</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>FIRSTNAME.value</name>
-          <recordfield>PERSON.FIRSTNAME</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>GENDER.value</name>
-          <recordfield>PERSON.GENDER</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>LANGUAGE.value</name>
-          <recordfield>CONTACT.LANGUAGE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PERSON_ID.value</name>
-          <recordfield>CONTACT.PERSON_ID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>LASTNAME.value</name>
-          <recordfield>PERSON.LASTNAME</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>MIDDLENAME.value</name>
-          <recordfield>PERSON.MIDDLENAME</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>CONTACTID.value</name>
-          <recordfield>CONTACT.CONTACTID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>SALUTATION.value</name>
-          <recordfield>PERSON.SALUTATION</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>TITLE.value</name>
-          <recordfield>PERSON.TITLE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>TITLESUFFIX.value</name>
-          <recordfield>PERSON.TITLESUFFIX</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>ORGANISATION_ID.value</name>
-          <recordfield>CONTACT.ORGANISATION_ID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>REL_RELATIONSHIP.value</name>
-          <recordfield>CONTACT.RELATIONSHIP</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>STANDARD_EMAIL_COMMUNICATION.displayValue</name>
-          <expression>%aditoprj%/entity/Person_entity/recordcontainers/db/recordfieldmappings/standard_email_communication.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>STANDARD_PHONE_COMMUNICATION.displayValue</name>
-          <expression>%aditoprj%/entity/Person_entity/recordcontainers/db/recordfieldmappings/standard_phone_communication.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>ADDRESS_ID.value</name>
-          <recordfield>CONTACT.ADDRESS_ID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>ORGANISATION_ID.displayValue</name>
-          <recordfield>ORGANISATION.NAME</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>GENDER.displayValue</name>
-          <expression>%aditoprj%/entity/Person_entity/recordcontainers/db/recordfieldmappings/gender.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>LANGUAGE.displayValue</name>
-          <expression>%aditoprj%/entity/Person_entity/recordcontainers/db/recordfieldmappings/language.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>SALUTATION.displayValue</name>
-          <expression>%aditoprj%/entity/Person_entity/recordcontainers/db/recordfieldmappings/salutation.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>TITLE.displayValue</name>
-          <expression>%aditoprj%/entity/Person_entity/recordcontainers/db/recordfieldmappings/title.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>STATUS.value</name>
-          <recordfield>CONTACT.STATUS</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>POSITION.value</name>
-          <recordfield>CONTACT.POSITION</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>DEPARTMENT.value</name>
-          <recordfield>CONTACT.DEPARTMENT</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>CONTACTROLE.value</name>
-          <recordfield>CONTACT.CONTACTROLE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>ORGANISATION_NAME.value</name>
-          <recordfield>ORGANISATION.NAME</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>USER_NEW.value</name>
-          <recordfield>PERSON.USER_NEW</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>USER_EDIT.value</name>
-          <recordfield>PERSON.USER_EDIT</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>DATE_NEW.value</name>
-          <recordfield>PERSON.DATE_NEW</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>DATE_EDIT.value</name>
-          <recordfield>PERSON.DATE_EDIT</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>DATE_NEW_CONTACT.value</name>
-          <recordfield>CONTACT.DATE_NEW</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>USER_NEW_CONTACT.value</name>
-          <recordfield>CONTACT.USER_NEW</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>ADDRESS_ID.displayValue</name>
-          <expression>%aditoprj%/entity/Person_entity/recordcontainers/db/recordfieldmappings/address_id.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PICTURE.value</name>
-          <recordfield>PERSON.PICTURE</recordfield>
-        </dbRecordFieldMapping>
-      </recordFieldMappings>
-    </dbRecordContainer>
-  </recordContainers>
-</entity>
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
+  <name>Person_entity</name>
+  <description>former Pers</description>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <documentation>%aditoprj%/entity/Person_entity/documentation.adoc</documentation>
+  <title>Contact</title>
+  <contentTitleProcess>%aditoprj%/entity/Person_entity/contentTitleProcess.js</contentTitleProcess>
+  <afterUiInit>%aditoprj%/entity/Person_entity/afterUiInit.js</afterUiInit>
+  <onValidation>%aditoprj%/entity/Person_entity/onValidation.js</onValidation>
+  <iconId>VAADIN:USERS</iconId>
+  <imageProcess>%aditoprj%/entity/Person_entity/imageProcess.js</imageProcess>
+  <titlePlural>Contacts</titlePlural>
+  <recordContainer>db</recordContainer>
+  <entityFields>
+    <entityField>
+      <name>DATEOFBIRTH</name>
+      <title>Date of birth</title>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
+      <outputFormat>dd.MM.yyyy</outputFormat>
+      <inputFormat>dd.MM.yyyy</inputFormat>
+      <onValidation>%aditoprj%/entity/Person_entity/entityfields/dateofbirth/onValidation.js</onValidation>
+    </entityField>
+    <entityField>
+      <name>FIRSTNAME</name>
+      <title>Firstname</title>
+    </entityField>
+    <entityField>
+      <name>GENDER</name>
+      <title>Gender</title>
+      <consumer>KeywordGenders</consumer>
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/gender/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/gender/displayValueProcess.js</displayValueProcess>
+      <onValueChange>%aditoprj%/entity/Person_entity/entityfields/gender/onValueChange.js</onValueChange>
+      <onValueChangeTypes>
+        <element>MASK</element>
+      </onValueChangeTypes>
+    </entityField>
+    <entityField>
+      <name>LASTNAME</name>
+      <title>Lastname</title>
+      <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/lastname/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>MIDDLENAME</name>
+      <title>Middlename</title>
+    </entityField>
+    <entityField>
+      <name>PERSONID</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/personid/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>SALUTATION</name>
+      <title>Salutation</title>
+      <consumer>Salutations</consumer>
+      <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/salutation/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>TITLE</name>
+      <title>Title</title>
+      <consumer>SalutationTitles</consumer>
+      <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/title/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>TITLESUFFIX</name>
+      <searchable v="false" />
+    </entityField>
+    <entityParameter>
+      <name>OrgId_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <mandatory v="false" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityFieldGroup>
+      <name>NAME_fieldGroup</name>
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/name_fieldgroup/valueProcess.js</valueProcess>
+      <description>FIELDGROUP</description>
+      <fields>
+        <element>FIRSTNAME</element>
+        <element>LASTNAME</element>
+      </fields>
+    </entityFieldGroup>
+    <entityConsumer>
+      <name>Activities</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Activity_entity</entityName>
+        <fieldName>LinkedObjects</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>RowId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/activities/children/rowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/activities/children/objectid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>PresetLinks_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/activities/children/presetlinks_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>CONTACTID</name>
+      <searchable v="false" />
+    </entityField>
+    <entityProvider>
+      <name>OrganisationRelated</name>
+      <recordContainer>db</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>41952879-c2f0-411f-8ca1-36c38914a629</name>
+          <entityName>Organisation_entity</entityName>
+          <fieldName>Contact</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>OrgId_param</name>
+          <expose v="true" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityField>
+      <name>PERSON_ID</name>
+      <documentation>%aditoprj%/entity/Person_entity/entityfields/person_id/documentation.adoc</documentation>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/person_id/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>ORGANISATION_ID</name>
+      <title>Company</title>
+      <consumer>Organisations</consumer>
+      <linkedContextProcess>%aditoprj%/entity/Person_entity/entityfields/organisation_id/linkedContextProcess.js</linkedContextProcess>
+      <mandatory v="false" />
+      <searchable v="true" />
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/organisation_id/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/organisation_id/displayValueProcess.js</displayValueProcess>
+      <onValueChange>%aditoprj%/entity/Person_entity/entityfields/organisation_id/onValueChange.js</onValueChange>
+      <onValidation>%aditoprj%/entity/Person_entity/entityfields/organisation_id/onValidation.js</onValidation>
+    </entityField>
+    <entityConsumer>
+      <name>PersAddresses</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Address_entity</entityName>
+        <fieldName>ContactAddresses</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>DefaultAddressId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/persaddresses/children/defaultaddressid_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/persaddresses/children/contactid_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Communications</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Communication_entity</entityName>
+        <fieldName>AllCommunications</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/communications/children/contactid_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+          <triggerRecalculation v="true" />
+          <description>This parameter is used for specifing a related &amp;quot;CONTACTID&amp;quot; to a COMMUNICATION-entry. 
+Usually this is used for filtering COMMUNICATION-entries by a specified contact or creating a new entry that is related to a contact.</description>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Organisations</name>
+      <selectionMode>SINGLE</selectionMode>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Organisation_entity</entityName>
+        <fieldName>WithPersonIdFilter</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ExcludeOrganisationsByPersonId</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/organisations/children/excludeorganisationsbypersonid/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Contracts</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Contract_entity</entityName>
+        <fieldName>Contracts</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/contracts/children/contactid_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+          <triggerRecalculation v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Pricelists</name>
+      <state>AUTO</state>
+      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/pricelists/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Productprice_entity</entityName>
+        <fieldName>Productprices</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/pricelists/children/contactid_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+          <triggerRecalculation v="false" />
+          <mandatory v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Genders</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Gender_keyword</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityProvider>
+      <name>#PROVIDER</name>
+      <dependencies>
+        <entityDependency>
+          <name>ec66d6b0-a1fa-40a1-9612-34775d3e89a9</name>
+          <entityName>Object_entity</entityName>
+          <fieldName>Persons</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+    <entityField>
+      <name>LANGUAGE</name>
+      <title>Language</title>
+      <consumer>Languages</consumer>
+      <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/language/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/language/displayValueProcess.js</displayValueProcess>
+      <onValueChange>%aditoprj%/entity/Person_entity/entityfields/language/onValueChange.js</onValueChange>
+      <onValueChangeTypes>
+        <element>MASK</element>
+      </onValueChangeTypes>
+    </entityField>
+    <entityConsumer>
+      <name>Documents</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>Documents</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>AssignmentRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>AssignmentTable_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityParameter>
+      <name>ContactId_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <mandatory v="false" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityFieldGroup>
+      <name>FULL_NAME_fieldGroup</name>
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/full_name_fieldgroup/valueProcess.js</valueProcess>
+      <title>Name</title>
+      <description>FIELDGROUP</description>
+      <fields>
+        <element>SALUTATION</element>
+        <element>TITLE</element>
+        <element>FIRSTNAME</element>
+        <element>MIDDLENAME</element>
+        <element>LASTNAME</element>
+      </fields>
+    </entityFieldGroup>
+    <entityProvider>
+      <name>Contact</name>
+      <recordContainer>db</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>12c5350a-3159-449b-a94e-d57658b4c124</name>
+          <entityName>Member_entity</entityName>
+          <fieldName>CurrentContact</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>OrgId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ExcludedContactIds_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityConsumer>
+      <name>OrgAddresses</name>
+      <state>READONLY</state>
+      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/orgaddresses/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Address_entity</entityName>
+        <fieldName>OrganisationAddressesByContact</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/orgaddresses/children/contactid_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>DefaultAddressId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/orgaddresses/children/defaultaddressid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>REL_RELATIONSHIP</name>
+      <title>Relationship</title>
+      <description>TODO: Beziehung zu der Relation 1024846 (z.B. per Ampelsystem)</description>
+      <contentType>NUMBER</contentType>
+      <mandatory v="false" />
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/rel_relationship/valueProcess.js</valueProcess>
+    </entityField>
+    <entityActionField>
+      <name>openEditDefaultsView</name>
+      <title>Edit defaults</title>
+      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/openeditdefaultsview/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:WRENCH</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>newOffer</name>
+      <title>New offer</title>
+      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newoffer/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CART</iconId>
+    </entityActionField>
+    <entityField>
+      <name>STANDARD_EMAIL_COMMUNICATION</name>
+      <title>E-Mail</title>
+      <consumer>EmailCommunications</consumer>
+      <searchable v="false" />
+      <onValueChange>%aditoprj%/entity/Person_entity/entityfields/standard_email_communication/onValueChange.js</onValueChange>
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+        <element>PROCESS_SETVALUE</element>
+      </onValueChangeTypes>
+    </entityField>
+    <entityField>
+      <name>STANDARD_PHONE_COMMUNICATION</name>
+      <title>Phone</title>
+      <consumer>PhoneCommunications</consumer>
+      <searchable v="false" />
+      <onValueChange>%aditoprj%/entity/Person_entity/entityfields/standard_phone_communication/onValueChange.js</onValueChange>
+    </entityField>
+    <entityConsumer>
+      <name>PhoneCommunications</name>
+      <description>Used for standard communication</description>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Communication_entity</entityName>
+        <fieldName>PhoneCommunications</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/phonecommunications/children/contactid_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+          <description>This parameter is used for specifing a related &amp;quot;CONTACTID&amp;quot; to a COMMUNICATION-entry. 
+Usually this is used for filtering COMMUNICATION-entries by a specified contact or creating a new entry that is related to a contact.</description>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>EmailCommunications</name>
+      <description>Used for standard communication</description>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Communication_entity</entityName>
+        <fieldName>EmailCommunications</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/emailcommunications/children/contactid_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+          <description>This parameter is used for specifing a related &amp;quot;CONTACTID&amp;quot; to a COMMUNICATION-entry. 
+Usually this is used for filtering COMMUNICATION-entries by a specified contact or creating a new entry that is related to a contact.</description>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>ADDRESS_ID</name>
+      <title>Address</title>
+      <consumer>ContactAndOrganisationAddresses</consumer>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/address_id/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/address_id/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityActionField>
+      <name>newActivity</name>
+      <title>New activity</title>
+      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:HOURGLASS_END</iconId>
+      <tooltip>New activity</tooltip>
+      <tooltipProcess>%aditoprj%/entity/Person_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
+    </entityActionField>
+    <entityConsumer>
+      <name>ObjectRelations</name>
+      <dependency>
+        <name>dependency</name>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/objectrelations/children/objecttype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectRowid_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/objectrelations/children/objectrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordGenders</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/keywordgenders/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Languages</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Language_entity</entityName>
+        <fieldName>ISO3Name</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Offers</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Offer_entity</entityName>
+        <fieldName>ContactOffers</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/offers/children/contactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Salutations</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>SalutationDistinct_entity</entityName>
+        <fieldName>Salutations</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>Language_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/salutations/children/language_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Attributes</name>
+      <onValidation>%aditoprj%/entity/Person_entity/entityfields/attributes/onValidation.js</onValidation>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>AttributeRelations</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>SalutationTitles</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>SalutationTitleDistinct_entity</entityName>
+        <fieldName>SalutationTitles</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>Salutation_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/salutationtitles/children/salutation_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>Language_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/salutationtitles/children/language_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityActionField>
+      <name>newTask</name>
+      <title>New task</title>
+      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:TASKS</iconId>
+    </entityActionField>
+    <entityConsumer>
+      <name>Tasks</name>
+      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/tasks/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Task_entity</entityName>
+        <fieldName>Tasks</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>RowId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/tasks/children/rowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/tasks/children/objectid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>PresetLinks_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/tasks/children/presetlinks_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>ObjectTrees</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ObjectTree_entity</entityName>
+        <fieldName>TreeProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/objecttrees/children/objectid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/objecttrees/children/objecttype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>STATUS</name>
+      <title>Status</title>
+      <consumer>KeywordContactStates</consumer>
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/status/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/status/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>KeywordContactStates</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/keywordcontactstates/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>ContactAndOrganisationAddresses</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Address_entity</entityName>
+        <fieldName>OrganisationAndContactAddresses</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/contactandorganisationaddresses/children/contactid_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>OrganisationId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/contactandorganisationaddresses/children/organisationid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>DEPARTMENT</name>
+      <title>Department</title>
+      <dropDownProcess>%aditoprj%/entity/Person_entity/entityfields/department/dropDownProcess.js</dropDownProcess>
+      <textInputAllowed v="true" />
+    </entityField>
+    <entityField>
+      <name>POSITION</name>
+      <title>Position</title>
+      <dropDownProcess>%aditoprj%/entity/Person_entity/entityfields/position/dropDownProcess.js</dropDownProcess>
+      <textInputAllowed v="true" />
+    </entityField>
+    <entityField>
+      <name>CONTACTROLE</name>
+      <title>Contactrole</title>
+      <dropDownProcess>%aditoprj%/entity/Person_entity/entityfields/contactrole/dropDownProcess.js</dropDownProcess>
+      <textInputAllowed v="true" />
+    </entityField>
+    <entityConsumer>
+      <name>LogHistoryConsumer</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>LogHistory_entity</entityName>
+        <fieldName>LogHistoryProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>tablenames_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>OtherContacts</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Contact_entity</entityName>
+        <fieldName>PersonsContactsExceptOwn</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>OwnContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/othercontacts/children/owncontactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>LanguageKey_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/othercontacts/children/languagekey_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>ORGANISATION_NAME</name>
+      <searchable v="false" />
+    </entityField>
+    <entityParameter>
+      <name>ExcludedContactIds_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityProvider>
+      <name>Contacts</name>
+      <dependencies>
+        <entityDependency>
+          <name>e46dcd73-64a8-4b3e-b976-1b4643c54ebb</name>
+          <entityName>CampaignStep_entity</entityName>
+          <fieldName>ContactsConsumer</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>4d317eb3-6a4e-40c6-946e-d54289dcd99b</name>
+          <entityName>Member_entity</entityName>
+          <fieldName>Contacts</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ExcludedContactIds_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>OrgId_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityConsumer>
+      <name>360DegreeObjects</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>360Degree_entity</entityName>
+        <fieldName>PersonObjects</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/360degreeobjects/children/objectrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityActionField>
+      <name>addToCampaign</name>
+      <title>Add to Campaign</title>
+      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/addtocampaign/onActionProcess.js</onActionProcess>
+      <actionOrder v="1" />
+      <iconId>NEON:GROUP_APPOINTMENT</iconId>
+      <tooltip>Choose a campaign and a step to add the contact to a  campaign</tooltip>
+    </entityActionField>
+    <entityConsumer>
+      <name>AttributeTree</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>TreeProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>DATE_NEW</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_NEW</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW_CONTACT</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/date_new_contact/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_NEW_CONTACT</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/user_new_contact/valueProcess.js</valueProcess>
+    </entityField>
+    <entityParameter>
+      <name>AdditionalActivityTaskLinks_param</name>
+      <title></title>
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/additionalactivitytasklinks_param/valueProcess.js</valueProcess>
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityField>
+      <name>PICTURE</name>
+      <title>Picture</title>
+      <contentType>IMAGE</contentType>
+      <searchable v="false" />
+      <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/picture/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityParameter>
+      <name>AvatarText_param</name>
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/avatartext_param/valueProcess.js</valueProcess>
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityActionGroup>
+      <name>campaignActionGroup</name>
+      <title>Campaign</title>
+      <children>
+        <entityActionField>
+          <name>addToCampaignFromTable</name>
+          <title>Add to Campaign</title>
+          <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/onActionProcess.js</onActionProcess>
+          <isMenuAction v="true" />
+          <isObjectAction v="false" />
+          <isSelectionAction v="true" />
+          <iconId>NEON:GROUP_APPOINTMENT</iconId>
+          <tooltip>Add the selection to a campaign</tooltip>
+          <tooltipProcess>%aditoprj%/entity/Person_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/tooltipProcess.js</tooltipProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
+    <entityActionField>
+      <name>newEmail</name>
+      <title>Write email</title>
+      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newemail/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:AT</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>newAppointment</name>
+      <title>New appointment</title>
+      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newappointment/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CALENDAR</iconId>
+      <tooltip>New Appointment</tooltip>
+    </entityActionField>
+    <entityConsumer>
+      <name>CommRestrictions</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>CommRestriction_Entity</entityName>
+        <fieldName>PersonsCommRestriction</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>PersonId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/commrestrictions/children/personid_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityActionField>
+      <name>newLetter</name>
+      <title>New letter</title>
+      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newletter/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:ENVELOPE</iconId>
+    </entityActionField>
+  </entityFields>
+  <recordContainers>
+    <dbRecordContainer>
+      <name>db</name>
+      <alias>Data_alias</alias>
+      <fromClauseProcess>%aditoprj%/entity/Person_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
+      <conditionProcess>%aditoprj%/entity/Person_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <orderClauseProcess>%aditoprj%/entity/Person_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
+      <onDBUpdate>%aditoprj%/entity/Person_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
+      <linkInformation>
+        <linkInformation>
+          <name>3afdecb0-515e-43d2-872f-04c82ecca9ae</name>
+          <tableName>PERSON</tableName>
+          <primaryKey>PERSONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>217d431f-018c-4573-b786-d1b6b88f4b64</name>
+          <tableName>CONTACT</tableName>
+          <primaryKey>CONTACTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>19877118-eb80-4672-bd73-cf10dbbb052a</name>
+          <tableName>ORGANISATION</tableName>
+          <primaryKey>ORGANISATIONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+        <linkInformation>
+          <name>64f188c2-e53d-44b5-9980-c867282eff7e</name>
+          <tableName>ADDRESS</tableName>
+          <primaryKey>ADDRESSID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
+      <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>PERSONID.value</name>
+          <recordfield>PERSON.PERSONID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATEOFBIRTH.value</name>
+          <recordfield>PERSON.DATEOFBIRTH</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>FIRSTNAME.value</name>
+          <recordfield>PERSON.FIRSTNAME</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>GENDER.value</name>
+          <recordfield>PERSON.GENDER</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>LANGUAGE.value</name>
+          <recordfield>CONTACT.LANGUAGE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PERSON_ID.value</name>
+          <recordfield>CONTACT.PERSON_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>LASTNAME.value</name>
+          <recordfield>PERSON.LASTNAME</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>MIDDLENAME.value</name>
+          <recordfield>PERSON.MIDDLENAME</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>CONTACTID.value</name>
+          <recordfield>CONTACT.CONTACTID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>SALUTATION.value</name>
+          <recordfield>PERSON.SALUTATION</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>TITLE.value</name>
+          <recordfield>PERSON.TITLE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>TITLESUFFIX.value</name>
+          <recordfield>PERSON.TITLESUFFIX</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ORGANISATION_ID.value</name>
+          <recordfield>CONTACT.ORGANISATION_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>REL_RELATIONSHIP.value</name>
+          <recordfield>CONTACT.RELATIONSHIP</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STANDARD_EMAIL_COMMUNICATION.displayValue</name>
+          <expression>%aditoprj%/entity/Person_entity/recordcontainers/db/recordfieldmappings/standard_email_communication.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STANDARD_PHONE_COMMUNICATION.displayValue</name>
+          <expression>%aditoprj%/entity/Person_entity/recordcontainers/db/recordfieldmappings/standard_phone_communication.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ADDRESS_ID.value</name>
+          <recordfield>CONTACT.ADDRESS_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ORGANISATION_ID.displayValue</name>
+          <recordfield>ORGANISATION.NAME</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>GENDER.displayValue</name>
+          <expression>%aditoprj%/entity/Person_entity/recordcontainers/db/recordfieldmappings/gender.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>LANGUAGE.displayValue</name>
+          <expression>%aditoprj%/entity/Person_entity/recordcontainers/db/recordfieldmappings/language.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>SALUTATION.displayValue</name>
+          <expression>%aditoprj%/entity/Person_entity/recordcontainers/db/recordfieldmappings/salutation.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>TITLE.displayValue</name>
+          <expression>%aditoprj%/entity/Person_entity/recordcontainers/db/recordfieldmappings/title.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATUS.value</name>
+          <recordfield>CONTACT.STATUS</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>POSITION.value</name>
+          <recordfield>CONTACT.POSITION</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DEPARTMENT.value</name>
+          <recordfield>CONTACT.DEPARTMENT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>CONTACTROLE.value</name>
+          <recordfield>CONTACT.CONTACTROLE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ORGANISATION_NAME.value</name>
+          <recordfield>ORGANISATION.NAME</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>PERSON.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>PERSON.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>PERSON.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>PERSON.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW_CONTACT.value</name>
+          <recordfield>CONTACT.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW_CONTACT.value</name>
+          <recordfield>CONTACT.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ADDRESS_ID.displayValue</name>
+          <expression>%aditoprj%/entity/Person_entity/recordcontainers/db/recordfieldmappings/address_id.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PICTURE.value</name>
+          <recordfield>PERSON.PICTURE</recordfield>
+        </dbRecordFieldMapping>
+      </recordFieldMappings>
+    </dbRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/Person_entity/entityfields/commrestrictions/children/personid_param/valueProcess.js b/entity/Person_entity/entityfields/commrestrictions/children/personid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e3241c7d2dd258a8a9cf0863cf1c6790b6278ee5
--- /dev/null
+++ b/entity/Person_entity/entityfields/commrestrictions/children/personid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.getString("$field.PERSONID"));
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/newletter/onActionProcess.js b/entity/Person_entity/entityfields/newletter/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7b45fb04f877160700a49e15514b61011a5b655f
--- /dev/null
+++ b/entity/Person_entity/entityfields/newletter/onActionProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("DocumentTemplate_lib");
+
+LetterUtils.openNewLetter(vars.get("$field.CONTACTID"));
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/newoffer/onActionProcess.js b/entity/Person_entity/entityfields/newoffer/onActionProcess.js
index a7172e4cec347fa3e63060898a4d88f438dcc53d..e9a139362426db55f1f53c2df01304a9ded97941 100644
--- a/entity/Person_entity/entityfields/newoffer/onActionProcess.js
+++ b/entity/Person_entity/entityfields/newoffer/onActionProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("Offer_lib");
 
-OfferUtils.createNewOffer(null, vars.getString("$field.CONTACTID"));
\ No newline at end of file
+OfferUtils.createNewOffer(null, null, vars.getString("$field.CONTACTID"));
\ No newline at end of file
diff --git a/entity/Productprice_entity/entityfields/attributes/children/filteredattributes_param/valueProcess.js b/entity/Productprice_entity/entityfields/attributes/children/filteredattributes_param/valueProcess.js
index 4e35cfba9da893b0ecb7870591d10cbb20fa9b9b..8e1a22ffe0d6b4fbed6611161f1fa121edbdc428 100644
--- a/entity/Productprice_entity/entityfields/attributes/children/filteredattributes_param/valueProcess.js
+++ b/entity/Productprice_entity/entityfields/attributes/children/filteredattributes_param/valueProcess.js
@@ -1,3 +1,3 @@
 import("system.db");
 import("system.result");
-result.object(db.array(db.ROW, "select AB_ATTRIBUTEID from ADITO.AB_ATTRIBUTE where ATTRIBUTE_PARENT_ID = 'ab545654-1fce-4993-b763-0ec469781302'"));
\ No newline at end of file
+result.object(db.array(db.ROW, "select AB_ATTRIBUTEID from AB_ATTRIBUTE where ATTRIBUTE_PARENT_ID = 'ab545654-1fce-4993-b763-0ec469781302'"));
\ No newline at end of file
diff --git a/entity/SalesprojectAnalyses_entity/entityfields/overall_forecast/valueProcess.js b/entity/SalesprojectAnalyses_entity/entityfields/overall_forecast/valueProcess.js
index 38822523a7c5999867dbfff1d157e5e59ce99056..d6f89d038debab8b78a11020bdcc2b989341414d 100644
--- a/entity/SalesprojectAnalyses_entity/entityfields/overall_forecast/valueProcess.js
+++ b/entity/SalesprojectAnalyses_entity/entityfields/overall_forecast/valueProcess.js
@@ -7,8 +7,7 @@ import("Sql_lib");
 import("system.SQLTYPES")
 
 var forecast = db.cell(SqlCondition.begin()
-                                   .buildSql("select sum(VOLUME) from SALESPROJECT_FORECAST", "1=2"));
-                                   .andPrepare("FORECAST.DATE_START", datetime.toDate(vars.get("$sys.date"), "yyyy"), "year(#) = ?", SQLTYPES.INTEGER)
-                                   .buildSql("select sum(VOLUME) from FORECAST", "1=2"));
+                                    .andPrepare("FORECAST.DATE_START", datetime.toDate(vars.get("$sys.date"), "yyyy"), "year(#) = ?", SQLTYPES.INTEGER)
+                                    .buildSql("select sum(VOLUME) from FORECAST", "1=2"));
                                   
 result.string(forecast);
\ No newline at end of file
diff --git a/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod b/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod
index f443b20ebe2ee148a68fac1c12fde522faee60db..eb599011b163d94c4ea7c68d8da0f249c2227428 100644
--- a/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod
+++ b/entity/SalesprojectSource_entity/SalesprojectSource_entity.aod
@@ -3,6 +3,7 @@
   <name>SalesprojectSource_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <title>Touchpoint</title>
+  <iconId>VAADIN:HANDSHAKE</iconId>
   <titlePlural>Touchpoints</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -40,8 +41,6 @@
       <contentType>DATE</contentType>
       <resolution>DAY</resolution>
       <outputFormat>dd.MM.yyyy</outputFormat>
-      <title>Information</title>
-      <contentType>LONG_TEXT</contentType>
     </entityField>
     <entityField>
       <name>SALESPROJECT_ID</name>
@@ -73,6 +72,16 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityField>
+      <name>INFO</name>
+      <title>Information</title>
+      <contentType>LONG_TEXT</contentType>
+    </entityField>
+    <entityField>
+      <name>ICON</name>
+      <contentType>IMAGE</contentType>
+      <valueProcess>%aditoprj%/entity/SalesprojectSource_entity/entityfields/icon/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -93,10 +102,6 @@
           <name>ENTRYDATE.value</name>
           <recordfield>SALESPROJECT_SOURCE.ENTRYDATE</recordfield>
         </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>INFO.value</name>
-          <recordfield>SALESPROJECT_SOURCE.INFO</recordfield>
-        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>SALESPROJECT_ID.value</name>
           <recordfield>SALESPROJECT_SOURCE.SALESPROJECT_ID</recordfield>
@@ -113,6 +118,10 @@
           <name>SOURCE.displayValue</name>
           <expression>%aditoprj%/entity/SalesprojectSource_entity/recordcontainers/db/recordfieldmappings/source.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>INFO.value</name>
+          <recordfield>SALESPROJECT_SOURCE.INFO</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/SalesprojectSource_entity/entityfields/icon/valueProcess.js b/entity/SalesprojectSource_entity/entityfields/icon/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..860f5656a20ddabd85f30a928382bf22de8a81d1
--- /dev/null
+++ b/entity/SalesprojectSource_entity/entityfields/icon/valueProcess.js
@@ -0,0 +1,14 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var category = vars.getString("$field.SOURCE");
+var icon;
+if (category)
+{
+    var keywordAttributes = KeywordUtils.getAttributeRelationsByKey(category, $KeywordRegistry.salesprojectSource())
+    icon = keywordAttributes.defaultAvatarRepresentation;
+    result.string(icon);
+}
diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod
index a2c2f769da61385613cab85c72eee74026008961..12b451a31182fed2c4850802e2a9955c1895ff7a 100644
--- a/entity/Salesproject_entity/Salesproject_entity.aod
+++ b/entity/Salesproject_entity/Salesproject_entity.aod
@@ -1,724 +1,742 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
-  <name>Salesproject_entity</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <title>Salesproject</title>
-  <contentTitleProcess>%aditoprj%/entity/Salesproject_entity/contentTitleProcess.js</contentTitleProcess>
-  <afterUiInit>%aditoprj%/entity/Salesproject_entity/afterUiInit.js</afterUiInit>
-  <onValidation>%aditoprj%/entity/Salesproject_entity/onValidation.js</onValidation>
-  <afterOperatingState>%aditoprj%/entity/Salesproject_entity/afterOperatingState.js</afterOperatingState>
-  <iconId>VAADIN:BOOK_DOLLAR</iconId>
-  <titlePlural>Salesprojects</titlePlural>
-  <recordContainer>db</recordContainer>
-  <entityFields>
-    <entityProvider>
-      <name>#PROVIDER</name>
-      <dependencies>
-        <entityDependency>
-          <name>497657f7-ebd7-4c9c-b8ab-da447a1556e5</name>
-          <entityName>Order_entity</entityName>
-          <fieldName>Salesprojects</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>f010781d-453d-4df3-b330-75c1336e4d4c</name>
-          <entityName>Object_entity</entityName>
-          <fieldName>Salesprojects</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-    </entityProvider>
-    <entityField>
-      <name>ENDDATE</name>
-      <title>Rollout</title>
-      <contentType>DATE</contentType>
-      <resolution>DAY</resolution>
-      <outputFormat>dd.MM.yyyy</outputFormat>
-      <inputFormat>dd.MM.yyyy</inputFormat>
-      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/enddate/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>INFO</name>
-      <title>Information</title>
-      <contentType>LONG_TEXT</contentType>
-    </entityField>
-    <entityField>
-      <name>PHASE</name>
-      <title>Phase</title>
-      <consumer>KeywordPhases</consumer>
-      <mandatory v="true" />
-      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/phase/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/phase/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>PROJECTCODE</name>
-      <documentation>%aditoprj%/entity/Salesproject_entity/entityfields/projectcode/documentation.adoc</documentation>
-      <title>Project number</title>
-      <state>READONLY</state>
-      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/projectcode/valueProcess.js</valueProcess>
-      <onValidation>%aditoprj%/entity/Salesproject_entity/entityfields/projectcode/onValidation.js</onValidation>
-    </entityField>
-    <entityField>
-      <name>PROJECTTITLE</name>
-      <title>Project title</title>
-      <mandatory v="true" />
-    </entityField>
-    <entityField>
-      <name>CONTACT_ID</name>
-      <title>Company</title>
-      <consumer>Organisations</consumer>
-      <linkedContext>Organisation</linkedContext>
-      <mandatory v="true" />
-      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/contact_id/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/contact_id/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>SALESPROJECTID</name>
-      <searchable v="false" />
-      <state>AUTO</state>
-    </entityField>
-    <entityField>
-      <name>STARTDATE</name>
-      <title>Project start</title>
-      <contentType>DATE</contentType>
-      <resolution>DAY</resolution>
-      <outputFormat>dd.MM.yyyy</outputFormat>
-      <inputFormat>dd.MM.yyyy</inputFormat>
-      <mandatory v="true" />
-      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/startdate/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>STATE</name>
-      <title>Status</title>
-      <consumer>KeywordStates</consumer>
-      <mandatory v="true" />
-      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/state/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/state/displayValueProcess.js</displayValueProcess>
-      <onValueChange>%aditoprj%/entity/Salesproject_entity/entityfields/state/onValueChange.js</onValueChange>
-      <onValueChangeTypes>
-        <element>MASK</element>
-      </onValueChangeTypes>
-    </entityField>
-    <entityField>
-      <name>VOLUME</name>
-      <title>Volume</title>
-      <description></description>
-      <contentType>NUMBER</contentType>
-      <inputFormat>#0</inputFormat>
-      <searchable v="true" />
-      <displayValueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/volume/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityConsumer>
-      <name>Organisations</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Organisation_entity</entityName>
-        <fieldName>Organisations</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityField>
-      <name>PROBABILITY</name>
-      <title>Probability</title>
-      <consumer>KeywordProbabilties</consumer>
-      <displayValueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/probability/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityConsumer>
-      <name>SalesprojectSources</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>SalesprojectSource_entity</entityName>
-        <fieldName>SalesprojectSouces</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>SalesprojectId_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/salesprojectsources/children/salesprojectid_param/valueProcess.js</valueProcess>
-          <triggerRecalculation v="true" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>SalesprojectPhaseMilestones</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>SalesprojectMilestone_entity</entityName>
-        <fieldName>PhaseMilestones</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>SalesprojectId_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/salesprojectphasemilestones/children/salesprojectid_param/valueProcess.js</valueProcess>
-          <triggerRecalculation v="true" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Forecasts</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Forecast_entity</entityName>
-        <fieldName>Links</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ObjectType_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/forecasts/children/objecttype_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/forecasts/children/objectrowid_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Competitions</name>
-      <selectionMode>MULTI</selectionMode>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Competition_entity</entityName>
-        <fieldName>Links</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/competitions/children/objectrowid_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectType_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/competitions/children/objecttype_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Offers</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Offer_entity</entityName>
-        <fieldName>Links</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/offers/children/objectrowid_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectType_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/offers/children/objecttype_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Activities</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Activity_entity</entityName>
-        <fieldName>LinkedObjects</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>PresetLinks_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/activities/children/presetlinks_param/valueProcess.js</valueProcess>
-          <triggerRecalculation v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>RowId_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/activities/children/rowid_param/valueProcess.js</valueProcess>
-          <triggerRecalculation v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectId_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/activities/children/objectid_param/valueProcess.js</valueProcess>
-          <triggerRecalculation v="true" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Members</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Member_entity</entityName>
-        <fieldName>Links</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/members/children/objectrowid_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectType_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/members/children/objecttype_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityActionField>
-      <name>newOffer</name>
-      <documentation>%aditoprj%/entity/Salesproject_entity/entityfields/newoffer/documentation.adoc</documentation>
-      <title>New offer</title>
-      <description>Opens the Offer context in NEW-Mode and fills salesproject and contact.</description>
-      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newoffer/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CART</iconId>
-    </entityActionField>
-    <entityConsumer>
-      <name>Timetrackings</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Timetracking_entity</entityName>
-        <fieldName>Timetrackings</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ObjectId_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/timetrackings/children/objectid_param/valueProcess.js</valueProcess>
-          <triggerRecalculation v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>RowId_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/timetrackings/children/rowid_param/valueProcess.js</valueProcess>
-          <triggerRecalculation v="true" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityParameter>
-      <name>ContactId_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityConsumer>
-      <name>ObjectRelations</name>
-      <dependency>
-        <name>dependency</name>
-      </dependency>
-    </entityConsumer>
-    <entityField>
-      <name>TIMETRACKINGSUM</name>
-      <title>Time expenses</title>
-      <description>the total hours of all time trackings related to the salesproject</description>
-      <state>READONLY</state>
-      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/timetrackingsum/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/timetrackingsum/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>IMAGE</name>
-      <contentType>IMAGE</contentType>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/image/valueProcess.js</valueProcess>
-    </entityField>
-    <entityConsumer>
-      <name>Documents</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>Documents</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>AssignmentName_param</name>
-        </entityParameter>
-        <entityParameter>
-          <name>AssignmentRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>AssignmentTable_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>MainDocuments</name>
-      <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/maindocuments/stateProcess.js</stateProcess>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>MainDocuments</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>AssignmentName_param</name>
-        </entityParameter>
-        <entityParameter>
-          <name>AssignmentRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/maindocuments/children/assignmentrowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>AssignmentTable_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/maindocuments/children/assignmenttable_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityActionField>
-      <name>newTimetracking</name>
-      <title>New time tracking</title>
-      <description>Opens the time tracking context in new-mode for the selected salesproject</description>
-      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newtimetracking/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:STOPWATCH</iconId>
-    </entityActionField>
-    <entityConsumer>
-      <name>KeywordProbabilties</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <title></title>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/keywordprobabilties/children/containername_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>KeywordStates</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/keywordstates/children/containername_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>KeywordPhases</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/keywordphases/children/containername_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityActionField>
-      <name>newActivity</name>
-      <title>New activity</title>
-      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:HOURGLASS_END</iconId>
-      <tooltip>New activity</tooltip>
-      <tooltipProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
-    </entityActionField>
-    <entityField>
-      <name>InactiveTime</name>
-      <title>Days inactive</title>
-      <contentType>NUMBER</contentType>
-      <state>READONLY</state>
-      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/inactivetime/valueProcess.js</valueProcess>
-    </entityField>
-    <entityConsumer>
-      <name>KeywordWonLost</name>
-      <selectionMode>MULTI</selectionMode>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/keywordwonlost/children/containername_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>REASONS</name>
-      <title>Reason</title>
-      <mandatoryProcess>%aditoprj%/entity/Salesproject_entity/entityfields/reasons/mandatoryProcess.js</mandatoryProcess>
-      <dropDownProcess>%aditoprj%/entity/Salesproject_entity/entityfields/reasons/dropDownProcess.js</dropDownProcess>
-      <searchable v="true" />
-      <selectionMode>MULTI</selectionMode>
-      <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/reasons/stateProcess.js</stateProcess>
-      <onValueChangeTypes>
-        <element>MASK</element>
-        <element>PROCESS</element>
-        <element>PROCESS_SETVALUE</element>
-      </onValueChangeTypes>
-    </entityField>
-    <entityProvider>
-      <name>Salesprojects</name>
-      <dependencies>
-        <entityDependency>
-          <name>0925d17f-a26a-4641-aaf4-0f74796fefa7</name>
-          <entityName>Organisation_entity</entityName>
-          <fieldName>Salesprojects</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-      <children>
-        <entityParameter>
-          <name>ContactId_param</name>
-          <expose v="true" />
-          <mandatory v="true" />
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityActionField>
-      <name>newTask</name>
-      <title>New task</title>
-      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:TASKS</iconId>
-    </entityActionField>
-    <entityConsumer>
-      <name>Tasks</name>
-      <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/tasks/stateProcess.js</stateProcess>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Task_entity</entityName>
-        <fieldName>Tasks</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>RowId_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/tasks/children/rowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>PresetLinks_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/tasks/children/presetlinks_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectId_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/tasks/children/objectid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityProvider>
-      <name>openSalesprojects</name>
-      <dependencies>
-        <entityDependency>
-          <name>631f55f9-fb0f-4205-bdb8-6e3476268ab4</name>
-          <entityName>Offer_entity</entityName>
-          <fieldName>Salesprojects</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-      <children>
-        <entityParameter>
-          <name>State_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/opensalesprojects/children/state_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityParameter>
-      <name>State_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityConsumer>
-      <name>SalesprojectStateMilestones</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>SalesprojectMilestone_entity</entityName>
-        <fieldName>StateMilestones</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Attributes</name>
-      <onValidation>%aditoprj%/entity/Salesproject_entity/entityfields/attributes/onValidation.js</onValidation>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>AttributeRelations</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ObjectType_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>AttributeTree</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>TreeProvider</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ObjectType_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>LogHistoryConsumer</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>LogHistory_entity</entityName>
-        <fieldName>LogHistoryProvider</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>tablenames_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Classifications</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Classification_entity</entityName>
-        <fieldName>Classifications</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ObjectRowid_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/classifications/children/objectrowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectType_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/classifications/children/objecttype_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ClassificationType_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/classifications/children/classificationtype_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>RemainingTime</name>
-      <title>Days remaining</title>
-      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/remainingtime/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>RunTime</name>
-      <title>Days running</title>
-      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/runtime/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>ClassificationResult</name>
-      <title>Classification</title>
-      <state>READONLY</state>
-      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/classificationresult/valueProcess.js</valueProcess>
-    </entityField>
-  </entityFields>
-  <recordContainers>
-    <dbRecordContainer>
-      <name>db</name>
-      <alias>Data_alias</alias>
-      <fromClauseProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
-      <conditionProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <orderClauseProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <onDBInsert>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
-      <onDBUpdate>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
-      <onDBDelete>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>02eb2f4c-3b85-409f-ac13-c8b26804da44</name>
-          <tableName>SALESPROJECT</tableName>
-          <primaryKey>SALESPROJECTID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>485af2f8-d91d-442f-89c7-c44915dda990</name>
-          <tableName>ORGANISATION</tableName>
-          <primaryKey>ORGANISATIONID</primaryKey>
-          <isUIDTable v="false" />
-          <readonly v="true" />
-        </linkInformation>
-      </linkInformation>
-      <recordFieldMappings>
-        <dbRecordFieldMapping>
-          <name>ENDDATE.value</name>
-          <recordfield>SALESPROJECT.ENDDATE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>INFO.value</name>
-          <recordfield>SALESPROJECT.INFO</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PHASE.value</name>
-          <recordfield>SALESPROJECT.PHASE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PROBABILITY.value</name>
-          <recordfield>SALESPROJECT.PROBABILITY</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PROJECTCODE.value</name>
-          <recordfield>SALESPROJECT.PROJECTCODE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PROJECTTITLE.value</name>
-          <recordfield>SALESPROJECT.PROJECTTITLE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>SALESPROJECTID.value</name>
-          <recordfield>SALESPROJECT.SALESPROJECTID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>STARTDATE.value</name>
-          <recordfield>SALESPROJECT.STARTDATE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>STATE.value</name>
-          <recordfield>SALESPROJECT.STATE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>VOLUME.value</name>
-          <recordfield>SALESPROJECT.VOLUME</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>CONTACT_ID.value</name>
-          <recordfield>SALESPROJECT.CONTACT_ID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>CONTACT_ID.displayValue</name>
-          <recordfield>ORGANISATION.NAME</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PROBABILITY.displayValue</name>
-          <expression>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/probability.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>REASONS.value</name>
-          <recordfield>SALESPROJECT.REASONS</recordfield>
-        </dbRecordFieldMapping>
-      </recordFieldMappings>
-    </dbRecordContainer>
-  </recordContainers>
-</entity>
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
+  <name>Salesproject_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <title>Salesproject</title>
+  <contentTitleProcess>%aditoprj%/entity/Salesproject_entity/contentTitleProcess.js</contentTitleProcess>
+  <afterUiInit>%aditoprj%/entity/Salesproject_entity/afterUiInit.js</afterUiInit>
+  <onValidation>%aditoprj%/entity/Salesproject_entity/onValidation.js</onValidation>
+  <afterOperatingState>%aditoprj%/entity/Salesproject_entity/afterOperatingState.js</afterOperatingState>
+  <iconId>VAADIN:BOOK_DOLLAR</iconId>
+  <titlePlural>Salesprojects</titlePlural>
+  <recordContainer>db</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+      <dependencies>
+        <entityDependency>
+          <name>497657f7-ebd7-4c9c-b8ab-da447a1556e5</name>
+          <entityName>Order_entity</entityName>
+          <fieldName>Salesprojects</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>f010781d-453d-4df3-b330-75c1336e4d4c</name>
+          <entityName>Object_entity</entityName>
+          <fieldName>Salesprojects</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+    <entityField>
+      <name>ENDDATE</name>
+      <title>Rollout</title>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
+      <outputFormat>dd.MM.yyyy</outputFormat>
+      <inputFormat>dd.MM.yyyy</inputFormat>
+      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/enddate/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>INFO</name>
+      <title>Information</title>
+      <contentType>LONG_TEXT</contentType>
+    </entityField>
+    <entityField>
+      <name>PHASE</name>
+      <title>Phase</title>
+      <consumer>KeywordPhases</consumer>
+      <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/phase/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/phase/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>PROJECTCODE</name>
+      <documentation>%aditoprj%/entity/Salesproject_entity/entityfields/projectcode/documentation.adoc</documentation>
+      <title>Project number</title>
+      <state>READONLY</state>
+      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/projectcode/valueProcess.js</valueProcess>
+      <onValidation>%aditoprj%/entity/Salesproject_entity/entityfields/projectcode/onValidation.js</onValidation>
+    </entityField>
+    <entityField>
+      <name>PROJECTTITLE</name>
+      <title>Project title</title>
+      <mandatory v="true" />
+    </entityField>
+    <entityField>
+      <name>CONTACT_ID</name>
+      <title>Company</title>
+      <consumer>Organisations</consumer>
+      <linkedContext>Organisation</linkedContext>
+      <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/contact_id/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/contact_id/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>SALESPROJECTID</name>
+      <searchable v="false" />
+      <state>AUTO</state>
+    </entityField>
+    <entityField>
+      <name>STARTDATE</name>
+      <title>Project start</title>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
+      <outputFormat>dd.MM.yyyy</outputFormat>
+      <inputFormat>dd.MM.yyyy</inputFormat>
+      <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/startdate/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>STATE</name>
+      <title>Status</title>
+      <consumer>KeywordStates</consumer>
+      <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/state/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/state/displayValueProcess.js</displayValueProcess>
+      <onValueChange>%aditoprj%/entity/Salesproject_entity/entityfields/state/onValueChange.js</onValueChange>
+      <onValueChangeTypes>
+        <element>MASK</element>
+      </onValueChangeTypes>
+    </entityField>
+    <entityField>
+      <name>VOLUME</name>
+      <title>Volume</title>
+      <description></description>
+      <contentType>NUMBER</contentType>
+      <inputFormat>#0</inputFormat>
+      <searchable v="true" />
+      <displayValueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/volume/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>Organisations</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Organisation_entity</entityName>
+        <fieldName>Organisations</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityField>
+      <name>PROBABILITY</name>
+      <title>Probability</title>
+      <consumer>KeywordProbabilties</consumer>
+      <displayValueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/probability/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>SalesprojectSources</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>SalesprojectSource_entity</entityName>
+        <fieldName>SalesprojectSouces</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>SalesprojectId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/salesprojectsources/children/salesprojectid_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>SalesprojectPhaseMilestones</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>SalesprojectMilestone_entity</entityName>
+        <fieldName>PhaseMilestones</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>SalesprojectId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/salesprojectphasemilestones/children/salesprojectid_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Forecasts</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Forecast_entity</entityName>
+        <fieldName>Links</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/forecasts/children/objecttype_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/forecasts/children/objectrowid_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Competitions</name>
+      <selectionMode>MULTI</selectionMode>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Competition_entity</entityName>
+        <fieldName>Links</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/competitions/children/objectrowid_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/competitions/children/objecttype_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Offers</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Offer_entity</entityName>
+        <fieldName>Links</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/offers/children/objectrowid_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/offers/children/objecttype_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Activities</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Activity_entity</entityName>
+        <fieldName>LinkedObjects</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>PresetLinks_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/activities/children/presetlinks_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>RowId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/activities/children/rowid_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/activities/children/objectid_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Members</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Member_entity</entityName>
+        <fieldName>Links</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/members/children/objectrowid_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/members/children/objecttype_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityActionField>
+      <name>newOffer</name>
+      <documentation>%aditoprj%/entity/Salesproject_entity/entityfields/newoffer/documentation.adoc</documentation>
+      <title>New offer</title>
+      <description>Opens the Offer context in NEW-Mode and fills salesproject and contact.</description>
+      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newoffer/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CART</iconId>
+    </entityActionField>
+    <entityConsumer>
+      <name>Timetrackings</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Timetracking_entity</entityName>
+        <fieldName>Timetrackings</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/timetrackings/children/objectid_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>RowId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/timetrackings/children/rowid_param/valueProcess.js</valueProcess>
+          <triggerRecalculation v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityParameter>
+      <name>ContactId_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityConsumer>
+      <name>ObjectRelations</name>
+      <dependency>
+        <name>dependency</name>
+      </dependency>
+    </entityConsumer>
+    <entityField>
+      <name>TIMETRACKINGSUM</name>
+      <title>Time expenses</title>
+      <description>the total hours of all time trackings related to the salesproject</description>
+      <state>READONLY</state>
+      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/timetrackingsum/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/timetrackingsum/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>IMAGE</name>
+      <contentType>IMAGE</contentType>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/image/valueProcess.js</valueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>Documents</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>Documents</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>AssignmentRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>AssignmentTable_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>MainDocuments</name>
+      <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/maindocuments/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>MainDocuments</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>AssignmentRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/maindocuments/children/assignmentrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>AssignmentTable_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/maindocuments/children/assignmenttable_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityActionField>
+      <name>newTimetracking</name>
+      <title>New time tracking</title>
+      <description>Opens the time tracking context in new-mode for the selected salesproject</description>
+      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newtimetracking/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:STOPWATCH</iconId>
+    </entityActionField>
+    <entityConsumer>
+      <name>KeywordProbabilties</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <title></title>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/keywordprobabilties/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordStates</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/keywordstates/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordPhases</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/keywordphases/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityActionField>
+      <name>newActivity</name>
+      <title>New activity</title>
+      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:HOURGLASS_END</iconId>
+      <tooltip>New activity</tooltip>
+      <tooltipProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
+    </entityActionField>
+    <entityField>
+      <name>InactiveTime</name>
+      <title>Days inactive</title>
+      <contentType>NUMBER</contentType>
+      <state>READONLY</state>
+      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/inactivetime/valueProcess.js</valueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>KeywordWonLost</name>
+      <selectionMode>MULTI</selectionMode>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/keywordwonlost/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>REASONS</name>
+      <title>Reason</title>
+      <mandatoryProcess>%aditoprj%/entity/Salesproject_entity/entityfields/reasons/mandatoryProcess.js</mandatoryProcess>
+      <dropDownProcess>%aditoprj%/entity/Salesproject_entity/entityfields/reasons/dropDownProcess.js</dropDownProcess>
+      <searchable v="true" />
+      <selectionMode>MULTI</selectionMode>
+      <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/reasons/stateProcess.js</stateProcess>
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+        <element>PROCESS_SETVALUE</element>
+      </onValueChangeTypes>
+    </entityField>
+    <entityProvider>
+      <name>Salesprojects</name>
+      <dependencies>
+        <entityDependency>
+          <name>0925d17f-a26a-4641-aaf4-0f74796fefa7</name>
+          <entityName>Organisation_entity</entityName>
+          <fieldName>Salesprojects</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>bdea1358-ebf2-4356-8df1-af3eb1e6338a</name>
+          <entityName>Offer_entity</entityName>
+          <fieldName>Salesprojects</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>ContactId_param</name>
+          <expose v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityActionField>
+      <name>newTask</name>
+      <title>New task</title>
+      <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:TASKS</iconId>
+    </entityActionField>
+    <entityConsumer>
+      <name>Tasks</name>
+      <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/tasks/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Task_entity</entityName>
+        <fieldName>Tasks</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>RowId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/tasks/children/rowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>PresetLinks_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/tasks/children/presetlinks_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/tasks/children/objectid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityProvider>
+      <name>openSalesprojects</name>
+      <dependencies>
+        <entityDependency>
+          <name>631f55f9-fb0f-4205-bdb8-6e3476268ab4</name>
+          <entityName>Offer_entity</entityName>
+          <fieldName>Salesprojects</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>State_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/opensalesprojects/children/state_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityParameter>
+      <name>State_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityConsumer>
+      <name>SalesprojectStateMilestones</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>SalesprojectMilestone_entity</entityName>
+        <fieldName>StateMilestones</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Attributes</name>
+      <onValidation>%aditoprj%/entity/Salesproject_entity/entityfields/attributes/onValidation.js</onValidation>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>AttributeRelations</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>AttributeTree</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>TreeProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>LogHistoryConsumer</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>LogHistory_entity</entityName>
+        <fieldName>LogHistoryProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>tablenames_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Classifications</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Classification_entity</entityName>
+        <fieldName>Classifications</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectRowid_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/classifications/children/objectrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/classifications/children/objecttype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ClassificationType_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/classifications/children/classificationtype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>RemainingTime</name>
+      <title>Days remaining</title>
+      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/remainingtime/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>RunTime</name>
+      <title>Days running</title>
+      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/runtime/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>ClassificationResult</name>
+      <title>Classification</title>
+      <state>READONLY</state>
+      <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/classificationresult/valueProcess.js</valueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>SalesprojectForecastCharts</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Turnover_entity</entityName>
+        <fieldName>FilteredTurnovers</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>SalesprojectId_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/salesprojectforecastcharts/children/salesprojectid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ShowTurnover_param</name>
+          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/salesprojectforecastcharts/children/showturnover_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+  </entityFields>
+  <recordContainers>
+    <dbRecordContainer>
+      <name>db</name>
+      <alias>Data_alias</alias>
+      <fromClauseProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
+      <conditionProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <orderClauseProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
+      <onDBInsert>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
+      <onDBUpdate>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
+      <onDBDelete>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
+      <linkInformation>
+        <linkInformation>
+          <name>02eb2f4c-3b85-409f-ac13-c8b26804da44</name>
+          <tableName>SALESPROJECT</tableName>
+          <primaryKey>SALESPROJECTID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+        <linkInformation>
+          <name>485af2f8-d91d-442f-89c7-c44915dda990</name>
+          <tableName>ORGANISATION</tableName>
+          <primaryKey>ORGANISATIONID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="true" />
+        </linkInformation>
+      </linkInformation>
+      <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>ENDDATE.value</name>
+          <recordfield>SALESPROJECT.ENDDATE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>INFO.value</name>
+          <recordfield>SALESPROJECT.INFO</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PHASE.value</name>
+          <recordfield>SALESPROJECT.PHASE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PROBABILITY.value</name>
+          <recordfield>SALESPROJECT.PROBABILITY</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PROJECTCODE.value</name>
+          <recordfield>SALESPROJECT.PROJECTCODE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PROJECTTITLE.value</name>
+          <recordfield>SALESPROJECT.PROJECTTITLE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>SALESPROJECTID.value</name>
+          <recordfield>SALESPROJECT.SALESPROJECTID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STARTDATE.value</name>
+          <recordfield>SALESPROJECT.STARTDATE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATE.value</name>
+          <recordfield>SALESPROJECT.STATE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>VOLUME.value</name>
+          <recordfield>SALESPROJECT.VOLUME</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>CONTACT_ID.value</name>
+          <recordfield>SALESPROJECT.CONTACT_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>CONTACT_ID.displayValue</name>
+          <recordfield>ORGANISATION.NAME</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PROBABILITY.displayValue</name>
+          <expression>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/probability.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>REASONS.value</name>
+          <recordfield>SALESPROJECT.REASONS</recordfield>
+        </dbRecordFieldMapping>
+      </recordFieldMappings>
+    </dbRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/Salesproject_entity/entityfields/newoffer/onActionProcess.js b/entity/Salesproject_entity/entityfields/newoffer/onActionProcess.js
index 45f61d0f0e68a2691eb4ab77f9f054293c747ae5..36d7296f70c4408f55162126c738573999fcd406 100644
--- a/entity/Salesproject_entity/entityfields/newoffer/onActionProcess.js
+++ b/entity/Salesproject_entity/entityfields/newoffer/onActionProcess.js
@@ -1,4 +1,5 @@
+import("Context_lib");
 import("system.vars");
 import("Offer_lib");
 
-OfferUtils.createNewOffer(vars.get("$field.SALESPROJECTID"), vars.get("$field.CONTACT_ID"));
\ No newline at end of file
+OfferUtils.createNewOffer(ContextUtils.getCurrentContextId(), vars.get("$field.SALESPROJECTID"), vars.get("$field.CONTACT_ID"));
\ No newline at end of file
diff --git a/entity/Task_entity/Task_entity.aod b/entity/Task_entity/Task_entity.aod
index 9fc98a92cb538970b95f286f69fa5bb7c08d7e7b..7951ac126e9af75d0787c05408db6de5e5e77f9d 100644
--- a/entity/Task_entity/Task_entity.aod
+++ b/entity/Task_entity/Task_entity.aod
@@ -1,609 +1,619 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
-  <name>Task_entity</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <documentation>%aditoprj%/entity/Task_entity/documentation.adoc</documentation>
-  <title>Task</title>
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
+  <name>Task_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <documentation>%aditoprj%/entity/Task_entity/documentation.adoc</documentation>
+  <title>Task</title>
   <contentTitleProcess>%aditoprj%/entity/Task_entity/contentTitleProcess.js</contentTitleProcess>
-  <afterUiInit>%aditoprj%/entity/Task_entity/afterUiInit.js</afterUiInit>
-  <onValidation>%aditoprj%/entity/Task_entity/onValidation.js</onValidation>
-  <iconId>VAADIN:TASKS</iconId>
-  <iconIdProcess>%aditoprj%/entity/Task_entity/iconIdProcess.js</iconIdProcess>
-  <titlePlural>Tasks</titlePlural>
-  <recordContainer>db</recordContainer>
-  <entityFields>
-    <entityProvider>
-      <name>#PROVIDER</name>
-      <recordContainer>db</recordContainer>
-    </entityProvider>
-    <entityField>
-      <name>CODE</name>
-      <title>task number</title>
-      <contentType>NUMBER</contentType>
-      <outputFormat>0000000</outputFormat>
-      <inputFormat>0000000</inputFormat>
-      <searchable v="false" />
-      <state>DISABLED</state>
-      <stateProcess>%aditoprj%/entity/Task_entity/entityfields/code/stateProcess.js</stateProcess>
-    </entityField>
-    <entityField>
-      <name>SUBJECT</name>
-      <title>subject</title>
-      <mandatory v="true" />
-    </entityField>
-    <entityField>
-      <name>STATUS</name>
-      <title>{$TASK_STATUS}</title>
-      <colorProcess>%aditoprj%/entity/Task_entity/entityfields/status/colorProcess.js</colorProcess>
-      <consumer>KeywordStates</consumer>
-      <groupable v="true" />
-      <mandatory v="true" />
-      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/status/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Task_entity/entityfields/status/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>PRIORITY</name>
-      <title>Priority</title>
-      <consumer>KeywordPriorities</consumer>
-      <groupable v="true" />
-      <mandatory v="true" />
-      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/priority/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Task_entity/entityfields/priority/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>REQUESTOR_CONTACT_ID</name>
-      <title>{$TASK_REQUESTOR}</title>
-      <consumer>ContactRequestors</consumer>
-      <linkedContext>Person</linkedContext>
-      <mandatory v="true" />
-      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/requestor_contact_id/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Task_entity/entityfields/requestor_contact_id/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>EDITOR_CONTACT_ID</name>
-      <title>{$TASK_EDITOR}</title>
-      <consumer>ContactEditors</consumer>
-      <linkedContext>Person</linkedContext>
-      <displayValueProcess>%aditoprj%/entity/Task_entity/entityfields/editor_contact_id/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>START_DATE</name>
-      <title>Begin</title>
-      <contentType>DATE</contentType>
-      <resolution>MINUTE</resolution>
-      <outputFormat>dd.MM.yyyy HH:mm</outputFormat>
-      <inputFormat>dd.MM.yyyy HH:mm</inputFormat>
-      <groupable v="true" />
-      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/start_date/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>MATURITY_DATE</name>
-      <title>Maturity</title>
-      <contentType>DATE</contentType>
-      <resolution>MINUTE</resolution>
-      <outputFormat>dd.MM.yyyy HH:mm</outputFormat>
-      <inputFormat>dd.MM.yyyy HH:mm</inputFormat>
-      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/maturity_date/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>TYPE</name>
-      <title>type</title>
-      <consumer>KeywordTypes</consumer>
-      <groupable v="true" />
-      <searchable v="true" />
+  <afterUiInit>%aditoprj%/entity/Task_entity/afterUiInit.js</afterUiInit>
+  <onValidation>%aditoprj%/entity/Task_entity/onValidation.js</onValidation>
+  <iconId>VAADIN:TASKS</iconId>
+  <iconIdProcess>%aditoprj%/entity/Task_entity/iconIdProcess.js</iconIdProcess>
+  <titlePlural>Tasks</titlePlural>
+  <recordContainer>db</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+      <recordContainer>db</recordContainer>
+    </entityProvider>
+    <entityField>
+      <name>CODE</name>
+      <title>task number</title>
+      <contentType>NUMBER</contentType>
+      <outputFormat>0000000</outputFormat>
+      <inputFormat>0000000</inputFormat>
+      <searchable v="false" />
+      <state>DISABLED</state>
+      <stateProcess>%aditoprj%/entity/Task_entity/entityfields/code/stateProcess.js</stateProcess>
+    </entityField>
+    <entityField>
+      <name>SUBJECT</name>
+      <title>subject</title>
+      <mandatory v="true" />
+    </entityField>
+    <entityField>
+      <name>STATUS</name>
+      <title>{$TASK_STATUS}</title>
+      <colorProcess>%aditoprj%/entity/Task_entity/entityfields/status/colorProcess.js</colorProcess>
+      <consumer>KeywordStates</consumer>
+      <groupable v="true" />
+      <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/status/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Task_entity/entityfields/status/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>PRIORITY</name>
+      <title>Priority</title>
+      <consumer>KeywordPriorities</consumer>
+      <groupable v="true" />
+      <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/priority/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Task_entity/entityfields/priority/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>REQUESTOR_CONTACT_ID</name>
+      <title>{$TASK_REQUESTOR}</title>
+      <consumer>ContactRequestors</consumer>
+      <linkedContext>Person</linkedContext>
+      <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/requestor_contact_id/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Task_entity/entityfields/requestor_contact_id/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>EDITOR_CONTACT_ID</name>
+      <title>{$TASK_EDITOR}</title>
+      <consumer>ContactEditors</consumer>
+      <linkedContext>Person</linkedContext>
+      <displayValueProcess>%aditoprj%/entity/Task_entity/entityfields/editor_contact_id/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>START_DATE</name>
+      <title>Begin</title>
+      <contentType>DATE</contentType>
+      <resolution>MINUTE</resolution>
+      <outputFormat>dd.MM.yyyy HH:mm</outputFormat>
+      <inputFormat>dd.MM.yyyy HH:mm</inputFormat>
+      <groupable v="true" />
+      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/start_date/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>MATURITY_DATE</name>
+      <title>Maturity</title>
+      <contentType>DATE</contentType>
+      <resolution>MINUTE</resolution>
+      <outputFormat>dd.MM.yyyy HH:mm</outputFormat>
+      <inputFormat>dd.MM.yyyy HH:mm</inputFormat>
+      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/maturity_date/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>TYPE</name>
+      <title>type</title>
+      <consumer>KeywordTypes</consumer>
+      <groupable v="true" />
+      <searchable v="true" />
       <state>READONLY</state>
-      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/type/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Task_entity/entityfields/type/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>DESCRIPTION</name>
-      <title>description</title>
-      <contentType>LONG_TEXT</contentType>
-    </entityField>
-    <entityField>
-      <name>PROTECTIONLEVEL</name>
-      <title>Protected</title>
-      <contentType>BOOLEAN</contentType>
-      <contentTypeProcess>%aditoprj%/entity/Task_entity/entityfields/protectionlevel/contentTypeProcess.js</contentTypeProcess>
-      <dropDownProcess>%aditoprj%/entity/Task_entity/entityfields/protectionlevel/dropDownProcess.js</dropDownProcess>
-      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/protectionlevel/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>TASKID</name>
-      <mandatory v="true" />
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/taskid/valueProcess.js</valueProcess>
-    </entityField>
-    <entityConsumer>
-      <name>ContactEditors</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Employee_entity</entityName>
-        <fieldName>Employees</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>ContactRequestors</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Employee_entity</entityName>
-        <fieldName>Employees</fieldName>
-      </dependency>
-    </entityConsumer>
-    <entityConsumer>
-      <name>MainDocuments</name>
-      <stateProcess>%aditoprj%/entity/Task_entity/entityfields/maindocuments/stateProcess.js</stateProcess>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>#PROVIDER</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>AssignmentRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/maindocuments/children/assignmentrowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>AssignmentTable_param</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/maindocuments/children/assignmenttable_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>KeywordStates</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/keywordstates/children/containername_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>KeywordTypes</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/keywordtypes/children/containername_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>ModuleTrees</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>ModuleTree_entity</entityName>
-        <fieldName>TreeProviders</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ID_param</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/moduletrees/children/id_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-          <mandatory v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>ContextName_param</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/moduletrees/children/contextname_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-          <mandatory v="false" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityField>
-      <name>PARENT_CONTEXT</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/parent_context/valueProcess.js</valueProcess>
-    </entityField>
-    <entityField>
-      <name>PARENT_ID</name>
-      <searchable v="false" />
-      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/parent_id/valueProcess.js</valueProcess>
-    </entityField>
-    <entityParameter>
-      <name>ParentId_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>ParentContext_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityActionField>
-      <name>newActivity</name>
-      <title>New activity</title>
-      <onActionProcess>%aditoprj%/entity/Task_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:HOURGLASS_END</iconId>
-      <tooltip>New activity</tooltip>
-      <tooltipProcess>%aditoprj%/entity/Task_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>newTask</name>
-      <title>New task</title>
-      <onActionProcess>%aditoprj%/entity/Task_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
-      <actionOrder v="1" />
-      <iconId>VAADIN:TASKS</iconId>
-    </entityActionField>
-    <entityParameter>
-      <name>RowId_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>ObjectId_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityConsumer>
-      <name>KeywordPriorities</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/keywordpriorities/children/containername_param/valueProcess.js</valueProcess>
-          <expose v="false" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityActionField>
-      <name>newOffer</name>
-      <title>New offer</title>
-      <onActionProcess>%aditoprj%/entity/Task_entity/entityfields/newoffer/onActionProcess.js</onActionProcess>
-      <actionOrder v="0" />
-      <iconId>VAADIN:CART</iconId>
-    </entityActionField>
-    <entityField>
-      <name>PROGRESS</name>
-      <title>Progress</title>
-      <consumer>KeywordProgress</consumer>
-      <mandatory v="true" />
-      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/progress/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Task_entity/entityfields/progress/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityConsumer>
-      <name>KeywordProgress</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordEntry_entity</entityName>
-        <fieldName>SpecificContainerKeywords</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/keywordprogress/children/containername_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Links</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>TaskLink_entity</entityName>
-        <fieldName>Link</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>TaskId_param</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/links/children/taskid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityProvider>
-      <name>Tasks</name>
-      <dependencies>
-        <entityDependency>
-          <name>dd79df43-264c-494b-9c92-cadf19e61db6</name>
-          <entityName>Organisation_entity</entityName>
-          <fieldName>Tasks</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>dc29832e-15da-4f64-b17a-f1dd978ef47b</name>
-          <entityName>Person_entity</entityName>
-          <fieldName>Tasks</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>c6507834-cd91-4202-bdf7-6566f968edb4</name>
-          <entityName>Salesproject_entity</entityName>
-          <fieldName>Tasks</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>26b9b221-de02-40ef-a400-d4b5e356da0b</name>
-          <entityName>Offer_entity</entityName>
-          <fieldName>Tasks</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>b2bb448a-b647-40c8-baec-16356f3e23f5</name>
-          <entityName>Order_entity</entityName>
-          <fieldName>Tasks</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>a93f1e7e-f929-438f-8f37-21e4af8b53b6</name>
-          <entityName>Product_entity</entityName>
-          <fieldName>Tasks</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>2b0c15eb-fa9a-4ee8-a8b1-5d0f344ddad6</name>
-          <entityName>Contract_entity</entityName>
-          <fieldName>Tasks</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>335e31ad-ab67-4567-b4ea-3668f04922b2</name>
-          <entityName>Campaign_entity</entityName>
-          <fieldName>Tasks</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>fbaa2f6c-0ba1-4c93-acae-d7b636581679</name>
-          <entityName>CampaignStep_entity</entityName>
-          <fieldName>Tasks</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-      <children>
-        <entityParameter>
-          <name>RowId_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>PresetLinks_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>ParentId_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>ParentContext_param</name>
-          <expose v="false" />
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectId_param</name>
-          <expose v="true" />
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityParameter>
-      <name>PresetLinks_param</name>
-      <expose v="true" />
-      <documentation>%aditoprj%/entity/Task_entity/entityfields/presetlinks_param/documentation.adoc</documentation>
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityField>
-      <name>SUBJECT_DETAILS</name>
-      <title>subject</title>
-      <linkedContext>Task</linkedContext>
-    </entityField>
-    <entityParameter>
-      <name>FilterOnlyOwnTask_param</name>
-      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/filteronlyowntask_param/valueProcess.js</valueProcess>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityField>
-      <name>PRIORITY_ICON</name>
-      <colorProcess>%aditoprj%/entity/Task_entity/entityfields/priority_icon/colorProcess.js</colorProcess>
-      <contentType>IMAGE</contentType>
-      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/priority_icon/valueProcess.js</valueProcess>
-    </entityField>
-    <entityConsumer>
-      <name>LogHistories</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>LogHistory_entity</entityName>
-        <fieldName>LogHistoryProvider</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>tablenames_param</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Documents</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Document_entity</entityName>
-        <fieldName>Documents</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>AssignmentRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>AssignmentTable_param</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityConsumer>
-      <name>Attributes</name>
-      <stateProcess>%aditoprj%/entity/Task_entity/entityfields/attributes/stateProcess.js</stateProcess>
-      <onValidation>%aditoprj%/entity/Task_entity/entityfields/attributes/onValidation.js</onValidation>
-      <dependency>
-        <name>dependency</name>
-        <entityName>AttributeRelation_entity</entityName>
-        <fieldName>AttributeRelations</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ObjectType_param</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>ShowEmpty_param</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/attributes/children/showempty_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>FilteredAttributeIds_param</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/attributes/children/filteredattributeids_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>DisplaySimpleName_param</name>
-          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/attributes/children/displaysimplename_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-    <entityParameter>
-      <name>Type_param</name>
-      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/type_param/valueProcess.js</valueProcess>
-      <expose v="true" />
-    </entityParameter>
-    <entityActionGroup>
-      <name>tableActions</name>
-      <children>
-        <entityActionField>
-          <name>newBugTicket</name>
-          <title>New Bugticket</title>
-          <onActionProcess>%aditoprj%/entity/Task_entity/entityfields/tableactions/children/newbugticket/onActionProcess.js</onActionProcess>
-          <iconId>VAADIN:PUZZLE_PIECE</iconId>
-          <tooltip>New Bugticket</tooltip>
-        </entityActionField>
-        <entityActionField>
-          <name>newSupportTicket</name>
-          <title>New Supportticket</title>
-          <onActionProcess>%aditoprj%/entity/Task_entity/entityfields/tableactions/children/newsupportticket/onActionProcess.js</onActionProcess>
-          <iconId>VAADIN:QUESTION</iconId>
-          <tooltip>New Supportticket</tooltip>
-        </entityActionField>
-      </children>
-    </entityActionGroup>
-  </entityFields>
-  <recordContainers>
-    <dbRecordContainer>
-      <name>db</name>
-      <alias>Data_alias</alias>
-      <conditionProcess>%aditoprj%/entity/Task_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
-      <orderClauseProcess>%aditoprj%/entity/Task_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <onDBInsert>%aditoprj%/entity/Task_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
-      <onDBDelete>%aditoprj%/entity/Task_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
-      <linkInformation>
-        <linkInformation>
-          <name>47e1b4a5-6901-48b0-85ba-bec39b86a2d7</name>
-          <tableName>TASK</tableName>
-          <primaryKey>TASKID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-      </linkInformation>
-      <recordFieldMappings>
-        <dbRecordFieldMapping>
-          <name>CODE.value</name>
-          <recordfield>TASK.CODE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>DESCRIPTION.value</name>
-          <recordfield>TASK.DESCRIPTION</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>EDITOR_CONTACT_ID.value</name>
-          <recordfield>TASK.EDITOR_CONTACT_ID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>MATURITY_DATE.value</name>
-          <recordfield>TASK.MATURITY_DATE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PRIORITY.value</name>
-          <recordfield>TASK.PRIORITY</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PROTECTIONLEVEL.value</name>
-          <recordfield>TASK.PROTECTIONLEVEL</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>REQUESTOR_CONTACT_ID.value</name>
-          <recordfield>TASK.REQUESTOR_CONTACT_ID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>START_DATE.value</name>
-          <recordfield>TASK.START_DATE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>STATUS.value</name>
-          <recordfield>TASK.STATUS</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>SUBJECT.value</name>
-          <recordfield>TASK.SUBJECT</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>TASKID.value</name>
-          <recordfield>TASK.TASKID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>TYPE.value</name>
-          <recordfield>TASK.TYPE</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>EDITOR_CONTACT_ID.displayValue</name>
-          <expression>%aditoprj%/entity/Task_entity/recordcontainers/db/recordfieldmappings/editor_contact_id.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>REQUESTOR_CONTACT_ID.displayValue</name>
-          <expression>%aditoprj%/entity/Task_entity/recordcontainers/db/recordfieldmappings/requestor_contact_id.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>TYPE.displayValue</name>
-          <expression>%aditoprj%/entity/Task_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PARENT_CONTEXT.value</name>
-          <recordfield>TASK.PARENT_CONTEXT</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <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>
-        <dbRecordFieldMapping>
-          <name>PROGRESS.value</name>
-          <recordfield>TASK.PROGRESS</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>PROGRESS.displayValue</name>
-          <expression>%aditoprj%/entity/Task_entity/recordcontainers/db/recordfieldmappings/progress.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>SUBJECT_DETAILS.value</name>
-          <recordfield>TASK.SUBJECT</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>STATUS.displayValue</name>
-          <expression>%aditoprj%/entity/Task_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
-      </recordFieldMappings>
-    </dbRecordContainer>
-  </recordContainers>
-</entity>
+      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/type/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Task_entity/entityfields/type/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>DESCRIPTION</name>
+      <title>description</title>
+      <contentType>LONG_TEXT</contentType>
+    </entityField>
+    <entityField>
+      <name>PROTECTIONLEVEL</name>
+      <title>Protected</title>
+      <contentType>BOOLEAN</contentType>
+      <contentTypeProcess>%aditoprj%/entity/Task_entity/entityfields/protectionlevel/contentTypeProcess.js</contentTypeProcess>
+      <dropDownProcess>%aditoprj%/entity/Task_entity/entityfields/protectionlevel/dropDownProcess.js</dropDownProcess>
+      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/protectionlevel/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>TASKID</name>
+      <mandatory v="true" />
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/taskid/valueProcess.js</valueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>ContactEditors</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Employee_entity</entityName>
+        <fieldName>Employees</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>OnlyActives_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/contacteditors/children/onlyactives_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>ContactRequestors</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Employee_entity</entityName>
+        <fieldName>Employees</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityConsumer>
+      <name>MainDocuments</name>
+      <stateProcess>%aditoprj%/entity/Task_entity/entityfields/maindocuments/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>AssignmentRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/maindocuments/children/assignmentrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>AssignmentTable_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/maindocuments/children/assignmenttable_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordStates</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/keywordstates/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>WhitelistIds_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/keywordstates/children/whitelistids_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>KeywordTypes</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/keywordtypes/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>ModuleTrees</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ModuleTree_entity</entityName>
+        <fieldName>TreeProviders</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ID_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/moduletrees/children/id_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+          <mandatory v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ContextName_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/moduletrees/children/contextname_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+          <mandatory v="false" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>PARENT_CONTEXT</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/parent_context/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>PARENT_ID</name>
+      <searchable v="false" />
+      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/parent_id/valueProcess.js</valueProcess>
+    </entityField>
+    <entityParameter>
+      <name>ParentId_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>ParentContext_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityActionField>
+      <name>newActivity</name>
+      <title>New activity</title>
+      <onActionProcess>%aditoprj%/entity/Task_entity/entityfields/newactivity/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:HOURGLASS_END</iconId>
+      <tooltip>New activity</tooltip>
+      <tooltipProcess>%aditoprj%/entity/Task_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>newTask</name>
+      <title>New task</title>
+      <onActionProcess>%aditoprj%/entity/Task_entity/entityfields/newtask/onActionProcess.js</onActionProcess>
+      <actionOrder v="1" />
+      <iconId>VAADIN:TASKS</iconId>
+    </entityActionField>
+    <entityParameter>
+      <name>RowId_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>ObjectId_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityConsumer>
+      <name>KeywordPriorities</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/keywordpriorities/children/containername_param/valueProcess.js</valueProcess>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityActionField>
+      <name>newOffer</name>
+      <title>New offer</title>
+      <onActionProcess>%aditoprj%/entity/Task_entity/entityfields/newoffer/onActionProcess.js</onActionProcess>
+      <actionOrder v="0" />
+      <iconId>VAADIN:CART</iconId>
+    </entityActionField>
+    <entityField>
+      <name>PROGRESS</name>
+      <title>Progress</title>
+      <consumer>KeywordProgress</consumer>
+      <mandatory v="true" />
+      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/progress/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Task_entity/entityfields/progress/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>KeywordProgress</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/keywordprogress/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Links</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>TaskLink_entity</entityName>
+        <fieldName>Link</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>TaskId_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/links/children/taskid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityProvider>
+      <name>Tasks</name>
+      <dependencies>
+        <entityDependency>
+          <name>dd79df43-264c-494b-9c92-cadf19e61db6</name>
+          <entityName>Organisation_entity</entityName>
+          <fieldName>Tasks</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>dc29832e-15da-4f64-b17a-f1dd978ef47b</name>
+          <entityName>Person_entity</entityName>
+          <fieldName>Tasks</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>c6507834-cd91-4202-bdf7-6566f968edb4</name>
+          <entityName>Salesproject_entity</entityName>
+          <fieldName>Tasks</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>26b9b221-de02-40ef-a400-d4b5e356da0b</name>
+          <entityName>Offer_entity</entityName>
+          <fieldName>Tasks</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>b2bb448a-b647-40c8-baec-16356f3e23f5</name>
+          <entityName>Order_entity</entityName>
+          <fieldName>Tasks</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>a93f1e7e-f929-438f-8f37-21e4af8b53b6</name>
+          <entityName>Product_entity</entityName>
+          <fieldName>Tasks</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>2b0c15eb-fa9a-4ee8-a8b1-5d0f344ddad6</name>
+          <entityName>Contract_entity</entityName>
+          <fieldName>Tasks</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>335e31ad-ab67-4567-b4ea-3668f04922b2</name>
+          <entityName>Campaign_entity</entityName>
+          <fieldName>Tasks</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>fbaa2f6c-0ba1-4c93-acae-d7b636581679</name>
+          <entityName>CampaignStep_entity</entityName>
+          <fieldName>Tasks</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>RowId_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>PresetLinks_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>ParentId_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ParentContext_param</name>
+          <expose v="false" />
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectId_param</name>
+          <expose v="true" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityParameter>
+      <name>PresetLinks_param</name>
+      <expose v="true" />
+      <documentation>%aditoprj%/entity/Task_entity/entityfields/presetlinks_param/documentation.adoc</documentation>
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityField>
+      <name>SUBJECT_DETAILS</name>
+      <title>subject</title>
+      <linkedContext>Task</linkedContext>
+    </entityField>
+    <entityParameter>
+      <name>FilterOnlyOwnTask_param</name>
+      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/filteronlyowntask_param/valueProcess.js</valueProcess>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityField>
+      <name>PRIORITY_ICON</name>
+      <colorProcess>%aditoprj%/entity/Task_entity/entityfields/priority_icon/colorProcess.js</colorProcess>
+      <contentType>IMAGE</contentType>
+      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/priority_icon/valueProcess.js</valueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>LogHistories</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>LogHistory_entity</entityName>
+        <fieldName>LogHistoryProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>tablenames_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Documents</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Document_entity</entityName>
+        <fieldName>Documents</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>AssignmentRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>AssignmentTable_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Attributes</name>
+      <stateProcess>%aditoprj%/entity/Task_entity/entityfields/attributes/stateProcess.js</stateProcess>
+      <onValidation>%aditoprj%/entity/Task_entity/entityfields/attributes/onValidation.js</onValidation>
+      <dependency>
+        <name>dependency</name>
+        <entityName>AttributeRelation_entity</entityName>
+        <fieldName>AttributeRelations</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectRowId_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ShowEmpty_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/attributes/children/showempty_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>FilteredAttributeIds_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/attributes/children/filteredattributeids_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>DisplaySimpleName_param</name>
+          <valueProcess>%aditoprj%/entity/Task_entity/entityfields/attributes/children/displaysimplename_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityParameter>
+      <name>Type_param</name>
+      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/type_param/valueProcess.js</valueProcess>
+      <expose v="true" />
+    </entityParameter>
+    <entityActionGroup>
+      <name>tableActions</name>
+      <children>
+        <entityActionField>
+          <name>newBugTicket</name>
+          <title>New Bugticket</title>
+          <onActionProcess>%aditoprj%/entity/Task_entity/entityfields/tableactions/children/newbugticket/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:PUZZLE_PIECE</iconId>
+          <tooltip>New Bugticket</tooltip>
+        </entityActionField>
+        <entityActionField>
+          <name>newSupportTicket</name>
+          <title>New Supportticket</title>
+          <onActionProcess>%aditoprj%/entity/Task_entity/entityfields/tableactions/children/newsupportticket/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:QUESTION</iconId>
+          <tooltip>New Supportticket</tooltip>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
+  </entityFields>
+  <recordContainers>
+    <dbRecordContainer>
+      <name>db</name>
+      <alias>Data_alias</alias>
+      <conditionProcess>%aditoprj%/entity/Task_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <orderClauseProcess>%aditoprj%/entity/Task_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
+      <onDBInsert>%aditoprj%/entity/Task_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
+      <onDBDelete>%aditoprj%/entity/Task_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
+      <linkInformation>
+        <linkInformation>
+          <name>47e1b4a5-6901-48b0-85ba-bec39b86a2d7</name>
+          <tableName>TASK</tableName>
+          <primaryKey>TASKID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
+      <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>CODE.value</name>
+          <recordfield>TASK.CODE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DESCRIPTION.value</name>
+          <recordfield>TASK.DESCRIPTION</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>EDITOR_CONTACT_ID.value</name>
+          <recordfield>TASK.EDITOR_CONTACT_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>MATURITY_DATE.value</name>
+          <recordfield>TASK.MATURITY_DATE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PRIORITY.value</name>
+          <recordfield>TASK.PRIORITY</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PROTECTIONLEVEL.value</name>
+          <recordfield>TASK.PROTECTIONLEVEL</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>REQUESTOR_CONTACT_ID.value</name>
+          <recordfield>TASK.REQUESTOR_CONTACT_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>START_DATE.value</name>
+          <recordfield>TASK.START_DATE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATUS.value</name>
+          <recordfield>TASK.STATUS</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>SUBJECT.value</name>
+          <recordfield>TASK.SUBJECT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>TASKID.value</name>
+          <recordfield>TASK.TASKID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>TYPE.value</name>
+          <recordfield>TASK.TYPE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>EDITOR_CONTACT_ID.displayValue</name>
+          <expression>%aditoprj%/entity/Task_entity/recordcontainers/db/recordfieldmappings/editor_contact_id.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>REQUESTOR_CONTACT_ID.displayValue</name>
+          <expression>%aditoprj%/entity/Task_entity/recordcontainers/db/recordfieldmappings/requestor_contact_id.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>TYPE.displayValue</name>
+          <expression>%aditoprj%/entity/Task_entity/recordcontainers/db/recordfieldmappings/type.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PARENT_CONTEXT.value</name>
+          <recordfield>TASK.PARENT_CONTEXT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <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>
+        <dbRecordFieldMapping>
+          <name>PROGRESS.value</name>
+          <recordfield>TASK.PROGRESS</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PROGRESS.displayValue</name>
+          <expression>%aditoprj%/entity/Task_entity/recordcontainers/db/recordfieldmappings/progress.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>SUBJECT_DETAILS.value</name>
+          <recordfield>TASK.SUBJECT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATUS.displayValue</name>
+          <expression>%aditoprj%/entity/Task_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
+      </recordFieldMappings>
+    </dbRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/Task_entity/entityfields/contacteditors/children/onlyactives_param/valueProcess.js b/entity/Task_entity/entityfields/contacteditors/children/onlyactives_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/entity/Task_entity/entityfields/keywordstates/children/containername_param/valueProcess.js b/entity/Task_entity/entityfields/keywordstates/children/containername_param/valueProcess.js
index d2a77dbd123cda7f78fb2c8f4d8f24b97b18c51d..11ba0b2c2f6c6bf296b1de10854c1a1a0ccba54b 100644
--- a/entity/Task_entity/entityfields/keywordstates/children/containername_param/valueProcess.js
+++ b/entity/Task_entity/entityfields/keywordstates/children/containername_param/valueProcess.js
@@ -1,5 +1,5 @@
+import("KeywordRegistry_basic");
 import("system.vars");
-import("ActivityTask_lib");
 import("system.result");
 
-result.string(TaskUtils.getTypeStatusKeyword(vars.get("$field.TYPE")));
\ No newline at end of file
+result.string($KeywordRegistry.taskStatus());
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/keywordstates/children/whitelistids_param/valueProcess.js b/entity/Task_entity/entityfields/keywordstates/children/whitelistids_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e9a933ca7ebe5479c050dbe91d569683d07d3507
--- /dev/null
+++ b/entity/Task_entity/entityfields/keywordstates/children/whitelistids_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.result");
+import("ActivityTask_lib");
+
+result.object(TaskUtils.getAvailableStatus(vars.get("$field.TYPE")));
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/newoffer/onActionProcess.js b/entity/Task_entity/entityfields/newoffer/onActionProcess.js
index 550d39bb7b56c99d28972f0ddc71b0e2a524e12d..63640f70c29a2fa71bb1ebda7aea6f728e54722c 100644
--- a/entity/Task_entity/entityfields/newoffer/onActionProcess.js
+++ b/entity/Task_entity/entityfields/newoffer/onActionProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("Offer_lib");
 
-OfferUtils.createNewOffer(null, vars.getString("$field.TASKID"));
\ No newline at end of file
+OfferUtils.createNewOffer(null, null, vars.getString("$field.TASKID"));
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/priority_icon/valueProcess.js b/entity/Task_entity/entityfields/priority_icon/valueProcess.js
index 74ff67f1f27ad41536797fc61cac709a3c2299c4..5dc868f87908b415ce527da1d5ef7101e806da85 100644
--- a/entity/Task_entity/entityfields/priority_icon/valueProcess.js
+++ b/entity/Task_entity/entityfields/priority_icon/valueProcess.js
@@ -3,4 +3,4 @@ import("ActivityTask_lib");
 import("KeywordRegistry_basic");
 import("system.result");
 
-result.string(TaskUtils.getStatusIcon(vars.getString("$field.TYPE"), vars.getString("$field.STATUS")));
\ No newline at end of file
+result.string(TaskUtils.getStatusIcon(vars.getString("$field.STATUS")));
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/status/displayValueProcess.js b/entity/Task_entity/entityfields/status/displayValueProcess.js
index 38abbb7de7a0411c01486d243c0cc215f694157f..70a16871e4c5aa547b58b32aa525adb2cf587f04 100644
--- a/entity/Task_entity/entityfields/status/displayValueProcess.js
+++ b/entity/Task_entity/entityfields/status/displayValueProcess.js
@@ -1,6 +1,6 @@
-import("ActivityTask_lib");
+import("KeywordRegistry_basic");
 import("system.vars");
 import("system.result");
 import("Keyword_lib");
 
-result.string(KeywordUtils.getViewValue(TaskUtils.getTypeStatusKeyword(vars.get("$field.TYPE")), vars.get("$field.STATUS")));
\ No newline at end of file
+result.string(KeywordUtils.getViewValue($KeywordRegistry.taskStatus(), vars.get("$field.STATUS")));
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/status/valueProcess.js b/entity/Task_entity/entityfields/status/valueProcess.js
index 15024ad9a4247e1020dc9527666d3d6d8145b2e4..7381489b6267e26f60ce7ad52b9cb07f73de400d 100644
--- a/entity/Task_entity/entityfields/status/valueProcess.js
+++ b/entity/Task_entity/entityfields/status/valueProcess.js
@@ -6,15 +6,8 @@ import("system.vars");
 import("KeywordRegistry_basic");
 import("Keyword_lib");
 
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value"))
 {
-    var states = KeywordUtils.getEntryNamesAndIdsByContainer(TaskUtils.getTypeStatusKeyword(vars.get("$field.TYPE")))
-    if (states.length > 0)
-    {
-        result.string(states[0][0]);
-    }
-    else
-    {
-        result.string("");
-    }
+    var defaultState = TaskUtils.getDefaultStatus(vars.get("$field.TYPE"));
+    result.string(defaultState);
 }
\ No newline at end of file
diff --git a/entity/Timetracking_entity/Timetracking_entity.aod b/entity/Timetracking_entity/Timetracking_entity.aod
index 99696a060a4775c562003a3a594d30c31f6da154..506168abf8cdace750a89a7ce5ffa1f05ba1a780 100644
--- a/entity/Timetracking_entity/Timetracking_entity.aod
+++ b/entity/Timetracking_entity/Timetracking_entity.aod
@@ -101,6 +101,22 @@
         <fieldName>Employees</fieldName>
       </dependency>
     </entityConsumer>
+    <entityField>
+      <name>TOTALTIME</name>
+      <title>Total time</title>
+      <color>$priority-low-color</color>
+      <valueProcess>%aditoprj%/entity/Timetracking_entity/entityfields/totaltime/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Timetracking_entity/entityfields/totaltime/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>YEAR</name>
+      <title>Year</title>
+      <contentType>DATE</contentType>
+      <outputFormat>yyyy</outputFormat>
+      <inputFormat>dd.MM.yyyy</inputFormat>
+      <valueProcess>%aditoprj%/entity/Timetracking_entity/entityfields/year/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Timetracking_entity/entityfields/year/displayValueProcess.js</displayValueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/Timetracking_entity/entityfields/totaltime/displayValueProcess.js b/entity/Timetracking_entity/entityfields/totaltime/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..8512eee2ee5f8894587fa80b179e20ccdae30373
--- /dev/null
+++ b/entity/Timetracking_entity/entityfields/totaltime/displayValueProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.result");
+import("Timetracking_lib");
+
+result.string(Timetracking.minutesToReadableHour(parseInt(vars.getString("$field.TOTALTIME"))));
\ No newline at end of file
diff --git a/entity/Timetracking_entity/entityfields/totaltime/valueProcess.js b/entity/Timetracking_entity/entityfields/totaltime/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a290a185f34580375697ab2d4796d54ff12a2a7c
--- /dev/null
+++ b/entity/Timetracking_entity/entityfields/totaltime/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.db");
+import("system.vars");
+import("system.result");
+
+var minutes = db.cell("select sum(MINUTES) from TIMETRACKING");
+
+result.string(minutes);
\ No newline at end of file
diff --git a/entity/Timetracking_entity/entityfields/year/displayValueProcess.js b/entity/Timetracking_entity/entityfields/year/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..cca3354bb5c6d32131dc7d447fba92126dc3f590
--- /dev/null
+++ b/entity/Timetracking_entity/entityfields/year/displayValueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("system.datetime");
+
+result.string(datetime.toDate(vars.get("$field.YEAR"), "MMMM.yyyy"));
\ No newline at end of file
diff --git a/entity/Timetracking_entity/entityfields/year/valueProcess.js b/entity/Timetracking_entity/entityfields/year/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..748a5cd78eae9a53d2f1ca0f4cdc11afa86c21c5
--- /dev/null
+++ b/entity/Timetracking_entity/entityfields/year/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+var year = vars.get("$field.DATE")
+
+result.string(year);
\ No newline at end of file
diff --git a/entity/TurnoverTree_entity/TurnoverTree_entity.aod b/entity/TurnoverTree_entity/TurnoverTree_entity.aod
index 677abbe530472051bfe828aa97b88f1dec317adc..b8db83ea16b1af670135db8660a962a0c02ef0a3 100644
--- a/entity/TurnoverTree_entity/TurnoverTree_entity.aod
+++ b/entity/TurnoverTree_entity/TurnoverTree_entity.aod
@@ -1,103 +1,117 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
-  <name>TurnoverTree_entity</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <title>Tree</title>
-  <iconId>NEON:LOGO</iconId>
-  <recordContainer>jdito</recordContainer>
-  <entityFields>
-    <entityProvider>
-      <name>#PROVIDER</name>
-    </entityProvider>
-    <entityField>
-      <name>UID</name>
-    </entityField>
-    <entityField>
-      <name>CATEGORY</name>
-      <groupable v="true" />
-    </entityField>
-    <entityField>
-      <name>TURNOVERPRICE</name>
-      <title>Turnover</title>
-      <contentType>NUMBER</contentType>
-      <outputFormat>#,##0.00</outputFormat>
-      <inputFormat>#,##0.00</inputFormat>
-    </entityField>
-    <entityParameter>
-      <name>YearCountToShow_param</name>
-      <valueProcess>%aditoprj%/entity/TurnoverTree_entity/entityfields/yearcounttoshow_param/valueProcess.js</valueProcess>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <mandatory v="false" />
-      <documentation>%aditoprj%/entity/TurnoverTree_entity/entityfields/yearcounttoshow_param/documentation.adoc</documentation>
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>MaxYear_param</name>
-      <valueProcess>%aditoprj%/entity/TurnoverTree_entity/entityfields/maxyear_param/valueProcess.js</valueProcess>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <mandatory v="false" />
-      <documentation>%aditoprj%/entity/TurnoverTree_entity/entityfields/maxyear_param/documentation.adoc</documentation>
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityProvider>
-      <name>FilteredTurnovers</name>
-      <dependencies>
-        <entityDependency>
-          <name>0ea4ad47-985b-4a9c-81d8-946be324ae04</name>
-          <entityName>Turnover_entity</entityName>
-          <fieldName>Turnover_tree</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-      <children>
-        <entityParameter>
-          <name>YearCountToShow_param</name>
-          <expose v="true" />
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityField>
-      <name>PARENT</name>
-    </entityField>
-    <entityField>
-      <name>GROUP</name>
-      <title>Product group</title>
-    </entityField>
-    <entityField>
-      <name>FORECASTPRICE</name>
-      <title>Forecast</title>
-      <contentType>NUMBER</contentType>
-      <outputFormat>#,##0.00</outputFormat>
-      <inputFormat>#,##0.00</inputFormat>
-    </entityField>
-    <entityField>
-      <name>YEAR</name>
-    </entityField>
-    <entityField>
-      <name>MONTH</name>
-    </entityField>
-    <entityField>
-      <name>LAYER</name>
-    </entityField>
-  </entityFields>
-  <recordContainers>
-    <jDitoRecordContainer>
-      <name>jdito</name>
-      <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
-      <contentProcess>%aditoprj%/entity/TurnoverTree_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
-      <recordFields>
-        <element>UID.value</element>
-        <element>PARENT.value</element>
-        <element>GROUP.value</element>
-        <element>CATEGORY.value</element>
-        <element>TURNOVERPRICE.value</element>
-        <element>FORECASTPRICE.value</element>
-        <element>YEAR.value</element>
-        <element>MONTH.value</element>
-        <element>LAYER.value</element>
-      </recordFields>
-    </jDitoRecordContainer>
-  </recordContainers>
-</entity>
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
+  <name>TurnoverTree_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <title>Tree</title>
+  <iconId>NEON:LOGO</iconId>
+  <recordContainer>jdito</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+    </entityProvider>
+    <entityField>
+      <name>UID</name>
+    </entityField>
+    <entityField>
+      <name>CATEGORY</name>
+      <groupable v="true" />
+    </entityField>
+    <entityField>
+      <name>TURNOVERPRICE</name>
+      <title>Turnover</title>
+      <contentType>NUMBER</contentType>
+      <outputFormat>#,##0.00</outputFormat>
+      <inputFormat>#,##0.00</inputFormat>
+    </entityField>
+    <entityParameter>
+      <name>YearCountToShow_param</name>
+      <valueProcess>%aditoprj%/entity/TurnoverTree_entity/entityfields/yearcounttoshow_param/valueProcess.js</valueProcess>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <mandatory v="false" />
+      <documentation>%aditoprj%/entity/TurnoverTree_entity/entityfields/yearcounttoshow_param/documentation.adoc</documentation>
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>MaxYear_param</name>
+      <valueProcess>%aditoprj%/entity/TurnoverTree_entity/entityfields/maxyear_param/valueProcess.js</valueProcess>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <mandatory v="false" />
+      <documentation>%aditoprj%/entity/TurnoverTree_entity/entityfields/maxyear_param/documentation.adoc</documentation>
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>SalesprojectId_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityParameter>
+      <name>ShowForecast_param</name>
+      <valueProcess>%aditoprj%/entity/TurnoverTree_entity/entityfields/showforecast_param/valueProcess.js</valueProcess>
+      <expose v="true" />
+    </entityParameter>
+    <entityParameter>
+      <name>ShowTurnover_param</name>
+      <valueProcess>%aditoprj%/entity/TurnoverTree_entity/entityfields/showturnover_param/valueProcess.js</valueProcess>
+      <expose v="true" />
+    </entityParameter>
+    <entityProvider>
+      <name>FilteredTurnovers</name>
+      <dependencies>
+        <entityDependency>
+          <name>0ea4ad47-985b-4a9c-81d8-946be324ae04</name>
+          <entityName>Turnover_entity</entityName>
+          <fieldName>Turnover_tree</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>YearCountToShow_param</name>
+          <expose v="true" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityField>
+      <name>PARENT</name>
+    </entityField>
+    <entityField>
+      <name>GROUP</name>
+      <title>Product group</title>
+    </entityField>
+    <entityField>
+      <name>FORECASTPRICE</name>
+      <title>Forecast</title>
+      <contentType>NUMBER</contentType>
+      <outputFormat>#,##0.00</outputFormat>
+      <inputFormat>#,##0.00</inputFormat>
+    </entityField>
+    <entityField>
+      <name>YEAR</name>
+    </entityField>
+    <entityField>
+      <name>MONTH</name>
+    </entityField>
+    <entityField>
+      <name>LAYER</name>
+    </entityField>
+  </entityFields>
+  <recordContainers>
+    <jDitoRecordContainer>
+      <name>jdito</name>
+      <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
+      <contentProcess>%aditoprj%/entity/TurnoverTree_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
+      <recordFields>
+        <element>UID.value</element>
+        <element>PARENT.value</element>
+        <element>GROUP.value</element>
+        <element>CATEGORY.value</element>
+        <element>TURNOVERPRICE.value</element>
+        <element>FORECASTPRICE.value</element>
+        <element>YEAR.value</element>
+        <element>MONTH.value</element>
+        <element>LAYER.value</element>
+      </recordFields>
+    </jDitoRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/TurnoverTree_entity/recordcontainers/jdito/contentProcess.js b/entity/TurnoverTree_entity/recordcontainers/jdito/contentProcess.js
index 84bc46e9e44282f8b28d87aaffd23ce01e78fd45..d12d20da8e7b6d59c27b87c298a673f940788fe6 100644
--- a/entity/TurnoverTree_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/TurnoverTree_entity/recordcontainers/jdito/contentProcess.js
@@ -1,106 +1,117 @@
-import("Turnover_lib");
-import("system.vars");
-import("system.result");
-import("Money_lib");
-import("Util_lib");
-import("system.datetime");
-import("KeywordRegistry_basic");
-import("Keyword_lib");
-import("system.translate");
-
-var turnoverCategory = translate.text('Turnover');
-var forecastCategory = translate.text('Forecast');
-
-var maxYear = parseInt(vars.get("$param.MaxYear_param"));
-var yearCountToShow = parseInt(vars.get("$param.YearCountToShow_param"));
-var minYear = maxYear - yearCountToShow + 1;
-
-var turnover = TurnoverUtil.getTurnoverData(maxYear, yearCountToShow);
-var forecast = TurnoverUtil.getForecastData(maxYear, yearCountToShow);
-
-var columns = {
-    type: 0,
-    year: 1,
-    month: 2,
-    discount: 3,
-    vat: 4,
-    price: 5,
-    quantity: 6,
-    groupcodeId: 7,
-    groupcodeName: 8
-};
-
-// combine both data sources
-
-
-var treeData = [];
-var countData = {};
-
-turnover.forEach(function(row) 
-{    
-    var monthDate = new Date(row[columns.year], row[columns.month]-1);
-    monthDate = datetime.toDate(monthDate.getTime(), "MMM yyyy", "UTC");
-    _addCount([row[columns.year], [row[columns.month], monthDate], [row[columns.groupcodeId], row[columns.groupcodeName]]], row[columns.type], row[columns.year], row[columns.month],
-        MoneyUtils.getGross(
-            (row[columns.vat] ? parseFloat(row[columns.vat]) : 0.0),
-            (row[columns.price] ? parseFloat(row[columns.price]) : 0.0),
-            (row[columns.quantity] ? parseFloat(row[columns.quantity]) : 0.0),
-            (row[columns.discount] ? parseFloat(row[columns.discount]) : 0.0)));
-});
-
-forecast.forEach(function(row) 
-{    
-    var monthDate = new Date(row[columns.year], row[columns.month]-1);
-    monthDate = datetime.toDate(monthDate.getTime(), "MMM yyyy", "UTC");
-    _addCount([row[columns.year], [row[columns.month], monthDate], [row[columns.groupcodeId], row[columns.groupcodeName]]], row[columns.type], row[columns.year], row[columns.month], row[columns.price]);
-});
-
-// create tree
-for (let key in countData) {
-    var countDataSet = countData[key];
-    treeData.push([key, countDataSet.parent, countDataSet.groupName, countDataSet.category, countDataSet[turnoverCategory], countDataSet[forecastCategory], parseInt(countDataSet.year), parseInt(countDataSet.month), parseInt(countDataSet.layer)]);
-}
-
-treeData = TreeUtils.treeOrderBy(treeData, 8, [[6, true], [7, false], [2, false]])
-result.object(treeData);
-
-/**
- * add the counts to countData for the given key and value
- * @param {Array} pKeys an array containing all keys for this value. If the x-value for one key is different from the key-value: add an array [key, value] instead of only the key
- *                      the first key is year
- * @param {String} pCategory the category to add
- * @param {integer} pYear the year
- * @param {integer} pMonth the month
- * @param {float} pValue the value to display
- */
-function _addCount(pKeys, pCategory, pYear, pMonth, pValue) {
-    var key = "";
-    
-    for (let i = 0; i < pKeys.length; i++) {
-        let keyId;
-        let keyName;
-        
-        if (typeof pKeys[i] != "object")
-        {
-            keyId = pKeys[i];
-            keyName = pKeys[i];
-        }
-        else // handle array: first is id seccond is name for X-value
-        {
-            keyId = pKeys[i][0];
-            keyName = pKeys[i][1];
-        }
-        var parent = key;
-
-        key += ";" + keyId;
-        
-        if (countData[key] == undefined)
-        {
-            countData[key] = {parent: parent, category: pCategory, groupName: keyName, data: pKeys[i], year: pYear, month: pMonth, layer: i}; // keys[0] is the category
-            countData[key][forecastCategory] = 0.0;
-            countData[key][turnoverCategory] = 0.0;
-        }
-
-        countData[key][pCategory] += parseFloat(pValue);
-    }
+import("Turnover_lib");
+import("system.vars");
+import("system.result");
+import("Money_lib");
+import("Util_lib");
+import("system.datetime");
+import("KeywordRegistry_basic");
+import("Keyword_lib");
+import("system.translate");
+
+var turnoverCategory = translate.text('Turnover');
+var forecastCategory = translate.text('Forecast');
+
+var maxYear = parseInt(vars.get("$param.MaxYear_param"));
+var yearCountToShow = parseInt(vars.get("$param.YearCountToShow_param"));
+var minYear = maxYear - yearCountToShow + 1;
+
+var salesprojectId = vars.exists("$param.SalesprojectId_param") && vars.get("$param.SalesprojectId_param") ? vars.get("$param.SalesprojectId_param") : undefined;
+
+var showForecast = vars.exists("$param.ShowForecast_param") && vars.get("$param.ShowForecast_param") == "true";
+var showTurnover = vars.exists("$param.ShowTurnover_param") && vars.get("$param.ShowTurnover_param") == "true";
+
+var turnover = [];
+var forecast = [];
+
+if (showTurnover)
+    turnover = TurnoverUtil.getTurnoverData(maxYear, yearCountToShow, salesprojectId);
+
+if (showForecast)
+    forecast = TurnoverUtil.getForecastData(maxYear, yearCountToShow, salesprojectId);
+
+var columns = {
+    type: 0,
+    year: 1,
+    month: 2,
+    discount: 3,
+    vat: 4,
+    price: 5,
+    quantity: 6,
+    groupcodeId: 7,
+    groupcodeName: 8
+};
+
+// combine both data sources
+
+
+var treeData = [];
+var countData = {};
+
+turnover.forEach(function(row) 
+{    
+    var monthDate = new Date(row[columns.year], row[columns.month]-1);
+    monthDate = datetime.toDate(monthDate.getTime(), "MMM yyyy", "UTC");
+    _addCount([row[columns.year], [row[columns.month], monthDate], [row[columns.groupcodeId], row[columns.groupcodeName]]], row[columns.type], row[columns.year], row[columns.month],
+        MoneyUtils.getGross(
+            (row[columns.vat] ? parseFloat(row[columns.vat]) : 0.0),
+            (row[columns.price] ? parseFloat(row[columns.price]) : 0.0),
+            (row[columns.quantity] ? parseFloat(row[columns.quantity]) : 0.0),
+            (row[columns.discount] ? parseFloat(row[columns.discount]) : 0.0)));
+});
+
+forecast.forEach(function(row) 
+{    
+    var monthDate = new Date(row[columns.year], row[columns.month]-1);
+    monthDate = datetime.toDate(monthDate.getTime(), "MMM yyyy", "UTC");
+    _addCount([row[columns.year], [row[columns.month], monthDate], [row[columns.groupcodeId], row[columns.groupcodeName]]], row[columns.type], row[columns.year], row[columns.month], row[columns.price]);
+});
+
+// create tree
+for (let key in countData) {
+    var countDataSet = countData[key];
+    treeData.push([key, countDataSet.parent, countDataSet.groupName, countDataSet.category, countDataSet[turnoverCategory], countDataSet[forecastCategory], parseInt(countDataSet.year), parseInt(countDataSet.month), parseInt(countDataSet.layer)]);
+}
+
+treeData = TreeUtils.treeOrderBy(treeData, 8, [[6, true], [7, false], [2, false]])
+result.object(treeData);
+
+/**
+ * add the counts to countData for the given key and value
+ * @param {Array} pKeys an array containing all keys for this value. If the x-value for one key is different from the key-value: add an array [key, value] instead of only the key
+ *                      the first key is year
+ * @param {String} pCategory the category to add
+ * @param {integer} pYear the year
+ * @param {integer} pMonth the month
+ * @param {float} pValue the value to display
+ */
+function _addCount(pKeys, pCategory, pYear, pMonth, pValue) {
+    var key = "";
+    
+    for (let i = 0; i < pKeys.length; i++) {
+        let keyId;
+        let keyName;
+        
+        if (typeof pKeys[i] != "object")
+        {
+            keyId = pKeys[i];
+            keyName = pKeys[i];
+        }
+        else // handle array: first is id seccond is name for X-value
+        {
+            keyId = pKeys[i][0];
+            keyName = pKeys[i][1];
+        }
+        var parent = key;
+
+        key += ";" + keyId;
+        
+        if (countData[key] == undefined)
+        {
+            countData[key] = {parent: parent, category: pCategory, groupName: keyName, data: pKeys[i], year: pYear, month: pMonth, layer: i}; // keys[0] is the category
+            countData[key][forecastCategory] = 0.0;
+            countData[key][turnoverCategory] = 0.0;
+        }
+
+        countData[key][pCategory] += parseFloat(pValue);
+    }
 }
\ No newline at end of file
diff --git a/entity/Turnover_entity/Turnover_entity.aod b/entity/Turnover_entity/Turnover_entity.aod
index 6c0f3b465bf10066800c6e56b117a90239061399..c586a65eeabff7e8e901d920442780c568cb6f19 100644
--- a/entity/Turnover_entity/Turnover_entity.aod
+++ b/entity/Turnover_entity/Turnover_entity.aod
@@ -1,99 +1,133 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
-  <name>Turnover_entity</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <documentation>%aditoprj%/entity/Turnover_entity/documentation.adoc</documentation>
-  <title>Turnover</title>
-  <iconId>VAADIN:CHART</iconId>
-  <recordContainer>jdito</recordContainer>
-  <entityFields>
-    <entityProvider>
-      <name>#PROVIDER</name>
-      <recordContainer>jdito</recordContainer>
-    </entityProvider>
-    <entityField>
-      <name>UID</name>
-      <title>Year</title>
-    </entityField>
-    <entityField>
-      <name>Y</name>
-      <titleProcess>%aditoprj%/entity/Turnover_entity/entityfields/y/titleProcess.js</titleProcess>
-    </entityField>
-    <entityField>
-      <name>PARENT</name>
-      <title>Parent</title>
-    </entityField>
-    <entityField>
-      <name>CATEGORY</name>
-      <title>Category</title>
-    </entityField>
-    <entityField>
-      <name>X</name>
-      <title>Year</title>
-      <contentType>TEXT</contentType>
-    </entityField>
-    <entityParameter>
-      <name>YearCountToShow_param</name>
-      <valueProcess>%aditoprj%/entity/Turnover_entity/entityfields/yearcounttoshow_param/valueProcess.js</valueProcess>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <mandatory v="false" />
-      <documentation>%aditoprj%/entity/Turnover_entity/entityfields/yearcounttoshow_param/documentation.adoc</documentation>
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>MaxYear_param</name>
-      <valueProcess>%aditoprj%/entity/Turnover_entity/entityfields/maxyear_param/valueProcess.js</valueProcess>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <mandatory v="false" />
-      <documentation>%aditoprj%/entity/Turnover_entity/entityfields/maxyear_param/documentation.adoc</documentation>
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityProvider>
-      <name>FilteredTurnovers</name>
-      <children>
-        <entityParameter>
-          <name>MaxYear_param</name>
-          <expose v="true" />
-        </entityParameter>
-        <entityParameter>
-          <name>YearCountToShow_param</name>
-          <expose v="true" />
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityConsumer>
-      <name>Turnover_tree</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>TurnoverTree_entity</entityName>
-        <fieldName>FilteredTurnovers</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>MaxYear_param</name>
-          <valueProcess>%aditoprj%/entity/Turnover_entity/entityfields/turnover_tree/children/maxyear_param/valueProcess.js</valueProcess>
-        </entityParameter>
-        <entityParameter>
-          <name>YearCountToShow_param</name>
-          <valueProcess>%aditoprj%/entity/Turnover_entity/entityfields/turnover_tree/children/yearcounttoshow_param/valueProcess.js</valueProcess>
-        </entityParameter>
-      </children>
-    </entityConsumer>
-  </entityFields>
-  <recordContainers>
-    <jDitoRecordContainer>
-      <name>jdito</name>
-      <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
-      <contentProcess>%aditoprj%/entity/Turnover_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
-      <recordFields>
-        <element>UID.value</element>
-        <element>PARENT.value</element>
-        <element>CATEGORY.value</element>
-        <element>X.value</element>
-        <element>Y.value</element>
-      </recordFields>
-    </jDitoRecordContainer>
-  </recordContainers>
-</entity>
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.6">
+  <name>Turnover_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <documentation>%aditoprj%/entity/Turnover_entity/documentation.adoc</documentation>
+  <title>Turnover</title>
+  <iconId>VAADIN:CHART</iconId>
+  <recordContainer>jdito</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+      <recordContainer>jdito</recordContainer>
+    </entityProvider>
+    <entityField>
+      <name>UID</name>
+      <title>Year</title>
+    </entityField>
+    <entityField>
+      <name>Y</name>
+      <titleProcess>%aditoprj%/entity/Turnover_entity/entityfields/y/titleProcess.js</titleProcess>
+    </entityField>
+    <entityField>
+      <name>PARENT</name>
+      <title>Parent</title>
+    </entityField>
+    <entityField>
+      <name>CATEGORY</name>
+      <title>Category</title>
+    </entityField>
+    <entityField>
+      <name>X</name>
+      <title>Year</title>
+      <contentType>TEXT</contentType>
+    </entityField>
+    <entityParameter>
+      <name>YearCountToShow_param</name>
+      <valueProcess>%aditoprj%/entity/Turnover_entity/entityfields/yearcounttoshow_param/valueProcess.js</valueProcess>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <mandatory v="false" />
+      <documentation>%aditoprj%/entity/Turnover_entity/entityfields/yearcounttoshow_param/documentation.adoc</documentation>
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>MaxYear_param</name>
+      <valueProcess>%aditoprj%/entity/Turnover_entity/entityfields/maxyear_param/valueProcess.js</valueProcess>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <mandatory v="false" />
+      <documentation>%aditoprj%/entity/Turnover_entity/entityfields/maxyear_param/documentation.adoc</documentation>
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityProvider>
+      <name>FilteredTurnovers</name>
+      <dependencies>
+        <entityDependency>
+          <name>51106aba-bd82-4ac5-8de6-fc56d53c6117</name>
+          <entityName>Salesproject_entity</entityName>
+          <fieldName>SalesprojectForecastCharts</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>MaxYear_param</name>
+          <expose v="true" />
+        </entityParameter>
+        <entityParameter>
+          <name>YearCountToShow_param</name>
+          <expose v="true" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityConsumer>
+      <name>Turnover_tree</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>TurnoverTree_entity</entityName>
+        <fieldName>FilteredTurnovers</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>MaxYear_param</name>
+          <valueProcess>%aditoprj%/entity/Turnover_entity/entityfields/turnover_tree/children/maxyear_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>YearCountToShow_param</name>
+          <valueProcess>%aditoprj%/entity/Turnover_entity/entityfields/turnover_tree/children/yearcounttoshow_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ShowForecast_param</name>
+          <valueProcess>%aditoprj%/entity/Turnover_entity/entityfields/turnover_tree/children/showforecast_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ShowTurnover_param</name>
+          <valueProcess>%aditoprj%/entity/Turnover_entity/entityfields/turnover_tree/children/showturnover_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>SalesprojectId_param</name>
+          <valueProcess>%aditoprj%/entity/Turnover_entity/entityfields/turnover_tree/children/salesprojectid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityParameter>
+      <name>SalesprojectId_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityParameter>
+      <name>ShowForecast_param</name>
+      <valueProcess>%aditoprj%/entity/Turnover_entity/entityfields/showforecast_param/valueProcess.js</valueProcess>
+      <expose v="true" />
+    </entityParameter>
+    <entityParameter>
+      <name>ShowTurnover_param</name>
+      <valueProcess>%aditoprj%/entity/Turnover_entity/entityfields/showturnover_param/valueProcess.js</valueProcess>
+      <expose v="true" />
+    </entityParameter>
+  </entityFields>
+  <recordContainers>
+    <jDitoRecordContainer>
+      <name>jdito</name>
+      <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
+      <contentProcess>%aditoprj%/entity/Turnover_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
+      <recordFields>
+        <element>UID.value</element>
+        <element>PARENT.value</element>
+        <element>CATEGORY.value</element>
+        <element>X.value</element>
+        <element>Y.value</element>
+      </recordFields>
+    </jDitoRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/Turnover_entity/recordcontainers/jdito/contentProcess.js b/entity/Turnover_entity/recordcontainers/jdito/contentProcess.js
index 4f94c77a16d4c1158c06232d605d56ad62009d08..4bc466e09a0b790d85e446e033b8c9215ea310a3 100644
--- a/entity/Turnover_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Turnover_entity/recordcontainers/jdito/contentProcess.js
@@ -1,3 +1,4 @@
+import("system.logging");
 import("Turnover_lib");
 import("system.vars");
 import("system.result");
@@ -14,7 +15,12 @@ var maxYear = parseInt(vars.get("$param.MaxYear_param"));
 var yearCountToShow = parseInt(vars.get("$param.YearCountToShow_param"));
 var minYear = maxYear - yearCountToShow + 1;
 
-var data = TurnoverUtil.getTurnoverAndForecastData(maxYear, yearCountToShow);
+var showForecast = vars.exists("$param.ShowForecast_param") && vars.get("$param.ShowForecast_param") == "true";
+var showTurnover = vars.exists("$param.ShowTurnover_param") && vars.get("$param.ShowTurnover_param") == "true";
+
+var salesprojectId = vars.exists("$param.SalesprojectId_param") && vars.get("$param.SalesprojectId_param") ? vars.get("$param.SalesprojectId_param") : undefined;
+
+var data = TurnoverUtil.getTurnoverAndForecastData(maxYear, yearCountToShow, showForecast, showTurnover, salesprojectId);
 
 var columns = {
     type: 0,
@@ -40,8 +46,12 @@ for (let y = minYear; y <= maxYear; y++)
     {
         monthDate = new Date(y, m-1);
         monthDate = datetime.toDate(monthDate.getTime(), "MMM yyyy", "UTC");
-        _addCount([forecastCategory, ""+y, [m, monthDate]], 0.0);
-        _addCount([turnoverCategory, ""+y, [m, monthDate]], 0.0);
+        
+        if (showForecast)
+            _addCount([forecastCategory, ""+y, [m, monthDate]], 0.0);
+        
+        if (showTurnover)
+            _addCount([turnoverCategory, ""+y, [m, monthDate]], 0.0);
     }
 }
 
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index d2d589154dd5ac77102343155628cb70a1f8e57c..b30b51786c72e5988b9b20011f93baab13433025 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -3654,6 +3654,9 @@
     <entry>
       <key>Search for new Entries</key>
     </entry>
+    <entry>
+      <key>Additional link</key>
+    </entry>
     <entry>
       <key>Salesproject member</key>
     </entry>
@@ -3675,6 +3678,30 @@
     <entry>
       <key>Step name</key>
     </entry>
+    <entry>
+      <key>Assignment</key>
+    </entry>
+    <entry>
+      <key>Complaint</key>
+    </entry>
+    <entry>
+      <key>Employee responsible</key>
+    </entry>
+    <entry>
+      <key>Restrictions</key>
+    </entry>
+    <entry>
+      <key>Advertising bans</key>
+    </entry>
+    <entry>
+      <key>Advertising ban</key>
+    </entry>
+    <entry>
+      <key>Delete appointment</key>
+    </entry>
+    <entry>
+      <key>Do you really want to delete this recurring appointment?</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
   <sqlModels>
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 09fcc235ede94998445456baaa5a8d05e0ec2399..d2a221e67c604218be1190a9f6a8f52ad95a7ef4 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -6,26 +6,69 @@
   <country></country>
   <variant></variant>
   <keyValueMap>
+    <entry>
+      <key>No mails</key>
+      <value>Keine E-Mails</value>
+    </entry>
     <entry>
       <key>Steps</key>
       <value>Stufen</value>
     </entry>
+    <entry>
+      <key>Assignment</key>
+      <value>Zuordnung</value>
+    </entry>
     <entry>
       <key>Project management</key>
       <value>Projektmanagement</value>
     </entry>
+    <entry>
+      <key>No calls</key>
+      <value>Keine Anrufe</value>
+    </entry>
+    <entry>
+      <key>No SMS</key>
+    </entry>
+    <entry>
+      <key>Restrictions</key>
+      <value>Einschränkungen</value>
+    </entry>
     <entry>
       <key>Notifications</key>
       <value>Benachrichtigungen</value>
     </entry>
+    <entry>
+      <key>Do you really want to delete this recurring appointment?</key>
+      <value>Wollen Sie wirklich die Serie löschen?</value>
+    </entry>
+    <entry>
+      <key>Advertising bans</key>
+      <value>Werbesperren</value>
+    </entry>
     <entry>
       <key>Add to Campaign</key>
       <value>Zu Kampagne hinzufügen</value>
     </entry>
+    <entry>
+      <key>No fax</key>
+      <value>Kein Fax</value>
+    </entry>
+    <entry>
+      <key>No letters</key>
+      <value>Keine Briefe</value>
+    </entry>
     <entry>
       <key>Company</key>
       <value>Firma</value>
     </entry>
+    <entry>
+      <key>Complaint</key>
+      <value>Reklamation</value>
+    </entry>
+    <entry>
+      <key>Advertising ban</key>
+      <value>Werbesperre</value>
+    </entry>
     <entry>
       <key>${SQL_LIB_FIELD_WRONG_FORMAT} field: %0</key>
       <value>Das Feld %0 hat ein falsches Format. Das Datenbankfeld muss wie "tablename.columnname" ("ORGANISATION.NAME") oder als Array mit Column-alias formatiert sein: ["ORGANISATION", "NAME", "myorgAlias"]</value>
@@ -38,6 +81,10 @@
       <key>Picture</key>
       <value>Bild</value>
     </entry>
+    <entry>
+      <key>New letter</key>
+      <value>Brief schreiben</value>
+    </entry>
     <entry>
       <key>Delivery specification</key>
       <value>Lieferbedingung</value>
@@ -58,6 +105,10 @@
       <key>Attribute \"%0\" has to be used at least %1.</key>
       <value>Eigenschaft \"%0\" muss mindestens %1 verwendet werden.</value>
     </entry>
+    <entry>
+      <key>Delete appointment</key>
+      <value>Termin löschen</value>
+    </entry>
     <entry>
       <key>Show tasks where I am editor</key>
       <value>Zeigt Aufgaben an wo ich Bearbeiter bin</value>
@@ -66,6 +117,10 @@
       <key>Confirm password</key>
       <value>Passwort prüfen</value>
     </entry>
+    <entry>
+      <key>Delete recurring appointment</key>
+      <value>Serie löschen</value>
+    </entry>
     <entry>
       <key>Human Resources</key>
       <value>Personal</value>
@@ -318,6 +373,10 @@
       <key>Office address</key>
       <value>Firmenadresse</value>
     </entry>
+    <entry>
+      <key>Additional link</key>
+      <value>Zusätzliche Verknüpfung</value>
+    </entry>
     <entry>
       <key>Contact</key>
       <value>Kontakt</value>
@@ -4603,6 +4662,9 @@
       <key>Step name</key>
       <value>Stufen Name</value>
     </entry>
+    <entry>
+      <key>Employee responsible</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index 4373adf32eff1fe69f2c0d4bbda6e59abea9a59f..56aced0208358b5e603a1a9a11d94bb7965c69fc 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -3703,6 +3703,9 @@
     <entry>
       <key>Search for new Entries</key>
     </entry>
+    <entry>
+      <key>Additional link</key>
+    </entry>
     <entry>
       <key>Salesproject member</key>
     </entry>
@@ -3724,6 +3727,30 @@
     <entry>
       <key>Step name</key>
     </entry>
+    <entry>
+      <key>Assignment</key>
+    </entry>
+    <entry>
+      <key>Complaint</key>
+    </entry>
+    <entry>
+      <key>Employee responsible</key>
+    </entry>
+    <entry>
+      <key>Restrictions</key>
+    </entry>
+    <entry>
+      <key>Advertising bans</key>
+    </entry>
+    <entry>
+      <key>Advertising ban</key>
+    </entry>
+    <entry>
+      <key>Delete appointment</key>
+    </entry>
+    <entry>
+      <key>Do you really want to delete this recurring appointment?</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonContext/CommRestriction/CommRestriction.aod b/neonContext/CommRestriction/CommRestriction.aod
new file mode 100644
index 0000000000000000000000000000000000000000..4b27ac29d8604030f95e86435e67a6d0249c4c59
--- /dev/null
+++ b/neonContext/CommRestriction/CommRestriction.aod
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0">
+  <name>CommRestriction</name>
+  <title>Advertising ban</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterview>CommRestrictionFilter_view</filterview>
+  <editview>CommRestrictionSmallEdit_view</editview>
+  <preview>CommRestrictionPreview_view</preview>
+  <entity>CommRestriction_Entity</entity>
+  <references>
+    <neonViewReference>
+      <name>7979571d-6800-4379-a469-52c12cf5eb24</name>
+      <view>CommRestrictionFilter_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>395937e6-b085-4e54-855b-0ec31cf4cbb6</name>
+      <view>CommRestrictionSmallEdit_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>c0ffb2e0-0190-47ee-aa0a-e774fe5400fb</name>
+      <view>CommRestrictionPreview_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonContext/Mail/Mail.aod b/neonContext/Letter/Letter.aod
similarity index 58%
rename from neonContext/Mail/Mail.aod
rename to neonContext/Letter/Letter.aod
index 6c1b4c798c638d24c8953b7635eea0c4b2fa1dee..20634db2001feea9c35f014ae162a1d0bebe65a2 100644
--- a/neonContext/Mail/Mail.aod
+++ b/neonContext/Letter/Letter.aod
@@ -1,6 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0">
-  <name>Mail</name>
+  <name>Letter</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
-  <entity>Mail_entity</entity>
+  <entity>Letter_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>470b4065-e632-4407-b708-dd5e1fb73441</name>
+      <view>LetterEdit_view</view>
+    </neonViewReference>
+  </references>
 </neonContext>
diff --git a/neonContext/Salesproject/Salesproject.aod b/neonContext/Salesproject/Salesproject.aod
index a7d8eda383934c413cd8c4aff7b82528a77c0e51..7132036f9565f46312c7cf84234512dc2c6d92a1 100644
--- a/neonContext/Salesproject/Salesproject.aod
+++ b/neonContext/Salesproject/Salesproject.aod
@@ -48,11 +48,19 @@
     </neonViewReference>
     <neonViewReference>
       <name>d878f3b7-1de6-4319-93c7-0fff621c0458</name>
-      <view>SalesprojectTimeDocComp_view</view>
+      <view>SalesprojectFurtherInfo_view</view>
     </neonViewReference>
     <neonViewReference>
       <name>68e9257b-d402-4edc-8345-7da46c3b63f9</name>
       <view>SalesprojectClassificationAttribute_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>99f70216-c195-4c08-a6ab-3a4d5acc759b</name>
+      <view>SalesprojectClassScoreAttribute_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>b3e34681-eef6-48d3-a4e6-975a6fe77e7b</name>
+      <view>SalesprojectOfferForecastChart_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/Timetracking/Timetracking.aod b/neonContext/Timetracking/Timetracking.aod
index 72386c6a08a480cb48e2a1513e25880dcf5eb81e..1cd5118750a6c5d10e0cda5a363edabdb0709682 100644
--- a/neonContext/Timetracking/Timetracking.aod
+++ b/neonContext/Timetracking/Timetracking.aod
@@ -23,5 +23,17 @@
       <name>1afcd6f9-1692-4df7-b514-32c1db2f7dd1</name>
       <view>TimetrackingDrawer_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>069607bf-ed69-494c-bbe4-399bb51298ca</name>
+      <view>TimetrackingScore_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>9dcc5766-f0ac-4c7e-8b93-0ea5b648a1ac</name>
+      <view>TimetrackingAnalyses_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>1290dad5-f796-4847-9510-05607e079f30</name>
+      <view>TimetrackingAnalysesDrawer_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/Turnover/Turnover.aod b/neonContext/Turnover/Turnover.aod
index 7a814c64dee57940c0d197731e0966af3496f44e..5df6c0decce32ba96ff348f00c39c5ebcf890765 100644
--- a/neonContext/Turnover/Turnover.aod
+++ b/neonContext/Turnover/Turnover.aod
@@ -1,14 +1,18 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0">
-  <name>Turnover</name>
-  <title>Turnover</title>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <filterview>TurnoverChart_view</filterview>
-  <entity>Turnover_entity</entity>
-  <references>
-    <neonViewReference>
-      <name>41a2a339-d41d-47e7-8416-4bd788a269af</name>
-      <view>TurnoverChart_view</view>
-    </neonViewReference>
-  </references>
-</neonContext>
+<?xml version="1.0" encoding="UTF-8"?>
+<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0">
+  <name>Turnover</name>
+  <title>Turnover</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterview>TurnoverChart_view</filterview>
+  <entity>Turnover_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>41a2a339-d41d-47e7-8416-4bd788a269af</name>
+      <view>TurnoverChart_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>539f403e-f2c2-4459-9193-fefc236204ad</name>
+      <view>TurnoverChartForecast_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonContext/TurnoverTree/TurnoverTree.aod b/neonContext/TurnoverTree/TurnoverTree.aod
index dd58059574471965dda75ac4c260bf7e1ca88684..db435f45709145fd4856b9f71263d25ff762db41 100644
--- a/neonContext/TurnoverTree/TurnoverTree.aod
+++ b/neonContext/TurnoverTree/TurnoverTree.aod
@@ -1,13 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0">
-  <name>TurnoverTree</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <filterview>TurnoverTree_view</filterview>
-  <entity>TurnoverTree_entity</entity>
-  <references>
-    <neonViewReference>
-      <name>b8135e50-da8e-424c-9073-e721b4822736</name>
-      <view>TurnoverTree_view</view>
-    </neonViewReference>
-  </references>
-</neonContext>
+<?xml version="1.0" encoding="UTF-8"?>
+<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0">
+  <name>TurnoverTree</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterview>TurnoverTree_view</filterview>
+  <entity>TurnoverTree_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>b8135e50-da8e-424c-9073-e721b4822736</name>
+      <view>TurnoverTree_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>407eda43-5b44-4bae-980a-8ba522b0a5fe</name>
+      <view>TurnoverTreeForecast_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonView/AppointmentPreview_view/AppointmentPreview_view.aod b/neonView/AppointmentPreview_view/AppointmentPreview_view.aod
index beabd6985997e61880b70f11c9dff950e0d36ea7..e20d0cb34ddbdb17e918cb2994fccf15ca155a3c 100644
--- a/neonView/AppointmentPreview_view/AppointmentPreview_view.aod
+++ b/neonView/AppointmentPreview_view/AppointmentPreview_view.aod
@@ -25,6 +25,7 @@
       <organizerField>ORGANIZER</organizerField>
       <categoriesField>CATEGORIES</categoriesField>
       <favoriteActionGroup1>PartStatActionGroup</favoriteActionGroup1>
+      <favoriteActionGroup2>seriesActionGroup</favoriteActionGroup2>
       <entityField>#ENTITY</entityField>
     </appointmentPreviewViewTemplate>
     <neonViewReference>
diff --git a/neonView/ClassificationDrawer_view/ClassificationDrawer_view.aod b/neonView/ClassificationDrawer_view/ClassificationDrawer_view.aod
index 4f3c0065ecf038cd2d66c0ee3aefbeef34ef2451..bf5c00139312d39c09ff953040f9051d947b06a4 100644
--- a/neonView/ClassificationDrawer_view/ClassificationDrawer_view.aod
+++ b/neonView/ClassificationDrawer_view/ClassificationDrawer_view.aod
@@ -10,7 +10,7 @@
   </layout>
   <children>
     <neonViewReference>
-      <name>be8f5d17-80ab-49c4-8153-f90aa23667cd</name>
+      <name>ddde18ed-2617-4f7e-9a6b-71e4625e2cdc</name>
       <entityField>#ENTITY</entityField>
       <view>ClassificationTree_view</view>
     </neonViewReference>
diff --git a/neonView/CommRestrictionFilter_view/CommRestrictionFilter_view.aod b/neonView/CommRestrictionFilter_view/CommRestrictionFilter_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..24de7ce4fbf7b428903a17047f86487df4bbb425
--- /dev/null
+++ b/neonView/CommRestrictionFilter_view/CommRestrictionFilter_view.aod
@@ -0,0 +1,42 @@
+<?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.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>CommRestrictionFilter_view</name>
+  <title>Restrictions</title>
+  <description>Restrictions</description>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterable v="true" />
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>CommRestrictions</name>
+      <entityField>#ENTITY</entityField>
+      <title>Restrictions</title>
+      <columns>
+        <neonTableColumn>
+          <name>3d47a693-e589-413c-8b0c-30399b074f14</name>
+          <entityField>ICON</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>f3d79ce8-2518-4515-9d9d-6642b763a045</name>
+          <entityField>MEDIUM</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>b34ef3a6-ae5d-4610-bc29-0f6e1b6fe9c8</name>
+          <entityField>STARTDATE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>ddcf9043-75aa-4685-965e-7b0a9ab818b3</name>
+          <entityField>EMPLOYEE_INVOLVED</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>307fb85b-8626-4754-b6d1-a2f713856361</name>
+          <entityField>REASON</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/CommRestrictionPreview_view/CommRestrictionPreview_view.aod b/neonView/CommRestrictionPreview_view/CommRestrictionPreview_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..e9990acb9b83de1dcc59b11b8cda78d7f36848b9
--- /dev/null
+++ b/neonView/CommRestrictionPreview_view/CommRestrictionPreview_view.aod
@@ -0,0 +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.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>CommRestrictionPreview_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <cardViewTemplate>
+      <name>Header</name>
+      <iconField>ICON</iconField>
+      <titleField>MEDIUM</titleField>
+      <subtitleField>EMPLOYEE_INVOLVED</subtitleField>
+      <entityField>#ENTITY</entityField>
+      <informationField></informationField>
+    </cardViewTemplate>
+    <genericViewTemplate>
+      <name>Info</name>
+      <showDrawer v="false" />
+      <drawerCaption></drawerCaption>
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>d55f5122-0987-4c47-a586-9fa2fe6eb0ee</name>
+          <entityField>STARTDATE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>bd1adc73-5e86-4fed-aa4a-2436405cba09</name>
+          <entityField>REASON</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/CommRestrictionSmallEdit_view/CommRestrictionSmallEdit_view.aod b/neonView/CommRestrictionSmallEdit_view/CommRestrictionSmallEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..ec3f3f60e2f71b6a728e92aaafb45523baf8c34e
--- /dev/null
+++ b/neonView/CommRestrictionSmallEdit_view/CommRestrictionSmallEdit_view.aod
@@ -0,0 +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.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>CommRestrictionSmallEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <isSmall v="true" />
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>Generic</name>
+      <editMode v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>fd6609a0-1437-4c2a-b3a5-69affe1c35c7</name>
+          <entityField>MEDIUM</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>c1fbcb41-30c9-4221-b187-7abbb7bb9a88</name>
+          <entityField>STARTDATE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>c0ad0471-85a8-40fa-82ce-61ea43678291</name>
+          <entityField>EMPLOYEE_INVOLVED</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>c537286d-1ed5-44cf-99cd-d513f154169d</name>
+          <entityField>REASON</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/CompetitionFilter_view/CompetitionFilter_view.aod b/neonView/CompetitionFilter_view/CompetitionFilter_view.aod
index c48e69551e83641f2ca6a28c4da6b8f51b2c4e6a..ee11fb7b578a391278031ea436d0dc069118646e 100644
--- a/neonView/CompetitionFilter_view/CompetitionFilter_view.aod
+++ b/neonView/CompetitionFilter_view/CompetitionFilter_view.aod
@@ -14,6 +14,10 @@
       <autoNewRow v="true" />
       <entityField>#ENTITY</entityField>
       <columns>
+        <neonTableColumn>
+          <name>dd971a3f-297e-4055-9961-77faea60236e</name>
+          <entityField>IMAGE</entityField>
+        </neonTableColumn>
         <neonTableColumn>
           <name>47821fb3-d178-4a54-9ec4-d78232e9b4de</name>
           <entityField>CONTACT_ID</entityField>
diff --git a/neonView/ForecastPreview_view/ForecastPreview_view.aod b/neonView/ForecastPreview_view/ForecastPreview_view.aod
index 7e6bbac9e4a08e144b3c23f17c79fb3d3775ceb3..15dd0b69ad006af106d3ecc1b99c97559e07ee96 100644
--- a/neonView/ForecastPreview_view/ForecastPreview_view.aod
+++ b/neonView/ForecastPreview_view/ForecastPreview_view.aod
@@ -16,7 +16,7 @@
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <genericViewTemplate>
-      <name>Info</name>
+      <name>Detail</name>
       <showDrawer v="true" />
       <drawerCaption>Details</drawerCaption>
       <entityField>#ENTITY</entityField>
@@ -26,7 +26,23 @@
           <entityField>VOLUME</entityField>
         </entityFieldLink>
         <entityFieldLink>
-          <name>745f1f28-49a0-4c35-9c1a-e442d15716dc</name>
+          <name>7261d58e-7534-4877-b5cd-f05201823711</name>
+          <entityField>OBJECT_TYPE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>af76713a-9f84-4f5c-965f-eba5c5ca3abc</name>
+          <entityField>OBJECT_ROWID</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+    <genericViewTemplate>
+      <name>Info</name>
+      <showDrawer v="true" />
+      <drawerCaption>Description</drawerCaption>
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>c2c10cf6-0ae8-4895-8160-766a845b5d17</name>
           <entityField>INFO</entityField>
         </entityFieldLink>
       </fields>
diff --git a/neonView/LetterEdit_view/LetterEdit_view.aod b/neonView/LetterEdit_view/LetterEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..7aba66bd4f4c32eadbcb5a5bb4ef17b03ba49462
--- /dev/null
+++ b/neonView/LetterEdit_view/LetterEdit_view.aod
@@ -0,0 +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.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>LetterEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <isSmall v="true" />
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>Template</name>
+      <editMode v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>5919fb0b-13d8-4cd3-8110-89722d97f4e1</name>
+          <entityField>DOCUMENT_TEMPLATE</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/MemberFilter_view/MemberFilter_view.aod b/neonView/MemberFilter_view/MemberFilter_view.aod
index 6a719214fa3920b2d2d60bbd6f9304580727a415..6cb554e3122427d6e8490a38aa55d541dd6e2069 100644
--- a/neonView/MemberFilter_view/MemberFilter_view.aod
+++ b/neonView/MemberFilter_view/MemberFilter_view.aod
@@ -14,17 +14,17 @@
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
-          <name>8bdd903b-0cd0-4327-bd24-3643d61d3de0</name>
-          <entityField>ICON</entityField>
-        </neonTableColumn>
-        <neonTableColumn>
-          <name>27e658bc-c134-4fef-a3a5-b172852d606e</name>
-          <entityField>ORGANISATION_NAME</entityField>
+          <name>8b6b6eeb-6246-414f-95f6-453b71e4a9db</name>
+          <entityField>IMAGE</entityField>
         </neonTableColumn>
         <neonTableColumn>
           <name>59e6aea1-9752-48b5-9d91-43edd0c1d670</name>
           <entityField>PERSON_FULL_NAME</entityField>
         </neonTableColumn>
+        <neonTableColumn>
+          <name>27e658bc-c134-4fef-a3a5-b172852d606e</name>
+          <entityField>ORGANISATION_NAME</entityField>
+        </neonTableColumn>
         <neonTableColumn>
           <name>bea82980-0639-405a-ab3f-92e45f97090e</name>
           <entityField>ROLE</entityField>
diff --git a/neonView/OfferEdit_view/OfferEdit_view.aod b/neonView/OfferEdit_view/OfferEdit_view.aod
index ddc985c18e01bf4f507eb9fda9e4bfb88077a6b1..3a765ca016e808592f7055ab94928d61812d3a07 100644
--- a/neonView/OfferEdit_view/OfferEdit_view.aod
+++ b/neonView/OfferEdit_view/OfferEdit_view.aod
@@ -20,6 +20,14 @@
           <name>1b323e80-820d-402a-98d2-f3649ec8e91f</name>
           <entityField>CONTACT_ID</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>c96356b6-d18f-4944-af5b-a646faed33c9</name>
+          <entityField>OBJECT_TYPE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>ff271393-be47-446c-b6b3-6c84dfa881e5</name>
+          <entityField>OBJECT_ROWID</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>767a9e6e-596b-4903-aa86-7bc0f66cd037</name>
           <entityField>STATUS</entityField>
@@ -40,10 +48,6 @@
           <name>7ab3eb65-b713-4251-9eb1-3119432565f5</name>
           <entityField>LANGUAGE</entityField>
         </entityFieldLink>
-        <entityFieldLink>
-          <name>ac6f81a2-5012-461a-bcf1-4534182b0973</name>
-          <entityField>SALESPROJECT_ID</entityField>
-        </entityFieldLink>
         <entityFieldLink>
           <name>7a9b0943-eb06-4b44-a111-ed4e2749da6a</name>
           <entityField>DELIVERYTERMS</entityField>
diff --git a/neonView/PersonMain_view/PersonMain_view.aod b/neonView/PersonMain_view/PersonMain_view.aod
index 04377a5d65098f9fc8b2cc7898adc34fc860b6eb..d7b85d058b7e60ea08089e418d8fedc3743ae0b5 100644
--- a/neonView/PersonMain_view/PersonMain_view.aod
+++ b/neonView/PersonMain_view/PersonMain_view.aod
@@ -49,6 +49,11 @@
       <entityField>OtherContacts</entityField>
       <view>ContactList_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>265efe97-d759-476c-9546-0f339d56474d</name>
+      <entityField>CommRestrictions</entityField>
+      <view>CommRestrictionFilter_view</view>
+    </neonViewReference>
     <neonViewReference>
       <name>5754fc3a-c81c-42ba-90ea-2859b10bb391</name>
       <entityField>LogHistoryConsumer</entityField>
diff --git a/neonView/PersonSimpleList_view/PersonSimpleList_view.aod b/neonView/PersonSimpleList_view/PersonSimpleList_view.aod
index 8e19ab83993f99e0cc98e64ff384e70aeeeb4c3c..2a722d60584ebeb2e459d0eb1fbdbcbf062b7bb7 100644
--- a/neonView/PersonSimpleList_view/PersonSimpleList_view.aod
+++ b/neonView/PersonSimpleList_view/PersonSimpleList_view.aod
@@ -2,6 +2,7 @@
 <neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
   <name>PersonSimpleList_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterable v="true" />
   <layout>
     <boxLayout>
       <name>layout</name>
diff --git a/neonView/SalesprojectClassScoreAttribute_view/SalesprojectClassScoreAttribute_view.aod b/neonView/SalesprojectClassScoreAttribute_view/SalesprojectClassScoreAttribute_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..b4be33213fddde4a13b792abccc9c06282f78b42
--- /dev/null
+++ b/neonView/SalesprojectClassScoreAttribute_view/SalesprojectClassScoreAttribute_view.aod
@@ -0,0 +1,29 @@
+<?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.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>SalesprojectClassScoreAttribute_view</name>
+  <title>Classification</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+  <children>
+    <scoreCardViewTemplate>
+      <name>ClassificationScore</name>
+      <entityField>#ENTITY</entityField>
+      <title>Classification score</title>
+      <fields>
+        <entityFieldLink>
+          <name>14afcf9d-d168-4962-8503-8d590b994b62</name>
+          <entityField>ClassificationResult</entityField>
+        </entityFieldLink>
+      </fields>
+    </scoreCardViewTemplate>
+    <neonViewReference>
+      <name>1af0e58c-db49-41c3-b7ce-d69498070699</name>
+      <entityField>#ENTITY</entityField>
+      <view>SalesprojectClassificationAttribute_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/SalesprojectClassificationAttribute_view/SalesprojectClassificationAttribute_view.aod b/neonView/SalesprojectClassificationAttribute_view/SalesprojectClassificationAttribute_view.aod
index 12ee08acd9ac1f2a9193b15bedb3c9a43fa9b699..3eeaf9dcdfd46cbe4f0dc6741ef7df459aa1abb5 100644
--- a/neonView/SalesprojectClassificationAttribute_view/SalesprojectClassificationAttribute_view.aod
+++ b/neonView/SalesprojectClassificationAttribute_view/SalesprojectClassificationAttribute_view.aod
@@ -1,14 +1,13 @@
 <?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.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
   <name>SalesprojectClassificationAttribute_view</name>
-  <title>Bewertung</title>
+  <title></title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
     <boxLayout>
       <name>layout</name>
-      <direction>HORIZONTAL</direction>
+      <direction>VERTICAL</direction>
       <maxDirectionElements v="2" />
-      <autoHeight v="false" />
     </boxLayout>
   </layout>
   <children>
@@ -18,8 +17,8 @@
       <view>ClassificationDrawer_view</view>
     </neonViewReference>
     <neonViewReference>
-      <name>e54114a1-3031-47f5-b27b-9774fc5225c5</name>
-      <entityField>Attributes</entityField>
+      <name>ead8bff9-3870-4956-a89b-19cafecf39fb</name>
+      <entityField>AttributeTree</entityField>
       <view>AttributeRelationTreeDrawer_view</view>
     </neonViewReference>
   </children>
diff --git a/neonView/SalesprojectTimeDocComp_view/SalesprojectTimeDocComp_view.aod b/neonView/SalesprojectFurtherInfo_view/SalesprojectFurtherInfo_view.aod
similarity index 81%
rename from neonView/SalesprojectTimeDocComp_view/SalesprojectTimeDocComp_view.aod
rename to neonView/SalesprojectFurtherInfo_view/SalesprojectFurtherInfo_view.aod
index 770985b37d98c8663bce5182ea1ab133a5139718..2aff0cef7c723beb6fd590c0b53c7209f7c80f64 100644
--- a/neonView/SalesprojectTimeDocComp_view/SalesprojectTimeDocComp_view.aod
+++ b/neonView/SalesprojectFurtherInfo_view/SalesprojectFurtherInfo_view.aod
@@ -1,6 +1,6 @@
 <?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.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
-  <name>SalesprojectTimeDocComp_view</name>
+  <name>SalesprojectFurtherInfo_view</name>
   <title>Further informations</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
@@ -17,9 +17,9 @@
       <view>TimetrackingDrawer_view</view>
     </neonViewReference>
     <neonViewReference>
-      <name>baccab92-37f1-4a33-9662-771323996adf</name>
-      <entityField>Documents</entityField>
-      <view>DocumentDrawer_view</view>
+      <name>5d00dd5a-7c80-41b4-a53e-29375be4f806</name>
+      <entityField>Timetrackings</entityField>
+      <view>TimetrackingAnalyses_view</view>
     </neonViewReference>
     <neonViewReference>
       <name>4dcc3fdd-6683-435c-95c1-a59597fc3e71</name>
diff --git a/neonView/SalesprojectMain_view/SalesprojectMain_view.aod b/neonView/SalesprojectMain_view/SalesprojectMain_view.aod
index b10c6e54996d3441746a4558e3851b6f50bd689d..d3967c08b2b64f507a61eb540387ef2f5c75011f 100644
--- a/neonView/SalesprojectMain_view/SalesprojectMain_view.aod
+++ b/neonView/SalesprojectMain_view/SalesprojectMain_view.aod
@@ -25,19 +25,24 @@
       <view>SalesprojectMilestoneSource_view</view>
     </neonViewReference>
     <neonViewReference>
-      <name>1cd0f7cc-bda9-40b1-ba46-7bdd28c0bef2</name>
+      <name>67659a20-068f-4522-ad33-2c35e29f929a</name>
       <entityField>#ENTITY</entityField>
-      <view>SalesprojectClassificationAttribute_view</view>
+      <view>SalesprojectClassScoreAttribute_view</view>
     </neonViewReference>
     <neonViewReference>
-      <name>16ef2fde-0b5f-4545-b065-80738b2388fc</name>
+      <name>3da4532a-716f-4ff2-a8bc-c29d4f7cb9fb</name>
       <entityField>#ENTITY</entityField>
-      <view>SalesprojectOfferForecast_view</view>
+      <view>SalesprojectOfferForecastChart_view</view>
     </neonViewReference>
     <neonViewReference>
-      <name>1ff890f4-58e1-441f-a714-1faabbf3744b</name>
+      <name>aa801bbd-df49-419b-959a-1664b2c31274</name>
       <entityField>#ENTITY</entityField>
-      <view>SalesprojectTimeDocComp_view</view>
+      <view>SalesprojectFurtherInfo_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>ccdbb3f1-6b18-4cdd-a0cb-22d8bddd7150</name>
+      <entityField>Documents</entityField>
+      <view>DocumentFilter_view</view>
     </neonViewReference>
     <neonViewReference>
       <name>6ed5fc92-1056-418f-a0b7-3d55414efe3a</name>
diff --git a/neonView/SalesprojectMemberActivity_view/SalesprojectMemberActivity_view.aod b/neonView/SalesprojectMemberActivity_view/SalesprojectMemberActivity_view.aod
index fbe4c90ef72d87bd581912c5f65b4f7b0aef6532..97d0bf8e350a4236539d53af6fe6968c81d70126 100644
--- a/neonView/SalesprojectMemberActivity_view/SalesprojectMemberActivity_view.aod
+++ b/neonView/SalesprojectMemberActivity_view/SalesprojectMemberActivity_view.aod
@@ -1,24 +1,26 @@
 <?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.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
   <name>SalesprojectMemberActivity_view</name>
-  <title>Projektteam und Aktivitäten</title>
+  <title>Activities</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
     <boxLayout>
       <name>layout</name>
+      <direction>VERTICAL</direction>
+      <maxDirectionElements v="0" />
       <autoHeight v="false" />
     </boxLayout>
   </layout>
   <children>
-    <neonViewReference>
-      <name>5e9b2286-227e-494d-a252-be29a50a093a</name>
-      <entityField>Activities</entityField>
-      <view>ActivityDrawer_view</view>
-    </neonViewReference>
     <neonViewReference>
       <name>ebf752f4-653d-4de3-9c81-c3e6ef692c48</name>
       <entityField>Members</entityField>
       <view>MemberDrawer_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>5e9b2286-227e-494d-a252-be29a50a093a</name>
+      <entityField>Activities</entityField>
+      <view>ActivityDrawer_view</view>
+    </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/SalesprojectMilestoneSource_view/SalesprojectMilestoneSource_view.aod b/neonView/SalesprojectMilestoneSource_view/SalesprojectMilestoneSource_view.aod
index af24daab68b399092e28a9f2eb2a119295bcea46..d6fe201f6f85dd9b83cad36a53eec49eba92358e 100644
--- a/neonView/SalesprojectMilestoneSource_view/SalesprojectMilestoneSource_view.aod
+++ b/neonView/SalesprojectMilestoneSource_view/SalesprojectMilestoneSource_view.aod
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
   <name>SalesprojectMilestoneSource_view</name>
-  <title>Meilensteine und Kontaktpunkte</title>
+  <title>Milestones</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
     <boxLayout>
diff --git a/neonView/SalesprojectOfferForecastChart_view/SalesprojectOfferForecastChart_view.aod b/neonView/SalesprojectOfferForecastChart_view/SalesprojectOfferForecastChart_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..01eb43892b0905d4af84d65541676cfa485ff47f
--- /dev/null
+++ b/neonView/SalesprojectOfferForecastChart_view/SalesprojectOfferForecastChart_view.aod
@@ -0,0 +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.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>SalesprojectOfferForecastChart_view</name>
+  <title>Forecast</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+      <direction>HORIZONTAL</direction>
+    </boxLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>d37e05d3-659f-4d96-9d86-277b4d95090b</name>
+      <entityField>#ENTITY</entityField>
+      <view>SalesprojectOfferForecast_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>58ff872a-234f-44ce-a670-99521cdcfd8d</name>
+      <entityField>SalesprojectForecastCharts</entityField>
+      <view>TurnoverChartForecast_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/SalesprojectOfferForecast_view/SalesprojectOfferForecast_view.aod b/neonView/SalesprojectOfferForecast_view/SalesprojectOfferForecast_view.aod
index 1dd424987fa8f479dfb515eb3ab28ab6dc8e619a..3352fab3622ad8c4090bd5dacb3769eeb0efd25e 100644
--- a/neonView/SalesprojectOfferForecast_view/SalesprojectOfferForecast_view.aod
+++ b/neonView/SalesprojectOfferForecast_view/SalesprojectOfferForecast_view.aod
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
   <name>SalesprojectOfferForecast_view</name>
-  <title>Angebot und Forecast</title>
+  <title>Forecast</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
     <boxLayout>
diff --git a/neonView/SalesprojectSourceFilter_view/SalesprojectSourceFilter_view.aod b/neonView/SalesprojectSourceFilter_view/SalesprojectSourceFilter_view.aod
index f3476905c33387705685cdc1e6a87bacc435d6e1..00440c6f2a3a5ec1a24f67a96c148d7300aaf2ab 100644
--- a/neonView/SalesprojectSourceFilter_view/SalesprojectSourceFilter_view.aod
+++ b/neonView/SalesprojectSourceFilter_view/SalesprojectSourceFilter_view.aod
@@ -14,6 +14,10 @@
       <autoNewRow v="true" />
       <entityField>#ENTITY</entityField>
       <columns>
+        <neonTableColumn>
+          <name>03bb4d6e-0371-4175-aaa2-43d43bd4ff60</name>
+          <entityField>ICON</entityField>
+        </neonTableColumn>
         <neonTableColumn>
           <name>4931127b-117d-4b1c-81ba-81ac2162f1b7</name>
           <entityField>ENTRYDATE</entityField>
@@ -23,7 +27,7 @@
           <entityField>SOURCE</entityField>
         </neonTableColumn>
         <neonTableColumn>
-          <name>e5660207-7b70-4ac6-b5b5-b87a54d5b032</name>
+          <name>304ed9dd-0f3d-45b2-9195-cc145775f16d</name>
           <entityField>INFO</entityField>
         </neonTableColumn>
       </columns>
diff --git a/neonView/TaskFilter_view/TaskFilter_view.aod b/neonView/TaskFilter_view/TaskFilter_view.aod
index 36538160f32f47a8e26957c0e5fec4b32d4fd0e5..3905f143e7f2d0e26ee1035e00c624014db7fc81 100644
--- a/neonView/TaskFilter_view/TaskFilter_view.aod
+++ b/neonView/TaskFilter_view/TaskFilter_view.aod
@@ -51,6 +51,10 @@
           <name>3cd319ea-5a06-409c-a7ce-1c87beff62d2</name>
           <entityField>PRIORITY_ICON</entityField>
         </neonTableColumn>
+        <neonTableColumn>
+          <name>14749e3a-9b53-40d7-90ba-d6681978b2ea</name>
+          <entityField>TYPE</entityField>
+        </neonTableColumn>
         <neonTableColumn>
           <name>591cd079-a8e9-49aa-8a2d-afb643aef079</name>
           <entityField>SUBJECT</entityField>
@@ -73,6 +77,9 @@
     <treeTableViewTemplate>
       <name>TasksTreeTable</name>
       <favoriteActionGroup1>tableActions</favoriteActionGroup1>
+      <defaultGroupFields>
+        <element>TYPE</element>
+      </defaultGroupFields>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>
diff --git a/neonView/TaskPreview_view/TaskPreview_view.aod b/neonView/TaskPreview_view/TaskPreview_view.aod
index c9c0f3de9c6e3d68e0c1dc6ebd087b106832b759..54a1ed4e5d71c2382a0cf0355e51964edcc01ec2 100644
--- a/neonView/TaskPreview_view/TaskPreview_view.aod
+++ b/neonView/TaskPreview_view/TaskPreview_view.aod
@@ -14,7 +14,7 @@
       <iconField>PRIORITY_ICON</iconField>
       <titleField>SUBJECT</titleField>
       <subtitleField>CODE</subtitleField>
-      <descriptionField>STATUS</descriptionField>
+      <descriptionField>TYPE</descriptionField>
       <favoriteAction1>newActivity</favoriteAction1>
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
@@ -23,6 +23,10 @@
       <showDrawer v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
+        <entityFieldLink>
+          <name>d054335b-7a54-4380-a543-54c4ffc643c4</name>
+          <entityField>STATUS</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>f988850e-53ed-443d-bd3d-16946eba656e</name>
           <entityField>START_DATE</entityField>
diff --git a/neonView/TimetrackingAnalysesDrawer_view/TimetrackingAnalysesDrawer_view.aod b/neonView/TimetrackingAnalysesDrawer_view/TimetrackingAnalysesDrawer_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..54a798e53dfc64fbb47782b8b243471cef54a469
--- /dev/null
+++ b/neonView/TimetrackingAnalysesDrawer_view/TimetrackingAnalysesDrawer_view.aod
@@ -0,0 +1,18 @@
+<?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.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>TimetrackingAnalysesDrawer_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <drawerLayout>
+      <name>layout</name>
+      <layoutCaption>Time</layoutCaption>
+    </drawerLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>8b5f7d80-65fa-477c-bf74-65aae4befe96</name>
+      <entityField>#ENTITY</entityField>
+      <view>TimetrackingAnalyses_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/TimetrackingAnalyses_view/TimetrackingAnalyses_view.aod b/neonView/TimetrackingAnalyses_view/TimetrackingAnalyses_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..73b0197c31dc7ad10cab5db81584d11943e72bee
--- /dev/null
+++ b/neonView/TimetrackingAnalyses_view/TimetrackingAnalyses_view.aod
@@ -0,0 +1,26 @@
+<?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.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>TimetrackingAnalyses_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <groupLayout>
+      <name>layout</name>
+    </groupLayout>
+  </layout>
+  <children>
+    <singleDataChartViewTemplate>
+      <name>Pie</name>
+      <chartType>PIE</chartType>
+      <xAxis>YEAR</xAxis>
+      <yAxis>MINUTES</yAxis>
+      <entityField>#ENTITY</entityField>
+    </singleDataChartViewTemplate>
+    <multiDataChartViewTemplate>
+      <name>MultiDataChart</name>
+      <chartType>BAR</chartType>
+      <xAxis>DATE</xAxis>
+      <yAxis>MINUTES</yAxis>
+      <entityField>#ENTITY</entityField>
+    </multiDataChartViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/TimetrackingPreview_view/TimetrackingPreview_view.aod b/neonView/TimetrackingPreview_view/TimetrackingPreview_view.aod
index bbd4c498bd926c7c73a75d483b9a360dd4d012e2..1ef0b41db42040c914b5bfc041ba6878cdfe2399 100644
--- a/neonView/TimetrackingPreview_view/TimetrackingPreview_view.aod
+++ b/neonView/TimetrackingPreview_view/TimetrackingPreview_view.aod
@@ -9,25 +9,33 @@
   </layout>
   <children>
     <genericViewTemplate>
-      <name>TimetrackingInfo_template</name>
+      <name>Details</name>
       <showDrawer v="true" />
-      <drawerCaption>Information</drawerCaption>
+      <drawerCaption>Details</drawerCaption>
       <entityField>#ENTITY</entityField>
       <fields>
-        <entityFieldLink>
-          <name>64005996-e735-4c5d-bdb7-29aaf8851107</name>
-          <entityField>DATE</entityField>
-        </entityFieldLink>
         <entityFieldLink>
           <name>835197c0-2e0c-4989-8d5b-80ccd064d55e</name>
           <entityField>CONTACT_ID</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>64005996-e735-4c5d-bdb7-29aaf8851107</name>
+          <entityField>DATE</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>25921a31-5563-4a74-aa7e-67d660c60f0b</name>
           <entityField>MINUTES</entityField>
         </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+    <genericViewTemplate>
+      <name>Info</name>
+      <showDrawer v="true" />
+      <drawerCaption>Description</drawerCaption>
+      <entityField>#ENTITY</entityField>
+      <fields>
         <entityFieldLink>
-          <name>54123bdf-3008-4597-9f30-fc2877a274f7</name>
+          <name>76a33027-65cc-4943-8e96-20b35880a3cd</name>
           <entityField>INFO</entityField>
         </entityFieldLink>
       </fields>
diff --git a/neonView/TimetrackingScore_view/TimetrackingScore_view.aod b/neonView/TimetrackingScore_view/TimetrackingScore_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..a52446d439af1b14db96512e2f345f23a968a2ca
--- /dev/null
+++ b/neonView/TimetrackingScore_view/TimetrackingScore_view.aod
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>TimetrackingScore_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+  <children>
+    <scoreCardViewTemplate>
+      <name>time</name>
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>56f043bf-6ff2-45c0-af48-1c4bf16456cf</name>
+          <entityField>TOTALTIME</entityField>
+        </entityFieldLink>
+      </fields>
+    </scoreCardViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/TurnoverChartForecast_view/TurnoverChartForecast_view.aod b/neonView/TurnoverChartForecast_view/TurnoverChartForecast_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..f9a11b4fb652cb3fe115241ac977110d7e364a04
--- /dev/null
+++ b/neonView/TurnoverChartForecast_view/TurnoverChartForecast_view.aod
@@ -0,0 +1,77 @@
+<?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.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
+  <name>TurnoverChartForecast_view</name>
+  <title>Forecast</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <dashletConfigurations>
+    <neonDashletConfiguration>
+      <name>TurnoverDashlet</name>
+      <title>Turnover</title>
+      <fragment>Turnover/full</fragment>
+      <singleton v="true" />
+      <storeRoles>
+        <element>INTERNAL_ADMINISTRATOR</element>
+        <element>INTERNAL_DASHBOARDSTOREADMIN</element>
+      </storeRoles>
+      <icon>VAADIN:CHART</icon>
+      <categories>
+        <neonDashletCategory>
+          <name>turnover</name>
+          <title>Turnover</title>
+        </neonDashletCategory>
+      </categories>
+    </neonDashletConfiguration>
+  </dashletConfigurations>
+  <layout>
+    <groupLayout>
+      <name>layout</name>
+    </groupLayout>
+  </layout>
+  <children>
+    <multiDataChartViewTemplate>
+      <name>ColumnChart</name>
+      <chartType>COLUMN</chartType>
+      <xAxis>X</xAxis>
+      <yAxis>Y</yAxis>
+      <parentField>PARENT</parentField>
+      <categoryField>CATEGORY</categoryField>
+      <entityField>#ENTITY</entityField>
+    </multiDataChartViewTemplate>
+    <multiDataChartViewTemplate>
+      <name>LineChart</name>
+      <chartType>LINE</chartType>
+      <xAxis>X</xAxis>
+      <yAxis>Y</yAxis>
+      <parentField>PARENT</parentField>
+      <categoryField>CATEGORY</categoryField>
+      <entityField>#ENTITY</entityField>
+    </multiDataChartViewTemplate>
+    <multiDataChartViewTemplate>
+      <name>AreaChart</name>
+      <chartType>AREA</chartType>
+      <xAxis>X</xAxis>
+      <yAxis>Y</yAxis>
+      <parentField>PARENT</parentField>
+      <categoryField>CATEGORY</categoryField>
+      <entityField>#ENTITY</entityField>
+    </multiDataChartViewTemplate>
+    <multiDataChartViewTemplate>
+      <name>BarChart</name>
+      <chartType>BAR</chartType>
+      <xAxis>X</xAxis>
+      <yAxis>Y</yAxis>
+      <parentField>PARENT</parentField>
+      <categoryField>CATEGORY</categoryField>
+      <entityField>#ENTITY</entityField>
+    </multiDataChartViewTemplate>
+    <multiDataChartViewTemplate>
+      <name>SplineChart</name>
+      <chartType>SPLINE</chartType>
+      <xAxis>X</xAxis>
+      <yAxis>Y</yAxis>
+      <parentField>PARENT</parentField>
+      <categoryField>CATEGORY</categoryField>
+      <entityField>#ENTITY</entityField>
+    </multiDataChartViewTemplate>
+  </children>
+</neonView>
diff --git a/process/ActivityTask_lib/process.js b/process/ActivityTask_lib/process.js
index d502802ce34c25af3f60529f0861dd85fd1b758e..174dfc5ff20cada09eeae3c7f92fa5802f1907cc 100644
--- a/process/ActivityTask_lib/process.js
+++ b/process/ActivityTask_lib/process.js
@@ -129,9 +129,14 @@ TaskUtils.getTypeAttributes = function(pType)
     return JSON.parse(KeywordUtils.getAttributeRelation(pType, $KeywordRegistry.taskType(), "attributes", "[]"));
 }
 
-TaskUtils.getTypeStatusKeyword = function(pType)
+TaskUtils.getAvailableStatus = function(pType)
 {
-    return KeywordUtils.getAttributeRelation(pType, $KeywordRegistry.taskType(), "status", $KeywordRegistry.taskStatus());
+    return JSON.parse(KeywordUtils.getAttributeRelation(pType, $KeywordRegistry.taskType(), "availableStatus", ""));
+}
+
+TaskUtils.getDefaultStatus = function(pType)
+{
+    return KeywordUtils.getAttributeRelation(pType, $KeywordRegistry.taskType(), "defaultStatus", "");
 }
 
 TaskUtils.getShowCode = function(pType)
@@ -139,10 +144,9 @@ TaskUtils.getShowCode = function(pType)
     return KeywordUtils.getAttributeRelation(pType, $KeywordRegistry.taskType(), "showCode", true);
 }
 
-TaskUtils.getStatusIcon = function(pType, pStatus)
+TaskUtils.getStatusIcon = function(pStatus)
 {
-    var status = TaskUtils.getTypeStatusKeyword(pType)
-    return KeywordUtils.getAttributeRelation(pStatus, status, "icon", "NEON:STATUS_NOT_STARTED");
+    return KeywordUtils.getAttributeRelation(pStatus, $KeywordRegistry.taskStatus(), "icon", "NEON:STATUS_NOT_STARTED");
 }
 
 /**
diff --git a/process/Campaign_lib/process.js b/process/Campaign_lib/process.js
index 36027c8eab59335e45a24aab12db5b811853be0b..2f4ca9d4d11839ea4ab8db73ff94f05003737433 100644
--- a/process/Campaign_lib/process.js
+++ b/process/Campaign_lib/process.js
@@ -204,7 +204,7 @@ CampaignUtils.getCampaignStartDate = function(pCapmaignId)
 {
     let campaignIdCondition = SqlCondition.begin()
                                          .andPrepare("CAMPAIGNSTEP.CAMPAIGN_ID", pCapmaignId);
-    return db.cell(campaignIdCondition.buildSql("SELECT DATE_START, SORTING FROM ADITO.CAMPAIGNSTEP", "1=2", "order by SORTING ASC"));
+    return db.cell(campaignIdCondition.buildSql("SELECT DATE_START, SORTING FROM CAMPAIGNSTEP", "1=2", "order by SORTING ASC"));
 }
 
 /**
diff --git a/process/Context_lib/process.js b/process/Context_lib/process.js
index 4acb61c1fa2ec39af73cbaf26ffa5e7eddf08117..ff5df134798558eafcd98923670be52beb28cafa 100644
--- a/process/Context_lib/process.js
+++ b/process/Context_lib/process.js
@@ -1,3 +1,5 @@
+import("system.logging");
+import("system.db");
 import("system.translate");
 import("system.project");
 import("system.vars");
@@ -85,10 +87,11 @@ ContextUtils.getContextConsumer = function(pContextId)
  * @param {String[]} [pExclusiveContexts] contextIds that shall not be included (so this is a additional filter to the pFilter param)
  * @param {Boolean} [pUseExclusives=false] decides whether the items in pExclusiveContexts are excluded (false) or
  *                      everything that is not in pExclusiveContexts is excluded (true)
+ * @param {String[]} [pWhitelist=undefined] only allowed contexts
  *
  * @return {String[][]} the contexts [[contextId, contextName, contextTitle], [... ], ...]
  */
-ContextUtils.getContexts = function(pFilter, pExclusiveContexts, pUseExclusives)
+ContextUtils.getContexts = function(pFilter, pExclusiveContexts, pUseExclusives, pWhitelist)
 {
     if (pFilter == undefined)
         pFilter = false;
@@ -114,6 +117,13 @@ ContextUtils.getContexts = function(pFilter, pExclusiveContexts, pUseExclusives)
             return true;
         });
     }
+    
+    if (pWhitelist)
+    {
+        contexts = contexts.filter(function(pContext) {
+            return (pWhitelist.indexOf(pContext[0]) >= 0);
+        });
+    }
 
     return contexts.map(ContextUtils._contextDataMapping).sort(function(pContext1, pContext2)
         {
@@ -436,6 +446,23 @@ ContextUtils.getNameSql = function(pContextId, pRowId)
         return "select 1 from person where 1=2";
 }
 
+/**
+ * TODO: !!!temporary function until you can get fields from another Entity!!!
+ */
+ContextUtils.getContactId = function(pContextId, pRowId)
+{
+    var selectMap = ContextUtils.getSelectMap ()
+    if (selectMap[pContextId] != undefined && selectMap[pContextId].contactIdField)
+    {
+        
+        return db.cell(SqlCondition.begin().andPrepare(selectMap[pContextId].getFullIdField(), pRowId)
+                                   .buildSql("select " + selectMap[pContextId].contactIdField
+                                            + " from " + selectMap[pContextId].tableName, "1 = 2"));
+    }
+    else
+        return "";
+}
+
 /**
  * TODO: !!!temporary function until you can get fields from another Entity!!!
  */
diff --git a/process/DocumentTemplate_lib/process.js b/process/DocumentTemplate_lib/process.js
index 209f427347d35b9dc4a7f6185953ef17cf8103fc..668d7bae7b93b8062d1fba687085232f19db3989 100644
--- a/process/DocumentTemplate_lib/process.js
+++ b/process/DocumentTemplate_lib/process.js
@@ -1,3 +1,5 @@
+import("system.neon");
+import("system.logging");
 import("Employee_lib");
 import("KeywordRegistry_basic");
 import("Document_lib");
@@ -17,12 +19,14 @@ import("system.mail");
 import("Keyword_lib");
 
 /**
- * Object for working with document templates
+ * Object for working with document templates, holds the content and type of the template.
+ * Provides functions to replace placeholders in the content.
  */
-function DocumentTemplate (pTemplateContent, pType)
+function DocumentTemplate (pTemplateContent, pType, pFilename)
 {
     this.content = pTemplateContent;
     this.type = pType;
+    this.filename = pFilename;
 }
 
 /**
@@ -30,32 +34,32 @@ function DocumentTemplate (pTemplateContent, pType)
  * the correct method for replacing the placeholders can be chosen
  */
 DocumentTemplate.types = {
-    TXT : "TXT",
-    HTML : "HTML",
-    EML : "EML",
-    ODT : "ODT",
-    DOCX : "DOCX"
+    TXT : "txt",
+    HTML : "html",
+    EML : "eml",
+    ODT : "odt",
+    DOCX : "docx"
 };
 
+/**
+ * Loads the content of a document template and creates a new DocumentTemplate object with that.
+ * 
+ * @param {String} pTemplateId id of the template
+ * 
+ * @return {DocumentTemplate} template object
+ */
 DocumentTemplate.loadTemplate = function (pTemplateId)
 {
     var alias = "_____SYSTEMALIAS";
     var templateDocument = db.getBinaryMetadata("DOCUMENTTEMPLATE", "DOCUMENT", pTemplateId, false, alias, null);
     if (!templateDocument[0])
-        return null;
+        return new DocumentTemplate();
     var binaryId = templateDocument[0][db.BINARY_ID];
-    var type = DocumentUtil.getFileExtensionFromUpload(templateDocument[0][db.BINARY_FILENAME]);
-    var typeMap = {
-        txt : DocumentTemplate.types.TXT,
-        html : DocumentTemplate.types.HTML,
-        eml : DocumentTemplate.types.EML,
-        odt : DocumentTemplate.types.ODT,
-        docx : DocumentTemplate.types.DOCX
-    };
-    type = typeMap[type]; //choose the document type depending on the file extension
+    var filename = templateDocument[0][db.BINARY_FILENAME];
+    var type = DocumentUtil.getFileExtensionFromUpload(filename);
     if (binaryId)
-        return new DocumentTemplate(util.decodeBase64String(db.getBinaryContent(binaryId, alias)), type);
-    return null;
+        return new DocumentTemplate(db.getBinaryContent(binaryId, alias), type, filename);
+    return new DocumentTemplate();
 }
 
 DocumentTemplate.prototype.toString = function ()
@@ -64,9 +68,12 @@ DocumentTemplate.prototype.toString = function ()
 }
 
 /**
- * returns the template content with replaced placeholders
+ * Returns the template content with replaced placeholders by choosing the right
+ * replace function for the type.
  * 
  * @param {Object} pReplacements map, the structure is {placeholder : value}
+ * 
+ * @return {String} the replaced content
  */
 DocumentTemplate.prototype.getReplacedContent = function (pReplacements)
 {
@@ -100,10 +107,30 @@ DocumentTemplate.prototype.getReplacedContentByContactId = function (pContactId)
     return this.getReplacedContent(replacements);
 }
 
+/**
+ * replaces placeholders for EML
+ * 
+ * @param {Object} pReplacements mapping with replacements for every placeholder
+ * 
+ * @return {String} the replaced content
+ */
 DocumentTemplate.prototype._getReplacedEML = function (pReplacements)
 {
-    var email = mail.parseRFC(this.content);
-    
+    var email = mail.parseRFC(this.content, "UTF-8");
+    var htmlText = email[mail.MAIL_HTMLTEXT];
+    return text.replaceAll(htmlText, pReplacements);
+}
+
+/**
+ * replaces placeholders for plain text
+ * 
+ * @param {Object} pReplacements mapping with replacements for every placeholder
+ * 
+ * @return {String} the replaced content
+ */
+DocumentTemplate.prototype._getReplacedText = function (pReplacements)
+{
+    return text.replaceAll(this.content, pReplacements);
 }
 
 
@@ -115,14 +142,14 @@ DocumentTemplate.prototype._getReplacedEML = function (pReplacements)
  *
  * @return {String} base64-encoded replaced file
  */
-DocumentTemplate.prototype._getReplacedODT = function (pAddrDataCondition, pAddressID)
+DocumentTemplate.prototype._getReplacedODT = function (pReplacements)
 {
     //save the file on the server so it can be unzipped via pack.getFromZip
     var serverFilePath = vars.get("$sys.servertemp") + "/clientid_" + vars.get("$sys.clientid")
-        + "/" + util.getNewUUID();
-
+        + "/" + util.getNewUUID() + "/" + this.filename.replace(/\\/g, "/");
+    
     fileIO.storeData(serverFilePath, this.content, util.DATA_BINARY, false);
-    if (!_replaceODTFile(pAddrDataCondition, serverFilePath, pAddressID))
+    if (!_replaceODTFile(pReplacements, serverFilePath))
         return null;
 
     var replacedFileData = fileIO.getData(serverFilePath, util.DATA_BINARY);
@@ -139,20 +166,13 @@ DocumentTemplate.prototype._getReplacedODT = function (pAddrDataCondition, pAddr
     *
     * @return {Boolean}
     */
-    function _replaceODTFile (pCondition, pODTFileName, pAddressID)
+    function _replaceODTFile (pReplacements, pODTFileName)
     {
-        // Configuration für die Platzhalter
-        var config = PlaceholderUtils.getPlaceholders(); //["RELATIONID","fieldname","RELATION.RELATIONID"]
         var senderRelId = EmployeeUtils.getCurrentContactId();
         if (senderRelId == null)
             return false;
-        var addrdata = getAddressesData(pCondition, config, senderRelId, pAddressID);
-        if (addrdata.length > 1)
+        if (Object.keys(pReplacements).length)
         {
-            var relationids = [];
-            for (let i = 1; i < addrdata.length; i++ )	
-                relationids.push(addrdata[i][0]);
-
             // ersetzen Platzhalter in content.xml
 
             var textS = util.decodeBase64String(pack.getFromZip(pODTFileName, "content.xml"));
@@ -161,26 +181,22 @@ DocumentTemplate.prototype._getReplacedODT = function (pAddrDataCondition, pAddr
             var body = textS.substring( bodybegin, bodyend );
             var lastbody = textS.substr( bodyend );
             textS = textS.substring( 0, bodybegin );
-            for (let i = 1; i < addrdata.length; i++)
+            for (let placeholder in pReplacements)
             {
-                var bulkbody = body;
-                for (let ii = 0; ii < addrdata[0].length; ii++)
-                {
-                    bulkbody = bulkbody.replace(new RegExp(getDefaultODTplaceholer(addrdata[0][ii]), "ig"),
-                        addrdata[i][ii].replace(/\n/ig, "<text:line-break/>").replace(/&/ig, "&amp;") );
-                }
-                textS += bulkbody;
+                body = body.replace(placeholder,
+                    pReplacements[placeholder].replace(/\n/ig, "<text:line-break/>").replace(/&/ig, "&amp;"), "ig");
             }
-            textS +=  lastbody;
-            pack.addToZip(pODTFile, "content.xml", util.encodeBase64String(textS))
+            textS += body;
+            textS += lastbody;
+            pack.addToZip(pODTFileName, "content.xml", util.encodeBase64String(textS))
             // ersetzen Platzhalter in styles.xml
             var styles = util.decodeBase64String(pack.getFromZip(pODTFileName, "styles.xml"));
-            for (let i = 0; i < addrdata[0].length; i++)
+            for (let placeholder in pReplacements)
             {
-                styles = styles.replace(new RegExp( getDefaultODTplaceholer(addrdata[0][i]), "ig"),
-                    addrdata[1][i].replace(/\n/ig, "<text:line-break/>").replace(/&/ig, "&amp;"));
+                styles = styles.replace(placeholder,
+                    pReplacements[placeholder].replace(/\n/ig, "<text:line-break/>").replace(/&/ig, "&amp;"), "ig");
             }
-            pack.addToZip(pODTFile, "styles.xml", util.encodeBase64String(styles));
+            pack.addToZip(pODTFileName, "styles.xml", util.encodeBase64String(styles));
             return true;
         }
         return false;
@@ -199,7 +215,7 @@ DocumentTemplate.prototype._getReplacedDOCX = function (pReplacements)
     //this is executed as a process because of better performance
     var documentData = process.execute("getDocxDocument_serverProcess", {
         templateb64: this.content,
-        placeholderConfig: JSON.stringify(pReplacements) //process.execute is only able to handle strings
+        placeholderConfig: JSON.stringify(PlaceholderUtils.removePreAndPostFix(pReplacements)) //process.execute is only able to handle strings
     });
 
     return documentData;
@@ -212,6 +228,9 @@ function DocumentTemplateUtils () {}
 
 /**
  * loads a document template and replaces the placeholders
+ * 
+ * @param {String} pTemplateId id of the document template
+ * @param {String} pContactId the contact whose address data is used
  */
 DocumentTemplateUtils.getSingleReplacedDocument = function (pTemplateId, pContactId)
 {
@@ -219,22 +238,20 @@ DocumentTemplateUtils.getSingleReplacedDocument = function (pTemplateId, pContac
     return template.getReplacedTextByContactId(pContactId);
 }
 
-/**
- * @return {Object} map with placeholders and their definition
- */
-DocumentTemplateUtils._getPlaceholderConfig = function ()
-{
-    return KeywordData.getKeywordAttributeRelations($KeywordRegistry.textPlaceholder());
-}
-
 
 function PlaceholderUtils () {}
 
+/**
+ * placeholder types, defines how the value is acquired
+ */
 PlaceholderUtils.types = {
     ADDRESSFORMAT : "ADDRESSFORMAT",
     SQLPART : "SQLPART",
     SQLPARTFUNCTION : "SQLPARTFUNCTION"
 };
+/**
+ * placeholder targets, defines whose data is used
+ */
 PlaceholderUtils.targets = {
     RECIPIENT : "RECIPIENT",
     SENDER : "SENDER",
@@ -247,12 +264,39 @@ PlaceholderUtils.targets = {
  */
 PlaceholderUtils.formatPlaceholder = function (pPlaceholder)
 {
-    return "@@" + pPlaceholder + "@@";
+    return "{@" + pPlaceholder + "@}";
 }
 
+/**
+ * Removes the prefix and postfix from the pReplacements map. This is required for the docxTemplater
+ * where they are added separately
+ */
+PlaceholderUtils.removePreAndPostFix = function (pReplacements)
+{
+    var unformattedReplacements = {};
+    for (let placeholder in pReplacements)
+    {
+        let unformatted = placeholder.slice(2, -2);
+        unformattedReplacements[unformatted] = pReplacements[placeholder]
+    }
+    return unformattedReplacements;
+}
 
+/**
+ * gets the placeholder configuration
+ * 
+ * @return {Array} array of placeholders
+ */
 PlaceholderUtils.getPlaceholders = function () 
 {
+    /**
+     * represents a placeholder
+     * 
+     * @param {String} pName name of the placeholder (without prefix and postfix)
+     * @param {String} pType type of the placeholder, see PlaceholderUtils.types
+     * @param {String|Function} pValueDef string or function (depends on the type) defining the value
+     * @param {String} [pTarget] what contact is used to get the data, see PlaceholderUtils.targets
+     */
     function Placeholder (pName, pType, pValueDef, pTarget) 
     {
         this.placeholderName = PlaceholderUtils.formatPlaceholder(pName);
@@ -293,3 +337,16 @@ PlaceholderUtils.getPlaceholders = function ()
     
     return placeholders;
 }
+
+/**
+ * functions for working with letters
+ */
+function LetterUtils () {}
+
+LetterUtils.openNewLetter = function (pContactId)
+{
+    var params = {
+        "ContactId_param" : pContactId
+    };
+    neon.openContext("Letter", "LetterEdit_view", null, neon.OPERATINGSTATE_NEW, params);
+}
\ No newline at end of file
diff --git a/process/Email_lib/process.js b/process/Email_lib/process.js
index c43437496fa0846d3a518ca3a744fa2fea84c6df..a6ad5a29ba938a3f1fa4e94bbe9db7b1661ea0cf 100644
--- a/process/Email_lib/process.js
+++ b/process/Email_lib/process.js
@@ -1,3 +1,4 @@
+import("system.logging");
 import("system.translate");
 import("system.text");
 import("system.db");
@@ -27,7 +28,7 @@ EmailUtils.openMailTemplate = function (pToRecipients, pSenderContactId, pTempla
     if (pTemplateId)
         email.setTemplate(pTemplateId, pRecipientContactId);
 
-    email.downloadEML();
+    email.openMail();
 }
 
 /**
@@ -124,6 +125,7 @@ Email.prototype.getMailtoUrl = function ()
  */
 Email.prototype.getRFCmail = function ()
 {
+    logging.log(this.body)
     var ENCODING = "UTF-8";
     var mailId = mail.newMail();
 
diff --git a/process/KeywordRegistry_basic/process.js b/process/KeywordRegistry_basic/process.js
index f97b3dd58f8ae7b669e05217b93612467b14057f..39b295bbd9d4e28c27a554f212252b7c73af4f28 100644
--- a/process/KeywordRegistry_basic/process.js
+++ b/process/KeywordRegistry_basic/process.js
@@ -104,4 +104,6 @@ $KeywordRegistry.personGender$other = function(){return "o";};
 $KeywordRegistry.permissionCondType = function(){return "PermissionCondType";};
 $KeywordRegistry.permissionAccessType = function(){return "PermissionAccessType";};
 
-$KeywordRegistry.textPlaceholder = function(){return "textPlaceholder";};
\ No newline at end of file
+$KeywordRegistry.textPlaceholder = function(){return "textPlaceholder";};
+
+$KeywordRegistry.communicationMediumCampaign = function(){return "CommunicationMediumCampaign";};
\ No newline at end of file
diff --git a/process/Offer_lib/process.js b/process/Offer_lib/process.js
index 775014bc6015e74f03439a0f807c51e6da9b34c0..1fb2ad442fd2b6f4800dc0cfb2cb9f4500b2c69c 100644
--- a/process/Offer_lib/process.js
+++ b/process/Offer_lib/process.js
@@ -67,12 +67,15 @@ OfferUtils.isEditable = function(status) {
 /**
  * Create a new offer and open the offer context in NEW-mode
  */
-OfferUtils.createNewOffer = function(pSalesprojectId, pRelationId)
+OfferUtils.createNewOffer = function(pContextId, pRowId, pRelationId)
 {
     var params = {};
     
-    if (pSalesprojectId)
-        params["SalesprojectId_param"] = pSalesprojectId;
+    if (pRowId && pContextId)
+    {
+        params["ObjectRowId_param"] = pRowId;
+        params["ObjectType_param"] = pContextId;
+    }
     
     if (pRelationId)
         params["ContactId_param"] = pRelationId;
@@ -106,8 +109,9 @@ OfferUtils.openOfferReport = function (pOfferID)
         "VAT", 
         sqlUtil.isNull("VERSNR", "0"),
         sqlUtil.isNull("OFFERCODE", "0"), 
-        "OBJECT_ROWID", //12
-        "FOOTER" //13
+        "OBJECT_TYPE", //12
+        "OBJECT_ROWID", //13
+        "FOOTER" //14
     ];
    
     var offerSql = SqlCondition.begin()
@@ -196,7 +200,7 @@ OfferUtils.openOfferReport = function (pOfferID)
             item[5],        //itemposition
             item[6],        //productcode
             offerData[8],   //header 
-            offerData[13],   //footer 
+            offerData[14],   //footer 
             text.formatDouble(item[9], translate.text("#,##0"), true),          //quantity
             text.formatDouble(item[10], translate.text("#,##0.00"), true),      //price
             text.formatDouble(item[11], translate.text("0.00"), true),          //discount
@@ -296,7 +300,7 @@ OfferUtils.openOfferReport = function (pOfferID)
  * @param {String} [pPaymentTerm=""]
  * @param {String} [pSalesprojectId=""]
  */
-OfferUtils.copyOffer = function (pOfferId, pContactId, pLanguage, pCurrency, pHeader, pFooter, pDeliveryTerm, pPaymentTerm, pSalesprojectId)
+OfferUtils.copyOffer = function (pOfferId, pContactId, pLanguage, pCurrency, pHeader, pFooter, pDeliveryTerm, pPaymentTerm, pObjectType, pRowId)
 {
     var params = {
         "ContactId_param" : pContactId,
@@ -307,7 +311,8 @@ OfferUtils.copyOffer = function (pOfferId, pContactId, pLanguage, pCurrency, pHe
         "OfferFooter_param" : pFooter || "",
         "OfferDeliveryTerm_param" : pDeliveryTerm || "",
         "OfferPaymentTerm_param" : pPaymentTerm || "",
-        "SalesprojectId_param" : pSalesprojectId || ""
+        "ObjectType_param" : pObjectType || "",
+        "ObjectRowId_param" : pRowId || ""
     };
     neon.openContext("Offer", null, null, neon.OPERATINGSTATE_NEW, params);
 }
diff --git a/process/Sql_lib/process.js b/process/Sql_lib/process.js
index 0818e818157e53e530f7d6fef22d6ec40220aae2..29b27316f3b33d9fadf8e53fc6d4c2e2a16a5892 100644
--- a/process/Sql_lib/process.js
+++ b/process/Sql_lib/process.js
@@ -115,8 +115,13 @@ SqlCondition.prototype.or = function(cond) {
  * @return {SqlCondition} current SqlCondition-object
  */
 SqlCondition.prototype.andAttachPrepared = function(preparedObj) {
-    this.preparedValues = this.preparedValues.concat(preparedObj[1]);
-    return this.and(preparedObj[0]);
+    if (preparedObj)
+    {
+        this.preparedValues = this.preparedValues.concat(preparedObj[1]);
+        return this.and(preparedObj[0]);
+    }
+    
+    return this;
 }
 
 /**
@@ -125,8 +130,13 @@ SqlCondition.prototype.andAttachPrepared = function(preparedObj) {
  * @return {SqlCondition} current SqlCondition-object
  */
 SqlCondition.prototype.orAttachPrepared = function(preparedObj) {
-    this.preparedValues.push(preparedObj[1]);
-    return this.or(preparedObj[0]);
+    if (preparedObj)
+    {
+        this.preparedValues = this.preparedValues.concat(preparedObj[1]);
+        return this.or(preparedObj[0]);
+    }
+    
+    return this;
 }
 
 /**
@@ -289,6 +299,74 @@ SqlCondition.prototype.orPrepareVars = function(field, variable, cond, fieldType
     return this;
 }
 
+/**
+ * creates a IN-statement out of a field and an array of values.
+ * Be carefull with a big number of values. This may have a bad performance.
+ * 
+ * @param {String | String[]} field the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" or as array with column-alias: ["ORGANISATION", "NAME", "myorgAlias"]
+ * @param {String[]} values the value that shall be set into the prepared statement
+ * @param {Numeric | Boolean} [fieldType] SQL-column-type; if the fieldType is not given it's loaded automatically;
+ *                              The loaded type is cached if no type is given. So it is also safe to use this in a loop.
+ *                              e.g.
+ *                              for (...) {
+ *                                  cond.andPrepare("SALESPROJECT_CLASSIFICATION.TYPE", entry, "# <> ?")
+ *                              }
+ * @param {Boolean} [not = undefined] if true, add not before in
+ * @return {SqlCondition} current SqlCondition-object
+ */
+SqlCondition.prototype.andIn = function(field, values, fieldType, not) {
+    return this.andAttachPrepared(this._in(field, values, fieldType, not));
+}
+
+/**
+ * creates a IN-statement out of a field and an array of values.
+ * Be carefull with a big number of values. This may have a bad performance.
+ * 
+ * @param {String | String[]} field the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" or as array with column-alias: ["ORGANISATION", "NAME", "myorgAlias"]
+ * @param {String[]} values the value that shall be set into the prepared statement
+ * @param {Numeric | Boolean} [fieldType] SQL-column-type; if the fieldType is not given it's loaded automatically;
+ *                              The loaded type is cached if no type is given. So it is also safe to use this in a loop.
+ *                              e.g.
+ *                              for (...) {
+ *                                  cond.andPrepare("SALESPROJECT_CLASSIFICATION.TYPE", entry, "# <> ?")
+ *                              }
+ * @param {Boolean} [not = undefined] if true, add not before in
+ * @return {SqlCondition} current SqlCondition-object
+ */
+SqlCondition.prototype.orIn = function(field, values, fieldType, not) {
+    return this.orAttachPrepared(this._in(field, values, fieldType, not));
+}
+
+/**
+ * creates a IN-statement out of a field and an array of values.
+ * Be carefull with a big number of values. This may have a bad performance.
+ * 
+ * @param {String | String[]} field the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" or as array with column-alias: ["ORGANISATION", "NAME", "myorgAlias"]
+ * @param {String[]} values the value that shall be set into the prepared statement
+ * @param {Numeric | Boolean} [fieldType] SQL-column-type; if the fieldType is not given it's loaded automatically;
+ *                              The loaded type is cached if no type is given. So it is also safe to use this in a loop.
+ *                              e.g.
+ *                              for (...) {
+ *                                  cond.andPrepare("SALESPROJECT_CLASSIFICATION.TYPE", entry, "# <> ?")
+ *                              }
+ * @param {Boolean} [not = undefined] if true, add not before in
+ * @return {SqlCondition} current SqlCondition-object
+ */
+SqlCondition.prototype._in = function(field, values, fieldType, not) {
+    if (values.length > 0)
+    {
+        if (fieldType == undefined)
+            fieldType = SqlUtils.getSingleColumnType(field, undefined, this.alias);
+        
+        preparedStatement = SqlUtils.getSqlInStatement(field, values, undefined, true, fieldType);
+        if (not)
+            preparedStatement[0] = " not " + preparedStatement[0];
+        return preparedStatement;
+    }
+    
+    return null;
+}
+
 /**
  * ready to use string; does not contain a where keyword at the beginning
  * @param {String} [alternativeCond=""] condition that is returned when nothing has been appended.
@@ -1314,17 +1392,29 @@ SqlUtils.getSystemAlias = function()
      * @param {String} pFieldname req name of the field with table alias
      *                                z.B ORGREL.CONTACTID
      * @param {String[]|String[][]} pData req Data as ID Array
-     * @param {String} pQuoteSymbol opt symbol for quoting values,
+     * @param {String} [pQuoteSymbol=""] symbol for quoting values,
      *                                  Strings i.e.: ' default is no symbol
+     * @param {Boolean} [pAsPrepared=undefined] true if result should be returned as prepared condition     
+     * @param {Boolean} [pPreparedDbType=undefined] if pAsPrepared is true, this param has to be filld with the correct db type
      *
-     * @return {String} SQL condition: where VALS in (1,2,3)
+     * @return {String|Array} SQL condition: where VALS in (1,2,3) OR as prepared Statement if pAsPrepared is true ["VALS in (1,2,3)", [...]
      */
-SqlUtils.getSqlInStatement = function(pFieldname, pData, pQuoteSymbol) {
+SqlUtils.getSqlInStatement = function(pFieldname, pData, pQuoteSymbol, pAsPrepared, pPreparedDbType) {
     if (pData.length == 0)
         return " 1 = 2 ";
 
     var res = "";
     var qs = pQuoteSymbol || "";
+    
+    var preparedValues;
+    if (pAsPrepared)
+    {
+        preparedValues = [];
+        if (!pPreparedDbType)
+        {
+            throw new Error(translate.text("SqlUtils.getSqlInStatement: if pAsPrepared is true, pPreparedDbType has to be filld with the correct db type"));
+        }
+    }
 
     var MAX_COUNT = 1000;
     //pData.length -1 um für den Fall, dass MAX_COUNT == pData.length ist trotzdem nur einen Aufruf
@@ -1334,17 +1424,36 @@ SqlUtils.getSqlInStatement = function(pFieldname, pData, pQuoteSymbol) {
     for (var i = 0; i <= count; i++)
     {
         if (i > 0)
-            res += "or ";
-
-        res += pFieldname + " in (" + qs + pData.slice(i * MAX_COUNT, i * MAX_COUNT + MAX_COUNT)
-        .join(qs + ", " + qs) + qs + ") ";
+            res += " or ";
+        
+        if (pAsPrepared) 
+        {
+            res += pFieldname + " in (";
+            var subData = pData.slice(i * MAX_COUNT, i * MAX_COUNT + MAX_COUNT);
+            
+            subData.forEach(function(pVal, pIndex) {
+                res += "?";
+                preparedValues.push([pVal, pPreparedDbType])
+                if (pIndex != subData.length-1)
+                    res += ", ";
+            });
+            res += ")"
+        }
+        else
+        {
+            res += pFieldname + " in (" + qs + pData.slice(i * MAX_COUNT, i * MAX_COUNT + MAX_COUNT)
+                    .join(qs + ", " + qs) + qs + ") ";
+        }
     }
 
     //wenn mehrere Zeilen mit "or" verknüpft wurden nochmal klammern
     if (count > 0)
         res = "(" + res + ")";
 
-    return res;
+    if (pAsPrepared)
+        return [res, preparedValues];
+    else
+        return res;
 }
 
 /**
diff --git a/process/Turnover_lib/process.js b/process/Turnover_lib/process.js
index d7747ebd9dabeb7b24059e5da0a5e53d94be0254..1eedb36bf59f7bb920e7989cbc2de1003679fea5 100644
--- a/process/Turnover_lib/process.js
+++ b/process/Turnover_lib/process.js
@@ -1,78 +1,97 @@
-import("system.translate");
-import("KeywordRegistry_basic");
-import("Keyword_lib");
-import("system.SQLTYPES");
-import("system.db");
-import("system.neon");
-import("Context_lib");
-
-/**
- * Methods used for turnover data.
- * Do not create an instance of this!
- * 
- * @class
- */
-function TurnoverUtil() {}
-   
-/**
- * get all turnover data.
- * 
- * @param {Number} pMaxYear the maximum year
- * @param {Number} pYearCount count of years to select
- * 
- * @return {String[][]} 
- */
-TurnoverUtil.getTurnoverData = function (pMaxYear, pYearCount)
-{
-    var turnoverCategory = translate.text('Turnover');
-
-    var minYear = pMaxYear - pYearCount + 1;
-
-    // load data
-    var data = db.table(SqlCondition.begin()
-                                    .and("SALESORDERITEM.OPTIONAL <> 1")
-                                    .andPrepare("SALESORDER.SALESORDERDATE", pMaxYear, "year(#) <= ?", SQLTYPES.INTEGER)
-                                    .andPrepare("SALESORDER.SALESORDERDATE", minYear, "year(#) >= ?", SQLTYPES.INTEGER)
-                                    .buildSql("select '" + turnoverCategory + "', year(SALESORDERDATE) yearNum, month(SALESORDERDATE) monthNum, SALESORDERITEM.DISCOUNT discount, SALESORDERITEM.VAT vat, SALESORDERITEM.PRICE price, sum(SALESORDERITEM.QUANTITY) quantity, SALESORDERITEM.GROUPCODEID prodGroup, (" + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "SALESORDERITEM.GROUPCODEID") + ") prodGroupName \n\
-                                                from SALESORDER  \n\
-                                                join SALESORDERITEM on SALESORDERITEM.SALESORDER_ID = SALESORDER.SALESORDERID", "1=2", "group by year(SALESORDERDATE), month(SALESORDERDATE), SALESORDERITEM.GROUPCODEID, SALESORDERITEM.DISCOUNT, SALESORDERITEM.VAT, SALESORDERITEM.PRICE \n\
-                                                order by yearNum, monthNum "));
-    
-    return data;
-}
-
-/**
- * get forecast data
- * 
- * @param {Number} pMaxYear the maximum year
- * @param {Number} pYearCount count of years to select
- * 
- * @return {String[][]} 
- */
-TurnoverUtil.getForecastData = function (pMaxYear, pYearCount)
-{
-    var forecastCategory = translate.text('Forecast');
-
-    var minYear = pMaxYear - pYearCount + 1;
-
-    // load data
-    var data = db.table(SqlCondition.begin()
-                                    .andPrepare("FORECAST.DATE_START", pMaxYear, "year(#) <= ?", SQLTYPES.INTEGER)
-                                    .andPrepare("FORECAST.DATE_START", minYear, "year(#) >= ?", SQLTYPES.INTEGER)
-                                    .buildSql("select '" + forecastCategory + "', year(DATE_START) yearNum, month(DATE_START) monthNum, 0 discount, 0 vat, sum(VOLUME) price, 1 quantity, GROUPCODE prodGroup, (" + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "GROUPCODE") + ") prodGroupName from FORECAST", "1=2", " group by year(DATE_START), month(DATE_START), GROUPCODE order by yearNum, monthNum"))
-    
-    return data;
-}
-
-/**
- * get turnover data
- * 
- * @param {Number} pMaxYear the maximum year
- * @param {Number} pYearCount count of years to select
- * 
- * @return {String[][]} 
- */
-TurnoverUtil.getTurnoverAndForecastData = function (pMaxYear, pYearCount)
-{   
-    return TurnoverUtil.getTurnoverData(pMaxYear, pYearCount).concat(TurnoverUtil.getForecastData(pMaxYear, pYearCount));
+import("Sql_lib");
+import("system.translate");
+import("KeywordRegistry_basic");
+import("Keyword_lib");
+import("system.SQLTYPES");
+import("system.db");
+import("system.neon");
+import("Context_lib");
+
+/**
+ * Methods used for turnover data.
+ * Do not create an instance of this!
+ * 
+ * @class
+ */
+function TurnoverUtil() {}
+   
+/**
+ * get all turnover data.
+ * 
+ * @param {Number} pMaxYear the maximum year
+ * @param {Number} pYearCount count of years to select
+ * @param {String} [pSalesprojectId  = undefined] if set, select only from this salesproject
+ * 
+ * @return {String[][]} 
+ */
+TurnoverUtil.getTurnoverData = function (pMaxYear, pYearCount, pSalesprojectId)
+{
+    var turnoverCategory = translate.text('Turnover');
+
+    var minYear = pMaxYear - pYearCount + 1;
+        
+    // load data
+    var data = db.table(SqlCondition.begin()
+                                    .and("SALESORDERITEM.OPTIONAL <> 1")
+                                    .andPrepare("SALESORDER.SALESORDERDATE", pMaxYear, "year(#) <= ?", SQLTYPES.INTEGER)
+                                    .andPrepare("SALESORDER.SALESORDERDATE", minYear, "year(#) >= ?", SQLTYPES.INTEGER)
+                                    .andPrepareIfSet("SALESORDER.SALESPROJECT_ID", pSalesprojectId)
+                                    .buildSql("select '" + turnoverCategory + "', year(SALESORDERDATE) yearNum, month(SALESORDERDATE) monthNum, SALESORDERITEM.DISCOUNT discount, SALESORDERITEM.VAT vat, SALESORDERITEM.PRICE price, sum(SALESORDERITEM.QUANTITY) quantity, SALESORDERITEM.GROUPCODEID prodGroup, (" + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "SALESORDERITEM.GROUPCODEID") + ") prodGroupName \n\
+                                                from SALESORDER  \n\
+                                                join SALESORDERITEM on SALESORDERITEM.SALESORDER_ID = SALESORDER.SALESORDERID", "1=2", "group by year(SALESORDERDATE), month(SALESORDERDATE), SALESORDERITEM.GROUPCODEID, SALESORDERITEM.DISCOUNT, SALESORDERITEM.VAT, SALESORDERITEM.PRICE \n\
+                                                order by yearNum, monthNum "));
+    
+    return data;
+}
+
+/**
+ * get forecast data
+ * 
+ * @param {Number} pMaxYear the maximum year
+ * @param {Number} pYearCount count of years to select
+ * @param {String} [pSalesprojectId  = undefined] if set, select only from this salesproject
+ * 
+ * @return {String[][]} 
+ */
+TurnoverUtil.getForecastData = function (pMaxYear, pYearCount, pSalesprojectId)
+{
+    var forecastCategory = translate.text('Forecast');
+
+    var minYear = pMaxYear - pYearCount + 1;
+
+    // load data
+    var cond = SqlCondition.begin()
+                .andPrepare("FORECAST.DATE_START", pMaxYear, "year(#) <= ?", SQLTYPES.INTEGER)
+                .andPrepare("FORECAST.DATE_START", minYear, "year(#) >= ?", SQLTYPES.INTEGER)
+    if (pSalesprojectId)
+    {
+        cond.andPrepare("FORECAST.OBJECT_TYPE", 'Salesproject')
+        cond.andPrepare("FORECAST.OBJECT_ROWID", pSalesprojectId)
+    }   
+                                        
+    return db.table(cond.buildSql("select '" + forecastCategory + "', year(DATE_START) yearNum, month(DATE_START) monthNum, 0 discount, 0 vat, sum(VOLUME) price, 1 quantity, GROUPCODE prodGroup, (" + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "GROUPCODE") + ") prodGroupName from FORECAST", "1=2", " group by year(DATE_START), month(DATE_START), GROUPCODE order by yearNum, monthNum"));
+}
+
+/**
+ * get turnover data
+ * 
+ * @param {Number} pMaxYear the maximum year
+ * @param {Number} pYearCount count of years to select
+ * @param {Boolean} pShowForecast
+ * @param {Boolean} pShowTurnover
+ * @param {String} [pSalesprojectId  = undefined] if set, select only from this salesproject
+ * 
+ * @return {String[][]} 
+ */
+TurnoverUtil.getTurnoverAndForecastData = function (pMaxYear, pYearCount, pShowForecast, pShowTurnover, pSalesprojectId)
+{   
+    var data = [];
+    
+    if (pShowTurnover)
+        data = data.concat(TurnoverUtil.getTurnoverData(pMaxYear, pYearCount, pSalesprojectId));
+    
+    if (pShowForecast)
+        data = data.concat(TurnoverUtil.getForecastData(pMaxYear, pYearCount, pSalesprojectId));
+    
+    return data;
 }
\ No newline at end of file
diff --git a/process/getDocxDocument_serverProcess/getDocxDocument_serverProcess.aod b/process/getDocxDocument_serverProcess/getDocxDocument_serverProcess.aod
index 47a76cca42502c4e69fa0b2feaedc2d64e71861c..8ff9a110c163f9f6141368dc62136730c9d62b78 100644
--- a/process/getDocxDocument_serverProcess/getDocxDocument_serverProcess.aod
+++ b/process/getDocxDocument_serverProcess/getDocxDocument_serverProcess.aod
@@ -3,4 +3,7 @@
   <name>getDocxDocument_serverProcess</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/getDocxDocument_serverProcess/process.js</process>
+  <variants>
+    <element>EXECUTABLE</element>
+  </variants>
 </process>