diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod
index ce1c29080a210003ff5a4ce12700800e4c81aca9..098b70b76135b622cd41a1fa19ca5c6c49702e9e 100644
--- a/aliasDefinition/Data_alias/Data_alias.aod
+++ b/aliasDefinition/Data_alias/Data_alias.aod
@@ -1377,6 +1377,207 @@
               </entityFieldDb>
             </entityFields>
           </entityDb>
+          <entityDb>
+            <name>PRODUCT</name>
+            <dbName></dbName>
+            <idColumn>PRODUCTID</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>ORG_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>UNIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ADVERTISING</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="1" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>PRODUCTID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="false" />
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>PRODUCTNAME</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>PRODUCTCODE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>MINSTOCK</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="2" />
+                <size v="14" />
+                <scale v="2" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>GROUPCODEID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>STATUS</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>STANDARD</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
         </entities>
       </entityGroup>
     </aliasDefDb>
diff --git a/entity/Org_entity/Org_entity.aod b/entity/Org_entity/Org_entity.aod
index 8f6e373139b30cfd60bd04e279191daf56b3d6fc..1906789e80a1005891cf3462cfd2271632d305ba 100644
--- a/entity/Org_entity/Org_entity.aod
+++ b/entity/Org_entity/Org_entity.aod
@@ -196,6 +196,12 @@
           <fieldName>ContractOrg_dfo</fieldName>
           <isOutgoing v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>25e5cc50-0443-4e79-8690-a47197706936</name>
+          <entityName>Product_entity</entityName>
+          <fieldName>ProductOrg_dfo</fieldName>
+          <isOutgoing v="false" />
+        </entityDependency>
       </dependencies>
     </entityIncomingField>
     <entityOutgoingField>
@@ -260,6 +266,21 @@
         </entityParameter>
       </children>
     </entityOutgoingField>
+    <entityOutgoingField>
+      <name>OrgProduct_dfo</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Product_entity</entityName>
+        <fieldName>OrgProduct_dfi</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>OrgId_param</name>
+          <code>%aditoprj%/entity/Org_entity/entityfields/orgproduct_dfo/children/orgid_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityOutgoingField>
   </entityFields>
   <linkInformation>
     <linkInformation>
diff --git a/entity/Org_entity/entityfields/orgproduct_dfo/children/orgid_param/code.js b/entity/Org_entity/entityfields/orgproduct_dfo/children/orgid_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..43a0099996b20b6781091de4a333fa1c8f28056f
--- /dev/null
+++ b/entity/Org_entity/entityfields/orgproduct_dfo/children/orgid_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.ORGID"));
\ No newline at end of file
diff --git a/entity/Product_entity/Product_entity.aod b/entity/Product_entity/Product_entity.aod
new file mode 100644
index 0000000000000000000000000000000000000000..455699b59aa1ca3981855117b9c790471bbb95be
--- /dev/null
+++ b/entity/Product_entity/Product_entity.aod
@@ -0,0 +1,161 @@
+<?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.0.3" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.0.3">
+  <name>Product_entity</name>
+  <title>Product</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <alias>Data_alias</alias>
+  <recordContainerType>DB</recordContainerType>
+  <caption>Product</caption>
+  <entityFields>
+    <entityField>
+      <name>ADVERTISING</name>
+      <tableName>PRODUCT</tableName>
+      <columnName>ADVERTISING</columnName>
+      <caption>Werbemittel</caption>
+      <contentType>BOOLEAN</contentType>
+      <possibleItemsProcess>%aditoprj%/entity/Product_entity/entityfields/advertising/possibleItemsProcess.js</possibleItemsProcess>
+      <valueProcess>%aditoprj%/entity/Product_entity/entityfields/advertising/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <tableName>PRODUCT</tableName>
+      <columnName>DATE_EDIT</columnName>
+      <contentType>DATE</contentType>
+      <outputFormat>yyyy-MM-dd&amp;apos;T&amp;apos;HH:mm:ssZ</outputFormat>
+      <valueProcess>%aditoprj%/entity/Product_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <tableName>PRODUCT</tableName>
+      <columnName>DATE_NEW</columnName>
+      <contentType>DATE</contentType>
+      <outputFormat>yyyy-MM-dd&amp;apos;T&amp;apos;HH:mm:ssZ</outputFormat>
+      <valueProcess>%aditoprj%/entity/Product_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>GROUPCODEID</name>
+      <tableName>PRODUCT</tableName>
+      <columnName>GROUPCODEID</columnName>
+      <caption>Produktgruppe</caption>
+      <mandatory v="true" />
+      <possibleItemsProcess>%aditoprj%/entity/Product_entity/entityfields/groupcodeid/possibleItemsProcess.js</possibleItemsProcess>
+    </entityField>
+    <entityField>
+      <name>MINSTOCK</name>
+      <tableName>PRODUCT</tableName>
+      <columnName>MINSTOCK</columnName>
+      <caption>Min.-Bestand</caption>
+      <contentType>NUMBER</contentType>
+      <outputFormat>#,##0.##</outputFormat>
+    </entityField>
+    <entityField>
+      <name>ORG_ID</name>
+      <tableName>PRODUCT</tableName>
+      <columnName>ORG_ID</columnName>
+      <caption>Hersteller</caption>
+      <valueProcess>%aditoprj%/entity/Product_entity/entityfields/org_id/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>PRODUCTCODE</name>
+      <tableName>PRODUCT</tableName>
+      <columnName>PRODUCTCODE</columnName>
+      <caption>Produkt-Nr.</caption>
+      <mandatory v="true" />
+      <onValidation>%aditoprj%/entity/Product_entity/entityfields/productcode/onValidation.js</onValidation>
+    </entityField>
+    <entityField>
+      <name>PRODUCTID</name>
+      <tableName>PRODUCT</tableName>
+      <columnName>PRODUCTID</columnName>
+    </entityField>
+    <entityField>
+      <name>PRODUCTNAME</name>
+      <tableName>PRODUCT</tableName>
+      <columnName>PRODUCTNAME</columnName>
+      <caption>Produktname</caption>
+      <mandatory v="true" />
+    </entityField>
+    <entityField>
+      <name>STANDARD</name>
+      <tableName>PRODUCT</tableName>
+      <columnName>STANDARD</columnName>
+    </entityField>
+    <entityField>
+      <name>STATUS</name>
+      <tableName>PRODUCT</tableName>
+      <columnName>STATUS</columnName>
+      <caption>Aktiv</caption>
+      <contentType>BOOLEAN</contentType>
+      <possibleItemsProcess>%aditoprj%/entity/Product_entity/entityfields/status/possibleItemsProcess.js</possibleItemsProcess>
+      <valueProcess>%aditoprj%/entity/Product_entity/entityfields/status/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>UNIT</name>
+      <tableName>PRODUCT</tableName>
+      <columnName>UNIT</columnName>
+      <caption>Einheit</caption>
+      <mandatory v="true" />
+      <possibleItemsProcess>%aditoprj%/entity/Product_entity/entityfields/unit/possibleItemsProcess.js</possibleItemsProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <tableName>PRODUCT</tableName>
+      <columnName>USER_EDIT</columnName>
+      <valueProcess>%aditoprj%/entity/Product_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_NEW</name>
+      <tableName>PRODUCT</tableName>
+      <columnName>USER_NEW</columnName>
+      <valueProcess>%aditoprj%/entity/Product_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityOutgoingField>
+      <name>ProductOrg_dfo</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Org_entity</entityName>
+        <fieldName>Org_dfi</fieldName>
+      </dependency>
+    </entityOutgoingField>
+    <entityIncomingField>
+      <name>OrgProduct_dfi</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <dependencies>
+        <entityDependency>
+          <name>49cbec11-7d2e-4898-b63f-2e36aac9181e</name>
+          <entityName>Org_entity</entityName>
+          <fieldName>OrgProduct_dfo</fieldName>
+          <isOutgoing v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityIncomingField>
+    <entityField>
+      <name>STOCKCOUNT</name>
+      <caption>Lagerbestand</caption>
+    </entityField>
+    <entityParameter>
+      <name>OrgId_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <mandatory v="false" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityField>
+      <name>currentPurchasePrice</name>
+      <caption>akt. EK-Preis</caption>
+    </entityField>
+    <entityField>
+      <name>currentSalesPrice</name>
+      <caption>akt. VK-Preis</caption>
+    </entityField>
+  </entityFields>
+  <linkInformation>
+    <linkInformation>
+      <name>43c30a2b-7b59-46a2-9d8f-57ce4cde5d36</name>
+      <tableName>PRODUCT</tableName>
+      <primaryKey>PRODUCTID</primaryKey>
+      <isUIDTable v="true" />
+    </linkInformation>
+  </linkInformation>
+</entity>
diff --git a/entity/Product_entity/entityfields/advertising/possibleItemsProcess.js b/entity/Product_entity/entityfields/advertising/possibleItemsProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..88409cc96839a46311a84f379e6b0e6a31841920
--- /dev/null
+++ b/entity/Product_entity/entityfields/advertising/possibleItemsProcess.js
@@ -0,0 +1,7 @@
+import("system.translate");
+import("system.result");
+
+result.object([
+     ["Y", translate.text("Ja")]
+    ,["N", translate.text("Nein")]
+]);
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/advertising/valueProcess.js b/entity/Product_entity/entityfields/advertising/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..0a98fa357464e58fc608103ea134eb1aa9f71a02
--- /dev/null
+++ b/entity/Product_entity/entityfields/advertising/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+    result.string("N");
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/date_edit/valueProcess.js b/entity/Product_entity/entityfields/date_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..00e95d744eab3b281e0f6ae5ee325cee91419534
--- /dev/null
+++ b/entity/Product_entity/entityfields/date_edit/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT)
+    result.string(vars.getString("$sys.date"));
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/date_new/valueProcess.js b/entity/Product_entity/entityfields/date_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..eedddb3cf02507bf4da985cf9db27f79c8468b55
--- /dev/null
+++ b/entity/Product_entity/entityfields/date_new/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.logging");
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+    result.string(vars.getString("$sys.date"));
+
diff --git a/entity/Product_entity/entityfields/groupcodeid/possibleItemsProcess.js b/entity/Product_entity/entityfields/groupcodeid/possibleItemsProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ec42dede214f092bd764b4151c5a0e93fa25de84
--- /dev/null
+++ b/entity/Product_entity/entityfields/groupcodeid/possibleItemsProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Keyword_lib");
+
+var kwdUtils, items;
+
+kwdUtils = new KeywordUtils();
+items = kwdUtils.getStandardArray("GROUPCODE");
+result.object(items);
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/org_id/valueProcess.js b/entity/Product_entity/entityfields/org_id/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..d1edd60f9f80c94fbee87b6e59218b74ab78169e
--- /dev/null
+++ b/entity/Product_entity/entityfields/org_id/valueProcess.js
@@ -0,0 +1,12 @@
+import("system.logging");
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+{
+    if(vars.exists("$param.OrgId_param") && vars.get("$param.OrgId_param") != null)
+        result.string(vars.getString("$param.OrgId_param"));    
+}
+else
+    result.string(vars.get("$this.value"));    
diff --git a/entity/Product_entity/entityfields/productcode/onValidation.js b/entity/Product_entity/entityfields/productcode/onValidation.js
new file mode 100644
index 0000000000000000000000000000000000000000..9c3a82d0063c2dd4ab29b8cbf2f8bb3211c4c034
--- /dev/null
+++ b/entity/Product_entity/entityfields/productcode/onValidation.js
@@ -0,0 +1,12 @@
+import("system.db");
+import("system.vars");
+import("system.swing");
+import("system.result");
+import("system.translate");
+
+//Productcode has to be unique
+if(db.cell("select count(PRODUCTID) from PRODUCT where PRODUCTCODE = '" + vars.get("$local.value")
+    + "' and PRODUCTID != '" + vars.get("$field.PRODUCTID") + "'") != 0)
+{
+    result.string( translate.text("Die Produktnummer exisitiert bereits!") );
+}
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/status/possibleItemsProcess.js b/entity/Product_entity/entityfields/status/possibleItemsProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..dd8baa43d335eeb12dc419d4bce5804dc9a1bb97
--- /dev/null
+++ b/entity/Product_entity/entityfields/status/possibleItemsProcess.js
@@ -0,0 +1,7 @@
+import("system.translate");
+import("system.result");
+
+result.object([
+     ["1", translate.text("Ja")]
+    ,["2", translate.text("Nein")]
+]);
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/status/valueProcess.js b/entity/Product_entity/entityfields/status/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..04344c1e2caaa81ee9c4e8ed7c9e10c084b49f95
--- /dev/null
+++ b/entity/Product_entity/entityfields/status/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+    result.string("1");
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/unit/possibleItemsProcess.js b/entity/Product_entity/entityfields/unit/possibleItemsProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..020f0770d41377e4f1eb2a0265e64a0055ef01f0
--- /dev/null
+++ b/entity/Product_entity/entityfields/unit/possibleItemsProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Keyword_lib");
+
+var kwdUtils, items;
+
+kwdUtils = new KeywordUtils();
+items = kwdUtils.getStandardArray("UNIT");
+result.object(items);
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/user_edit/valueProcess.js b/entity/Product_entity/entityfields/user_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..67c86b14ca987054658978c88cecf6bd03fa44af
--- /dev/null
+++ b/entity/Product_entity/entityfields/user_edit/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT)
+    result.string(vars.getString("$sys.user"));
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/user_new/valueProcess.js b/entity/Product_entity/entityfields/user_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..81966a3fbcd9b3cf25a186c93baa1928abc9d6d2
--- /dev/null
+++ b/entity/Product_entity/entityfields/user_new/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+    result.string(vars.getString("$sys.user"));
\ No newline at end of file
diff --git a/neonContext/Product_context/Product_context.aod b/neonContext/Product_context/Product_context.aod
new file mode 100644
index 0000000000000000000000000000000000000000..40fafab151b7d1b7a8df4588c3c8d18c4b9b56df
--- /dev/null
+++ b/neonContext/Product_context/Product_context.aod
@@ -0,0 +1,29 @@
+<?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.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.0.0">
+  <name>Product_context</name>
+  <title>Product</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <mainview>ProductMain_view</mainview>
+  <filterview>ProductFilter_view</filterview>
+  <editview>ProductEdit_view</editview>
+  <preview>ProductPreview_view</preview>
+  <entity>Product_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>8a0bd726-b3f6-4c5a-bd2a-251285b9ad90</name>
+      <view>ProductMain_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>ecb98950-5460-44ab-8da8-757bd143c03e</name>
+      <view>ProductEdit_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>cc985c0d-755f-46bd-89a2-71c5c6227198</name>
+      <view>ProductFilter_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>5580ead4-2257-4cdb-a3ac-5e7067c4c1ab</name>
+      <view>ProductPreview_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonView/ProductEdit_view/ProductEdit_view.aod b/neonView/ProductEdit_view/ProductEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..13b398314756354614e1d29773b06da25fd0ef4f
--- /dev/null
+++ b/neonView/ProductEdit_view/ProductEdit_view.aod
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.0">
+  <name>ProductEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>ProductEdit_generic</name>
+      <editMode v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>d5cfa031-1bce-43b3-b1c1-d79a4c1205dc</name>
+          <entityField>ADVERTISING</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>950b57a7-df15-42a3-9f94-3377ed757ba3</name>
+          <entityField>GROUPCODEID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>77197b19-54ea-493c-8d12-27391cd54a7a</name>
+          <entityField>MINSTOCK</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>472939e5-a69b-4eba-986f-0b47e72d0e9d</name>
+          <entityField>ORG_ID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>cefb3dc8-8d9b-47c4-a0f8-e78e66303ec7</name>
+          <entityField>PRODUCTCODE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>0019c5bd-368f-457a-b6e3-dd1d12cbe19e</name>
+          <entityField>PRODUCTNAME</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>49b07dd2-1ee1-4b80-88a7-daf4879848d2</name>
+          <entityField>STATUS</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>a068f12a-ed45-4997-9e94-c865ccffee2a</name>
+          <entityField>UNIT</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ProductFilter_view/ProductFilter_view.aod b/neonView/ProductFilter_view/ProductFilter_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..946718cd876b8f54211292678ada6032fcc9d35e
--- /dev/null
+++ b/neonView/ProductFilter_view/ProductFilter_view.aod
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.0">
+  <name>ProductFilter_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>Table_template</name>
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>346eab87-8fea-4828-8ea6-86af61f973ce</name>
+          <entityField>GROUPCODEID</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>ee627d12-c60c-48c2-a86e-2a144f5853e6</name>
+          <entityField>PRODUCTCODE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>cd013f0c-b9b0-4c5a-866b-53a9f69ad75e</name>
+          <entityField>PRODUCTNAME</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>4d23de03-5729-4568-a65d-3f0bdb67f66e</name>
+          <entityField>UNIT</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>3e774e1c-0998-4b2c-b876-22e99a79cb55</name>
+          <entityField>ORG_ID</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ProductMain_view/ProductMain_view.aod b/neonView/ProductMain_view/ProductMain_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..4a3ba7c08129890f867755cc97bc48a9f5fce92e
--- /dev/null
+++ b/neonView/ProductMain_view/ProductMain_view.aod
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.0">
+  <name>ProductMain_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+</neonView>
diff --git a/neonView/ProductPreview_view/ProductPreview_view.aod b/neonView/ProductPreview_view/ProductPreview_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..612ead7d150247d474b6b7bebab125e1216a0a3c
--- /dev/null
+++ b/neonView/ProductPreview_view/ProductPreview_view.aod
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.0">
+  <name>ProductPreview_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <cardViewTemplate>
+      <name>ProductHeader_template</name>
+      <titleField>PRODUCTCODE</titleField>
+      <descriptionField>GROUPCODEID</descriptionField>
+      <entityField>#ENTITY</entityField>
+    </cardViewTemplate>
+    <genericViewTemplate>
+      <name>ProductInfo_template</name>
+      <showDrawer v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>00594c0e-6641-4f6d-9717-1eee2678ad5d</name>
+          <entityField>PRODUCTNAME</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>7074979a-a2fc-4a57-98ad-3d8e98fde37a</name>
+          <entityField>ORG_ID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>a5a3ecee-059d-4bf2-9654-abe3efd58510</name>
+          <entityField>UNIT</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>abef7fe5-88f6-44fe-af91-38487eb9b750</name>
+          <entityField>ADVERTISING</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>505cc05b-0497-4baa-81cb-294ec6e1a133</name>
+          <entityField>STATUS</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>ba604dc5-06b2-44f2-a9b3-c4c3adb9f8f8</name>
+          <entityField>MINSTOCK</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>3802b031-10fc-4694-8e06-71d0033ae351</name>
+          <entityField>STOCKCOUNT</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>bcf1cada-cb5b-4012-85d1-544eabc5b86d</name>
+          <entityField>currentPurchasePrice</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>4ef15389-761a-40e6-8774-f7145ace5c12</name>
+          <entityField>currentSalesPrice</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/others/db_changes/masterChangelog.xml b/others/db_changes/masterChangelog.xml
index 433ed43984cf5766eee56547acb266985908f7e1..7aeca0a5614f34b058308caa53df35b83ea8c9d9 100644
--- a/others/db_changes/masterChangelog.xml
+++ b/others/db_changes/masterChangelog.xml
@@ -9,6 +9,7 @@
     <include file="struct/create_address.xml"/>
     <include file="struct/create_comm.xml"/>
     <include file="struct/create_contract.xml"/>
+    <include file="struct/create_product.xml"/>
     <include file="misc/1535533490181_persChanges.xml"/>
     <include file="struct/1535612802325_addressChange.xml"/>
     <include file="data/example_org/ORG_privat.xml"/>
diff --git a/others/db_changes/struct/create_prod2prod.xml b/others/db_changes/struct/create_prod2prod.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4868c9ccce7c5f170204a38b9676aacd1349481b
--- /dev/null
+++ b/others/db_changes/struct/create_prod2prod.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="m.schroeger" id="22a186c2-3eca-432e-b006-c179470b1732">
+	<createTable tableName="PROD2PROD">
+		<column name="PROD2PRODID" type="CHAR(36)">
+			<constraints primaryKey="true" primaryKeyName="PK_PRODUCT_PRODUCTID"/>
+		</column>
+
+		<column name="OPTIONAL" type="CHAR(1)"/>   
+                <column name="TAKEPRICE" type="CHAR(1)"/>        
+		<column name="QUANTITY" type="NUMERIC(14,2)"/>
+		<column name="SOURCE_ID" type="CHAR(36)"/>
+                <column name="DEST_ID" type="CHAR(36)"/>
+		<column name="DATE_EDIT" type="TIMESTAMP"/>
+                <column name="DATE_NEW" type="TIMESTAMP">
+                    <constraints nullable="false"/>
+                </column>
+		<column name="USER_EDIT" type="VARCHAR(50)"/>
+                <column name="USER_NEW" type="VARCHAR(50)">
+                    <constraints nullable="false"/>
+                </column>                                                         
+	</createTable>      
+</changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/struct/create_product.xml b/others/db_changes/struct/create_product.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1db1f002e7b6914d75f3695031798e5cec4c11f3
--- /dev/null
+++ b/others/db_changes/struct/create_product.xml
@@ -0,0 +1,27 @@
+<?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="m.schroeger" id="40ad5330-2163-400c-8fa7-d0d2461774b7">
+	<createTable tableName="PRODUCT">
+		<column name="PRODUCTID" type="CHAR(36)">
+			<constraints primaryKey="true" primaryKeyName="PK_PRODUCT_PRODUCTID"/>
+		</column>    
+		<column name="ADVERTISING" type="CHAR(1)"/>          
+		<column name="GROUPCODEID" type="INTEGER"/>
+		<column name="MINSTOCK" type="NUMERIC(14,2)"/>
+		<column name="ORG_ID" type="CHAR(36)"/>
+		<column name="PRODUCTCODE" type="VARCHAR(50)"/>
+		<column name="PRODUCTNAME" type="VARCHAR(50)"/>
+		<column name="STATUS" type="INTEGER"/>
+		<column name="UNIT" type="INTEGER"/>
+		<column name="STANDARD" type="INTEGER"/>
+		<column name="DATE_EDIT" type="TIMESTAMP"/>
+                <column name="DATE_NEW" type="TIMESTAMP">
+                    <constraints nullable="false"/>
+                </column>
+		<column name="USER_EDIT" type="VARCHAR(50)"/>
+                <column name="USER_NEW" type="VARCHAR(50)">
+                    <constraints nullable="false"/>
+                </column>                                                         
+	</createTable>      
+</changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/process/Keyword_lib/process.js b/process/Keyword_lib/process.js
index 0ab2a796067eeb67b3889f17c664ddca61a0fe71..cb4a0a3b0656b119bf2ff06a0cc6148019b7a7cc 100644
--- a/process/Keyword_lib/process.js
+++ b/process/Keyword_lib/process.js
@@ -130,18 +130,36 @@ function KeywordUtils(){
                 break;
             case "CONTRACT.CONTRACTSTATUS":
                 valueContainer = createKeywordEntriesContainer([
-                     createKeywordEntry("0", translate.text("gültig, unbefristet"))
-                    ,createKeywordEntry("1", translate.text("gültig, befristet"))
+                     createKeywordEntry("0", translate.text("gültig, unbefristet"))
+                    ,createKeywordEntry("1", translate.text("gültig, befristet"))
                     ,createKeywordEntry("2", translate.text("noch nicht unterschrieben"))
                     ,createKeywordEntry("3", translate.text("keiner, Einzelberechnung"))
-                    ,createKeywordEntry("4", translate.text("gekündigt"))
+                    ,createKeywordEntry("4", translate.text("gekündigt"))
                 ]);
                 break;
             case "CONTRACT.PAYMENT":
                 valueContainer = createKeywordEntriesContainer([
-                     createKeywordEntry("0", translate.text("jährlich"))
-                    ,createKeywordEntry("1", translate.text("halbjährlich"))
-                    ,createKeywordEntry("2", translate.text("vierteljährlich"))
+                     createKeywordEntry("0", translate.text("jährlich"))
+                    ,createKeywordEntry("1", translate.text("halbjährlich"))
+                    ,createKeywordEntry("2", translate.text("vierteljährlich"))
+                ]);
+                break;
+            case "GROUPCODE":
+                valueContainer = createKeywordEntriesContainer([
+                     createKeywordEntry("1", translate.text("Warengruppe 1"))
+                    ,createKeywordEntry("2", translate.text("Warengruppe 2"))
+                    ,createKeywordEntry("3", translate.text("Warengruppe 3"))
+                    ,createKeywordEntry("4", translate.text("Rabatt"))
+                    ,createKeywordEntry("5", translate.text("Ersatzteile"))
+                    ,createKeywordEntry("6", translate.text("Dienstleistung"))
+                ]);
+                break;
+            case "UNIT":
+                valueContainer = createKeywordEntriesContainer([
+                     createKeywordEntry("1", translate.text("Stück"))
+                    ,createKeywordEntry("2", translate.text("Kg"))
+                    ,createKeywordEntry("3", translate.text("Liter"))
+                    ,createKeywordEntry("4", translate.text("Stunden"))
                 ]);
                 break;
             default: