From f636b424634757c13eed04ab59f1e377b222b5a5 Mon Sep 17 00:00:00 2001
From: Nico Bugl <n.bugl@adito.de>
Date: Tue, 30 Apr 2019 15:18:20 +0200
Subject: [PATCH] [Projekt: Entwicklung - Neon][TicketNr.:
 1036650][Modularisierung der Module aus dem Vertriebsprojekt] - Entscheider
 und Datenbanktabelle bzw Datenbankspalten von SalesprojectMember umgenannt -
 umgebaut mit ObjectRowid und ObjectType

---
 .../basic/2019.2/AditoBasic/init_YesNo.xml    |  23 ++
 .../Data_alias/basic/2019.2/changelog.xml     |   2 +
 .../2019.2/update_Salesproject_Member.xml     |  24 ++
 .../init_SalesprojectMemberRole.xml           |  12 +-
 aliasDefinition/Data_alias/Data_alias.aod     | 207 ++++++++++--------
 entity/Context_entity/Context_entity.aod      |   6 +
 .../KeywordEntry_entity.aod                   |   2 +-
 .../Member_entity.aod}                        | 179 +++++++++------
 .../db => Member_entity}/conditionProcess.js  |   3 +-
 .../excludedcontactids_param/valueProcess.js  |   4 +-
 .../children/contactid_param/valueProcess.js  |   0
 .../entityfields/date_edit/valueProcess.js    |   0
 .../entityfields/date_new/valueProcess.js     |   0
 .../containername_param/valueProcess.js       |   2 +-
 .../entityfields/memberid}/valueProcess.js    |   0
 .../object_rowid/displayValueProcess.js       |  11 +
 .../object_rowid/linkedContextProcess.js      |   5 +
 .../entityfields/object_rowid/valueProcess.js |   5 +
 .../object_type/displayValueProcess.js        |  10 +
 .../entityfields/object_type/valueProcess.js  |   5 +
 .../children/objecttype_param/valueProcess.js |   4 +
 .../pers_full_name/fieldIdProcess.js          |   0
 .../person_full_name/valueProcess.js          |   0
 .../relationship/displayValueProcess.js       |   0
 .../entityfields/role/displayValueProcess.js  |   6 +
 .../targetcontext/valueProcess.js             |   0
 .../entityfields/user_edit/valueProcess.js    |   0
 .../entityfields/user_new/valueProcess.js     |   0
 .../fromClauseProcess.js                      |   2 +-
 .../recordcontainers/db}/conditionProcess.js  |   3 +-
 .../recordcontainers/db/fromClauseProcess.js  |   2 +-
 .../contact_id.displayvalue/expression.js     |   0
 .../object_rowid.displayvalue/expression.js   |   4 +
 .../expression.js                             |   2 +-
 entity/Object_entity/Object_entity.aod        |   6 +
 entity/Person_entity/Person_entity.aod        |   4 +-
 .../salesproject_id/valueProcess.js           |  10 -
 .../salesproject_role/displayValueProcess.js  |   6 -
 .../Salesproject_entity.aod                   |  17 +-
 .../objectrowid_param/valueProcess.js         |   4 +
 .../children/objecttype_param/valueProcess.js |   4 +
 .../salesprojectid_param/valueProcess.js      |   4 -
 .../recordcontainers/db/onDBDelete.js         |   4 +-
 .../_____LANGUAGE_de/_____LANGUAGE_de.aod     |  15 --
 .../Member.aod}                               |  12 +-
 .../MemberEdit_view.aod}                      |   8 +-
 .../MemberFilter_view.aod}                    |   4 +-
 .../SalesprojectMain_view.aod                 |   4 +-
 process/KeywordRegistry_basic/process.js      |   2 +-
 49 files changed, 398 insertions(+), 229 deletions(-)
 create mode 100644 .liquibase/Data_alias/basic/2019.2/AditoBasic/init_YesNo.xml
 create mode 100644 .liquibase/Data_alias/basic/2019.2/update_Salesproject_Member.xml
 rename entity/{SalesprojectMember_entity/SalesprojectMember_entity.aod => Member_entity/Member_entity.aod} (64%)
 rename entity/{SalesprojectMember_entity/recordcontainers/db => Member_entity}/conditionProcess.js (61%)
 rename entity/{SalesprojectMember_entity => Member_entity}/entityfields/contacts/children/excludedcontactids_param/valueProcess.js (59%)
 rename entity/{SalesprojectMember_entity => Member_entity}/entityfields/currentcontact/children/contactid_param/valueProcess.js (100%)
 rename entity/{SalesprojectMember_entity => Member_entity}/entityfields/date_edit/valueProcess.js (100%)
 rename entity/{SalesprojectMember_entity => Member_entity}/entityfields/date_new/valueProcess.js (100%)
 rename entity/{SalesprojectMember_entity => Member_entity}/entityfields/keywordmemberroles/children/containername_param/valueProcess.js (58%)
 rename entity/{SalesprojectMember_entity/entityfields/salesproject_memberid => Member_entity/entityfields/memberid}/valueProcess.js (100%)
 create mode 100644 entity/Member_entity/entityfields/object_rowid/displayValueProcess.js
 create mode 100644 entity/Member_entity/entityfields/object_rowid/linkedContextProcess.js
 create mode 100644 entity/Member_entity/entityfields/object_rowid/valueProcess.js
 create mode 100644 entity/Member_entity/entityfields/object_type/displayValueProcess.js
 create mode 100644 entity/Member_entity/entityfields/object_type/valueProcess.js
 create mode 100644 entity/Member_entity/entityfields/objects/children/objecttype_param/valueProcess.js
 rename entity/{SalesprojectMember_entity => Member_entity}/entityfields/pers_full_name/fieldIdProcess.js (100%)
 rename entity/{SalesprojectMember_entity => Member_entity}/entityfields/person_full_name/valueProcess.js (100%)
 rename entity/{SalesprojectMember_entity => Member_entity}/entityfields/relationship/displayValueProcess.js (100%)
 create mode 100644 entity/Member_entity/entityfields/role/displayValueProcess.js
 rename entity/{SalesprojectMember_entity => Member_entity}/entityfields/targetcontext/valueProcess.js (100%)
 rename entity/{SalesprojectMember_entity => Member_entity}/entityfields/user_edit/valueProcess.js (100%)
 rename entity/{SalesprojectMember_entity => Member_entity}/entityfields/user_new/valueProcess.js (100%)
 rename entity/{SalesprojectMember_entity => Member_entity}/fromClauseProcess.js (65%)
 rename entity/{SalesprojectMember_entity => Member_entity/recordcontainers/db}/conditionProcess.js (61%)
 rename entity/{SalesprojectMember_entity => Member_entity}/recordcontainers/db/fromClauseProcess.js (65%)
 rename entity/{SalesprojectMember_entity => Member_entity}/recordcontainers/db/recordfieldmappings/contact_id.displayvalue/expression.js (100%)
 create mode 100644 entity/Member_entity/recordcontainers/db/recordfieldmappings/object_rowid.displayvalue/expression.js
 rename entity/{SalesprojectMember_entity => Member_entity}/recordcontainers/db/recordfieldmappings/salesproject_role.displayvalue/expression.js (70%)
 delete mode 100644 entity/SalesprojectMember_entity/entityfields/salesproject_id/valueProcess.js
 delete mode 100644 entity/SalesprojectMember_entity/entityfields/salesproject_role/displayValueProcess.js
 create mode 100644 entity/Salesproject_entity/entityfields/members/children/objectrowid_param/valueProcess.js
 create mode 100644 entity/Salesproject_entity/entityfields/members/children/objecttype_param/valueProcess.js
 delete mode 100644 entity/Salesproject_entity/entityfields/salesprojectmembers/children/salesprojectid_param/valueProcess.js
 rename neonContext/{SalesprojectMember/SalesprojectMember.aod => Member/Member.aod} (66%)
 rename neonView/{SalesprojectMemberEdit_view/SalesprojectMemberEdit_view.aod => MemberEdit_view/MemberEdit_view.aod} (78%)
 rename neonView/{SalesprojectMemberFilter_view/SalesprojectMemberFilter_view.aod => MemberFilter_view/MemberFilter_view.aod} (93%)

diff --git a/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_YesNo.xml b/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_YesNo.xml
new file mode 100644
index 00000000000..6d6ecabeeac
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_YesNo.xml
@@ -0,0 +1,23 @@
+<?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="n.bugl" id="65c6bfc8-5de5-479e-8d64-a93cffe8ce89">
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="eadf3ecb-ac35-4a94-879a-f6e85a72fa29"/>
+            <column name="KEYID" value="d657755e-50e8-409b-8b1e-2d8315c2307a"/>
+            <column name="TITLE" value="Yes"/>
+            <column name="CONTAINER" value="YesNo"/>
+            <column name="SORTING" valueNumeric="1"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="4dcc3315-8a38-42d9-ba34-f8899b86ca85"/>
+            <column name="KEYID" value="3389c206-5916-401b-8aa5-6ebaf012a09b"/>
+            <column name="TITLE" value="No"/>
+            <column name="CONTAINER" value="YesNo"/>
+            <column name="SORTING" valueNumeric="2"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </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 52a6e92c0a9..b9feeff3f31 100644
--- a/.liquibase/Data_alias/basic/2019.2/changelog.xml
+++ b/.liquibase/Data_alias/basic/2019.2/changelog.xml
@@ -83,6 +83,7 @@
     <include relativeToChangelogFile="true" file="Contact_add_columns.xml"/>
     <include relativeToChangelogFile="true" file="SalesOrder_source_offer.xml"/>
     <include relativeToChangelogFile="true" file="Product_remove_fk.xml"/>
+    <include relativeToChangelogFile="true" file="AditoBasic/init_YesNo.xml"/>
 
     <include relativeToChangelogFile="true" file="data/example_attribute/Attribute.xml" context="example"/>
     <include relativeToChangelogFile="true" file="data/example_attribute/AttributeUsage.xml" context="example"/>
@@ -129,6 +130,7 @@
     <include relativeToChangelogFile="true" file="update_Salesproject_Classification.xml"/>
     <include relativeToChangelogFile="true" file="update_Offer.xml"/>
     <include relativeToChangelogFile="true" file="update_Salesproject_Competition.xml"/>
+    <include relativeToChangelogFile="true" file="update_Salesproject_Member.xml"/>
     
     <include relativeToChangelogFile="true" file="indicesRefactor/ContactManagement.xml"/>
     <include relativeToChangelogFile="true" file="indicesRefactor/Keyword.xml"/>
diff --git a/.liquibase/Data_alias/basic/2019.2/update_Salesproject_Member.xml b/.liquibase/Data_alias/basic/2019.2/update_Salesproject_Member.xml
new file mode 100644
index 00000000000..7b9bcb41e92
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2019.2/update_Salesproject_Member.xml
@@ -0,0 +1,24 @@
+<?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="n.bugl" id="edd0e09f-830e-4cd3-acf6-ee0c2cd82d7a">  
+        
+        <addColumn tableName="SALESPROJECT_MEMBER">
+            <column name="OBJECT_TYPE" type="NVARCHAR(63)"/>
+            <column name="DECIDER" type="NVARCHAR(36)"/>
+        </addColumn>
+        <renameColumn newColumnName="OBJECT_ROWID" oldColumnName="SALESPROJECT_ID" tableName="SALESPROJECT_MEMBER"/>
+        <renameColumn newColumnName="MEMBERID" oldColumnName="SALESPROJECT_MEMBERID" tableName="SALESPROJECT_MEMBER"/>
+        <renameColumn newColumnName="ROLE" oldColumnName="SALESPROJECT_ROLE" tableName="SALESPROJECT_MEMBER"/>
+        <update tableName="SALESPROJECT_MEMBER">
+            <column name="OBJECT_TYPE" value="Salesproject" />
+            <where>OBJECT_ROWID = '0833465c-8851-4fbb-b7e3-8c1d73c903da'</where>
+        </update>
+        
+        <addNotNullConstraint
+            tableName="SALESPROJECT_MEMBER"
+            columnName="OBJECT_TYPE"/>
+        
+        <renameTable oldTableName="SALESPROJECT_MEMBER" newTableName="MEMBER"/>
+        
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/init/data/AditoBasic/ab_keyword_entry/init_SalesprojectMemberRole.xml b/.liquibase/Data_alias/basic/init/data/AditoBasic/ab_keyword_entry/init_SalesprojectMemberRole.xml
index 6bb21bcdb6d..3f1e9aed90a 100644
--- a/.liquibase/Data_alias/basic/init/data/AditoBasic/ab_keyword_entry/init_SalesprojectMemberRole.xml
+++ b/.liquibase/Data_alias/basic/init/data/AditoBasic/ab_keyword_entry/init_SalesprojectMemberRole.xml
@@ -5,7 +5,7 @@
       <column name="AB_KEYWORD_ENTRYID" value="9c421b0b-8529-4e07-9463-28d59fd027b6"/>
       <column name="KEYID" value="1d100fff-24ba-43fd-931d-cae24e10b41f"/>
       <column name="TITLE" value="Project manager"/>
-      <column name="CONTAINER" value="SalesprojectMemberRole"/>
+      <column name="CONTAINER" value="MemberRole"/>
       <column name="SORTING" valueNumeric="0"/>
       <column name="ISACTIVE" valueNumeric="1"/>
       <column name="ISESSENTIAL" valueNumeric="0"/>
@@ -14,7 +14,7 @@
       <column name="AB_KEYWORD_ENTRYID" value="f78f229f-f809-4bd2-aca8-24e2f82fa220"/>
       <column name="KEYID" value="8fb09614-5dc4-4d68-ac66-bf7bbebcb3ad"/>
       <column name="TITLE" value="Project assistant"/>
-      <column name="CONTAINER" value="SalesprojectMemberRole"/>
+      <column name="CONTAINER" value="MemberRole"/>
       <column name="SORTING" valueNumeric="1"/>
       <column name="ISACTIVE" valueNumeric="1"/>
       <column name="ISESSENTIAL" valueNumeric="0"/>
@@ -23,7 +23,7 @@
       <column name="AB_KEYWORD_ENTRYID" value="8cb1b843-713a-4193-aa50-9f5ca06820f8"/>
       <column name="KEYID" value="28b9aaa2-325c-498f-8397-e20cffbfc215"/>
       <column name="TITLE" value="Adviser"/>
-      <column name="CONTAINER" value="SalesprojectMemberRole"/>
+      <column name="CONTAINER" value="MemberRole"/>
       <column name="SORTING" valueNumeric="2"/>
       <column name="ISACTIVE" valueNumeric="1"/>
       <column name="ISESSENTIAL" valueNumeric="0"/>
@@ -32,7 +32,7 @@
       <column name="AB_KEYWORD_ENTRYID" value="3d603fe3-1b06-43fc-9e20-2efd6e9e4afd"/>
       <column name="KEYID" value="70cbad1b-eac6-4369-ba50-4946e0fbcb3a"/>
       <column name="TITLE" value="Decision maker"/>
-      <column name="CONTAINER" value="SalesprojectMemberRole"/>
+      <column name="CONTAINER" value="MemberRole"/>
       <column name="SORTING" valueNumeric="3"/>
       <column name="ISACTIVE" valueNumeric="1"/>
       <column name="ISESSENTIAL" valueNumeric="0"/>
@@ -41,7 +41,7 @@
       <column name="AB_KEYWORD_ENTRYID" value="039fd6ae-b4ad-431e-86bf-59ed2f4df0a9"/>
       <column name="KEYID" value="a8460c8e-24bd-4410-9704-e4865fdd57bf"/>
       <column name="TITLE" value="External sales manager"/>
-      <column name="CONTAINER" value="SalesprojectMemberRole"/>
+      <column name="CONTAINER" value="MemberRole"/>
       <column name="SORTING" valueNumeric="4"/>
       <column name="ISACTIVE" valueNumeric="1"/>
       <column name="ISESSENTIAL" valueNumeric="0"/>
@@ -50,7 +50,7 @@
       <column name="AB_KEYWORD_ENTRYID" value="b72294cd-3a46-4f71-ab93-72824f63f7f4"/>
       <column name="KEYID" value="67baabb5-abd0-43bd-aea1-cf7e606814a6"/>
       <column name="TITLE" value="Internal sales manager"/>
-      <column name="CONTAINER" value="SalesprojectMemberRole"/>
+      <column name="CONTAINER" value="MemberRole"/>
       <column name="SORTING" valueNumeric="5"/>
       <column name="ISACTIVE" valueNumeric="1"/>
       <column name="ISESSENTIAL" valueNumeric="0"/>
diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod
index f919a31abb0..1da4a55580c 100644
--- a/aliasDefinition/Data_alias/Data_alias.aod
+++ b/aliasDefinition/Data_alias/Data_alias.aod
@@ -2731,95 +2731,6 @@
               </entityFieldDb>
             </entityFields>
           </entityDb>
-          <entityDb>
-            <name>SALESPROJECT_MEMBER</name>
-            <dbName></dbName>
-            <idColumn>SALESPROJECT_MEMBERID</idColumn>
-            <idGeneratorType v="0" />
-            <idGeneratorInterval v="1" />
-            <title></title>
-            <description></description>
-            <auditSyncConfig>
-              <name>auditSyncConfig</name>
-              <auditMode v="0" />
-              <syncActive v="false" />
-              <syncComplete v="true" />
-              <syncDirection v="1" />
-              <syncIds></syncIds>
-            </auditSyncConfig>
-            <entityFields>
-              <entityFieldDb>
-                <name>SALESPROJECT_MEMBERID</name>
-                <dbName></dbName>
-                <primaryKey v="true" />
-                <columnType v="1" />
-                <size v="36" />
-                <scale v="0" />
-                <notNull v="true" />
-                <isUnique v="true" />
-                <index v="false" />
-                <documentation></documentation>
-                <title></title>
-                <description></description>
-              </entityFieldDb>
-              <entityFieldDb>
-                <name>CONTACT_ID</name>
-                <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="1" />
-                <size v="36" />
-                <scale v="0" />
-                <notNull v="true" />
-                <isUnique v="false" />
-                <index v="false" />
-                <documentation></documentation>
-                <title></title>
-                <description></description>
-              </entityFieldDb>
-              <entityFieldDb>
-                <name>SALESPROJECT_ROLE</name>
-                <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="1" />
-                <size v="36" />
-                <scale v="0" />
-                <notNull v="false" />
-                <isUnique v="false" />
-                <index v="false" />
-                <documentation></documentation>
-                <title></title>
-                <description></description>
-              </entityFieldDb>
-              <entityFieldDb>
-                <name>SALESPROJECT_ID</name>
-                <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="1" />
-                <size v="36" />
-                <scale v="0" />
-                <notNull v="true" />
-                <isUnique v="false" />
-                <index v="false" />
-                <documentation></documentation>
-                <title></title>
-                <description></description>
-              </entityFieldDb>
-              <entityFieldDb>
-                <name>RELATIONSHIP</name>
-                <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="4" />
-                <size v="10" />
-                <scale v="0" />
-                <notNull v="false" />
-                <isUnique v="false" />
-                <index v="false" />
-                <documentation></documentation>
-                <title></title>
-                <description></description>
-              </entityFieldDb>
-            </entityFields>
-          </entityDb>
           <entityDb>
             <name>TIMETRACKING</name>
             <dbName></dbName>
@@ -6815,6 +6726,124 @@
               </entityFieldDb>
             </entityFields>
           </entityDb>
+          <entityDb>
+            <name>MEMBER</name>
+            <dbName></dbName>
+            <idColumn>MEMBER</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <documentation></documentation>
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>ROLE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>OBJECT_ROWID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DECIDER</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>CONTACT_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>RELATIONSHIP</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>OBJECT_TYPE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="63" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>MEMBERID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
         </entities>
       </entityGroup>
     </aliasDefDb>
diff --git a/entity/Context_entity/Context_entity.aod b/entity/Context_entity/Context_entity.aod
index e39e468fef7..5ceff8889b5 100644
--- a/entity/Context_entity/Context_entity.aod
+++ b/entity/Context_entity/Context_entity.aod
@@ -54,6 +54,12 @@
           <fieldName>Contexts</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>4543a0ae-7bd2-4c70-8eaf-d4f32e014173</name>
+          <entityName>Member_entity</entityName>
+          <fieldName>Contexts</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
diff --git a/entity/KeywordEntry_entity/KeywordEntry_entity.aod b/entity/KeywordEntry_entity/KeywordEntry_entity.aod
index e2c0ee7a01c..ae40259af46 100644
--- a/entity/KeywordEntry_entity/KeywordEntry_entity.aod
+++ b/entity/KeywordEntry_entity/KeywordEntry_entity.aod
@@ -207,7 +207,7 @@
         </entityDependency>
         <entityDependency>
           <name>026021cd-cd64-400d-8bd5-f6d044af1ad8</name>
-          <entityName>SalesprojectMember_entity</entityName>
+          <entityName>Member_entity</entityName>
           <fieldName>KeywordMemberRoles</fieldName>
           <isConsumer v="false" />
         </entityDependency>
diff --git a/entity/SalesprojectMember_entity/SalesprojectMember_entity.aod b/entity/Member_entity/Member_entity.aod
similarity index 64%
rename from entity/SalesprojectMember_entity/SalesprojectMember_entity.aod
rename to entity/Member_entity/Member_entity.aod
index 3ae166a2daa..e9c2eedfc52 100644
--- a/entity/SalesprojectMember_entity/SalesprojectMember_entity.aod
+++ b/entity/Member_entity/Member_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.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.2">
-  <name>SalesprojectMember_entity</name>
+  <name>Member_entity</name>
   <title>${SALESPROJECT_MEMBER}</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <recordContainer>db</recordContainer>
@@ -16,47 +16,22 @@
       <mandatory v="true" />
     </entityField>
     <entityField>
-      <name>SALESPROJECT_ID</name>
-      <valueProcess>%aditoprj%/entity/SalesprojectMember_entity/entityfields/salesproject_id/valueProcess.js</valueProcess>
+      <name>OBJECT_ROWID</name>
+      <consumer>Objects</consumer>
+      <linkedContextProcess>%aditoprj%/entity/Member_entity/entityfields/object_rowid/linkedContextProcess.js</linkedContextProcess>
+      <valueProcess>%aditoprj%/entity/Member_entity/entityfields/object_rowid/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Member_entity/entityfields/object_rowid/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
-      <name>SALESPROJECT_MEMBERID</name>
-      <valueProcess>%aditoprj%/entity/SalesprojectMember_entity/entityfields/salesproject_memberid/valueProcess.js</valueProcess>
+      <name>MEMBERID</name>
+      <valueProcess>%aditoprj%/entity/Member_entity/entityfields/memberid/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
-      <name>SALESPROJECT_ROLE</name>
+      <name>ROLE</name>
       <title>Role</title>
       <consumer>KeywordMemberRoles</consumer>
-      <displayValueProcess>%aditoprj%/entity/SalesprojectMember_entity/entityfields/salesproject_role/displayValueProcess.js</displayValueProcess>
+      <displayValueProcess>%aditoprj%/entity/Member_entity/entityfields/role/displayValueProcess.js</displayValueProcess>
     </entityField>
-    <entityProvider>
-      <name>SalesprojectMembers</name>
-      <fieldType>DEPENDENCY_IN</fieldType>
-      <targetContextField>TARGETCONTEXT</targetContextField>
-      <targetIdField>CONTACT_ID</targetIdField>
-      <recordContainer>db</recordContainer>
-      <dependencies>
-        <entityDependency>
-          <name>c33d46e7-a7be-4548-a036-0ac58888504c</name>
-          <entityName>Salesproject_entity</entityName>
-          <fieldName>SalesprojectMembers</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
-      <children>
-        <entityParameter>
-          <name>SalesprojectId_param</name>
-          <expose v="true" />
-        </entityParameter>
-      </children>
-    </entityProvider>
-    <entityParameter>
-      <name>SalesprojectId_param</name>
-      <expose v="true" />
-      <triggerRecalculation v="true" />
-      <mandatory v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
     <entityField>
       <name>ORGANISATION_NAME</name>
       <title>Company</title>
@@ -100,7 +75,7 @@
       <children>
         <entityParameter>
           <name>ContactId_param</name>
-          <valueProcess>%aditoprj%/entity/SalesprojectMember_entity/entityfields/currentcontact/children/contactid_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/Member_entity/entityfields/currentcontact/children/contactid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
@@ -110,7 +85,7 @@
       <consumer>CurrentContact</consumer>
       <linkedContext>Person</linkedContext>
       <state>READONLY</state>
-      <valueProcess>%aditoprj%/entity/SalesprojectMember_entity/entityfields/person_full_name/valueProcess.js</valueProcess>
+      <valueProcess>%aditoprj%/entity/Member_entity/entityfields/person_full_name/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>RELATIONSHIP</name>
@@ -119,7 +94,7 @@
 
 TODO: intuitive möglichkeit, auf dend Stand aus Relation zurückzusetzen... aktuell im edit mode auf leeres Feld, dann wird das aus contact angezeigt</description>
       <contentType>NUMBER</contentType>
-      <displayValueProcess>%aditoprj%/entity/SalesprojectMember_entity/entityfields/relationship/displayValueProcess.js</displayValueProcess>
+      <displayValueProcess>%aditoprj%/entity/Member_entity/entityfields/relationship/displayValueProcess.js</displayValueProcess>
       <onValueChangeTypes>
         <element>MASK</element>
         <element>PROCESS</element>
@@ -143,7 +118,7 @@ TODO: intuitive möglichkeit, auf dend Stand aus Relation zurückzusetzen... akt
       <children>
         <entityParameter>
           <name>ExcludedContactIds_param</name>
-          <valueProcess>%aditoprj%/entity/SalesprojectMember_entity/entityfields/contacts/children/excludedcontactids_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/Member_entity/entityfields/contacts/children/excludedcontactids_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
@@ -158,14 +133,14 @@ TODO: intuitive möglichkeit, auf dend Stand aus Relation zurückzusetzen... akt
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
-          <valueProcess>%aditoprj%/entity/SalesprojectMember_entity/entityfields/keywordmemberroles/children/containername_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/Member_entity/entityfields/keywordmemberroles/children/containername_param/valueProcess.js</valueProcess>
           <expose v="false" />
         </entityParameter>
       </children>
     </entityConsumer>
     <entityField>
       <name>TARGETCONTEXT</name>
-      <valueProcess>%aditoprj%/entity/SalesprojectMember_entity/entityfields/targetcontext/valueProcess.js</valueProcess>
+      <valueProcess>%aditoprj%/entity/Member_entity/entityfields/targetcontext/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>CONTACTROLE</name>
@@ -182,42 +157,102 @@ TODO: intuitive möglichkeit, auf dend Stand aus Relation zurückzusetzen... akt
       <title>Position</title>
       <state>READONLY</state>
     </entityField>
+    <entityField>
+      <name>OBJECT_TYPE</name>
+      <consumer>Contexts</consumer>
+      <valueProcess>%aditoprj%/entity/Member_entity/entityfields/object_type/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Member_entity/entityfields/object_type/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityParameter>
+      <name>ObjectRowId_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>ObjectType_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityConsumer>
+      <name>Objects</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Object_entity</entityName>
+        <fieldName>AllObjects</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ObjectType_param</name>
+          <valueProcess>%aditoprj%/entity/Member_entity/entityfields/objects/children/objecttype_param/valueProcess.js</valueProcess>
+          <expose v="true" />
+          <triggerRecalculation v="true" />
+          <mandatory v="true" />
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Contexts</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Context_entity</entityName>
+        <fieldName>Context</fieldName>
+      </dependency>
+    </entityConsumer>
+    <entityProvider>
+      <name>Links</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <targetContextField>TARGETCONTEXT</targetContextField>
+      <targetIdField>CONTACT_ID</targetIdField>
+      <recordContainer>db</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>df6a9a25-f787-41f6-877b-c8e3cbbdc6be</name>
+          <entityName>Salesproject_entity</entityName>
+          <fieldName>Members</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
       <alias>Data_alias</alias>
-      <fromClauseProcess>%aditoprj%/entity/SalesprojectMember_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
-      <conditionProcess>%aditoprj%/entity/SalesprojectMember_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <fromClauseProcess>%aditoprj%/entity/Member_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
+      <conditionProcess>%aditoprj%/entity/Member_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <linkInformation>
         <linkInformation>
-          <name>642ee877-9b75-42df-ade2-40f65f8a9ee5</name>
-          <tableName>SALESPROJECT_MEMBER</tableName>
-          <primaryKey>SALESPROJECT_MEMBERID</primaryKey>
-          <isUIDTable v="true" />
-          <readonly v="false" />
-        </linkInformation>
-        <linkInformation>
-          <name>d158535e-ce3a-4660-91c7-d0ec8a7cbafc</name>
+          <name>dc8d3e38-dd0c-49e1-8665-695e5fd61025</name>
           <tableName>ORGANISATION</tableName>
           <primaryKey>ORGANISATIONID</primaryKey>
           <isUIDTable v="false" />
           <readonly v="true" />
         </linkInformation>
         <linkInformation>
-          <name>d794504f-52b7-4da0-abbe-ea3f6eabe996</name>
+          <name>85c0ae33-0713-4413-aaef-6b0c39b70973</name>
           <tableName>PERSON</tableName>
           <primaryKey>PERSONID</primaryKey>
           <isUIDTable v="false" />
           <readonly v="true" />
         </linkInformation>
         <linkInformation>
-          <name>6b4e762c-8316-47d2-8ff0-67d8b1ff58bd</name>
+          <name>2ee2e445-6b7f-4d22-9a83-1b175ad0acc9</name>
           <tableName>CONTACT</tableName>
           <primaryKey>CONTACTID</primaryKey>
           <isUIDTable v="false" />
           <readonly v="true" />
         </linkInformation>
+        <linkInformation>
+          <name>3d675008-56dc-4c91-90c9-7664dccddbb4</name>
+          <tableName>MEMBER</tableName>
+          <primaryKey>MEMBERID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
       </linkInformation>
       <recordFieldMappings>
         <dbRecordFieldMapping>
@@ -250,23 +285,15 @@ TODO: intuitive möglichkeit, auf dend Stand aus Relation zurückzusetzen... akt
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>CONTACT_ID.value</name>
-          <recordfield>SALESPROJECT_MEMBER.CONTACT_ID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>SALESPROJECT_ID.value</name>
-          <recordfield>SALESPROJECT_MEMBER.SALESPROJECT_ID</recordfield>
-        </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>SALESPROJECT_MEMBERID.value</name>
-          <recordfield>SALESPROJECT_MEMBER.SALESPROJECT_MEMBERID</recordfield>
+          <recordfield>MEMBER.CONTACT_ID</recordfield>
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>SALESPROJECT_ROLE.value</name>
-          <recordfield>SALESPROJECT_MEMBER.SALESPROJECT_ROLE</recordfield>
+          <recordfield>MEMBER.ROLE</recordfield>
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>RELATIONSHIP.value</name>
-          <recordfield>SALESPROJECT_MEMBER.RELATIONSHIP</recordfield>
+          <recordfield>MEMBER.RELATIONSHIP</recordfield>
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>CONTACT_RELATIONSHIP.value</name>
@@ -274,11 +301,11 @@ TODO: intuitive möglichkeit, auf dend Stand aus Relation zurückzusetzen... akt
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>CONTACT_ID.displayValue</name>
-          <expression>%aditoprj%/entity/SalesprojectMember_entity/recordcontainers/db/recordfieldmappings/contact_id.displayvalue/expression.js</expression>
+          <expression>%aditoprj%/entity/Member_entity/recordcontainers/db/recordfieldmappings/contact_id.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>SALESPROJECT_ROLE.displayValue</name>
-          <expression>%aditoprj%/entity/SalesprojectMember_entity/recordcontainers/db/recordfieldmappings/salesproject_role.displayvalue/expression.js</expression>
+          <expression>%aditoprj%/entity/Member_entity/recordcontainers/db/recordfieldmappings/salesproject_role.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>DEPARTMENT.value</name>
@@ -292,6 +319,26 @@ TODO: intuitive möglichkeit, auf dend Stand aus Relation zurückzusetzen... akt
           <name>POSITION.value</name>
           <recordfield>CONTACT.POSITION</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OBJECT_ROWID.value</name>
+          <recordfield>MEMBER.OBJECT_ROWID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OBJECT_TYPE.value</name>
+          <recordfield>MEMBER.OBJECT_TYPE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>MEMBERID.value</name>
+          <recordfield>MEMBER.MEMBERID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ROLE.value</name>
+          <recordfield>MEMBER.ROLE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OBJECT_ROWID.displayValue</name>
+          <expression>%aditoprj%/entity/Member_entity/recordcontainers/db/recordfieldmappings/object_rowid.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/SalesprojectMember_entity/recordcontainers/db/conditionProcess.js b/entity/Member_entity/conditionProcess.js
similarity index 61%
rename from entity/SalesprojectMember_entity/recordcontainers/db/conditionProcess.js
rename to entity/Member_entity/conditionProcess.js
index bfd5554266b..e0f35ab06bb 100644
--- a/entity/SalesprojectMember_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/Member_entity/conditionProcess.js
@@ -3,7 +3,8 @@ import("system.result");
 import("Sql_lib");
 
 var cond = new SqlCondition();
-cond.andPrepareVars("SALESPROJECT_MEMBER.SALESPROJECT_ID", "$param.SalesprojectId_param");
+cond.andPrepareVars("MEMBER.OBJECT_ROWID", "$param.ObjectRowId_param")
+cond.andPrepareVars("MEMBER.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/SalesprojectMember_entity/entityfields/contacts/children/excludedcontactids_param/valueProcess.js b/entity/Member_entity/entityfields/contacts/children/excludedcontactids_param/valueProcess.js
similarity index 59%
rename from entity/SalesprojectMember_entity/entityfields/contacts/children/excludedcontactids_param/valueProcess.js
rename to entity/Member_entity/entityfields/contacts/children/excludedcontactids_param/valueProcess.js
index 4f34874adf0..ff7a12d77a6 100644
--- a/entity/SalesprojectMember_entity/entityfields/contacts/children/excludedcontactids_param/valueProcess.js
+++ b/entity/Member_entity/entityfields/contacts/children/excludedcontactids_param/valueProcess.js
@@ -4,6 +4,6 @@ import("system.db");
 import("Sql_lib");
 
 result.object(db.array(db.COLUMN, SqlCondition.begin()
-                                .andPrepare("SALESPROJECT_MEMBER.SALESPROJECT_ID", vars.get("$field.SALESPROJECT_ID"))
-                                .buildSql("select CONTACT_ID from SALESPROJECT_MEMBER", "1=2")));
+                                .andPrepare("MEMBER.OBJECT_ROWID", vars.get("$field.OBJECT_ROWID"))
+                                .buildSql("select CONTACT_ID from MEMBER", "1=2")));
                      
\ No newline at end of file
diff --git a/entity/SalesprojectMember_entity/entityfields/currentcontact/children/contactid_param/valueProcess.js b/entity/Member_entity/entityfields/currentcontact/children/contactid_param/valueProcess.js
similarity index 100%
rename from entity/SalesprojectMember_entity/entityfields/currentcontact/children/contactid_param/valueProcess.js
rename to entity/Member_entity/entityfields/currentcontact/children/contactid_param/valueProcess.js
diff --git a/entity/SalesprojectMember_entity/entityfields/date_edit/valueProcess.js b/entity/Member_entity/entityfields/date_edit/valueProcess.js
similarity index 100%
rename from entity/SalesprojectMember_entity/entityfields/date_edit/valueProcess.js
rename to entity/Member_entity/entityfields/date_edit/valueProcess.js
diff --git a/entity/SalesprojectMember_entity/entityfields/date_new/valueProcess.js b/entity/Member_entity/entityfields/date_new/valueProcess.js
similarity index 100%
rename from entity/SalesprojectMember_entity/entityfields/date_new/valueProcess.js
rename to entity/Member_entity/entityfields/date_new/valueProcess.js
diff --git a/entity/SalesprojectMember_entity/entityfields/keywordmemberroles/children/containername_param/valueProcess.js b/entity/Member_entity/entityfields/keywordmemberroles/children/containername_param/valueProcess.js
similarity index 58%
rename from entity/SalesprojectMember_entity/entityfields/keywordmemberroles/children/containername_param/valueProcess.js
rename to entity/Member_entity/entityfields/keywordmemberroles/children/containername_param/valueProcess.js
index 038f4a4295e..f20e0079a61 100644
--- a/entity/SalesprojectMember_entity/entityfields/keywordmemberroles/children/containername_param/valueProcess.js
+++ b/entity/Member_entity/entityfields/keywordmemberroles/children/containername_param/valueProcess.js
@@ -2,4 +2,4 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-result.string($KeywordRegistry.salesprojectMemberRole());
+result.string($KeywordRegistry.MemberRole());
diff --git a/entity/SalesprojectMember_entity/entityfields/salesproject_memberid/valueProcess.js b/entity/Member_entity/entityfields/memberid/valueProcess.js
similarity index 100%
rename from entity/SalesprojectMember_entity/entityfields/salesproject_memberid/valueProcess.js
rename to entity/Member_entity/entityfields/memberid/valueProcess.js
diff --git a/entity/Member_entity/entityfields/object_rowid/displayValueProcess.js b/entity/Member_entity/entityfields/object_rowid/displayValueProcess.js
new file mode 100644
index 00000000000..8b080bceea9
--- /dev/null
+++ b/entity/Member_entity/entityfields/object_rowid/displayValueProcess.js
@@ -0,0 +1,11 @@
+import("system.neon");
+import("system.vars");
+import("system.db");
+import("system.result");
+import("Context_lib");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$field.OBJECT_ROWID")) {
+    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"))));
+}
\ No newline at end of file
diff --git a/entity/Member_entity/entityfields/object_rowid/linkedContextProcess.js b/entity/Member_entity/entityfields/object_rowid/linkedContextProcess.js
new file mode 100644
index 00000000000..d868fe097f2
--- /dev/null
+++ b/entity/Member_entity/entityfields/object_rowid/linkedContextProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.result");
+import("Context_lib");
+
+result.string(ContextUtils.getContextName(vars.get("$field.OBJECT_TYPE")))
\ No newline at end of file
diff --git a/entity/Member_entity/entityfields/object_rowid/valueProcess.js b/entity/Member_entity/entityfields/object_rowid/valueProcess.js
new file mode 100644
index 00000000000..09d845d6f59
--- /dev/null
+++ b/entity/Member_entity/entityfields/object_rowid/valueProcess.js
@@ -0,0 +1,5 @@
+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
diff --git a/entity/Member_entity/entityfields/object_type/displayValueProcess.js b/entity/Member_entity/entityfields/object_type/displayValueProcess.js
new file mode 100644
index 00000000000..2965221e0b0
--- /dev/null
+++ b/entity/Member_entity/entityfields/object_type/displayValueProcess.js
@@ -0,0 +1,10 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+import("system.project");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$field.OBJECT_TYPE")) {
+    result.string("");
+} else if (vars.exists("$field.OBJECT_TYPE") && vars.get("$field.OBJECT_TYPE")) {
+    result.string(project.getDataModel(project.DATAMODEL_KIND_CONTEXT, vars.get("$field.OBJECT_TYPE"))[1]);
+}
\ No newline at end of file
diff --git a/entity/Member_entity/entityfields/object_type/valueProcess.js b/entity/Member_entity/entityfields/object_type/valueProcess.js
new file mode 100644
index 00000000000..61217a860a6
--- /dev/null
+++ b/entity/Member_entity/entityfields/object_type/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.result");
+    
+if(vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param"))
+    result.string(vars.get("$param.ObjectType_param"));
\ No newline at end of file
diff --git a/entity/Member_entity/entityfields/objects/children/objecttype_param/valueProcess.js b/entity/Member_entity/entityfields/objects/children/objecttype_param/valueProcess.js
new file mode 100644
index 00000000000..b1bb16711d7
--- /dev/null
+++ b/entity/Member_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/SalesprojectMember_entity/entityfields/pers_full_name/fieldIdProcess.js b/entity/Member_entity/entityfields/pers_full_name/fieldIdProcess.js
similarity index 100%
rename from entity/SalesprojectMember_entity/entityfields/pers_full_name/fieldIdProcess.js
rename to entity/Member_entity/entityfields/pers_full_name/fieldIdProcess.js
diff --git a/entity/SalesprojectMember_entity/entityfields/person_full_name/valueProcess.js b/entity/Member_entity/entityfields/person_full_name/valueProcess.js
similarity index 100%
rename from entity/SalesprojectMember_entity/entityfields/person_full_name/valueProcess.js
rename to entity/Member_entity/entityfields/person_full_name/valueProcess.js
diff --git a/entity/SalesprojectMember_entity/entityfields/relationship/displayValueProcess.js b/entity/Member_entity/entityfields/relationship/displayValueProcess.js
similarity index 100%
rename from entity/SalesprojectMember_entity/entityfields/relationship/displayValueProcess.js
rename to entity/Member_entity/entityfields/relationship/displayValueProcess.js
diff --git a/entity/Member_entity/entityfields/role/displayValueProcess.js b/entity/Member_entity/entityfields/role/displayValueProcess.js
new file mode 100644
index 00000000000..bbdef4d21bb
--- /dev/null
+++ b/entity/Member_entity/entityfields/role/displayValueProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("system.vars");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string(KeywordUtils.getViewValue($KeywordRegistry.MemberRole(), vars.get("$field.ROLE")));
diff --git a/entity/SalesprojectMember_entity/entityfields/targetcontext/valueProcess.js b/entity/Member_entity/entityfields/targetcontext/valueProcess.js
similarity index 100%
rename from entity/SalesprojectMember_entity/entityfields/targetcontext/valueProcess.js
rename to entity/Member_entity/entityfields/targetcontext/valueProcess.js
diff --git a/entity/SalesprojectMember_entity/entityfields/user_edit/valueProcess.js b/entity/Member_entity/entityfields/user_edit/valueProcess.js
similarity index 100%
rename from entity/SalesprojectMember_entity/entityfields/user_edit/valueProcess.js
rename to entity/Member_entity/entityfields/user_edit/valueProcess.js
diff --git a/entity/SalesprojectMember_entity/entityfields/user_new/valueProcess.js b/entity/Member_entity/entityfields/user_new/valueProcess.js
similarity index 100%
rename from entity/SalesprojectMember_entity/entityfields/user_new/valueProcess.js
rename to entity/Member_entity/entityfields/user_new/valueProcess.js
diff --git a/entity/SalesprojectMember_entity/fromClauseProcess.js b/entity/Member_entity/fromClauseProcess.js
similarity index 65%
rename from entity/SalesprojectMember_entity/fromClauseProcess.js
rename to entity/Member_entity/fromClauseProcess.js
index 93d4323cf0c..edff7462ed2 100644
--- a/entity/SalesprojectMember_entity/fromClauseProcess.js
+++ b/entity/Member_entity/fromClauseProcess.js
@@ -1,5 +1,5 @@
 import("system.result");
 
-result.string("SALESPROJECT_MEMBER join CONTACT on (CONTACT.CONTACTID = SALESPROJECT_MEMBER.CONTACT_ID) "
+result.string("MEMBER join CONTACT on (CONTACT.CONTACTID = MEMBER.CONTACT_ID) "
             + "left join ORGANISATION on (ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID) "
             + "left join PERSON on (PERSON.PERSONID = CONTACT.PERSON_ID)");
\ No newline at end of file
diff --git a/entity/SalesprojectMember_entity/conditionProcess.js b/entity/Member_entity/recordcontainers/db/conditionProcess.js
similarity index 61%
rename from entity/SalesprojectMember_entity/conditionProcess.js
rename to entity/Member_entity/recordcontainers/db/conditionProcess.js
index bfd5554266b..e0f35ab06bb 100644
--- a/entity/SalesprojectMember_entity/conditionProcess.js
+++ b/entity/Member_entity/recordcontainers/db/conditionProcess.js
@@ -3,7 +3,8 @@ import("system.result");
 import("Sql_lib");
 
 var cond = new SqlCondition();
-cond.andPrepareVars("SALESPROJECT_MEMBER.SALESPROJECT_ID", "$param.SalesprojectId_param");
+cond.andPrepareVars("MEMBER.OBJECT_ROWID", "$param.ObjectRowId_param")
+cond.andPrepareVars("MEMBER.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/SalesprojectMember_entity/recordcontainers/db/fromClauseProcess.js b/entity/Member_entity/recordcontainers/db/fromClauseProcess.js
similarity index 65%
rename from entity/SalesprojectMember_entity/recordcontainers/db/fromClauseProcess.js
rename to entity/Member_entity/recordcontainers/db/fromClauseProcess.js
index 93d4323cf0c..edff7462ed2 100644
--- a/entity/SalesprojectMember_entity/recordcontainers/db/fromClauseProcess.js
+++ b/entity/Member_entity/recordcontainers/db/fromClauseProcess.js
@@ -1,5 +1,5 @@
 import("system.result");
 
-result.string("SALESPROJECT_MEMBER join CONTACT on (CONTACT.CONTACTID = SALESPROJECT_MEMBER.CONTACT_ID) "
+result.string("MEMBER join CONTACT on (CONTACT.CONTACTID = MEMBER.CONTACT_ID) "
             + "left join ORGANISATION on (ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID) "
             + "left join PERSON on (PERSON.PERSONID = CONTACT.PERSON_ID)");
\ No newline at end of file
diff --git a/entity/SalesprojectMember_entity/recordcontainers/db/recordfieldmappings/contact_id.displayvalue/expression.js b/entity/Member_entity/recordcontainers/db/recordfieldmappings/contact_id.displayvalue/expression.js
similarity index 100%
rename from entity/SalesprojectMember_entity/recordcontainers/db/recordfieldmappings/contact_id.displayvalue/expression.js
rename to entity/Member_entity/recordcontainers/db/recordfieldmappings/contact_id.displayvalue/expression.js
diff --git a/entity/Member_entity/recordcontainers/db/recordfieldmappings/object_rowid.displayvalue/expression.js b/entity/Member_entity/recordcontainers/db/recordfieldmappings/object_rowid.displayvalue/expression.js
new file mode 100644
index 00000000000..33554680ccc
--- /dev/null
+++ b/entity/Member_entity/recordcontainers/db/recordfieldmappings/object_rowid.displayvalue/expression.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Context_lib");
+
+result.string(ContextUtils.getNameSubselectSql("OBJECT_TYPE", "OBJECT_ROWID"))
\ No newline at end of file
diff --git a/entity/SalesprojectMember_entity/recordcontainers/db/recordfieldmappings/salesproject_role.displayvalue/expression.js b/entity/Member_entity/recordcontainers/db/recordfieldmappings/salesproject_role.displayvalue/expression.js
similarity index 70%
rename from entity/SalesprojectMember_entity/recordcontainers/db/recordfieldmappings/salesproject_role.displayvalue/expression.js
rename to entity/Member_entity/recordcontainers/db/recordfieldmappings/salesproject_role.displayvalue/expression.js
index 18c379f4035..4e07d5e1138 100644
--- a/entity/SalesprojectMember_entity/recordcontainers/db/recordfieldmappings/salesproject_role.displayvalue/expression.js
+++ b/entity/Member_entity/recordcontainers/db/recordfieldmappings/salesproject_role.displayvalue/expression.js
@@ -2,5 +2,5 @@ import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectMemberRole(), "SALESPROJECT_MEMBER.SALESPROJECT_ROLE");
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.MemberRole(), "MEMBER.ROLE");
 result.string(sql);
\ No newline at end of file
diff --git a/entity/Object_entity/Object_entity.aod b/entity/Object_entity/Object_entity.aod
index 79ac577f79c..69156c4b7bb 100644
--- a/entity/Object_entity/Object_entity.aod
+++ b/entity/Object_entity/Object_entity.aod
@@ -66,6 +66,12 @@
           <fieldName>Objects</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>349f13ea-8b4c-4cc0-987c-ae1717855bc1</name>
+          <entityName>Member_entity</entityName>
+          <fieldName>Objects</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod
index f4638b66ba0..5201c98b5cf 100644
--- a/entity/Person_entity/Person_entity.aod
+++ b/entity/Person_entity/Person_entity.aod
@@ -344,7 +344,7 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
       <dependencies>
         <entityDependency>
           <name>12c5350a-3159-449b-a94e-d57658b4c124</name>
-          <entityName>SalesprojectMember_entity</entityName>
+          <entityName>Member_entity</entityName>
           <fieldName>CurrentContact</fieldName>
           <isConsumer v="false" />
         </entityDependency>
@@ -745,7 +745,7 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
       <dependencies>
         <entityDependency>
           <name>75f0e309-8b3f-4224-b599-a203405f1bff</name>
-          <entityName>SalesprojectMember_entity</entityName>
+          <entityName>Member_entity</entityName>
           <fieldName>Contacts</fieldName>
           <isConsumer v="false" />
         </entityDependency>
diff --git a/entity/SalesprojectMember_entity/entityfields/salesproject_id/valueProcess.js b/entity/SalesprojectMember_entity/entityfields/salesproject_id/valueProcess.js
deleted file mode 100644
index 5f36de767cb..00000000000
--- a/entity/SalesprojectMember_entity/entityfields/salesproject_id/valueProcess.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import("system.result");
-import("system.neon");
-import("system.vars");
-
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-{
-    if(vars.exists("$param.SalesprojectId_param") && vars.get("$param.SalesprojectId_param") != null) {
-        result.string(vars.getString("$param.SalesprojectId_param"));    
-    }
-}
\ No newline at end of file
diff --git a/entity/SalesprojectMember_entity/entityfields/salesproject_role/displayValueProcess.js b/entity/SalesprojectMember_entity/entityfields/salesproject_role/displayValueProcess.js
deleted file mode 100644
index c44ff2976cf..00000000000
--- a/entity/SalesprojectMember_entity/entityfields/salesproject_role/displayValueProcess.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import("system.result");
-import("system.vars");
-import("Keyword_lib");
-import("KeywordRegistry_basic");
-
-result.string(KeywordUtils.getViewValue($KeywordRegistry.salesprojectMemberRole(), vars.get("$field.SALESPROJECT_ROLE")));
diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod
index 85ae01975fd..8858bde5ab1 100644
--- a/entity/Salesproject_entity/Salesproject_entity.aod
+++ b/entity/Salesproject_entity/Salesproject_entity.aod
@@ -252,18 +252,25 @@
       </children>
     </entityConsumer>
     <entityConsumer>
-      <name>SalesprojectMembers</name>
+      <name>Members</name>
       <title>${SALESPROJECT_MEMBER}</title>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
-        <entityName>SalesprojectMember_entity</entityName>
-        <fieldName>SalesprojectMembers</fieldName>
+        <entityName>Member_entity</entityName>
+        <fieldName>Links</fieldName>
       </dependency>
       <children>
         <entityParameter>
-          <name>SalesprojectId_param</name>
-          <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/salesprojectmembers/children/salesprojectid_param/valueProcess.js</valueProcess>
+          <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>
diff --git a/entity/Salesproject_entity/entityfields/members/children/objectrowid_param/valueProcess.js b/entity/Salesproject_entity/entityfields/members/children/objectrowid_param/valueProcess.js
new file mode 100644
index 00000000000..2b119ebfa19
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/members/children/objectrowid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.SALESPROJECTID"));
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/members/children/objecttype_param/valueProcess.js b/entity/Salesproject_entity/entityfields/members/children/objecttype_param/valueProcess.js
new file mode 100644
index 00000000000..cc6924394ae
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/members/children/objecttype_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("Context_lib");
+import("system.result");
+
+result.string(ContextUtils.getCurrentContextId());
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/salesprojectmembers/children/salesprojectid_param/valueProcess.js b/entity/Salesproject_entity/entityfields/salesprojectmembers/children/salesprojectid_param/valueProcess.js
deleted file mode 100644
index b9a94c51a19..00000000000
--- a/entity/Salesproject_entity/entityfields/salesprojectmembers/children/salesprojectid_param/valueProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.result");
-import("system.vars");
-
-result.string(vars.getString("$field.SALESPROJECTID"));
\ No newline at end of file
diff --git a/entity/Salesproject_entity/recordcontainers/db/onDBDelete.js b/entity/Salesproject_entity/recordcontainers/db/onDBDelete.js
index e6077205b9a..0b0286cf994 100644
--- a/entity/Salesproject_entity/recordcontainers/db/onDBDelete.js
+++ b/entity/Salesproject_entity/recordcontainers/db/onDBDelete.js
@@ -8,11 +8,11 @@ if (currentId)
 {
     var toDelete = [
         "SALESPROJECT_MILESTONE",
-        "SALESPROJECT_MEMBER",
         "SALESPROJECT_SOURCE"
     ];
     var toDeleteCompetition = [
-        "COMPETITION"
+        "COMPETITION",
+        "MEMBER"
     ];
     
     toDelete = toDelete.map(function(pTable)
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index d62906560ff..4edb1f29122 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -3926,21 +3926,6 @@
       <key>${WEBSERVICE_ERROR} url:%0 status:%1</key>
       <value>Webservice nicht erreichbar. URL: %0 %1</value>
     </entry>
-    <entry>
-      <key>file '%0' cannot be read</key>
-    </entry>
-    <entry>
-      <key>Importer</key>
-    </entry>
-    <entry>
-      <key>yyyy-MM-dd HH:mm:ss</key>
-    </entry>
-    <entry>
-      <key>file '%0' does not exist or you have got no permission on this file</key>
-    </entry>
-    <entry>
-      <key>Zip</key>
-    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonContext/SalesprojectMember/SalesprojectMember.aod b/neonContext/Member/Member.aod
similarity index 66%
rename from neonContext/SalesprojectMember/SalesprojectMember.aod
rename to neonContext/Member/Member.aod
index be5169e7862..3e145baa075 100644
--- a/neonContext/SalesprojectMember/SalesprojectMember.aod
+++ b/neonContext/Member/Member.aod
@@ -1,18 +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>SalesprojectMember</name>
+  <name>Member</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
-  <filterview>SalesprojectMemberFilter_view</filterview>
-  <editview>SalesprojectMemberEdit_view</editview>
-  <entity>SalesprojectMember_entity</entity>
+  <filterview>MemberFilter_view</filterview>
+  <editview>MemberEdit_view</editview>
+  <entity>Member_entity</entity>
   <references>
     <neonViewReference>
       <name>6b0b9d8f-6fe8-475b-a303-f1c4f2011d37</name>
-      <view>SalesprojectMemberFilter_view</view>
+      <view>MemberFilter_view</view>
     </neonViewReference>
     <neonViewReference>
       <name>ebef21a3-c0e1-4333-b769-eb967cb4099b</name>
-      <view>SalesprojectMemberEdit_view</view>
+      <view>MemberEdit_view</view>
     </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonView/SalesprojectMemberEdit_view/SalesprojectMemberEdit_view.aod b/neonView/MemberEdit_view/MemberEdit_view.aod
similarity index 78%
rename from neonView/SalesprojectMemberEdit_view/SalesprojectMemberEdit_view.aod
rename to neonView/MemberEdit_view/MemberEdit_view.aod
index c8bd8886231..57268be06b5 100644
--- a/neonView/SalesprojectMemberEdit_view/SalesprojectMemberEdit_view.aod
+++ b/neonView/MemberEdit_view/MemberEdit_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>SalesprojectMemberEdit_view</name>
+  <name>MemberEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <isSmall v="true" />
   <layout>
@@ -15,12 +15,12 @@
       <entityField>#ENTITY</entityField>
       <fields>
         <entityFieldLink>
-          <name>0f78acf5-bea7-4c91-afe0-0907d20db131</name>
+          <name>2cdccd07-43f2-45c9-afcc-498ff2d36d47</name>
           <entityField>CONTACT_ID</entityField>
         </entityFieldLink>
         <entityFieldLink>
-          <name>b74ab5a3-2d3c-49e6-b7df-219b16ca22fd</name>
-          <entityField>SALESPROJECT_ROLE</entityField>
+          <name>84696d3f-fe39-45f2-a48a-90cd916b125f</name>
+          <entityField>ROLE</entityField>
         </entityFieldLink>
       </fields>
     </genericViewTemplate>
diff --git a/neonView/SalesprojectMemberFilter_view/SalesprojectMemberFilter_view.aod b/neonView/MemberFilter_view/MemberFilter_view.aod
similarity index 93%
rename from neonView/SalesprojectMemberFilter_view/SalesprojectMemberFilter_view.aod
rename to neonView/MemberFilter_view/MemberFilter_view.aod
index fe1a90deac9..a4725bf9eea 100644
--- a/neonView/SalesprojectMemberFilter_view/SalesprojectMemberFilter_view.aod
+++ b/neonView/MemberFilter_view/MemberFilter_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>SalesprojectMemberFilter_view</name>
+  <name>MemberFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterable v="true" />
   <layout>
@@ -23,7 +23,7 @@
         </neonTableColumn>
         <neonTableColumn>
           <name>bea82980-0639-405a-ab3f-92e45f97090e</name>
-          <entityField>SALESPROJECT_ROLE</entityField>
+          <entityField>ROLE</entityField>
         </neonTableColumn>
         <neonTableColumn>
           <name>a30a083a-be66-4690-a7b6-19860a9bc72e</name>
diff --git a/neonView/SalesprojectMain_view/SalesprojectMain_view.aod b/neonView/SalesprojectMain_view/SalesprojectMain_view.aod
index 5bb94f6fd1b..a38abc50e2d 100644
--- a/neonView/SalesprojectMain_view/SalesprojectMain_view.aod
+++ b/neonView/SalesprojectMain_view/SalesprojectMain_view.aod
@@ -51,8 +51,8 @@
     </neonViewReference>
     <neonViewReference>
       <name>dafb2a9c-c192-46e2-a233-0799b694ed7d</name>
-      <entityField>SalesprojectMembers</entityField>
-      <view>SalesprojectMemberFilter_view</view>
+      <entityField>Members</entityField>
+      <view>MemberFilter_view</view>
     </neonViewReference>
     <neonViewReference>
       <name>c0027b4d-c014-4053-a595-daad9a73ad5c</name>
diff --git a/process/KeywordRegistry_basic/process.js b/process/KeywordRegistry_basic/process.js
index efab089abc5..38321fe5ba0 100644
--- a/process/KeywordRegistry_basic/process.js
+++ b/process/KeywordRegistry_basic/process.js
@@ -48,7 +48,7 @@ $KeywordRegistry.productPricelist = function(){return "ProductPricelist";};
 $KeywordRegistry.productPricelist$standardList = function(){return "02553fc7-4611-4914-8ff5-0b7c4e7531c9";};
 
 $KeywordRegistry.quantityUnit = function(){return "QuantityUnit";};
-$KeywordRegistry.salesprojectMemberRole = function(){return "SalesprojectMemberRole";};
+$KeywordRegistry.MemberRole = function(){return "MemberRole";};
 $KeywordRegistry.salesprojectSource = function(){return "SalesprojectSource";};
 $KeywordRegistry.salesorderState = function(){return "SalesorderState";};
 $KeywordRegistry.salesprojectWonLost = function(){return "SalesprojectWonLost";};
-- 
GitLab